/* ===== Tokens ===== */
:root{
  --bg:#0B0B1E;
  --surface:#14112A;
  --surface-2:#241A40;
  --line:#352A57;
  --magenta:#FF2E92;
  --cyan:#1FE2C9;
  --amber:#FFB627;
  --text:#F2EFE9;
  --text-dim:#A8A0C0;
  --font-display:'Anton',sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --radius:14px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:var(--cyan);text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%;display:block;}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;}

.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cyan);
}
h1,h2,h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 .4em;}
h2{font-size:clamp(28px,4vw,42px);}
p{color:var(--text-dim);}

/* ===== Nav ===== */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(11,11,30,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;}
.brand{font-family:var(--font-display);font-size:20px;letter-spacing:.04em;color:var(--text);}
.brand span{color:var(--magenta);}
.nav ul{display:flex;gap:22px;list-style:none;margin:0;padding:0;font-family:var(--font-mono);font-size:13px;text-transform:uppercase;letter-spacing:.06em;}
.nav a{color:var(--text-dim);}
.nav a:hover{color:var(--cyan);text-decoration:none;}
@media (max-width: 640px){
  .nav .wrap{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 20px;}
  .nav ul{gap:14px;flex-wrap:wrap;font-size:11px;}
}

/* ===== Hero / Countdown ===== */
.hero{
  padding:72px 0 56px;
  text-align:center;
  background:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(255,46,146,.25), transparent),
    radial-gradient(ellipse 60% 50% at 90% 10%, rgba(31,226,201,.15), transparent);
  border-bottom:1px solid var(--line);
}
.hero h1{font-size:clamp(34px,6vw,64px);margin-top:14px;}
.hero h1 em{font-style:normal;color:var(--magenta);}
.hero .sub{max-width:560px;margin:10px auto 36px;font-size:17px;}

.countdown{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:30px;}
.countdown .unit{
  position:relative;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px 10px;
  width:104px;
  overflow:hidden;
}
.countdown .unit::before{
  content:"";
  position:absolute;inset:0;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,.05) 0 2px, transparent 2px 4px);
  pointer-events:none;
}
.countdown .num{
  display:block;
  font-family:var(--font-mono);
  font-size:40px;
  font-weight:700;
  color:var(--text);
  text-shadow:1px 0 var(--magenta), -1px 0 var(--cyan);
  animation:flicker 4.5s infinite steps(1);
}
.countdown .label{
  display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-dim);margin-top:6px;
}
@keyframes flicker{
  0%,92%,100%{opacity:1;text-shadow:1px 0 var(--magenta),-1px 0 var(--cyan);}
  93%{opacity:.7;text-shadow:2px 0 var(--magenta),-2px 0 var(--cyan);}
  95%{opacity:1;text-shadow:0 0 transparent;}
}
@media (prefers-reduced-motion: reduce){
  .countdown .num{animation:none;}
  html{scroll-behavior:auto;}
}
@media (max-width: 420px){
  .countdown{gap:6px;}
  .countdown .unit{width:70px;padding:12px 4px;}
  .countdown .num{font-size:26px;}
  .countdown .label{font-size:9px;}
}

.cta{
  display:inline-block;
  background:var(--amber);
  color:#1a1208;
  font-family:var(--font-mono);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:14px;
  padding:14px 28px;
  border-radius:999px;
  transition:transform .15s ease;
}
.cta:hover{transform:translateY(-2px);text-decoration:none;}

/* ===== Ticker ===== */
.ticker-bar{background:var(--surface-2);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;}
.ticker-track{display:inline-block;padding:10px 0;font-family:var(--font-mono);font-size:13px;color:var(--text-dim);animation:scroll 38s linear infinite;}
.ticker-track span{margin-right:48px;}
.ticker-track span b{color:var(--cyan);}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ===== Sections ===== */
section{padding:64px 0;}
.section-head{margin-bottom:32px;}

/* Preorder table */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:620px;}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);}
thead th{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);background:var(--surface);}
tbody tr:hover{background:var(--surface);}
td.price{font-family:var(--font-mono);color:var(--amber);font-weight:700;}
td a.buy{font-family:var(--font-mono);font-size:12px;color:var(--bg);background:var(--cyan);padding:6px 12px;border-radius:6px;text-transform:uppercase;letter-spacing:.04em;}
td a.buy:hover{text-decoration:none;opacity:.85;}
.note{font-size:12px;color:var(--text-dim);margin-top:10px;}

/* Cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;transition:border-color .15s ease, transform .15s ease;
}
.card:hover{border-color:var(--magenta);transform:translateY(-3px);}
.card .eyebrow{margin-bottom:8px;display:block;}
.card h3{font-size:19px;margin-bottom:8px;}
.card p{font-size:14px;margin:0 0 14px;}
.card a.more{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;}

/* Footer */
footer{border-top:1px solid var(--line);padding:36px 0;text-align:center;}
footer p{font-size:12px;color:var(--text-dim);max-width:640px;margin:0 auto 14px;}
footer .links{font-family:var(--font-mono);font-size:12px;}
footer .links a{margin:0 10px;color:var(--text-dim);}

/* Article pages */
.article{padding:56px 0;max-width:680px;margin:0 auto;}
.article h1{font-size:clamp(28px,5vw,40px);}
.article .meta{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);margin-bottom:24px;}
.article h2{font-size:22px;margin-top:36px;}
.article p{color:var(--text);font-size:16px;}
.disclaimer-box{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 20px;font-size:13px;color:var(--text-dim);margin:30px 0;
}

/* ===== Signature: Vice City skyline silhouette in hero ===== */
.hero{position:relative;overflow:hidden;}
.hero::after{
  content:"";
  position:absolute;left:0;right:0;bottom:0;
  height:90px;
  background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 60' preserveAspectRatio='none'><rect x='0' y='26' width='40' height='34' fill='%231a1442'/><rect x='40' y='38' width='30' height='22' fill='%231a1442'/><rect x='68' y='14' width='24' height='46' fill='%231a1442'/><rect x='94' y='30' width='34' height='30' fill='%231a1442'/><rect x='128' y='2' width='28' height='58' fill='%231a1442'/><rect x='158' y='34' width='36' height='26' fill='%231a1442'/><rect x='196' y='18' width='26' height='42' fill='%231a1442'/><rect x='224' y='40' width='32' height='20' fill='%231a1442'/><rect x='258' y='8' width='30' height='52' fill='%231a1442'/><rect x='290' y='28' width='40' height='32' fill='%231a1442'/><rect x='332' y='36' width='24' height='24' fill='%231a1442'/><rect x='358' y='16' width='42' height='44' fill='%231a1442'/><rect x='14' y='32' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='5' y='42' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='73' y='20' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='117' y='46' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='133' y='8' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='133' y='28' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='181' y='50' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='210' y='24' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='210' y='44' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='263' y='14' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='281' y='44' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='313' y='34' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='304' y='44' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='372' y='22' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='363' y='32' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='372' y='42' width='3' height='4' fill='%23FFB627' opacity='0.85'/><rect x='363' y='52' width='3' height='4' fill='%23FFB627' opacity='0.85'/></svg>");
  background-repeat:repeat-x;
  background-position:bottom;
  background-size:400px 90px;
  opacity:.65;
  pointer-events:none;
}
.hero .wrap{position:relative;z-index:1;}

/* ===== Signature: subtle scanline overlay (ties to "WATCH") ===== */
body::before{
  content:"";
  position:fixed;inset:0;
  z-index:999;
  pointer-events:none;
  background:repeating-linear-gradient(to bottom, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 2px, rgba(255,255,255,.02) 3px, rgba(0,0,0,0) 4px);
  mix-blend-mode:overlay;
}
@media (prefers-reduced-motion: reduce){
  body::before{display:none;}
}

/* ===== Card hover: viewfinder brackets instead of generic border+lift ===== */
.card{position:relative;}
.card::before,.card::after{
  content:"";
  position:absolute;
  width:16px;height:16px;
  opacity:0;
  transition:opacity .2s ease, transform .2s ease;
  pointer-events:none;
}
.card::before{
  top:-1px;left:-1px;
  border-top:2px solid var(--cyan);border-left:2px solid var(--cyan);
  transform:translate(5px,5px);
}
.card::after{
  bottom:-1px;right:-1px;
  border-bottom:2px solid var(--cyan);border-right:2px solid var(--cyan);
  transform:translate(-5px,-5px);
}
.card:hover::before,.card:hover::after{opacity:1;transform:translate(0,0);}
