:root{--st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px);--sl:env(safe-area-inset-left,0px);--sr:env(safe-area-inset-right,0px);--gold:#ffe08a;--crystal:#73d9ff;--ink:#0e1420}*{box-sizing:border-box}html,body{color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#1b2433;height:100%;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}#gl{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}button{font:inherit;color:inherit}.screen{padding:calc(16px + var(--st)) calc(16px + var(--sr)) calc(16px + var(--sb)) calc(16px + var(--sl));pointer-events:auto;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;inset:0}.screen.dim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0e188c}.screen.title{padding-bottom:calc(8vh + var(--sb));background:linear-gradient(#0a0e180d,#0a0e188c);justify-content:flex-end}.loading{opacity:.85;font-size:20px}.logo h1{letter-spacing:-.02em;text-shadow:0 4px #3c2a6b,0 10px 30px #00000080;margin:0;font-size:clamp(44px,9vw,96px);font-weight:900;line-height:.95}.logo h1 span{color:#c9a8ff}.logo p{text-shadow:0 1px 6px #000c;max-width:36em;margin:12px auto 0;font-size:clamp(14px,2.2vw,18px);line-height:1.45}.row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn{pointer-events:auto;color:var(--ink);cursor:pointer;background:linear-gradient(#ffe8a3,#f2b33d);border:0;border-radius:14px;min-width:200px;padding:14px 26px;font-size:18px;font-weight:800;box-shadow:0 4px #9a6a14,0 8px 20px #00000059}.btn small{opacity:.75;margin-top:3px;font-size:12px;font-weight:600;display:block}.btn:active{transform:translateY(2px);box-shadow:0 2px #9a6a14}.btn:focus-visible{outline-offset:3px;outline:3px solid #fff}.hint{opacity:.8;text-shadow:0 1px 4px #000;margin:0;font-size:13px}.panel{background:#0e1420eb;border:1px solid #ffffff1f;border-radius:18px;max-width:520px;padding:22px 26px}.panel h2{margin:0 0 10px;font-size:26px}.panel p{opacity:.9;line-height:1.6}.hud{position:absolute;inset:0}.top{top:calc(10px + var(--st));text-align:center;text-shadow:0 2px 6px #000c;position:absolute;left:0;right:0}.round{letter-spacing:.12em;font-size:15px;font-weight:800}.clock{font-size:38px;font-weight:900;line-height:1.05}.clock.low{color:#ff6a4d}.banner{text-align:center;color:var(--gold);text-shadow:0 3px #5a3a00,0 6px 24px #0009;opacity:0;padding:0 12px;font-size:clamp(28px,6vw,64px);font-weight:900;transition:opacity .2s;position:absolute;top:27%;left:0;right:0}.banner.on{opacity:1}.banner.pop{animation:.35s ease-out pop}@keyframes pop{0%{transform:scale(1.35)}to{transform:scale(1)}}.feed{top:calc(12px + var(--st));right:calc(14px + var(--sr));text-align:right;text-shadow:0 1px 4px #000;max-width:40vw;font-size:13px;line-height:1.6;position:absolute}.cards{left:0;right:0;bottom:calc(14px + var(--sb));justify-content:center;gap:12px;padding:0 12px;display:flex;position:absolute}.card{background:#05060a9e;border-radius:10px;width:min(23vw,300px);padding:8px 12px 10px 18px;position:relative;overflow:hidden}.card:before{content:"";background:var(--accent);width:7px;position:absolute;top:0;bottom:0;left:0}.card.me{box-shadow:0 0 0 2px var(--accent)}.card .name{white-space:nowrap;text-overflow:ellipsis;padding-right:54px;font-size:14px;font-weight:700;overflow:hidden}.card .wins{color:#ffd84d;letter-spacing:1px;font-size:15px;position:absolute;top:6px;right:10px}.card .bar{background:#3c0a0ae6;border-radius:3px;height:12px;margin-top:6px;overflow:hidden}.card .bar b{width:100%;height:100%;transition:width .15s;display:block}.card .extra{align-items:center;gap:6px;height:16px;margin-top:6px;display:flex;position:relative}.card .extra i{background:#32404dcc;border-radius:3px;width:14px;height:14px;transform:rotate(45deg)scale(.8)}.card .extra i.on{background:var(--crystal);box-shadow:0 0 10px var(--crystal)}.card .extra .geo{background:var(--crystal);border-radius:3px;height:6px;position:absolute;top:0;left:0}.card .extra em{color:#9be7ff;margin-top:10px;font-size:11px;font-style:normal;font-weight:800}.card .ko{color:#ff5a40;background:#00000059;justify-content:center;align-items:center;font-size:28px;font-weight:900;display:none;position:absolute;inset:0}.card.out .ko{display:flex}.card.out .name{opacity:.5}.keys{left:0;right:0;bottom:calc(118px + var(--sb));text-align:center;opacity:.6;text-shadow:0 1px 3px #000;font-size:12px;position:absolute}kbd{background:#ffffff26;border:1px solid #ffffff40;border-radius:4px;padding:1px 6px;font:600 11px system-ui;display:inline-block}.pausebtn{pointer-events:auto;top:calc(12px + var(--st));left:calc(12px + var(--sl));cursor:pointer;background:#00000073;border:0;border-radius:50%;width:44px;height:44px;font-size:16px;position:absolute}.touch{display:none}[data-device=touch] .touch{display:block}[data-device=touch] .keys{display:none}[data-device=touch] .cards{bottom:auto;top:calc(8px + var(--st));justify-content:flex-start;gap:6px;left:64px;right:12px}[data-device=touch] .card{flex:1 1 0;width:auto;max-width:200px;padding:5px 8px 6px 12px}[data-device=touch] .card .name{padding-right:28px;font-size:11px}[data-device=touch] .card .wins{font-size:11px;top:4px;right:6px}[data-device=touch] .card .bar{height:8px;margin-top:4px}[data-device=touch] .card .extra{height:10px;margin-top:4px}[data-device=touch] .card .extra i{width:9px;height:9px}[data-device=touch] .card .extra em{display:none}[data-device=touch] .card .ko{font-size:16px}[data-device=touch] .top{top:auto;bottom:calc(10px + var(--sb))}@media (aspect-ratio<=1){[data-device=touch] .top{bottom:calc(118px + var(--sb))}}[data-device=touch] .feed{display:none}@media (aspect-ratio<=1){[data-device=touch] .top{width:min(54%,260px);left:0;right:auto}[data-device=touch] .round{padding:0 8px;font-size:12px;line-height:1.25}}.touch .zone{pointer-events:auto;width:50%;position:absolute;top:30%;bottom:0;left:0}.knob{opacity:0;pointer-events:none;background:#0000002e;border:2px solid #ffffff59;border-radius:50%;width:110px;height:110px;margin:-55px 0 0 -55px;transition:opacity .15s;position:fixed}.knob:after{content:"";width:46px;height:46px;transform:translate(var(--dx,0px), var(--dy,0px));background:#ffffff8c;border-radius:50%;margin:-23px 0 0 -23px;position:absolute;top:50%;left:50%}.knob.on{opacity:1}.tb{pointer-events:auto;color:#fff;background:#0a0e1873;border:2px solid #fff6;border-radius:50%;padding:4px;font-size:12px;font-weight:800;line-height:1.1;position:absolute}.tb.down{background:#ffe08a8c}.tb.jump{right:calc(16px + var(--sr));bottom:calc(18px + var(--sb));border-color:#7ee08a;width:84px;height:84px}.tb.grab{right:calc(112px + var(--sr));bottom:calc(30px + var(--sb));border-color:#ff8a73;width:76px;height:76px}.tb.punch{right:calc(40px + var(--sr));bottom:calc(116px + var(--sb));border-color:#73b7ff;width:70px;height:70px}.tb.slam{right:calc(126px + var(--sr));bottom:calc(122px + var(--sb));border-color:var(--crystal);width:66px;height:66px;display:none}.tb.slam.ready{box-shadow:0 0 18px var(--crystal);animation:.8s infinite alternate pulse;display:block}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.08)}}@media (width<=720px){.card .name{font-size:12px}.btn{min-width:160px;padding:12px 18px;font-size:16px}}.skipbtn{pointer-events:auto;left:50%;bottom:calc(26% + var(--sb));color:#fff;cursor:pointer;white-space:nowrap;background:#0a0e18b3;border:2px solid #ffffff80;border-radius:999px;min-height:48px;padding:12px 22px;font-size:15px;font-weight:800;display:none;position:absolute;transform:translate(-50%)}.skipbtn.on{display:block}.clock.sudden{color:#ff5a3c;animation:.5s infinite alternate pulse}.toggles{margin-top:4px}.tog{pointer-events:auto;color:#fff;min-height:44px;font:inherit;cursor:pointer;background:#0a0e188c;border:2px solid #ffffff59;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:700}.tog[aria-pressed=false]{opacity:.6}[data-device=keys] #gl{cursor:crosshair}.hint .alt{opacity:.75;font-size:12px}.controls{text-align:left;margin-top:14px;font-size:13px}.controls table{border-collapse:collapse;width:100%}.controls th,.controls td{border-bottom:1px solid #ffffff1a;padding:4px 8px}.controls th{opacity:.8;font-weight:700}.holding{left:50%;top:calc(64px + var(--st,0px));text-align:center;color:#fff;opacity:0;pointer-events:none;background:#0a0e18b8;border:1px solid #ffffff2e;border-radius:12px;max-width:min(560px,92vw);padding:6px 14px;font-size:14px;transition:opacity .15s;position:absolute;transform:translate(-50%)}.holding.on{opacity:1}.holding b{letter-spacing:.06em;margin-right:6px;font-weight:900}.holding small{color:#ffffffbf;font-size:12px;display:block}.powerpop{text-align:center;letter-spacing:.06em;text-shadow:0 3px #0000008c,0 0 22px;opacity:0;pointer-events:none;font-size:clamp(24px,5vw,52px);font-weight:900;position:absolute;top:40%;left:0;right:0}.powerpop.go{animation:1.3s ease-out powerpop}@keyframes powerpop{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.12)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-18px)}}@media (height<=500px){.holding{font-size:12px;top:44px}.holding small{display:none}}.keys.off{display:none}.setup{gap:8px}.opt{min-width:150px}.card .extra .rush{color:#9be7ff;font-size:14px;font-weight:800}.setupline{margin:0 0 10px}.lobby{max-width:640px}.seats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 18px;display:grid}.seat{opacity:.7;border:2px dashed #ffffff40;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.seat b{color:var(--accent);font-size:17px}.seat span{font-size:13px}.seat.on{border-style:solid;border-color:var(--accent);opacity:1;background:#ffffff0f}.btn:disabled{filter:grayscale(.8);opacity:.55;cursor:default}@media (width<=520px){.seats{grid-template-columns:1fr}}.tb.grab.aiming{outline-offset:2px;outline:3px solid #ffe08a;transform:scale(1.06)}@media (height<=500px){.screen.title{padding-bottom:calc(8px + var(--sb));justify-content:center;gap:8px}.screen.title .logo p,.screen.title .hint:not(:last-of-type){display:none}.screen.title .logo h1{font-size:34px}.screen.title .btn{padding:8px 18px}.screen.title .row{gap:8px}}
