@font-face{font-family:"Anton";src:url(fonts/Anton-Regular.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Space Grotesk";src:url(fonts/SpaceGrotesk-var.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(fonts/JetBrainsMono-var.woff2) format("woff2");font-weight:100 800;font-display:swap}

:root{
  --bg:#050505;--bg2:#0d0d0f;--line:#232327;--fg:#f4f4f5;--dim:#8b8b93;
  --red:#ff1f4b;--cyan:#00e5ff;--green:#19ff8c;
  --display:"Anton",Impact,"Arial Narrow",sans-serif;
  --sans:"Space Grotesk",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{overflow-x:hidden;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:400 17px/1.55 var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px)}
img{max-width:100%;display:block}
a{color:inherit}
.mono{font-family:var(--mono)}
.dim{color:var(--dim)}
kbd{font-family:var(--mono);border:1px solid var(--line);border-radius:4px;padding:0 .35em;font-size:.85em}

.preview-flag{background:var(--fg);color:#000;font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:7px 10px}

/* nav */
.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:12px clamp(16px,4vw,48px);background:rgba(5,5,5,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 22px/1 var(--display);letter-spacing:.02em}
.nav-logo img{border-radius:8px}
.nav-links{display:flex;gap:22px;margin-left:auto}
.nav-links a{text-decoration:none;color:var(--dim);font:500 14px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.nav-links a:hover{color:var(--fg)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border:1px solid var(--fg);background:transparent;color:var(--fg);font:600 15px var(--mono);text-transform:uppercase;letter-spacing:.04em;text-decoration:none;cursor:pointer;border-radius:0;transition:transform .12s,background .12s,color .12s}
.btn:hover{background:var(--fg);color:#000}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.btn-sm{min-height:36px;padding:0 14px;font-size:13px}
.btn-primary{background:var(--fg);color:#000;box-shadow:-4px 0 0 var(--red),4px 0 0 var(--cyan)}
.btn-primary:hover{background:#fff;box-shadow:-6px 0 0 var(--red),6px 0 0 var(--cyan)}
.btn[disabled],.btn.is-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}

/* glitch text */
.g{position:relative;display:inline-block}
.g::before,.g::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;pointer-events:none}
.g::before{color:var(--red);transform:translateX(-.05em);clip-path:inset(38% 0 40% 0);mix-blend-mode:screen}
.g::after{color:var(--cyan);transform:translateX(.07em);clip-path:inset(38% 0 40% 0);mix-blend-mode:screen}
@media (prefers-reduced-motion:no-preference){
  .g::before{animation:gl1 3.2s steps(1) infinite}
  .g::after{animation:gl2 3.2s steps(1) infinite}
}
@keyframes gl1{0%,86%{clip-path:inset(38% 0 40% 0);transform:translateX(-.05em)}88%{clip-path:inset(12% 0 70% 0);transform:translateX(-.1em)}92%{clip-path:inset(62% 0 18% 0);transform:translateX(.04em)}96%{clip-path:inset(38% 0 40% 0);transform:translateX(-.08em)}}
@keyframes gl2{0%,86%{clip-path:inset(38% 0 40% 0);transform:translateX(.07em)}88%{clip-path:inset(70% 0 8% 0);transform:translateX(.12em)}92%{clip-path:inset(20% 0 64% 0);transform:translateX(-.03em)}96%{clip-path:inset(38% 0 40% 0);transform:translateX(.1em)}}

/* hero */
.hero{position:relative;min-height:min(86vh,820px);display:grid;align-items:center;padding:clamp(40px,7vw,96px) clamp(16px,4vw,48px);overflow:hidden;isolation:isolate}
.hero-img{position:absolute;inset:0;z-index:-1}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;filter:grayscale(1) contrast(1.1);opacity:.75}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,rgba(5,5,5,.92) 34%,rgba(5,5,5,.2) 70%,rgba(5,5,5,.5) 100%),linear-gradient(0deg,var(--bg) 0%,transparent 30%)}
.hero-copy{max-width:640px}
.eyebrow{margin:0 0 6px;color:var(--cyan);font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.her-title{margin:0;font:400 clamp(120px,22vw,270px)/.86 var(--display);letter-spacing:.01em}
.lede{font-size:clamp(18px,2vw,21px);margin:18px 0 0;max-width:34ch;color:#d6d6da}
.lede.strong{color:var(--fg);font-weight:700;margin-top:10px}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.ca{display:flex;align-items:center;gap:12px;margin-top:28px;padding:10px 10px 10px 14px;border:1px dashed #3a3a40;background:rgba(13,13,15,.8);max-width:560px}
.ca-label{color:var(--dim);font-size:12px;letter-spacing:.1em}
.ca code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}

/* tape */
.ticker-tape{border-block:1px solid var(--line);overflow:hidden;background:var(--bg2)}
.tape-inner{display:flex;gap:44px;width:max-content;padding:12px 0;font-size:13px;letter-spacing:.14em;color:var(--dim)}
.tape-inner span::before{content:"■ ";color:var(--red)}
.tape-inner span:nth-child(even)::before{color:var(--cyan)}
@media (prefers-reduced-motion:no-preference){.tape-inner{animation:tape 32s linear infinite}}
@keyframes tape{to{transform:translateX(-50%)}}

/* sections */
section:not(.hero){padding:clamp(64px,9vw,120px) clamp(16px,4vw,48px);max-width:1180px;margin:0 auto}
.section-title{font:400 clamp(44px,7vw,88px)/.95 var(--display);margin:0 0 28px;text-transform:uppercase}
.note{color:var(--dim);font-size:13px;margin-top:20px;max-width:80ch}

/* duel */
.duel-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:stretch}
.fighter{border:1px solid var(--line);background:var(--bg2);padding:26px}
.fighter h3{font:400 64px/1 var(--display);margin:4px 0 12px}
.fighter p{color:#cfcfd4;margin:0 0 18px}
.tag{margin:0;font-size:12px;letter-spacing:.16em;color:var(--dim)}
.fighter-ai{border-color:#3b3b42;box-shadow:inset 3px 0 0 var(--cyan)}
.fighter-human{box-shadow:inset 3px 0 0 var(--red)}
.vs{display:grid;place-items:center}
.vs span{font:400 40px var(--display);color:var(--dim)}
.stats{margin:0;display:grid;gap:8px;font-size:13px}
.stats div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:8px}
.stats dt{color:var(--dim)}
.stats dd{margin:0}
.pending{color:#6d6d75}

/* game */
.play-head p{max-width:62ch;color:#cfcfd4;margin:0 0 26px}
.game{border:1px solid #333339;background:#08080a}
.game-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);padding:12px 16px;gap:10px}
.score{display:flex;flex-direction:column;gap:2px}
.score span,.round span{font-size:11px;letter-spacing:.14em;color:var(--dim)}
.score b{font-size:clamp(20px,3vw,28px);font-weight:700}
.score.her{text-align:right;align-items:flex-end}
.score.you b{color:var(--fg)}
.round{text-align:center;display:flex;flex-direction:column}
.round b{font-size:18px}
.up{color:var(--green)!important}.down{color:var(--red)!important}
.chart-wrap{position:relative;height:clamp(260px,40vw,420px)}
#chart{display:block;width:100%;height:100%}
.mc{position:absolute;left:14px;top:12px;font-size:13px;color:var(--dim)}
.mc b{color:var(--fg)}
.overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(5,5,5,.78);backdrop-filter:blur(2px);padding:16px}
.overlay[hidden]{display:none}
.overlay-card{max-width:440px;text-align:center}
.overlay-card h3{font:400 clamp(40px,6vw,60px)/1 var(--display);margin:4px 0 10px}
.overlay-card p{color:#cfcfd4;margin:0 0 18px}
.ov-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.controls{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid var(--line)}
.btn-buy,.btn-sell{min-height:58px;font-size:20px;font-weight:800}
.btn-buy{border-color:var(--green);color:var(--green)}
.btn-buy:hover{background:var(--green);color:#000}
.btn-sell{border-color:var(--red);color:var(--red)}
.btn-sell:hover{background:var(--red);color:#000}
.pos{text-align:center;font-size:13px;color:var(--dim);min-width:150px}
.log{border-top:1px solid var(--line);padding:12px 16px;height:116px;overflow:auto;font-size:13px}
.log p{margin:0 0 4px}
.log .b{color:var(--green)}.log .s{color:var(--red)}

/* how */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.steps li{border-top:2px solid var(--fg);padding-top:16px}
.steps b{font:600 13px var(--mono);color:var(--dim)}
.steps h3{font:400 36px/1 var(--display);margin:8px 0 8px;text-transform:uppercase}
.steps p{margin:0;color:#cfcfd4}

/* buy */
.buy-steps{list-style:none;padding:0;margin:0 0 28px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.buy-steps li{border:1px solid var(--line);padding:18px;background:var(--bg2)}
.buy-steps span{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--fg);font-size:14px;margin-bottom:10px}
.buy-steps p{margin:0;color:#cfcfd4}
.buy-cta{display:flex;flex-wrap:wrap;gap:14px}

.foot{border-top:1px solid var(--line);padding:40px clamp(16px,4vw,48px);display:grid;gap:10px;justify-items:start;max-width:1180px;margin:0 auto;font-size:14px;color:var(--dim)}
.foot-mark{border-radius:12px}
.foot p{margin:0;max-width:70ch}

@media (max-width:860px){
  .nav-links{display:none}
  .nav .btn-sm{margin-left:auto}
  .duel-grid{grid-template-columns:1fr}
  .vs{padding:4px 0}
  .steps{grid-template-columns:1fr}
  .buy-steps{grid-template-columns:1fr 1fr}
  .hero{min-height:auto}
  .hero-img img{object-position:78% 50%;opacity:.45}
}
@media (max-width:520px){
  body{font-size:16px}
  .buy-steps{grid-template-columns:1fr}
  .controls{grid-template-columns:1fr 1fr}
  .pos{grid-column:1/-1;grid-row:1}
  .game-bar{padding:10px 12px}
  .round b{font-size:15px}
  .ca{flex-wrap:wrap}
  .ca code{flex-basis:100%;order:3;font-size:12px}
  .hero-cta .btn{flex:1 1 100%}
  .fighter h3{font-size:52px}
}
