:root{--sky-top:#4fb8e8;--sky-mid:#8fdcf2;--sky-low:#c6f0e8;--hill-far:#7ed957;--hill-near:#4caf3d;--hill-dark:#2f8b2c;--dirt:#c98b46;--dirt-dark:#9a6329;--wood:#c07b3f;--wood-dark:#8a5322;--paper:#fff6dc;--paper-2:#ffe9b8;--tangerine:#ff7a29;--tangerine-dk:#d1490b;--turq:#17bfae;--turq-dk:#0d8a7e;--grape:#8455c8;--grape-dk:#5c3592;--berry:#ef4b7f;--berry-dk:#b25;--sunny:#ffc61e;--sunny-dk:#d19100;--lime:#8fd12a;--lime-dk:#5d9613;--team-red:#c22a2a;--team-red-dk:#901818;--team-green:#5a8a20;--team-green-dk:#486018;--team-blue:#2a6aba;--team-blue-dk:#184890;--team-yellow:#e8a018;--team-yellow-dk:#d89018;--ink:#33224a;--ink-soft:#6b5a86;--font-display:"Bangers", cursive;--font-body:"Baloo 2", sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;min-height:100%;margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:linear-gradient(180deg, var(--sky-top) 0%, var(--sky-mid) 45%, var(--sky-low) 100%);background-attachment:fixed;min-height:100vh;position:relative;overflow:hidden}:focus-visible{outline:3px dashed var(--grape);outline-offset:3px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.scenery{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cloud{opacity:.92;background:#fff;border-radius:100px;position:absolute;box-shadow:0 6px #3c78a01f}.cloud:before,.cloud:after{content:"";background:#fff;border-radius:50%;position:absolute}.cloud.c1{width:150px;height:44px;animation:68s linear infinite drift;top:8%;left:-20%}.cloud.c1:before{width:66px;height:66px;top:-28px;left:24px}.cloud.c1:after{width:46px;height:46px;top:-18px;left:82px}.cloud.c2{opacity:.8;width:110px;height:34px;animation:92s linear -30s infinite drift;top:22%;left:-25%}.cloud.c2:before{width:50px;height:50px;top:-22px;left:18px}.cloud.c2:after{width:36px;height:36px;top:-14px;left:62px}.cloud.c3{opacity:.55;width:190px;height:52px;animation:120s linear -60s infinite drift;top:44%;left:-30%}.cloud.c3:before{width:80px;height:80px;top:-34px;left:34px}.cloud.c3:after{width:56px;height:56px;top:-22px;left:110px}@keyframes drift{0%{transform:translate(0)}to{transform:translate(160vw)}}.hills{height:230px;position:absolute;bottom:0;left:0;right:0}.hill{border-radius:50% 50% 0 0/100% 100% 0 0;position:absolute;bottom:0}.hill.far{background:var(--hill-far);width:70%;height:150px;left:-8%}.hill.far2{background:var(--hill-far);opacity:.9;width:60%;height:120px;right:-6%}.hill.near{background:var(--hill-near);width:85%;height:110px;left:-14%}.hill.near2{background:var(--hill-near);width:75%;height:92px;right:-12%}.ground{background:linear-gradient(180deg, var(--hill-dark) 0 9px, var(--dirt) 9px, var(--dirt-dark));height:52px;position:absolute;bottom:0;left:0;right:0}#pixi-host{z-index:1;display:none;position:fixed;inset:0}#pixi-host.visible{display:block}#pixi-host canvas{width:100%;height:100%;display:block}#overlay{z-index:2;pointer-events:none;position:fixed;inset:0}#overlay .screen,#overlay .modal-overlay,#overlay .wheel-overlay,#overlay #match-hud,#overlay #toast,#overlay #peer-banner,#overlay #corner-tools,#overlay #history-panel{pointer-events:auto}body.playing .scenery{display:none}.screen{z-index:2;min-height:100%;max-height:100%;padding:36px 20px 100px;display:none;position:relative;overflow-y:auto}.screen.active{display:block}.pin{z-index:5;background:radial-gradient(circle at 34% 28%, #fff, var(--berry) 45%, var(--berry-dk) 100%);border-radius:50%;width:17px;height:17px;position:absolute;box-shadow:0 3px 4px #28143c73}.pin.turq{background:radial-gradient(circle at 34% 28%, #fff, var(--turq) 45%, var(--turq-dk) 100%)}.pin.sunny{background:radial-gradient(circle at 34% 28%, #fff, var(--sunny) 45%, var(--sunny-dk) 100%)}.paper{background:repeating-linear-gradient(102deg, #ffd67829 0 3px, transparent 3px 9px), var(--paper);border:3px solid var(--ink);position:relative;box-shadow:0 10px #33224a38,0 20px 34px #1e3c5047}.panel{background:repeating-linear-gradient(102deg, #ffd6782e 0 3px, transparent 3px 9px), var(--paper);border:3px solid var(--ink);border-radius:12px;box-shadow:0 6px #33224a4d,0 14px 22px #14283c4d}.dimmed{filter:saturate(.45)brightness(.94);opacity:.72}.btn{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;border:3px solid var(--ink);color:#fff;cursor:pointer;background:linear-gradient(180deg, var(--tangerine), var(--tangerine-dk));text-shadow:0 2px #00000047;box-shadow:0 6px 0 var(--tangerine-dk), 0 12px 18px #1e3c504d;border-radius:12px;padding:14px 30px;font-size:16px;font-weight:800;transition:filter 80ms,transform 80ms,box-shadow 80ms}.btn:hover{filter:brightness(1.09)saturate(1.05)}.btn:active{box-shadow:0 1px 0 var(--tangerine-dk), 0 4px 8px #1e3c504d;transform:translateY(5px)}.btn.turq{background:linear-gradient(180deg, var(--turq), var(--turq-dk));box-shadow:0 6px 0 var(--turq-dk), 0 12px 18px #1e3c504d}.btn.turq:active{box-shadow:0 1px 0 var(--turq-dk), 0 4px 8px #1e3c504d}.btn.grape{background:linear-gradient(180deg, var(--grape), var(--grape-dk));box-shadow:0 6px 0 var(--grape-dk), 0 12px 18px #1e3c504d}.btn.grape:active{box-shadow:0 1px 0 var(--grape-dk), 0 4px 8px #1e3c504d}.btn.lime{background:linear-gradient(180deg, var(--lime), var(--lime-dk));box-shadow:0 6px 0 var(--lime-dk), 0 12px 18px #1e3c504d}.btn.lime:active{box-shadow:0 1px 0 var(--lime-dk), 0 4px 8px #1e3c504d}.btn.ghost{color:var(--ink);box-shadow:none;text-shadow:none;background:0 0;border-color:#33224a73}.btn.ghost:active{box-shadow:none;transform:translateY(2px)}.btn:disabled{filter:grayscale(.65)brightness(.85);cursor:not-allowed}.btn:disabled:active{transform:none}.small-btn{font-family:var(--font-body);text-transform:uppercase;border:3px solid var(--ink);cursor:pointer;background:linear-gradient(180deg, var(--sunny), var(--sunny-dk));color:var(--ink);box-shadow:0 4px 0 var(--sunny-dk);border-radius:9px;padding:8px 16px;font-size:13px;font-weight:800}.small-btn:hover{filter:brightness(1.07)}.small-btn:active{box-shadow:0 1px 0 var(--sunny-dk);transform:translateY(3px)}.small-btn:disabled{filter:grayscale(.7)brightness(.9);cursor:not-allowed}.small-btn:disabled:active{transform:none}.text-link{font-family:var(--font-body);color:var(--ink);text-underline-offset:4px;cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:800;text-decoration:underline;text-decoration-thickness:2px}.text-link.on-sky{color:#0e4a63}.text-link:hover{color:var(--berry-dk)}.field-label{letter-spacing:.09em;text-transform:uppercase;color:var(--grape-dk);text-align:left;margin-bottom:7px;font-size:12px;font-weight:800;display:block}.input{width:100%;font-family:var(--font-body);border:3px solid var(--ink);color:var(--ink);background:#fffdf4;border-radius:10px;padding:13px 16px;font-size:16px;font-weight:700}.input::placeholder{color:#a99ec0;font-weight:600}.title-wrap{text-align:center;max-width:660px;margin:0 auto}.stamp{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--berry);border:3px solid var(--ink);box-shadow:0 4px 0 var(--berry-dk);border-radius:8px;margin-bottom:20px;padding:5px 14px;font-size:12px;font-weight:800;display:inline-block;transform:rotate(-3.5deg)}.sign{background:repeating-linear-gradient(102deg, #ffd67829 0 3px, transparent 3px 9px), var(--paper);border:4px solid var(--ink);border-radius:8px;padding:40px 40px 34px;position:relative;transform:rotate(-1deg);box-shadow:0 12px #33224a40,0 26px 44px #1e3c5059}.sign>.pin{top:-9px}.sign>.pin:first-of-type{left:18px}.sign>.pin:nth-of-type(2){right:18px}.rays{z-index:0;opacity:.5;background:repeating-conic-gradient(from 0deg at 50% 42%, var(--sunny) 0deg 9deg, transparent 9deg 18deg);animation:90s linear infinite spin;position:absolute;inset:-40px;-webkit-mask-image:radial-gradient(circle at 50% 42%,#000 22%,#0000 62%);mask-image:radial-gradient(circle at 50% 42%,#000 22%,#0000 62%)}@keyframes spin{to{transform:rotate(360deg)}}.mascot{z-index:2;width:118px;height:auto;margin:0 auto -6px;animation:3.6s ease-in-out infinite bob;display:block;position:relative}@keyframes bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-7px)rotate(2deg)}}.title-lockup{font-family:var(--font-display);letter-spacing:2px;z-index:2;margin:6px 0 0;font-size:clamp(2.5rem,8vw,4.6rem);line-height:.92;position:relative}.title-lockup .l1{color:var(--sunny);display:block}.title-lockup .l2{color:var(--turq);display:block}.title-lockup .l1,.title-lockup .l2{-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:5px 6px 0 var(--berry), 9px 11px 0 #33224a40}.tagline{color:var(--ink-soft);z-index:2;margin:16px 0 28px;font-size:16px;font-style:italic;font-weight:700;position:relative}.name-field{text-align:left;z-index:2;max-width:340px;margin:0 auto 24px;position:relative}.auth-account{z-index:2;max-width:340px;margin:0 auto;position:relative}.auth-account .name-field{margin-bottom:12px}.auth-tabs{justify-content:center;gap:8px;margin-bottom:14px;display:flex}.auth-tab{font-family:var(--font-body);border:3px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:800}.auth-tab.active{background:var(--sunny)}.title-actions{z-index:2;flex-direction:column;align-items:center;gap:11px;display:flex;position:relative}.helper-text{color:var(--ink-soft);font-size:12px;font-weight:700}.version-tag{color:#0e4a63;opacity:.7;margin-top:28px;font-size:12px;font-weight:700}.lobby-wrap{max-width:780px;margin:0 auto}.banner-chip{background:linear-gradient(180deg, var(--grape), var(--grape-dk));border:4px solid var(--ink);border-radius:8px;margin-bottom:6px;padding:14px 30px;display:inline-block;position:relative;transform:rotate(-1deg);box-shadow:0 8px #33224a4d,0 16px 26px #1e3c504d}.banner-chip h1{font-family:var(--font-display);letter-spacing:1.5px;color:var(--sunny);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:3px 4px #33224a66;margin:0;font-size:2.4rem}.banner-chip .pin{margin-left:-9px;top:-10px;left:50%}.lobby-sub{color:#0e4a63;margin:16px 0 24px;font-size:15px;font-weight:700}.room-list{flex-direction:column;gap:16px;min-height:80px;margin-bottom:28px;display:flex}.room-card{background:repeating-linear-gradient(102deg, #ffd67829 0 3px, transparent 3px 9px), var(--paper);border:3px solid var(--ink);border-radius:10px;align-items:center;gap:16px;padding:15px 20px;display:flex;box-shadow:0 7px #33224a38,0 16px 24px #1e3c5038}.room-card:hover{transform:translateY(-2px)}.room-lock{text-align:center;flex-shrink:0;width:24px;font-size:20px}.map-swatch{border:3px solid var(--ink);background:linear-gradient(180deg, var(--sky-mid) 0 52%, var(--lime) 52% 68%, var(--dirt) 68%);border-radius:5px;flex-shrink:0;width:40px;height:26px;box-shadow:0 3px #33224a40}.map-swatch.map-island{background:linear-gradient(180deg, var(--sky-mid) 0 52%, var(--lime) 52% 68%, var(--dirt) 68%)}.map-swatch.map-twin{background:linear-gradient(180deg, var(--sky-mid) 0 48%, var(--turq) 48% 62%, var(--sunny) 62%)}.map-swatch.map-cave{background:linear-gradient(180deg, #2a2438 0 40%, var(--hill-near) 40% 58%, var(--dirt-dark) 58%)}.map-tiles{flex-wrap:wrap;gap:10px;display:flex}.map-tile{border:3px solid var(--ink);background:var(--paper);cursor:pointer;min-width:88px;font-family:var(--font-body);color:var(--ink);text-align:center;border-radius:12px;flex:1;padding:8px;box-shadow:0 4px #33224a40}.map-tile .map-swatch{width:100%;height:32px;box-shadow:none;margin-bottom:6px}.map-tile span{font-size:11px;font-weight:800}.map-tile.selected{background:var(--sunny);box-shadow:0 4px 0 var(--sunny-dk);transform:translateY(-3px)}.room-info{flex:1;min-width:0}.room-name{margin:0 0 2px;font-size:18px;font-weight:800}.room-meta{color:var(--ink-soft);flex-wrap:wrap;gap:9px;font-size:13px;font-weight:700;display:flex}.player-count{background:var(--lime);color:var(--ink);border:3px solid var(--ink);box-shadow:0 3px 0 var(--lime-dk);border-radius:20px;padding:4px 11px;font-size:13px;font-weight:800}.player-count.full{background:var(--berry);color:#fff;box-shadow:0 3px 0 var(--berry-dk)}.room-actions{flex-shrink:0}.lobby-bottom{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.signed-in{color:#0e4a63;margin-left:auto;font-size:13px;font-weight:700}.lobby-empty{color:#0e4a63;text-align:center;padding:18px;font-weight:700}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#33224a8c;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0;overflow-y:auto}.modal-overlay.active{display:flex}.clipboard{background:linear-gradient(180deg, var(--wood), var(--wood-dark));border:4px solid var(--ink);border-radius:14px;width:100%;max-width:450px;margin:auto;padding:22px 18px;position:relative;box-shadow:0 22px 44px #14283c80}.clip{border:3px solid var(--ink);background:linear-gradient(#f2f2f2,#b6b6b6);border-radius:7px;width:76px;height:28px;margin-left:-38px;position:absolute;top:-16px;left:50%;box-shadow:0 4px #33224a4d}.clip-sheet{background:repeating-linear-gradient(102deg, #ffd67829 0 3px, transparent 3px 9px), var(--paper);border:3px solid var(--ink);border-radius:9px;margin-top:10px;padding:22px 20px}.clip-sheet h2{font-family:var(--font-display);letter-spacing:1px;color:var(--tangerine);-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;margin:2px 0 18px;font-size:1.8rem}.form-row{margin-bottom:16px}.form-row>label{text-transform:uppercase;letter-spacing:.07em;color:var(--grape-dk);margin-bottom:7px;font-size:12px;font-weight:800;display:block}.toggle-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.switch{flex-shrink:0;width:50px;height:28px;position:relative}.switch input{opacity:0;width:0;height:0}.slider-toggle{background:var(--paper-2);cursor:pointer;border:3px solid var(--ink);border-radius:20px;transition:all .15s;position:absolute;inset:0}.slider-toggle:before{content:"";border:2px solid var(--ink);background:#fff;border-radius:50%;width:16px;height:16px;transition:all .15s;position:absolute;top:3px;left:3px}.switch input:checked+.slider-toggle{background:var(--lime)}.switch input:checked+.slider-toggle:before{transform:translate(21px)}.stepper{align-items:center;gap:12px;display:flex}.stepper button{border:3px solid var(--ink);background:linear-gradient(180deg, var(--turq), var(--turq-dk));color:#fff;cursor:pointer;width:34px;height:34px;box-shadow:0 3px 0 var(--turq-dk);border-radius:9px;font-size:17px;font-weight:800}.stepper button:active{box-shadow:none;transform:translateY(2px)}.stepper .val{text-align:center;min-width:22px;font-size:17px;font-weight:800}.fuse-row{align-items:center;gap:12px;display:flex}.fuse-row input[type=range]{accent-color:var(--tangerine);flex:1}.fuse-val{text-align:right;min-width:38px;color:var(--tangerine-dk);font-size:14px;font-weight:800}.modal-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:6px;display:flex}.room-wrap{max-width:840px;margin:0 auto}.room-header{background:repeating-linear-gradient(102deg, #ffd67829 0 3px, transparent 3px 9px), var(--paper);border:3px solid var(--ink);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:26px;padding:15px 22px;display:flex;transform:rotate(-.4deg);box-shadow:0 8px #33224a38,0 18px 28px #1e3c5040}.room-header h1{font-family:var(--font-display);letter-spacing:1px;color:var(--berry);-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;margin:0;font-size:2rem}.code-chip{background:var(--grape);color:#fff6dc;border:3px solid var(--ink);box-shadow:0 3px 0 var(--grape-dk);border-radius:22px;align-items:center;gap:9px;padding:8px 12px;font-size:13px;font-weight:800;display:flex}.squads{flex-wrap:wrap;gap:22px;margin-bottom:28px;display:flex}.squad{flex:1;min-width:280px}.squad-title{font-family:var(--font-display);letter-spacing:1px;color:#fff;-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;align-items:center;gap:9px;margin-bottom:14px;font-size:1.5rem;display:flex}.squad-title.red{color:var(--team-red)}.squad-title.blue{color:var(--team-blue)}.squad-title.green{color:var(--team-green)}.squad-title.yellow{color:var(--team-yellow)}.squad-title .dot{border:3px solid var(--ink);border-radius:50%;width:16px;height:16px}.dot.red{background:var(--team-red)}.dot.blue{background:var(--team-blue)}.dot.green{background:var(--team-green)}.dot.yellow{background:var(--team-yellow)}.chip{background:repeating-linear-gradient(102deg, #ffd67829 0 3px, transparent 3px 9px), var(--paper);border:3px solid var(--ink);border-radius:10px;align-items:center;gap:10px;margin-bottom:11px;padding:12px 16px;display:flex;box-shadow:0 5px #33224a33}.chip.empty{box-shadow:none;color:var(--ink-soft);background:#ffffff59;border:3px dashed #33224a59;justify-content:center;font-size:13px;font-weight:800}.chip-name{flex:1;font-weight:800}.ready-stamp{letter-spacing:.06em;text-transform:uppercase;border:3px solid var(--ink);background:var(--paper-2);color:var(--ink-soft);border-radius:6px;padding:5px 11px;font-size:11px;font-weight:800}.ready-stamp.is-ready{background:var(--lime);color:#fff;text-shadow:0 1px #0000004d;box-shadow:0 3px 0 var(--lime-dk);transform:rotate(-5deg)}.kick-btn{border:2px solid var(--ink);background:var(--berry);color:#fff;cursor:pointer;border-radius:8px;padding:4px 8px;font-size:11px;font-weight:800}.color-picks{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.color-pick{font-family:var(--font-body);text-transform:uppercase;border:3px solid var(--ink);cursor:pointer;color:#fff;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:800}.color-pick.red{background:var(--team-red);box-shadow:0 3px 0 var(--team-red-dk)}.color-pick.blue{background:var(--team-blue);box-shadow:0 3px 0 var(--team-blue-dk)}.color-pick.green{background:var(--team-green);box-shadow:0 3px 0 var(--team-green-dk)}.color-pick.yellow{background:var(--team-yellow);box-shadow:0 3px 0 var(--team-yellow-dk)}.color-pick.selected{outline:3px solid var(--sunny);outline-offset:2px}.room-bottom{border-top:3px dashed #33224a4d;flex-wrap:wrap;align-items:center;gap:16px;padding-top:22px;display:flex}.start-hint{color:#0e4a63;max-width:250px;font-size:12px;font-weight:700}#match-hud{z-index:10;display:none;position:absolute;inset:0;pointer-events:none!important}#match-hud.visible{display:block}#match-hud>*{pointer-events:auto}.teams{flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;left:16px}.team-card{border-radius:12px;min-width:210px;padding:9px 14px}.team-row{align-items:center;gap:8px;margin-bottom:5px;display:flex}.team-dot{border:2.5px solid var(--ink);border-radius:50%;flex-shrink:0;width:14px;height:14px}.team-dot.red{background:var(--team-red)}.team-dot.blue{background:var(--team-blue)}.team-dot.green{background:var(--team-green)}.team-dot.yellow{background:var(--team-yellow)}.team-name{font-family:var(--font-display);letter-spacing:.5px;flex:1;font-size:1.05rem}.team-hp-num{font-size:13px;font-weight:800}.hp-bar{border:2.5px solid var(--ink);background:var(--paper-2);border-radius:7px;height:13px;position:relative;overflow:hidden}.hp-bar i{height:100%;transition:width .4s;display:block}.hp-bar i.red{background:linear-gradient(180deg, #e85a5a, var(--team-red))}.hp-bar i.blue{background:linear-gradient(180deg, #5a9aea, var(--team-blue))}.hp-bar i.green{background:linear-gradient(180deg, #8aca4a, var(--team-green))}.hp-bar i.yellow{background:linear-gradient(180deg, #f0c050, var(--team-yellow))}.team-pips{gap:4px;margin-top:6px;display:flex}.pip{border:2.5px solid var(--ink);background:var(--paper-2);border-radius:50%;width:15px;height:15px;position:relative}.pip.alive.red{background:var(--team-red)}.pip.alive.blue{background:var(--team-blue)}.pip.alive.green{background:var(--team-green)}.pip.alive.yellow{background:var(--team-yellow)}.pip.dead{background:#c9bfd6}.pip.dead:after{content:"×";text-align:center;color:var(--ink);font-size:11px;font-weight:800;line-height:10px;position:absolute;inset:0}.timer-wrap{text-align:center;position:absolute;top:14px;left:50%;transform:translate(-50%)}.timer{border:4px solid var(--ink);background:radial-gradient(circle at 34% 28%, #fffdf4, var(--paper) 55%, var(--paper-2));border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto;display:flex;position:relative;box-shadow:0 6px #33224a4d,0 14px 22px #14283c4d}.timer.urgent{border-color:var(--berry-dk);animation:1s steps(2,end) infinite tick}@keyframes tick{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}.timer span{font-family:var(--font-display);color:var(--tangerine);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;font-size:2.6rem;line-height:1}.timer.urgent span{color:var(--berry)}.timer-ring{border-radius:50%;position:absolute;inset:-4px;transform:rotate(-90deg)}.climb-hint{color:#b8f0c4;background:#0f2814bf;border:2px solid #1f6b3a;border-radius:12px;margin-top:6px;padding:3px 10px;font-size:12px;font-weight:700;display:none}.climb-hint.show{display:inline-block}.turn-label{background:var(--grape);color:#fff6dc;border:3px solid var(--ink);letter-spacing:.09em;text-transform:uppercase;box-shadow:0 3px 0 var(--grape-dk);border-radius:20px;margin-top:7px;padding:4px 14px;font-size:11px;font-weight:800;display:inline-block}.right-stack{flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;top:16px;right:16px}.round-chip{background:var(--sunny);border:3px solid var(--ink);letter-spacing:.07em;text-transform:uppercase;box-shadow:0 3px 0 var(--sunny-dk);border-radius:20px;padding:7px 15px;font-size:12px;font-weight:800}.wind{border-radius:12px;width:194px;padding:10px 14px 11px}.wind-head{letter-spacing:.09em;text-transform:uppercase;color:var(--grape-dk);justify-content:space-between;align-items:center;margin-bottom:7px;font-size:11px;font-weight:800;display:flex}.wind-strength{color:var(--ink)}.wind-gauge{border:3px solid var(--ink);background:var(--paper-2);border-radius:7px;height:20px;position:relative;overflow:hidden}.wind-gauge .center{background:var(--ink);opacity:.5;width:3px;position:absolute;top:0;bottom:0;left:50%}.wind-gauge i{background:repeating-linear-gradient(115deg, #fff 0 5px, var(--turq) 5px 11px);transition:width .3s,left .3s,right .3s;position:absolute;top:0;bottom:0}.wind-arrows{color:var(--ink-soft);justify-content:space-between;margin-top:4px;font-size:12px;font-weight:800;display:flex}.weapon-dock{align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:16px;left:16px}.fuse-dock{border:3px solid var(--ink);background:var(--paper);border-radius:12px;min-width:140px;padding:8px 12px;box-shadow:0 5px #33224a47}.fuse-dock[hidden]{display:none!important}.fuse-dock-label{letter-spacing:.1em;text-transform:uppercase;color:var(--grape-dk);margin-bottom:4px;font-size:10px;font-weight:800;display:block}.fuse-dock .fuse-row{gap:8px;margin:0}.weapon-btn{cursor:pointer;text-align:left;min-width:230px;font-family:var(--font-body);background:repeating-linear-gradient(102deg, #ffd6782e 0 3px, transparent 3px 9px), var(--paper);border:3px solid var(--ink);border-radius:14px;align-items:center;gap:12px;padding:11px 15px 12px;transition:transform .1s;display:flex;box-shadow:0 6px #33224a4d,0 14px 22px #14283c4d}.weapon-btn:hover{transform:translateY(-2px)}.weapon-btn.ghost{opacity:.72;filter:saturate(.45);cursor:default}.weapon-icon{border:3px solid var(--ink);background:var(--paper-2);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:24px;display:flex}.weapon-meta{flex:1;min-width:0}.weapon-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--grape-dk);font-size:10px;font-weight:800}.weapon-name{font-family:var(--font-display);letter-spacing:.5px;font-size:1.35rem;line-height:1.05}.weapon-ammo{color:var(--ink-soft);font-size:11px;font-weight:800}.kbd{border:2px solid var(--ink);background:var(--paper-2);color:var(--ink);border-radius:5px;padding:2px 6px;font-size:10px;font-weight:800}.power-wrap{text-align:center;width:340px;display:none;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.power-wrap.visible{display:block}.power-label{letter-spacing:.1em;text-transform:uppercase;color:#fff6dc;text-shadow:0 2px #33224acc;margin-bottom:6px;font-size:11px;font-weight:800}.power-bar{border:4px solid var(--ink);background:var(--paper);border-radius:14px;height:26px;position:relative;overflow:hidden;box-shadow:0 5px #33224a59}.power-bar>i{background:linear-gradient(90deg, var(--lime), var(--sunny) 55%, var(--berry));width:0%;height:100%;display:block}.power-ticks{display:flex;position:absolute;inset:0}.power-ticks span{border-right:2px solid #33224a2e;flex:1}.power-ticks span:last-child{border-right:none}.aim-dock{z-index:60;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:16px;right:16px}.aim-readout{border-radius:12px;align-items:center;gap:14px;padding:9px 14px;display:flex}.readout-item{text-align:center}.readout-label{letter-spacing:.1em;text-transform:uppercase;color:var(--grape-dk);font-size:9px;font-weight:800}.readout-val{font-family:var(--font-display);letter-spacing:.5px;font-size:1.3rem;line-height:1}.mini-actions{gap:8px;display:flex}.mini-btn{font-family:var(--font-body);text-transform:uppercase;border:3px solid var(--ink);cursor:pointer;color:#fff;text-shadow:0 1px #0000004d;border-radius:10px;padding:8px 13px;font-size:12px;font-weight:800}.mini-btn.grape{background:var(--grape);box-shadow:0 4px 0 var(--grape-dk)}.mini-btn.berry{background:var(--berry);box-shadow:0 4px 0 var(--berry-dk)}.mini-btn:active{box-shadow:none;transform:translateY(3px)}.turn-banner{text-align:center;z-index:20;background:linear-gradient(180deg, var(--turq), var(--turq-dk));border:5px solid var(--ink);border-radius:14px;padding:16px 46px;display:none;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)rotate(-3deg);box-shadow:0 9px #33224a59,0 22px 34px #14283c66;pointer-events:none!important}.turn-banner.show{animation:.5s cubic-bezier(.2,1.5,.4,1) slam;display:block}.turn-banner h2{font-family:var(--font-display);letter-spacing:2px;color:var(--sunny);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:4px 5px 0 var(--berry);margin:0;font-size:3rem}.turn-banner p{color:#fff6dc;letter-spacing:.08em;text-transform:uppercase;margin:4px 0 0;font-size:13px;font-weight:800}@keyframes slam{0%{opacity:0;transform:translate(-50%,-50%)rotate(-3deg)scale(2.2)}to{opacity:1;transform:translate(-50%,-50%)rotate(-3deg)scale(1)}}.watch-card{text-align:center;border-radius:14px;min-width:min(390px,90vw);padding:14px 22px 15px;display:none;position:absolute;bottom:22px;left:50%;transform:translate(-50%)rotate(-1deg)}.watch-card.show{display:block}.watch-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--grape-dk);font-size:10px;font-weight:800}.watch-line{justify-content:center;align-items:center;gap:11px;margin:7px 0 3px;display:flex}.watch-who{font-family:var(--font-display);letter-spacing:.5px;color:var(--tangerine);-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;font-size:1.7rem}.watch-icon{border:3px solid var(--ink);background:var(--paper-2);border-radius:11px;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.watch-state{color:var(--ink-soft);font-size:13px;font-weight:800}.wheel-overlay{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#33224a8c;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.wheel-overlay.active{display:flex}.wheel{border-radius:16px;width:min(560px,92vw);padding:20px 20px 18px}.wheel h3{font-family:var(--font-display);letter-spacing:1px;color:var(--tangerine);-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;margin:0 0 4px;font-size:1.7rem}.wheel-sub{color:var(--ink-soft);margin:0 0 16px;font-size:12px;font-weight:700}.wheel-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:11px;display:grid}.w-tile{border:3px solid var(--ink);background:var(--paper-2);text-align:center;cursor:pointer;border-radius:12px;padding:10px 6px 8px;position:relative}.w-tile.selected{background:var(--sunny);box-shadow:0 4px 0 var(--sunny-dk);transform:translateY(-3px)}.w-tile.out{filter:grayscale(.75)brightness(.95);cursor:not-allowed}.w-emoji{font-size:26px;line-height:1}.w-name{margin-top:5px;font-size:11px;font-weight:800}.w-count{border:2.5px solid var(--ink);background:var(--lime);color:#fff;border-radius:12px;min-width:22px;padding:1px 5px;font-size:10px;font-weight:800;position:absolute;top:-9px;right:-7px}.w-count.inf{background:var(--turq)}.w-count.zero{color:var(--ink);background:#c9bfd6}.wheel-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.wheel-hint{color:var(--ink-soft);font-size:11px;font-weight:700}#screen-victory .victory-wrap{max-width:900px;margin:0 auto}.victory-hero{text-align:center;margin-bottom:34px}.ribbon{background:var(--berry);color:#fff;border:3px solid var(--ink);letter-spacing:.12em;text-transform:uppercase;box-shadow:0 4px 0 var(--berry-dk);border-radius:8px;margin-bottom:16px;padding:5px 18px;font-size:12px;font-weight:800;display:inline-block;transform:rotate(-2.5deg)}.victory-title{font-family:var(--font-display);letter-spacing:2px;color:var(--sunny);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:5px 6px 0 var(--turq), 9px 11px 0 #33224a40;white-space:pre-line;margin:8px 0 0;font-size:clamp(2.4rem,7vw,4rem);line-height:.95}.victory-sub{color:#0e4a63;margin:10px 0 0;font-size:16px;font-weight:800}.boards{flex-wrap:wrap;gap:20px;margin-bottom:26px;display:flex}.board{border:4px solid var(--ink);background:repeating-linear-gradient(102deg, #ffd6782e 0 3px, transparent 3px 9px), var(--paper);border-radius:14px;flex:1;min-width:260px;padding:20px;position:relative;box-shadow:0 10px #33224a40,0 22px 34px #1e3c5047}.board.loser{filter:saturate(.7)}.board-head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.board-name{font-family:var(--font-display);letter-spacing:.5px;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;flex:1;font-size:1.5rem}.board-name.red{color:var(--team-red)}.board-name.blue{color:var(--team-blue)}.board-name.green{color:var(--team-green)}.board-name.yellow{color:var(--team-yellow)}.place{letter-spacing:.08em;text-transform:uppercase;border:3px solid var(--ink);border-radius:20px;padding:4px 11px;font-size:11px;font-weight:800}.place.win{background:var(--sunny);box-shadow:0 3px 0 var(--sunny-dk)}.place.lose{color:var(--ink-soft);background:#d8cfe2}.player-row{border:3px solid var(--ink);background:var(--paper-2);border-radius:10px;align-items:center;gap:10px;margin-bottom:8px;padding:9px 12px;display:flex}.p-name{flex:1;min-width:0;font-weight:800}.survivors{align-items:center;gap:5px;margin-top:10px;display:flex}.survivors>span:first-child{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-right:4px;font-size:11px;font-weight:800}.victory-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}#screen-reconnect{background:#1c14308c}.reconnect-wrap{justify-content:center;align-items:center;min-height:calc(100vh - 72px);display:flex}.reconnect-card{border:5px solid var(--ink);text-align:center;background:repeating-linear-gradient(102deg, #ffd6782e 0 3px, transparent 3px 9px), var(--paper);border-radius:18px;width:min(440px,94vw);padding:30px 30px 26px;position:relative;box-shadow:0 12px #33224a59,0 26px 44px #0a142880}.reconnect-card h1{font-family:var(--font-display);letter-spacing:1.5px;color:var(--sunny);-webkit-text-stroke:3.5px var(--ink);paint-order:stroke fill;text-shadow:4px 5px 0 var(--berry);margin:6px 0 0;font-size:2.3rem}.reconnect-card .sub{color:var(--ink-soft);margin:9px 0 20px;font-size:14px;font-weight:800}.reconnect-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.seat-note{text-align:left;background:#ffffff80;border:3px dashed #33224a4d;border-radius:11px;margin:16px 0 0;padding:12px 14px;font-size:12.5px;font-weight:700;line-height:1.5}#toast{background:var(--paper);border:3px solid var(--berry-dk);opacity:0;z-index:80;text-align:center;border-radius:10px;max-width:min(28rem,90vw);padding:.55rem 1rem;font-weight:800;transition:opacity .2s;position:absolute;bottom:2rem;left:50%;transform:translate(-50%);pointer-events:none!important}#toast.show{opacity:1}#peer-banner{z-index:25;background:var(--sunny);border:3px solid var(--ink);box-shadow:0 3px 0 var(--sunny-dk);border-radius:20px;padding:8px 16px;font-size:12px;font-weight:800;display:none;position:absolute;top:120px;left:50%;transform:translate(-50%)}#peer-banner.show{display:block}#corner-tools{z-index:50;align-items:center;gap:.4rem;display:flex;position:absolute;bottom:1rem;right:1rem}#controls-toggle{border:3px solid var(--ink);background:var(--sunny);width:2.35rem;height:2.35rem;color:var(--ink);cursor:pointer;font-family:var(--font-display);letter-spacing:.5px;box-shadow:0 3px 0 var(--sunny-dk);border-radius:999px;padding:0;font-size:1.25rem;line-height:1;display:none}#controls-toggle:hover{filter:brightness(1.07)}#controls-toggle:active{box-shadow:0 1px 0 var(--sunny-dk);transform:translateY(2px)}body.playing #controls-toggle{justify-content:center;align-items:center;display:inline-flex}#history-toggle{border:3px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;font-family:var(--font-body);border-radius:999px;padding:.45rem .85rem;font-size:.8rem;font-weight:800;box-shadow:0 3px #33224a40}body.playing #corner-tools{bottom:6.5rem;left:1rem;right:auto}body.playing #history-panel{bottom:9.5rem;left:1rem;right:auto}.controls-board{max-width:720px;max-height:calc(100vh - 40px)}.controls-board .clip-sheet{max-height:calc(100vh - 96px);overflow-y:auto}.controls-lead{color:var(--ink-soft);margin:-8px 0 16px;font-size:13px;font-weight:700;line-height:1.35}.controls-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.controls-group{border:2.5px solid var(--ink);background:var(--paper-2);border-radius:10px;padding:10px 12px 8px}.controls-group h3{font-family:var(--font-display);letter-spacing:.4px;color:var(--grape-dk);margin:0 0 8px;font-size:1.05rem}.controls-group ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.controls-row{color:var(--ink);align-items:flex-start;gap:8px;font-size:.78rem;font-weight:700;line-height:1.35;display:flex}.controls-keys{flex-wrap:wrap;flex:none;align-items:center;gap:4px;min-width:5.6rem;display:flex}#history-panel{z-index:50;border-radius:12px;flex-direction:column;width:min(28rem,100vw - 2rem);max-height:min(30rem,100vh - 6rem);padding:.65rem;display:flex;position:absolute;bottom:3.6rem;right:1rem}#history-panel[hidden]{display:none!important}.history-header,.history-actions,.history-item{align-items:baseline;display:flex}.history-header{justify-content:space-between;gap:.75rem;padding:0 .25rem .5rem}.history-header h2{font-size:.95rem;font-family:var(--font-display);letter-spacing:.5px;margin:0}.history-actions{gap:.35rem}.history-actions button{color:var(--ink-soft);cursor:pointer;font:inherit;background:0 0;border:0;padding:.2rem .35rem;font-size:.75rem;font-weight:800}#history-status{min-height:1.25rem;color:var(--ink-soft);padding:0 .25rem .4rem;font-size:.75rem;font-weight:700}#history-list{gap:.45rem;margin:0;padding:.15rem .25rem .35rem;list-style:none;display:grid;overflow-y:auto}.history-item{border-bottom:1px solid #33224a26;align-items:flex-start;gap:.45rem;padding-bottom:.45rem;font-size:.78rem;font-weight:700;line-height:1.3}.history-meta{color:var(--ink-soft);white-space:nowrap;flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}.history-subject{min-width:0}@media (width<=640px){.title-lockup{font-size:2.3rem}.sign{padding:30px 20px 26px}.room-card{flex-wrap:wrap}.room-actions,.room-actions .small-btn{width:100%}.power-wrap{width:min(280px,70vw);bottom:96px}.team-card{min-width:150px}.weapon-btn{min-width:0}.controls-grid{grid-template-columns:1fr}.controls-board{max-width:100%}}
