/* =========================================================
   POCKET LEAGUE — site styles (Skitch studio look)
   Layout concept: night-stadium arcade launch page on a 1440 artboard,
   1du = 10 design px, chamfered HUD panels, gold primary + purple glow.
   ========================================================= */

@font-face { font-family: "Bangers"; src: url("../fonts/Bangers-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Clash Display"; src: url("../fonts/ClashDisplay-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Clash Display"; src: url("../fonts/ClashDisplay-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Clash Display"; src: url("../fonts/ClashDisplay-Semibold.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Clash Display"; src: url("../fonts/ClashDisplay-Bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
  color-scheme: dark;
  /* colour */
  --bg: #08061C;          /* page: night sky, darkened */
  --bg-2: #110A33;        /* raised bands */
  --sky: #251267;         /* key-art sky */
  --sky-2: #47188A;
  --stripe-a: #1B1542;    /* HUD pinstripe bands */
  --stripe-b: #0A081E;
  --purple: #772EEC;      /* glow */
  --purple-2: #9358F3;
  --purple-light: #B283FF;
  --purple-dark: #4C1D98;
  --gold: #FFD21A;        /* "LEAGUE" yellow, primary action */
  --gold-hi: #FEEE21;
  --gold-lo: #F59E00;
  --gold-ink: #1A0B45;    /* text on gold */
  --lilac: #E1E1EE;       /* "POCKET" white */
  --cyan: #3FD3FF;        /* floodlights */
  --pitch: #31CF3B;
  --hud: #2BD878;
  --text: #FFFFFF;
  --text-2: rgba(255, 255, 255, .66);
  --text-3: rgba(255, 255, 255, .42);
  /* type */
  --f-display: "Bangers", "Impact", "Arial Black", sans-serif;
  --f-body: "Clash Display", system-ui, -apple-system, "Segoe UI", sans-serif;
  /* design unit: 10 design px on the 1440 artboard */
  --du: calc(100vw / 144);
  --header-h: calc(10.4 * var(--du));
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --shape: polygon(calc(1.2 * var(--du)) 0, calc(100% - 2.4 * var(--du)) 0, 100% calc(2.4 * var(--du)), 100% calc(100% - 1.2 * var(--du)), calc(100% - 1.2 * var(--du)) 100%, calc(1.2 * var(--du)) 100%, 0 calc(100% - 1.2 * var(--du)), 0 calc(1.2 * var(--du)));
  --shape-in: polygon(calc(1.2 * var(--du) + 1px) 2px, calc(100% - 2.4 * var(--du) - 1px) 2px, calc(100% - 2px) calc(2.4 * var(--du) + 1px), calc(100% - 2px) calc(100% - 1.2 * var(--du) - 1px), calc(100% - 1.2 * var(--du) - 1px) calc(100% - 2px), calc(1.2 * var(--du) + 1px) calc(100% - 2px), 2px calc(100% - 1.2 * var(--du) - 1px), 2px calc(1.2 * var(--du) + 1px));
  --stripes: linear-gradient(110deg, var(--stripe-a) 0%, var(--stripe-b) 14%, var(--stripe-a) 22%, var(--stripe-b) 37%, var(--stripe-a) 55%, var(--stripe-b) 66%, var(--stripe-a) 76%, var(--stripe-b) 80%, var(--stripe-a) 92%, var(--stripe-b) 97%, var(--stripe-a) 100%);
  --edge: linear-gradient(135deg, #B283FF 0%, #772EEC 35%, #4C1D98 65%, #B283FF 100%);
  --edge-gold: linear-gradient(135deg, #FFF6B0 0%, #FFD21A 35%, #F59E00 65%, #FFF27A 100%);
}
@media (min-width: 1600px) { :root { --du: 11.111px; } }
@media (max-width: 1023.98px) { :root { --du: clamp(8.2px, calc(100vw / 39), 13px); --header-h: calc(7.6 * var(--du)); } }

*, *::before, *::after { box-sizing: border-box; }
[hidden]:not([hidden=until-found i]) { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 120; background: var(--bg); }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font-family: var(--f-body); font-size: calc(1.6 * var(--du)); line-height: 1.55;
  overflow-x: hidden; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; height: auto; }
main { overflow-x: clip; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
ul, ol { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4, p { margin: 0; font-weight: inherit; }
:focus-visible { outline: 2px solid var(--purple-light); outline-offset: 3px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 300; background: var(--gold); color: var(--gold-ink); padding: 10px 14px; font-weight: 700; font-size: 14px; }
.skip-link:focus-visible { top: calc(16px + env(safe-area-inset-top, 0px)); }

.wrap {
  width: 100%; max-width: calc(132 * var(--du)); margin-inline: auto;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
}

/* ---------- Type ---------- */
.t-gold, .t-white, .t-lilac { font-family: var(--f-display); font-weight: 400; line-height: 1; letter-spacing: 0; text-transform: uppercase; text-wrap: balance; padding-inline: .14em; margin-inline: -.14em; }
.t-gold {
  color: var(--gold);
  background: linear-gradient(172deg, #FFF8B8 0%, var(--gold-hi) 22%, var(--gold) 52%, var(--gold-lo) 86%, #E77B00 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  -webkit-text-stroke: .012em rgba(255, 255, 255, .35);
  filter: drop-shadow(0 calc(.35 * var(--du)) 0 rgba(150, 60, 0, .6));
}
.t-white {
  color: #fff;
  background: repeating-linear-gradient(110deg, #fff 0 9%, rgba(255, 255, 255, .82) 9% 16%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  filter: drop-shadow(calc(-.35 * var(--du)) calc(.35 * var(--du)) 0 rgba(0, 0, 0, .5));
}
.t-lilac {
  color: var(--lilac);
  background: linear-gradient(180deg, #FFFFFF 0%, var(--lilac) 55%, #A99BEA 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 calc(.3 * var(--du)) 0 rgba(60, 40, 140, .8));
}
.h1 { font-size: calc(15.6 * var(--du)); }
.h2 { font-size: calc(13.2 * var(--du)); }
.h3 { font-size: calc(6.8 * var(--du)); }
.kicker { font-size: calc(4.8 * var(--du)); }
.lead { font-size: calc(1.8 * var(--du)); line-height: 1.5556; color: var(--text); max-width: calc(62 * var(--du)); }
.center { text-align: center; }
.center .lead, .lead.center { margin-inline: auto; }
.sec-head { position: relative; display: grid; gap: calc(1.8 * var(--du)); justify-items: center; text-align: center; }
.sec-head::before { content: ""; position: absolute; left: 50%; top: calc(-3 * var(--du)); width: min(calc(90 * var(--du)), 100%); height: calc(20 * var(--du)); translate: -50% 0; z-index: -1; pointer-events: none; background: radial-gradient(closest-side, rgba(119, 46, 236, .5), rgba(119, 46, 236, 0)); }

/* ---------- Atmosphere ---------- */
.grain { position: relative; }
.grain::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: url("../img/noise.png") 0 0 / 128px; opacity: .05; z-index: 1; }
.sec { position: relative; isolation: isolate; padding-block: calc(11 * var(--du)); }
.sec::before { /* smoky purple glow behind the heading */
  content: ""; position: absolute; left: 50%; top: 0; width: calc(120 * var(--du)); height: calc(70 * var(--du)); translate: -50% 0; z-index: -1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(119, 46, 236, .28), rgba(119, 46, 236, 0) 70%), radial-gradient(closest-side at 30% 60%, rgba(63, 211, 255, .08), transparent 70%);
}
.sec--atmo { background: linear-gradient(180deg, var(--bg) 0%, rgba(8, 6, 28, .25) 22%, rgba(8, 6, 28, .25) 78%, var(--bg) 100%), url("../img/atmosphere-1920.webp") center / cover no-repeat; }
.divider { position: relative; height: calc(6.8 * var(--du)); width: 100%; overflow: hidden; pointer-events: none; z-index: 3; margin-block: calc(-3.4 * var(--du)); }
.divider::before { content: ""; position: absolute; left: 50%; top: 0; width: calc(147.5 * var(--du)); height: 100%; translate: -50% 0; background: url("../img/divider.svg") center / 100% 100% no-repeat; }
.divider--flip::before { scale: -1 -1; }

/* ---------- Buttons ---------- */
.btn {
  --h: 5.4; position: relative; display: inline-flex; align-items: center; justify-content: center; gap: calc(1 * var(--du));
  height: calc(var(--h) * var(--du)); min-width: calc(18.3 * var(--du)); padding-inline: calc(3 * var(--du));
  font-family: var(--f-body); font-weight: 700; font-size: calc(1.8 * var(--du)); line-height: 1; white-space: nowrap;
  isolation: isolate; overflow: hidden; -webkit-tap-highlight-color: transparent;
  background: var(--btn-bg) center / 100% 100% no-repeat;
  transition: transform .3s var(--ease-spring);
}
.btn::before { /* light sweep */
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .28) 45%, transparent 60%);
  translate: -120% 0; transition: translate .8s var(--ease-out);
}
.btn::after { /* rolling ball */
  content: ""; position: absolute; z-index: 1; width: calc(1.6 * var(--du)); height: calc(1.6 * var(--du)); left: calc(-2 * var(--du)); bottom: calc(.7 * var(--du));
  background: url("../img/ball-3d.webp") center / contain no-repeat; opacity: 0; pointer-events: none;
}
.btn > * { position: relative; z-index: 2; }
.btn:hover::before, .btn:focus-visible::before { translate: 120% 0; }
.btn:hover::after, .btn:focus-visible::after { animation: ball-roll 1.25s var(--ease-out) forwards; }
.btn:active { transform: scale(.97); }
@keyframes ball-roll { 0% { left: calc(-2 * var(--du)); opacity: 1; rotate: 0deg; } 70% { opacity: 1; } 100% { left: calc(100% + .5 * var(--du)); opacity: 0; rotate: 540deg; } }
.btn--gold { --btn-bg: url("../img/btn-gold.svg"); color: var(--gold-ink); filter: drop-shadow(0 0 calc(1.2 * var(--du)) rgba(255, 190, 20, .35)); }
.btn--gold:hover, .btn--gold:focus-visible { filter: drop-shadow(0 0 calc(1.2 * var(--du)) rgba(255, 210, 26, .6)) drop-shadow(0 0 calc(2.6 * var(--du)) rgba(119, 46, 236, .5)) brightness(1.06); }
.btn--dark { --btn-bg: url("../img/btn-dark.svg"); color: #fff; }
.btn--dark:hover, .btn--dark:focus-visible, .btn--dark[aria-selected="true"], .btn--dark.is-active { --btn-bg: url("../img/btn-dark-hover.svg"); filter: drop-shadow(0 0 calc(.6 * var(--du)) rgba(119, 46, 236, .35)) drop-shadow(0 0 calc(2.2 * var(--du)) rgba(119, 46, 236, .45)); }
.btn--lg { --h: 6.4; min-width: calc(26.4 * var(--du)); font-size: calc(2 * var(--du)); padding-inline: calc(3.6 * var(--du)); }
.btn svg { width: calc(1.8 * var(--du)); height: calc(1.8 * var(--du)); flex: none; }

/* kick: ball hits the CTA, damped shake + glow flash */
.kick { position: relative; display: inline-block; }
.kick__ball { position: absolute; width: calc(4.2 * var(--du)); height: calc(4.2 * var(--du)); left: calc(-14 * var(--du)); top: calc(-12 * var(--du)); background: url("../img/ball-3d.webp") center / contain no-repeat; opacity: 0; pointer-events: none; z-index: 4; }
.kick__flash { position: absolute; inset: calc(-1 * var(--du)); pointer-events: none; z-index: 3; opacity: 0; background: radial-gradient(closest-side, rgba(255, 238, 120, .75), rgba(255, 210, 26, 0)); }
.kick.is-hit .kick__ball { animation: kick-ball .55s cubic-bezier(.3, .6, .4, 1) forwards; }
.kick.is-hit .btn { animation: kick-shake .62s .42s linear both; }
.kick.is-hit .kick__flash { animation: kick-flash .4s .42s ease-out both; }
@keyframes kick-ball { 0% { opacity: 0; translate: 0 0; rotate: 0deg; } 10% { opacity: 1; } 78% { opacity: 1; translate: calc(13.4 * var(--du)) calc(12.6 * var(--du)); rotate: 300deg; } 100% { opacity: 0; translate: calc(6 * var(--du)) calc(4 * var(--du)); rotate: 420deg; } }
@keyframes kick-shake { 0% { translate: 0 0; } 15% { translate: calc(4.2 * var(--du)) 0; } 35% { translate: calc(-1.8 * var(--du)) 0; } 55% { translate: calc(1.1 * var(--du)) 0; } 75% { translate: calc(-.75 * var(--du)) 0; } 100% { translate: 0 0; } }
@keyframes kick-flash { 0% { opacity: 0; } 40% { opacity: 1; } 100% { opacity: 0; } }

/* ---------- HUD panel (chamfered, pinstriped, glowing edge) ---------- */
.hud { position: relative; isolation: isolate; }
.hud::before { content: ""; position: absolute; inset: 0; z-index: -2; clip-path: var(--shape); background: var(--edge); }
.hud::after { content: ""; position: absolute; inset: 0; z-index: -1; clip-path: var(--shape-in); background: var(--stripes); }
.hud--gold::before { background: var(--edge-gold); }

/* ---------- Header ---------- */
.site-header { position: fixed; top: env(safe-area-inset-top, 0px); left: 0; right: 0; z-index: 100; transition: background .35s ease, translate .35s ease; }
.site-header__inner {
  height: var(--header-h); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: calc(2 * var(--du));
  max-width: calc(144 * var(--du)); margin-inline: auto;
  padding-left: max(16px, env(safe-area-inset-left, 0px), calc(5.6 * var(--du)));
  padding-right: max(16px, env(safe-area-inset-right, 0px), calc(5.6 * var(--du)));
  transition: height .35s ease;
}
.site-header.is-scrolled { background: linear-gradient(180deg, rgba(8, 6, 28, .97), rgba(8, 6, 28, .82)); }
.site-header.is-scrolled .site-header__inner { height: calc(var(--header-h) * .8); }
.site-header.is-hidden { translate: 0 calc(-100% - env(safe-area-inset-top, 0px)); }
.site-logo { justify-self: start; width: calc(13.6 * var(--du)); transition: scale .35s ease; transform-origin: left center; }
.site-header.is-scrolled .site-logo { scale: .86; }
.site-logo img { width: 100%; height: auto; }
.main-nav { height: calc(6.2 * var(--du)); padding-inline: calc(4.4 * var(--du)); background: url("../img/nav-bar.svg") center / 100% 100% no-repeat; display: flex; align-items: center; }
.main-nav ul { display: flex; align-items: center; gap: calc(2.8 * var(--du)); }
.main-nav a { position: relative; display: block; font-size: calc(1.4 * var(--du)); line-height: 1.6; color: var(--text-2); padding-block: calc(.4 * var(--du)); transition: color .2s ease; }
.main-nav a:hover { color: #fff; }
.main-nav a[aria-current] { color: #fff; font-weight: 700; }
.main-nav a::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 0; height: 2px; translate: -50% 0; background: linear-gradient(90deg, transparent, var(--gold), transparent); transition: width .3s var(--ease-out); }
.main-nav a:hover::after, .main-nav a[aria-current]::after { width: 100%; }
.header-cta { justify-self: end; }
.menu-toggle { display: none; }

/* ---------- Mobile menu ---------- */
.mobile-menu {
  position: fixed; inset: 0; z-index: 95; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(3.2 * var(--du));
  padding: calc(var(--header-h) + 2 * var(--du) + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) calc(4 * var(--du) + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
  background: radial-gradient(120% 60% at 50% 0%, rgba(119, 46, 236, .55), rgba(8, 6, 28, 0) 70%), var(--bg);
  overflow-y: auto;
}
.mobile-menu ul { display: grid; gap: calc(1.2 * var(--du)); text-align: center; }
.mobile-menu li { opacity: 0; translate: 0 calc(2 * var(--du)); animation: mm-in .5s var(--ease-spring) forwards; animation-delay: calc(var(--i) * 60ms + 80ms); }
.mobile-menu a.mm-link { font-family: var(--f-display); font-size: calc(5.6 * var(--du)); line-height: 1.1; text-transform: uppercase; color: #fff; }
.mobile-menu a.mm-link[aria-current] { color: var(--gold); }
@keyframes mm-in { to { opacity: 1; translate: 0 0; } }

/* ---------- Hero ---------- */
.hero { position: relative; padding-bottom: calc(5 * var(--du)); }
.hero__stage { position: relative; width: 100%; height: max(calc(64 * var(--du)), min(54vw, 96vh)); overflow: hidden; background: var(--sky); }
.hero__stage::after { content: ""; position: absolute; inset: auto 0 0; height: 12%; background: linear-gradient(180deg, rgba(8, 6, 28, 0), var(--bg)); pointer-events: none; z-index: 4; }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 62%; animation: hero-settle 5s var(--ease-out) both; }
.hero__char { position: absolute; z-index: 3; width: auto; max-width: none; pointer-events: none; }
.hero__char--l { left: 13%; bottom: 4%; height: 66% !important; transform-origin: 50% 100%; animation: char-in-l .9s .25s var(--ease-spring) both, bob-l 3s 1.2s ease-in-out infinite; }
.hero__char--r { right: 17%; bottom: 7%; height: 40% !important; transform-origin: 50% 100%; animation: char-in-r .9s .4s var(--ease-spring) both, bob-r 3.4s 1.4s ease-in-out infinite; }
@keyframes char-in-l { from { opacity: 0; translate: calc(-10 * var(--du)) 0; } to { opacity: 1; translate: 0 0; } }
@keyframes char-in-r { from { opacity: 0; translate: calc(10 * var(--du)) 0; } to { opacity: 1; translate: 0 0; } }
@keyframes bob-l { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 calc(-1.2 * var(--du)); rotate: -1.6deg; } }
@keyframes bob-r { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: calc(-1.2 * var(--du)) calc(-.6 * var(--du)); rotate: 1.4deg; } }
@keyframes hero-settle { from { scale: 1.06; } to { scale: 1; } }
.hero__confetti { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 5; }
.hero__logo { position: absolute; z-index: 4; left: 50%; top: calc(var(--header-h) + 1 * var(--du)); width: min(38%, calc(56 * var(--du))); translate: -50% 0; margin: 0; pointer-events: none; }
.hero__logo img { width: 100%; height: auto; transform-origin: 50% 60%; animation: logo-drop .9s .15s var(--ease-spring) both, logo-float 4s 1.2s ease-in-out infinite; }
@keyframes logo-drop { from { opacity: 0; translate: 0 calc(-6 * var(--du)); scale: .7; } to { opacity: 1; translate: 0 0; scale: 1; } }
@keyframes logo-float { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 calc(-1 * var(--du)); rotate: -.8deg; } }
.hero__dock { position: relative; z-index: 6; width: min(112 * var(--du), calc(100% - 32px)); margin: calc(-2 * var(--du)) auto 0; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: calc(3 * var(--du)); padding: calc(2.8 * var(--du)) calc(3.6 * var(--du)); }
.hero__dock::after { background: linear-gradient(110deg, rgba(27, 21, 66, .92) 0%, rgba(10, 8, 30, .92) 14%, rgba(27, 21, 66, .92) 22%, rgba(10, 8, 30, .92) 37%, rgba(27, 21, 66, .92) 55%, rgba(10, 8, 30, .92) 66%, rgba(27, 21, 66, .92) 76%, rgba(10, 8, 30, .92) 80%, rgba(27, 21, 66, .92) 92%, rgba(10, 8, 30, .92) 100%); }
.hero__text { display: grid; gap: calc(1 * var(--du)); min-width: 0; }
.hero__tag { font-size: calc(5.2 * var(--du)); }
.hero__sub { font-size: calc(1.7 * var(--du)); color: var(--text-2); max-width: calc(54 * var(--du)); }
.hero__ctas { display: flex; gap: calc(1.6 * var(--du)); align-items: center; }
.platforms { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: calc(1.2 * var(--du)) calc(2.6 * var(--du)); margin-top: calc(3 * var(--du)); }
.platforms__label { font-family: var(--f-display); font-size: calc(2.2 * var(--du)); color: var(--text-2); text-transform: uppercase; letter-spacing: .04em; }
.platforms ul { display: flex; align-items: center; gap: calc(2.4 * var(--du)); }
.platforms svg { width: calc(2.6 * var(--du)); height: calc(2.6 * var(--du)); fill: rgba(255, 255, 255, .82); }

/* ---------- Inside ---------- */
.inside__tabs { display: flex; justify-content: center; gap: calc(1.4 * var(--du)); margin-top: calc(4.4 * var(--du)); }
.inside__panel { margin-top: calc(3 * var(--du)); display: grid; grid-template-columns: 1.6fr 1fr; gap: calc(3.6 * var(--du)); align-items: center; padding: calc(2.4 * var(--du)); }
.arena { position: relative; aspect-ratio: 16 / 9; overflow: hidden; clip-path: polygon(calc(1 * var(--du)) 0, calc(100% - 2 * var(--du)) 0, 100% calc(2 * var(--du)), 100% calc(100% - 1 * var(--du)), calc(100% - 1 * var(--du)) 100%, calc(1 * var(--du)) 100%, 0 calc(100% - 1 * var(--du)), 0 calc(1 * var(--du))); background: var(--bg-2); }
.arena img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.arena img.is-swap { animation: swap-fade .7s var(--ease-out) both; }
.arena__label { position: absolute; left: calc(2 * var(--du)); bottom: calc(2 * var(--du)); z-index: 2; font-family: var(--f-display); font-size: calc(2.4 * var(--du)); text-transform: uppercase; color: var(--gold-ink); background: var(--gold); padding: calc(.5 * var(--du)) calc(1.6 * var(--du)); clip-path: polygon(calc(.8 * var(--du)) 0, 100% 0, calc(100% - .8 * var(--du)) 100%, 0 100%); }
.pitch { width: 100%; max-width: calc(34 * var(--du)); height: auto; aspect-ratio: 5 / 3; margin-top: calc(.6 * var(--du)); clip-path: polygon(calc(.6 * var(--du)) 0, 100% 0, 100% calc(100% - .6 * var(--du)), calc(100% - .6 * var(--du)) 100%, 0 100%, 0 calc(.6 * var(--du))); }
.pitch .lines { transform-box: view-box; transform-origin: 50% 50%; transition: transform .9s var(--ease-spring); }
.pitch.is-street .lines { transform: scale(.82); }
.pitch .cage { opacity: 0; transition: opacity .5s ease; }
.pitch.is-street .cage { opacity: 1; }
.pitch .pl { transition: transform .9s var(--ease-spring), opacity .4s ease; transform-box: view-box; }
.pitch .pl.is-off { opacity: 0; }
.pitch .ball { animation: ball-bob 1.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes ball-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }
.fmt-info { display: grid; gap: calc(1.6 * var(--du)); min-width: 0; }
.fmt-info__vs { font-size: calc(9 * var(--du)); }
.fmt-info__name { font-size: calc(4.2 * var(--du)); }
.fmt-info__desc { color: var(--text-2); font-size: calc(1.7 * var(--du)); }
.chips { display: flex; flex-wrap: wrap; gap: calc(.8 * var(--du)); }
.chip { font-size: calc(1.3 * var(--du)); font-weight: 600; padding: calc(.6 * var(--du)) calc(1.4 * var(--du)); background: rgba(43, 216, 120, .12); color: var(--hud); clip-path: polygon(calc(.8 * var(--du)) 0, 100% 0, calc(100% - .8 * var(--du)) 100%, 0 100%); }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(2 * var(--du)); margin-top: calc(6 * var(--du)); text-align: center; }
.stat__icon { width: calc(9 * var(--du)); height: calc(9 * var(--du)) !important; object-fit: contain; margin: 0 auto calc(.6 * var(--du)); animation: bob 3.2s var(--bd, 0s) ease-in-out infinite; }
.stat__num { font-size: calc(15.6 * var(--du)); display: block; font-variant-numeric: tabular-nums; }
.stat__label { font-size: calc(4.4 * var(--du)); display: block; margin-top: calc(.6 * var(--du)); }

/* ---------- Clubs ---------- */
.clubs { display: grid; grid-template-columns: calc(56 * var(--du)) 1fr; gap: calc(5 * var(--du)); align-items: start; }
.clubs__copy { display: grid; gap: calc(1.6 * var(--du)); align-content: start; padding-top: calc(8 * var(--du)); min-width: 0; }
.clubs__copy .lead { max-width: calc(52 * var(--du)); }
.club-feature { position: relative; height: calc(72 * var(--du)); }
.club-card { position: absolute; left: 0; bottom: 0; width: calc(40 * var(--du)); height: calc(58 * var(--du)); --c1: #fff; --c2: #1E2A6B; }
.club-card::after { background: radial-gradient(60% 50% at 55% 42%, color-mix(in srgb, var(--c1) 60%, transparent), transparent 70%), linear-gradient(160deg, color-mix(in srgb, var(--c2) 70%, #08061C), #0A081E 85%); }
.club-card__ovr { position: absolute; left: calc(3 * var(--du)); top: calc(3 * var(--du)); font-size: calc(6.4 * var(--du)); }
.club-card__ovr small { display: block; font-size: calc(2 * var(--du)); margin-top: calc(.4 * var(--du)); }
.club-card__name { position: absolute; left: calc(2.4 * var(--du)); top: calc(15.6 * var(--du)); font-size: calc(4.8 * var(--du)); white-space: nowrap; writing-mode: vertical-rl; rotate: 180deg; margin-inline: 0; padding-inline: 0; padding-block: .1em; }
.club-card__stats { position: absolute; left: calc(3 * var(--du)); right: calc(3 * var(--du)); bottom: calc(2.6 * var(--du)); display: grid; grid-template-columns: repeat(4, 1fr); text-align: center; }
.club-card__stats dt { display: block; font-size: calc(1.3 * var(--du)); color: var(--text-2); }
.club-card__stats dd { display: block; margin: 0; font-weight: 700; font-size: calc(2.4 * var(--du)); font-variant-numeric: tabular-nums; }
.club-art { position: absolute; z-index: 3; pointer-events: none; }
.club-art--kit { left: calc(9 * var(--du)); bottom: calc(14 * var(--du)); width: calc(30 * var(--du)); rotate: -6deg; }
.club-art--cap { left: calc(13 * var(--du)); bottom: calc(10 * var(--du)); height: calc(58 * var(--du)); width: auto; max-width: calc(40 * var(--du)); object-fit: contain; object-position: center bottom; }
.club-art.is-swap { animation: swap-in .7s var(--ease-spring) both; }
@keyframes swap-in { from { opacity: 0; translate: calc(4 * var(--du)) calc(2 * var(--du)); scale: .9; } to { opacity: 1; translate: 0 0; scale: 1; } }
.club-badge { position: absolute; right: calc(3 * var(--du)); top: calc(3.4 * var(--du)); width: calc(6 * var(--du)); }
.carousel-nav { display: flex; align-items: center; gap: calc(1.6 * var(--du)); margin-top: calc(2 * var(--du)); }
.arrow { width: calc(6.2 * var(--du)); height: calc(6.2 * var(--du)); background: center / 100% 100% no-repeat; flex: none; transition: transform .3s var(--ease-spring), filter .2s ease; }
.arrow--prev { background-image: url("../img/arrow-prev.svg"); }
.arrow--next { background-image: url("../img/arrow-next.svg"); }
.arrow:hover, .arrow:focus-visible { filter: brightness(1.25) drop-shadow(0 0 calc(1 * var(--du)) rgba(178, 131, 255, .55)); }
.arrow:active { transform: scale(.92); }
.counter { display: flex; align-items: baseline; gap: calc(.6 * var(--du)); font-variant-numeric: tabular-nums; }
.counter__cur { font-size: calc(6.2 * var(--du)); min-width: 2ch; text-align: right; }
.counter__tot { font-size: calc(2.4 * var(--du)); }
.pcards { --pad: calc(1.4 * var(--du)); min-width: 0; max-width: 100%; display: flex; gap: calc(1.4 * var(--du)); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pad); padding: calc(1.6 * var(--du)) var(--pad) calc(2 * var(--du)); margin: calc(1 * var(--du)) calc(-1 * var(--pad)) 0; scrollbar-width: none; }
.pcards::-webkit-scrollbar { display: none; }
.pcard { flex: none; scroll-snap-align: start; }
.pcard button { position: relative; display: grid; justify-items: center; gap: calc(.6 * var(--du)); width: calc(15.6 * var(--du)); padding: calc(1.6 * var(--du)) calc(1 * var(--du)) calc(1.4 * var(--du)); transition: transform .35s var(--ease-spring); }
.pcard button::after { background: linear-gradient(170deg, color-mix(in srgb, var(--c1) 34%, #1B1542), #0A081E 90%); }
.pcard svg { width: calc(8.4 * var(--du)); }
.pcard__ovr { font-size: calc(2.6 * var(--du)); }
.pcard__name { font-size: calc(1.6 * var(--du)); white-space: nowrap; }
.pcard button[aria-pressed="true"] { transform: translateY(calc(-.8 * var(--du))) scale(1.04); transform-origin: 50% 100%; }
.pcard button[aria-pressed="true"]::before { background: var(--edge-gold); }
.pcard button:hover { transform: translateY(calc(-.6 * var(--du))); }

/* ---------- Modes ---------- */
.modes { display: flex; justify-content: center; align-items: center; gap: calc(1 * var(--du)); margin-top: calc(5 * var(--du)); padding-block: calc(2 * var(--du)); }
.mode { position: relative; flex: none; width: calc(17.2 * var(--du)); height: calc(34 * var(--du)); clip-path: polygon(calc(1.2 * var(--du)) 0, calc(100% - 2.4 * var(--du)) 0, 100% calc(2.4 * var(--du)), 100% calc(100% - 1.2 * var(--du)), calc(100% - 1.2 * var(--du)) 100%, calc(1.2 * var(--du)) 100%, 0 calc(100% - 1.2 * var(--du)), 0 calc(1.2 * var(--du))); transition: transform .45s var(--ease-spring); --mc: #772EEC; }
.mode:nth-child(1) { z-index: 1; } .mode:nth-child(2) { z-index: 2; } .mode:nth-child(3) { z-index: 3; } .mode:nth-child(4) { z-index: 5; } .mode:nth-child(5) { z-index: 3; } .mode:nth-child(6) { z-index: 2; } .mode:nth-child(7) { z-index: 1; }
.mode img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 20%; transition: scale .6s var(--ease-out); }
.mode:hover img { scale: 1.05; }
.mode::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8, 6, 28, 0) 48%, color-mix(in srgb, var(--mc) 35%, transparent) 70%, rgba(8, 6, 28, .92) 94%); }
.mode::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--mc) 70%, white), inset 0 0 calc(3 * var(--du)) color-mix(in srgb, var(--mc) 60%, transparent); opacity: .55; transition: opacity .3s ease; }
.mode__txt { position: absolute; left: calc(1.8 * var(--du)); right: calc(1.4 * var(--du)); bottom: calc(2.4 * var(--du)); z-index: 2; display: grid; gap: calc(.6 * var(--du)); }
.mode__title { font-size: calc(2.8 * var(--du)); }
.mode__sub { font-size: calc(1.4 * var(--du)); color: var(--text-2); font-weight: 500; line-height: 1.35; }
.mode:hover { transform: translateY(calc(-1.2 * var(--du))); }
.mode:hover::after, .mode.is-featured::after { opacity: 1; }
.mode.is-featured { width: calc(24 * var(--du)); height: calc(42 * var(--du)); }
.mode.is-featured .mode__title { font-size: calc(4 * var(--du)); }
.mode__badge { position: absolute; z-index: 2; top: calc(2 * var(--du)); left: calc(2 * var(--du)); font-family: var(--f-display); font-size: calc(1.6 * var(--du)); padding: calc(.4 * var(--du)) calc(1.2 * var(--du)); background: var(--gold); color: var(--gold-ink); clip-path: polygon(calc(.8 * var(--du)) 0, 100% 0, calc(100% - .8 * var(--du)) 100%, 0 100%); letter-spacing: .03em; }

/* ---------- Gameplay ---------- */
.viewer { position: relative; width: min(100 * var(--du), 100%); margin: calc(5 * var(--du)) auto 0; padding: calc(1.2 * var(--du)); }
.viewer__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; clip-path: polygon(calc(1 * var(--du)) 0, calc(100% - 2 * var(--du)) 0, 100% calc(2 * var(--du)), 100% calc(100% - 1 * var(--du)), calc(100% - 1 * var(--du)) 100%, calc(1 * var(--du)) 100%, 0 calc(100% - 1 * var(--du)), 0 calc(1 * var(--du))); background: var(--bg-2); }
.viewer__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.viewer__frame img.is-swap { animation: swap-fade .6s var(--ease-out) both; }
@keyframes swap-fade { from { opacity: 0; scale: 1.04; } to { opacity: 1; scale: 1; } }
.viewer__chip { position: absolute; left: calc(2.4 * var(--du)); bottom: calc(2.2 * var(--du)); z-index: 2; display: inline-flex; align-items: center; gap: calc(.8 * var(--du)); font-weight: 700; font-size: calc(1.3 * var(--du)); letter-spacing: .06em; text-transform: uppercase; color: #06210F; background: var(--hud); padding: calc(.6 * var(--du)) calc(1.4 * var(--du)); clip-path: polygon(calc(.8 * var(--du)) 0, 100% 0, calc(100% - .8 * var(--du)) 100%, 0 100%); }
.viewer__chip::before { content: ""; width: calc(.8 * var(--du)); height: calc(.8 * var(--du)); border-radius: 50%; background: #06210F; }
.viewer__open { position: absolute; inset: 0; z-index: 1; }
.viewer .arrow { position: absolute; top: 50%; translate: 0 -50%; z-index: 3; }
.viewer .arrow--prev { left: calc(-3.1 * var(--du)); }
.viewer .arrow--next { right: calc(-3.1 * var(--du)); }
.viewer__bar { display: flex; align-items: center; justify-content: space-between; gap: calc(2 * var(--du)); width: min(100 * var(--du), 100%); margin: calc(2 * var(--du)) auto 0; flex-wrap: wrap; }
.thumbs { display: flex; gap: calc(1.2 * var(--du)); }
.thumb { width: calc(13 * var(--du)); aspect-ratio: 16 / 9; position: relative; opacity: .55; transition: opacity .25s ease, transform .35s var(--ease-spring); clip-path: polygon(calc(.6 * var(--du)) 0, 100% 0, 100% calc(100% - .6 * var(--du)), calc(100% - .6 * var(--du)) 100%, 0 100%, 0 calc(.6 * var(--du))); }
.thumb img { width: 100%; height: 100%; object-fit: cover; }
.thumb::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 2px transparent; transition: box-shadow .25s ease; }
.thumb[aria-selected="true"] { opacity: 1; transform: translateY(calc(-.4 * var(--du))); }
.thumb[aria-selected="true"]::after { box-shadow: inset 0 0 0 3px var(--gold); }
.thumb:hover { opacity: .9; }

/* ---------- Features (game-menu picker + skewed showcase) ---------- */
.feat { display: grid; grid-template-columns: calc(48 * var(--du)) 1fr; gap: calc(5 * var(--du)); align-items: center; margin-top: calc(5 * var(--du)); }
.feat__picker { display: grid; gap: calc(2 * var(--du)); min-width: 0; }
.feat__head { display: flex; align-items: end; justify-content: space-between; gap: calc(2 * var(--du)); }
.feat__choose { display: grid; font-family: var(--f-display); line-height: .95; text-transform: uppercase; }
.feat__choose .t-white { font-size: calc(3.4 * var(--du)); }
.feat__choose .t-gold { font-size: calc(6.4 * var(--du)); }
.feat__nav { margin-top: 0; }
.feat__nav .counter__cur { font-size: calc(4.4 * var(--du)); }
.feat__nav .counter__tot { font-size: calc(2 * var(--du)); }
.feat__nav .arrow { width: calc(5.2 * var(--du)); height: calc(5.2 * var(--du)); }
.feat__list { display: grid; gap: calc(1 * var(--du)); }
.feat__item { --sh-x: 0px; width: 100%; display: grid; grid-template-columns: calc(7 * var(--du)) 1fr; align-items: center; gap: calc(1.8 * var(--du)); padding: calc(1 * var(--du)) calc(2.4 * var(--du)) calc(1.4 * var(--du)) calc(1.2 * var(--du)); text-align: left; transition: transform .45s var(--ease-spring); }
.feat__item::before { opacity: .55; transition: opacity .3s ease; }
.feat__item::after { background: linear-gradient(110deg, rgba(27, 21, 66, .85), rgba(10, 8, 30, .85)); transition: background .3s ease; }
.feat__ico { position: relative; display: grid; place-items: center; width: calc(7 * var(--du)); height: calc(7 * var(--du)); background: radial-gradient(closest-side, rgba(119, 46, 236, .55), rgba(119, 46, 236, 0)); }
.feat__ico img { width: 100%; height: 100% !important; object-fit: contain; opacity: .8; transition: transform .45s var(--ease-spring), opacity .3s ease; }
.feat__meta { display: grid; min-width: 0; }
.feat__n { font-family: var(--f-display); font-size: calc(1.5 * var(--du)); color: var(--purple-light); letter-spacing: .06em; line-height: 1.1; }
.feat__t { font-family: var(--f-display); font-size: calc(2.8 * var(--du)); line-height: 1; text-transform: uppercase; color: var(--text-2); transition: color .25s ease; }
.feat__s { font-size: calc(1.3 * var(--du)); color: var(--text-3); margin-top: calc(.3 * var(--du)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.feat__bar { position: absolute; left: calc(10.2 * var(--du)); right: calc(2.4 * var(--du)); bottom: calc(.8 * var(--du)); height: 3px; background: rgba(255, 255, 255, .08); overflow: hidden; z-index: 1; opacity: 0; transition: opacity .3s ease; }
.feat__bar i, .feat__progress i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--gold-lo), var(--gold-hi)); transform-origin: 0 50%; transform: scaleX(0); }
.feat__item:hover { transform: translateX(calc(.8 * var(--du))); }
.feat__item:hover .feat__ico img { transform: scale(1.08) rotate(-4deg); opacity: 1; }
.feat__item:hover .feat__t { color: #fff; }
.feat__item[aria-selected="true"] { transform: translateX(calc(2 * var(--du))); }
.feat__item[aria-selected="true"]::before { background: var(--edge-gold); opacity: 1; }
.feat__item[aria-selected="true"]::after { background: linear-gradient(110deg, #3A1C8C 0%, #24115F 45%, #150B3D 100%); }
.feat__item[aria-selected="true"] .feat__ico img { transform: scale(1.18) rotate(-6deg); opacity: 1; }
.feat__item[aria-selected="true"] .feat__t { color: #fff; }
.feat__item[aria-selected="true"] .feat__n { color: var(--gold); }
.feat__item[aria-selected="true"] .feat__s { color: var(--text-2); }
.feat__item[aria-selected="true"] .feat__bar { opacity: 1; }

.feat__stage { position: relative; rotate: -2deg; aspect-ratio: 16 / 10.4; min-width: 0; }
.feat__frame { position: absolute; inset: 0; }
.feat__frame::after { display: none; }
.feat__art { position: absolute; inset: 2px; clip-path: var(--shape-in); overflow: hidden; background: var(--bg-2); }
.feat__art img { width: 100%; height: 100% !important; object-fit: cover; }
.feat__art img.is-swap { animation: feat-art-in .8s var(--ease-out) both; }
@keyframes feat-art-in { from { opacity: 0; scale: 1.08; } to { opacity: 1; scale: 1; } }
.feat__art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 6, 28, 0) 30%, rgba(14, 8, 46, .55) 58%, rgba(8, 6, 28, .95) 92%), linear-gradient(90deg, rgba(40, 12, 110, .45), rgba(40, 12, 110, 0) 55%); }
.feat__sweep { position: absolute; inset: 2px; clip-path: var(--shape-in); pointer-events: none; overflow: hidden; z-index: 1; }
.feat__sweep::before { content: ""; position: absolute; top: -10%; bottom: -10%; width: 30%; left: -40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .22), transparent); }
.feat__stage.is-sweep .feat__sweep::before { animation: feat-sweep .9s var(--ease-out) both; }
@keyframes feat-sweep { to { left: 120%; } }
.feat__iconwrap { position: absolute; z-index: 3; right: calc(-2.6 * var(--du)); top: calc(-7 * var(--du)); width: calc(21 * var(--du)); aspect-ratio: 1; display: grid; place-items: center; pointer-events: none; }
.feat__ring { position: absolute; inset: 6%; border-radius: 50%; background: conic-gradient(from 0deg, rgba(255, 210, 26, 0), rgba(255, 210, 26, .9) 18%, rgba(255, 210, 26, 0) 32%, rgba(178, 131, 255, 0) 50%, rgba(178, 131, 255, .9) 68%, rgba(178, 131, 255, 0) 82%); -webkit-mask: radial-gradient(closest-side, transparent 86%, #000 88%, #000 96%, transparent 98%); mask: radial-gradient(closest-side, transparent 86%, #000 88%, #000 96%, transparent 98%); animation: spin 9s linear infinite; }
.feat__iconwrap::before { content: ""; position: absolute; inset: 14%; border-radius: 50%; background: radial-gradient(closest-side, rgba(119, 46, 236, .75), rgba(119, 46, 236, 0)); }
@keyframes spin { to { rotate: 360deg; } }
.feat__icon { position: relative; width: 78%; height: auto !important; animation: bob 3.2s ease-in-out infinite; }
.feat__icon.is-pop { animation: feat-pop .7s var(--ease-spring) both, bob 3.2s .7s ease-in-out infinite; }
@keyframes feat-pop { from { opacity: 0; scale: .4; rotate: -24deg; } to { opacity: 1; scale: 1; rotate: 0deg; } }
.feat__txt { position: absolute; z-index: 2; left: calc(4 * var(--du)); right: calc(4 * var(--du)); bottom: calc(4.4 * var(--du)); display: grid; gap: calc(1 * var(--du)); justify-items: start; }
.feat__tag { font-size: calc(2.2 * var(--du)); }
.feat__name { font-size: calc(7.6 * var(--du)); }
.feat__desc { font-size: calc(1.8 * var(--du)); max-width: calc(54 * var(--du)); }
.feat__chips .chip { background: rgba(255, 210, 26, .14); color: var(--gold-hi); }
.feat__progress { position: absolute; z-index: 2; left: calc(4 * var(--du)); right: calc(4 * var(--du)); bottom: calc(2 * var(--du)); height: 4px; background: rgba(255, 255, 255, .1); overflow: hidden; }
.feat__txt > * { animation: none; }
.feat__stage.is-sweep .feat__txt > * { animation: feat-txt-in .6s var(--ease-out) both; }
.feat__stage.is-sweep .feat__txt > :nth-child(2) { animation-delay: 60ms; }
.feat__stage.is-sweep .feat__txt > :nth-child(3) { animation-delay: 120ms; }
.feat__stage.is-sweep .feat__txt > :nth-child(4) { animation-delay: 180ms; }
@keyframes feat-txt-in { from { opacity: 0; translate: calc(-3 * var(--du)) 0; } to { opacity: 1; translate: 0 0; } }
.is-tick .feat__progress i, .is-tick .feat__item[aria-selected="true"] .feat__bar i { animation: feat-fill 6.5s linear forwards; }
[data-features]:not(.is-auto) .feat__progress i, [data-features]:not(.is-auto) .feat__bar i { animation-play-state: paused; }
@keyframes feat-fill { to { transform: scaleX(1); } }

/* images that are still loading keep the old picture, dimmed */
img.is-wait { opacity: .55; transition: opacity .2s ease; }

/* ---------- Invest ---------- */
.invest-sec { position: relative; isolation: isolate; }
.invest__media { position: relative; height: max(calc(60 * var(--du)), min(56.25vw, 96vh)); overflow: hidden; }
.invest__media img { width: 100%; height: 100% !important; object-fit: cover; object-position: 30% 50%; }
.invest__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 6, 28, 0) 35%, rgba(8, 6, 28, .55) 70%, rgba(8, 6, 28, .7)), linear-gradient(180deg, var(--bg) 0%, rgba(8, 6, 28, 0) 14%, rgba(8, 6, 28, 0) 86%, var(--bg) 100%); pointer-events: none; }
.invest__overlay { position: absolute; inset: 0; display: flex; align-items: center; }
.invest { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.invest__copy { grid-column: 2; position: relative; display: grid; gap: calc(1.8 * var(--du)); justify-items: start; min-width: 0; }
.invest__coins { position: absolute; right: calc(-1 * var(--du)); top: calc(-9 * var(--du)); width: calc(13 * var(--du)); height: auto; pointer-events: none; animation: bob 3.4s ease-in-out infinite; }
.invest__copy .h2 { font-size: calc(10 * var(--du)); }
.invest__note { font-size: calc(1.3 * var(--du)); color: var(--text-3); max-width: calc(48 * var(--du)); }

/* ---------- Footer ---------- */
.site-footer { position: relative; isolation: isolate; overflow: hidden; padding-bottom: calc(4 * var(--du) + env(safe-area-inset-bottom, 0px)); background: var(--bg); }
.footer-scene { position: relative; height: max(calc(50 * var(--du)), min(43vw, 90vh)); overflow: hidden; }
.footer-scene picture img { width: 100%; height: 100% !important; object-fit: cover; }
.footer-scene::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, var(--bg) 0%, rgba(8, 6, 28, 0) 18%, rgba(8, 6, 28, 0) 78%, var(--bg) 100%); }
.footer-scene__cta { position: absolute; z-index: 2; left: 50%; top: 18%; translate: -50% 0; display: grid; justify-items: center; gap: calc(2.4 * var(--du)); }
.site-footer__inner { position: relative; z-index: 1; display: grid; justify-items: center; gap: calc(2.6 * var(--du)); text-align: center; margin-top: calc(1 * var(--du)); }
.site-footer__logo { width: calc(26 * var(--du)); }
.follow { display: grid; gap: calc(1.4 * var(--du)); justify-items: center; }
.follow__title { font-size: calc(3.6 * var(--du)); }
.socials { display: flex; gap: calc(1.4 * var(--du)); }
.social { display: grid; place-items: center; width: calc(5.4 * var(--du)); height: calc(5.4 * var(--du)); transition: transform .35s var(--ease-spring); }
.social svg { width: calc(2.2 * var(--du)); height: calc(2.2 * var(--du)); fill: #fff; }
.social:hover, .social:focus-visible { transform: translateY(calc(-.6 * var(--du))) rotate(-6deg); }
.social:hover::before, .social:focus-visible::before { background: var(--edge-gold); }
.foot-nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(1 * var(--du)) calc(2.8 * var(--du)); }
.foot-nav a { color: var(--text-2); font-size: calc(1.4 * var(--du)); }
.foot-nav a:hover { color: #fff; }
.copyright { color: var(--text-3); font-size: calc(1.3 * var(--du)); }

/* ---------- Contact ---------- */
.page-hero { position: relative; padding-top: calc(var(--header-h) + 8 * var(--du)); padding-bottom: calc(6 * var(--du)); isolation: isolate; }
.page-hero::before { content: ""; position: absolute; inset: 0 0 auto; height: calc(80 * var(--du)); z-index: -1; background: radial-gradient(60% 70% at 50% 0%, rgba(119, 46, 236, .5), transparent 70%); pointer-events: none; }
.contact-hero { display: grid; grid-template-columns: 1fr calc(44 * var(--du)); gap: calc(4 * var(--du)); align-items: end; }
.contact-hero__copy { display: grid; gap: calc(1.6 * var(--du)); padding-bottom: calc(6 * var(--du)); min-width: 0; }
.contact-hero__art { position: relative; height: calc(52 * var(--du)); }
.contact-hero__art img { height: 100%; width: auto; max-width: none; margin-inline: auto; animation: bob 3s ease-in-out infinite; }
@keyframes bob { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 calc(-1.4 * var(--du)); rotate: 1.5deg; } }
.contact-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: calc(2.4 * var(--du)); margin-top: calc(2 * var(--du)); }
.ccard { display: grid; gap: calc(1.4 * var(--du)); padding: calc(3.2 * var(--du)); align-content: start; }
.ccard__head { display: flex; align-items: center; gap: calc(1.4 * var(--du)); }
.ccard__icon { display: grid; place-items: center; width: calc(5.4 * var(--du)); height: calc(5.4 * var(--du)); background: linear-gradient(135deg, var(--gold-hi), var(--gold-lo)); clip-path: polygon(calc(1 * var(--du)) 0, 100% 0, 100% calc(100% - 1 * var(--du)), calc(100% - 1 * var(--du)) 100%, 0 100%, 0 calc(1 * var(--du))); flex: none; }
.ccard__icon svg { width: calc(2.4 * var(--du)); height: calc(2.4 * var(--du)); fill: var(--gold-ink); }
.ccard__label { font-size: calc(3.2 * var(--du)); }
.ccard__value { font-size: calc(2.2 * var(--du)); font-weight: 600; word-break: break-word; user-select: all; }
.ccard__value.is-empty { color: var(--text-3); font-weight: 500; user-select: auto; }
.ccard__desc { color: var(--text-2); font-size: calc(1.5 * var(--du)); }
.ccard__actions { display: flex; flex-wrap: wrap; gap: calc(1.2 * var(--du)); margin-top: calc(.6 * var(--du)); }
.btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.faq { margin-top: calc(10 * var(--du)); }
.faq__list { display: grid; gap: calc(1.2 * var(--du)); margin-top: calc(4 * var(--du)); max-width: calc(96 * var(--du)); margin-inline: auto; }
.faq details { position: relative; isolation: isolate; }
.faq details::before { content: ""; position: absolute; inset: 0; z-index: -2; clip-path: var(--shape); background: var(--edge); opacity: .7; }
.faq details::after { content: ""; position: absolute; inset: 0; z-index: -1; clip-path: var(--shape-in); background: var(--stripes); }
.faq details[open]::before { background: var(--edge-gold); opacity: 1; }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: calc(2 * var(--du)); padding: calc(2.2 * var(--du)) calc(3 * var(--du)); font-weight: 600; font-size: calc(1.8 * var(--du)); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary svg { width: calc(2 * var(--du)); height: calc(2 * var(--du)); flex: none; transition: rotate .35s var(--ease-spring); fill: var(--gold); }
.faq details[open] summary svg { rotate: 180deg; }
.faq details p { padding: 0 calc(3 * var(--du)) calc(2.4 * var(--du)); color: var(--text-2); font-size: calc(1.6 * var(--du)); max-width: 70ch; }

/* ---------- Terms ---------- */
.terms { max-width: calc(90 * var(--du)); margin-inline: auto; display: grid; gap: calc(4 * var(--du)); }
.terms__date { color: var(--text-3); font-size: calc(1.4 * var(--du)); }
.terms section { display: grid; grid-template-columns: calc(8 * var(--du)) 1fr; gap: calc(2 * var(--du)); align-items: start; }
.terms__num { font-size: calc(5.6 * var(--du)); }
.terms h2 { font-size: calc(3.6 * var(--du)); margin-bottom: calc(1 * var(--du)); }
.terms p { color: var(--text-2); font-size: calc(1.7 * var(--du)); max-width: 68ch; }

/* ---------- Modal + toast ---------- */
.modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: calc(2 * var(--du) + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) calc(2 * var(--du) + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); background: rgba(5, 3, 18, .88); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.modal__box { position: relative; width: min(140 * var(--du), 100%); animation: swap-in .5s var(--ease-spring) both; }
.modal__box img { width: 100%; height: auto; max-height: 82vh; object-fit: contain; clip-path: var(--shape); }
.modal__close { position: absolute; right: 0; top: calc(-6.4 * var(--du)); width: calc(5.4 * var(--du)); height: calc(5.4 * var(--du)); display: grid; place-items: center; background: url("../img/btn-dark.svg") center / 100% 100% no-repeat; }
.modal__close svg { width: calc(2 * var(--du)); height: calc(2 * var(--du)); fill: #fff; }
.toast { position: fixed; left: 50%; width: max-content; bottom: calc(3 * var(--du) + env(safe-area-inset-bottom, 0px)); translate: -50% 0; z-index: 210; padding: calc(1.6 * var(--du)) calc(3 * var(--du)); font-weight: 600; font-size: calc(1.6 * var(--du)); max-width: calc(100vw - 32px); text-align: center; animation: toast-in .45s var(--ease-spring) both; }
.toast::before { background: var(--edge-gold); }
@keyframes toast-in { from { opacity: 0; translate: -50% calc(2 * var(--du)); } to { opacity: 1; translate: -50% 0; } }

/* ---------- Reveal (content is visible at rest; animates when it enters) ---------- */
.rv.is-in { animation: rv-up .8s var(--ease-out) both; animation-delay: var(--d, 0ms); }
.rv--left.is-in { animation-name: rv-left; }
.rv--right.is-in { animation-name: rv-right; }
.rv--zoom.is-in { animation-name: rv-zoom; }
@keyframes rv-up { from { opacity: 0; translate: 0 calc(4 * var(--du)); } to { opacity: 1; translate: 0 0; } }
@keyframes rv-left { from { opacity: 0; translate: calc(-6 * var(--du)) 0; } to { opacity: 1; translate: 0 0; } }
@keyframes rv-right { from { opacity: 0; translate: calc(6 * var(--du)) 0; } to { opacity: 1; translate: 0 0; } }
@keyframes rv-zoom { from { opacity: 0; scale: .92; } to { opacity: 1; scale: 1; } }
.is-paused, .is-paused * { animation-play-state: paused !important; }

/* =========================================================
   Below 1024: stacked layout designed for phones and tablets
   ========================================================= */
@media (max-width: 1023.98px) {
  body { font-size: calc(1.6 * var(--du)); }
  .h1 { font-size: calc(6.4 * var(--du)); }
  .h2 { font-size: calc(5.4 * var(--du)); }
  .h3 { font-size: calc(3.6 * var(--du)); }
  .kicker { font-size: calc(2.8 * var(--du)); }
  .lead { font-size: calc(1.6 * var(--du)); }
  .sec { padding-block: calc(7 * var(--du)); }
  .sec::before { width: 100%; height: calc(50 * var(--du)); }
  .btn { --h: 5.2; font-size: calc(1.6 * var(--du)); min-width: 0; padding-inline: calc(2.4 * var(--du)); }
  .btn--lg { --h: 5.6; font-size: calc(1.7 * var(--du)); }

  .site-header__inner { grid-template-columns: 1fr auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
  .main-nav, .header-cta { display: none; }
  .site-logo { width: calc(10.4 * var(--du)); }
  .menu-toggle { display: grid; place-items: center; width: calc(5.2 * var(--du)); height: calc(5.2 * var(--du)); background: url("../img/btn-dark.svg") center / 100% 100% no-repeat; position: relative; z-index: 2; }
  .menu-toggle i { display: block; width: calc(2.2 * var(--du)); height: 2px; background: #fff; border-radius: 2px; transition: rotate .3s ease, translate .3s ease, opacity .2s ease; }
  .menu-toggle span.bars { display: grid; gap: 5px; }
  .menu-toggle[aria-expanded="true"] i:nth-child(1) { translate: 0 7px; rotate: 45deg; }
  .menu-toggle[aria-expanded="true"] i:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] i:nth-child(3) { translate: 0 -7px; rotate: -45deg; }

  .hero { padding-bottom: calc(4 * var(--du)); }
  .hero__logo { top: calc(var(--header-h) + .6 * var(--du)); width: min(78%, 440px); }
  .hero__dock { margin-top: calc(-1 * var(--du)); grid-template-columns: 1fr; justify-items: center; text-align: center; padding: calc(2.4 * var(--du)) calc(2 * var(--du)); gap: calc(2 * var(--du)); }
  .hero__text { justify-items: center; }
  .hero__tag { font-size: calc(3.4 * var(--du)); }
  .hero__sub { font-size: calc(1.5 * var(--du)); }
  .hero__ctas { flex-wrap: wrap; justify-content: center; }
  .hero__stage { height: auto; aspect-ratio: 4 / 5; max-height: 92vh; min-height: 0; }
  .hero__bg { object-position: 50% 50%; }
  .hero__char--l { left: -2%; bottom: 3%; height: 46% !important; }
  .hero__char--r { right: 0; bottom: 6%; height: 27% !important; }
  .platforms { order: 4; margin-top: calc(1 * var(--du)); }
  .platforms ul { gap: calc(2 * var(--du)); }

  .inside__tabs .btn { min-width: 0; }
  .inside__panel { grid-template-columns: 1fr; padding: calc(1.6 * var(--du)); gap: calc(2 * var(--du)); }
  .arena__label { font-size: calc(1.8 * var(--du)); left: calc(1.2 * var(--du)); bottom: calc(1.2 * var(--du)); }
  .pitch { max-width: calc(30 * var(--du)); }
  .fmt-info { text-align: center; justify-items: center; }
  .fmt-info__vs { font-size: calc(6.4 * var(--du)); }
  .fmt-info__name { font-size: calc(3 * var(--du)); }
  .chips { justify-content: center; }
  .stats { gap: calc(1 * var(--du)); margin-top: calc(4 * var(--du)); }
  .stat__icon { width: calc(6 * var(--du)); height: calc(6 * var(--du)) !important; }
  .stat__num { font-size: calc(6.4 * var(--du)); }
  .stat__label { font-size: calc(1.9 * var(--du)); }

  .clubs { grid-template-columns: 1fr; gap: calc(2 * var(--du)); }
  .clubs__copy { padding-top: 0; order: -1; text-align: center; justify-items: center; }
  .club-feature { height: calc(54 * var(--du)); width: min(100%, calc(38 * var(--du))); margin-inline: auto; }
  .club-card { width: 100%; height: calc(44 * var(--du)); }
  .club-card__ovr { font-size: calc(4.8 * var(--du)); left: calc(2.2 * var(--du)); top: calc(2.2 * var(--du)); }
  .club-card__name { font-size: calc(3.2 * var(--du)); left: calc(1.8 * var(--du)); top: calc(11.6 * var(--du)); }
  .club-card__stats dd { font-size: calc(2 * var(--du)); }
  .club-art--kit { width: calc(22 * var(--du)); left: auto; right: calc(3 * var(--du)); bottom: calc(10 * var(--du)); }
  .club-art--cap { height: calc(46 * var(--du)) !important; max-width: calc(30 * var(--du)); left: auto; right: calc(-2 * var(--du)); bottom: calc(8 * var(--du)); object-position: right bottom; }
  .club-badge { width: calc(4.6 * var(--du)); right: calc(2.2 * var(--du)); top: calc(2.4 * var(--du)); }
  .clubs__copy .carousel-nav { justify-content: center; }
  .clubs__copy .pcards { --pad: max(16px, env(safe-area-inset-left, 0px)); justify-self: stretch; width: auto; min-width: 0; max-width: none; }
  .pcard button { width: calc(13 * var(--du)); }

  .modes { justify-content: flex-start; overflow-x: auto; scroll-snap-type: x mandatory; gap: calc(1.2 * var(--du)); margin-top: calc(3 * var(--du)); margin-inline: calc(-1 * max(16px, env(safe-area-inset-left, 0px))); padding-inline: max(16px, env(safe-area-inset-left, 0px)); scrollbar-width: none; align-items: stretch; }
  .modes::-webkit-scrollbar { display: none; }
  .mode, .mode.is-featured { width: calc(22 * var(--du)); height: calc(33 * var(--du)); margin-inline: 0; scroll-snap-align: center; }
  .mode.is-featured .mode__title, .mode__title { font-size: calc(2.8 * var(--du)); }
  .mode:hover { transform: none; }

  .viewer { padding: 0; }
  .viewer .arrow { width: calc(4.6 * var(--du)); height: calc(4.6 * var(--du)); }
  .viewer .arrow--prev { left: calc(.8 * var(--du)); }
  .viewer .arrow--next { right: calc(.8 * var(--du)); }
  .viewer__bar { justify-content: center; }
  .thumbs { overflow-x: auto; max-width: 100%; scrollbar-width: none; padding-block: 4px; }
  .thumb { width: calc(9 * var(--du)); flex: none; }

  .feat { grid-template-columns: 1fr; gap: calc(3 * var(--du)); margin-top: calc(3 * var(--du)); }
  .feat__stage { order: -1; rotate: 0deg; aspect-ratio: auto; display: grid; }
  .feat__frame { position: relative; aspect-ratio: 16 / 10; }
  .feat__art::after { background: linear-gradient(180deg, rgba(8, 6, 28, 0) 55%, rgba(8, 6, 28, .6) 100%); }
  .feat__iconwrap { width: calc(13 * var(--du)); right: calc(-.6 * var(--du)); top: calc(-4 * var(--du)); }
  .feat__txt { position: relative; left: auto; right: auto; bottom: auto; padding: calc(2 * var(--du)) calc(.4 * var(--du)) 0; gap: calc(.8 * var(--du)); }
  .feat__tag { font-size: calc(1.8 * var(--du)); }
  .feat__name { font-size: calc(4 * var(--du)); }
  .feat__desc { font-size: calc(1.5 * var(--du)); }
  .feat__progress { position: relative; left: auto; right: auto; bottom: auto; margin-top: calc(1.6 * var(--du)); }
  .feat__head { align-items: center; }
  .feat__choose .t-white { font-size: calc(2.2 * var(--du)); }
  .feat__choose .t-gold { font-size: calc(3.8 * var(--du)); }
  .feat__list { grid-template-columns: 1fr 1fr; gap: calc(1 * var(--du)); }
  .feat__item, .feat__item:hover, .feat__item[aria-selected="true"] { transform: none; }
  .feat__item { grid-template-columns: calc(4.6 * var(--du)) 1fr; gap: calc(1 * var(--du)); padding: calc(.9 * var(--du)) calc(1.2 * var(--du)) calc(1.3 * var(--du)) calc(.8 * var(--du)); }
  .feat__ico { width: calc(4.6 * var(--du)); height: calc(4.6 * var(--du)); }
  .feat__t { font-size: calc(1.8 * var(--du)); }
  .feat__n { font-size: calc(1.2 * var(--du)); }
  .feat__s { display: none; }
  .feat__bar { left: calc(1.2 * var(--du)); right: calc(1.2 * var(--du)); bottom: calc(.6 * var(--du)); }

  .invest__media { height: auto; aspect-ratio: 4 / 3; }
  .invest__media img { object-position: 0 50%; }
  .invest__media::after { background: linear-gradient(180deg, var(--bg) 0%, rgba(8, 6, 28, 0) 14%, rgba(8, 6, 28, 0) 70%, var(--bg) 100%); }
  .invest__overlay { position: relative; inset: auto; margin-top: calc(-4 * var(--du)); }
  .invest { grid-template-columns: 1fr; padding-bottom: calc(4 * var(--du)); }
  .invest__copy { grid-column: 1; }
  .invest__coins { position: static; width: calc(8 * var(--du)); margin-bottom: calc(-.6 * var(--du)); }
  .invest__copy { justify-items: center; text-align: center; }
  .invest__copy .h2 { font-size: calc(5.4 * var(--du)); }

  .footer-scene { height: auto; }
  .footer-scene picture img { height: auto !important; aspect-ratio: 1200 / 610; }
  .footer-scene__cta { position: relative; left: auto; top: auto; translate: none; margin-top: calc(-2 * var(--du)); }
  .footer-scene { overflow: visible; display: grid; }
  .site-footer__inner { margin-top: calc(3 * var(--du)); }
  .site-footer__logo { width: calc(24 * var(--du)); }
  .follow__title { font-size: calc(2.8 * var(--du)); }

  .contact-hero { grid-template-columns: 1fr; text-align: center; }
  .contact-hero__copy { justify-items: center; padding-bottom: 0; }
  .contact-hero__art { height: calc(30 * var(--du)); order: -1; }
  .contact-cards { grid-template-columns: 1fr; }
  .ccard { padding: calc(2.4 * var(--du)); }
  .faq { margin-top: calc(6 * var(--du)); }
  .faq summary { font-size: calc(1.6 * var(--du)); padding: calc(1.8 * var(--du)) calc(2.2 * var(--du)); }
  .faq details p { padding: 0 calc(2.2 * var(--du)) calc(2 * var(--du)); font-size: calc(1.5 * var(--du)); }
  .terms section { grid-template-columns: calc(5 * var(--du)) 1fr; }
  .terms__num { font-size: calc(3.6 * var(--du)); }
  .terms h2 { font-size: calc(2.6 * var(--du)); }
  .terms p { font-size: calc(1.5 * var(--du)); }
}
@media (max-width: 420px) {
  .hero__ctas .btn { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .hero__confetti { display: none; }
}
