/* ═══════════════════════════════════════════════
   MOROZOW.ONLINE — dark Y2K / techno game UI
   ═══════════════════════════════════════════════ */

:root{
  --bg:#06070a;
  --bg2:#0a0d12;
  --panel:rgba(13,17,23,.72);
  --ink:#e9f2ee;
  --mut:#8d99a8;
  --acid:#a3ff12;
  --acid-dim:rgba(163,255,18,.16);
  --cyan:#22e6ff;
  --mag:#ff3dcb;
  --amber:#ffd919;
  --line:rgba(163,255,18,.2);
  --line-soft:rgba(255,255,255,.08);
  --chrome:linear-gradient(180deg,#ffffff 0%,#dfe7f0 30%,#8d99ab 49%,#f4f8fc 52%,#b9c3d2 72%,#e8eef6 100%);
  --disp:'Exo 2','Segoe UI',system-ui,sans-serif;
  --logo:'Russo One','Exo 2',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'Cascadia Mono',Consolas,monospace;
  --e:cubic-bezier(.2,.8,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--mono);
  background:
    radial-gradient(1100px 700px at 85% -12%, rgba(34,230,255,.09), transparent 60%),
    radial-gradient(900px 700px at -12% 12%, rgba(255,61,203,.07), transparent 55%),
    radial-gradient(1200px 900px at 50% 115%, rgba(163,255,18,.07), transparent 60%),
    var(--bg);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
}
body.lock{overflow:hidden}
::selection{background:var(--acid);color:#06070a}
a{color:var(--acid)}
img{max-width:100%;display:block}

/* custom cursor takeover only when JS confirmed fine pointer */
html.has-cursor,html.has-cursor *{cursor:none !important}

.wrap{max-width:1140px;margin:0 auto;padding:0 clamp(16px,4vw,32px);position:relative}

/* ─── FX layers ─── */
#fx{position:fixed;inset:0;z-index:0;pointer-events:none}
.fx-scan{
  position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.45;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.32) 0 1px,transparent 1px 3px);
}
.fx-scan::after{
  content:'';position:absolute;left:0;right:0;height:26vh;
  background:linear-gradient(180deg,transparent,rgba(163,255,18,.045),transparent);
  animation:scanband 8s linear infinite;
}
@keyframes scanband{from{transform:translateY(-30vh)}to{transform:translateY(130vh)}}
.fx-grain{
  position:fixed;inset:-40px;z-index:61;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='280' height='280' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(4) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}25%{transform:translate(-14px,9px)}
  50%{transform:translate(9px,-12px)}75%{transform:translate(-7px,-6px)}100%{transform:translate(0,0)}
}
.fx-vignette{
  position:fixed;inset:0;z-index:59;pointer-events:none;
  background:radial-gradient(130% 100% at 50% 45%,transparent 55%,rgba(0,0,0,.55) 100%);
}

/* ─── cursor ─── */
.cursor{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0;transition:opacity .3s}
html.has-cursor .cursor{opacity:1}
.cur-dot{
  position:absolute;top:0;left:0;width:6px;height:6px;background:var(--acid);
  transform:translate(-50%,-50%);box-shadow:0 0 10px var(--acid);
}
.cur-ring{
  position:absolute;top:0;left:0;width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(163,255,18,.75);
  transform:translate(-50%,-50%);
  transition:width .25s var(--e),height .25s var(--e),border-color .25s,opacity .25s;
}
html.cur-hot .cur-ring{width:58px;height:58px;border-color:var(--mag)}

/* ─── boot ─── */
.boot{
  position:fixed;inset:0;z-index:1000;background:var(--bg);
  display:grid;place-items:center;transition:opacity .55s ease,visibility .55s;
}
.boot.done{opacity:0;visibility:hidden}
.boot-box{width:min(480px,86vw)}
.boot-logo{
  font-family:var(--logo);font-size:clamp(1.4rem,5vw,2rem);letter-spacing:.06em;
  margin-bottom:18px;color:var(--ink);
}
.boot-logo span{color:var(--acid)}
.boot-lines{list-style:none;font-size:.8rem;color:var(--mut);min-height:9.6em}
.boot-lines li{white-space:pre}
.boot-lines li b{color:var(--acid);font-weight:500}
.boot-track{height:4px;background:rgba(255,255,255,.08);margin-top:14px;overflow:hidden}
.boot-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--acid));box-shadow:0 0 12px var(--acid)}
.boot-meta{display:flex;justify-content:space-between;font-size:.68rem;color:var(--mut);margin-top:6px;letter-spacing:.14em}

/* ─── HUD ─── */
.hud{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(10px,3vw,28px);
  padding:10px clamp(12px,3vw,26px);
  background:linear-gradient(180deg,rgba(6,7,10,.92),rgba(6,7,10,.55) 75%,transparent);
  backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);
  border-bottom:1px solid var(--line-soft);
}
.hud-logo{
  font-family:var(--logo);font-size:.92rem;letter-spacing:.08em;color:var(--ink);
  text-decoration:none;white-space:nowrap;
}
.hud-logo .mk{color:var(--acid);margin-right:6px;animation:spinmk 6s linear infinite;display:inline-block}
@keyframes spinmk{to{transform:rotate(360deg)}}
.hud-logo .dim{color:var(--acid)}
.hud-mid{display:flex;align-items:center;gap:10px;min-width:0}
.hud-pct{font-size:.68rem;color:var(--acid);min-width:3.2em;text-align:right}
.hud-track{flex:1;height:4px;background:rgba(255,255,255,.09);overflow:hidden;min-width:40px}
.hud-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--acid));box-shadow:0 0 10px rgba(163,255,18,.8)}
.hud-right{display:flex;align-items:center;gap:14px;font-size:.68rem;letter-spacing:.12em}
.hud-sec{color:var(--mut);white-space:nowrap}
.hud-clock{color:var(--acid);font-variant-numeric:tabular-nums}

/* ─── side dots ─── */
.dots{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:41;display:grid;gap:14px}
.dots button{
  position:relative;background:none;border:0;padding:4px;display:grid;place-items:center;
}
.dots button i{
  display:block;width:9px;height:9px;border:1px solid rgba(163,255,18,.55);
  transform:rotate(45deg);transition:.3s var(--e);
}
.dots button.on i{background:var(--acid);box-shadow:0 0 10px var(--acid);transform:rotate(135deg) scale(1.15)}
.dots button span{
  position:absolute;right:24px;top:50%;transform:translateY(-50%) translateX(6px);
  font-size:.62rem;letter-spacing:.18em;color:var(--acid);white-space:nowrap;
  opacity:0;transition:.25s;pointer-events:none;font-family:var(--mono);
  background:rgba(6,7,10,.85);padding:2px 8px;border:1px solid var(--line);
}
.dots button:hover span{opacity:1;transform:translateY(-50%) translateX(0)}

/* ─── sections common ─── */
.sec{position:relative;z-index:1;padding:clamp(70px,10vh,110px) 0;scroll-margin-top:64px}
.sec + .sec{border-top:1px solid rgba(255,255,255,.055)}
.sec-head{display:flex;align-items:center;gap:16px;margin-bottom:clamp(24px,4vh,40px);flex-wrap:wrap}
.sec-tag{
  font-family:var(--logo);font-size:.8rem;color:var(--acid);
  border:1px solid var(--line);padding:5px 12px;background:var(--acid-dim);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
.sec-head h2{
  font-family:var(--logo);font-weight:400;letter-spacing:.04em;
  font-size:clamp(1.35rem,4vw,2rem);
}
.dim{color:var(--mut);opacity:.75}
.sec-rule{flex:1;height:1px;min-width:40px;background:linear-gradient(90deg,var(--line),transparent)}
.sec-sub{color:var(--mut);margin:-14px 0 26px;font-size:.92rem}

/* panels */
.panel{
  background:var(--panel);border:1px solid var(--line-soft);padding:clamp(16px,3vw,24px);
  position:relative;
  clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
}
.panel::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(163,255,18,.05),transparent 40%);
}
.panel-head{
  display:flex;justify-content:space-between;font-size:.68rem;letter-spacing:.2em;
  color:var(--acid);margin-bottom:16px;text-transform:uppercase;
  border-bottom:1px dashed rgba(163,255,18,.22);padding-bottom:8px;
}

/* chips & tags */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  font-size:.72rem;letter-spacing:.08em;padding:6px 12px;
  border:1px solid rgba(255,255,255,.16);color:#cdd6e2;background:rgba(255,255,255,.04);
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
  transition:.25s;white-space:nowrap;
}
.chip:hover{border-color:var(--acid);color:var(--acid)}
.chip-acid{border-color:var(--line);color:var(--acid);background:var(--acid-dim)}
.chip-p2{border-color:rgba(255,61,203,.45);color:var(--mag);background:rgba(255,61,203,.1)}

/* LEDs */
.led{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px}
.led-g{background:var(--acid);box-shadow:0 0 8px var(--acid);animation:blink 1.6s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}

/* buttons */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--logo);font-size:.85rem;letter-spacing:.08em;text-transform:lowercase;
  padding:15px 26px;text-decoration:none;overflow:hidden;
  clip-path:polygon(13px 0,100% 0,100% calc(100% - 13px),calc(100% - 13px) 100%,0 100%,0 13px);
  transition:transform .25s var(--e),background .25s,color .25s,box-shadow .25s;
}
.btn::after{
  content:'';position:absolute;top:0;bottom:0;width:46%;left:-60%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);transition:left .5s var(--e);
}
.btn:hover::after{left:120%}
.btn-acid{background:var(--acid);color:#06070a}
.btn-acid:hover{box-shadow:0 0 26px rgba(163,255,18,.5)}
.btn-ghost{background:rgba(255,255,255,.06);color:var(--ink);border:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.btn-ghost:hover{color:var(--acid);box-shadow:inset 0 0 0 1px var(--acid)}
.btn-lg{padding:18px 32px;font-size:1rem}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}

/* ─── reveal ─── */
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease var(--d,0s),transform .8s var(--e) var(--d,0s)}
.rv.in{opacity:1;transform:none}
.rv-fade{opacity:0;transition:opacity .8s ease var(--d,0s)}
.rv-fade.in{opacity:1}

/* ─── HERO ─── */
.hero{
  min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding-top:96px;overflow:hidden;
}
.hero-floor{
  position:absolute;left:-30%;right:-30%;bottom:-8%;height:52%;z-index:0;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,rgba(163,255,18,.26) 0 1px,transparent 1px 64px),
    repeating-linear-gradient(0deg,rgba(163,255,18,.26) 0 1px,transparent 1px 64px);
  transform:perspective(520px) rotateX(64deg);
  transform-origin:50% 100%;
  animation:floorMove 5s linear infinite;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 42%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 42%);
  opacity:.75;
}
@keyframes floorMove{to{background-position:0 64px,0 64px}}
.hero-horizon{
  position:absolute;left:8%;right:8%;bottom:calc(52% - 84px);height:1px;z-index:0;
  background:linear-gradient(90deg,transparent,var(--acid),var(--cyan),transparent);
  filter:blur(1px);opacity:.7;pointer-events:none;
}
.hero-mark{
  position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;
  font-family:var(--logo);font-size:clamp(5rem,22vw,17rem);line-height:1;white-space:nowrap;
  color:transparent;-webkit-text-stroke:1px rgba(163,255,18,.14);
  letter-spacing:.02em;user-select:none;
}
.binary{
  position:absolute;right:16px;top:20%;z-index:0;pointer-events:none;
  writing-mode:vertical-rl;font-size:.66rem;letter-spacing:.3em;color:rgba(163,255,18,.4);
}
.corner{position:absolute;width:26px;height:26px;z-index:2;pointer-events:none;opacity:.8}
.c-tl{top:66px;left:16px;border-top:2px solid var(--acid);border-left:2px solid var(--acid)}
.c-tr{top:66px;right:16px;border-top:2px solid var(--acid);border-right:2px solid var(--acid)}
.c-bl{bottom:14px;left:16px;border-bottom:2px solid var(--acid);border-left:2px solid var(--acid)}
.c-br{bottom:14px;right:16px;border-bottom:2px solid var(--acid);border-right:2px solid var(--acid)}
@media (max-width:900px){.binary{display:none}.corner{display:none}}

.hero-in{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,64px);align-items:center;
  z-index:1;
}
.hero-status{
  margin-top:16px;text-align:center;font-size:.7rem;letter-spacing:.16em;color:var(--mut);
}
.kicker{
  font-size:.78rem;color:var(--acid);letter-spacing:.1em;margin-bottom:14px;
}
.hero-copy h1{
  font-family:var(--logo);font-weight:400;line-height:1.02;
  font-size:clamp(2.3rem,7.5vw,5rem);letter-spacing:.01em;
}
.hero-copy h1 .chrome{
  background:var(--chrome);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 10px rgba(180,200,225,.25));
}
.hero-role{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;
  font-family:var(--logo);font-size:clamp(.85rem,2.4vw,1.15rem);letter-spacing:.14em;text-transform:uppercase;
}
.hero-role span{color:var(--ink)}
.hero-role b{color:var(--mag);font-weight:400;animation:blink 2.4s infinite}
.hero-chips{margin-top:20px}
.scroll-hint{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  color:var(--acid);text-decoration:none;font-size:.7rem;letter-spacing:.28em;
  display:grid;justify-items:center;gap:4px;opacity:.85;
}
.scroll-hint i{font-style:normal;animation:bounce 1.6s infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* glitch */
.glitch{position:relative;display:inline-block}
.glitch::before,.glitch::after{
  content:attr(data-text);position:absolute;inset:0;opacity:0;pointer-events:none;
  white-space:pre-wrap;
}
.glitch.is-on::before{color:var(--cyan);animation:gl1 .38s steps(2) 1;opacity:.9}
.glitch.is-on::after{color:var(--mag);animation:gl2 .38s steps(2) 1;opacity:.9}
@keyframes gl1{
  0%{transform:translate(0)}25%{transform:translate(-4px,2px)}
  50%{transform:translate(3px,-2px)}75%{transform:translate(-2px,-1px)}100%{transform:translate(0)}
}
@keyframes gl2{
  0%{transform:translate(0)}25%{transform:translate(4px,-2px)}
  50%{transform:translate(-3px,2px)}75%{transform:translate(2px,1px)}100%{transform:translate(0)}
}

/* ─── AVATAR (squircle) ─── */
.av{position:relative;display:inline-block}
.av-frame{
  position:relative;aspect-ratio:1;overflow:hidden;
  border-radius:30%;
  background:
    linear-gradient(160deg,rgba(163,255,18,.2),rgba(34,230,255,.12) 45%,rgba(255,61,203,.14));
  box-shadow:
    inset 0 0 0 1px rgba(163,255,18,.5),
    inset 0 0 34px rgba(163,255,18,.14),
    0 0 34px rgba(163,255,18,.14);
}
.av-lg .av-frame{width:clamp(180px,26vw,250px)}
.av-sm .av-frame{width:96px;border-radius:26%;box-shadow:inset 0 0 0 1px rgba(163,255,18,.5),0 0 18px rgba(163,255,18,.12)}
.av-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;filter:saturate(1.05) contrast(1.04)}
.av-fb{
  position:absolute;inset:0;display:grid;place-items:center;z-index:1;
  font-family:var(--disp);font-weight:900;font-size:clamp(3rem,9vw,4.6rem);
  letter-spacing:.02em;
  background:linear-gradient(180deg,var(--acid),var(--cyan));
  color:transparent;-webkit-text-fill-color:transparent;
  -webkit-background-clip:text;background-clip:text;
}
.av-sm .av-fb{font-size:1.9rem}
.av-fb-p2{background:linear-gradient(180deg,var(--mag),var(--cyan));-webkit-background-clip:text;background-clip:text}
.av-lines{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 4px);
  mix-blend-mode:overlay;
}
.av-corner{position:absolute;width:18px;height:18px;z-index:4;pointer-events:none}
.ac-tl{top:7px;left:7px;border-top:2px solid var(--acid);border-left:2px solid var(--acid)}
.ac-br{bottom:7px;right:7px;border-bottom:2px solid var(--acid);border-right:2px solid var(--acid)}
.av-id{
  display:block;margin-top:12px;text-align:center;
  font-size:.66rem;letter-spacing:.24em;color:var(--acid);
}
.av-p2 .av-frame{box-shadow:inset 0 0 0 1px rgba(255,61,203,.55),0 0 18px rgba(255,61,203,.14);background:linear-gradient(160deg,rgba(255,61,203,.2),rgba(34,230,255,.1))}
.av-p2 .av-corner{border-color:var(--mag)}
.mpar{will-change:transform}

/* ─── PROFILE ─── */
.about-grid{display:grid;gap:18px}
.about-txt .lead{font-size:clamp(1rem,2.4vw,1.18rem);margin-bottom:14px}
.about-txt mark{background:none;color:var(--acid);font-weight:700}
.about-txt .mut{color:var(--mut);margin-bottom:12px;font-size:.94rem}
.about-txt .chips{margin-top:18px}

.class-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.class-card{
  position:relative;background:var(--panel);border:1px solid var(--line-soft);
  padding:22px 20px;overflow:hidden;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
  transition:border-color .3s,box-shadow .3s;
}
.class-card::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(420px at var(--gx,50%) var(--gy,50%),rgba(163,255,18,.1),transparent 55%);
}
.class-card:hover::before{opacity:1}
.class-card:hover{border-color:var(--line);box-shadow:0 0 30px rgba(163,255,18,.1)}
.cc-class{font-size:.64rem;letter-spacing:.22em;color:var(--cyan)}
.cc-ico{font-size:1.7rem;margin:12px 0 6px;filter:grayscale(.2) drop-shadow(0 0 8px rgba(163,255,18,.35))}
.class-card h3{font-family:var(--logo);font-weight:400;letter-spacing:.06em;font-size:1.1rem;margin-bottom:8px}
.class-card p{color:var(--mut);font-size:.86rem}
.cc-xp{
  position:absolute;top:16px;right:16px;font-size:.62rem;letter-spacing:.14em;
  color:var(--acid);opacity:.85;
}

/* ─── SKILLS ─── */
.skills-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:start}
@media (max-width:880px){.skills-grid{grid-template-columns:1fr}}
.bar{margin-bottom:18px}
.bar:last-child{margin-bottom:0}
.bar-top{display:flex;justify-content:space-between;gap:12px;font-size:.85rem;margin-bottom:7px}
.bar-val{color:var(--acid);font-weight:700;font-variant-numeric:tabular-nums}
.bar-track{height:10px;background:rgba(255,255,255,.07);overflow:hidden;position:relative}
.bar-track i{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--cyan),var(--acid));
  box-shadow:0 0 12px rgba(163,255,18,.6);
  transition:width 1.2s var(--e);
}
.bar-track-alt i{background:linear-gradient(90deg,var(--mag),var(--amber));box-shadow:0 0 12px rgba(255,217,25,.5)}
.bar-track-p2 i{background:linear-gradient(90deg,var(--mag),var(--cyan));box-shadow:0 0 12px rgba(255,61,203,.55)}
.bar-track::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 11px,rgba(6,7,10,.5) 11px 13px);
}
.bar-note{display:block;font-size:.66rem;color:var(--mut);margin-top:5px;letter-spacing:.1em}
.skills-side{display:grid;gap:18px}

/* ─── QUESTS ─── */
.quests{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}
.quest{
  position:relative;background:var(--panel);border:1px solid var(--line-soft);
  padding:22px 20px 18px;overflow:hidden;display:flex;flex-direction:column;gap:12px;
  clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);
  transition:border-color .3s,box-shadow .3s;
}
.quest::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(460px at var(--gx,50%) var(--gy,50%),rgba(34,230,255,.09),transparent 55%);
}
.quest:hover::before{opacity:1}
.quest:hover{border-color:rgba(34,230,255,.4);box-shadow:0 0 32px rgba(34,230,255,.1)}
.q-top{display:flex;justify-content:space-between;align-items:center}
.q-id{font-family:var(--logo);font-size:.72rem;letter-spacing:.18em;color:var(--cyan)}
.q-status{font-size:.62rem;letter-spacing:.16em;display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border:1px solid}
.q-status i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;animation:blink 1.4s infinite}
.st-run{color:var(--acid);border-color:rgba(163,255,18,.4);background:rgba(163,255,18,.07)}
.st-wip{color:var(--amber);border-color:rgba(255,217,25,.4);background:rgba(255,217,25,.06)}
.st-ok{color:var(--cyan);border-color:rgba(34,230,255,.4);background:rgba(34,230,255,.06)}
.quest h3{font-family:var(--logo);font-weight:400;letter-spacing:.05em;font-size:1.18rem}
.quest p{color:var(--mut);font-size:.88rem;flex:1}
.q-foot{
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px dashed rgba(255,255,255,.12);padding-top:12px;
  font-size:.68rem;letter-spacing:.1em;color:var(--mut);
}
.q-arrow{color:var(--acid);font-size:1rem;transition:transform .3s var(--e)}
.quest:hover .q-arrow{transform:translateX(6px)}

/* ─── PARTY ─── */
.party{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:820px){.party{grid-template-columns:1fr}}
.mate{
  position:relative;background:var(--panel);border:1px solid var(--line-soft);
  padding:24px 22px;display:flex;flex-direction:column;gap:14px;overflow:hidden;
  clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);
  transition:border-color .3s,box-shadow .3s;
}
.mate[data-p="1"]{border-color:rgba(163,255,18,.28)}
.mate[data-p="1"]:hover{box-shadow:0 0 34px rgba(163,255,18,.12)}
.mate[data-p="2"]{border-color:rgba(255,61,203,.3)}
.mate[data-p="2"]:hover{box-shadow:0 0 34px rgba(255,61,203,.13)}
.mate::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(460px at var(--gx,50%) var(--gy,50%),rgba(163,255,18,.08),transparent 55%);
}
.mate-p2::before{background:radial-gradient(460px at var(--gx,50%) var(--gy,50%),rgba(255,61,203,.09),transparent 55%)}
.mate:hover::before{opacity:1}
.mate-slot{
  position:absolute;top:0;right:0;font-size:.62rem;letter-spacing:.22em;
  padding:6px 14px;background:var(--acid);color:#06070a;font-weight:700;
  clip-path:polygon(14px 0,100% 0,100% 100%);
}
.mate-p2 .mate-slot{background:var(--mag)}
.mate-top{display:flex;gap:18px;align-items:center}
.mate-id h3{font-family:var(--logo);font-weight:400;letter-spacing:.05em;font-size:1.15rem}
.mate-class{display:block;font-size:.68rem;letter-spacing:.14em;color:var(--acid);margin:5px 0}
.mate-p2 .mate-class{color:var(--mag)}
.mate-loc{display:block;font-size:.74rem;color:var(--mut)}
.mini{display:grid;gap:5px}
.mini-top{display:flex;justify-content:space-between;font-size:.72rem;letter-spacing:.12em}
.mini-top b{color:var(--acid)}
.mate-p2 .mini-top b{color:var(--mag)}
.mate-p2 .mini-top b.over{
  animation:overpulse 1.1s ease-in-out infinite;
  text-shadow:0 0 12px rgba(255,61,203,.9);
}
@keyframes overpulse{0%,100%{opacity:1}50%{opacity:.45}}
.bar-sm{height:7px}

/* ─── TICKER ─── */
.ticker{
  position:relative;z-index:1;overflow:hidden;
  border-block:1px solid var(--line);background:rgba(163,255,18,.045);
}
.ticker-track{display:flex;width:max-content;animation:tick 22s linear infinite}
.ticker-track span{
  font-family:var(--logo);font-size:clamp(1rem,2.6vw,1.35rem);letter-spacing:.22em;
  padding:14px 0;color:transparent;white-space:nowrap;
  background:linear-gradient(180deg,#fff,#9fb0c2 55%,#eef4fa);-webkit-background-clip:text;background-clip:text;
}
@keyframes tick{to{transform:translateX(-50%)}}

/* ─── UPLINK ─── */
.uplink{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}
@media (max-width:880px){.uplink{grid-template-columns:1fr}}
.term{
  background:#080b0f;border:1px solid rgba(163,255,18,.3);
  box-shadow:0 0 40px rgba(163,255,18,.07),inset 0 0 60px rgba(163,255,18,.03);
  clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);
  overflow:hidden;
}
.term-bar{
  display:flex;align-items:center;gap:12px;padding:10px 16px;
  background:rgba(163,255,18,.07);border-bottom:1px solid rgba(163,255,18,.18);
  font-size:.68rem;letter-spacing:.1em;color:var(--mut);
}
.term-dots{display:inline-flex;gap:6px}
.term-dots i{width:9px;height:9px;border-radius:50%}
.d-r{background:#ff5f57}.d-y{background:#febc2e}.d-g{background:#28c840}
.term-body{
  padding:20px 18px;font-size:.84rem;line-height:1.9;min-height:280px;
  white-space:pre-wrap;word-break:break-word;
}
.term-body .l-cmd{color:var(--acid)}
.term-body .l-out{color:#c6d2de}
.term-body .l-ok{color:var(--cyan)}
.term-caret{color:var(--acid);animation:blink 1s steps(1) infinite}
.term-cta{padding:0 18px 20px}
.id-list{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:.84rem}
.id-list dt{color:var(--acid);font-size:.68rem;letter-spacing:.16em;padding-top:3px}
.id-list dd{color:#cdd6e2}
.uplink-note{color:var(--mut);font-size:.86rem;margin-top:16px}

/* ─── FOOTER ─── */
.foot{position:relative;z-index:1;border-top:1px solid var(--line-soft);padding:26px 0 36px}
.foot-in{
  display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center;
  font-size:.74rem;color:var(--mut);letter-spacing:.06em;
}
.foot a{color:var(--acid);text-decoration:none}
.foot a:hover{text-decoration:underline}

/* ─── TOAST ─── */
.toast{
  position:fixed;right:18px;bottom:18px;z-index:80;display:flex;gap:12px;align-items:center;
  background:rgba(8,11,15,.94);border:1px solid var(--acid);padding:14px 18px;
  box-shadow:0 0 30px rgba(163,255,18,.25);
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
  transform:translateY(140%);transition:transform .6s var(--e);
}
.toast.show{transform:translateY(0)}
.toast-ico{font-size:1.6rem}
.toast-txt{display:grid;line-height:1.4}
.toast-txt b{font-family:var(--logo);font-weight:400;font-size:.8rem;letter-spacing:.12em;color:var(--acid)}
.toast-txt i{font-style:normal;font-size:.7rem;color:var(--mut)}

/* ─── tilt targets ─── */
.tilt{will-change:transform;position:relative}
.tilt.t-reset{transition:transform .5s var(--e)}
.tilt::after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(420px at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.06),transparent 55%);
  border-radius:inherit;
}
.tilt:hover::after{opacity:1}

/* ─── responsive ─── */
@media (max-width:820px){
  .hero-in{grid-template-columns:1fr;justify-items:center;text-align:center}
  .hero-copy .btns{justify-content:center}
  .hero-copy .chips{justify-content:center}
  .kicker{text-align:center}
  .av-lg .av-frame{width:min(210px,52vw)}
  .hud-sec{display:none}
  .dots{right:8px;gap:11px}
  .dots button span{display:none}
}
@media (max-width:520px){
  .hud-pct{display:none}
  .hud-right{gap:8px}
  .hud-btn-t{display:none}
  .hud-btn{padding:6px 8px}
  .mate-top{flex-direction:column;align-items:flex-start;gap:14px}
  .toast{left:12px;right:12px;bottom:12px}
  .btn{width:100%}
  .btns{width:100%}
}

/* ─── burst canvas ─── */
#fx2{position:fixed;inset:0;z-index:75;pointer-events:none}

/* ─── HUD buttons ─── */
.hud-btn{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;color:var(--mut);
  background:rgba(255,255,255,.05);border:1px solid var(--line-soft);
  padding:6px 10px;cursor:pointer;transition:.25s;white-space:nowrap;
}
.hud-btn b{color:var(--acid);font-weight:500}
.hud-btn:hover{border-color:var(--acid);color:var(--ink)}
.hud-btn.on{border-color:var(--acid);color:var(--acid);background:var(--acid-dim)}
html.has-cursor input,html.has-cursor textarea{cursor:text !important}

/* ─── god mode ─── */
.god-badge{
  position:fixed;top:54px;left:50%;transform:translateX(-50%);z-index:85;
  font-family:var(--logo);font-size:.7rem;letter-spacing:.24em;color:#06070a;
  padding:7px 18px;background:linear-gradient(90deg,var(--mag),var(--acid),var(--cyan),var(--mag));
  background-size:300% 100%;animation:godbg 2s linear infinite;white-space:nowrap;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  box-shadow:0 0 24px rgba(163,255,18,.4);
}
.god-badge[hidden]{display:none}
@keyframes godbg{to{background-position:300% 0}}
.god .glitch{animation:godhue 2.2s linear infinite}
@keyframes godhue{to{filter:hue-rotate(360deg)}}
.god .hud{box-shadow:0 0 26px rgba(255,61,203,.35)}
.god .sec-tag{animation:godhue 3s linear infinite}
.god .chip-acid{animation:godhue 2.6s linear infinite}

/* ─── secret console ─── */
.cc{
  position:fixed;inset:0;z-index:120;display:grid;place-items:end center;padding:16px;
  background:rgba(4,6,9,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.cc[hidden]{display:none}
.cc-win{
  width:min(680px,100%);max-height:min(72vh,580px);display:flex;flex-direction:column;
  background:#070a0e;border:1px solid var(--acid);
  box-shadow:0 0 60px rgba(163,255,18,.18);
  clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
}
.cc-bar{
  display:flex;align-items:center;gap:10px;padding:9px 14px;background:rgba(163,255,18,.07);
  border-bottom:1px solid rgba(163,255,18,.2);font-size:.64rem;letter-spacing:.12em;color:var(--mut);
}
.cc-x{
  margin-left:auto;background:none;border:1px solid var(--line-soft);color:var(--mut);
  font-size:.7rem;padding:3px 9px;cursor:pointer;transition:.2s;
}
.cc-x:hover{color:#06070a;background:var(--acid);border-color:var(--acid)}
.cc-log{
  flex:1;overflow-y:auto;padding:14px 16px;font-size:.8rem;line-height:1.8;
  scrollbar-width:thin;scrollbar-color:var(--acid) transparent;
}
.cc-log div{white-space:pre-wrap;word-break:break-word}
.cc-log .l-cmd{color:var(--acid)}
.cc-log .l-out{color:#c6d2de}
.cc-log .l-err{color:var(--mag)}
.cc-log .l-ok{color:var(--cyan)}
.cc-log a{color:var(--cyan)}
.cc-form{display:flex;gap:10px;align-items:center;padding:12px 16px;border-top:1px solid rgba(163,255,18,.18)}
.cc-prompt{color:var(--acid)}
.cc-in{
  flex:1;background:none;border:0;outline:0;color:var(--ink);
  font-family:var(--mono);font-size:.85rem;min-width:0;
}
.cc-in::placeholder{color:var(--mut);opacity:.5}
body.cc-open{overflow:hidden}
.cc-hint{font-size:.66rem;letter-spacing:.1em;color:var(--mut)}

/* ─── touch & reduced motion ─── */
@media (pointer:coarse){
  .cursor{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .rv,.rv-fade{opacity:1;transform:none}
}
