:root{color-scheme:dark;--navy:#101d38;--blue:#56b5ff;--gold:#ffce83;--muted:#a7b7ce}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 85% 0%,#183455,transparent 48%),#0b1429;color:#f8f5ed;font:16px 'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:600 14px 'DM Sans',sans-serif;cursor:pointer;color:inherit;border:1px solid #ffffff24;background:#ffffff07;border-radius:9px;min-height:44px;padding:10px 16px}button:hover{background:#ffffff15}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}main{max-width:1260px;margin:auto;padding:0 36px}header{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff16}.logo{width:64px;height:64px;border-radius:9px;display:block}.arcade{font:600 12px 'DM Sans',sans-serif;letter-spacing:.23em;color:var(--muted)}.heading{display:flex;align-items:center;justify-content:space-between;padding:28px 0 24px}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:700;color:var(--blue);margin:0 0 9px}h1{font:800 clamp(38px,5.2vw,64px)/1 'Outfit',sans-serif;letter-spacing:-.04em;margin:0}h1 em,h2 em{color:var(--gold);font-style:normal}.tagline{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.tagline em{color:#e1e9f7}.cabinet{overflow:hidden;border:1px solid #435570;border-radius:18px;box-shadow:0 24px 70px #0005}.scoreboard{display:flex;align-items:center;gap:20px;padding:15px 25px;background:#16243d}.player{display:flex;align-items:center;gap:23px;min-width:155px}.player strong{font:600 43px/1 'Outfit';color:var(--blue)}.player-label{font-size:14px;letter-spacing:.08em;font-weight:700}.player small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.right strong{color:var(--gold)}.match{flex:1;text-align:center}.match span{font-size:11px;letter-spacing:.22em;color:var(--gold)}.match b{display:block;margin-top:6px;font-size:11px;letter-spacing:.1em;color:var(--muted)}#pause{font-size:18px;padding:5px 13px}.court{position:relative;height:clamp(380px,43vw,530px);background:linear-gradient(#101d3890,#101d38bd),url('/game-assets/ballroom.png') center/cover}canvas{width:100%;height:100%;display:block;touch-action:none}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#09142640;backdrop-filter:blur(2px)}.start-card{width:min(470px,90%);text-align:center;background:#101d38ed;border:1px solid #879cba42;border-radius:18px;padding:27px 24px;box-shadow:0 12px 80px #0005}.ticket{font-size:10px;letter-spacing:.15em;color:var(--gold);font-weight:700}h2{font-family:'Outfit';font-size:34px;line-height:1.08;letter-spacing:-.025em;margin:13px 0}.start-card p{font-size:14px;color:#bcc9dc;line-height:1.55;margin:10px 0 17px}.mode-picker{display:flex;gap:6px;background:#091427;padding:5px;border-radius:10px;margin:18px 0 12px}.mode-picker button{flex:1;border:0;color:var(--muted)}.mode-picker .selected{background:#29476a;color:white;box-shadow:0 2px 5px #0004}.primary{background:var(--gold);color:#17233a;border:0;min-height:48px;width:100%;font-size:17px;font-weight:800}.primary:hover{background:#ffdfa9}.start-card .start-help{font-size:12px;margin:12px 0 0}.hidden{display:none!important}#win-cta{display:inline-block;font-size:14px;color:var(--gold);text-decoration:underline;margin-top:16px}#announcement{pointer-events:none;position:absolute;top:18px;left:50%;transform:translateX(-50%);text-align:center;font:600 18px 'Outfit';color:white;text-shadow:0 2px 8px #000;max-width:85%;width:max-content}.floor-note{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:9px;font-weight:700;letter-spacing:.19em;color:#c3d5e599;pointer-events:none}.control-bar{background:#142139;padding:12px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.control-bar p{font-size:12px;color:var(--muted);margin:0}kbd{display:inline-block;padding:4px 7px;background:#24334d;color:#ecf1f8;border-radius:4px;font:600 12px 'DM Sans';margin-right:3px}#rally{font-size:10px;font-weight:700;letter-spacing:.09em;color:var(--gold)}.invitation{display:flex;align-items:center;gap:24px;margin-top:30px;padding:24px 0;border-bottom:1px solid #ffffff16}.invitation img{width:65px;border-radius:10px}.invitation h2{font-size:24px;margin:7px 0}.invitation p:not(.eyebrow){font-size:14px;color:var(--muted);margin:8px 0}.invitation .eyebrow{font-size:10px}.quote{margin-left:auto;white-space:nowrap;border:1px solid #6794c5;border-radius:8px;padding:14px 17px;font-size:14px;color:#daeaff}.quote:hover{background:#203c5f}footer{display:flex;justify-content:space-between;padding:23px 0 35px;font-size:11px;letter-spacing:.07em;color:var(--muted)}footer a{text-decoration:underline}
@media(max-width:700px){main{padding:0 14px}header{height:72px}.logo{width:50px;height:50px}.arcade{font-size:10px;letter-spacing:.12em}#sound{padding:9px 10px;font-size:12px}.heading{padding:22px 0 18px}.heading .eyebrow{font-size:9px;letter-spacing:.06em}.tagline{display:none}h1{font-size:43px}.scoreboard{padding:12px;gap:9px}.player{min-width:0;gap:12px}.player strong{font-size:32px}.player-label{font-size:11px}.player small{font-size:9px}.match b{display:none}.match span{font-size:9px;letter-spacing:.08em}#pause{padding:4px 9px;min-width:36px}.court{height: min(60svh,510px);min-height:370px}.start-card{padding:22px 18px;width:87%}h2{font-size:30px}.start-card p{font-size:13px}.ticket{font-size:9px}.control-bar{padding:11px 13px}.control-bar p{font-size:11px}.control-bar p span{display:none}#rally{font-size:9px}.invitation{gap:14px;flex-wrap:wrap;margin-top:17px;padding:20px 3px}.invitation img{width:48px}.invitation>div{flex:1}.invitation h2{font-size:21px}.invitation .eyebrow{font-size:9px;line-height:1.5}.invitation p:not(.eyebrow){font-size:13px}.quote{margin:0 0 0 62px;white-space:normal}footer{font-size:9px;gap:15px;line-height:1.6}.floor-note{font-size:7px;letter-spacing:.08em}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

@media(pointer:coarse){.control-bar #controls{font-size:0}.control-bar #controls kbd,.control-bar #controls span{display:none}.control-bar #controls::after{content:'Drag your side up & down';font-size:12px;color:#b7c8df}}

@media(max-width:700px){.scoreboard{gap:7px}.player{gap:8px}.player-label{font-size:10px;letter-spacing:0}.match{min-width:35px}.match span{font-size:9px}}
