/* ============================================================
   NEON DYNASTY — retro-future arcade
   Fonts: Bungee (marquee display) · Chakra Petch (UI/body) · VT323 (score readouts)
   ============================================================ */

:root{
  --bg:      #05060a;
  --bg-2:    #0a0b14;
  --panel:   #0e1020;
  --ink:     #f4f0ff;
  --ink-dim: #b7b2d6;
  --ink-mut: #756f96;

  --mag:  #ff2e97;   /* neon magenta  */
  --cyan: #24e0ff;   /* neon cyan     */
  --vio:  #a24bff;   /* electric violet */
  --amber:#ffb454;   /* outrun sun    */
  --chrome:#dfe6ff;

  --line: rgba(162,75,255,.20);
  --line-2: rgba(36,224,255,.18);

  --shadow-mag: 0 0 14px rgba(255,46,151,.55), 0 0 40px rgba(255,46,151,.25);
  --shadow-cyan:0 0 14px rgba(36,224,255,.55), 0 0 40px rgba(36,224,255,.22);

  --maxw: 1240px;
  --pad: clamp(1.1rem, 4vw, 4rem);
  --r: 14px;

  --f-disp: "Bungee", "Chakra Petch", system-ui, sans-serif;
  --f-body: "Chakra Petch", system-ui, -apple-system, sans-serif;
  --f-mono: "VT323", ui-monospace, monospace;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--f-body);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  /* faint scanline field on the whole page */
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,.014) 0 1px, transparent 1px 3px),
    radial-gradient(120% 80% at 50% -10%, rgba(162,75,255,.10), transparent 60%);
  background-attachment:fixed;
}

img,canvas{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

.skip{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--mag); color:#fff; padding:.7rem 1.1rem; border-radius:0 0 10px 0;
  font-weight:700; letter-spacing:.02em;
}
.skip:focus{ left:0; }

:focus-visible{ outline:2px solid var(--cyan); outline-offset:3px; border-radius:4px; }

::selection{ background:var(--mag); color:#fff; }

/* ---------- shared section furniture ---------- */
section{ position:relative; }
.sec-head{ max-width:760px; margin:0 auto clamp(2rem,5vw,3.4rem); text-align:center; padding:0 var(--pad); }
.sec-kicker{
  font-family:var(--f-mono); font-size:1.15rem; letter-spacing:.28em;
  color:var(--cyan); margin:0 0 .5rem; text-shadow:var(--shadow-cyan);
}
.sec-title{
  font-family:var(--f-disp); font-weight:400;
  font-size:clamp(2.1rem, 6.5vw, 4.4rem); line-height:.98; margin:0 0 .7rem;
  letter-spacing:.005em;
  color:var(--ink);
  text-shadow: 2px 0 0 rgba(255,46,151,.5), -2px 0 0 rgba(36,224,255,.5);
}
.sec-lede{ color:var(--ink-dim); font-size:clamp(1rem,1.6vw,1.16rem); margin:0 auto; max-width:60ch; }

.glow-c{ color:var(--cyan); text-shadow:var(--shadow-cyan); }

/* ---------- buttons ---------- */
.btn{
  --bc:var(--mag);
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-body); font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  font-size:.86rem; padding:.85rem 1.5rem; border-radius:10px;
  border:2px solid var(--bc); color:var(--ink);
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0));
  transition:transform .18s ease, box-shadow .25s ease, background .25s ease;
  cursor:pointer; position:relative;
}
.btn--primary{ --bc:var(--mag); box-shadow:var(--shadow-mag); }
.btn--ghost{ --bc:var(--cyan); box-shadow:0 0 0 rgba(0,0,0,0); }
.btn--ghost:hover{ box-shadow:var(--shadow-cyan); }
.btn--full{ width:100%; justify-content:center; }
.btn:hover{ transform:translateY(-2px); background:rgba(255,255,255,.08); }
.btn:active{ transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .btn:hover{ transform:none; } }

/* blinking coin-op cursors */
.blink{ animation:blink 1.05s steps(1) infinite; color:var(--mag); }
.blink2{ animation:blink 1.3s steps(1) infinite; }
@keyframes blink{ 0%,55%{opacity:1} 56%,100%{opacity:.15} }
@media (prefers-reduced-motion: reduce){ .blink,.blink2{ animation:none; } }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.7rem clamp(1rem,4vw,2.4rem);
  background:linear-gradient(180deg, rgba(5,6,10,.86), rgba(5,6,10,.35) 70%, transparent);
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
  transition:background .3s ease, box-shadow .3s ease;
}
.nav.is-stuck{
  background:rgba(6,7,14,.9);
  box-shadow:0 1px 0 var(--line), 0 10px 30px rgba(0,0,0,.5);
}
.nav__brand{ display:flex; align-items:center; gap:.6rem; }
.nav__coin{
  width:18px; height:18px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff, var(--amber) 45%, #b56b12 100%);
  box-shadow:0 0 10px rgba(255,180,84,.7); flex:0 0 auto;
}
.nav__brandtext{ font-family:var(--f-disp); font-size:1.02rem; letter-spacing:.02em; color:var(--ink); }
.nav__brandtext b{ color:var(--mag); font-weight:400; text-shadow:0 0 10px rgba(255,46,151,.5); }
.nav__links{ display:flex; align-items:center; gap:clamp(.6rem,2vw,1.6rem); }
.nav__links a{
  font-size:.82rem; font-weight:600; letter-spacing:.04em; color:var(--ink-dim);
  text-transform:uppercase; transition:color .2s, text-shadow .2s; white-space:nowrap;
}
.nav__links a:hover{ color:var(--ink); text-shadow:var(--shadow-cyan); }
.nav__cta{
  border:1.5px solid var(--mag); border-radius:8px; padding:.42rem .8rem;
  color:var(--ink)!important; box-shadow:0 0 10px rgba(255,46,151,.35);
}
.nav__cta:hover{ background:var(--mag); box-shadow:var(--shadow-mag); }
/* On small screens hide inner links, keep the coin CTA */
@media (max-width:720px){
  .nav__links a:not(.nav__cta){ display:none; }
}

/* ============================================================
   HERO — CRT attract mode
   ============================================================ */
.hero{
  position:relative; min-height:100svh; min-height:100vh;
  display:flex; flex-direction:column; justify-content:center;
  padding:6rem var(--pad) 5rem; overflow:hidden;
  isolation:isolate;
}
.hero__crt{ position:absolute; inset:0; z-index:-2; }
#crt{ width:100%; height:100%; display:block; }
/* CSS scanline + vignette on top of the shader for extra CRT bite */
.hero__scan{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,.28) 0 1px, transparent 1px 3px);
  mix-blend-mode:multiply; opacity:.5;
}
.hero__glass{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(120% 100% at 50% 42%, transparent 55%, rgba(0,0,0,.55) 100%),
    linear-gradient(180deg, rgba(255,255,255,.05), transparent 22%);
}

.hero__inner{ position:relative; max-width:var(--maxw); margin:0 auto; width:100%; text-align:center; }
.hero__eyebrow{
  font-family:var(--f-mono); font-size:1.25rem; letter-spacing:.24em; color:var(--cyan);
  margin:0 0 1rem; text-shadow:var(--shadow-cyan);
}
.hero__title{
  font-family:var(--f-disp); font-weight:400; margin:0;
  font-size:clamp(3.4rem, 15vw, 11rem); line-height:.86; letter-spacing:.01em;
}
.hero__title-line{ display:block; position:relative; color:#fff; }
.hero__title-line:first-child{
  color:var(--cyan);
  text-shadow: 0 0 8px rgba(36,224,255,.8), 0 0 34px rgba(36,224,255,.5),
               3px 0 0 rgba(255,46,151,.65), -3px 0 0 rgba(162,75,255,.55);
}
.hero__title-line:last-child{
  color:var(--mag);
  text-shadow: 0 0 8px rgba(255,46,151,.85), 0 0 40px rgba(255,46,151,.55),
               3px 0 0 rgba(36,224,255,.55), -3px 0 0 rgba(162,75,255,.5);
}
.hero__title{ animation:heroFlicker 7s infinite; }
@keyframes heroFlicker{
  0%,100%{ filter:brightness(1); } 47%{ filter:brightness(1); }
  48%{ filter:brightness(1.35); } 49%{ filter:brightness(.85); } 50%{ filter:brightness(1.2); }
  51%{ filter:brightness(1); }
}
@media (prefers-reduced-motion: reduce){ .hero__title{ animation:none; } }

.hero__tag{
  max-width:44ch; margin:1.4rem auto 0; color:var(--ink-dim);
  font-size:clamp(1rem,1.8vw,1.28rem);
}
.hero__cta{ display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; margin-top:2rem; }
.hero__insert{
  margin-top:1.8rem; font-family:var(--f-mono); font-size:1.3rem; letter-spacing:.12em;
  color:var(--ink-dim);
}
.hero__insert .blink2{ color:var(--amber); text-shadow:0 0 12px rgba(255,180,84,.7); }

/* marquee ticker at bottom of hero */
.hero__ticker{
  position:absolute; left:0; right:0; bottom:0; z-index:1;
  border-top:1.5px solid var(--line-2); border-bottom:1.5px solid var(--line-2);
  background:rgba(5,6,10,.72); overflow:hidden; padding:.5rem 0;
}
.ticker__track{
  display:inline-flex; gap:2.5rem; white-space:nowrap;
  font-family:var(--f-mono); font-size:1.2rem; letter-spacing:.1em; color:var(--cyan);
  animation:ticker 26s linear infinite; will-change:transform;
}
.ticker__track span{ text-shadow:0 0 10px rgba(36,224,255,.4); }
@keyframes ticker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .ticker__track{ animation:none; } }

/* ============================================================
   CABINETS
   ============================================================ */
.cabs{ padding:clamp(4rem,9vw,7rem) 0; }
.cab-grid{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:repeat(6,1fr); gap:1.2rem;
}
.cab{
  grid-column:span 2;
  position:relative; border-radius:var(--r); overflow:hidden;
  background:linear-gradient(180deg, var(--panel), var(--bg-2));
  border:1.5px solid var(--line);
  display:flex; flex-direction:column;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s;
}
.cab::before{ /* neon top edge glow in the cab's marquee color */
  content:""; position:absolute; inset:0; border-radius:var(--r); padding:1.5px;
  background:linear-gradient(135deg, var(--m), transparent 40%, transparent 60%, var(--m2));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:.5; transition:opacity .3s;
  pointer-events:none;
}
.cab:hover{ transform:translateY(-6px); box-shadow:0 18px 44px rgba(0,0,0,.5); }
.cab:hover::before{ opacity:1; }
.cab--feature{ grid-column:span 4; grid-row:span 2; }
.cab--wide{ grid-column:span 4; }

.cab__marquee{
  padding:1.15rem 1.3rem; position:relative;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--m) 26%, #0a0b14), #0a0b14);
  border-bottom:1.5px solid rgba(255,255,255,.06);
}
.cab__marquee::after{ /* glowing baseline strip */
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background:linear-gradient(90deg, var(--m), var(--m2)); box-shadow:0 0 14px var(--m);
}
.cab__genre{
  font-family:var(--f-mono); font-size:1.05rem; letter-spacing:.2em; color:var(--ink-dim);
  display:block; margin-bottom:.15rem;
}
.cab__name{
  font-family:var(--f-disp); font-weight:400; margin:0; line-height:.98;
  font-size:clamp(1.2rem,2.4vw,1.7rem); color:#fff;
  text-shadow:0 0 12px color-mix(in srgb, var(--m) 70%, transparent);
}
.cab--feature .cab__name{ font-size:clamp(1.8rem,4vw,2.9rem); }
.cab__body{ padding:1.15rem 1.3rem 1.4rem; display:flex; flex-direction:column; gap:1rem; flex:1; }
.cab__desc{ margin:0; color:var(--ink-dim); font-size:.98rem; }
.cab--feature .cab__desc{ font-size:1.06rem; max-width:52ch; }
.cab__meta{ list-style:none; margin:auto 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem .9rem; }
.cab__meta li{
  font-size:.78rem; color:var(--ink-mut); letter-spacing:.03em;
  border:1px solid var(--line); border-radius:6px; padding:.28rem .55rem;
}
.cab__meta b{ color:var(--cyan); font-weight:700; margin-right:.35rem; }
.cab__players{
  position:absolute; top:1.2rem; right:1.2rem;
  font-family:var(--f-mono); font-size:1.15rem; letter-spacing:.08em;
  color:var(--amber); text-shadow:0 0 10px rgba(255,180,84,.6);
  border:1.5px solid rgba(255,180,84,.5); border-radius:8px; padding:.1rem .5rem;
  background:rgba(0,0,0,.35);
}

/* ============================================================
   ARCADE / TOKENS
   ============================================================ */
.arcade{ padding:clamp(3rem,7vw,6rem) 0; }
.arcade__grid{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(1.5rem,4vw,3.2rem); align-items:start;
}
.arcade__intro .sec-title{ text-align:left; }
.arcade__intro .sec-kicker{ text-align:left; }
.arc-facts{ margin:2rem 0 0; display:grid; gap:.1rem; }
.arc-facts div{
  display:grid; grid-template-columns:8.5rem 1fr; gap:1rem; align-items:baseline;
  padding:.85rem 0; border-top:1px solid var(--line);
}
.arc-facts dt{
  font-family:var(--f-mono); font-size:1.05rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--cyan);
}
.arc-facts dd{ margin:0; color:var(--ink); }

.tokens{
  position:relative; border-radius:var(--r); padding:1.6rem 1.5rem 1.7rem;
  background:linear-gradient(180deg, rgba(162,75,255,.12), rgba(14,16,32,.9));
  border:1.5px solid var(--line);
  box-shadow:inset 0 0 40px rgba(162,75,255,.08);
}
.tokens__head{ display:flex; align-items:center; gap:.7rem; margin-bottom:1rem; }
.tokens__coin{
  width:26px; height:26px; border-radius:50%; flex:0 0 auto;
  background:radial-gradient(circle at 35% 30%, #fff, var(--amber) 42%, #a85f10 100%);
  box-shadow:0 0 14px rgba(255,180,84,.7);
  animation:spinCoin 4s linear infinite;
}
@keyframes spinCoin{ to{ transform:rotateY(360deg); } }
@media (prefers-reduced-motion: reduce){ .tokens__coin{ animation:none; } }
.tokens__head h3{
  font-family:var(--f-disp); font-weight:400; font-size:1.2rem; margin:0; color:#fff;
}
.tokens__list{ list-style:none; margin:0; padding:0; }
.tokens__list li{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding:.7rem 0; border-top:1px dashed var(--line-2); font-size:.98rem; color:var(--ink-dim);
}
.tokens__list b{ font-family:var(--f-mono); font-size:1.5rem; color:var(--cyan); text-shadow:var(--shadow-cyan); }
.tokens__list b small{ font-size:.9rem; color:var(--ink-mut); }
.tokens__deal{ color:var(--ink); }
.tokens__deal b{ color:var(--mag); text-shadow:var(--shadow-mag); }
.tokens__note{ margin:1.1rem 0 0; font-size:.86rem; color:var(--ink-mut); font-style:italic; }

/* ============================================================
   LEADERBOARD
   ============================================================ */
.board{ padding:clamp(3rem,7vw,6rem) 0; }
.board__screen{ max-width:900px; margin:0 auto; padding:0 var(--pad); }
.board__bezel{
  border-radius:16px; padding:clamp(1rem,3vw,2rem);
  background:
    radial-gradient(120% 130% at 50% 0%, rgba(36,224,255,.10), transparent 60%),
    linear-gradient(180deg, #070810, #05060a);
  border:2px solid rgba(36,224,255,.28);
  box-shadow: inset 0 0 60px rgba(36,224,255,.10), 0 0 40px rgba(0,0,0,.6);
  position:relative; overflow:hidden;
}
.board__bezel::before{ /* moving scan sweep */
  content:""; position:absolute; left:0; right:0; top:0; height:38%;
  background:linear-gradient(180deg, rgba(36,224,255,.10), transparent);
  animation:boardScan 6s linear infinite; pointer-events:none;
}
@keyframes boardScan{ 0%{ transform:translateY(-40%);} 100%{ transform:translateY(300%);} }
@media (prefers-reduced-motion: reduce){ .board__bezel::before{ animation:none; opacity:.4; } }

.board__list{ list-style:none; margin:0; padding:0; counter-reset:none; }
.board__row{
  display:grid; grid-template-columns:3.2rem 1fr 1.2fr auto; gap:.6rem 1rem; align-items:baseline;
  padding:.7rem .4rem; border-bottom:1px solid rgba(255,255,255,.05);
  font-family:var(--f-mono); font-size:clamp(1.15rem,2.4vw,1.7rem); letter-spacing:.04em;
}
.board__row--head{
  color:var(--ink-mut); font-size:1rem!important; letter-spacing:.18em;
  border-bottom:1.5px solid rgba(36,224,255,.3); margin-bottom:.4rem;
}
.board__rank{ color:var(--amber); text-shadow:0 0 10px rgba(255,180,84,.5); }
.board__name{ color:var(--mag); text-shadow:var(--shadow-mag); }
.board__game{ color:var(--ink-dim); font-family:var(--f-body); font-size:.8em; letter-spacing:0; }
.board__score{ color:var(--cyan); text-align:right; text-shadow:var(--shadow-cyan); font-variant-numeric:tabular-nums; }
.board__row.is-glitch .board__name{ animation:glitchName .4s steps(2) 1; }
@keyframes glitchName{
  0%{ transform:translateX(0); } 25%{ transform:translateX(-2px); color:var(--cyan); }
  50%{ transform:translateX(2px); color:var(--mag); } 75%{ transform:translateX(-1px); color:var(--vio); }
  100%{ transform:translateX(0); }
}
.board__foot{ margin:1.2rem .2rem 0; color:var(--ink-mut); font-size:.9rem; }
.board__foot .blink{ color:var(--cyan); }

@media (max-width:560px){
  .board__row{ grid-template-columns:2.6rem 1fr auto; }
  .board__game{ display:none; }
  .board__row--head .board__game{ display:none; }
}

/* ============================================================
   TOURNAMENTS timeline
   ============================================================ */
.events{ padding:clamp(4rem,8vw,7rem) 0; }
.timeline{
  list-style:none; margin:0 auto; padding:0 var(--pad); max-width:820px;
  position:relative;
}
.timeline::before{
  content:""; position:absolute; left:calc(var(--pad) + 2.1rem); top:.5rem; bottom:.5rem; width:2px;
  background:linear-gradient(180deg, var(--mag), var(--cyan), var(--vio));
  box-shadow:0 0 12px rgba(36,224,255,.4); opacity:.5;
}
.tl{ position:relative; display:grid; grid-template-columns:4.4rem 1fr; gap:1.2rem; margin-bottom:1.3rem; }
.tl__day{
  z-index:1; width:4.4rem; height:4.4rem; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--f-disp); font-size:1.05rem; color:#fff;
  background:linear-gradient(180deg, color-mix(in srgb, var(--m) 30%, #0a0b14), #0a0b14);
  border:1.5px solid var(--m); box-shadow:0 0 18px color-mix(in srgb, var(--m) 45%, transparent);
}
.tl__card{
  background:linear-gradient(180deg, var(--panel), var(--bg-2));
  border:1.5px solid var(--line); border-radius:var(--r); padding:1.1rem 1.3rem;
  transition:transform .25s ease, border-color .25s;
}
.tl__card:hover{ transform:translateX(4px); border-color:var(--m); }
@media (prefers-reduced-motion: reduce){ .tl__card:hover{ transform:none; } }
.tl__when{ margin:0 0 .2rem; font-family:var(--f-mono); font-size:1.1rem; letter-spacing:.1em; color:var(--cyan); }
.tl__name{ margin:0 0 .35rem; font-family:var(--f-disp); font-weight:400; font-size:1.15rem; color:#fff; }
.tl__desc{ margin:0; color:var(--ink-dim); font-size:.96rem; }

/* ============================================================
   CONTACT
   ============================================================ */
.contact{ padding:clamp(3rem,7vw,6rem) 0 clamp(4rem,8vw,6rem); }
.contact__grid{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:start;
}
.contact__copy .sec-title,.contact__copy .sec-kicker{ text-align:left; }
.contact__links{ list-style:none; margin:2rem 0 0; padding:0; }
.contact__links li{
  display:grid; grid-template-columns:7rem 1fr; gap:1rem; padding:.8rem 0;
  border-top:1px solid var(--line); align-items:baseline;
}
.contact__links span{ font-family:var(--f-mono); font-size:1rem; letter-spacing:.14em; color:var(--ink-mut); text-transform:uppercase; }
.contact__links a{ color:var(--cyan); font-size:1.05rem; transition:text-shadow .2s; }
.contact__links a:hover{ text-shadow:var(--shadow-cyan); }

.contact__form{
  background:linear-gradient(180deg, rgba(14,16,32,.9), var(--bg-2));
  border:1.5px solid var(--line); border-radius:var(--r); padding:1.6rem 1.5rem;
  display:grid; gap:1rem; box-shadow:inset 0 0 40px rgba(36,224,255,.05);
}
.contact__form label{
  display:grid; gap:.4rem; font-family:var(--f-mono); font-size:1rem; letter-spacing:.1em;
  color:var(--ink-dim); text-transform:uppercase;
}
.contact__form input,.contact__form textarea{
  font-family:var(--f-body); font-size:1rem; color:var(--ink);
  background:rgba(0,0,0,.35); border:1.5px solid var(--line-2); border-radius:9px;
  padding:.7rem .8rem; transition:border-color .2s, box-shadow .2s; resize:vertical;
}
.contact__form input::placeholder,.contact__form textarea::placeholder{ color:var(--ink-mut); }
.contact__form input:focus,.contact__form textarea:focus{
  outline:none; border-color:var(--mag); box-shadow:0 0 0 3px rgba(255,46,151,.18);
}
.contact__status{ margin:.2rem 0 0; font-family:var(--f-mono); font-size:1.05rem; letter-spacing:.06em; min-height:1.2em; color:var(--amber); }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{
  text-align:center; padding:clamp(3rem,6vw,4.5rem) var(--pad) 3rem;
  border-top:1.5px solid var(--line);
  background:radial-gradient(120% 100% at 50% 120%, rgba(255,46,151,.12), transparent 60%);
}
.foot__wm{ font-family:var(--f-disp); font-size:clamp(1.4rem,4vw,2.2rem); color:var(--ink); letter-spacing:.02em; }
.foot__wm b{ color:var(--mag); font-weight:400; text-shadow:var(--shadow-mag); }
.foot__line{ margin:.7rem 0 .3rem; color:var(--ink-dim); font-family:var(--f-mono); font-size:1.1rem; letter-spacing:.06em; }
.foot__fine{ margin:0 auto; max-width:60ch; color:var(--ink-mut); font-size:.86rem; }
.foot__coin{ margin:1.3rem 0 0; font-family:var(--f-mono); font-size:1.15rem; letter-spacing:.16em; color:var(--cyan); }

/* ============================================================
   REVEAL on scroll
   ============================================================ */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .cab-grid{ grid-template-columns:repeat(4,1fr); }
  .cab{ grid-column:span 2; }
  .cab--feature{ grid-column:span 4; grid-row:auto; }
  .cab--wide{ grid-column:span 4; }
  .arcade__grid,.contact__grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .cab-grid{ grid-template-columns:1fr; gap:1rem; }
  .cab,.cab--feature,.cab--wide{ grid-column:auto; }
  .arc-facts div{ grid-template-columns:1fr; gap:.15rem; }
  .contact__links li{ grid-template-columns:1fr; gap:.15rem; }
  .tl{ grid-template-columns:3.6rem 1fr; }
  .tl__day{ width:3.6rem; height:3.6rem; font-size:.9rem; }
  .timeline::before{ left:calc(var(--pad) + 1.7rem); }
}
