@font-face{font-family:Fredoka;src:url('/assets/fredoka.ttf') format('truetype');font-weight:700;font-display:swap}
:root{color-scheme:dark;--bg:#090d22;--text:#f4f7ff;--muted:#acb6cd;--gold:#ffce32;--cyan:#55d8ff;--line:#293047}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{overflow-x:clip;margin:0;background:var(--bg);color:var(--text);font:1rem/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--gold)}a:focus-visible,video:focus-visible{outline:3px solid var(--cyan);outline-offset:6px}img{display:block;max-width:100%;height:auto}.wrap{max-width:1220px;margin-inline:auto;padding-inline:44px}.header{display:flex;align-items:center;justify-content:space-between;padding-block:24px}.brand{width:156px}nav{display:flex;align-items:center;gap:32px;font-size:.875rem;font-weight:650}.nav-download{display:block;line-height:0;transition:transform .25s}.nav-download img{width:138px;height:46px}.nav-download:hover{transform:translateY(-2px)}.skip{position:fixed;top:12px;left:12px;transform:translateY(-180%);z-index:10;background:var(--gold);color:var(--bg);padding:12px}.skip:focus{transform:none}.hero{isolation:isolate;position:relative;display:grid;grid-template-columns:1.25fr .85fr;align-items:center;gap:64px;padding-top:32px;padding-bottom:70px}.eyebrow{color:var(--cyan);font-size:.75rem;font-weight:800;letter-spacing:.12em;margin:0 0 20px}h1,h2,h3{font-family:Fredoka,sans-serif;line-height:1.05;margin:0;font-weight:700}h1{font-size:clamp(3.5rem,6.4vw,5.7rem);letter-spacing:-.025em}h1 span{color:var(--gold)}.intro{font-size:1.125rem;max-width:490px;color:var(--muted);margin:26px 0 30px}.download{display:inline-block;vertical-align:middle;line-height:0;border-radius:13px;transition:transform .3s cubic-bezier(.2,.8,.2,1),filter .3s}.download img{width:216px;height:72px}.download:hover{transform:translateY(-4px);filter:drop-shadow(0 10px 20px #55d8ff26)}.download:active{transform:translateY(-1px) scale(.98)}.fine{font-size:.75rem;color:var(--muted);margin:20px 0 0}.champions{display:flex;gap:12px;max-width:420px;margin-top:36px}.champions>div{flex:1;text-align:center}.champions img{width:130px;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 12px 16px #0005)}.champions span{font-size:.75rem;font-weight:800;letter-spacing:.1em}.champions>div:first-child span{color:var(--cyan)}.champions>div:nth-child(2) span{color:#ffa69a}.champions>div:last-child span{color:#c9a1ff}.battle{margin:0;position:relative;max-width:335px;justify-self:center;transform:rotate(3deg)}.battle:before{content:"";position:absolute;inset:10% -8%;z-index:-1;background:radial-gradient(ellipse,#0578a74d,transparent 68%)}.battle>img{border-radius:25px;border:1px solid #647aa1;box-shadow:0 30px 80px #0008;width:100%}.battle-label{display:flex;justify-content:space-between;font-size:.75rem;font-weight:800;letter-spacing:.09em;margin-bottom:10px;color:var(--muted)}figcaption{text-align:center;font-size:.75rem;margin-top:14px;color:var(--muted)}.rule-strip{display:flex;align-items:center;justify-content:center;gap:34px;border-block:1px solid var(--line);padding:21px 24px;background:#10162e;font:700 .875rem/1.5 Fredoka,sans-serif;letter-spacing:.035em}.rule-strip span:nth-child(even){color:var(--gold)}.play-section{padding-block:105px;display:grid;grid-template-columns:1fr 1fr;gap:80px}h2{font-size:clamp(2.5rem,4vw,3.6rem);letter-spacing:-.015em}.steps article{display:flex;gap:24px;padding:23px 0;border-bottom:1px solid var(--line)}.steps article:first-child{padding-top:0}.step-number{font:700 1.25rem Fredoka,sans-serif;color:var(--gold);padding-top:2px}h3{font-size:1.45rem}.steps p{color:var(--muted);margin:12px 0 0}.watch-section{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding-block:30px 100px}.video-frame{background:#141b33;border:1px solid var(--line);border-radius:20px;padding:22px;justify-self:center;width:100%;max-width:355px}.video-frame video{display:block;width:100%;max-height:570px;border-radius:8px}.watch-copy p:not(.eyebrow){color:var(--muted);max-width:450px;margin:24px 0}.text-link{display:inline-block;color:var(--gold);font-weight:700;border-bottom:1px solid var(--gold);padding-bottom:5px}.text-link span{margin-left:24px}.last-call{border-top:1px solid var(--line);padding-block:65px;text-align:center}.last-call>img{margin:0 auto 22px;border-radius:18px}.last-call h2{margin-bottom:28px}footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-block:25px;color:var(--muted);font-size:.875rem}footer p{margin:0}
@media(min-width:1400px){.hero{padding-top:50px}.battle{max-width:350px}}
@media(max-width:850px){.wrap{padding-inline:28px}.hero{gap:35px;grid-template-columns:1.15fr .85fr}.hero h1{font-size:3.8rem}.battle{transform:rotate(2deg)}.champions{margin-top:24px}.play-section,.watch-section{gap:45px}.rule-strip{gap:20px;font-size:.75rem}nav{gap:20px}}
@media(max-width:620px){.wrap{padding-inline:24px}.header{padding-block:16px}.brand{width:120px}.header nav>a:not(.nav-download){display:none}.hero{display:flex;flex-direction:column;gap:42px;padding-top:30px;padding-bottom:45px}.hero-copy{width:100%}.hero h1{font-size:clamp(3.5rem,13vw,5rem)}.eyebrow{font-size:.7rem}.intro{font-size:1rem;max-width:420px;margin-block:22px}.champions{max-width:360px;margin-top:30px}.champions img{width:110px;margin-inline:auto}.battle{width:75%;max-width:300px;transform:rotate(2deg)}.rule-strip{flex-wrap:wrap;gap:8px 16px;font-size:.7rem}.rule-strip span:nth-child(even){display:none}.play-section{display:block;padding-block:65px}.section-heading{margin-bottom:36px}.watch-section{display:flex;flex-direction:column-reverse;gap:32px;padding-bottom:65px}.watch-copy{width:100%}.video-frame{max-width:300px}h2{font-size:2.7rem}.last-call{padding-block:50px}.last-call h2{font-size:2.5rem}footer{flex-direction:column;gap:16px}footer nav{gap:24px}.fine{font-size:.75rem;max-width:310px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.download{transition:none}}

/* Motion is progressive: all content stays visible without JavaScript. */
:root{--ease-out:cubic-bezier(.16,1,.3,1)}
.hero::before{content:"";position:absolute;inset:0 0 0 25%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 75% 45%,#128eae20,transparent 52%),radial-gradient(ellipse at 15% 85%,#734adb12,transparent 50%)}
.header{animation:enter-down .65s var(--ease-out) both}
.hero-copy>.eyebrow{animation:enter-up .8s var(--ease-out) .08s both}
.hero-copy>h1{animation:enter-up .9s var(--ease-out) .16s both}
.hero-copy>.intro{animation:enter-up .9s var(--ease-out) .24s both}
.hero-copy>.download{animation:enter-up .9s var(--ease-out) .32s both}
.hero-copy>.fine{animation:enter-up .9s var(--ease-out) .38s both}
.champions>div{animation:enter-up .9s var(--ease-out) .42s both}
.champions>div:nth-child(2){animation-delay:.5s}
.champions>div:nth-child(3){animation-delay:.58s}
.battle{--tilt-x:0deg;--tilt-y:0deg;--rest-angle:3deg;transform:perspective(1100px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) rotate(var(--rest-angle));transition:transform .65s var(--ease-out);animation:battle-arrive 1.2s var(--ease-out) .2s both}
.champions img{transition:transform .5s var(--ease-out),filter .5s}
.text-link span{display:inline-block;transition:transform .3s var(--ease-out)}
.text-link:hover span{transform:translate(4px,-4px)}
.brand{transition:transform .4s var(--ease-out)}
.brand:hover{transform:rotate(-3deg) scale(1.035)}
.steps article{transition:border-color .35s}
.step-number{transition:color .35s,transform .35s var(--ease-out)}
.steps article:hover{border-color:#55d8ff70}
.steps article:hover .step-number{color:var(--cyan);transform:translateY(-3px)}
.video-frame{transition:border-color .4s,box-shadow .4s}
.video-frame:focus-within,.video-frame:hover{border-color:#55d8ff70;box-shadow:0 12px 50px #0003}
[data-reveal]{transition:opacity .8s var(--ease-out),translate .9s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.reveal-pending{opacity:0;translate:0 28px}
[data-reveal]:focus-within{opacity:1;translate:none}
.last-call{position:relative;isolation:isolate}
.last-call::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 100%,#15739622,transparent 68%);pointer-events:none}
@keyframes enter-up{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
@keyframes enter-down{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}
@keyframes battle-arrive{from{opacity:0;translate:0 32px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
@media(hover:hover) and (pointer:fine){.champions>div:hover img{transform:translateY(-12px) rotate(-4deg) scale(1.08);filter:drop-shadow(0 16px 18px #55d8ff30)}.champions>div:nth-child(2):hover img{transform:translateY(-12px) rotate(4deg) scale(1.08);filter:drop-shadow(0 16px 18px #ff998830)}.champions>div:nth-child(3):hover img{filter:drop-shadow(0 16px 18px #ad76ff40)}}
@media(max-width:850px){.battle{--rest-angle:2deg}}
@media(max-width:620px){.header nav{gap:0}.nav-download img{width:126px;height:42px}.hero::before{inset:25% 0 0}.eyebrow,.rule-strip{font-size:.75rem}.battle-label{gap:14px;letter-spacing:.04em;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;translate:none}.battle{transform:rotate(var(--rest-angle))}.champions>div:hover img,.brand:hover,.download:hover,.nav-download:hover,.download:active{transform:none}}
