:root{color-scheme:dark;--bg: #23272a;--surface: #2c2f33;--text: #ffffff;--text-muted: #b5bac1;--map-fill: #66738c;--map-hover: #8ea1e1;--correct: #248046;--wrong: #d83c3e;--accent: #5865f2;--accent-light: #98a7f8;--brand-line: #8ea1e1;--radius: 10px;--radius-lg: 16px;--shadow: 0 12px 32px rgb(0 0 0 / .45);--font: system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);overflow:hidden;-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0;--chrome-top: 0px}@media(pointer:coarse){#app.embedded{--chrome-top: 60px}}#app{--hud-clear-top: max(env(safe-area-inset-top, 0px), var(--chrome-top));--hud-clear-bottom: calc(60px + env(safe-area-inset-bottom, 0px)) }.map-holder{position:absolute;top:var(--hud-clear-top);left:0;right:0;bottom:var(--hud-clear-bottom)}.map-holder svg{position:absolute;inset:0;width:100%;height:100%}.map-holder svg{touch-action:none;-webkit-user-select:none;user-select:none}@keyframes pack-enter{0%{opacity:0}to{opacity:1}}.map-holder svg.pack-enter{animation:pack-enter .42s ease-out}.map-holder svg.interactive{cursor:crosshair}.map-holder svg.dragging{cursor:grabbing}.screen-holder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.toast-holder{position:absolute;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%);pointer-events:none}.region{fill:var(--map-fill);stroke:var(--bg);stroke-width:.7;stroke-linejoin:round;transition:fill .12s ease}.region.hover{fill:var(--map-hover)}.region.found{fill:var(--correct);stroke:#57cf87;stroke-width:1.2;vector-effect:non-scaling-stroke}.region.found.heat-warm{fill:#8f7d2c;stroke:#d9b545}.region.found.heat-hard{fill:#a34f42;stroke:#ef8264}.region.miss{fill:var(--wrong);stroke:#fff;stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:region-shake .48s ease-in-out}.region.pop{transform-box:fill-box;transform-origin:center;animation:region-pop .36s ease-out}.region.pressed{fill:var(--accent-light)}.region.hint{stroke:var(--accent-light);stroke-width:2.4;stroke-dasharray:7 5;animation:hint-pulse 1.4s ease-in-out infinite}.hint-ring{fill:transparent;stroke:var(--accent-light);stroke-width:2;stroke-dasharray:8 5;pointer-events:none;animation:hint-pulse 1.4s ease-in-out infinite}.hit-area{fill:none;stroke:transparent;pointer-events:stroke}.cursor-layer{pointer-events:none}.cursor-dot{fill:var(--accent);stroke:#ffffffe6;stroke-width:1.5}.cursor-rim{fill:none;stroke:var(--accent);stroke-width:2}.cursor-initial{font-size:11px;font-weight:800;fill:#fff}.cursor-name{font-size:14px;font-weight:700;fill:#fff;stroke:#000000bf;stroke-width:3px;paint-order:stroke;stroke-linejoin:round}.click-label{position:absolute;top:64px;left:50%;transform:translate(-50%);padding:7px 16px;border-radius:999px;background:#23272ad9;border:1px solid rgb(255 255 255 / .12);color:var(--text);font-size:15px;font-weight:700;letter-spacing:.02em;pointer-events:none;opacity:0;transition:opacity .18s ease}.click-label.visible{opacity:1}.debug-dot{fill:#fc0;stroke:#000;stroke-width:1;pointer-events:none}@keyframes region-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes region-pop{0%{transform:scale(1)}40%{transform:scale(.94)}to{transform:scale(1)}}@keyframes hint-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.panel{pointer-events:auto;background:var(--surface);border:1px solid rgb(255 255 255 / .08);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;animation:rise-in .26s ease-out}@keyframes rise-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.victory-panel>*{animation:rise-in .42s ease-out both}.victory-panel>*:nth-child(2){animation-delay:60ms}.victory-panel>*:nth-child(3){animation-delay:.12s}.victory-panel>*:nth-child(4){animation-delay:.18s}.victory-panel>*:nth-child(5){animation-delay:.24s}.victory-panel>*:nth-child(6){animation-delay:.3s}.victory-panel>*:nth-child(n+7){animation-delay:.36s}.confetti-canvas{position:fixed;inset:0;pointer-events:none;z-index:40}.wordmark{margin:0;font-size:30px;font-weight:800;letter-spacing:.04em}.wordmark .rumble{color:var(--accent-light)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#ffffff0f;color:var(--text-muted)}.chip.live{color:#6ee7a0}.chip.code-chip{cursor:pointer;border:none;font:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--accent-light)}.chip.code-chip:hover{background:#5865f233}.chip.solo{color:var(--accent-light)}.section-label{margin:18px 0 8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.player-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);background:#ffffff0a;font-size:15px}.player-row .crown{color:var(--accent-light)}.player-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);font-size:11px;font-weight:800;color:#fff}.player-avatar img{width:100%;height:100%;object-fit:cover}.lobby-warning{margin:12px 0 0;font-size:13px;font-weight:600;color:var(--wrong)}.identity-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius);background:#5865f224;border:1px solid rgb(88 101 242 / .35);margin-top:8px}.identity-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);font-size:14px;font-weight:800;color:#fff}.identity-avatar img{width:100%;height:100%;object-fit:cover}.identity-name{font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity-tag{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-light)}.player-row .you-tag{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--text-muted)}.pack-search{width:100%;margin-bottom:10px;padding:9px 12px;border:1.5px solid rgb(255 255 255 / .12);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:14px;font-family:inherit}.pack-search:focus{outline:none;border-color:var(--accent-light)}.pack-card.filtered-out{display:none}.pack-scroller{display:flex;flex-direction:column;gap:12px;max-height:min(40vh,380px);overflow-y:auto;padding:2px 6px 2px 2px}.pack-group-label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.pack-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pack-card{text-align:left;padding:12px 14px;border:1.5px solid rgb(255 255 255 / .1);border-radius:var(--radius);background:#ffffff0a;color:var(--text);cursor:pointer;font:inherit;transition:transform .12s ease,border-color .12s ease,background .12s ease}.pack-card:hover{transform:translateY(-1px);border-color:#ffffff38}.pack-card:active{transform:translateY(0) scale(.99)}.pack-card.selected{border-color:var(--accent-light);background:#5865f22e}.pack-card .pack-name{font-size:15px;font-weight:700}.pack-card .pack-blurb{margin-top:2px;font-size:12px;color:var(--text-muted)}.pack-card .pack-count{margin-top:6px;font-size:12px;font-weight:600;color:var(--accent-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:disabled{opacity:.45;cursor:default}.btn.full{width:100%;margin-top:18px}.btn-ghost{background:#ffffff14;color:var(--text);font-size:13px;font-weight:600;padding:8px 14px}.menu-btn{flex-shrink:0}.sfx-btn{flex-shrink:0;padding:8px 10px}.btn-ghost.voted{background:#5865f240;color:var(--accent-light)}a.btn{text-decoration:none}.github-corner{pointer-events:auto;position:absolute;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff0f;color:var(--text-muted)}.github-corner:hover{background:#ffffff1f;color:var(--text)}.github-corner svg{fill:currentColor}.carry-wheel{margin:16px auto 0;display:flex;flex-direction:column;align-items:center;gap:10px}.carry-slice{stroke:var(--bg);stroke-width:1.5}.carry-slice-label{fill:#fff;font-size:13px;font-weight:800;pointer-events:none}.carry-pointer{fill:var(--text)}.carry-result{min-height:24px;font-size:16px;font-weight:800;color:var(--accent-light);opacity:0;transition:opacity .3s ease}.carry-result.visible{opacity:1}.roll-banner{margin:10px 0 0;text-align:center;font-size:13px;font-weight:700;color:var(--accent-light)}.hint-toggle{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.hint-toggle input{accent-color:var(--accent);width:15px;height:15px}.pack-card{position:relative}.pack-card.voted-elsewhere{border-color:#d4b545bf}.pack-voters{position:absolute;right:8px;bottom:8px}.avatar-stack{display:inline-flex}.avatar-stack-chip{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--surface);background:var(--accent);color:#fff;font-size:9px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.avatar-stack-chip+.avatar-stack-chip{margin-left:-6px}.avatar-stack-chip img{width:100%;height:100%;object-fit:cover}.roll-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#000000b8;pointer-events:auto}.roll-panel{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 32px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid rgb(255 255 255 / .1);box-shadow:var(--shadow);max-width:min(560px,calc(100vw - 32px))}.roll-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.roll-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1.5px solid rgb(255 255 255 / .12);background:#ffffff0d;font-size:14px;font-weight:700;opacity:.65;transition:transform 90ms ease,border-color 90ms ease,background 90ms ease,opacity 90ms ease}.roll-chip.hot{border-color:var(--accent-light);background:#5865f240;opacity:1;transform:scale(1.08)}.roll-reveal{min-height:34px;font-size:24px;font-weight:800;color:var(--accent-light);opacity:0;transition:opacity .25s ease}.roll-reveal.visible{opacity:1}.name-field{display:flex;gap:8px;margin-top:8px}.name-field input{flex:1;padding:10px 12px;border:1.5px solid rgb(255 255 255 / .12);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:15px;font-family:inherit}.name-field input:focus{outline:none;border-color:var(--accent-light)}.name-field input.invalid{border-color:var(--wrong)}.name-field .btn{padding:10px 18px}.lobby-footer{margin-top:14px;font-size:12px;color:var(--text-muted);text-align:center}.waiting-note{margin-top:18px;text-align:center;font-size:14px;color:var(--text-muted)}.hud{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column}.hud-top{pointer-events:none;display:flex;align-items:center;gap:16px;margin-top:auto;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface) 88%,transparent);border-top:1px solid rgb(255 255 255 / .08);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hud-top :is(button,input,select,a){pointer-events:auto}.prompt{display:flex;align-items:baseline;gap:10px;min-width:0;flex:1}.prompt-label{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.prompt-name{font-size:30px;font-weight:800;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-stats{display:flex;gap:8px;flex-shrink:0}.stat{display:inline-flex;align-items:center;padding:6px 12px;border-radius:var(--radius);background:#ffffff0f;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.stat.pop{animation:stat-pop .32s ease-out}@keyframes stat-pop{40%{transform:scale(1.14)}}.prompt-name.swap{animation:prompt-swap .26s ease-out}@keyframes prompt-swap{0%{opacity:0;transform:translateY(6px)}}.stat.time{color:var(--accent-light)}.stat.good{color:#6ee7a0}.stat.bad{color:var(--text-muted)}.hud-hint{align-self:center;margin-top:calc(10px + max(env(safe-area-inset-top,0px),var(--chrome-top)));padding:7px 14px;border-radius:999px;background:#5865f240;border:1px solid var(--accent-light);color:var(--text);font-size:13px;font-weight:600}.hud-hint.hidden{display:none}.hud-ticker{position:absolute;left:16px;top:calc(10px + max(env(safe-area-inset-top,0px),var(--chrome-top)));display:flex;flex-direction:column;gap:4px;max-width:60%}.ticker-row{padding:4px 10px;border-radius:var(--radius);background:#23272ad1;font-size:13px;color:var(--text-muted);width:fit-content}.ticker-row .who{color:var(--text);font-weight:700}.ticker-row.good .what{color:#6ee7a0}.ticker-row.bad .what{color:var(--wrong)}.zoom-controls{pointer-events:auto;position:absolute;right:16px;bottom:calc(72px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:6px}.zoom-controls button{width:40px;height:40px;border:1px solid rgb(255 255 255 / .12);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--text);font-size:18px;font-weight:700;cursor:pointer}.zoom-controls button:hover{background:var(--map-hover);color:var(--bg)}.helper-circle{fill:#ffffff29;pointer-events:auto;cursor:pointer}.helper-circle:hover{fill:#ffffff4d}.helper-line{fill:none;stroke:#fff6;stroke-width:1.5;pointer-events:none}.helper.found{opacity:.1}.helper.found .helper-circle,.map-bg-layer,.map-bg{pointer-events:none}.map-bg{fill:#ffffff0e;stroke:#ffffff29;stroke-width:1;vector-effect:non-scaling-stroke}.badge-layer{pointer-events:none}.badge-dot{fill:#5865f2}.badge-initial{fill:#ffffffeb;font-size:15px;font-weight:700}.victory-panel{text-align:center}.score-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.score-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius);background:#ffffff0a;font-size:15px;text-align:left}.score-row.you{background:#5865f22e}.score-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);font-size:13px;font-weight:800}.score-avatar img{width:100%;height:100%;object-fit:cover}.score-avatar.initial{color:#fff}.score-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-stats{display:flex;align-items:baseline;gap:10px;flex-shrink:0}.score-detail{font-size:12px;color:var(--text-muted)}.score-accuracy{font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent-light)}.victory-best{margin:10px 0 0;font-size:13px;font-weight:700;color:#6ee7a0}.victory-title{margin:0;font-size:34px;font-weight:800}.victory-sub{margin:6px 0 20px;color:var(--text-muted);font-size:14px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-cell{padding:14px 8px;border-radius:var(--radius);background:#ffffff0d}.stat-cell .value{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent-light)}.stat-cell .label{margin-top:2px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.boot-panel{width:auto;padding:16px 28px;color:var(--text-muted);font-size:15px}.toast{padding:10px 18px;border-radius:var(--radius);background:var(--surface);border:1px solid rgb(255 255 255 / .14);box-shadow:var(--shadow);font-size:14px;font-weight:600;animation:toast-in .22s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.toast.error{border-color:var(--wrong)}@media(max-width:700px){.prompt-name{font-size:22px}.hud-top{flex-wrap:wrap;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))}.pack-grid{grid-template-columns:1fr}.hud-ticker{max-width:50%}}@media(max-height:600px){.panel{padding:16px}.wordmark{font-size:24px}.section-label{margin:12px 0 6px}}@media(prefers-reduced-motion:reduce){.region.miss,.region.pop,.region.hint,.hint-ring,.panel,.victory-panel>*,.toast,.prompt-name.swap,.stat.pop,.map-holder svg.pack-enter{animation:none}.roll-chip,.pack-card{transition:none}}:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.hidden{display:none!important}
