/* ==========================================================================
   3D Snow Rider — base.css
   Shared foundation: tokens, reset, header, navigation, footer, utilities.
   Loaded by every page.
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root{
  --ice:#e2f1f7;          /* primary text            — 15.4:1 on --bg */
  --ice-dim:#a9c8d8;      /* secondary text          — 9.6:1  on --bg */
  --ice-faint:#8fb2c4;    /* tertiary / meta text    — 7.3:1  on --bg */
  --bg:#080e1a;
  --bg-soft:#0b1424;
  --card:rgba(11,20,36,.78);
  --neon:#4de3ff;         /* links / accents         — 10.4:1 on --bg */
  --neon-deep:#2f9dff;
  --neon-glow:0 0 20px rgba(77,227,255,.28), 0 0 60px rgba(77,227,255,.10);
  --ink:#04121d;          /* text on bright buttons  — 6.6:1 on gradient */
  --pink:#ff5c8a;
  --gold:#ffd93d;
  --green:#2ecc71;
  --glass:rgba(210,234,241,.06);
  --line:rgba(210,234,241,.16);
  --line-strong:rgba(77,227,255,.34);
  --radius:22px;
  --radius-sm:14px;
  --shadow:0 20px 60px rgba(0,0,0,.55);
  --head-h:66px;
  --ff:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--head-h) + 12px);
  -webkit-text-size-adjust:100%;
}
body{
  font-family:var(--ff);
  background:var(--bg);
  color:var(--ice);
  min-height:100vh;
  min-height:100dvh;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--neon);text-decoration:none}
a:hover{color:#fff}
ul,ol{list-style:none}

/* ---------- Accessibility ---------- */
:focus-visible{
  outline:3px solid var(--neon);
  outline-offset:3px;
  border-radius:6px;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:999;
  background:var(--neon);color:var(--ink);
  padding:12px 22px;border-radius:0 0 12px 0;font-weight:800;
}
.skip-link:focus{left:0;color:var(--ink)}

/* ---------- Decorative background ---------- */
.bg-grid,.bg-glow{position:fixed;inset:0;z-index:0;pointer-events:none}
.bg-grid{
  background-image:
    linear-gradient(rgba(77,227,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(77,227,255,.035) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 0%,#000 30%,transparent 78%);
}
.bg-glow{
  background:
    radial-gradient(ellipse 60% 50% at 18% 22%,rgba(77,227,255,.10),transparent 70%),
    radial-gradient(ellipse 55% 45% at 84% 66%,rgba(255,92,138,.07),transparent 70%),
    radial-gradient(ellipse 70% 40% at 50% 100%,rgba(210,234,241,.05),transparent 70%);
}
/* Animated orbs are desktop-only: three 80px-blur layers repaint every frame
   and are the single biggest battery/jank cost on phones. */
.bg-orb{display:none}
@media (min-width:1025px) and (prefers-reduced-motion:no-preference){
  .bg-orb{
    display:block;position:fixed;border-radius:50%;
    filter:blur(90px);pointer-events:none;z-index:0;
    will-change:transform;
    animation:orbFloat 26s ease-in-out infinite alternate;
  }
  .bg-orb.o1{width:480px;height:480px;top:-12%;left:-8%;background:rgba(77,227,255,.09)}
  .bg-orb.o2{width:400px;height:400px;bottom:-12%;right:-6%;background:rgba(255,92,138,.06);animation-delay:-9s}
  .bg-orb.o3{width:300px;height:300px;top:42%;left:52%;background:rgba(210,234,241,.05);animation-delay:-17s}
}
@keyframes orbFloat{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(40px,-30px,0) scale(1.14)}}

/* ---------- Layout ---------- */
.wrap{
  width:100%;max-width:1160px;margin-inline:auto;
  padding-inline:clamp(16px,4vw,24px);
  position:relative;z-index:1;
}
main{display:block}

/* ---------- Header ---------- */
.site-head{
  position:sticky;top:0;z-index:70;
  background:rgba(8,14,26,.88);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.head-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;min-height:var(--head-h);
}
.logo{
  display:flex;align-items:center;gap:11px;flex-shrink:0;
  font-weight:900;font-size:17px;letter-spacing:.2px;
  color:#fff;line-height:1.1;
}
.logo:hover{color:#fff}
.logo-icon{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,var(--neon),var(--neon-deep));
  display:grid;place-items:center;
  font-size:20px;color:var(--ink);
  box-shadow:var(--neon-glow);
}
.logo-text small{
  display:block;font-size:10px;letter-spacing:2px;
  color:var(--ice-faint);font-weight:600;text-transform:uppercase;
}

/* Navigation — desktop */
.nav{display:flex;gap:4px;align-items:center}
.nav a{
  padding:9px 15px;border-radius:999px;
  font-weight:700;font-size:14px;white-space:nowrap;
  color:var(--ice-dim);border:1px solid transparent;
  transition:color .2s,background-color .2s,border-color .2s;
}
.nav a:hover,.nav a.on{
  color:#fff;border-color:var(--line-strong);background:rgba(77,227,255,.08);
}
.nav a.on{color:#fff}
.nav a.play{
  background:linear-gradient(135deg,var(--neon),var(--neon-deep));
  color:var(--ink);border-color:transparent;
  box-shadow:var(--neon-glow);margin-left:6px;
}
.nav a.play:hover{color:var(--ink);filter:brightness(1.08)}

/* Hamburger — hidden on desktop */
.nav-toggle{
  display:none;
  width:46px;height:46px;flex-shrink:0;
  background:var(--glass);border:1px solid var(--line);
  border-radius:12px;cursor:pointer;
  align-items:center;justify-content:center;
}
.nav-toggle:hover{border-color:var(--line-strong)}
.nav-bars,.nav-bars::before,.nav-bars::after{
  display:block;width:20px;height:2px;border-radius:2px;
  background:var(--ice);transition:transform .25s,opacity .2s;
}
.nav-bars{position:relative}
.nav-bars::before,.nav-bars::after{content:'';position:absolute;left:0}
.nav-bars::before{top:-6px}
.nav-bars::after{top:6px}
.nav-toggle[aria-expanded="true"] .nav-bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-bars::before{transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-bars::after{transform:translateY(-6px) rotate(-45deg)}

/* ---------- Footer ---------- */
.site-foot{
  margin-top:72px;padding:44px 0 22px;
  border-top:1px solid var(--line);
  background:rgba(8,14,26,.6);
  position:relative;z-index:1;
}
/* minmax(0,…) everywhere: a bare `1fr` track has min-width:auto, so any wide
   child (a table, a long word) silently widens the whole page. */
.foot-grid{
  display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));
  gap:34px;padding-bottom:26px;
}
.foot-brand .logo{margin-bottom:12px}
.foot-brand p{color:var(--ice-dim);font-size:14px;line-height:1.75;max-width:340px}
.foot-col h2{
  font-size:12px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--ice-faint);font-weight:700;margin-bottom:12px;
}
.foot-col li{margin:8px 0}
.foot-col a{color:var(--ice-dim);font-size:14px;transition:color .2s}
.foot-col a:hover{color:#fff;text-decoration:underline}
.foot-bottom{
  border-top:1px solid var(--line);
  padding-top:18px;text-align:center;
  font-size:13px;color:var(--ice-faint);
}
.foot-bottom b{color:var(--neon);font-weight:800}

/* ---------- Shared buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;border:1px solid transparent;border-radius:var(--radius-sm);
  font-weight:800;font-size:14.5px;font-family:inherit;
  min-height:46px;cursor:pointer;
  transition:transform .18s,box-shadow .18s,background-color .18s;
  background:linear-gradient(135deg,var(--neon),var(--neon-deep));
  color:var(--ink);box-shadow:var(--neon-glow);
}
.btn:hover{transform:translateY(-2px);color:var(--ink);box-shadow:0 0 28px rgba(77,227,255,.42)}
.btn:active{transform:translateY(0) scale(.97)}
.btn.gold{background:linear-gradient(135deg,#ffe27a,#f0a500);box-shadow:0 0 18px rgba(255,217,61,.26)}
.btn.gold:hover{box-shadow:0 0 28px rgba(255,217,61,.4)}
.btn.outline{background:transparent;border-color:var(--line);color:var(--ice);box-shadow:none}
.btn.outline:hover{background:rgba(210,234,241,.08);color:#fff;box-shadow:none}

/* ---------- Section heading ---------- */
.sec-head{display:flex;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap}
.sec-head h2{
  font-size:clamp(21px,2.6vw,29px);font-weight:800;color:#fff;
  line-height:1.25;letter-spacing:-.3px;
}
.sec-head .line{flex:1;min-width:24px;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.sec-head .badge{
  font-size:11px;font-weight:800;letter-spacing:1.2px;
  padding:5px 13px;border-radius:999px;
  background:rgba(77,227,255,.12);border:1px solid var(--line-strong);
  color:var(--neon);text-transform:uppercase;white-space:nowrap;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:900px){
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
}

/* Tablet & mobile navigation */
@media (max-width:860px){
  :root{--head-h:62px}
  .nav-toggle{display:inline-flex}
  .nav{
    position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:2px;
    padding:10px clamp(16px,4vw,24px) 16px;
    background:rgba(8,14,26,.98);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 40px rgba(0,0,0,.5);
    max-height:calc(100dvh - var(--head-h));
    overflow-y:auto;
    /* Collapsed by default — no layout shift, the panel overlays the page. */
    display:none;
  }
  .nav.open{display:flex}
  .nav a{
    padding:13px 16px;border-radius:12px;font-size:15.5px;
    border:1px solid transparent;
  }
  .nav a.play{margin:8px 0 0;text-align:center;justify-content:center}
}

@media (max-width:600px){
  .logo{font-size:15.5px;gap:9px}
  .logo-icon{width:36px;height:36px;font-size:18px;border-radius:10px}
  .logo-text small{font-size:9px;letter-spacing:1.6px}
  .site-foot{margin-top:52px;padding:34px 0 20px}
  .foot-grid{grid-template-columns:1fr;gap:22px;padding-bottom:20px}
  .foot-brand p{max-width:none}
}

/* ---------- Motion & contrast preferences ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
  .btn:hover,.nav a.play:hover{transform:none}
}
@media (prefers-contrast:more){
  :root{--ice-dim:#d3e7f0;--ice-faint:#c2dae6;--line:rgba(210,234,241,.4)}
}
@media print{
  .site-head,.site-foot,.bg-grid,.bg-glow,.bg-orb,.nav-toggle{display:none!important}
  body{background:#fff;color:#000}
  a{color:#000;text-decoration:underline}
}
