/* ============================================================
   jussy9375 // киберархив  —  Terminal-noir design system
   Canvas2D text-art hero + single phosphor accent (rose). OKLCH.
   ============================================================ */

:root{
  color-scheme: dark;

  --bg:          oklch(0.12 0.006 285);
  --bg-panel:    oklch(0.16 0.009 285);
  --bg-raised:   oklch(0.205 0.011 285);
  --line:        oklch(0.32 0.012 285);
  --line-strong: oklch(0.46 0.020 285);
  --ink:         oklch(0.93 0.006 300);
  --muted:       oklch(0.70 0.012 300);
  --link:        oklch(0.70 0.12 300);
  --violet:      oklch(0.62 0.14 300);
  --danger:      oklch(0.70 0.17 25);
  --ok:          oklch(0.82 0.16 150);

  /* accent — rose (default phosphor) */
  --accent:      oklch(0.80 0.09 350);
  --accent-hot:  oklch(0.74 0.16 358);
  --glow-h:      350;
  --glow:        oklch(0.74 0.16 350 / 0.55);
  --glow-soft:   oklch(0.74 0.16 350 / 0.16);

  --mono:    ui-monospace, "Cascadia Code", "Cascadia Mono", "JetBrains Mono", Consolas, "DejaVu Sans Mono", monospace;
  --display: "Perfect DOS VGA 437", var(--mono);

  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem; --s-6:2rem; --s-7:3rem;
  --r:4px; --r-lg:9px;
  --ease:      cubic-bezier(.22,1,.36,1);
  --ease-expo: cubic-bezier(.16,1,.3,1);
  --z-window:1; --z-vig:55; --z-scan:60; --z-console:200; --z-toast:300; --z-boot:400;
  --maxw: min(1100px, 94vw);
}

/* single phosphor accent: rose (defined in :root). ember/amber/green removed. */

/* ---------- reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; min-height:100svh; background:var(--bg); color:var(--ink);
  font-family:var(--mono); font-size:clamp(14px, .82rem + .25vw, 16px);
  line-height:1.65; letter-spacing:.01em; overflow-x:hidden;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,video,canvas{ max-width:100%; display:block; }
a{ color:var(--link); text-decoration:none; touch-action:manipulation; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }
button{ font:inherit; touch-action:manipulation; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:2px; }
::selection{ background:var(--accent); color:#0a0a0a; }
code{ font-family:var(--mono); color:var(--accent); }
.sr{ position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }
.skip{ position:fixed; left:50%; top:-70px; transform:translateX(-50%); z-index:var(--z-toast);
  background:var(--accent); color:#0a0a0a; padding:.5rem 1rem; border-radius:0 0 var(--r) var(--r); transition:top .2s var(--ease); }
.skip:focus{ top:0; }
kbd{ font-family:var(--mono); background:var(--bg-raised); border:1px solid var(--line-strong);
  border-bottom-width:2px; border-radius:3px; padding:0 .35em; color:var(--ink); font-size:.85em; }

/* ---------- CRT overlays ---------- */
.crt{ position:fixed; inset:0; pointer-events:none; z-index:var(--z-scan); opacity:.5;
  background:repeating-linear-gradient(to bottom, transparent 0 2px, oklch(0 0 0 / .18) 2px 3px); mix-blend-mode:multiply; }
.crt::after{ content:""; position:absolute; left:0; right:0; height:35%;
  background:linear-gradient(oklch(1 0 0 / .03), transparent); animation:scan 7.5s linear infinite; }
@keyframes scan{ from{ transform:translateY(-120%);} to{ transform:translateY(360%);} }
.vignette{ position:fixed; inset:0; pointer-events:none; z-index:var(--z-vig);
  background:radial-gradient(125% 100% at 50% 26%, transparent 50%, oklch(0 0 0 / .6) 100%); }

/* ---------- boot (translucent scrim over the live hero) ---------- */
.boot{ position:fixed; inset:0; z-index:var(--z-boot); display:grid; place-items:center; padding:var(--s-5);
  background:oklch(0.10 0.006 285 / .82); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.boot.is-gone{ opacity:0; visibility:hidden; transform:translateY(-1.5%);
  transition:opacity .55s var(--ease), transform .6s var(--ease), visibility 0s .6s; }
.boot__inner{ width:min(540px,92vw); }
.boot__log{ margin:0 0 var(--s-4); min-height:8.5em; white-space:pre-wrap;
  font-size:clamp(11px,2.7vw,14px); line-height:1.7; color:var(--accent); text-shadow:0 0 8px var(--glow); }
.boot__bar{ height:3px; background:var(--line); border-radius:2px; overflow:hidden; }
.boot__bar i{ display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left; background:var(--accent); box-shadow:0 0 10px var(--glow); }
.boot__skip{ position:absolute; right:1rem; bottom:1rem; font-family:var(--mono); font-size:.8rem;
  background:transparent; color:var(--muted); border:1px solid var(--line-strong); border-radius:var(--r);
  padding:.45rem .8rem; cursor:pointer; transition:color .2s, border-color .2s; }
.boot__skip:hover{ color:var(--accent); border-color:var(--accent); }

/* ============ HERO (full-bleed cinematic band) ============ */
.hero{ position:relative; width:100%; min-height:clamp(440px,82svh,660px); overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column; justify-content:flex-end;
  background:radial-gradient(90% 70% at 50% 32%, var(--glow-soft), transparent 70%), var(--bg); }
.hero__art{ position:absolute; inset:0; width:100%; height:100%; z-index:0; display:block; cursor:pointer; }
.hero__art.is-glitch{ animation:heroGlitch .32s steps(3) 1; }
@keyframes heroGlitch{
  0%{ filter:none; transform:translate(0,0); }
  30%{ filter:hue-rotate(-22deg) saturate(1.5) contrast(1.08); transform:translate(-3px,1px); }
  60%{ filter:hue-rotate(14deg) saturate(1.3); transform:translate(3px,-1px); }
  100%{ filter:none; transform:translate(0,0); }
}
.hero::after{ content:""; position:absolute; inset:0; z-index:3; pointer-events:none;
  background:linear-gradient(180deg, oklch(0.08 0.006 285 / .34) 0%, transparent 22%, transparent 52%, var(--bg) 100%); }

.titlebar{ position:absolute; top:0; left:0; right:0; z-index:6; display:flex; align-items:center; gap:var(--s-3);
  flex-wrap:wrap; padding:.5rem .85rem; font-size:.8rem; color:var(--muted);
  background:linear-gradient(oklch(0.08 0.006 285 / .62), transparent); }
.titlebar__host{ display:inline-flex; align-items:center; gap:.45rem; color:var(--ink); }
.titlebar__ava{ width:1.4rem; height:1.4rem; border-radius:50%; border:1px solid var(--line-strong); object-fit:cover; }
.titlebar__path{ color:var(--accent); }
.titlebar__spacer{ flex:1 1 auto; }
.clock{ font-variant-numeric:tabular-nums; }
.langtoggle{ font-family:var(--mono); font-size:.74rem; color:var(--muted); background:transparent; border:1px solid var(--line-strong); border-radius:var(--r); padding:.08rem .42rem; cursor:pointer; transition:color .2s var(--ease), border-color .2s var(--ease); }
.langtoggle:hover{ color:var(--accent); border-color:var(--accent); }

.hero__content{ position:relative; z-index:5; max-width:min(900px,94%);
  padding:clamp(1.2rem,4vw,2.4rem); padding-bottom:clamp(1.8rem,5vw,3.2rem); }
.hero__content::before{ content:""; position:absolute; inset:-12% -25% -40% -45%; z-index:-1; pointer-events:none;
  background:radial-gradient(120% 120% at 18% 92%, oklch(0.07 0.006 285 / .8), transparent 68%); }
.tagline{ margin:.85rem 0 0; font-size:clamp(.95rem,2.6vw,1.18rem); color:var(--ink); text-wrap:balance; text-shadow:0 1px 12px oklch(0 0 0 / .7); }
.prompt{ color:var(--accent); }
.caret{ display:inline-block; width:.55em; height:1.05em; margin-left:2px; vertical-align:-.16em;
  background:var(--accent); box-shadow:0 0 8px var(--glow); animation:blink 1.05s steps(1) infinite; }
@keyframes blink{ 50%{opacity:0} }
.hero__sub{ margin:.7rem 0 0; color:var(--muted); font-size:.92rem; text-shadow:0 1px 10px oklch(0 0 0 / .7); }

/* hero text-art renders a static frame under reduced-motion (handled in hero.js) */

/* ============ SHELL (contained terminal window) ============ */
.shell{ position:relative; z-index:var(--z-window); width:var(--maxw);
  margin:clamp(.8rem,2.5vw,1.8rem) auto clamp(1.5rem,4vw,3rem);
  background:var(--bg-panel); border:1px solid var(--line-strong); border-radius:var(--r-lg); overflow:clip;
  box-shadow:0 0 0 1px var(--glow-soft), 0 30px 80px -34px #000, 0 0 70px -32px var(--glow); }

/* ---------- command deck ---------- */
.deck{ padding:clamp(1rem,3vw,1.6rem) clamp(1rem,4vw,2.5rem) clamp(.6rem,1.5vw,1rem); }
.deck__grid{ display:grid; gap:clamp(.6rem,1.5vw,1rem); grid-template-columns:repeat(auto-fit, minmax(210px,1fr)); }
@media (min-width:760px){
  .deck__grid{ grid-template-columns:repeat(6,1fr); }
  .card--contacts,.card--telegram,.card--conf{ grid-column:span 2; }
  .card--transmit,.card--restricted{ grid-column:span 3; }
}
@property --mx{ syntax:"<percentage>"; inherits:false; initial-value:50%; }
@property --my{ syntax:"<percentage>"; inherits:false; initial-value:0%; }
.card{ position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; gap:.3rem; min-height:122px;
  padding:clamp(.85rem,2vw,1.15rem); text-align:left; cursor:pointer; color:var(--ink); font-family:var(--mono);
  border:1px solid var(--line); border-radius:var(--r);
  background:radial-gradient(180px 180px at var(--mx,50%) var(--my,0%), var(--glow-soft), transparent 60%), var(--bg-raised);
  transform:perspective(720px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg)) translateY(var(--ty,0));
  transition:transform .2s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease), --mx 1.5s var(--ease), --my 1.5s var(--ease); }
.card::after{ content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; opacity:0; pointer-events:none;
  background:radial-gradient(220px 220px at var(--mx,50%) var(--my,50%), var(--accent), transparent 62%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite:exclude;
  transition:opacity .25s var(--ease); }
.card:hover{ --ty:-3px; border-color:var(--line-strong); box-shadow:0 14px 32px -18px #000, 0 0 32px -14px var(--glow);
  transition:transform .2s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease), --mx .12s var(--ease), --my .12s var(--ease); }
.card:active{ --ty:-1px; }
.card:hover::after{ opacity:.9; }
/* glyph veil injected on hover by cardfx.js (ngrok-inspired: faint, bottom-masked, screen-blend) */
.cardfx{ position:absolute; inset:0; z-index:-1; pointer-events:none; mix-blend-mode:screen; }
.card__glyph{ font-size:1.45rem; line-height:1; color:var(--accent); text-shadow:0 0 10px var(--glow); }
.card__cmd{ font-family:var(--display); color:var(--accent); font-size:.95rem; }
.card__label{ font-size:1.05rem; }
.card__desc{ font-size:.8rem; color:var(--muted); }
.card__kao{ margin-top:auto; font-size:.85rem; color:var(--violet); }
.card__lock{ margin-top:auto; font-size:.78rem; letter-spacing:.12em; color:var(--accent-hot); }
.card[aria-selected="true"]{ border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent), 0 0 30px -16px var(--glow); }
.card[aria-selected="true"] .card__label{ color:var(--accent); }

/* ---------- panels ---------- */
.panels{ padding:0 clamp(1rem,4vw,2.5rem) clamp(1.6rem,4vw,2.5rem); }
.panel{ border:1px solid var(--line); border-radius:var(--r); background:var(--bg-panel); padding:clamp(1rem,3vw,1.6rem); }
.panel[hidden]{ display:none; }
.panel:not([hidden]){ animation:panelin .32s var(--ease-expo); }
@keyframes panelin{ from{ opacity:0; transform:translateY(7px);} to{ opacity:1; transform:none; } }

/* ---------- mobile bottom nav (≤760px): quick icon tabs + slide-up "all sections" sheet ---------- */
.mobilenav{ display:none; }
.navsheet{ display:none; }
.mnav__fx{ position:absolute; inset:0; z-index:0; pointer-events:none; mix-blend-mode:screen; }
@media (max-width:760px){
  .deck{ display:none; }                                              /* deck → fixed bottom bar on mobile */
  body{ padding-bottom:calc(4.9rem + env(safe-area-inset-bottom)); }  /* reserve space so the bar never hides content */
  .hero{ padding-bottom:calc(4.6rem + env(safe-area-inset-bottom)); } /* lift bottom-anchored hero text above the bar */
  body .zoneart{ height:clamp(172px,46vw,184px); }                    /* taller lighthouse on mobile so it isn't clipped (desktop stays 180); body-prefix beats the later base rule */

  .mobilenav{ display:flex; flex-direction:column; position:fixed; left:0; right:0; bottom:0; z-index:120; isolation:isolate;
    padding:0 max(.25rem,env(safe-area-inset-left)) env(safe-area-inset-bottom) max(.25rem,env(safe-area-inset-right));
    background:linear-gradient(0deg, var(--bg) 16%, oklch(0.09 0.006 285 / .96));
    border-top:1px solid var(--line-strong);
    box-shadow:0 -10px 30px -18px #000, 0 -1px 0 0 var(--glow-soft);
    -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); }
  .mobilenav::after{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;   /* soft bottom vignette so labels always read cleanly over the veil */
    background:linear-gradient(0deg, oklch(0.08 0.006 285 / .7) 0%, oklch(0.08 0.006 285 / .32) 38%, transparent 65%); }
  .mnav__more{ position:relative; z-index:1; display:flex; align-items:center; justify-content:center;
    width:100%; height:1.4rem; background:transparent; border:0; cursor:pointer; padding:0;
    -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
  .mnav__grip{ width:2.2rem; height:4px; border-radius:2px; background:var(--line-strong);
    transition:background .2s var(--ease), width .2s var(--ease), box-shadow .2s var(--ease); }
  .mnav__more:active .mnav__grip,
  .mnav__more[aria-expanded="true"] .mnav__grip{ background:var(--accent); width:2.8rem; box-shadow:0 0 8px var(--glow); }
  .mnav__more:focus-visible{ outline:2px solid var(--accent); outline-offset:-3px; border-radius:var(--r); }
  .mnav__row{ position:relative; z-index:1; display:flex; width:100%; }

  .mnav__item{ position:relative; flex:1 1 0; min-width:0; min-height:3.4rem;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.18rem;
    background:transparent; border:0; cursor:pointer; color:var(--muted); font-family:var(--mono);
    padding:.45rem .15rem; transition:color .2s var(--ease);
    -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
  .mnav__icon{ font-size:1.18rem; line-height:1; }
  .mnav__label{ font-size:.62rem; letter-spacing:.01em; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
  .mnav__lock{ position:absolute; top:.45rem; left:50%; margin-left:.5rem; width:5px; height:5px; border-radius:50%;
    background:var(--accent-hot); box-shadow:0 0 6px var(--accent-hot); }
  .mnav__item:active{ color:var(--ink); }
  .mnav__item.is-active{ color:var(--accent); }
  .mnav__item.is-active .mnav__icon{ text-shadow:0 0 12px var(--glow); }
  .mnav__item.is-active::before{ content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:2rem; height:2px; background:var(--accent); border-radius:0 0 3px 3px; box-shadow:0 0 8px var(--glow); }
  .mnav__item:focus-visible{ outline:2px solid var(--accent); outline-offset:-3px; border-radius:var(--r); }

  /* slide-up "all sections" sheet */
  .navsheet{ display:block; position:fixed; inset:0; z-index:130; }
  .navsheet[hidden]{ display:none; }
  .navsheet__scrim{ position:absolute; inset:0; opacity:0; transition:opacity .3s var(--ease);
    background:oklch(0.04 0.006 285 / .55); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
  .navsheet.is-open .navsheet__scrim{ opacity:1; }
  .navsheet__panel{ position:absolute; left:0; right:0; bottom:0; transform:translateY(101%);
    transition:transform .34s var(--ease-expo);
    background:var(--bg-panel); border-top:1px solid var(--line-strong); border-radius:var(--r-lg) var(--r-lg) 0 0;
    box-shadow:0 -24px 60px -28px #000, 0 0 0 1px var(--glow-soft);
    padding:0 clamp(.8rem,4vw,1.4rem) calc(1rem + env(safe-area-inset-bottom)); }
  .navsheet.is-open .navsheet__panel{ transform:translateY(0); }
  .navsheet__grip{ display:block; width:100%; height:1.5rem; background:transparent; border:0; cursor:pointer; padding:0; }
  .navsheet__grip::before{ content:""; display:block; width:2.6rem; height:4px; border-radius:2px; margin:.5rem auto 0; background:var(--line-strong); }
  .navsheet__grip:focus-visible{ outline:2px solid var(--accent); outline-offset:-4px; border-radius:var(--r); }
  .navsheet__list{ list-style:none; margin:.3rem 0 0; padding:0; display:flex; flex-direction:column; gap:.45rem; }
  .sheetrow{ display:flex; align-items:center; gap:.8rem; width:100%; text-align:left; cursor:pointer;
    background:var(--bg-raised); border:1px solid var(--line); border-radius:var(--r); padding:.7rem .8rem;
    color:var(--ink); font-family:var(--mono); min-height:3.2rem;
    transition:border-color .2s var(--ease), background .2s var(--ease);
    -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
  .sheetrow:active{ background:var(--bg-panel); }
  .sheetrow__ic{ flex:0 0 auto; width:1.7rem; text-align:center; font-size:1.3rem; color:var(--accent); text-shadow:0 0 10px var(--glow); }
  .sheetrow__tx{ display:flex; flex-direction:column; gap:.12rem; min-width:0; }
  .sheetrow__t{ font-size:.95rem; }
  .sheetrow__d{ font-size:.74rem; color:var(--muted); }
  .sheetrow[aria-current="true"]{ border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent), 0 0 24px -14px var(--glow); }
  .sheetrow[aria-current="true"] .sheetrow__t{ color:var(--accent); }
  .sheetrow:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

  body .console{ bottom:calc(5.1rem + env(safe-area-inset-bottom)); } /* keep transient UI above the bar (beats later base rule) */
  body .toast{ bottom:calc(5.4rem + env(safe-area-inset-bottom)); }
}
.panel__head{ margin:0 0 var(--s-4); font-family:var(--display); font-weight:400; color:var(--accent);
  font-size:clamp(1.1rem,4vw,1.5rem); text-shadow:0 0 12px var(--glow); text-wrap:balance; }
.panel__sub{ font-family:var(--mono); color:var(--muted); font-size:.8rem; }

.rows{ list-style:none; margin:0; padding:0; }
.row{ display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap; padding:.62rem 0; border-bottom:1px dashed var(--line); }
.row:last-child{ border-bottom:0; }
.row__k{ min-width:6.5rem; font-family:var(--display); color:var(--accent); font-size:.95rem; }
.svg-sprite{ position:absolute; width:0; height:0; overflow:hidden; }
.row__ic{ width:1.05em; height:1.05em; margin-right:.5em; vertical-align:-.16em; flex:0 0 auto; opacity:.9; }
.row__v{ color:var(--ink); }
a.row__v{ color:var(--link); }
a.row__v:hover{ color:var(--accent); }
.row__v--link{ background:none; border:0; padding:0; color:var(--link); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.row__note{ margin-left:auto; color:var(--muted); font-size:.78rem; }
.copy{ font-size:.72rem; color:var(--muted); background:var(--bg-raised); border:1px solid var(--line); border-radius:3px;
  padding:.2rem .5rem; cursor:pointer; transition:color .2s, border-color .2s; }
.copy:hover{ color:var(--accent); border-color:var(--accent); }
.copy.is-done{ color:var(--ok); border-color:var(--ok); }

.block{ margin-bottom:var(--s-5); }
.block:last-child{ margin-bottom:0; }
.block__t{ margin:0 0 var(--s-3); font-family:var(--display); color:var(--accent); font-size:.95rem; }
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.chip{ padding:.35rem .8rem; border:1px solid var(--line-strong); border-radius:999px; background:var(--bg-raised);
  color:var(--ink); font-size:.82rem; transition:border-color .2s, color .2s, transform .2s; }
.chip:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); text-decoration:none; }

/* ---------- Конфиденциальность ---------- */
.manifesto{ max-width:64ch; margin:0 0 var(--s-5); color:var(--ink);
  font-size:clamp(1rem,2.4vw,1.12rem); line-height:1.7; text-wrap:pretty; }
.trust{ list-style:none; margin:0 0 var(--s-5); padding:0; display:grid; gap:var(--s-4); }
.trust__item{ display:flex; gap:var(--s-3); align-items:flex-start; padding:.8rem .9rem;
  border:1px solid var(--line); border-radius:var(--r); background:var(--bg-raised); }
.trust__ic{ color:var(--accent); font-size:1rem; line-height:1.5; text-shadow:0 0 8px var(--glow); }
.trust__t{ display:block; color:var(--ink); font-weight:600; margin-bottom:.15rem; }
.trust__d{ display:block; color:var(--muted); font-size:.88rem; line-height:1.55; }
.cta{ display:flex; flex-wrap:wrap; gap:.6rem; }
.btn--ghost{ color:var(--muted); border-color:var(--line-strong); }
.btn--ghost:hover{ color:var(--accent); border-color:var(--accent); background:transparent; box-shadow:none; }
.disc{ margin-top:var(--s-4); border-top:1px dashed var(--line); padding-top:var(--s-3); }
.disc summary{ cursor:pointer; color:var(--accent); font-family:var(--display); font-size:.95rem; list-style:none; }
.disc summary::-webkit-details-marker{ display:none; }
.disc summary::before{ content:"▸ "; }
.disc[open] summary::before{ content:"▾ "; }
.pgp__note{ margin:var(--s-3) 0 .3rem; color:var(--muted); font-size:.88rem; }
.pgp__fp{ margin:.2rem 0 var(--s-3); }
.pgp__fp code{ font-size:.8rem; color:var(--accent); }
.pgp__actions{ display:flex; flex-wrap:wrap; gap:.5rem; }

/* ---------- forms ---------- */
.field{ margin-bottom:var(--s-4); }
.field label{ display:block; margin-bottom:.35rem; font-family:var(--display); color:var(--accent); font-size:.82rem; }
.field input,.field textarea,.gate input{ width:100%; font-family:var(--mono); font-size:.95rem; color:var(--ink);
  background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--r); padding:.65rem .8rem; }
.field textarea{ resize:vertical; }
.field input::placeholder,.field textarea::placeholder,.gate input::placeholder{ color:var(--muted); }
.field input:focus,.field textarea:focus,.gate input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--glow-soft); }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.btn{ font-family:var(--display); font-size:1rem; cursor:pointer; padding:.6rem 1.15rem; background:transparent;
  color:var(--accent); border:1px solid var(--accent); border-radius:var(--r); transition:background .2s, color .2s, box-shadow .2s; }
.btn:hover{ background:var(--accent); color:#0a0a0a; box-shadow:0 0 26px -8px var(--glow); }
.xmit__foot{ display:flex; align-items:center; gap:var(--s-4); flex-wrap:wrap; }
.xmit__status{ color:var(--ok); font-size:.82rem; }
.xmit__note{ margin-top:var(--s-4); color:var(--muted); font-size:.76rem; }
.xmit__lead{ max-width:60ch; margin:0 0 var(--s-4); color:var(--muted); font-size:.9rem; line-height:1.6; }
.xmit__lead b{ color:var(--ink); }
.field__opt{ color:var(--muted); font-family:var(--mono); font-weight:400; font-size:.78em; }
.seg{ display:inline-flex; gap:.25rem; margin-bottom:var(--s-4); padding:.25rem; border:1px solid var(--line); border-radius:var(--r); background:var(--bg); }
.seg__btn{ font-family:var(--mono); font-size:.85rem; color:var(--muted); background:transparent; border:0; border-radius:3px; padding:.4rem .9rem; cursor:pointer; transition:color .2s var(--ease), background .2s var(--ease); }
.seg__btn:hover{ color:var(--accent); }
.seg__btn.is-active{ color:#0a0a0a; background:var(--accent); }
.xview[hidden]{ display:none; }

.zoneart{ display:block; width:100%; height:clamp(130px,26vw,180px); margin:0 0 var(--s-4); }
.locktext{ max-width:62ch; color:var(--muted); }
.gate{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:var(--s-4); }
.gate[hidden]{ display:none; }
.gate input{ flex:1 1 220px; }
.gate__status{ flex-basis:100%; color:var(--danger); font-size:.82rem; min-height:1.2em; }
.vault[hidden]{ display:none; }
.vault{ border-top:1px dashed var(--line); margin-top:var(--s-4); padding-top:var(--s-4); animation:panelin .32s var(--ease-expo); }
.vault h3{ margin:0 0 var(--s-3); font-family:var(--display); color:var(--accent); text-shadow:0 0 12px var(--glow); }
.vault p{ color:var(--ink); margin:0 0 var(--s-3); }
.vault ul{ margin:0 0 var(--s-3); padding-left:1.2rem; color:var(--ink); }
.vault li{ margin:.2rem 0; }
.vault a{ color:var(--link); }
.vault .vault__note{ color:var(--muted); font-size:.78rem; }
/* vault content follows the site RU/EN switch (no JS; static innerHTML) */
html[lang="ru"] .vault [lang="en"], html[lang="en"] .vault [lang="ru"]{ display:none; }
.vault .casewrap{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.vault .casewrap ul{ flex:1 1 16rem; margin:0; }
.coinslot{ flex:none; width:104px; height:104px; }
.chip .row__ic{ margin-right:.35em; opacity:.95; }
.vault .chip--more{ border-style:dashed; color:var(--muted); }
.vault .ljlogo{ display:inline-block; height:1.05em; width:5em; vertical-align:-.18em; background:var(--accent); -webkit-mask:url("../img/icons/livejasmin.svg") center/contain no-repeat; mask:url("../img/icons/livejasmin.svg") center/contain no-repeat; }

/* ---------- vault: decrypted operator profile (terminal-noir, art-styled) ---------- */
.vault .zhead{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; color:var(--muted); padding-bottom:.5rem; border-bottom:1px dashed var(--line); margin-bottom:var(--s-4); }
.vault .zhead b{ color:var(--accent); font-weight:400; }
.vault .zhero{ margin:0 0 var(--s-5); }
.vault .zhero__role{ font-family:var(--display); color:var(--accent); font-size:clamp(1.1rem,3.6vw,1.5rem); text-shadow:0 0 14px var(--glow); margin:0 0 .35rem; }
.vault .zhero__geo{ font-family:var(--mono); font-size:.74rem; letter-spacing:.05em; color:var(--muted); margin:0 0 .55rem; }
.vault .zhero__line{ color:var(--ink); margin:0 0 .7rem; max-width:50ch; }
.vault .zhero__status{ display:inline-flex; align-items:center; gap:.45rem; font-family:var(--mono); font-size:.78rem; color:var(--accent); border:1px solid var(--line-strong); border-radius:999px; padding:.2rem .7rem; }
.vault .zhero__status .dot{ width:.5rem; height:.5rem; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--glow); animation:zpulse 2s var(--ease) infinite; }
@keyframes zpulse{ 0%,100%{ opacity:1 } 50%{ opacity:.3 } }
.vault .zstats{ display:grid; grid-template-columns:repeat(4,1fr); gap:.55rem; margin:0 0 var(--s-5); }
.vault .zstat{ border:1px solid var(--line); border-radius:6px; background:var(--bg-raised); padding:.7rem .4rem; text-align:center; }
.vault .zstat__n{ display:block; font-family:var(--display); font-size:clamp(1.05rem,3.8vw,1.55rem); letter-spacing:.03em; color:var(--accent); text-shadow:0 0 12px var(--glow); }
.vault .zstat__l{ display:block; margin-top:.25rem; font-size:.68rem; color:var(--muted); }
.vault .zlead{ color:var(--ink); margin:0 0 var(--s-3); }
.vault .zgrid{ display:grid; grid-template-columns:1fr 1fr; gap:.5rem; margin:0 0 var(--s-5); }
.vault .zcard{ display:flex; gap:.5rem; border:1px solid var(--line); border-radius:6px; padding:.55rem .7rem; color:var(--ink); font-size:.85rem; line-height:1.4; }
.vault .zcard__m{ color:var(--accent); flex:none; }
.vault .zchk{ list-style:none; margin:0 0 var(--s-5); padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.3rem 1.1rem; }
.vault .zchk li{ position:relative; padding-left:1.3rem; color:var(--ink); font-size:.85rem; }
.vault .zchk li::before{ content:"\2713"; position:absolute; left:0; color:var(--accent); }
.vault .zterms{ border:1px solid var(--line); border-radius:6px; padding:.2rem .9rem; margin:0 0 var(--s-5); }
.vault .zterms .row{ border-bottom-style:dotted; }
.vault .hot{ color:var(--accent-hot); }
.vault .chips, .vault .casewrap{ margin-bottom:var(--s-5); }
.vault .zcta{ border:1px solid var(--line-strong); border-radius:8px; background:var(--bg-raised); padding:var(--s-4); margin:var(--s-4) 0 var(--s-3); }
.vault .zcta__t{ color:var(--ink); margin:0 0 .8rem; }
.vault .zcta__row{ display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1.2rem; }
.vault .zcta__tg{ display:inline-flex; align-items:center; gap:.4rem; font-family:var(--display); color:var(--link); }
.vault .zcta__tg a{ color:var(--link); }
.vault .zcta__tg a:hover{ color:var(--accent); }
.vault .zsteps{ list-style:none; counter-reset:zs; margin:0 0 1rem; padding:0; display:grid; gap:.35rem; }
.vault .zsteps li{ counter-increment:zs; position:relative; padding-left:1.8rem; color:var(--ink); font-size:.86rem; }
.vault .zsteps li::before{ content:counter(zs); position:absolute; left:0; top:0; width:1.2rem; height:1.2rem; line-height:1.2rem; text-align:center; font-family:var(--display); font-size:.72rem; color:var(--accent); border:1px solid var(--line-strong); border-radius:50%; }
.vault .zrise{ opacity:0; transform:translateY(10px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
.vault .zrise.in{ opacity:1; transform:none; }
@media (max-width:560px){
  .vault .zstats{ grid-template-columns:repeat(2,1fr); }
  .vault .zgrid, .vault .zchk{ grid-template-columns:1fr; }
}

/* ---------- status bar ---------- */
.statusbar{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; padding:.6rem .9rem;
  border-top:1px solid var(--line); background:var(--bg-raised); color:var(--muted); font-size:.76rem; }
.statusbar__sep{ color:var(--line-strong); }

/* ---------- console ---------- */
.console{ position:fixed; left:50%; bottom:clamp(.5rem,2vw,1.5rem); transform:translateX(-50%); width:min(640px,94vw);
  z-index:var(--z-console); background:var(--bg-panel); border:1px solid var(--accent); border-radius:var(--r); overflow:clip;
  box-shadow:0 20px 60px -22px #000, 0 0 44px -16px var(--glow); }
.console[hidden]{ display:none; }
.console__bar{ display:flex; justify-content:space-between; align-items:center; padding:.4rem .7rem;
  border-bottom:1px solid var(--line); font-family:var(--display); color:var(--accent); font-size:.8rem; }
.console__x{ background:none; border:0; color:var(--muted); cursor:pointer; font-size:1rem; }
.console__x:hover{ color:var(--accent); }
.console__out{ margin:0; padding:.7rem; max-height:38vh; overflow:auto; white-space:pre-wrap; font-size:.82rem; color:var(--ink); }
.console__in{ display:flex; align-items:center; gap:.5rem; padding:.5rem .7rem; border-top:1px solid var(--line); }
.console__in input{ flex:1; background:transparent; border:0; color:var(--ink); font-family:var(--mono); font-size:.9rem; }

/* ---------- toast ---------- */
.toast{ position:fixed; left:50%; bottom:1.3rem; transform:translate(-50%,18px); z-index:var(--z-toast); padding:.6rem 1rem;
  background:var(--bg-raised); border:1px solid var(--accent); border-radius:var(--r); color:var(--ink); font-size:.85rem;
  box-shadow:0 0 30px -10px var(--glow); opacity:0; pointer-events:none; transition:opacity .25s var(--ease), transform .25s var(--ease); }
.toast.is-show{ opacity:1; transform:translate(-50%,0); }

/* ---------- entrance (only after a real boot played) ---------- */
  .is-ready .hero__content{ animation:rise .6s var(--ease-expo) both; }
  .is-ready .deck{ animation:rise .6s var(--ease-expo) .09s both; }
  .is-ready .panels{ animation:rise .6s var(--ease-expo) .17s both; }
@keyframes rise{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none; } }

/* ---------- small screens ---------- */
@media (max-width:480px){
  .titlebar__path{ display:none; }
  .row__k{ min-width:5rem; }
  .row__note{ margin-left:0; flex-basis:100%; }
}

/* ---------- reduced motion: decorative animation deliberately kept ON (owner choice, optimized for modern devices) ---------- */
