@font-face{font-family:Fredoka;font-style:normal;font-weight:400;font-stretch:normal;font-display:swap;src:url(/assets/fredoka-0-CknQpFBf.ttf) format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:normal;font-display:swap;src:url(/assets/fredoka-1-BLVej9ak.ttf) format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:700 900;font-stretch:normal;font-display:swap;src:url(/assets/fredoka-2-C6iEZUUE.ttf) format("truetype")}@font-face{font-family:Teko;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/teko-0-C92DdzZF.ttf) format("truetype")}@font-face{font-family:Teko;font-style:normal;font-weight:700 900;font-display:swap;src:url(/assets/teko-1-BagmczNb.ttf) format("truetype")}@font-face{font-family:Black Ops One;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/black-ops-one-0-pPlZdp-y.ttf) format("truetype")}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button,input,select,textarea{font-family:inherit}html,body{width:100%;height:100%;overflow:hidden;background-color:#0b0f19;font-family:Fredoka,sans-serif;color:#fff;touch-action:manipulation}#app{position:relative;width:100vw;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}#game-canvas{position:relative;display:block;flex:1 1 0;min-height:0;width:100%;height:0;z-index:1;image-rendering:auto;touch-action:none}#collision-debug-toggle{position:absolute;top:72px;left:14px;z-index:20;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid rgba(126,255,245,.52);border-radius:9px;color:#dffffc;background:#08161fd1;box-shadow:0 4px 14px #00000047;font:800 11px Fredoka,sans-serif;letter-spacing:.35px;cursor:pointer;pointer-events:auto;touch-action:manipulation}#collision-debug-toggle[hidden]{display:none}#collision-debug-toggle input{width:14px;height:14px;margin:0;accent-color:#00d2d3;cursor:pointer}#collision-debug-toggle:has(input:checked){border-color:#00d2d3;background:#00d2d333;box-shadow:0 0 16px #00d2d342}.main-menu{position:absolute;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 50% 35%,rgba(255,159,67,.16),transparent 34%),linear-gradient(180deg,#070b178c,#05080fe6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:opacity .35s ease,visibility .35s ease}.main-menu.hidden{opacity:0;visibility:hidden;pointer-events:none}.boot-loading{position:absolute;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:radial-gradient(circle at 50% 35%,rgba(255,159,67,.16),transparent 34%),linear-gradient(180deg,#070b17f0,#05080ffa);color:#ffd32a;font-size:12px;font-weight:800;letter-spacing:1.8px;transition:opacity .2s ease,visibility .2s ease}.boot-loading.hidden{opacity:0;visibility:hidden;pointer-events:none}.boot-loading-spinner{display:block;font-size:48px;animation:boot-loading-bob .9s ease-in-out infinite alternate}@keyframes boot-loading-bob{0%{transform:translateY(3px) rotate(-8deg)}to{transform:translateY(-5px) rotate(8deg)}}.boot-loading.is-error{color:#ff8a9b;text-align:center;padding:24px}.boot-loading.is-error .boot-loading-spinner{animation:none}.main-menu-card{position:relative;width:min(100%,500px);padding:28px 32px 24px;text-align:center;background:linear-gradient(145deg,#1e272ef7,#0f1520fa);border:3px solid #ff9f43;border-radius:28px;box-shadow:0 24px 80px #000000b8,0 0 42px #ff9f4329;overflow:hidden;animation:menu-card-in .55s cubic-bezier(.175,.885,.32,1.275)}.main-menu-card:before,.main-menu-card:after{content:"";position:absolute;width:130px;height:130px;border:2px solid rgba(255,211,42,.18);border-radius:50%;pointer-events:none}.main-menu-card:before{top:-86px;left:-68px}.main-menu-card:after{right:-68px;bottom:-92px}@keyframes menu-card-in{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-kicker{color:#00d2d3;font-size:11px;font-weight:800;letter-spacing:2.5px}.menu-logo{position:relative;height:82px;margin:4px auto -4px}.menu-logo-worm{display:inline-block;font-size:68px;filter:drop-shadow(0 5px 0 rgba(0,0,0,.35));transform:rotate(-12deg)}.menu-logo-flame{position:absolute;top:4px;margin-left:-8px;font-size:30px;transform:rotate(12deg)}.main-menu-card h1{color:#ffd32a;font-family:Teko,Fredoka,sans-serif;font-size:clamp(54px,11vw,76px);font-weight:700;letter-spacing:3px;line-height:.85;text-shadow:0 4px 0 #c96d24,0 8px 18px rgba(0,0,0,.6)}.main-menu-card h1 span{color:#ff6b81;font-size:.72em}.menu-tagline{margin:8px 0 20px;color:#c8d6e5;font-size:11px;font-weight:700;letter-spacing:1.5px}.menu-versus{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;margin-bottom:18px;background:#0000003d;border:1px solid rgba(255,255,255,.1);border-radius:14px}.menu-player{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.4px}.menu-player span{font-size:18px}.menu-player-red{color:#ff6b81}.menu-player-blue{color:#70a1ff}.menu-versus-mark{color:#ffd32a;font-size:13px;font-weight:800;letter-spacing:1px}.menu-level{display:flex;flex-direction:column;align-items:center;gap:7px;margin:-4px 0 12px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#0003}.menu-level-label{color:#ffffff9e;font-size:10px;font-weight:800;letter-spacing:1.5px}.level-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:min(100%,300px)}.level-option{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:5px 8px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:linear-gradient(180deg,#2f3542,#1e272e);color:#f1f2f6;cursor:pointer;transition:transform .1s ease,background .15s ease,border-color .15s ease}.level-option:last-child:nth-child(odd){grid-column:1 / -1}.level-option:hover,.level-option:focus-visible{border-color:#7efff5;outline:none}.level-option.selected{border-color:#ffd32a;background:linear-gradient(135deg,#ff9f43,#ee5253);box-shadow:0 0 14px #ff9f4357;transform:translateY(-1px)}.level-option strong{font-size:14px}.level-option small{margin-top:2px;color:#ffffffc7;font:600 9px Fredoka,sans-serif}.menu-level-summary{color:#ffd32a;font-size:10px;font-weight:700}.custom-level-picker{display:grid;width:min(100%,300px);gap:4px;color:#ffffffad;font-size:10px;font-weight:800;letter-spacing:1px;text-align:left}.custom-level-picker select{min-height:32px;padding:4px 8px;border:1px solid rgba(126,255,245,.42);border-radius:8px;background:#17222f;color:#f1f2f6;font:700 12px Fredoka,sans-serif}.custom-level-picker select:disabled{opacity:.55}.menu-editor-link{display:block;margin-top:10px;color:#7efff5;font-size:11px;font-weight:800;letter-spacing:1.2px;text-decoration:none}.menu-editor-link:hover,.menu-editor-link:focus-visible{color:#fff;text-decoration:underline}.menu-team-size{display:flex;flex-direction:column;align-items:center;gap:7px;margin:-4px 0 18px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#0003}.menu-team-size-label{color:#ffffff9e;font-size:10px;font-weight:800;letter-spacing:1.5px}.team-size-picker{display:grid;grid-template-columns:repeat(4,minmax(42px,1fr));gap:7px;width:min(100%,260px)}.team-size-option{min-height:38px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:linear-gradient(180deg,#2f3542,#1e272e);color:#f1f2f6;cursor:pointer;font:800 16px Fredoka,sans-serif;transition:transform .1s ease,background .15s ease,border-color .15s ease}.spawn-mode-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:min(100%,360px)}.spawn-mode-option{display:grid;gap:2px;min-height:52px;padding:7px 9px}.spawn-mode-option strong{font-size:13px}.spawn-mode-option small{font-size:10px;font-weight:700}.team-size-option:hover,.team-size-option:focus-visible{border-color:#7efff5;outline:none}.team-size-option.selected{border-color:#ffd32a;background:linear-gradient(135deg,#ff9f43,#ee5253);box-shadow:0 0 14px #ff9f4357;transform:translateY(-1px)}.menu-team-size-summary{color:#ffd32a;font-size:11px;font-weight:700}.menu-start-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;border:2px solid #feca57;border-radius:16px;background:linear-gradient(135deg,#ff9f43,#ee5253);color:#fff;cursor:pointer;font:800 18px Fredoka,sans-serif;letter-spacing:1px;box-shadow:0 8px 22px #ee525357,inset 0 1px #ffffff59;transition:transform .12s ease,filter .15s ease,box-shadow .15s ease}.menu-start-btn:hover{filter:brightness(1.1);box-shadow:0 10px 30px #ee525380,inset 0 1px #ffffff59;transform:translateY(-2px)}.menu-start-btn:active{transform:translateY(2px) scale(.98)}.menu-start-icon{font-size:24px}.menu-online-btn{min-height:50px;margin-top:8px;border-color:#54a0ff;background:linear-gradient(135deg,#2e86de,#5f27cd);box-shadow:0 8px 22px #2e86de4d,inset 0 1px #ffffff47}.menu-hint{margin:10px 0 16px;color:#ffffff8c;font-size:12px}.menu-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 14px;color:#ffffffb3;font-size:11px}.menu-controls span{display:inline-flex;align-items:center;gap:4px}.menu-controls kbd{padding:2px 5px;border:1px solid rgba(255,255,255,.22);border-radius:4px;background:#2f3542;color:#ffd32a;font:700 10px monospace}#top-hud{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:flex-start;padding:10px 14px;pointer-events:none;background:linear-gradient(180deg,#0b0f19d9,#0b0f1900)}.player-card{display:flex;align-items:center;gap:10px;background:#121826e0;border:2px solid rgba(255,255,255,.15);padding:6px 12px;border-radius:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 24px #0006;transition:all .3s ease;min-width:140px;max-width:240px}.player-card.active-turn{transform:scale(1.06);box-shadow:0 0 20px #ffd70099;border-color:gold}.p1-card.active-turn{border-color:#ff4757;box-shadow:0 0 18px #ff475799}.p2-card.active-turn{border-color:#2ed573;box-shadow:0 0 18px #2ed57399}.player-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.p1-avatar{background:linear-gradient(135deg,#ff4757,#c0392b);border:2px solid #ff6b81}.p2-avatar{background:linear-gradient(135deg,#1e90ff,#2ed573);border:2px solid #70a1ff}.player-info{display:flex;flex-direction:column;gap:3px;flex-grow:1}.player-info.right-aligned{text-align:right}.player-name-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.player-name{font-weight:700;font-size:14px;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.8)}.p1-card .player-name{color:#ff6b81}.p2-card .player-name{color:#70a1ff}.player-score{font-size:11px;color:#ffd32a;font-weight:600}.hp-bar-container{position:relative;width:100%;height:14px;background:#0009;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.2)}.hp-bar{height:100%;transition:width .35s cubic-bezier(.2,.9,.3,1.2),background-color .3s}.p1-hp-bar{background:linear-gradient(90deg,#ff4757,#ff6b81)}.p2-hp-bar{background:linear-gradient(90deg,#1e90ff,#2ed573)}.hp-bar.danger{background:linear-gradient(90deg,#e74c3c,#c0392b)!important;animation:pulse-danger .6s infinite alternate}@keyframes pulse-danger{0%{opacity:.7}to{opacity:1}}.hp-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.9);color:#fff;white-space:nowrap}.center-hud{display:flex;flex-direction:column;align-items:center;gap:4px}.turn-badge{background:#141928e6;border:2px solid #ffa502;padding:4px 14px;border-radius:20px;font-size:13px;font-weight:800;color:#ffd32a;text-transform:uppercase;letter-spacing:1px;box-shadow:0 4px 12px #00000080}.wind-indicator{display:flex;align-items:center;gap:6px;background:#0f141ecc;border:1px solid rgba(255,255,255,.2);padding:2px 10px;border-radius:12px;font-size:11px;color:#dcdde1}.level-indicator{display:inline-flex;align-items:center;justify-content:center;padding:2px 9px;border:1px solid rgba(255,211,42,.35);border-radius:12px;background:#0f141ecc;color:#ffd32a;font-size:10px;font-weight:800}.wind-gauge{display:flex;align-items:center;gap:4px}.wind-arrow{display:inline-block;font-size:13px;font-weight:700;color:#00d2d3;transition:transform .4s ease}.wind-val{font-weight:700;color:#00d2d3}.turn-banner{position:absolute;top:90px;left:50%;transform:translate(-50%) translateY(-20px);background:linear-gradient(135deg,#1e272ef2,#2f3542f2);border:3px solid #ff9f43;border-radius:20px;padding:12px 28px;text-align:center;z-index:100;opacity:0;pointer-events:none;transition:all .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 10px 30px #0009}.turn-banner.show{opacity:1;transform:translate(-50%) translateY(0)}.turn-banner h2{font-size:20px;color:#feca57;text-shadow:0 2px 4px rgba(0,0,0,.7);margin-bottom:2px}.turn-banner p{font-size:12px;color:#c8d6e5}.power-hud{position:absolute;bottom:150px;left:50%;transform:translate(-50%);z-index:15;background:#121622eb;border:2px solid #ff4757;border-radius:16px;padding:8px 16px;text-align:center;min-width:200px;box-shadow:0 6px 20px #ff475766;transition:opacity .2s ease,transform .2s ease}.power-hud.hidden{opacity:0;pointer-events:none;transform:translate(-50%) scale(.9)}.teleport-status{color:#e8e6ff;font-size:12px;font-weight:800;text-align:center}.teleport-actions{display:flex;gap:8px;width:100%}.teleport-btn{flex:1 1 0;min-height:40px;border:1px solid rgba(255,255,255,.22);border-radius:11px;color:#fff;cursor:pointer;font:800 12px Fredoka,sans-serif;transition:filter .15s ease,opacity .15s ease,transform .1s ease}.teleport-btn:active{transform:translateY(2px) scale(.98)}.teleport-confirm{background:linear-gradient(135deg,#6c5ce7,#8c7ae6);box-shadow:0 4px 14px #6c5ce759}.teleport-cancel{background:#ffffff1f}.teleport-btn:disabled{cursor:not-allowed;filter:grayscale(.8);opacity:.45}.power-label{font-size:11px;font-weight:800;color:#ff6b81;letter-spacing:1px;margin-bottom:4px}.power-meter-outer{width:100%;height:16px;background:#2f3542;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.3)}.power-meter-inner{height:100%;width:0%;background:linear-gradient(90deg,#2ed573,#ffa502 60%,#ff4757);transition:width .05s linear}.power-val{font-size:13px;font-weight:800;color:#fff;margin-top:3px}.touch-controls{position:relative;flex:0 0 auto;width:100%;z-index:20;display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(4px,.7vw,9px);padding:clamp(6px,1vw,10px) clamp(8px,1.3vw,16px) calc(clamp(8px,1.4vw,14px) + env(safe-area-inset-bottom));pointer-events:auto;background:#26351d}#app:has(.main-menu:not(.hidden))>.touch-controls{display:none}#app:has(.main-menu:not(.hidden))>#game-canvas{visibility:hidden}[hidden]{display:none!important}.control-panel{min-width:0}.unit-controls-panel,.weapon-controls-panel{display:contents}.weapon-controls-panel.is-locked{display:none!important}.control-tabs{display:none}.weapon-module-toolbar{display:flex;align-items:center;gap:clamp(4px,.5vw,7px)}.weapon-module-toolbar .cluster-label{white-space:nowrap}.weapon-controls-host{display:flex;flex-direction:column;gap:clamp(4px,.5vw,7px)}.weapon-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.weapon-header .cluster-label{text-align:left}.weapon-hint{color:#ffffff94;font-size:9px;text-align:right}.weapon-actions{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:stretch;gap:clamp(4px,.5vw,7px)}.weapon-aim-row{flex:0 1 auto}.weapon-actions .weapon-aim-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}.weapon-fire-row{display:flex;width:100%;min-width:0}.weapon-fire-row .btn-fire{width:100%;min-width:0}.cluster-split-control{grid-column:1 / -1;width:100%;display:none}.weapon-actions.cluster-flight-state .weapon-aim-row,.weapon-actions.cluster-flight-state .weapon-fire-row{display:none}.weapon-actions.cluster-flight-state .cluster-split-control{display:block}.guided-steer-control{grid-column:1 / -1;display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(4px,.5vw,7px)}.weapon-actions.guided-rocket-flight .weapon-aim-row,.weapon-actions.guided-rocket-flight .weapon-fire-row{display:none}.weapon-actions.guided-rocket-flight .guided-steer-control{display:grid}.guided-steer-btn{min-height:clamp(46px,7vh,60px);flex-direction:column;gap:1px;border-color:#4dd0e1;background:linear-gradient(180deg,#247b86,#14515d);box-shadow:0 4px 14px #4dd0e147,inset 0 1px #ffffff3d}.guided-steer-btn.pressed,.guided-steer-btn:active{background:linear-gradient(180deg,#3aaab7,#1d707b);transform:translateY(1px)}.guided-steer-icon{font-size:20px;line-height:1}.guided-steer-label{font-size:9px;font-weight:900;letter-spacing:.8px}.cluster-split-btn{width:100%;min-height:clamp(42px,6.5vh,54px);flex-direction:row;gap:8px;border-color:#c56cf0;background:linear-gradient(180deg,#8e7dff,#5f27cd);box-shadow:0 4px 14px #8e7dff6b,inset 0 1px #ffffff47}.cluster-split-icon{font-size:21px}.cluster-split-text{display:flex;flex-direction:column;align-items:flex-start;font-size:10px;font-weight:800;letter-spacing:.6px}.cluster-split-text small{margin-top:2px;color:#ffffffc2;font-size:9px;letter-spacing:0}.teleport-controls{display:flex;flex-direction:column;width:100%;gap:7px}.teleport-controls .teleport-status{padding:7px 9px;border:1px dashed rgba(162,155,254,.58);border-radius:10px;background:#a29bfe1a;color:#e8e6ff;font-size:11px;font-weight:800;text-align:center}.teleport-controls .teleport-actions{display:flex;gap:7px}.teleport-controls .teleport-btn{flex:1 1 0}.artillery-controls .teleport-status{border-color:#ffd32a94;background:#ff9f431f;color:#fff4c2}.artillery-controls .artillery-confirm{border-color:#ffd32a;background:linear-gradient(180deg,#ffb142,#e1701a)}.control-cluster{display:flex;flex-direction:column;min-width:0;gap:clamp(4px,.5vw,7px);pointer-events:auto}.movement-status{display:flex;flex-direction:column;gap:4px;width:100%;min-width:150px}.movement-status-header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#ffffff94;font-size:9px;font-weight:800;letter-spacing:1px}.movement-status-header strong{color:#7efff5;font-size:11px;letter-spacing:.2px}.movement-meter{height:6px;overflow:hidden;border:1px solid rgba(126,255,245,.25);border-radius:999px;background:#00000061}.movement-meter-fill{width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#00d2d3,#7efff5);transition:width .12s ease,background .15s ease}.movement-meter-fill.warning{background:linear-gradient(90deg,#ff9f43,#feca57)}.movement-meter-fill.empty{background:#ff4757}.btn-reset-movement{width:100%;min-height:26px;padding:3px 7px;border-width:1px;border-radius:8px;color:#ffffffc7;background:#ffffff14;box-shadow:none;font:800 9px Fredoka,sans-serif;letter-spacing:.2px;flex-direction:row;gap:4px}.btn-reset-movement span{color:#7efff5;font-size:13px;line-height:1}.cluster-label{font-size:9px;font-weight:800;color:#ffffff73;letter-spacing:1px;text-align:center}.move-row,.aim-row{display:flex;gap:clamp(4px,.5vw,7px)}.gameboy-movement-row{display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(10px,1.3vw,18px)}.gameboy-direction-stack,.gameboy-action-stack{display:flex;flex-direction:column;align-items:center;gap:4px}.gameboy-control-label{color:#ffffff80;font-size:8px;font-weight:800;letter-spacing:1.3px}.gameboy-direction-row{display:flex;gap:clamp(5px,.6vw,8px)}.gameboy-direction-btn{width:clamp(54px,5vw,72px);height:clamp(46px,6.5vh,58px);min-width:0;min-height:0;padding:5px}.gameboy-direction-btn .icon{font-size:clamp(15px,2vw,22px);line-height:1}.gameboy-movement-row .gameboy-action-btn{width:clamp(58px,6.5vw,74px);height:clamp(58px,6.5vw,74px);min-width:0;min-height:0;padding:6px;border-radius:50%}.gameboy-action-letter{display:grid;place-items:center;width:31px;height:31px;border:2px solid currentColor;border-radius:50%;font:700 22px/1 Teko,sans-serif}.gameboy-action-btn .btn-sub{font-size:8px;letter-spacing:.4px}.btn{background:linear-gradient(180deg,#2f3542,#1e272e);border:2px solid rgba(255,255,255,.2);color:#f1f2f6;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 10px #0006,inset 0 1px #fff3;transition:transform .08s ease,background .15s ease,border-color .15s ease,box-shadow .08s ease;user-select:none;-webkit-user-select:none;touch-action:none}.btn:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.35)}.btn:active,.btn.pressed{transform:translateY(3px) scale(.96);box-shadow:0 1px 4px #0009;border-color:#feca57}.btn .icon{font-size:clamp(15px,1.35vw,20px);line-height:1}.btn .btn-sub{font-size:clamp(8px,.7vw,10px);font-weight:700;opacity:.85;margin-top:1px}.btn-move{width:clamp(44px,4.3vw,68px);height:clamp(42px,6.5vh,54px)}.btn-jump{width:clamp(44px,4.3vw,68px);height:clamp(42px,6.5vh,54px);background:linear-gradient(180deg,#3742fa,#2f3542);border-color:#70a1ff}.btn-jump .icon{font-size:20px;color:#70a1ff}.ladder-controls{align-items:stretch}.btn-ladder,.btn-ladder-drop{width:clamp(44px,4.3vw,68px);height:clamp(42px,6.5vh,54px);min-width:0;min-height:0}.btn-ladder{background:linear-gradient(180deg,#b7791f,#744210);border-color:#f6c453}.btn-ladder .icon{color:#ffeaa7}.btn-ladder-drop{background:linear-gradient(180deg,#636e72,#2d3436);border-color:#b2bec3}.btn-aim{width:100%;min-width:0;height:clamp(42px,6.5vh,54px);background:linear-gradient(180deg,#ffa502,#d35400);border-color:#ffd32a}.btn-aim .icon{font-size:16px;color:#fff}.btn-fire{width:100%;min-width:0;height:clamp(42px,6.5vh,54px);background:linear-gradient(180deg,#ff4757,#c0392b);border:2px solid #ff6b81;box-shadow:0 4px 16px #ff475780,inset 0 1px #ffffff4d;display:flex;flex-direction:row;gap:clamp(5px,.7vw,9px)}.btn-fire.charging{background:linear-gradient(180deg,#ff9f43,#ee5253);animation:pulse-fire .25s infinite alternate;box-shadow:0 0 22px #ff6b81cc}.btn-tnt{background:linear-gradient(180deg,#ff9f43,#c4451c);border-color:#ffd32a;box-shadow:0 4px 16px #ff9f436b,inset 0 1px #ffffff4d}@keyframes pulse-fire{0%{transform:scale(.97)}to{transform:scale(1.03)}}.btn-fire .fire-icon{font-size:clamp(20px,1.8vw,26px)}.btn-fire .fire-text{font-size:clamp(9px,.75vw,11px);line-height:1.15;text-align:left}.btn-fire .fire-text strong{font-size:clamp(11px,.95vw,14px);color:#ffd32a;letter-spacing:1px}.btn-util{padding:clamp(4px,.5vw,7px) clamp(7px,.8vw,11px);border-radius:12px;font-size:clamp(10px,.85vw,12px);font-weight:700;height:clamp(32px,5vh,40px);background:#2f3542d9}.weapon-picker{position:relative;display:flex}.weapon-picker-btn{width:68px;min-width:68px;height:68px;padding:5px;border-radius:50%;border-color:#7efff59e;background:radial-gradient(circle at 35% 25%,#3d6472,#1e272e 72%);box-shadow:0 4px 14px #00000073,inset 0 1px #ffffff42}#weapon-picker-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1}.weapon-picker-icon{font-size:23px}.weapon-picker-name{max-width:58px;overflow:hidden;color:#ffffffdb;font:800 9px/1 Fredoka,sans-serif;letter-spacing:.2px;text-overflow:ellipsis;white-space:nowrap}.weapon-empty-state{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-height:44px;gap:3px;color:#ffffff9e;text-align:right}.weapon-empty-state strong{color:#7efff5;font-size:10px;letter-spacing:.8px}.weapon-empty-state span{font-size:10px}.weapon-menu{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;align-items:center;gap:14px;width:100vw;max-width:none;height:100dvh;max-height:none;padding:calc(18px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));transform:none;border:0;border-radius:0;background:linear-gradient(180deg,#091437fa,#0f1520fc);box-shadow:0 0 40px #00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;overscroll-behavior:contain;scrollbar-color:rgba(126,255,245,.7) rgba(255,255,255,.08);scrollbar-width:thin}.weapon-menu[hidden]{display:none}.weapon-menu-heading,.weapon-option-list{width:min(560px,100%)}.weapon-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 2px 4px}.weapon-menu-heading strong{display:block;color:#7efff5;font-size:15px;letter-spacing:1.2px}.weapon-menu-heading span{display:block;margin-top:3px;color:#ffffff9e;font-size:11px}.weapon-menu-close{flex:0 0 auto;width:40px;height:40px;border:1px solid rgba(255,255,255,.25);border-radius:12px;color:#fff;background:#ffffff1a;cursor:pointer;font-size:28px;line-height:1}.weapon-option-list{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:9px;padding:0 4px 4px 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:rgba(126,255,245,.7) rgba(255,255,255,.08);scrollbar-width:thin}.weapon-option{display:grid;grid-template-columns:58px minmax(78px,.45fr) minmax(0,1fr);align-items:center;width:100%;min-height:82px;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:linear-gradient(180deg,#2f3542,#1e272e);color:#fff;cursor:pointer;font-size:24px;line-height:1;touch-action:manipulation;text-align:left}.weapon-option:hover,.weapon-option:focus-visible{border-color:#7efff5;background:linear-gradient(180deg,#315f67,#1e444d);outline:none}.weapon-option small{display:block;margin:0;color:#ffffffc7;font:700 12px Fredoka,sans-serif}.weapon-option-icon{display:block;line-height:1;text-align:center}.weapon-option-description{display:block;min-height:0;margin:0;color:#ffffff94;font:600 10px/1.25 Fredoka,sans-serif}.btn-camera-mode.is-free{background:linear-gradient(180deg,#00d2d3e6,#10ac84e6);border-color:#7efff5;color:#07151c;box-shadow:0 0 14px #00d2d373,inset 0 1px #ffffff73}.camera-overlay-btn{position:absolute;top:clamp(120px,14vh,148px);left:max(10px,env(safe-area-inset-left));z-index:110;pointer-events:auto}.modal{position:absolute;top:0;left:0;width:100%;height:100%;background:#05080fd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;opacity:1;transition:opacity .3s ease;padding:16px}.modal.hidden{opacity:0;pointer-events:none}.modal-content{background:linear-gradient(145deg,#1e272e,#141a22);border:3px solid #ff9f43;border-radius:24px;padding:24px 28px;width:100%;max-width:440px;text-align:center;box-shadow:0 20px 60px #000c;animation:modal-pop .35s cubic-bezier(.175,.885,.32,1.275)}@keyframes modal-pop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.victory-crown{font-size:48px;margin-bottom:6px;animation:bounce-crown 1s infinite alternate ease-in-out}@keyframes bounce-crown{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.modal-content h1{font-size:26px;font-weight:800;color:#ffd32a;margin-bottom:8px}.modal-content h2{font-size:22px;font-weight:800;color:#ffa502;margin-bottom:14px}.modal-content p{font-size:14px;color:#dcdde1;line-height:1.4;margin-bottom:16px}.damage-report-card{max-width:500px;border-color:#ffc21a}.damage-report-icon{margin-bottom:2px;font-size:42px;line-height:1;filter:drop-shadow(0 3px 0 rgba(20,26,36,.45))}.damage-report-kicker{display:block;margin-top:4px;color:#ffc21a;font-size:10px;font-weight:800;letter-spacing:2px}.damage-report-card h2{margin:6px 0 4px}.damage-report-card #damage-report-subtitle{margin-bottom:12px}.damage-report-summary{margin-bottom:10px!important;color:#ffc21a!important;font-size:13px!important;font-weight:800}.damage-report-list{display:flex;flex-direction:column;gap:8px;max-height:min(34vh,250px);margin:0 0 18px;padding:0;overflow-y:auto;list-style:none;text-align:left}.damage-report-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:2px solid rgba(255,255,255,.16);border-radius:10px;background:#00000038}.damage-report-p1{border-color:#e2283cb8}.damage-report-p2{border-color:#1479e0b8}.damage-report-identity,.damage-report-values{display:flex;flex-direction:column;gap:3px;min-width:0}.damage-report-identity strong{color:#fff;font-size:15px}.damage-report-team{overflow:hidden;color:#c8d6e5;font-size:10px;font-weight:800;letter-spacing:.7px;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.damage-report-values{align-items:flex-end;flex:0 0 auto;text-align:right}.damage-report-amount{color:#ff6b81;font-size:17px}.damage-report-values span{color:#c8d6e5;font-size:10px;font-weight:700;white-space:nowrap}.damage-report-empty{padding:14px 12px;border:2px dashed rgba(255,194,26,.62);border-radius:10px;color:#c8d6e5;font-size:13px;font-weight:700;line-height:1.4;text-align:center}.damage-report-actions{margin-bottom:0}.damage-report-actions .modal-btn{width:100%}.stats-summary{background:#0006;border-radius:14px;padding:12px 16px;margin-bottom:18px;border:1px solid rgba(255,255,255,.1)}.stat-item{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.stat-val{font-weight:800;color:#00d2d3}.instructions-body{text-align:left;font-size:12px;color:#c8d6e5;line-height:1.45;max-height:52vh;overflow-y:auto;padding-right:6px;margin-bottom:16px}.instructions-body ul{padding-left:18px;margin-top:8px}.instructions-body li{margin-bottom:8px}.instructions-body kbd{background:#2f3542;border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:11px;color:#ffd32a}.modal-buttons{display:flex;flex-direction:column;gap:8px}.modal-btn{padding:12px;border-radius:14px;font-weight:800;font-size:15px;cursor:pointer;border:none;transition:transform .1s ease,filter .15s ease}.modal-btn:active{transform:scale(.96)}.modal-btn.btn-primary{background:linear-gradient(135deg,#2ed573,#10ac84);color:#fff;box-shadow:0 4px 15px #2ed57366}.modal-btn.btn-secondary{background:#ffffff1f;color:#ced6e0}.online-replay-actions.hidden,.modal-btn.hidden{display:none}.online-room-label{color:#ffffff94;font-size:10px;font-weight:800;letter-spacing:1.8px}.online-code-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.online-code-entry input{min-width:0;border:2px solid rgba(84,160,255,.5);border-radius:14px;background:#00000059;color:#fff;text-align:center;font:800 25px/1 Teko,monospace;letter-spacing:9px;outline:none}.online-code-entry input:focus{border-color:#7efff5}.online-room-code{color:#7efff5;font:700 58px/.9 Teko,monospace;letter-spacing:12px;text-shadow:0 0 24px rgba(126,255,245,.42)}.online-player-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}.online-player-list span{padding:10px 6px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#00000038;color:#ffffff8c;font-size:11px;font-weight:700}.online-player-list span.connected{color:#fff;border-color:#2ed57380}.online-error{min-height:18px;margin:10px 0 2px!important;color:#ff6b81!important;font-size:12px!important}.online-turn-overlay{position:absolute;inset:0;z-index:230;display:flex;align-items:center;justify-content:center;padding:20px;background:#05080f94;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.online-turn-overlay.hidden{display:none}.online-turn-card{width:min(390px,calc(100vw - 28px));padding:24px;border:2px solid rgba(84,160,255,.75);border-radius:22px;background:linear-gradient(145deg,#1e2738f7,#0c111bfa);text-align:center;box-shadow:0 18px 55px #000000a6}.online-turn-card>span{color:#7efff5;font-size:10px;font-weight:800;letter-spacing:2px}.online-turn-card h2{margin:7px 0;color:#ffd32a;font-size:24px}.online-turn-card p{margin-bottom:16px;color:#c8d6e5;font-size:13px}.online-replay-actions{display:flex;flex-direction:column;gap:8px}.online-taunt{margin-bottom:14px!important;padding:8px 12px;border:1px dashed rgba(255,211,42,.55);border-radius:12px;background:#00000040;color:#ffd32a!important;font-style:italic}.online-taunt.hidden{display:none}.online-message-composer{display:flex;flex-direction:column;gap:8px}.online-message-composer.hidden{display:none}.online-message-composer label{color:#ffffff94;font-size:10px;font-weight:800;letter-spacing:1.8px;text-align:left}.online-message-composer textarea{resize:none;border:2px solid rgba(126,255,245,.4);border-radius:12px;background:#00000059;color:#fff;padding:8px 10px;font:600 13px Fredoka,sans-serif;outline:none;user-select:text;-webkit-user-select:text}.online-message-composer textarea:focus{border-color:#7efff5}.online-message-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.online-message-count{color:#ffffff80;font-size:11px;font-weight:700}.game-controls-locked #touch-controls{opacity:.38;pointer-events:none;filter:grayscale(.7)}.game-controls-locked.replay-viewing #touch-controls{opacity:1;pointer-events:auto;filter:none}.replay-viewing #touch-controls>.unit-controls-panel,.replay-viewing #touch-controls>.jump-controls-panel,.replay-viewing #touch-controls>.weapon-controls-panel,.replay-viewing #touch-controls>.control-tabs,.replay-viewing .camera-overlay-btn,.replay-viewing .ladder-bubble{display:none!important}.replay-viewing #touch-controls{display:flex;justify-content:center}.replay-controls-panel{width:min(100%,960px);min-width:0;display:flex;flex-direction:column;gap:6px}.replay-timeline-label{display:flex;justify-content:space-between;gap:12px;color:var(--khaki);font:400 13px var(--display);letter-spacing:.5px}#replay-time{color:var(--yellow);font-variant-numeric:tabular-nums;white-space:nowrap}.replay-timeline{--replay-progress: 0%;appearance:none;-webkit-appearance:none;width:100%;height:32px;margin:0;background:transparent;cursor:pointer;touch-action:none}.replay-timeline::-webkit-slider-runnable-track{height:10px;border:2px solid var(--ink);border-radius:6px;background:linear-gradient(to right,var(--yellow) var(--replay-progress),#17241b var(--replay-progress))}.replay-timeline::-moz-range-track{height:6px;border:2px solid var(--ink);border-radius:6px;background:linear-gradient(to right,var(--yellow) var(--replay-progress),#17241b var(--replay-progress))}.replay-timeline::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:24px;height:24px;margin-top:-9px;border:3px solid var(--ink);border-radius:50%;background:var(--yellow)}.replay-timeline::-moz-range-thumb{width:18px;height:18px;border:3px solid var(--ink);border-radius:50%;background:var(--yellow)}.replay-timeline:focus-visible{outline:2px solid var(--yellow);outline-offset:2px;border-radius:6px}.replay-playback-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.replay-playback-actions .replay-playback-btn{width:100%;min-width:0;min-height:44px;height:auto;flex-direction:row;justify-content:center;gap:clamp(6px,1.5vw,10px);padding:10px 12px;font-size:clamp(11px,2.8vw,15px)}.replay-button-icon{display:flex;flex:0 0 20px;width:20px;height:20px;align-items:center;justify-content:center}.replay-button-icon svg{width:100%;height:100%;fill:currentColor}.replay-button-label{min-width:0}#btn-replay-pause .replay-button-icon svg{display:none}#btn-replay-pause[data-playback=playing] .replay-icon-pause,#btn-replay-pause[data-playback=paused] .replay-icon-play,#btn-replay-pause[data-playback=ended] .replay-icon-restart{display:block}.replay-status{min-height:16px;color:var(--khaki);font-size:11px;text-align:center}@media(max-width:600px){.main-menu{padding:12px}.main-menu-card{padding:22px 18px 18px;border-radius:22px}.menu-logo{height:68px}.menu-logo-worm{font-size:56px}.menu-logo-flame{font-size:25px}.menu-tagline{font-size:9px;letter-spacing:1px;margin-bottom:14px}.menu-versus{margin-bottom:14px}.menu-level{margin-bottom:12px;padding:8px 10px}.menu-team-size{margin-bottom:14px;padding:8px 10px}.team-size-option{min-height:36px}.menu-player{font-size:9px}.menu-controls{gap:6px 9px}#top-hud{padding:6px 8px}#collision-debug-toggle{top:56px;left:8px;padding:4px 7px;font-size:10px}.player-card{min-width:105px;padding:4px 8px}.player-avatar{width:28px;height:28px;font-size:15px}.player-name{font-size:12px}.player-score{display:none}.hp-bar-container{height:12px}.hp-text{font-size:9px}.turn-badge{font-size:10px;padding:2px 8px}.wind-indicator{padding:1px 6px;font-size:9px}.btn-move,.btn-jump,.btn-ladder,.btn-ladder-drop{width:52px;height:46px}.btn-aim{width:48px;height:40px}.btn-fire{width:105px;height:46px}.btn .icon{font-size:15px}.btn .btn-sub{font-size:8px}}@media(max-width:600px){#app{height:100dvh}.touch-controls{padding-bottom:calc(10px + max(env(safe-area-inset-bottom),24px))}.power-hud{bottom:calc(164px + max(env(safe-area-inset-bottom),24px))}.main-menu{padding-bottom:calc(12px + max(env(safe-area-inset-bottom),24px))}}@media(orientation:portrait)and (max-width:600px){#top-hud{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"player-one player-two" "match-info match-info";gap:5px 8px;padding:calc(6px + env(safe-area-inset-top)) 8px 6px}#collision-debug-toggle{top:calc(92px + env(safe-area-inset-top));left:8px}.p1-card{grid-area:player-one}.p2-card{grid-area:player-two;justify-self:end}.player-card{width:100%;min-width:0;max-width:none;gap:6px;padding:4px 6px;border-width:1px;border-radius:12px}.player-card.active-turn{transform:scale(1.02)}.player-avatar{width:25px;height:25px;font-size:13px}.player-info{min-width:0}.player-name-row{gap:4px}.player-name{font-size:10px;letter-spacing:0}.hp-bar-container{height:10px}.hp-text{font-size:8px}.center-hud{grid-area:match-info;flex-direction:row;justify-content:center;gap:5px}.turn-badge{padding:3px 8px;font-size:9px;letter-spacing:.4px}.wind-indicator{padding:2px 6px;font-size:9px}.turn-banner{top:calc(88px + env(safe-area-inset-top));width:min(360px,calc(100vw - 24px));padding:8px 12px;border-width:2px;border-radius:14px}.turn-banner h2{font-size:16px}.turn-banner p{font-size:10px}.camera-overlay-btn{top:calc(144px + env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left))}.touch-controls{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"panel" "tabs";grid-template-rows:auto auto;align-items:end;gap:5px;padding:8px 10px calc(8px + max(env(safe-area-inset-bottom),24px));background:linear-gradient(0deg,#080b12f5,#080b1285 76%,#080b1200)}.unit-controls-panel,.weapon-controls-panel{grid-area:panel;display:none;align-items:flex-end;justify-content:space-between;width:100%;gap:7px}.unit-controls-panel.active,.weapon-controls-panel.active{display:flex}.unit-controls-panel.active{flex-direction:column;align-items:stretch}.control-tabs{grid-area:tabs;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:100%;padding:4px;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:#121622f5;box-shadow:0 5px 16px #00000061;pointer-events:auto}.control-tab{min-height:34px;border:1px solid transparent;border-radius:9px;color:#ffffff9e;background:transparent;cursor:pointer;font:800 11px Fredoka,sans-serif;letter-spacing:.4px;transition:background .15s ease,border-color .15s ease,color .15s ease;touch-action:manipulation}.control-tab.active{border-color:#7efff5;color:#07151c;background:linear-gradient(135deg,#7efff5,#00d2d3);box-shadow:0 0 12px #00d2d347}.control-tab:disabled,.control-tab.is-locked{opacity:.42;color:#ffffff61;cursor:not-allowed;filter:saturate(.35)}.control-cluster{gap:4px}.cluster-label{font-size:8px;letter-spacing:.8px}.movement-status{min-width:0;gap:3px}.movement-status-header{font-size:8px}.movement-status-header strong{font-size:10px}.btn-reset-movement{min-height:24px;font-size:8px}.left-cluster,.right-cluster{width:100%}.unit-controls-panel .left-cluster{flex:1 1 auto;align-items:stretch}.weapon-controls-panel .right-cluster{align-items:stretch}.move-row,.aim-row,.fire-row{width:100%}.move-row,.aim-row{justify-content:stretch;gap:5px}.fire-row{display:flex;justify-content:stretch}.gameboy-movement-row{width:100%;justify-content:space-around;gap:10px}.gameboy-direction-btn{width:clamp(54px,15vw,68px);height:48px}.gameboy-action-btn{width:clamp(60px,18vw,74px);height:clamp(60px,18vw,74px)}.weapon-module-toolbar{justify-content:space-between}.weapon-picker-btn{width:72px;min-width:72px;height:72px}.weapon-picker-icon{font-size:25px}.weapon-controls-host{width:100%}.weapon-actions{width:100%;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.weapon-actions .weapon-aim-row,.weapon-actions .weapon-fire-row{width:100%}.weapon-controls-panel .power-hud{position:static;width:100%;min-width:0;order:1;margin-top:0;margin-bottom:4px;transform:none}.weapon-controls-panel .weapon-controls-host{order:2}.weapon-controls-panel .power-hud.hidden{display:none;transform:scale(.96)}.btn-move,.btn-jump,.btn-ladder,.btn-ladder-drop{width:auto;flex:1 1 0;height:48px}.weapon-aim-row .btn-aim,.weapon-fire-row .btn-fire{width:100%;height:48px}.cluster-split-btn{min-height:44px}.btn-fire .fire-icon{font-size:20px}.btn-fire .fire-text{font-size:9px}.btn-fire .fire-text strong{font-size:11px}.btn-util{height:32px;padding:4px 7px;font-size:10px}.btn-util.weapon-picker-btn{width:72px;min-width:72px;height:72px;padding:5px}.power-hud{bottom:calc(164px + max(env(safe-area-inset-bottom),24px));min-width:min(200px,calc(100vw - 32px))}.main-menu{align-items:flex-start;padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + max(env(safe-area-inset-bottom),24px));overflow-y:auto}.main-menu-card{padding:20px 16px 16px}.menu-logo{height:62px}.menu-logo-worm{font-size:50px}.menu-logo-flame{top:1px;font-size:22px}.main-menu-card h1{font-size:58px}.menu-tagline{margin:6px 0 12px}.menu-versus{padding:8px 9px;margin-bottom:12px}.menu-level{margin-bottom:10px}.menu-team-size{margin-bottom:12px}.menu-start-btn{min-height:52px;font-size:16px}.menu-hint{margin:8px 0 12px}}@media(max-height:480px){.touch-controls{padding:4px 8px calc(6px + max(env(safe-area-inset-bottom),24px)) 8px}.cluster-label{display:none}.btn-move,.btn-jump,.btn-ladder,.btn-ladder-drop,.btn-fire{height:40px}.power-hud{bottom:90px}}@media(orientation:landscape)and (max-height:500px){.touch-controls{gap:4px;padding:4px 8px calc(6px + max(env(safe-area-inset-bottom),24px))}.cluster-label{display:none}.control-cluster{gap:3px}.movement-status{gap:2px}.movement-status-header{font-size:7px}.movement-status-header strong{font-size:9px}.movement-meter{height:5px}.btn-reset-movement{min-height:21px;padding:2px 5px;font-size:7px}.btn-reset-movement span{font-size:11px}.move-row,.aim-row{gap:4px}.gameboy-movement-row{gap:7px}.gameboy-direction-btn{width:clamp(42px,8vw,56px);height:clamp(36px,12vh,44px)}.gameboy-action-btn{width:clamp(50px,15vh,62px);height:clamp(50px,15vh,62px)}.btn-move,.btn-jump,.btn-ladder,.btn-ladder-drop{width:clamp(36px,8vw,52px);height:clamp(36px,12vh,44px)}.weapon-aim-row .btn-aim{width:100%;height:clamp(32px,10vh,40px)}.weapon-fire-row .btn-fire{width:100%;height:clamp(36px,12vh,44px)}.cluster-split-btn{min-height:clamp(34px,10vh,40px)}.btn-util{height:clamp(30px,9vh,34px);padding:3px 6px;font-size:clamp(9px,1.5vw,11px)}.btn-util.weapon-picker-btn{width:60px;min-width:60px;height:60px;padding:4px}.btn .btn-sub{font-size:clamp(7px,1.4vw,9px)}.btn-fire .fire-icon{font-size:clamp(18px,4vw,23px)}.btn-fire .fire-text{font-size:clamp(8px,1.6vw,10px)}.btn-fire .fire-text strong{font-size:clamp(10px,2vw,12px)}}#online-chat-form button{min-height:40px;padding:8px 12px;border:1px solid #59667e;border-radius:9px;background:#263451;color:#fff;font:inherit;cursor:pointer}#top-hud:has(.online-chat:not(.hidden)){z-index:240}.online-chat{position:relative;pointer-events:auto}.online-chat summary{display:flex;align-items:center;gap:5px;min-height:32px;padding:4px 10px;cursor:pointer;list-style:none;white-space:nowrap}.online-chat summary::-webkit-details-marker{display:none}.online-chat summary svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.online-chat summary .chat-chevron{width:12px;height:12px}.online-chat[open] .chat-chevron{transform:rotate(180deg)}#online-chat-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 4px;font-size:10px;line-height:1}#online-chat-count[hidden]{display:none}.online-chat-panel{position:fixed;inset:0;z-index:1;width:100%;height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:hidden;overscroll-behavior:contain}.online-chat-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:12px}.online-chat-heading h2{font:inherit}#btn-online-chat-close{min-height:44px;padding:8px 12px;cursor:pointer;font:700 14px Fredoka,sans-serif}#btn-online-chat-close span{margin-left:8px;font-size:22px}.online-chat-messages{flex:1;min-height:0;overflow-y:auto;padding:12px;overflow-wrap:anywhere;overscroll-behavior:contain}.online-chat-messages:empty:before{content:"Noch keine Nachrichten. Sag deinem Gegner Hallo!";display:block;padding:12px 0;font-size:13px;line-height:1.5}.chat-message{font-size:13px;line-height:1.45;white-space:pre-wrap}#online-chat-form{flex:none;display:flex;align-items:end;gap:8px;padding:12px}#online-chat-input{resize:none;min-width:0;width:100%;border:1px solid #59667e;border-radius:8px;padding:8px;background:#111a2d;color:#fff;font:inherit;font-size:14px}.online-extra-error{position:fixed;z-index:330;top:120px;left:12px;right:12px;margin:0 auto;width:fit-content;max-width:calc(100vw - 24px);background:#481d2c;color:#fff;border-radius:8px}.online-extra-error:not(:empty){padding:8px 12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.fullscreen-btn{justify-content:center;min-width:44px;min-height:44px;padding:8px}.fullscreen-btn svg{width:20px;height:20px}.fullscreen-btn[aria-pressed=true]{background:var(--yellow, #ffc21a)}.online-chat.hidden,#online-rematch-status.hidden,#online-rematch-actions.hidden{display:none}.online-chat-session{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px 12px}.online-chat-session small{color:#adbedc;font-size:11px}#btn-online-menu{flex:0 0 auto;padding:8px 10px;min-height:36px;border:1px solid #59667e;border-radius:8px;color:#fff;background:#263451;font:inherit;font-size:12px;cursor:pointer}#online-chat-input{user-select:text;-webkit-user-select:text}.victory-card{max-height:calc(100dvh - 32px);overflow-y:auto}@media(max-height:500px)and (min-width:600px){.victory-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(170px,.8fr);column-gap:16px;max-width:680px;padding:14px 18px}.victory-card .victory-crown{grid-column:1;grid-row:1;font-size:28px;margin-bottom:2px}.victory-card h1{grid-column:1;grid-row:2;font-size:22px;margin-bottom:4px}.victory-card #victory-desc{grid-column:1;grid-row:3;font-size:12px;margin-bottom:8px}.victory-card .stats-summary{grid-column:2;grid-row:1 / span 3;margin-bottom:8px;padding:10px 12px}.victory-card #online-rematch-status{grid-column:1 / -1}.victory-card .modal-buttons{grid-column:1 / -1;flex-direction:row}.victory-card .modal-buttons .modal-btn{flex:1;min-height:40px;padding:10px;font-size:13px}}.ladder-bubble{position:fixed;z-index:25;width:52px;height:52px;padding:12px;border:3px solid var(--ink, #2b1a10);border-radius:50%;color:var(--ink, #2b1a10);background:linear-gradient(155deg,#ffe99a,var(--yellow, #ffc21a) 65%,#d99513);box-shadow:0 3px 0 var(--ink, #2b1a10),inset 0 2px #ffffff8c;transform:translate(-50%,-50%);cursor:pointer;touch-action:manipulation}.ladder-bubble svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round}.ladder-bubble:active{box-shadow:0 1px 0 var(--ink, #2b1a10)}.ladder-bubble:focus-visible{outline:3px solid white;outline-offset:3px}.ladder-bubble[hidden],.game-controls-locked .ladder-bubble{display:none}.push-settings{margin-top:24px;border-top:1px solid #ffffff30;padding-top:16px}.push-settings h3{margin:0 0 10px}.push-settings p{font-size:14px;line-height:1.5}.push-settings fieldset{border:0;padding:12px 0 0;margin:0;min-width:0}.push-settings legend{font-size:14px;padding-top:12px}.push-settings fieldset label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.push-settings fieldset input{width:20px;height:20px;flex:0 0 auto;accent-color:#ffca45}.push-settings .menu-start-btn{white-space:normal}.push-hint{position:fixed;z-index:150;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(420px,calc(100vw - 24px));box-sizing:border-box;background:#17252c;border:2px solid #ffca45;border-radius:14px;padding:12px 42px 12px 16px;color:#fff8e7;box-shadow:0 8px 30px #0008}.push-hint p{margin:0 0 8px;font-size:14px}.push-hint button{color:#ffca45;background:transparent;border:0;cursor:pointer;font:inherit;font-size:12px;min-height:40px;text-align:left}#btn-push-dismiss{position:absolute;top:5px;right:4px;width:36px;font-size:24px}.push-hint.hidden{display:none}.weapon-option:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(1)}#top-hud.multi-team{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px 12px;grid-template-areas:none}#top-hud.multi-team .center-hud{grid-column:2;grid-row:1 / 3}#top-hud.multi-team #p1-card{grid-column:1;grid-row:1}#top-hud.multi-team #p2-card{grid-column:3;grid-row:1}#top-hud.multi-team #p3-card{grid-column:1;grid-row:2}#top-hud.multi-team #p4-card{grid-column:3;grid-row:2}#top-hud.multi-team .player-card{width:auto;min-width:0;max-width:none;padding:5px 8px;transform:none}#top-hud.multi-team .player-avatar{display:none}#top-hud.multi-team .player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#top-hud.multi-team .player-info{min-width:0;width:100%}#top-hud.multi-team .player-card.active-turn{border-color:var(--team-color);box-shadow:0 0 10px color-mix(in srgb,var(--team-color) 45%,transparent)}.player-card.eliminated{opacity:.5}.participant-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.participant-options label{display:flex;align-items:center;justify-content:space-between;gap:8px}.participant-options select{padding:7px;background:#202b33;color:#fff;border:1px solid #68747c;border-radius:6px}.participant-options label[hidden]{display:none}@media(max-width:650px){#top-hud.multi-team{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 6px}#top-hud.multi-team .center-hud{grid-column:1 / 3;grid-row:1}#top-hud.multi-team #p1-card{grid-column:1;grid-row:2}#top-hud.multi-team #p2-card{grid-column:2;grid-row:2}#top-hud.multi-team #p3-card{grid-column:1;grid-row:3}#top-hud.multi-team #p4-card{grid-column:2;grid-row:3}#top-hud.multi-team .player-name{font-size:10px}#top-hud.multi-team .player-score{display:none}#top-hud.multi-team .hp-bar-container{height:14px}#top-hud.multi-team .hp-text{font-size:9px}}#p3-card .player-name{color:#16733c}#p4-card .player-name{color:#876200}#modal-damage{z-index:260}.damage-report-p3 .damage-report-team{color:#40c879}.damage-report-p4 .damage-report-team{color:#f3c744}[data-spawn-mode]:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.6)}.player-card.hidden,.computer-status.hidden{display:none}#app:has(#top-hud.multi-team) #collision-debug-toggle{top:calc(132px + env(safe-area-inset-top))}#app:has(#top-hud.multi-team) .computer-status{top:calc(160px + env(safe-area-inset-top))}#app:has(#top-hud.multi-team) .turn-banner{top:calc(200px + env(safe-area-inset-top))}.victory-card,.damage-report-card{max-height:calc(100dvh - 32px);overflow-y:auto}#app:has(#top-hud.multi-team) .camera-overlay-btn{top:calc(168px + env(safe-area-inset-top))}.legal-links{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;padding:16px 8px;font:600 13px/1.5 Fredoka,sans-serif}.legal-links a,.guest-storage-hint a,.push-privacy-note a,.push-hint a{color:#ffe58a;text-decoration:underline;text-underline-offset:3px}.legal-links a{padding:6px 0}.legal-links a:focus-visible{outline:2px solid #ffe58a;outline-offset:4px}.account-data-controls{margin-top:24px;padding-top:16px;border-top:1px solid #ffffff36;text-align:left}.account-data-controls p,.push-privacy-note{font:400 13px/1.6 Fredoka,sans-serif;overflow-wrap:anywhere}.account-data-actions{display:flex;flex-wrap:wrap;gap:12px}.account-delete-btn{border-color:#ff8e87}#account-data-status:empty{display:none}@font-face{font-family:Fredoka;font-style:normal;font-weight:400;font-stretch:normal;font-display:swap;src:url(/assets/fredoka-0-CknQpFBf.ttf) format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:normal;font-display:swap;src:url(/assets/fredoka-1-BLVej9ak.ttf) format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:700 900;font-stretch:normal;font-display:swap;src:url(/assets/fredoka-2-C6iEZUUE.ttf) format("truetype")}@font-face{font-family:Teko;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/teko-0-C92DdzZF.ttf) format("truetype")}@font-face{font-family:Teko;font-style:normal;font-weight:700 900;font-display:swap;src:url(/assets/teko-1-BagmczNb.ttf) format("truetype")}@font-face{font-family:Black Ops One;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/black-ops-one-0-pPlZdp-y.ttf) format("truetype")}:root{--ink: #1d2430;--ink-soft: rgba(29, 36, 48, .72);--khaki: #f6eed2;--khaki-soft: rgba(246, 238, 210, .78);--yellow: #ffc21a;--red: #e5433d;--blue: #2f8de4;--green: #5fbf3c;--plate-steel: url(/assets/plate-steel-BvrvqiT0.webp);--plate-olive: url(/assets/plate-olive-DTFBCOfj.webp);--plate-gunmetal: url(/assets/plate-gunmetal-D-OLzHTb.webp);--plate-yellow: url(/assets/plate-yellow-DLohMBpR.webp);--plate-red: url(/assets/plate-red-C6PSZz1g.webp);--plate-slice: 20%;--hazard: repeating-linear-gradient(-45deg, var(--yellow) 0 12px, var(--ink) 12px 24px);--drop: 0 6px 0 rgba(20, 26, 36, .5);--display: "Black Ops One", "Fredoka", sans-serif;--menu-backdrop-base: #142b30;--menu-backdrop-glow: rgba(85, 144, 136, .22);--menu-backdrop-warm: rgba(255, 194, 26, .09)}html,body{background-color:#2d86d8;color:var(--ink)}.main-menu-card,.menu-level,.menu-team-size,.level-option,.team-size-option,.menu-start-btn,.player-card,.turn-badge,.turn-banner,.power-hud,.control-cluster,.btn,.teleport-btn,.weapon-menu-heading,.weapon-option-list,.weapon-option,.modal-content,.modal-btn,.stats-summary,.online-turn-card,.control-tabs{border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 18px stretch;border-radius:12px;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--drop)}.main-menu-card,.modal-content,.weapon-option-list,.online-turn-card{border-image-width:30px;border-radius:20px}.control-cluster,.menu-level,.menu-team-size,.weapon-menu-heading,.turn-banner{border-image-width:24px;border-radius:16px}.btn,.level-option,.team-size-option,.teleport-btn,.modal-btn,.turn-badge{border-image-width:14px;border-radius:9px}.main-menu-card,.control-cluster,.weapon-option-list,.control-tabs{border-image-source:var(--plate-olive)}.menu-level,.menu-team-size,.turn-badge,.weapon-menu-heading,.stats-summary{border-image-source:var(--plate-gunmetal)}#collision-debug-toggle{top:84px;border:2px solid var(--ink);border-radius:7px;color:var(--ink);background:linear-gradient(180deg,#dbe3ea,#a9b6c2);box-shadow:none;opacity:.6}#collision-debug-toggle:hover,#collision-debug-toggle:has(input:checked){opacity:1;border-color:var(--ink);background:var(--yellow);box-shadow:0 2px 0 var(--ink)}#collision-debug-toggle input{accent-color:var(--ink)}.boot-loading{background:linear-gradient(180deg,#5d6f35,#3d4a24);color:var(--khaki);font:400 18px var(--display);letter-spacing:2px}.boot-loading:before,.boot-loading:after{content:"";position:absolute;left:0;right:0;height:22px;background:var(--hazard)}.boot-loading:before{top:0}.boot-loading:after{bottom:0}.boot-loading-spinner{font-size:64px}.boot-loading.is-error{color:#ffd0cc}.main-menu{background-color:var(--menu-backdrop-base);background-image:radial-gradient(ellipse at 50% 38%,var(--menu-backdrop-glow),transparent 65%),radial-gradient(ellipse at 12% 85%,var(--menu-backdrop-warm),transparent 45%),url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1600'%20height='1000'%20viewBox='0%200%201600%201000'%20fill='none'%3e%3cdefs%3e%3cpattern%20id='grid'%20width='64'%20height='64'%20patternUnits='userSpaceOnUse'%3e%3cpath%20d='M64%200H0V64'%20stroke='%2391b9ad'%20stroke-opacity='.07'/%3e%3ccircle%20cx='0'%20cy='0'%20r='1.5'%20fill='%2391b9ad'%20fill-opacity='.16'/%3e%3c/pattern%3e%3cradialGradient%20id='shade'%3e%3cstop%20offset='.2'%20stop-color='%23102025'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='%230b191e'%20stop-opacity='.65'/%3e%3c/radialGradient%3e%3c/defs%3e%3cpath%20fill='%23142b30'%20d='M0%200h1600v1000H0z'/%3e%3cpath%20fill='url(%23grid)'%20d='M0%200h1600v1000H0z'/%3e%3c!--%20Abstract%20blast%20diagrams:%20artwork%20for%20the%20menu,%20independent%20of%20any%20level.%20--%3e%3cg%20stroke='%23eabd55'%20transform='translate(190%20760)'%3e%3ccircle%20r='260'%20stroke-opacity='.08'%20stroke-width='2'/%3e%3ccircle%20r='210'%20stroke-opacity='.18'%20stroke-dasharray='4%2014'/%3e%3ccircle%20r='150'%20stroke-opacity='.1'/%3e%3cpath%20d='m0-108%2022%2053%2064-28-29%2058%2071%2023-68%2017%2032%2067-66-33-28%2062-17-67-67%2026%2035-60-60-28%2066-12-30-60%2058%2029Z'%20fill='%23ffc21a'%20fill-opacity='.025'%20stroke-opacity='.28'%20stroke-width='3'%20stroke-linejoin='round'/%3e%3cpath%20d='M-290%200h45m490%200h45M0-290v45m0%20490v45'%20stroke-opacity='.3'%20stroke-width='2'/%3e%3cpath%20d='M-10%200h20M0-10v20'%20stroke-opacity='.4'%20stroke-width='2'/%3e%3c/g%3e%3cg%20stroke='%238bc4bd'%20transform='translate(1390%20220)%20rotate(-18)'%3e%3ccircle%20r='250'%20stroke-opacity='.08'%20stroke-width='2'/%3e%3ccircle%20r='180'%20stroke-opacity='.16'%20stroke-dasharray='32%2012%203%2012'/%3e%3cpath%20d='M-275%200h55m440%200h55M0-275v55m0%20440v55'%20stroke-opacity='.22'%20stroke-width='2'/%3e%3cg%20stroke-opacity='.25'%20stroke-width='3'%20stroke-linejoin='round'%3e%3cpath%20d='M-68%2017%2048-29q25-10%2049-6-13%2021-38%2031L-57%2042Z'/%3e%3cpath%20d='m-42%207-23-27%2051%2016m-29%2042%202%2036%2025-42M48-29%2059-4'/%3e%3cpath%20d='m-80%2030-42%2017m38-29-26%2010m33%2013-27%2011'%20stroke-dasharray='12%208'/%3e%3c/g%3e%3c/g%3e%3cg%20stroke='%238bc4bd'%20stroke-opacity='.13'%20stroke-width='2'%3e%3cpath%20d='M-80%20330Q190%2090%20460%20260'%20stroke-dasharray='7%2014'/%3e%3cpath%20d='m437%20235%2023%2025-34%201'/%3e%3cpath%20d='M1200%20890q170-170%20460-115'%20stroke-dasharray='7%2014'/%3e%3cpath%20d='M72%2085h45m-45%200v45M1528%20915h-45m45%200v-45'/%3e%3c/g%3e%3cpath%20fill='url(%23shade)'%20d='M0%200h1600v1000H0z'/%3e%3c/svg%3e");background-size:cover;background-position:center;background-repeat:no-repeat;-webkit-backdrop-filter:none;backdrop-filter:none}.main-menu-card{width:min(100%,540px);padding-top:40px;padding-bottom:34px;color:var(--khaki);box-shadow:0 10px #141a248c,0 26px 50px #141a2466}.main-menu-card:before,.main-menu-card:after{display:block;left:46px;right:46px;width:auto;height:12px;border:2px solid var(--ink);border-radius:4px;background:var(--hazard)}.main-menu-card:before{top:12px;bottom:auto}.main-menu-card:after{position:static;grid-column:1 / -1;margin:20px 6px -16px}.menu-kicker{display:inline-block;padding:4px 12px;border:2px solid var(--ink);border-radius:6px;background:var(--ink);color:var(--yellow);letter-spacing:2px}.menu-logo{display:flex;align-items:flex-end;justify-content:center;height:92px;margin:12px auto -6px}.menu-logo-blob{width:104px;height:104px;margin-bottom:-18px;object-fit:contain;filter:drop-shadow(0 4px 0 rgba(20,26,36,.35));animation:menu-blob-hop 1.1s ease-in-out infinite alternate}.menu-logo-blob-blue{transform:scaleX(-1);filter:hue-rotate(215deg) saturate(1.15) drop-shadow(0 4px 0 rgba(20,26,36,.35));animation-name:menu-blob-hop-flipped;animation-delay:-.55s}@keyframes menu-blob-hop{0%{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-7px) rotate(4deg)}}@keyframes menu-blob-hop-flipped{0%{transform:scaleX(-1) translateY(0) rotate(-3deg)}to{transform:scaleX(-1) translateY(-7px) rotate(4deg)}}.menu-logo-burst{width:58px;height:58px;margin:0 -14px 12px;background:radial-gradient(circle,#fff 0 22%,var(--yellow) 24% 58%,#ff8a2a 60%);clip-path:polygon(50% 0,61% 27%,88% 12%,76% 39%,100% 50%,76% 61%,88% 88%,61% 73%,50% 100%,39% 73%,12% 88%,24% 61%,0 50%,24% 39%,12% 12%,39% 27%);animation:menu-burst .7s ease-in-out infinite alternate}@keyframes menu-burst{0%{transform:scale(.82) rotate(-8deg)}to{transform:scale(1.12) rotate(10deg)}}.main-menu-card h1{color:var(--yellow);font-family:var(--display);font-size:clamp(58px,15vw,96px);font-weight:400;letter-spacing:2px;line-height:1;-webkit-text-stroke:10px var(--ink);paint-order:stroke fill;text-shadow:0 7px 0 var(--ink);transform:rotate(-3deg)}.main-menu-card h1 span{color:var(--red);font-size:1em}.menu-tagline{margin:14px 0 16px;color:var(--khaki);font:400 15px var(--display);letter-spacing:4px;text-shadow:0 2px 0 var(--ink)}.menu-versus{justify-content:center;gap:0;padding:0;background:none;border:0}.menu-player{flex:1 1 0;justify-content:center;padding:9px 10px;border:3px solid var(--ink);color:#fff;font:400 15px var(--display);letter-spacing:1px;text-shadow:0 2px 0 rgba(20,26,36,.5);box-shadow:inset 0 3px #ffffff4d,inset 0 -4px #141a2440}.menu-player strong{font-weight:400}.menu-player-red{border-radius:10px 0 0 10px;background:var(--red);color:#fff}.menu-player-blue{border-radius:0 10px 10px 0;background:var(--blue);color:#fff}.menu-versus-mark{z-index:1;margin:0 -12px;padding:8px;border:3px solid var(--ink);border-radius:8px;background:var(--yellow);color:var(--ink);font:400 15px var(--display);box-shadow:0 3px 0 var(--ink);transform:rotate(-6deg)}.menu-level-label,.menu-team-size-label{color:var(--yellow);font:400 14px var(--display);letter-spacing:2px}.level-picker{width:100%;gap:9px}.team-size-picker{width:min(100%,300px);gap:9px}.level-option,.team-size-option{color:var(--ink);box-shadow:0 4px #141a2499;margin-bottom:4px;transition:transform .08s ease,filter .15s ease}.level-option{min-height:54px}.level-option strong{font:400 16px var(--display);letter-spacing:.5px}.level-option small{color:var(--ink-soft);font-size:10px;font-weight:700}.team-size-option{font:400 20px var(--display)}.spawn-mode-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:min(100%,360px)}.spawn-mode-option{display:grid;gap:2px;min-height:54px;padding:7px 9px}.spawn-mode-option strong{font:400 14px var(--display)}.spawn-mode-option small{color:var(--ink-soft);font-size:10px;font-weight:700}.level-option:hover,.level-option:focus-visible,.team-size-option:hover,.team-size-option:focus-visible{filter:brightness(1.1);transform:translateY(-2px);outline:none}.level-option.selected,.team-size-option.selected{border-image-source:var(--plate-yellow);background:none;box-shadow:0 1px #141a2499;transform:translateY(3px)}.level-option.selected small{color:var(--ink)}.menu-level-summary,.menu-team-size-summary{color:var(--khaki-soft);font-size:11px}.custom-level-picker{width:100%;color:var(--khaki-soft)}.custom-level-picker select,.online-code-entry input,.online-message-composer textarea{border:3px solid var(--ink);border-radius:8px;background:#141a24;color:var(--khaki);box-shadow:inset 0 3px #00000073}.custom-level-picker select{min-height:36px}.menu-start-btn{min-height:66px;border-image-source:var(--plate-red);border-image-width:20px;border-radius:14px;color:#fff;font:400 24px var(--display);letter-spacing:1.5px;text-shadow:0 3px 0 rgba(20,26,36,.6);box-shadow:0 7px #141a2499;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}.menu-start-btn:hover{filter:brightness(1.08);box-shadow:0 9px #141a2499;transform:translateY(-2px)}.menu-start-btn:active{transform:translateY(5px);box-shadow:0 2px #141a2499}.menu-start-icon{font-size:28px}.menu-online-btn{min-height:56px;margin-top:14px;border-image-source:var(--plate-yellow);background:none;color:var(--ink);font-size:20px;text-shadow:none;box-shadow:0 7px #141a2499}.menu-editor-link{display:inline-block;margin:16px 3px 0;padding:6px 12px;border:2px solid var(--ink);border-radius:7px;background:linear-gradient(180deg,#dbe3ea,#a9b6c2);color:var(--ink);letter-spacing:.8px;box-shadow:0 2px 0 var(--ink)}.menu-editor-link:hover,.menu-editor-link:focus-visible{background:var(--yellow);color:var(--ink);text-decoration:none}.menu-hint{color:var(--khaki-soft);font-weight:600}.menu-controls{color:var(--khaki);font-weight:600}.menu-controls kbd,.instructions-body kbd{padding:2px 6px;border:2px solid var(--ink);border-radius:5px;background:linear-gradient(180deg,#eef2f5,#b9c4ce);color:var(--ink);box-shadow:0 2px 0 var(--ink);font:700 10px Fredoka,sans-serif}#top-hud{background:none}.player-card{max-width:290px;box-shadow:var(--drop)}.player-card.active-turn,.p1-card.active-turn,.p2-card.active-turn{border-image-source:var(--plate-yellow)}.p1-card.active-turn{box-shadow:var(--drop),0 0 0 4px var(--red)}.p2-card.active-turn{box-shadow:var(--drop),0 0 0 4px var(--blue)}.player-avatar{overflow:hidden;border:3px solid var(--ink);border-radius:9px}.p1-avatar{background:#ffc9c6;border-color:var(--ink)}.p2-avatar{background:#c4e1ff;border-color:var(--ink)}.avatar-icon{width:135%;height:135%;object-fit:contain;transform:translateY(6%)}.p2-avatar .avatar-icon{filter:hue-rotate(215deg) saturate(1.15);transform:translateY(6%) scaleX(-1)}.player-name{font-family:var(--display);font-size:13px;font-weight:400;text-shadow:none;white-space:nowrap}.p1-card .player-name{color:#b3202a}.p2-card .player-name{color:#0f5fb8}.player-score{color:var(--ink-soft);font-weight:700;white-space:nowrap}.hp-bar-container{height:16px;background:var(--ink);border:2px solid var(--ink);border-radius:5px}.hp-bar{border-radius:3px;box-shadow:inset 0 3px #ffffff59}.p1-hp-bar{background:var(--red)}.p2-hp-bar{background:var(--blue)}.hp-bar.danger{background:#ff2d2d!important}.hp-text{font:400 11px var(--display);letter-spacing:.5px;text-shadow:0 1px 0 var(--ink),1px 0 0 var(--ink),-1px 0 0 var(--ink),0 -1px 0 var(--ink)}.turn-badge{padding:6px 16px;font:400 15px var(--display);white-space:nowrap;box-shadow:0 4px #141a2473}.wind-indicator,.level-indicator{border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 12px stretch;border-radius:7px;background:none;color:var(--ink);font-weight:700;white-space:nowrap;box-shadow:0 3px #141a2499}.wind-arrow,.wind-val{color:var(--ink)}.turn-banner{top:132px;z-index:115;padding:14px 30px;box-shadow:0 8px #141a2480;transform:translate(-50%) translateY(-30px) rotate(-5deg) scale(.7)}.turn-banner.show{transform:translate(-50%) translateY(0) rotate(-1.5deg) scale(1)}.turn-banner h2{font:400 24px var(--display);letter-spacing:.5px;text-shadow:none}.turn-banner p{color:var(--ink-soft);font-weight:700}.power-hud{padding:10px 18px}.power-label{color:var(--ink);font:400 12px var(--display)}.power-meter-outer{height:20px;background:var(--ink);border:2px solid var(--ink);border-radius:5px}.power-meter-inner{border-radius:3px;background:linear-gradient(90deg,var(--green) 0%,var(--yellow) 55%,var(--red) 100%);box-shadow:inset 0 4px #ffffff59}.power-val{color:var(--ink);font:400 16px var(--display)}.touch-controls{background:linear-gradient(180deg,#344b25,#1e2e19);border-top:2px solid var(--ink)}.control-cluster{padding:13px;box-shadow:var(--drop)}.cluster-label{color:var(--yellow);font:400 12px var(--display);text-shadow:0 1px 0 var(--ink)}.movement-status-header{color:var(--khaki-soft)}.movement-status-header strong{color:var(--khaki)}.movement-meter{height:10px;border:2px solid var(--ink);border-radius:4px;background:var(--ink)}.movement-meter-fill{border-radius:2px;background:var(--green)}.movement-meter-fill.warning{background:var(--yellow)}.movement-meter-fill.empty{background:var(--red)}.btn{color:var(--ink);box-shadow:0 4px #141a2499;margin-bottom:4px}.btn:active,.btn.pressed{filter:brightness(.86);transform:translateY(3px);box-shadow:0 1px #141a2499}.btn .btn-sub{opacity:1}.btn-reset-movement{border-image-width:12px;border-radius:7px;color:var(--ink);margin-bottom:2px}.btn-reset-movement span{color:var(--ink)}.btn-jump,.btn-aim,.weapon-picker-btn{border-image-source:var(--plate-yellow);background:none}.btn-jump .icon,.btn-aim .icon,.btn-ladder .icon{color:var(--ink)}.btn-ladder-drop{background:none}.gameboy-direction-btn,.gameboy-action-btn{color:var(--ink)}.gameboy-movement-row .gameboy-action-btn,.jump-controls-panel .gameboy-action-btn{border-radius:12px}.gameboy-action-btn .gameboy-action-letter{border:0;background:var(--ink);color:var(--yellow);box-shadow:inset 0 -2px #00000059}.btn-fire,.btn-tnt,.teleport-confirm,.artillery-controls .artillery-confirm{border-image-source:var(--plate-red);background:none;color:#fff;box-shadow:0 4px #141a2499}.btn-fire{padding:0 10px}.btn-fire .fire-text{min-width:0}.btn-fire .fire-text strong{display:block;color:#fff;font-family:var(--display);font-size:clamp(11px,.95vw,13px);font-weight:400;letter-spacing:0;white-space:nowrap;text-shadow:0 2px 0 rgba(20,26,36,.55)}.replay-playback-actions .replay-playback-btn{font-family:var(--display);font-weight:400;line-height:1.2;border-image-width:14px;transition:filter .12s ease,transform 80ms ease,box-shadow 80ms ease}#btn-replay-pause{border-image-source:var(--plate-yellow);color:var(--ink)}#btn-replay-skip{border-image-source:var(--plate-gunmetal);color:var(--khaki);text-shadow:0 2px 0 rgba(20,26,36,.55)}.replay-button-icon{filter:drop-shadow(0 1px 0 rgba(255,255,255,.2))}#btn-replay-skip .replay-button-icon{color:var(--yellow)}@media(hover:hover){.replay-playback-btn:hover{filter:brightness(1.12)}.replay-playback-btn:active{filter:brightness(.86)}}.replay-playback-btn:focus-visible{outline:3px solid var(--khaki);outline-offset:3px}.weapon-actions{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.btn-fire.charging{border-image-source:var(--plate-yellow);background:none;color:var(--ink);box-shadow:0 4px #141a2499,0 0 0 5px #ffc21a8c}.btn-fire.charging .fire-text strong{color:var(--ink);text-shadow:none}.guided-steer-btn,.cluster-split-btn{border-image-source:var(--plate-gunmetal);background:none;color:var(--khaki);box-shadow:0 4px #141a2499}.guided-steer-btn.pressed,.guided-steer-btn:active{background:none;transform:translateY(3px)}.cluster-split-btn{flex-direction:row}.cluster-split-text small{color:var(--khaki-soft)}.right-cluster{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:10px}.weapon-module-toolbar{grid-column:1;grid-row:1}.weapon-module-toolbar .cluster-label{display:none}.weapon-controls-host{grid-column:2;grid-row:1;min-width:0}.weapon-header{min-width:0}.weapon-header .cluster-label{white-space:nowrap}.weapon-hint{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weapon-empty-state{align-items:flex-start;min-height:0;text-align:left}.weapon-actions>.weapon-fire-row:first-child{grid-column:1 / -1}.teleport-controls{grid-column:1 / -1;flex-flow:row wrap;align-items:stretch}.teleport-controls .teleport-status{flex:1 1 150px;display:flex;align-items:center;justify-content:center}.teleport-controls .teleport-actions{flex:1 1 190px}@media(min-width:601px){.weapon-controls-host{min-width:min(290px,38vw)}}.weapon-picker-btn{border-radius:12px;border-image-width:16px;box-shadow:0 4px #141a2499}.weapon-picker-icon{filter:drop-shadow(0 2px 0 rgba(20,26,36,.35))}.weapon-picker-name{color:var(--ink)}.weapon-hint,.weapon-empty-state{color:var(--khaki-soft);font-weight:600}.weapon-empty-state strong{color:var(--yellow);font:400 12px var(--display);text-shadow:0 1px 0 var(--ink)}.teleport-status,.teleport-controls .teleport-status,.artillery-controls .teleport-status{border:2px dashed var(--khaki);border-radius:7px;background:#141a2473;color:var(--khaki)}.teleport-btn{color:var(--ink);box-shadow:0 4px #141a2499;margin-bottom:4px}.teleport-cancel{background:none;color:var(--ink)}.teleport-btn.teleport-confirm:disabled{border-image-source:var(--plate-steel);color:var(--ink-soft);filter:none;opacity:.7}.btn-util{background:none}.btn-camera-mode.is-free{border-image-source:var(--plate-yellow);background:none;color:var(--ink);box-shadow:0 4px #141a2499}body:has(.weapon-menu:not([hidden])) .camera-overlay-btn,body:has(.weapon-menu:not([hidden])) .turn-banner{visibility:hidden}body:has(.weapon-menu:not([hidden])) .turn-banner{transition:none}.weapon-menu{justify-content:center;background:#141a2499;box-shadow:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.weapon-menu-heading,.weapon-option-list{width:min(820px,100%)}.weapon-menu-heading{margin-bottom:-8px;padding:14px 20px;box-shadow:0 4px #141a2480}.weapon-menu-heading strong{color:var(--yellow);font:400 24px var(--display)}.weapon-menu-heading span{color:var(--khaki-soft);font-weight:600}.weapon-menu-close{border:3px solid var(--ink);border-radius:9px;color:#fff;background:var(--red);box-shadow:0 3px 0 var(--ink),inset 0 3px #ffffff4d}.weapon-option-list{flex:0 1 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:max-content;align-content:start;gap:12px;padding:22px 22px 24px;box-shadow:0 8px #141a2480;scrollbar-color:var(--ink) transparent}.weapon-option{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;min-height:118px;padding:12px 8px 10px;color:var(--ink);box-shadow:0 4px #141a2499;margin-bottom:4px;text-align:center;transition:transform .08s ease,box-shadow .08s ease}.weapon-option:hover,.weapon-option:focus-visible{border-image-source:var(--plate-yellow);background:none;transform:translateY(-3px) rotate(-1.5deg);box-shadow:0 7px #141a2499}.weapon-option:active{transform:translateY(3px);box-shadow:0 1px #141a2499}.weapon-option-icon{font-size:36px;filter:drop-shadow(0 3px 0 rgba(20,26,36,.3))}.weapon-option small{color:var(--ink);font:400 clamp(12px,3.75vw,15px) var(--display);letter-spacing:.3px;-webkit-hyphens:auto;hyphens:auto}.weapon-option>*{flex-shrink:0;max-width:100%;overflow-wrap:anywhere}.weapon-option-description{color:var(--ink-soft);font-size:10px;font-weight:700}.modal{background:#141a2499;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{max-height:calc(100dvh - 24px);overflow-y:auto;padding:30px 30px 28px;box-shadow:0 10px #141a248c,0 26px 50px #141a2466;color:var(--ink)}.modal-content h1,.modal-content h2{color:var(--ink);font-family:var(--display);font-weight:400;letter-spacing:.5px}.modal-content h1{font-size:30px}.modal-content p{color:var(--ink-soft);font-weight:600}.victory-crown{font-size:64px;filter:drop-shadow(0 4px 0 rgba(20,26,36,.35))}.stats-summary{padding:14px 18px;box-shadow:none}.stat-item{color:var(--khaki);font-weight:600}.stat-val{color:var(--yellow);font:400 16px var(--display)}.instructions-body{color:var(--ink);font-weight:500}.modal-btn{color:var(--ink);font:400 17px var(--display);letter-spacing:.5px;box-shadow:0 4px #141a2499;margin-bottom:4px}.modal-btn:active{transform:translateY(3px);box-shadow:0 1px #141a2499}.modal-btn.btn-primary{border-image-source:var(--plate-yellow);background:none;color:var(--ink);box-shadow:0 4px #141a2499}.modal-btn.btn-secondary{border-image-source:var(--plate-gunmetal);background:none;color:var(--khaki)}.online-room-label,.online-message-composer label{color:var(--ink-soft)}.online-code-entry input{font-family:var(--display);font-weight:400;color:var(--yellow)}.online-code-entry input:focus,.online-message-composer textarea:focus{border-color:var(--yellow)}.online-room-code{color:var(--yellow);font-family:var(--display);font-weight:400;line-height:1.1;-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink)}.online-player-list span{border:2px solid var(--ink);border-radius:7px;background:#141a2433;color:var(--ink-soft)}.online-player-list span.connected{color:var(--ink);border-color:var(--ink);background:#bfe6a8}.online-error{color:#a3121c!important;font-weight:700}.online-turn-overlay{background:#141a2480}.online-turn-overlay.is-handoff{background:#141a24;-webkit-backdrop-filter:none;backdrop-filter:none}.online-turn-card{max-height:calc(100dvh - 24px);overflow-y:auto;box-shadow:0 8px #141a2480}.online-turn-card>span{color:#0f5fb8}.online-turn-card h2{color:var(--ink);font:400 26px var(--display)}.online-turn-card p{color:var(--ink-soft);font-weight:600}.online-taunt{border:2px dashed var(--ink);border-radius:7px;background:#ffc21a80;color:var(--ink)!important}.online-message-count{color:var(--ink-soft);white-space:nowrap}.game-controls-locked #touch-controls{opacity:.6;filter:grayscale(.6)}@media(min-width:601px){.turn-banner{width:max-content;max-width:calc(100vw - 24px)}}@media(min-width:601px)and (max-width:900px){.turn-badge{padding:6px 10px;font-size:12px}}@media(max-width:600px){.main-menu-card{border-image-width:24px;padding-top:34px;padding-bottom:30px}.main-menu-card:before,.main-menu-card:after{left:36px;right:36px;height:10px}.main-menu-card:before{top:10px}.main-menu-card:after{margin:18px 4px -14px}.menu-logo{height:74px}.menu-logo-blob{width:84px;height:84px;margin-bottom:-14px}.menu-logo-burst{width:46px;height:46px;margin-bottom:10px}.menu-tagline{font-size:13px;letter-spacing:2px;margin:12px 0 14px}.menu-player{font-size:13px}.modal-btn{font-size:15px}.player-card{border-image-width:12px}.player-name{font-size:10px}#collision-debug-toggle{top:104px}.player-avatar{border-width:2px}.hp-bar-container{height:14px}.turn-badge{font-size:9px;padding:5px 8px;border-image-width:9px;letter-spacing:0}.turn-banner{top:calc(96px + env(safe-area-inset-top));padding:10px 16px}.turn-banner h2{font-size:14px}.weapon-menu-heading strong{font-size:18px}.control-cluster{padding:11px;border-image-width:18px}.weapon-option-list{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:9px;padding:18px 14px}.weapon-option{min-height:104px}.weapon-option-icon{font-size:30px}}@media(orientation:portrait)and (max-width:600px){.touch-controls{background:linear-gradient(180deg,#344b25,#1e2e19)}.weapon-controls-panel .weapon-controls-host{display:contents}.weapon-header,.weapon-empty-state{grid-column:2;grid-row:1}.weapon-header{flex-direction:column;align-items:flex-start;gap:3px}.weapon-header .cluster-label{font-size:15px}.weapon-hint{max-width:100%;font-size:11px;text-align:left;white-space:normal}.weapon-actions{grid-column:2;grid-row:2;margin-top:0;gap:8px}.weapon-controls-panel .power-hud{grid-column:1 / -1;grid-row:3;margin:8px 0 0}.btn-util.weapon-picker-btn{width:58px;min-width:58px;height:58px}.weapon-actions .weapon-aim-row{gap:8px}.weapon-aim-row .btn-aim,.weapon-fire-row .btn-fire,.guided-steer-btn,.cluster-split-btn{height:60px;min-height:60px}.btn-aim .icon{font-size:22px}.btn-aim .btn-sub{font-size:11px}.btn-fire .fire-icon{font-size:28px}.btn-fire .fire-text{font-size:11px}.btn-fire .fire-text strong{font-size:16px}.guided-steer-icon{font-size:24px}.guided-steer-label{font-size:11px}.cluster-split-text{font-size:13px}.cluster-split-text small{font-size:11px}.teleport-controls{gap:8px}.teleport-controls .teleport-status{min-height:44px;font-size:13px}.teleport-controls .teleport-btn{min-height:52px;font-size:14px}.main-menu-card h1{font-size:62px;-webkit-text-stroke-width:8px}.control-tabs{border-image-width:14px;border-radius:12px;padding:6px;box-shadow:var(--drop)}.control-tab{color:var(--khaki-soft);font:400 14px var(--display)}.control-tab.active{border:2px solid var(--ink);border-radius:7px;color:var(--ink);background:var(--yellow);box-shadow:inset 0 3px #fff6}.control-tab:disabled,.control-tab.is-locked{color:#f6eed266}}.weapon-controls-panel .right-cluster{grid-template-columns:64px minmax(0,1fr);row-gap:4px}.weapon-controls-panel .weapon-module-toolbar{grid-column:1;grid-row:1 / 3}.weapon-controls-panel .weapon-controls-host{display:contents}.weapon-controls-panel .weapon-header,.weapon-controls-panel .weapon-empty-state{grid-column:2;grid-row:1}.weapon-controls-panel .weapon-header{align-items:flex-start}.weapon-controls-panel .weapon-hint{font-size:11px;white-space:normal;text-align:left}.weapon-controls-panel .weapon-actions{grid-column:2;grid-row:2;grid-template-columns:minmax(0,1fr);margin-top:0}.weapon-controls-panel .btn-util.weapon-picker-btn{width:64px;min-width:64px;height:64px}.weapon-controls-panel .weapon-fire-row .btn-fire{height:48px;min-height:48px}.weapon-controls-panel .power-hud{position:static;grid-column:1 / -1;grid-row:3;display:grid;grid-template-columns:auto minmax(0,1fr) 34px;align-items:center;gap:6px;min-width:0;width:100%;min-height:24px;margin:0;padding:4px 8px;border:0;border-image:none;background:none;box-shadow:none;transform:none;transition:none}.weapon-controls-panel .power-hud.hidden{display:none;transform:none}.weapon-controls-panel .right-cluster:has([data-weapon-action=charge-fire]) .power-hud.hidden{display:grid;opacity:1}.weapon-controls-panel .power-label,.weapon-controls-panel .power-val{color:var(--khaki);font-size:11px}.weapon-controls-panel .power-meter-outer{height:12px}.weapon-controls-panel .weapon-actions:has(.teleport-controls){grid-column:1 / -1}.weapon-controls-panel .right-cluster:has(.cluster-flight-state,.guided-rocket-flight) .weapon-header{visibility:hidden}@media(orientation:portrait)and (max-width:600px){.weapon-controls-panel .right-cluster{padding:8px 10px}.touch-controls{padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.control-tabs{padding:4px}.control-tab{min-height:40px}}@media(orientation:landscape)and (max-height:500px){.touch-controls{padding:4px 8px calc(6px + env(safe-area-inset-bottom))}.unit-controls-panel .left-cluster{display:grid;grid-template-columns:128px auto;align-items:center;gap:4px 8px}.unit-controls-panel .movement-status{grid-column:1;grid-row:1 / 3;min-width:0}.unit-controls-panel .move-row{grid-column:2;grid-row:1}.unit-controls-panel .btn-reset-movement{min-height:24px}}@media(orientation:landscape)and (max-height:500px)and (min-width:640px){.main-menu{padding:8px}.main-menu-card{border-image-width:22px}.main-menu-card:after{margin:10px 4px -10px;height:8px}.turn-banner{top:84px;padding:8px 18px}.turn-banner h2{font-size:16px}.modal-content{padding:18px 22px 16px}.modal-content h1{font-size:22px}.modal-content h2{font-size:18px;margin-bottom:8px}.modal-content p{margin-bottom:10px}.victory-crown{font-size:36px}.online-room-code{font-size:40px}.instructions-body{max-height:46vh}}@media(max-height:500px){.control-cluster{padding:7px 9px;border-image-width:14px;box-shadow:0 3px #141a2480}.btn{border-image-width:10px;box-shadow:0 3px #141a2499;margin-bottom:3px}}@media(prefers-reduced-motion:reduce){.menu-logo-blob,.menu-logo-burst{animation:none}}.main-menu{overflow-y:auto;overscroll-behavior:contain;align-items:safe center;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}.main-menu .hidden{display:none!important}.main-menu{transition:opacity .2s ease}.main-menu.hidden{transition:opacity .2s ease,visibility 0s linear .2s}.main-menu-card{display:flex;flex-direction:column;flex-shrink:0;gap:16px;width:min(100%,620px);padding:38px 30px 30px;text-align:left;animation:menu-card-in .25s ease-out}.main-menu-card.menu-welcome{width:min(100%,520px)}.main-menu-card :is(button,a,input,select):focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.main-menu-card :is(h2,h3):focus{outline:none}.main-menu-card input{user-select:text;-webkit-user-select:text}.menu-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.menu-hero{display:flex;flex:0 0 auto;align-items:center;gap:10px;min-width:0}.menu-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.main-menu-card:not(.menu-welcome) :is(.menu-kicker,.menu-tagline){display:none}.main-menu-card:not(.menu-welcome) .menu-logo{height:40px;margin:0}.main-menu-card:not(.menu-welcome) .menu-logo-blob{width:46px;height:46px;margin-bottom:-6px;animation:none}.main-menu-card:not(.menu-welcome) .menu-logo-burst{width:24px;height:24px;margin:0 -6px 6px;animation:none}.main-menu-card:not(.menu-welcome) h1{font-size:34px;letter-spacing:1px;-webkit-text-stroke-width:5px;text-shadow:0 3px 0 var(--ink);transform:rotate(-2deg)}.menu-welcome .menu-topbar{justify-content:center}.menu-welcome .menu-hero{flex-direction:column;gap:0;text-align:center}.menu-welcome .menu-logo{height:84px}.menu-welcome .menu-logo-blob{width:96px;height:96px;margin-bottom:-16px}.menu-welcome h1{font-size:clamp(54px,14vw,80px)}.menu-profile-chip{display:inline-flex;align-items:center;gap:8px;flex:0 1 auto;min-width:0;min-height:44px;padding:5px 14px 5px 6px;border:2px solid var(--ink);border-radius:999px;background:#141a248c;color:var(--khaki);font:600 15px Fredoka,sans-serif;cursor:pointer;transition:background .15s ease,border-color .15s ease}.menu-profile-chip:hover{background:#141a24cc;border-color:var(--yellow)}.menu-nav-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:5px 13px;border:2px solid var(--ink);border-radius:999px;background:#141a248c;color:var(--yellow);font:600 14px Fredoka,sans-serif;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .08s ease}.menu-nav-btn:hover{background:#141a24cc;border-color:var(--yellow)}.menu-nav-btn:active{transform:translateY(2px)}.menu-nav-btn:disabled{opacity:.65;cursor:wait}.menu-profile-icon{flex:0 0 auto;width:30px;height:30px;border:2px solid var(--ink);border-radius:50%;background:#ffc9c6 url(/assets/body-C09s1IZD.webp) center 40% / 125% no-repeat}#menu-profile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-page{display:flex;flex-direction:column;gap:12px;width:100%;min-width:0}.menu-page:not(.hidden){animation:menu-page-in .18s ease-out}@keyframes menu-page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.menu-page h2{margin:0;color:var(--yellow);font:400 21px var(--display);letter-spacing:1px;text-shadow:0 2px 0 var(--ink)}.menu-page p{margin:0;line-height:1.45}.menu-page .menu-start-btn{margin:0;min-height:56px;font-size:20px}.menu-start-btn:disabled{filter:grayscale(.5) brightness(.85);cursor:wait;transform:none}.menu-back{align-self:flex-start;min-height:44px;margin:0;padding:8px 14px;border:2px solid var(--ink);border-radius:9px;background:linear-gradient(180deg,#dbe3ea,#a9b6c2);box-shadow:0 3px 0 var(--ink);color:var(--ink);font:600 15px Fredoka,sans-serif;cursor:pointer}.menu-back:hover{filter:brightness(1.08)}.menu-back:active{box-shadow:0 1px 0 var(--ink)}.menu-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.menu-icon-btn{flex:0 0 auto;width:40px;height:40px;border:2px solid var(--ink);border-radius:9px;background:#141a248c;color:var(--khaki);font:22px/1 Fredoka,sans-serif;cursor:pointer}.menu-icon-btn:hover{border-color:var(--yellow);color:#fff}.menu-icon-btn:disabled{opacity:.55;cursor:wait}.menu-hint-line{color:var(--khaki-soft);font-size:14px}.menu-error{color:#ffc2bc;font-size:14px;font-weight:600}:is(.menu-hint-line,.menu-error):empty{display:none}.menu-notice{padding:10px 12px;border-left:5px solid var(--yellow);border-radius:8px;background:#141c2099;font-weight:600}.menu-quiet-btn{flex:0 0 auto;min-height:44px;padding:8px 14px;border:2px solid var(--ink);border-radius:9px;background:linear-gradient(180deg,#dbe3ea,#a9b6c2);color:var(--ink);font:400 14px var(--display);letter-spacing:.5px;box-shadow:0 3px 0 var(--ink);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}.menu-quiet-btn:hover{filter:brightness(1.08)}.menu-quiet-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.menu-match-overview{display:grid;gap:14px}.menu-match-overview:empty{display:none}.menu-public h3{margin:0 0 6px;color:var(--khaki-soft);font:400 12px var(--display);letter-spacing:1.5px}.menu-match-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.menu-match button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:66px;padding:10px 16px 10px 19px;border:3px solid transparent;border-image:var(--plate-gunmetal) var(--plate-slice) fill / 19px stretch;border-radius:12px;background:none;color:var(--khaki);font:inherit;text-align:left;box-shadow:0 4px #141a248c;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}.menu-match button:hover{filter:brightness(1.1);transform:translateY(-1px)}.menu-match button:active{transform:translateY(2px);box-shadow:0 1px #141a248c}.menu-match button:disabled{opacity:.6;cursor:wait;transform:none}.menu-match.is-turn button{border-image-source:var(--plate-olive)}.menu-match.is-lobby button{border-image-source:var(--plate-gunmetal)}.menu-match-main{display:grid;gap:2px;min-width:0}.menu-match-main strong{overflow:hidden;color:#fff;font-size:16px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.menu-match-turn{color:var(--khaki);font-size:13px;font-weight:600}.is-turn .menu-match-turn{color:var(--yellow)}.is-finished.is-won .menu-match-turn{color:#a9e88c}.is-finished.is-lost .menu-match-turn{color:#ffb0a8}.menu-match-main small{color:var(--khaki-soft);font-size:12px;line-height:1.35;overflow-wrap:anywhere}.menu-match-action{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 12px stretch;border-radius:8px;background:none;box-shadow:0 3px #141a248c;color:var(--ink);font:400 13px var(--display);letter-spacing:.5px;white-space:nowrap}.is-turn .menu-match-action{border-image-source:var(--plate-yellow);color:var(--ink)}.menu-skeletons{display:grid;gap:8px}.menu-skeletons span{display:block;height:66px;border:2px solid rgba(20,26,36,.5);border-radius:12px;background:linear-gradient(90deg,#141c2066,#141c20b3,#141c2066) 0 0 / 200% 100%;animation:menu-skeleton 1.2s linear infinite}@keyframes menu-skeleton{to{background-position:-200% 0}}.menu-empty{display:flex;align-items:center;gap:14px;padding:16px;border:2px dashed rgba(246,238,210,.45);border-radius:12px;background:#141c2059}.menu-empty img{flex:0 0 auto;width:60px;height:60px;object-fit:contain;filter:drop-shadow(0 3px 0 rgba(20,26,36,.35))}.menu-empty strong{font:400 17px var(--display);letter-spacing:.5px}.menu-empty p{margin-top:4px;color:var(--khaki-soft);font-size:14px}.menu-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:2px solid var(--ink);border-radius:10px;background:#5c2327;color:#ffe4df;font-size:14px;font-weight:600}.menu-banner button{flex:0 0 auto;min-height:40px;padding:6px 12px;border:2px solid var(--ink);border-radius:8px;background:var(--khaki);color:var(--ink);font:600 13px Fredoka,sans-serif;cursor:pointer}.menu-home-actions{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:12px;margin-top:4px}.menu-secondary-btn,#btn-home-create.is-secondary{border-image-source:var(--plate-gunmetal);color:var(--khaki)}.menu-footer-links{display:flex;justify-content:center;gap:8px 22px;flex-wrap:wrap}.menu-footer-links button{min-height:44px;padding:0 6px;border:0;background:none;color:var(--khaki-soft);font:600 14px Fredoka,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.menu-footer-links button:hover{color:#fff}.menu-mode{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.menu-mode-option{display:grid;place-content:center;gap:2px;min-height:64px;margin-bottom:4px;padding:6px 8px;border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 14px stretch;border-radius:9px;background:none;color:var(--ink);text-align:center;box-shadow:0 4px #141a2499;cursor:pointer;transition:transform .08s ease,filter .15s ease}.menu-mode-option strong{font:400 17px var(--display);letter-spacing:.5px}.menu-mode-option small{color:var(--ink-soft);font-size:12px;font-weight:700}.menu-mode-option:hover{filter:brightness(1.08)}.menu-mode-option.selected{border-image-source:var(--plate-yellow);box-shadow:0 1px #141a2499;transform:translateY(3px)}.menu-mode-option.selected small{color:var(--ink)}.menu-setup-summary,.menu-check{display:flex;align-items:center;gap:12px;padding:10px 14px;border:2px solid var(--ink);border-radius:12px;background:#141c2099}.menu-setup-summary{justify-content:space-between}.menu-setup-summary>div{display:grid;gap:2px;min-width:0}.menu-setup-summary-label{color:var(--khaki-soft);font:400 11px var(--display);letter-spacing:1.5px}.menu-setup-summary strong{font-size:16px;font-weight:600;overflow-wrap:anywhere}.menu-setup-details{display:grid;gap:10px}.menu-setup-details .menu-team-size{margin:0;padding:14px}.menu-check{cursor:pointer}.menu-check input{flex:0 0 auto;width:24px;height:24px;accent-color:var(--yellow);cursor:pointer}.menu-check span{display:grid;gap:2px}.menu-check strong{font-size:16px;font-weight:600}.menu-check small{color:var(--khaki-soft);font-size:13px}#guest-form{display:grid;gap:10px}#guest-form label,.menu-code-form label{color:var(--khaki-soft);font-size:14px;font-weight:600}#guest-name{width:100%;min-height:52px;padding:10px 14px;border:3px solid var(--ink);border-radius:10px;background:#141a24;color:#fff;font:600 18px Fredoka,sans-serif;box-shadow:inset 0 3px #00000073}#guest-name:focus{border-color:var(--yellow)}.guest-storage-hint{color:var(--khaki-soft);font-size:13px}#menu-loading{align-items:center;padding:8px 0;text-align:center}.menu-code-form{display:grid;gap:6px}.menu-code-form .online-code-entry{gap:10px}.menu-code-form input{min-height:56px;padding:0 0 0 9px;font-size:28px}.menu-code-form .menu-start-btn{width:auto;padding:0 20px;font-size:18px}.menu-public{display:grid;gap:8px;margin-top:6px}.menu-public h3{margin:0}.menu-lobby-code{display:grid;justify-items:center;gap:6px;padding:16px 12px 14px;border:2px solid var(--ink);border-radius:14px;background:#141c2099;text-align:center}.menu-lobby-code .online-room-label{color:var(--khaki-soft);font:400 12px var(--display);letter-spacing:2px}.menu-lobby-code .online-room-code{padding-left:12px;font-size:56px;user-select:text;-webkit-user-select:text}.menu-lobby-meta{color:var(--khaki-soft);font-size:13px;font-weight:600}#menu-lobby .online-player-list{margin:0}#menu-lobby .online-player-list span{padding:11px 8px;border:2px dashed rgba(246,238,210,.5);background:#141c2066;color:var(--khaki-soft);font-size:14px;text-align:center;overflow-wrap:anywhere}#menu-lobby .online-player-list span.connected{border:2px solid var(--ink);background:#bfe6a8;color:var(--ink)}.menu-lobby-status{font-weight:600;text-align:center}.menu-lobby-invite{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}#lobby-note{text-align:center}.menu-danger-link{align-self:center;min-height:44px;padding:0 8px;border:0;background:none;color:#ffc2bc;font:600 14px Fredoka,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.menu-danger-link:hover{color:#fff}.menu-extra-link{display:block;padding:14px 16px;border:2px solid var(--ink);border-radius:12px;background:#141c2099;color:var(--khaki);text-decoration:none}.menu-extra-link strong{font:400 16px var(--display);letter-spacing:.5px}.menu-extra-link span{display:block;margin-top:4px;color:var(--khaki-soft);font-size:13px}.menu-extra-link:hover{border-color:var(--yellow);color:#fff}#menu-help-content{font-size:14px;line-height:1.6}#menu-help-content ul{padding-left:20px}#menu-help-content li{margin-bottom:12px}.center-hud{flex-direction:row;align-items:stretch;align-self:center;justify-content:center;gap:6px}.game-menu-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 12px stretch;border-radius:7px;background:none;color:var(--ink);font:700 12px Fredoka,sans-serif;white-space:nowrap;box-shadow:0 3px #141a2499;cursor:pointer;pointer-events:auto;touch-action:manipulation}.game-menu-btn svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.game-menu-btn:hover{border-image-source:var(--plate-yellow)}.game-menu-btn:active{transform:translateY(2px);box-shadow:none}.game-menu-btn:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.turn-badge:not(.is-replay),.level-indicator{display:none}body:has(.weapon-menu:not([hidden])) .game-menu-btn{visibility:hidden}@media(orientation:portrait)and (max-width:600px){.game-menu-btn{min-height:30px;padding:4px 12px}}.online-turn-menu,.modal-btn.btn-tertiary{min-height:44px;border:0;border-image:none;background:none;box-shadow:none;color:var(--ink);font:600 14px Fredoka,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.online-turn-menu{display:block;margin:12px auto 0;padding:8px 14px;border:2px solid var(--ink);border-radius:9px;background:linear-gradient(180deg,#dbe3ea,#a9b6c2);box-shadow:0 3px 0 var(--ink);text-decoration:none}.confirm-dialog{width:min(420px,calc(100vw - 32px));margin:auto;padding:28px 24px 22px;border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 30px stretch;border-radius:20px;background:none;color:var(--ink);text-align:center;box-shadow:0 10px #141a248c,0 26px 50px #141a2466}.confirm-dialog[open]{animation:menu-page-in .16s ease-out}.confirm-dialog::backdrop{background:#141a249e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog h2{margin-bottom:10px;font:400 22px var(--display);letter-spacing:.5px}.confirm-dialog p{margin-bottom:18px;color:var(--ink-soft);font-weight:600;line-height:1.45}.confirm-dialog .modal-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}@media(max-width:600px){.main-menu-card{gap:14px;padding:34px 18px 26px}.main-menu-card:not(.menu-welcome) .menu-logo-blob-blue,.main-menu-card:not(.menu-welcome) .menu-logo-burst{display:none}.main-menu-card:not(.menu-welcome) .menu-logo-blob{width:40px;height:40px}.main-menu-card:not(.menu-welcome) h1{font-size:26px;-webkit-text-stroke-width:4px}.menu-topbar{gap:16px}.menu-hero{gap:6px}.menu-page .menu-start-btn{font-size:17px;letter-spacing:.5px}.menu-match button{gap:8px;padding-right:13px}.menu-match-action{padding:8px 12px;font-size:12px}.menu-lobby-code .online-room-code{font-size:48px}}@media(orientation:landscape)and (max-height:500px){.main-menu-card{gap:10px;padding:28px 22px 20px}.menu-welcome .menu-logo{height:54px}.menu-welcome .menu-logo-blob{width:64px;height:64px;margin-bottom:-10px}.menu-welcome h1{font-size:46px}.menu-welcome :is(.menu-kicker,.menu-tagline){display:none}}@media(prefers-reduced-motion:reduce){.main-menu,.main-menu.hidden{transition:none}.main-menu-card,.menu-page:not(.hidden),.confirm-dialog[open],.menu-skeletons span{animation:none}.main-menu-card :is(button,a),.menu-quiet-btn{transition:none}}#menu-setup .menu-level{min-width:0;margin:0;padding:12px;align-items:stretch}.level-carousel{display:flex;align-items:center;gap:6px;min-width:0}#menu-setup .level-picker{position:relative;display:flex;flex:1;min-width:0;width:100%;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:6px 2px 12px;scrollbar-width:thin;scrollbar-color:var(--khaki-soft) transparent}#menu-setup .level-option{position:relative;flex:0 0 230px;min-width:0;padding:0 0 12px;gap:6px;border:2px solid var(--ink);border-radius:9px;border-image:none;background:#273437;color:var(--khaki-soft);scroll-snap-align:start;box-shadow:0 3px 0 var(--ink);overflow:hidden;transform:none}#menu-setup .level-option.selected{border-color:#f7c65a;background:#38413a;color:#fff4d2;box-shadow:0 0 0 2px var(--ink)}#menu-setup .level-option.selected:after{content:"✓";position:absolute;right:7px;top:7px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#f7c65a;color:var(--ink);font-weight:900}#menu-setup .level-option:focus-visible{outline:3px solid #fff4d2;outline-offset:-5px}#menu-setup .level-option strong{font-size:18px;padding:0 10px;overflow-wrap:anywhere}#menu-setup .level-option small{padding:0 10px;color:inherit;font-size:11px}.level-preview{display:grid;place-items:center;width:100%;aspect-ratio:7 / 4;background:#527988;color:#fff4dc;font-size:12px}.level-preview img{display:block;width:100%;height:100%;object-fit:contain}.level-scroll-button{flex:0 0 30px;min-height:48px;padding:0;border:2px solid var(--ink);border-radius:7px;background:#f7c65a;color:var(--ink);font-size:28px;cursor:pointer}.level-scroll-button:disabled{opacity:.3;cursor:default}.level-scroll-button:focus-visible{outline:2px solid #fff4d2;outline-offset:2px}#custom-level-status:empty{display:none}@media(max-width:600px){#menu-setup .menu-level{padding:8px}#menu-setup .level-option{flex-basis:min(200px,70vw)}.level-carousel{gap:3px}.level-scroll-button{flex-basis:24px}}@media(prefers-reduced-motion:reduce){#menu-setup .level-option{transition:none}}.online-chat summary{border:2px solid var(--ink);border-radius:7px;background:linear-gradient(180deg,#dbe3ea,#a9b6c2);color:var(--ink);font:700 12px Fredoka,sans-serif;box-shadow:0 2px 0 var(--ink);touch-action:manipulation}.online-chat summary:hover,.online-chat[open] summary{background:var(--yellow)}.online-chat summary:active{transform:translateY(2px);box-shadow:none}.online-chat summary:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}#online-chat-count{border-radius:6px;background:var(--ink);color:var(--khaki)}.online-chat-panel{border:3px solid transparent;border-image:var(--plate-olive) var(--plate-slice) fill / 32px stretch;border-radius:0;background:#3d4c37;color:var(--khaki);box-shadow:none;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));gap:12px}.online-chat-heading{border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 24px stretch;border-radius:12px;margin:0;padding:14px 20px;color:var(--ink);box-shadow:var(--drop)}.online-chat-heading h2{font:400 clamp(20px,3vw,28px) var(--display);letter-spacing:.5px}.online-chat-messages{border:2px solid var(--ink);border-radius:10px;padding:18px;background:#141c20a6;box-shadow:inset 0 3px 8px #0003;scrollbar-color:var(--khaki-soft) transparent}.online-chat-messages:empty{display:grid;place-items:center}.online-chat-messages:empty:before{max-width:280px;color:var(--khaki-soft);text-align:center;font-size:15px;line-height:1.6}.chat-message{width:fit-content;max-width:min(680px,90%);margin:0 0 12px;padding:12px 16px;border:2px solid var(--ink);border-left:5px solid var(--blue);border-radius:10px;background:var(--khaki);color:var(--ink);box-shadow:0 3px #141a2480;font-size:15px;line-height:1.5;user-select:text;-webkit-user-select:text}.chat-message strong{display:block;margin-bottom:3px;color:#0f5fb8;font:400 13px var(--display)}.chat-message.is-own{margin-left:auto;border-left-color:var(--yellow);background:#fff1bb}.chat-message.is-own strong{color:#71500a}#online-chat-form{border:3px solid transparent;border-image:var(--plate-steel) var(--plate-slice) fill / 24px stretch;border-radius:12px;padding:16px 20px;gap:12px;box-shadow:var(--drop)}#online-chat-input{border:2px solid var(--ink);border-radius:9px;background:var(--khaki);color:var(--ink);font-size:16px;padding:12px;box-shadow:inset 0 2px #1d24301f}#online-chat-input::placeholder{color:var(--ink-soft)}#online-chat-input:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}#online-chat-form button,#btn-online-chat-close,#btn-online-menu{min-height:44px;border:3px solid transparent;border-image:var(--plate-gunmetal) var(--plate-slice) fill / 14px stretch;border-radius:9px;padding:10px 16px;background:none;color:var(--khaki);font:400 14px var(--display);letter-spacing:.3px;box-shadow:var(--drop)}#online-chat-form button{min-height:52px;border-image-source:var(--plate-yellow);color:var(--ink);font-size:17px}#online-chat-form button:disabled{opacity:.5;cursor:default}#online-chat-form button:not(:disabled):hover,#btn-online-chat-close:hover,#btn-online-menu:hover{filter:brightness(1.12)}#online-chat-form button:not(:disabled):active,#btn-online-chat-close:active,#btn-online-menu:active{transform:translateY(3px);box-shadow:none}#online-chat-form button:focus-visible,#btn-online-chat-close:focus-visible,#btn-online-menu:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.online-chat-session{padding:0 4px 4px}.online-chat-session small{color:var(--khaki);font:400 13px var(--display);letter-spacing:.5px}@media(max-width:600px),(max-height:500px){.online-chat-panel{border-image-width:22px;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));gap:8px}.online-chat-heading{padding:8px 12px;border-image-width:18px}.online-chat-heading h2{font-size:19px}.online-chat-messages{padding:12px}.chat-message{max-width:95%;font-size:14px;padding:10px 12px}#online-chat-form{padding:12px;gap:8px;border-image-width:18px}#online-chat-form button,#btn-online-chat-close,#btn-online-menu{padding:8px 10px;font-size:12px}#online-chat-input{padding:8px}}body:has(.weapon-menu:not([hidden])) .online-chat{visibility:hidden}@media(max-width:600px){.online-chat summary{min-height:34px;padding:4px 7px}.online-chat summary .chat-chevron{display:none}}.menu-match.is-active button{min-height:84px;padding-block:9px}.menu-match.is-active .menu-match-turn{display:flex;align-items:center;gap:6px}.menu-match.is-active .menu-match-turn:before{content:"";width:7px;height:7px;flex:0 0 auto;border-radius:1px;background:currentColor;box-shadow:0 1px 0 var(--ink)}.menu-match.is-waiting .menu-match-turn{color:#b8dbff}.menu-match.is-active .menu-match-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-match.is-waiting .menu-match-action{border-image-source:var(--plate-steel);color:var(--ink)}.menu-replay-hint{margin:8px 2px 0;color:var(--khaki-soft);font-size:12px;line-height:1.35}#menu-matches-status{margin:-6px 0 0;color:var(--khaki-soft);font-size:13px}.menu-home-actions{position:sticky;bottom:0;z-index:2;padding:10px 0 8px;background:linear-gradient(180deg,transparent,#607b31 12px,#607b31)}@media(max-width:600px){#menu-home{gap:12px}.menu-match-main strong{font-size:15px}.menu-match.is-active button{min-height:82px}.menu-match-action{min-width:70px;text-align:center}}.main-menu-card:has(#menu-home:not(.hidden)){overflow:visible}#btn-matches-refresh{width:44px;height:44px;border:3px solid transparent;border-image:var(--plate-gunmetal) var(--plate-slice) fill / 12px stretch;background:none;color:var(--khaki);box-shadow:0 3px #141a248c}.turn-damage-summary{padding:12px 8px;margin:4px 0 8px;color:var(--ink);font:400 17px var(--display);border-block:2px solid rgba(20,26,36,.16)}.turn-review-tools{display:grid;gap:6px;margin-bottom:8px}.turn-review-tools .modal-btn{font-size:15px;min-height:44px}.turn-message-dialog{width:min(390px,calc(100vw - 28px));max-height:calc(100dvh - 24px);padding:24px;margin:auto;border:3px solid var(--ink);border-radius:16px;background:#f4e7bf;color:var(--ink);box-shadow:0 8px #141a2480}.turn-message-dialog::backdrop{background:#141a24bf}.turn-message-dialog h2{margin:0 0 12px;font:400 24px var(--display)}.turn-message-dialog textarea{width:100%;min-height:100px;font-size:16px}.turn-message-actions{display:flex;gap:8px;margin-top:8px}.turn-message-actions .modal-btn{flex:1;min-width:0;font-size:16px}@media(max-height:480px){.online-turn-card,.turn-message-dialog{padding:14px 20px}.turn-damage-summary{padding:8px 4px}}#online-turn-message.hidden{display:none}.bot-options{display:grid;gap:6px;margin:12px 0}.participant-options{gap:10px 12px}.participant-options label{display:grid;justify-content:stretch;gap:6px}.bot-options>span,.participant-options label{color:var(--khaki-soft);font:700 11px Fredoka,sans-serif;letter-spacing:1.6px;text-transform:uppercase}.bot-options,.participant-options label{position:relative}.bot-options select,.participant-options select{appearance:none;-webkit-appearance:none;width:100%;min-height:44px;padding:8px 40px 8px 14px;border:3px solid transparent;border-image:var(--plate-gunmetal) var(--plate-slice) fill / 14px stretch;border-radius:9px;background:none;box-shadow:var(--drop);color:var(--khaki);font:700 15px Fredoka,sans-serif;letter-spacing:0;text-transform:none;cursor:pointer}.bot-options select option,.participant-options select option{background-color:#202c34;color:#fff}.bot-options select:focus-visible,.participant-options select:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.bot-options:after,.participant-options label:after{content:"";position:absolute;right:16px;bottom:22px;transform:translateY(50%);border:6px solid transparent;border-top:7px solid var(--yellow);border-bottom:0;pointer-events:none}.computer-status{position:fixed;top:calc(env(safe-area-inset-top,0px) + 104px);left:50%;transform:translate(-50%);z-index:20;max-width:calc(100vw - 28px);padding:8px 14px;border-radius:8px;background:#152731ed;color:#b9dcff;font:700 13px Fredoka,sans-serif;text-align:center;pointer-events:none}@media(max-width:420px){.menu-mode{gap:5px}.menu-mode-option strong{font-size:14px}.menu-mode-option small{font-size:10px}}.setup-progress ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0;margin:0 0 24px;list-style:none}.setup-step-button{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;padding:8px;border:2px solid transparent;border-radius:9px;background:#141c2059;color:var(--khaki-soft);font:600 13px Fredoka,sans-serif;text-align:left;cursor:pointer}.setup-step-number{display:grid;place-items:center;flex:0 0 26px;height:26px;border:2px solid currentColor;border-radius:50%;font-size:14px}.setup-step-button[aria-current=step]{border-color:var(--yellow);background:#293332;color:var(--yellow)}.setup-step-button.is-complete{color:#fff}.setup-step-button:disabled{opacity:.55;cursor:default}.setup-panel{display:grid;gap:12px}.setup-step-kicker{margin:0;color:var(--khaki-soft);font-size:11px;font-weight:700;letter-spacing:1.6px}.setup-panel h3{margin:0;color:#fff;font:400 23px var(--display)}.setup-panel>.menu-hint-line{margin:0}.setup-panel .menu-mode-option{min-height:100px}.setup-panel .menu-level,.setup-panel .bot-options{margin:0}.setup-panel .menu-setup-summary{margin-top:4px}#setup-summary-mode{color:var(--khaki-soft);font-weight:600}.setup-actions{display:grid;margin-top:8px}.setup-step-button:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(max-width:520px){.setup-progress ol{gap:5px;margin-bottom:20px}.setup-step-button{gap:5px;padding:6px 4px;font-size:11px}.setup-step-number{flex-basis:22px;height:22px;font-size:12px}.setup-panel .menu-mode{grid-template-columns:1fr;gap:8px}.setup-panel .menu-mode-option{grid-template-columns:115px 1fr;align-items:center;place-content:initial;min-height:70px;padding:10px 14px;text-align:left;gap:12px}.setup-panel .menu-mode-option strong{font-size:17px}.setup-panel .menu-mode-option small{font-size:12px}.setup-panel h3{font-size:21px}}.setup-panel .menu-setup-summary>div{width:100%;grid-template-columns:1fr auto;gap:4px 12px}#setup-summary{grid-column:1 / -1}#setup-summary-mode{text-align:right;font-size:13px}@media(orientation:landscape){#app:has(.main-menu.hidden){--hud-edge: clamp(8px, 1.4vw, 20px);--hud-target: 52px}#app:has(.main-menu.hidden) #touch-controls{position:absolute;inset:auto 0 0;width:100%;padding:0 max(var(--hud-edge),env(safe-area-inset-right)) max(var(--hud-edge),env(safe-area-inset-bottom)) max(var(--hud-edge),env(safe-area-inset-left));display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:none;border-top:0;pointer-events:none}#app:has(.main-menu.hidden) :is(.unit-controls-panel,.weapon-controls-panel){display:block;width:auto;flex:0 1 auto}#app:has(.main-menu.hidden) .control-tabs{display:none}#app:has(.main-menu.hidden) .control-cluster{border:3px solid transparent;border-image:var(--plate-gunmetal) var(--plate-slice) fill / 24px stretch;border-radius:16px;padding:12px 14px;background:none;box-shadow:var(--drop)}#app:has(.main-menu.hidden) .unit-controls-panel .left-cluster{display:flex;flex-direction:column;gap:8px;width:230px}#app:has(.main-menu.hidden) .movement-status{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:auto 5px;gap:4px 10px;min-width:0;align-items:center}#app:has(.main-menu.hidden) .movement-status-header{grid-column:1;font-size:9px;letter-spacing:.8px}#app:has(.main-menu.hidden) .movement-status-header strong{font-size:11px}#app:has(.main-menu.hidden) .movement-meter{grid-column:1;height:5px}#app:has(.main-menu.hidden) .btn-reset-movement{grid-column:2;grid-row:1 / 3;width:44px;min-height:44px;height:44px;padding:0;margin:0;font-size:0;border-radius:9px}#app:has(.main-menu.hidden) .btn-reset-movement span{font-size:25px}#app:has(.main-menu.hidden) .gameboy-movement-row{gap:16px;width:100%;align-items:center}#app:has(.main-menu.hidden) .gameboy-control-label{display:none}#app:has(.main-menu.hidden) .gameboy-direction-row{gap:6px}#app:has(.main-menu.hidden) .gameboy-direction-stack{flex:1;align-items:stretch}#app:has(.main-menu.hidden) .gameboy-direction-row .gameboy-direction-btn{flex:1;width:auto}#app:has(.main-menu.hidden) .gameboy-direction-btn{width:var(--hud-target);height:var(--hud-target);min-height:44px;margin:0}#app:has(.main-menu.hidden) .gameboy-movement-row .gameboy-action-btn{width:calc(var(--hud-target) + 6px);height:calc(var(--hud-target) + 6px);margin:0}#app:has(.main-menu.hidden) .gameboy-direction-btn .btn-sub{font-size:10px}#app:has(.main-menu.hidden) .gameboy-action-btn .btn-sub{font-size:9px}#app:has(.main-menu.hidden) .left-cluster:has(.ladder-controls:not([hidden])) .gameboy-movement-row{display:none}#app:has(.main-menu.hidden) .jump-controls-panel{margin:0 -12px 0 auto;pointer-events:auto}#app:has(.main-menu.hidden) .jump-controls-panel:has(#btn-jump[hidden]){display:none}#app:has(.main-menu.hidden) .jump-controls-panel .gameboy-action-btn{width:calc(var(--hud-target) + 22px);height:calc(var(--hud-target) + 22px);margin:0;padding:6px;gap:3px}#app:has(.main-menu.hidden) .jump-controls-panel .gameboy-action-btn .btn-sub{font-size:10px}#app:has(.main-menu.hidden) .ladder-controls{gap:6px}#app:has(.main-menu.hidden) .ladder-controls .btn{height:48px;min-height:44px;flex:1;width:auto;margin:0}#app:has(.main-menu.hidden) .weapon-controls-panel .right-cluster{display:grid;grid-template-columns:64px minmax(0,1fr);width:270px;gap:6px 10px}#app:has(.main-menu.hidden) .weapon-controls-host{min-width:0}#app:has(.main-menu.hidden) .weapon-header{gap:0}#app:has(.main-menu.hidden) .weapon-header .cluster-label{font-size:13px}#app:has(.main-menu.hidden) .weapon-hint{font-size:10px;line-height:1.25}#app:has(.main-menu.hidden) .weapon-controls-panel .weapon-fire-row .btn-fire{height:var(--hud-target);min-height:44px;margin:0}#app:has(.main-menu.hidden) .weapon-controls-panel .power-hud{min-height:18px;padding:0;gap:8px}#app:has(.main-menu.hidden) .weapon-controls-panel .power-meter-outer{height:8px}#app:has(.main-menu.hidden) .weapon-controls-panel :is(.power-label,.power-val){font-size:10px}#app:has(.main-menu.hidden) .weapon-empty-state{display:none}#app:has(.main-menu.hidden) .weapon-controls-panel .right-cluster:has(.weapon-empty-state){display:flex;width:max-content;padding:0;border:0;background:none;box-shadow:none}#app:has(.main-menu.hidden) .teleport-controls{flex-direction:column;gap:5px}#app:has(.main-menu.hidden) .teleport-controls :is(.teleport-status,.teleport-actions){flex:0 0 auto}#app:has(.main-menu.hidden) .teleport-controls .teleport-status{min-height:24px;padding:2px;font-size:11px}#app:has(.main-menu.hidden) :is(.teleport-btn,.guided-steer-btn,.cluster-split-btn){min-height:44px;margin:0}#app:has(.main-menu.hidden) #top-hud,#app:has(.main-menu.hidden) #top-hud.multi-team{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto;gap:5px 12px;align-items:start;padding:max(8px,env(safe-area-inset-top)) max(var(--hud-edge),env(safe-area-inset-right)) 8px max(var(--hud-edge),env(safe-area-inset-left));background:linear-gradient(#101b2380,#101b2300)}#app:has(.main-menu.hidden) #top-hud .player-card{width:min(100%,240px);min-width:0;max-width:240px;padding:6px 8px;gap:7px;border-width:1px;border-radius:10px;transform:none;box-shadow:0 3px 12px #0003}#app:has(.main-menu.hidden) #top-hud #p1-card{grid-column:1;grid-row:1}#app:has(.main-menu.hidden) #top-hud #p2-card{grid-column:3;grid-row:1;justify-self:end}#app:has(.main-menu.hidden) #top-hud #p3-card{grid-column:1;grid-row:2}#app:has(.main-menu.hidden) #top-hud #p4-card{grid-column:3;grid-row:2;justify-self:end}#app:has(.main-menu.hidden) #top-hud .center-hud{grid-column:2;grid-row:1;flex-wrap:wrap;max-width:270px;gap:5px}#app:has(.main-menu.hidden) #top-hud.multi-team .center-hud{grid-row:1 / 3;align-self:start}#app:has(#top-hud.multi-team):has(.main-menu.hidden) :is(.turn-banner,.computer-status,.camera-overlay-btn){top:calc(104px + env(safe-area-inset-top))}#app:has(.main-menu.hidden) .player-avatar{width:28px;height:28px}#app:has(.main-menu.hidden) .player-info{min-width:0}#app:has(.main-menu.hidden) .player-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#app:has(.main-menu.hidden) .player-score{display:none}#app:has(.main-menu.hidden) .hp-bar-container{height:12px}#app:has(.main-menu.hidden) .hp-text{font-size:9px}#app:has(.main-menu.hidden) :is(.game-menu-btn,.online-chat summary){min-height:44px}#app:has(.main-menu.hidden) .turn-badge{display:block;order:5;flex-basis:100%;border-image-width:10px;padding:3px 10px;color:var(--yellow);box-shadow:0 3px #141a2473;font-size:11px;line-height:1.4;text-align:center;letter-spacing:.4px}#app:has(.main-menu.hidden) .wind-indicator{min-height:36px;padding:3px 8px;align-self:center}#app:has(.main-menu.hidden) .camera-overlay-btn{top:calc(84px + env(safe-area-inset-top));left:max(var(--hud-edge),env(safe-area-inset-left));min-height:44px}#app:has(.main-menu.hidden) .turn-banner{top:calc(90px + env(safe-area-inset-top));max-width:min(380px,60vw);padding:8px 16px;pointer-events:none}#app:has(.main-menu.hidden) .turn-banner h2{font-size:20px}#app:has(.main-menu.hidden) .turn-banner p{font-size:11px}#app:has(.main-menu.hidden) .computer-status{top:calc(90px + env(safe-area-inset-top))}#app:has(.main-menu.hidden) #collision-debug-toggle{top:calc(140px + env(safe-area-inset-top))}body.replay-viewing #app:has(.main-menu.hidden) #touch-controls>:is(.unit-controls-panel,.jump-controls-panel,.weapon-controls-panel){display:none}body.replay-viewing #app:has(.main-menu.hidden) #touch-controls{justify-content:center}#app:has(.main-menu.hidden) .replay-controls-panel{width:min(520px,80vw)}#app:has(.main-menu.hidden) .btn:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}}@media(orientation:landscape)and (max-height:500px){#app:has(.main-menu.hidden){--hud-target: 48px;--hud-edge: 8px}#app:has(.main-menu.hidden) .control-cluster{padding:8px;border-radius:13px}#app:has(.main-menu.hidden) .unit-controls-panel .left-cluster{width:206px;gap:5px}#app:has(.main-menu.hidden) .weapon-controls-panel .right-cluster{width:244px}#app:has(.main-menu.hidden) .gameboy-action-letter{width:24px;height:24px;font-size:18px}#app:has(.main-menu.hidden) #top-hud .player-card{padding:4px 7px}#app:has(.main-menu.hidden) #top-hud.multi-team .player-card{padding:3px 7px}#app:has(.main-menu.hidden) .turn-banner{top:calc(78px + env(safe-area-inset-top))}}@media(orientation:landscape)and (max-width:700px){#app:has(.main-menu.hidden) #top-hud{gap:4px 8px}#app:has(.main-menu.hidden) #top-hud .center-hud{max-width:200px}#app:has(.main-menu.hidden) .player-avatar{display:none}#app:has(.main-menu.hidden) .player-name{font-size:10px}#app:has(.main-menu.hidden) .wind-label{display:none}#app:has(.main-menu.hidden) .game-menu-btn{padding:4px 8px}#app:has(.main-menu.hidden) .jump-controls-panel{position:absolute;right:max(var(--hud-edge),env(safe-area-inset-right));bottom:calc(100% + 6px);margin:0}#app:has(.main-menu.hidden) .jump-controls-panel .gameboy-action-btn{width:calc(var(--hud-target) + 10px);height:calc(var(--hud-target) + 10px)}}
