.menu-overlay{z-index:10;background:radial-gradient(circle at 50% 40%,#2a1b2e33,#2a1b2e99);justify-content:center;align-items:center;padding:20px;animation:.22s ease-out overlay-in;display:flex;position:fixed;inset:0;overflow-y:auto}.menu-overlay.view-is-home,.menu-overlay.view-is-main,.menu-overlay.view-is-map_select,.menu-overlay.view-is-multi_setup,.menu-overlay.view-is-settings{background:radial-gradient(circle at 50% 40%,#2a1b2e1a,#2a1b2e80)}@keyframes overlay-in{0%{opacity:0}}.menu-content{text-align:center;background:var(--paper);border:4px solid var(--ink);width:min(860px,100%);max-height:calc(100svh - 40px);box-shadow:0 10px 0 var(--ink);border-radius:26px;padding:28px 32px;animation:.38s cubic-bezier(.2,1.5,.4,1) card-in;position:relative;overflow:hidden auto}@keyframes card-in{0%{opacity:0;transform:translateY(24px)scale(.92)rotate(-1.5deg)}}.menu-content h1,.menu-content h2{font:400 clamp(30px, 5vw, 48px)/1 var(--display);letter-spacing:.5px;color:var(--paper);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink);text-transform:uppercase;margin:0 0 14px}.menu-content h2{color:var(--zap)}.menu-content p{color:var(--muted);margin:10px 0 18px;font-weight:700;line-height:1.55}.result-actions,.menu-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:20px;display:flex}.view-home{width:min(640px,100%);padding:30px 32px 26px;transform:rotate(-1deg)}.logo{-webkit-user-select:none;user-select:none;margin:-4px 0 6px;line-height:.86;position:relative}.logo .hit,.logo .jonh{font:400 clamp(64px, 13vw, 132px)/.86 var(--display);text-transform:uppercase;paint-order:stroke fill;-webkit-text-stroke:4px var(--ink);text-shadow:0 7px 0 var(--ink);display:block}.logo .hit{color:var(--zap);animation:3.2s ease-in-out infinite logo-bob;transform:rotate(-4deg)}.logo .jonh{color:var(--pow);animation:3.2s ease-in-out -1.6s infinite logo-bob;transform:rotate(2deg)translate(.12em)}.logo .bonk{font:400 clamp(16px, 2.6vw, 24px)/1 var(--display);color:var(--ink);background:var(--zap);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);border-radius:10px;padding:.3em .55em;animation:2.4s ease-in-out infinite bonk-pop;position:absolute;top:4%;right:2%;transform:rotate(10deg)}@keyframes logo-bob{50%{translate:0 -6px}}@keyframes bonk-pop{0%,70%,to{scale:1}78%{scale:1.25}86%{scale:.95}}.tagline{font:800 17px/1.4 var(--ui);color:var(--ink)!important;margin:14px 0 20px!important}.menu-content .btn-play{font:400 30px/1 var(--display);letter-spacing:1px;min-width:220px;box-shadow:0 6px 0 var(--ink);text-transform:uppercase;border-width:4px;padding:16px 40px 12px}.home-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}.home-note{color:var(--muted);margin-top:16px;font-size:12px;font-weight:800}.chip-stat{border:3px solid var(--ink);background:var(--paper-2);font:900 13px var(--ui);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.view-main{width:min(600px,100%)}.mode-card{text-align:left;grid-template-columns:64px 1fr auto;align-items:center;column-gap:16px;width:100%;margin:12px 0;padding:16px 18px;display:grid}.mode-card strong{font:400 24px/1 var(--display);text-transform:uppercase;letter-spacing:.5px}.mode-card small{color:var(--muted);grid-column:2;margin-top:4px;font-weight:800;line-height:1.35;display:block}.mode-card .mode-symbol{border:3px solid var(--ink);background:var(--zap);width:64px;height:64px;font:400 30px/1 var(--display);border-radius:16px;grid-row:span 2;place-items:center;display:grid}.mode-card .mode-go{font:400 26px/1 var(--display);color:var(--pow);grid-area:span 2/3}.mode-card.multi .mode-symbol{background:var(--sky)}.mode-card.daily .mode-symbol{background:var(--pow);color:var(--paper)}.mode-card.locker .mode-symbol{background:var(--hat)}.map-list{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-top:18px;display:grid}.map-btn{text-align:left;border:3px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);font-family:var(--ui);cursor:pointer;border-radius:16px;flex-direction:column;gap:8px;padding:0 0 14px;transition:transform .12s;display:flex;overflow:hidden}.map-btn:hover{transform:translateY(-3px)rotate(-.6deg)}.map-btn:active{box-shadow:none;transform:translateY(3px)}.map-preview{border-bottom:3px solid var(--ink);width:100%;display:block}.map-btn>:not(svg){padding-inline:14px}.map-name{font:400 19px/1.05 var(--display);text-transform:uppercase;letter-spacing:.3px}.map-btn small{color:var(--muted);font-weight:800;line-height:1.4}.map-score{font:900 13px var(--ui);color:var(--ink);margin-top:auto}.map-score .stars{color:var(--hat);-webkit-text-stroke:1px var(--ink);letter-spacing:1px;font-size:18px}.player-count{font:400 22px var(--display);justify-content:center;align-items:center;gap:14px;margin-bottom:16px;display:flex}.player-count .btn{min-width:46px;font:400 22px/1 var(--display);padding:10px 14px}.player-setup-list{flex-direction:column;gap:10px;max-width:560px;margin:0 auto 16px;display:flex}.player-setup-row{border:3px solid var(--ink);border-left:14px solid var(--player-color);background:#fff;border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.player-setup-row label{text-align:left;font:900 13px var(--ui);flex:1}.player-setup-row input{border:3px solid var(--ink);width:min(230px,100%);min-height:44px;font:900 15px var(--ui);color:var(--ink);background:var(--paper);border-radius:10px;padding:8px 12px}.mp-map-picker{border:0;gap:10px;min-width:0;margin:10px 0 18px;padding:0;display:grid}.map-check-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.map-presets{flex-wrap:wrap;gap:8px;display:flex}.map-presets .chip{cursor:pointer;border:3px solid var(--ink);background:var(--paper);min-height:38px;box-shadow:0 3px 0 var(--ink);font:900 13px var(--ui);color:var(--ink);border-radius:999px;padding:6px 14px;transition:transform .1s}.map-presets .chip:hover{transform:translateY(-2px)}.map-presets .chip[aria-pressed=true]{background:var(--zap);transform:translateY(-2px)}.map-set-summary{text-align:left;font:900 13px var(--ui);color:var(--muted);margin:0}.difficulty-pips{font:900 11px var(--ui);letter-spacing:2px;color:var(--pow);margin-top:2px;display:block}.map-set-names{font:800 11px/1.35 var(--ui);color:var(--muted);margin-top:2px;display:block}.mp-map-picker legend{font:400 20px var(--display);text-transform:uppercase;text-align:left;margin-bottom:8px}.arena-option{text-align:left;cursor:pointer;border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:14px;flex-direction:column;display:flex;position:relative;overflow:hidden}.arena-option:has(input:checked){background:var(--zap);transform:translateY(-2px)}.arena-option input{width:20px;height:20px;accent-color:var(--pow);position:absolute;top:8px;left:8px}.arena-option strong{font:900 12px/1.3 var(--ui);padding:8px 10px}.arena-option svg{border-bottom:3px solid var(--ink)}.view-handover,.view-round_result,.view-match_result,.view-solo_result,.view-pause,.view-settings{width:min(560px,100%)}.handover-kicker{font:900 14px var(--ui);text-transform:uppercase;letter-spacing:2px;color:var(--muted)}.handover-name{font:400 clamp(36px, 7vw, 60px)/1 var(--display);color:var(--paper);background:var(--player-color,var(--pow));border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink);paint-order:stroke fill;-webkit-text-stroke:2px var(--ink);border-radius:16px;margin:6px 0 10px;padding:8px 20px 4px;display:inline-block;transform:rotate(-2deg)}.auto-bar{border:3px solid var(--ink);background:var(--paper-2);border-radius:999px;max-width:260px;height:10px;margin:16px auto 0;overflow:hidden}.auto-bar i{background:var(--leaf);transform-origin:0;height:100%;animation:auto-fill var(--auto-duration,1.2s) linear forwards;display:block}@keyframes auto-fill{0%{transform:scaleX(0)}}.score-list{gap:10px;max-width:440px;margin:18px auto;display:grid}.score-row{border:3px solid var(--ink);border-left:12px solid var(--player-color);font:900 16px var(--ui);text-align:left;background:#fff;border-radius:14px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:10px 14px;animation:.36s cubic-bezier(.2,1.5,.4,1) backwards row-in;display:grid}.score-row:nth-child(2){animation-delay:80ms}.score-row:nth-child(3){animation-delay:.16s}.score-row:nth-child(4){animation-delay:.24s}.score-row .rank{font:400 22px var(--display)}.score-row b{font:400 24px var(--display)}.score-row small{color:var(--muted);font-size:12px;display:block}.score-row.winner{background:var(--zap)}@keyframes row-in{0%{opacity:0;transform:translate(-20px)}}.result-stars{justify-content:center;gap:8px;margin:6px 0 4px;display:flex}.result-stars span{color:#e9dcc4;-webkit-text-stroke:3px var(--ink);font-size:64px;line-height:1;animation:.42s cubic-bezier(.2,1.8,.4,1) backwards star-in}.result-stars span.on{color:var(--hat)}.result-stars span:nth-child(2){margin-top:-10px;font-size:78px;animation-delay:.14s}.result-stars span:nth-child(3){animation-delay:.28s}@keyframes star-in{0%{transform:scale(0)rotate(-90deg)}}.ribbon{font:400 18px var(--display);text-transform:uppercase;color:var(--ink);background:var(--zap);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);border-radius:8px;margin:6px 4px;padding:6px 14px 3px;animation:.42s cubic-bezier(.2,1.8,.4,1) .42s backwards star-in;display:inline-block;transform:rotate(-3deg)}.ribbon.pow{background:var(--pow);color:var(--paper)}.unlock-card{text-align:left;border:3px solid var(--ink);background:var(--paper-2);border-radius:14px;align-items:center;gap:12px;max-width:360px;margin:12px auto 0;padding:10px 14px;animation:.42s cubic-bezier(.2,1.8,.4,1) .56s backwards star-in;display:flex}.unlock-card img{width:64px;height:auto}.unlock-card strong{font:400 18px var(--display);text-transform:uppercase;display:block}.quote{font-style:italic;font:800 16px/1.4 var(--ui)!important;color:var(--ink)!important}.settings-list{text-align:left;flex-direction:column;gap:14px;max-width:340px;margin:6px auto 20px;display:flex}.setting-row{border:3px solid var(--ink);font:900 15px var(--ui);cursor:pointer;background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.setting-row input[type=checkbox]{appearance:none;border:3px solid var(--ink);background:var(--paper-2);cursor:pointer;border-radius:999px;flex:none;width:50px;height:28px;transition:background .15s;position:relative}.setting-row input[type=checkbox]:after{content:"";background:var(--ink);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.setting-row input[type=checkbox]:checked{background:var(--leaf)}.setting-row input[type=checkbox]:checked:after{background:var(--paper);transform:translate(22px)}.setting-row.volume{cursor:default;flex-direction:column;align-items:stretch}.setting-row.volume div{justify-content:space-between;display:flex}.hat-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;margin:14px 0;display:grid}.hat-card{border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);font:900 13px var(--ui);color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;display:flex;position:relative}.hat-card img{width:78px;height:auto}.hat-card small{color:var(--muted);font-weight:800;line-height:1.25}.hat-card.locked{cursor:default;background:var(--paper-2)}.hat-card.locked img{filter:brightness(0)opacity(.25)}.hat-card.selected{background:var(--zap);transform:translateY(-2px)}.hat-card.selected:after{content:"✓";font:400 18px var(--display);position:absolute;top:6px;right:8px}.iris{width:0;height:0;box-shadow:0 0 0 160vmax var(--ink);z-index:40;pointer-events:none;border-radius:50%;animation:.52s cubic-bezier(.6,0,.3,1) forwards iris-open;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes iris-open{0%{width:0;height:0}to{width:300vmax;height:300vmax}}@media (max-width:650px),(max-height:520px){.menu-overlay{padding:10px}.menu-content{border-radius:18px;max-height:calc(100svh - 20px);padding:20px 16px}.map-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.player-setup-row label{flex:100%}.player-setup-row input{width:100%}.result-stars span{font-size:48px}.result-stars span:nth-child(2){font-size:58px}}@media (max-height:520px) and (orientation:landscape){.view-home{grid-template-columns:1fr 1fr;align-items:center;gap:6px 18px;width:min(760px,100%);padding:18px 22px;display:grid}.view-home>.logo{grid-row:1/span 4}.view-home>:not(.logo){grid-column:2}.logo .hit,.logo .jonh{font-size:64px}.tagline{margin:6px 0 10px!important}.map-btn small{display:none}}.view-daily,.view-locker{width:min(680px,100%)}.view-online_setup,.view-online_lobby{width:min(720px,100%)}.view-online_notice{width:min(560px,100%)}.menu-content.is-refresh,.menu-content.is-refresh *{animation:none!important}.online-input{border:3px solid var(--ink);min-height:46px;font:900 16px var(--ui);color:var(--ink);background:#fff;border-radius:12px;padding:8px 12px}.online-input::placeholder{color:var(--muted);opacity:.7}.online-error{min-height:1.4em;font-weight:900;color:var(--pow)!important;margin:10px 0 0!important}.online-error:empty{min-height:0;margin:0!important}.online-profile{text-align:left;border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);background:#fff;border-radius:18px;grid-template-columns:minmax(180px,230px) 1fr;align-items:stretch;gap:18px;margin:4px 0 18px;padding:14px;display:grid}.cannon-stage{border:3px solid var(--ink);background:linear-gradient(var(--sky) 10%, #ffe6ae 72%, var(--leaf) 72%, var(--leaf) 78%, #dc9852 78%);border-radius:14px;flex-direction:column;justify-content:flex-end;min-height:180px;display:flex;position:relative;overflow:hidden}.cannon-stage-figure{flex:1;place-items:end center;padding:10px 8px 0;display:grid}.cannon-stage-figure svg{width:100%;max-width:190px;height:auto;margin-bottom:-2px;display:block}.cannon-stage-name{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 20px);font:400 17px/1 var(--display);text-transform:uppercase;letter-spacing:.4px;color:var(--paper);paint-order:stroke fill;-webkit-text-stroke:1.5px var(--ink);background:var(--player-color);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);border-radius:10px;align-self:center;margin:0 10px 10px;padding:5px 10px 4px;overflow:hidden;transform:rotate(-2deg)}.online-profile-fields{flex-direction:column;justify-content:center;gap:14px;min-width:0;display:flex}.online-field{flex-direction:column;gap:6px;display:flex}.online-field-label,.online-picker legend{font:400 17px/1 var(--display);text-transform:uppercase;letter-spacing:.4px;color:var(--ink)}.online-field .online-input{background:var(--paper);width:100%}.online-picker{border:0;min-width:0;margin:0;padding:0}.online-picker legend{margin-bottom:8px;padding:0}.online-picker-options{flex-wrap:wrap;gap:8px;display:flex}.picker-chip{cursor:pointer;border:3px solid var(--ink);background:var(--paper);min-height:40px;box-shadow:0 3px 0 var(--ink);font:900 14px var(--ui);text-transform:capitalize;border-radius:999px;justify-content:center;align-items:center;padding:6px 14px;transition:transform .1s;display:inline-flex;position:relative}.picker-chip:hover{transform:translateY(-2px)}.picker-chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.picker-chip:has(input:checked){background:var(--zap);transform:translateY(-2px)}.picker-chip:has(input:focus-visible){outline:4px solid var(--grape);outline-offset:3px}.picker-chip.color-chip{width:46px;height:46px;padding:0}.color-chip:has(input:checked){box-shadow:0 3px 0 var(--ink), inset 0 0 0 3px var(--paper)}.swatch{border:3px solid var(--ink);border-radius:50%;width:26px;height:26px;display:block}.online-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 16px;display:flex}.online-or{font:400 18px var(--display);text-transform:uppercase;color:var(--muted)}.online-join{align-items:center;gap:10px;display:flex}.online-join .online-input{text-transform:uppercase;letter-spacing:.15em;text-align:center;width:9.5em}.online-join .online-input::placeholder{letter-spacing:.04em;text-transform:none}.room-code-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin:0 0 6px;display:flex}.room-code{font:400 clamp(34px, 6vw, 46px)/1 var(--display);letter-spacing:.3em;color:var(--ink);background:var(--paper-2);border:3px dashed var(--ink);-webkit-user-select:all;user-select:all;border-radius:14px;padding:10px 18px 6px 26px}.online-link{text-align:left;max-width:440px;font:900 13px var(--ui);flex-direction:column;gap:6px;margin:10px auto 0;display:flex}.online-link[hidden]{display:none}.online-link input{width:100%;font-weight:700}.presence-dot{border:2px solid var(--ink);vertical-align:1px;background:#b9aeb4;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.presence-dot.on{background:var(--leaf)}.lobby-list{max-width:480px}.lobby-cannon svg{width:64px;height:auto;display:block}.score-row.empty-seat{border-style:dashed;border-left:3px dashed var(--ink);color:var(--muted);background:0 0;grid-template-columns:34px 1fr;padding-block:8px}.mp-map-picker.is-readonly{grid-template-columns:minmax(0,260px);justify-content:center}.mp-map-picker.is-readonly legend{text-align:center;width:100%}.arena-option.is-picked{cursor:default;background:var(--zap)}@media (max-width:650px){.online-profile{grid-template-columns:1fr}.cannon-stage{min-height:150px}.cannon-stage-figure svg{max-width:150px}.online-actions{flex-direction:column;gap:8px}}.ready-list{flex-wrap:wrap;justify-content:center;gap:8px;margin:4px 0 10px;display:flex}.ready-chip{border:3px solid var(--ink);border-left:10px solid var(--player-color,var(--ink));background:var(--paper-2);font:900 14px var(--ui);color:var(--muted);border-radius:999px;padding:5px 12px}.ready-chip.on{color:var(--ink);background:#fff}.online-banner{z-index:50;max-width:calc(100vw - 32px);font:900 14px var(--ui);color:var(--ink);background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:10px;padding:6px 14px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.online-banner .btn{min-height:34px;padding:6px 12px;font-size:13px}@font-face{font-family:Luckiest Guy;src:url(./luckiest-guy-latin-dJClyBWO.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Nunito;src:url(./nunito-latin-BzFMHfZw.woff2)format("woff2");font-weight:200 1000;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#2a1b2e;--paper:#fff7e6;--paper-2:#ffe9c2;--pow:#ff4b3a;--tomato:#ff5a3c;--zap:#ffe14d;--hat:#ffcb45;--sky:#5ec2ec;--leaf:#4dba4f;--grape:#9b6be0;--muted:#6e5a66;--display:"Luckiest Guy", Impact, "Arial Black", sans-serif;--ui:Nunito, system-ui, -apple-system, "Segoe UI", sans-serif;--shadow:0 4px 0 var(--ink);--gutter:16px;font-family:var(--ui);color:var(--ink);font-weight:700}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(circle,#2a1b2e12 1.2px,#0000 1.6px) 0 0/14px 14px,linear-gradient(#ffefd0,#ffe0b0);background-color:var(--paper-2);min-height:100svh}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}[hidden]{display:none!important}.app{--stage-w:min(100%, 1400px, calc((100svh - 2 * var(--gutter) - 8px - var(--readout-h,0px)) * 16 / 7));min-height:100svh;padding:var(--gutter);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.app:has(.has-player-panel){--roster-space:224px;--stage-w:min(100%, 1400px, calc((100svh - 2 * var(--gutter) - 8px - var(--readout-h,0px)) * 16 / 7 + var(--roster-space)))}.boot-status{border:3px solid var(--ink);background:var(--paper);text-align:center;width:min(100%,520px);box-shadow:var(--shadow);border-radius:14px;padding:12px 16px;font-size:15px}.boot-status.boot-error{background:#ffe0d6}.boot-status .btn-retry{margin-left:10px}.stage-wrap{width:var(--stage-w);position:relative;container-type:inline-size}.stage-wrap.has-player-panel{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:14px;display:grid}.has-player-panel #game{grid-area:1/2}.has-player-panel>.hud{aspect-ratio:16/7;grid-area:1/2;align-self:start;min-width:0;margin:4px;position:relative;inset:auto}.player-panel{border:3px solid var(--ink);background:var(--paper);min-width:0;box-shadow:var(--shadow);border-radius:16px;grid-area:1/1;overflow:hidden}.player-panel-heading{font:400 18px/1.2 var(--display);padding:12px 12px 6px}.player-panel-turn{min-height:2.8em;font:900 13px/1.4 var(--ui);overflow-wrap:anywhere;padding:0 12px 10px}.player-panel-list{flex-direction:column;gap:5px;margin:0;padding:0 6px 6px;list-style:none;display:flex}.player-tab{border:2px solid #0000;border-left:5px solid var(--player-color);background:#fff;border-radius:9px;align-items:center;gap:6px;min-height:68px;padding:8px 6px;display:flex;position:relative}.player-tab.is-active{border-color:var(--ink);border-left-color:var(--player-color);background:var(--zap)}.player-tab-avatar{flex:0 0 38px}.player-tab-avatar svg{width:100%;height:auto;display:block}.player-tab-details{flex:1;min-width:0}.player-tab-name{overflow-wrap:anywhere;font:900 14px/1.25 var(--ui);display:block}.player-tab-you{font:900 10px var(--ui);color:var(--muted);margin-left:4px;display:inline-block}.player-tab-presence{border:1px solid var(--ink);background:var(--pow);vertical-align:baseline;border-radius:50%;width:10px;height:10px;margin-right:5px;display:inline-block}.player-tab-presence.is-online{background:var(--leaf)}.player-tab-status{font:800 11px/1.3 var(--ui);color:var(--muted);margin-top:4px;display:block}.player-tab.is-active .player-tab-status{color:var(--ink);font-weight:1000}.player-tab-score{text-align:right;flex:none;display:grid}.player-tab-score b{font:400 24px/1 var(--display);font-variant-numeric:tabular-nums}.player-tab-score small{font:800 10px/1.4 var(--ui);color:var(--muted)}@media (max-width:900px){.app:has(.has-player-panel){--roster-space:190px}.stage-wrap.has-player-panel{grid-template-columns:180px minmax(0,1fr);gap:10px}.player-tab-avatar{flex-basis:28px}}@media (max-width:700px) and (orientation:portrait){.stage-wrap.has-player-panel{flex-direction:column;gap:16px;display:flex}.has-player-panel>.hud{aspect-ratio:auto;order:1;width:100%;margin:0;position:static}.player-panel{order:2;width:100%}.player-tab{min-height:50px}.player-panel-turn{min-height:0}}@media (max-height:520px) and (orientation:landscape){.player-panel-heading{padding:8px 10px 4px;font-size:16px}.player-panel-turn{min-height:0;padding:0 10px 6px;font-size:11px}.player-tab{min-height:42px;padding-block:4px}.player-tab-name{font-size:12px}.player-tab-status{margin-top:2px;font-size:10px}.player-tab-score b{font-size:20px}}#game{aspect-ratio:16/7;border:4px solid var(--ink);background:var(--sky);width:100%;box-shadow:0 8px 0 var(--ink);border-radius:20px;position:relative;overflow:hidden}body.in-game{--readout-h:104px}.aim-bar{width:calc(var(--stage-w,min(100%, 1400px)) * .6);border:3px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);font:900 15px var(--ui);border-radius:14px;flex-direction:column;align-items:stretch;gap:2px;margin-inline:auto;padding:4px 22px;display:flex}.aim-bar .control-group{align-items:center;gap:.8em;display:flex}.aim-bar label{min-width:4.5em}.aim-bar input[type=range]{flex:1;margin:0}.aim-bar .value-badge{text-align:right;font-variant-numeric:tabular-nums;min-width:3.2em;font-size:22px}#game canvas{touch-action:none;cursor:grab;display:block}#game canvas:active{cursor:grabbing}.rotate-hint{font:800 13px var(--ui);color:var(--muted);margin:4px 0 0;display:none}.hud{pointer-events:none;z-index:2;font-size:clamp(12px,1.25cqw,17px);position:absolute;inset:4px}.hud button,.hud input,.hud label{pointer-events:auto}.hud-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;top:2.2%;left:1.6%;right:1.6%}.hud-left{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.hud-icons{gap:8px;display:flex}body.in-game .hud-icons{margin-right:clamp(48px,5.2cqw,66px)}.match-status{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.map-chip{border:3px solid var(--ink);background:var(--paper);box-shadow:0 3px 0 var(--ink);font:900 1em/1.1 var(--ui);white-space:nowrap;font-family:var(--display);letter-spacing:.5px;white-space:normal;border-radius:999px;align-items:center;gap:6px;padding:.45em .8em .35em;font-weight:400;display:inline-flex}.hud-left{min-width:0}.attempts{border:3px solid var(--ink);background:var(--paper);box-shadow:0 3px 0 var(--ink);border-radius:999px;gap:.35em;padding:.35em .6em;display:flex}.pip{border:2px solid var(--ink);background:radial-gradient(circle at 35% 35%,#8c93c9 0 18%,#3a3f63 22%);border-radius:50%;width:.95em;height:.95em}.pip.used{opacity:.45;background:0 0;border-style:dashed}.icon-btn{border:3px solid var(--ink);background:var(--paper);width:clamp(40px,4.2cqw,54px);height:clamp(40px,4.2cqw,54px);color:var(--ink);box-shadow:0 3px 0 var(--ink);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-btn svg{width:56%;height:56%}.icon-btn:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.icon-btn:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.icon-btn:disabled{opacity:.5;cursor:default}.icon-btn[aria-pressed=true]{background:var(--paper-2)}.game-home-button{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));z-index:30;width:48px;height:48px;position:fixed}.feedback-banner{border:3px solid var(--ink);background:var(--paper);max-width:min(54%,620px);box-shadow:0 4px 0 var(--ink);text-align:center;font:800 1em/1.3 var(--ui);opacity:0;pointer-events:none;border-radius:12px;padding:.5em 1em;position:absolute;top:15%;left:50%;transform:translate(-50%)}.feedback-banner.show{opacity:1;animation:.36s cubic-bezier(.2,1.6,.4,1) caption-pop}.feedback-hit{background:var(--zap)}.feedback-simulating{opacity:0!important}@keyframes caption-pop{0%{opacity:0;transform:translate(-50%)translateY(-30%)scale(.7)rotate(-3deg)}}.hud-bottom{justify-content:flex-end;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:3%;left:1.6%;right:1.6%}.fire-cluster{align-items:flex-end;gap:10px;display:flex}.pill-btn{border:3px solid var(--ink);background:var(--paper);min-height:40px;color:var(--ink);box-shadow:0 3px 0 var(--ink);font:900 1em/1 var(--ui);cursor:pointer;border-radius:999px;align-items:center;gap:.4em;padding:.45em 1em;display:inline-flex}.pill-btn svg{width:1.3em;height:1.3em}.pill-btn:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.pill-btn:disabled{opacity:.45;cursor:default}.btn-reset{visibility:hidden;opacity:0;transition:opacity .16s,transform .16s;transform:translateY(6px)}.btn-reset.is-next{visibility:visible;opacity:1;background:var(--zap);transform:none}.btn-fire{border:4px solid var(--ink);background:radial-gradient(circle at 35% 30%, #ff8a70 0 18%, var(--pow) 45%);width:clamp(72px,10cqw,128px);height:clamp(72px,10cqw,128px);color:var(--paper);box-shadow:0 6px 0 var(--ink);cursor:pointer;border-radius:50%;align-content:center;place-items:center;transition:transform .12s,filter .12s;display:grid;position:relative}.fire-word{font:400 clamp(20px, 2.6cqw, 34px)/1 var(--display);letter-spacing:1px;text-transform:uppercase;text-shadow:0 3px 0 var(--ink);-webkit-text-stroke:1px var(--ink)}.btn-fire small{font:900 clamp(9px, .9cqw, 12px)/1 var(--ui);opacity:.9;margin-top:3px}.can-fire .btn-fire{animation:1.6s ease-in-out infinite fire-ready}.btn-fire:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px)rotate(-3deg)}.btn-fire:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(5px)scale(.96)}.btn-fire:disabled{filter:grayscale(.7)brightness(1.05);opacity:.7;cursor:default;animation:none}@keyframes fire-ready{0%,to{transform:none}50%{transform:scale(1.05)}}.value-badge{font:400 1.35em/1 var(--display);font-variant-numeric:tabular-nums;color:var(--pow)}input[type=range]{width:100%;height:28px;accent-color:var(--pow);cursor:pointer;margin:2px 0 0}input:disabled{opacity:.5;cursor:default}.control-help{font:700 .8em/1.4 var(--ui);color:var(--muted);margin:.6em 0 0}.debug-group{pointer-events:auto;background:var(--paper);border:2px solid var(--ink);border-radius:8px;padding:4px 8px;font-size:12px;position:absolute;top:22%;left:1.6%}.btn{font:900 15px/1 var(--ui);border:3px solid var(--ink);background:var(--paper);min-height:46px;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;border-radius:14px;padding:12px 20px;transition:transform .1s}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){box-shadow:none;transform:translateY(4px)}.btn:disabled{opacity:.5;cursor:default}.btn-primary,.btn-retry{background:var(--pow);color:var(--paper);text-shadow:0 2px #2a1b2e55}.btn-primary:disabled{filter:grayscale()}.btn-quiet{box-shadow:none;text-underline-offset:4px;background:0 0;border-color:#0000;text-decoration:underline}:focus-visible{outline:4px solid var(--grape);outline-offset:3px}.replay-overlay{pointer-events:none;z-index:5;position:absolute;inset:0}.replay-bar{background:var(--ink);align-items:center;height:11%;padding:0 3%;transition:transform .22s cubic-bezier(.2,1.4,.4,1);display:flex;position:absolute;left:0;right:0}.replay-bar.top{top:0;transform:translateY(-101%)}.replay-bar.bottom{justify-content:flex-end;bottom:0;transform:translateY(101%)}.replay-overlay.on .replay-bar{transform:none}.replay-tag{font:400 clamp(14px, 2.6cqw, 30px)/1 var(--display);color:var(--paper);letter-spacing:1px;align-items:center;gap:.4em;display:inline-flex}.replay-tag i{background:var(--pow);width:.55em;height:.55em;box-shadow:0 0 0 3px var(--ink), 0 0 0 5px #ff4b3a55;border-radius:50%;animation:1s steps(2,start) infinite replay-blink}.replay-hint{font:800 clamp(10px, 1.3cqw, 14px)/1 var(--ui);color:var(--paper);opacity:.75}@keyframes replay-blink{to{visibility:hidden}}@media (max-height:520px) and (orientation:landscape){:root{--gutter:6px}#game{box-shadow:0 4px 0 var(--ink);border-width:3px;border-radius:14px}.game-home-button{width:40px;height:40px}}@media (orientation:portrait) and (max-width:700px){.app{--stage-w:100%;justify-content:flex-start;padding-top:64px}.hud{flex-direction:column;gap:10px;margin-top:14px;font-size:14px;display:flex;position:static;inset:auto}.hud-top,.hud-bottom,.feedback-banner{position:static;transform:none}body.in-game .hud-icons{margin-right:0}.feedback-banner{opacity:1;order:1;max-width:none;min-height:2.6em}.feedback-banner.show{animation:none}.hud-bottom{flex-direction:column;order:2;align-items:stretch}body.in-game{--readout-h:0px}.aim-bar{flex-direction:column;align-items:stretch;gap:8px;width:100%}.fire-cluster{justify-content:space-between;align-items:center}.btn-fire{width:96px;height:96px}.rotate-hint{display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.reduced-motion *,.reduced-motion :before,.reduced-motion :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.feedback-info.show{animation:.36s cubic-bezier(.2,1.6,.4,1) caption-pop,.5s 4.5s forwards caption-fade}@keyframes caption-fade{to{opacity:0}}.streak{border:3px solid var(--ink);background:var(--pow);color:var(--paper);box-shadow:0 3px 0 var(--ink);font:400 1em/1.1 var(--display);letter-spacing:.5px;border-radius:999px;padding:.35em .8em;animation:.3s cubic-bezier(.2,1.6,.4,1) chip-pop}@keyframes chip-pop{0%{transform:scale(.4)}}
