html,body,#root{width:100%;height:100%;margin:0}body{background:#111;overflow:hidden;overscroll-behavior:none;height:100svh;-webkit-tap-highlight-color:transparent;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;user-select:none;-webkit-user-select:none}.game-shell{position:relative;width:100%;height:100svh;overflow:hidden;background:#111}.game-canvas,.hud-overlay,.joystick-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.game-canvas--pixelized,.canvas-overlay--pixelized{image-rendering:crisp-edges;image-rendering:pixelated}.hud-overlay{pointer-events:none;z-index:2}.joystick-overlay{pointer-events:none;z-index:3}.minimap-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#000000b8;touch-action:none}.minimap-modal-viewport{position:absolute;touch-action:none;cursor:grab}.minimap-modal-viewport:active{cursor:grabbing}.minimap-modal-dismiss{position:absolute;z-index:11;display:flex;align-items:center;justify-content:center;background:#282828e6;border:1.5px solid rgba(255,170,0,.7);border-radius:50%;color:#ffaa00e6;font-size:18px;line-height:1;cursor:pointer;padding:0;touch-action:manipulation}.minimap-modal-dismiss:active{background:#fa03}.fullscreen-btn{position:absolute;top:10px;right:10px;z-index:5;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#00000073;border:1px solid rgb(255 255 255 / 22%);border-radius:6px;color:#ffffffb3;cursor:pointer;padding:0;transition:background .15s,border-color .15s,color .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.fullscreen-btn:hover,.fullscreen-btn:focus-visible{background:#000000b3;border-color:#ffffff8c;color:#fff;outline:none}.fullscreen-btn:active{background:#ffffff1f}.screen-back-btn{position:absolute;top:10px;left:10px;z-index:20;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#00000073;border:1px solid rgb(255 255 255 / 22%);border-radius:6px;color:#ffffffbf;cursor:pointer;padding:0;font-family:inherit;font-size:30px;line-height:1;transition:background .15s,border-color .15s,color .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.screen-back-btn:hover,.screen-back-btn:focus-visible{background:#000000b3;border-color:#ffffff8c;color:#fff;outline:none}.screen-back-btn:active{background:#ffffff1f}.connection-status{position:absolute;top:10px;right:54px;z-index:5;min-height:34px;max-width:calc(100vw - 72px);box-sizing:border-box;display:flex;align-items:center;gap:8px;padding:0 10px;background:#00000073;border:1px solid rgb(255 255 255 / 18%);border-radius:6px;color:#ffffffb8;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1;white-space:nowrap;pointer-events:none}.connection-status span{min-width:0;overflow:hidden;text-overflow:ellipsis}.connection-status-age{white-space:pre}.join-error-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;box-sizing:border-box;color:#e8e8d0}.join-error-screen h2{margin:0;font-size:clamp(1.1rem,3.5vw,1.6rem);color:#c0503a}.join-error-message{margin:0;font-size:.95rem;color:#a08878;max-width:360px;text-align:center}.name-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#e8e8d0;padding:24px;box-sizing:border-box}.name-screen h1{margin:0;font-size:clamp(1.2rem,4vw,2rem);color:#c8b44a;letter-spacing:.04em}.name-screen-card{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;background:#ffffff0d;border:1px solid rgba(200,180,74,.25);border-radius:6px;padding:20px 24px;box-sizing:border-box}.name-screen-label{font-size:.85rem;color:#a0a080;letter-spacing:.05em;text-transform:uppercase}.name-screen-input{background:#0006;border:1px solid rgba(200,180,74,.4);border-radius:4px;color:#e8e8d0;font-size:1rem;font-family:inherit;padding:8px 12px;outline:none;transition:border-color .15s}.name-screen-input:focus{border-color:#c8b44a}.name-screen-input::placeholder{color:#505040}.name-screen-btn{margin-top:4px;padding:10px 0;font-size:1rem;font-weight:600;letter-spacing:.06em;background:#c8b44a;color:#1a1a0e;border:none;border-radius:4px;cursor:pointer;transition:background .15s}.name-screen-btn:hover{background:#e0cc60}.lobby-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#e8e8d0;padding:24px;box-sizing:border-box}.lobby-screen--team-roster{justify-content:flex-start;overflow-y:auto}.lobby-screen h1{margin:0;font-size:clamp(1.2rem,4vw,2rem);color:#c8b44a;letter-spacing:.04em}.lobby-screen h2{margin:0 0 8px;font-size:1rem;color:#a0a080;font-weight:500}.lobby-room-hint{margin:0;font-size:.85rem;color:#707060}.lobby-players{width:100%;max-width:360px;background:#ffffff0d;border:1px solid rgba(200,180,74,.25);border-radius:6px;padding:16px 20px;box-sizing:border-box}.lobby-players ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lobby-player{font-size:.95rem;padding:4px 0;color:#d0d0b8}.lobby-player.me{color:#c8b44a;font-weight:600}.lobby-player.disconnected{color:#606050;text-decoration:line-through}.lobby-team-roster{width:100%;max-width:760px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lobby-team-column{min-width:0;background:#ffffff0d;border:1px solid rgba(200,180,74,.25);border-radius:6px;padding:14px;box-sizing:border-box}.lobby-team-header,.lobby-ai-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.lobby-team-header{color:#c8b44a;font-weight:700;font-size:.92rem;margin-bottom:10px}.lobby-team-list{list-style:none;margin:0 0 12px;padding:4px;display:flex;flex-direction:column;gap:6px;min-height:72px;max-height:min(34svh,260px);overflow-y:auto;overscroll-behavior:contain;background:#0000002e;border:1px solid rgba(200,180,74,.12);border-radius:5px}.lobby-team-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;color:#d0d0b8;font-size:.86rem}.lobby-team-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-team-list li.me{color:#c8b44a;font-weight:600}.lobby-team-move-btn,.lobby-ai-stepper button{border:1px solid rgba(200,180,74,.35);background:#c8b44a1f;color:#e8e8d0;border-radius:4px;cursor:pointer}.lobby-team-move-btn{padding:4px 8px;font-size:.78rem}.lobby-team-move-btn:disabled,.lobby-ai-stepper button:disabled{opacity:.35;cursor:not-allowed}.lobby-ai-row{color:#a0a080;font-size:.84rem}.lobby-ai-stepper{display:grid;grid-template-columns:28px 32px 28px;align-items:center;text-align:center;gap:4px}.lobby-ai-stepper button{width:28px;height:28px;padding:0;font-size:1rem;line-height:1}.lobby-start-btn{margin-top:8px;padding:10px 32px;font-size:1rem;font-weight:600;letter-spacing:.06em;background:#c8b44a;color:#1a1a0e;border:none;border-radius:4px;cursor:pointer;transition:background .15s}.lobby-start-btn:hover:not(:disabled){background:#e0cc60}.lobby-start-btn:disabled{background:#504830;color:#808060;cursor:not-allowed}.lobby-start-hint{margin:0;font-size:.78rem;color:#505040}.lobby-change-name-btn{background:none;border:none;color:#606050;font-size:.78rem;cursor:pointer;text-decoration:underline;padding:0}.lobby-change-name-btn:hover{color:#a0a080}@media (max-width: 720px){.lobby-team-roster{grid-template-columns:1fr;max-width:360px}}@keyframes pickup-toast-in{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.pickup-toast{position:absolute;top:25%;pointer-events:none;z-index:6;background:#000000b8;border:1px solid rgb(255 255 255 / 25%);border-radius:20px;padding:6px 18px;color:#fff;font-size:clamp(12px,2vw,15px);font-weight:600;white-space:nowrap;animation:pickup-toast-in .2s ease-out both;transition:opacity .4s ease}.pickup-toast--fade{opacity:0}.announcement-toast{position:absolute;top:15%;pointer-events:none;z-index:6;background:#000000b8;border:1px solid rgb(255 255 255 / 20%);border-radius:20px;padding:5px 16px;color:#c8dcff;font-size:clamp(11px,1.8vw,14px);font-weight:500;white-space:nowrap;animation:pickup-toast-in .2s ease-out both;transition:opacity .4s ease}.announcement-toast--fade{opacity:0}.overlay-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:#000000b8;color:#f0f0f0;z-index:10}.overlay-title{margin:0;font-size:clamp(1.4rem,5vw,2rem);font-weight:700;text-shadow:0 2px 8px #000}.overlay-time{margin:0;font-size:clamp(1rem,4vw,1.4rem);font-variant-numeric:tabular-nums}.overlay-buttons{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;padding:0 16px}.difficulty-panel{gap:18px;padding:24px;box-sizing:border-box;overflow-y:auto}.sp-setup-header{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;max-width:520px}.sp-setup-layout{display:grid;grid-template-columns:minmax(0,520px);gap:14px;justify-content:center;width:min(100%,980px)}.sp-setup-controls{display:flex;flex-direction:column;align-items:center;gap:18px;min-width:0}.difficulty-section{display:flex;flex-direction:column;align-items:center;gap:10px}.difficulty-section-title{font-size:clamp(1.2rem,4vw,1.75rem)}.seed-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:0 16px}.seed-label{color:#ffffffbf;font-size:.9rem;font-weight:700}.game-mode-description{margin:0;width:min(100%,520px);box-sizing:border-box;padding:16px 18px;color:#d8d0a8;background:linear-gradient(135deg,#c8b44a21,#4eff910d),#00000075;border:1px solid rgba(200,180,74,.34);border-radius:8px;box-shadow:inset 0 1px #ffffff14,0 12px 34px #00000047;font-size:clamp(.9rem,2vw,1rem);font-weight:500;line-height:1.55;text-align:left}@media (orientation: landscape),(min-width: 860px){.sp-setup-layout{grid-template-columns:minmax(380px,520px) minmax(260px,360px);align-items:center}.sp-setup-layout .game-mode-description{align-self:stretch;display:flex;align-items:center;width:100%}}.seed-drums{display:flex;gap:6px;align-items:center}.seed-drum{position:relative;width:42px;height:102px;overflow:hidden;color:#f0f0f0;background:#0000007a;border:1px solid rgb(255 255 255 / 36%);border-radius:6px;cursor:ns-resize;outline:none;-webkit-user-select:none;user-select:none;touch-action:none;font-variant-numeric:tabular-nums}.seed-drum:focus{border-color:#4eff91bf;box-shadow:0 0 0 2px #4eff914d}.seed-drum-track{position:absolute;top:34px;left:0;right:0;transition:transform .1s ease}.seed-drum-item{height:34px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}.seed-drum-select{position:absolute;top:34px;left:0;right:0;height:34px;border-top:1px solid rgb(78 255 145 / 65%);border-bottom:1px solid rgb(78 255 145 / 65%);background:#4eff9114;pointer-events:none;z-index:2}.seed-drum-fade-top,.seed-drum-fade-bottom{position:absolute;left:0;right:0;height:34px;pointer-events:none;z-index:3}.seed-drum-fade-top{top:0;background:linear-gradient(to bottom,#0c120eeb,#0c120e00)}.seed-drum-fade-bottom{bottom:0;background:linear-gradient(to top,#0c120eeb,#0c120e00)}.seed-tool-btn{min-height:40px;padding:7px 12px;color:#f0f0f0;background:#ffffff1a;border:1px solid rgb(255 255 255 / 32%);border-radius:4px;cursor:pointer;font:inherit}.seed-tool-btn:hover,.seed-tool-btn:focus-visible{background:#fff3;outline:2px solid #fff}.pixelized-toggle{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:7px 12px;box-sizing:border-box;color:#f0f0f0c7;background:#ffffff12;border:1px solid rgb(255 255 255 / 22%);border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:700}.pixelized-toggle input{width:16px;height:16px;margin:0;accent-color:#4eff91}.pixelized-toggle:has(input:checked){color:#4eff91;background:#4eff911f;border-color:#4eff917f}.pixelized-toggle:focus-within{outline:2px solid #4eff91;outline-offset:2px}.mode-selector{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0;padding:0 16px}.mode-selector-btn{padding:6px 14px;font:inherit;font-size:.85rem;color:#f0f0f099;background:#ffffff0f;border:1px solid rgb(255 255 255 / 18%);border-radius:4px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.mode-selector-btn:hover:not(:disabled){background:#ffffff24;color:#f0f0f0;border-color:#ffffff59}.mode-selector-btn:focus-visible{outline:2px solid #4eff91;outline-offset:2px}.mode-selector-btn--active{color:#4eff91;background:#4eff911f;border-color:#4eff917f}.mode-selector-btn--active:hover{background:#4eff9133}.mode-selector-btn:disabled{opacity:.38;cursor:not-allowed}.overlay-btn{padding:clamp(8px,2vw,10px) clamp(18px,5vw,28px);font-size:clamp(.9rem,3vw,1.1rem);font-family:inherit;color:#f0f0f0;background:#ffffff1f;border:1px solid rgb(255 255 255 / 40%);border-radius:4px;cursor:pointer;transition:background .15s;min-height:44px;min-width:44px}.overlay-btn:hover,.overlay-btn:focus-visible{background:#ffffff40;outline:2px solid #fff}.overlay-money-display{margin:0;font-size:clamp(1rem,3vw,1.3rem);font-weight:700;color:#4eff91;font-variant-numeric:tabular-nums}.overlay-btn--primary{background:#4eff9133;border-color:#4eff9199}.overlay-btn--primary:hover,.overlay-btn--primary:focus-visible{background:#4eff9159;outline-color:#4eff91}.overlay-btn--enter{min-width:180px;font-weight:700;letter-spacing:.03em}.overlay-btn--enter:disabled{opacity:.35;cursor:not-allowed}.respawn-countdown{position:absolute;left:50%;top:18%;z-index:9;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:12px 18px;color:#f0f0f0;background:#000000b8;border:1px solid rgb(255 255 255 / 30%);border-radius:6px;box-shadow:0 8px 24px #00000059;pointer-events:none}.respawn-countdown__label{font-size:.95rem;font-weight:700;white-space:nowrap}.respawn-countdown__value{min-width:2ch;font-size:1.8rem;font-weight:800;line-height:1;text-align:center;color:#4eff91;font-variant-numeric:tabular-nums}.shop-panel{--shop-accent: #f5c200;--shop-texture: none;justify-content:stretch;align-items:stretch;padding:0;overflow:hidden;background:#0d0d0d;border:18px solid transparent;border-image:var(--shop-texture) 64 repeat;box-sizing:border-box}.shop-texture-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--shop-texture);background-size:180px 180px;background-repeat:repeat;opacity:.055;pointer-events:none}.shop-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.8vw,14px);padding:clamp(10px,2.5vw,20px) clamp(10px,2.5vw,20px) clamp(12px,3vw,24px);overflow-y:auto;height:100%;box-sizing:border-box}.shop-header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:560px;padding-bottom:clamp(6px,1.5vw,10px);border-bottom:1px solid color-mix(in srgb,var(--shop-accent) 35%,transparent)}.shop-title{margin:0;font-size:clamp(1rem,3.5vw,1.4rem);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--shop-accent);text-shadow:0 0 12px color-mix(in srgb,var(--shop-accent) 60%,transparent),0 1px 3px #000}.shop-title-icon{display:inline-block;vertical-align:middle;margin-right:5px;margin-bottom:2px;opacity:.85}.shop-header-right{display:flex;align-items:center;gap:10px}.shop-help-btn{width:28px;height:28px;border-radius:50%;border:1px solid rgb(255 255 255 / 30%);background:#ffffff14;color:#fff9;font-size:.85rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}.shop-help-btn:hover,.shop-help-btn:focus-visible{background:#ffffff26;color:#fff;border-color:#ffffff8c;outline:none}.shop-money{display:flex;align-items:baseline;gap:2px;font-size:clamp(1.3rem,4.5vw,2rem);font-weight:800;font-variant-numeric:tabular-nums;color:#4eff91;text-shadow:0 0 14px rgb(78 255 145 / 50%),0 1px 3px #000;letter-spacing:-.01em}.shop-money-sign{font-size:.65em;font-weight:600;color:#4eff91b3;align-self:flex-start;margin-top:.15em}.shop-section-label{width:100%;max-width:560px;font-size:clamp(.6rem,1.4vw,.7rem);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--shop-accent) 80%,white);display:flex;align-items:center;gap:8px}.shop-section-label:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--shop-accent) 30%,transparent)}.shop-grid{display:grid;grid-template-columns:auto repeat(4,1fr);gap:clamp(3px,.8vw,6px);width:100%;max-width:560px;align-items:start}.shop-col-header{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:clamp(.55rem,1.3vw,.7rem);text-align:center;color:#ffffff73;padding-bottom:3px}.shop-row-label{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:clamp(.5rem,1.2vw,.65rem);color:#ffffff8c;padding-right:clamp(3px,.8vw,6px);white-space:nowrap;align-self:center}.upgrade-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:clamp(5px,1.2vw,9px) 3px;min-height:clamp(68px,11vw,86px);min-width:44px;background:#ffffff0f;border:1px solid rgb(255 255 255 / 15%);border-radius:5px;cursor:pointer;transition:background .13s,border-color .13s,box-shadow .13s;font-family:inherit;color:#f0f0f0;width:100%}.upgrade-card:hover:not(:disabled),.upgrade-card:focus-visible:not(:disabled){background:color-mix(in srgb,var(--shop-accent) 12%,transparent);border-color:color-mix(in srgb,var(--shop-accent) 70%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--shop-accent) 25%,transparent);outline:none}.upgrade-card:disabled{opacity:.35;cursor:default}.upgrade-card--maxed{border-color:color-mix(in srgb,var(--shop-accent) 35%,transparent);background:color-mix(in srgb,var(--shop-accent) 7%,transparent);opacity:.65}.upgrade-card--purchased{animation:shop-flash .45s ease-out}@keyframes shop-flash{0%{background:#4eff914d;border-color:#4eff91;box-shadow:0 0 16px #4eff917f}to{background:#ffffff0f;border-color:#ffffff26;box-shadow:none}}.upgrade-pips{display:flex;gap:3px}.upgrade-pip{width:6px;height:6px;border-radius:50%;background:#ffffff26;border:1px solid rgb(255 255 255 / 25%)}.upgrade-pip--filled{background:var(--shop-accent);border-color:var(--shop-accent);box-shadow:0 0 4px color-mix(in srgb,var(--shop-accent) 70%,transparent)}.upgrade-price{font-size:clamp(.55rem,1.3vw,.68rem);color:#4eff91;font-variant-numeric:tabular-nums;font-weight:700}.upgrade-price--cant-afford{color:#ff5050d9}.upgrade-price--maxed{color:color-mix(in srgb,var(--shop-accent) 80%,white);font-size:.58rem;letter-spacing:.04em}.flak-card{grid-column:1 / -1;flex-direction:row;min-height:clamp(48px,8vw,64px)}.flak-card-inner{display:flex;align-items:center;gap:clamp(6px,1.8vw,12px);width:100%;justify-content:center;flex-wrap:wrap}.flak-card-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.flak-card-label{font-size:clamp(.65rem,1.5vw,.82rem);font-weight:700;letter-spacing:.03em}.flak-charges{font-size:clamp(.52rem,1.1vw,.65rem);color:#4eff91}.shop-continue{margin-top:auto;align-self:center;min-width:clamp(130px,32vw,190px);background:color-mix(in srgb,var(--shop-accent) 18%,transparent);border-color:color-mix(in srgb,var(--shop-accent) 65%,transparent);color:var(--shop-accent);font-weight:700;letter-spacing:.06em;animation:deploy-pulse 2.4s ease-in-out infinite}.shop-continue:hover,.shop-continue:focus-visible{background:color-mix(in srgb,var(--shop-accent) 32%,transparent);border-color:var(--shop-accent);box-shadow:0 0 18px color-mix(in srgb,var(--shop-accent) 45%,transparent);outline:none;animation:none}@keyframes deploy-pulse{0%,to{box-shadow:0 0 6px color-mix(in srgb,var(--shop-accent) 30%,transparent)}50%{box-shadow:0 0 18px color-mix(in srgb,var(--shop-accent) 55%,transparent)}}.shop-deploy-footer{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:6px}.shop-deploy-footer--waiting{padding:10px 16px;border:1px solid color-mix(in srgb,var(--shop-accent) 40%,transparent);border-radius:6px;background:color-mix(in srgb,var(--shop-accent) 8%,transparent)}.shop-deploy-status{font-size:.85rem;color:color-mix(in srgb,var(--shop-accent) 80%,#fff);letter-spacing:.04em}.shop-deploy-countdown{font-size:1.1rem;font-weight:700;color:var(--shop-accent);letter-spacing:.06em}.ammo-shop-row{display:flex;gap:clamp(4px,1vw,8px);width:100%;max-width:560px}.ammo-shop-card{flex:1;display:flex;flex-direction:column;gap:clamp(5px,1.2vw,8px);padding:clamp(6px,1.4vw,10px) clamp(5px,1.2vw,8px);background:#ffffff0d;border:1px solid rgb(255 255 255 / 12%);border-radius:5px;transition:border-color .13s}.ammo-shop-card:has(.ammo-shop-btn--buy:not(:disabled)):hover{border-color:#ffffff38}.ammo-shop-identity{display:flex;align-items:center;gap:clamp(4px,1vw,7px)}.ammo-shop-meta{display:flex;flex-direction:column;gap:1px}.ammo-shop-name{font-size:clamp(.58rem,1.3vw,.7rem);font-weight:700;color:#ffffffbf;letter-spacing:.03em;text-transform:uppercase}.ammo-shop-count{font-size:clamp(.72rem,1.8vw,.88rem);font-variant-numeric:tabular-nums;font-weight:800;color:#f0f0f0;letter-spacing:-.01em}.ammo-shop-actions{display:flex;flex-direction:column;gap:4px}.ammo-shop-btn{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:clamp(4px,1vw,6px) clamp(5px,1.1vw,8px);border-radius:4px;border:1px solid;cursor:pointer;font-family:inherit;font-weight:700;white-space:nowrap;transition:background .12s,box-shadow .12s;width:100%;min-height:30px}.ammo-btn-label{font-size:clamp(.62rem,1.4vw,.75rem)}.ammo-shop-price{font-size:clamp(.52rem,1.2vw,.63rem);font-variant-numeric:tabular-nums;opacity:.85}.ammo-shop-btn:disabled{opacity:.28;cursor:default}.ammo-shop-btn--buy{background:#4eff911a;border-color:#4eff9159;color:#4eff91}.ammo-shop-btn--buy:hover:not(:disabled),.ammo-shop-btn--buy:focus-visible:not(:disabled){background:#4eff9138;border-color:#4eff91;box-shadow:0 0 8px #4eff914d;outline:none}.ammo-shop-btn--sell{background:#ff962817;border-color:#ff96284d;color:#f93}.ammo-shop-btn--sell:hover:not(:disabled),.ammo-shop-btn--sell:focus-visible:not(:disabled){background:#ff962833;border-color:#f93;box-shadow:0 0 8px #ff962847;outline:none}.upgrade-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#111;border:1px solid rgb(255 255 255 / 25%);border-radius:4px;padding:6px 10px;font-size:.65rem;white-space:nowrap;pointer-events:none;z-index:20;display:flex;flex-direction:column;gap:2px}.upgrade-tooltip-line--owned{color:#4eff91}.help-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000b3;z-index:20}.help-card{background:#1a1a1a;border:1px solid rgb(255 170 0 / 40%);border-radius:8px;padding:16px 20px;width:min(560px,94vw);max-height:90svh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;box-shadow:0 8px 32px #000a}.help-title{margin:0;font-size:.8rem;font-family:monospace;font-weight:700;letter-spacing:.15em;color:#fa0c;text-align:center}.help-modes{display:flex;gap:0;align-items:stretch}.help-mode{flex:1;display:flex;flex-direction:column;gap:10px;padding:0 12px}.help-mode:first-child{padding-left:0}.help-mode:last-child{padding-right:0}.help-mode-label{font-size:.7rem;font-family:monospace;font-weight:700;letter-spacing:.1em;color:#fff6;text-transform:uppercase;padding-bottom:4px;border-bottom:1px solid rgb(255 255 255 / 10%)}.help-divider{width:1px;background:#ffffff1a;margin:0 4px;align-self:stretch}.help-row{display:flex;align-items:center;gap:10px}.help-row svg{flex-shrink:0}.help-text{display:flex;flex-direction:column;gap:1px;color:#ccc;font-size:.78rem}.help-text strong{color:#fff;font-size:.82rem}.help-sub{color:#fff6;font-size:.72rem}.help-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid rgb(255 255 255 / 10%)}.help-checkbox{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#aaa;cursor:pointer}.help-checkbox input{width:16px;height:16px;cursor:pointer;accent-color:rgb(255 170 0 / 80%)}.help-dismiss{padding:6px 16px;font-size:.8rem;min-height:36px}.shop-help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}.shop-help-card{background:#1a1410;border:1px solid rgb(255 255 255 / 18%);border-radius:10px;width:min(480px,100%);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 40px #000000b3}.shop-help-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid rgb(255 255 255 / 10%);flex-shrink:0}.shop-help-title{margin:0;font-size:.95rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fffc}.shop-help-close{background:none;border:none;color:#ffffff73;font-size:1rem;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1}.shop-help-close:hover{color:#fff;background:#ffffff1a}.shop-help-body{overflow-y:auto;padding:14px 16px 16px;display:flex;flex-direction:column;gap:14px}.shop-help-section{display:flex;flex-direction:column;gap:8px}.shop-help-heading{margin:0;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ffffff59}.shop-help-ammo-list,.shop-help-upgrade-list{display:flex;flex-direction:column;gap:6px}.shop-help-ammo-row,.shop-help-upgrade-row{display:flex;align-items:flex-start;gap:10px}.shop-help-ammo-row svg,.shop-help-upgrade-row svg{flex-shrink:0;margin-top:2px}.shop-help-ammo-text,.shop-help-upgrade-text{display:flex;flex-direction:column;gap:1px;min-width:0}.shop-help-ammo-name,.shop-help-upgrade-name{font-size:.8rem;font-weight:700;color:#fffc;display:flex;align-items:center;gap:6px}.shop-help-key{font-size:.6rem;font-family:monospace;background:#ffffff1a;border:1px solid rgb(255 255 255 / 20%);border-radius:3px;padding:1px 5px;color:#ffffff8c;font-style:normal}.shop-help-ammo-desc,.shop-help-upgrade-desc{font-size:.72rem;color:#ffffff7f;line-height:1.4}.shop-help-upgrade-desc strong{color:#ffffffb3}.shop-help-tip{margin:0;font-size:.68rem;color:#ffffff4d;line-height:1.5;border-top:1px solid rgb(255 255 255 / 8%);padding-top:10px;font-style:italic}.title-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100svh;padding:0;overflow:hidden;background-color:#2a2a2a;background-image:var(--title-screen-desktop);background-position:center;background-repeat:no-repeat;background-size:contain;border:0;cursor:pointer;touch-action:manipulation}@media (orientation: portrait) and (max-width: 767px){.title-screen{background-image:var(--title-screen-portrait)}}@media (orientation: landscape) and (max-width: 932px) and (max-height: 600px){.title-screen{background-image:var(--title-screen-landscape)}}.tagline{margin:0;font-size:clamp(.75rem,2.5vw,.95rem);color:#7a7060;font-style:italic;letter-spacing:.02em;text-align:center;max-width:480px}.mode-select-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;color:#e8e8d0;padding:24px;box-sizing:border-box;overflow-y:auto}.mode-select-title{margin:0;font-size:clamp(2rem,6vw,3.5rem);color:#c8b44a;letter-spacing:.06em;text-shadow:0 2px 12px rgba(200,180,74,.4)}.mode-select-branding{display:contents}.mode-select-cards{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;width:100%;max-width:760px}.mode-card{display:flex;flex-direction:column;gap:10px;flex:1 1 280px;max-width:360px;background:#ffffff0a;border:1px solid rgba(200,180,74,.2);border-radius:8px;padding:22px 24px;box-sizing:border-box}.mode-card h2{margin:0 0 4px;font-size:1.15rem;color:#c8b44a;letter-spacing:.04em}.mode-card p{margin:0 0 6px;font-size:.9rem;color:#a0a080;line-height:1.5}@media (orientation: landscape) and (max-height: 500px){.mode-select-screen{flex-direction:row;align-items:center;justify-content:center;gap:16px;padding:12px 16px}.mode-select-branding{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;max-width:160px}.mode-select-title{font-size:clamp(1.4rem,5vh,2.2rem);text-align:right}.tagline{font-size:clamp(.6rem,1.8vh,.78rem);text-align:right;max-width:160px}.mode-select-cards{flex-wrap:nowrap;gap:10px;max-width:none;flex:1;min-width:0}.mode-card{flex:1 1 0;min-width:0;max-width:260px;gap:6px;padding:10px 12px}.mode-card h2{font-size:.9rem;margin-bottom:2px}.mode-card p{font-size:.72rem;margin-bottom:2px;line-height:1.4}.mode-field{gap:3px}.mode-field label{font-size:.65rem}.mode-input{padding:4px 8px;font-size:.82rem}.mode-lobby-url{padding:3px 6px}.mode-lobby-url-text{font-size:.65rem}.mode-card-btn{padding:7px 0;font-size:.85rem;margin-top:2px}}.mode-field{display:flex;flex-direction:column;gap:5px}.mode-field label{font-size:.78rem;color:#a0a080;letter-spacing:.05em;text-transform:uppercase}.mode-input{background:#0006;border:1px solid rgba(200,180,74,.35);border-radius:4px;color:#e8e8d0;font-size:.95rem;font-family:inherit;padding:7px 10px;outline:none;transition:border-color .15s}.mode-input:focus{border-color:#c8b44a}.mode-lobby-url{display:flex;align-items:center;gap:6px;background:#0000004d;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:5px 8px;min-width:0}.mode-lobby-url-text{flex:1;font-size:.75rem;color:#808070;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-copy-btn{flex-shrink:0;background:none;border:1px solid rgba(200,180,74,.3);border-radius:3px;color:#c8b44a;font-size:.95rem;cursor:pointer;padding:2px 6px;line-height:1.2;transition:background .12s}.mode-copy-btn:hover{background:#c8b44a26}.mode-card-btn{margin-top:4px;padding:11px 0;font-size:1rem;font-weight:600;letter-spacing:.05em;background:#ffffff1a;color:#e8e8d0;border:1px solid rgba(255,255,255,.25);border-radius:4px;cursor:pointer;transition:background .15s}.mode-card-btn:hover{background:#fff3}.mode-card-btn-mp{background:#c8b44a;color:#1a1a0e;border-color:#c8b44a}.mode-card-btn-mp:hover{background:#e0cc60;border-color:#e0cc60}.mp-lobby-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;gap:18px;color:#e8e8d0;padding:20px 24px 28px;box-sizing:border-box;overflow-y:auto}.mp-lobby-header{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;max-width:520px;position:relative}.mp-lobby-title{margin:0;font-size:clamp(1.6rem,5vw,2.6rem);color:#c8b44a;letter-spacing:.06em;text-shadow:0 2px 12px rgba(200,180,74,.35)}.mp-lobby-name-row{display:flex;align-items:center;gap:10px;width:100%;max-width:520px}.mp-lobby-label{font-size:.78rem;color:#a0a080;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.mp-lobby-input{background:#0006;border:1px solid rgba(200,180,74,.35);border-radius:4px;color:#e8e8d0;font-size:.95rem;font-family:inherit;padding:7px 10px;outline:none;transition:border-color .15s;flex:1}.mp-lobby-input:focus{border-color:#c8b44a}.mp-lobby-input::placeholder{color:#505040}.mp-lobby-section{display:flex;flex-direction:column;gap:8px;width:100%;max-width:520px}.mp-lobby-section-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid rgba(200,180,74,.2)}.mp-lobby-section-title{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a0906a}.mp-lobby-refresh{background:none;border:none;color:#707060;font-size:1.1rem;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.mp-lobby-refresh:hover{color:#c8b44a}.mp-lobby-rooms{display:flex;flex-direction:column;gap:4px;min-height:48px}.mp-lobby-empty{margin:0;font-size:.85rem;color:#505040;padding:10px 0;font-style:italic}.mp-lobby-room-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#ffffff0a;border:1px solid rgba(200,180,74,.15);border-radius:5px;transition:border-color .13s}.mp-lobby-room-row:hover{border-color:#c8b44a59}.mp-lobby-room-name{flex:1;font-size:.92rem;color:#d8d0a8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-lobby-room-players{font-size:.8rem;color:#808070;white-space:nowrap;font-variant-numeric:tabular-nums}.mp-lobby-room-phase{font-size:.72rem;color:#606050;white-space:nowrap;font-style:italic}.mp-lobby-room-seed{font-size:.72rem;color:#777058;white-space:nowrap;font-variant-numeric:tabular-nums}.mp-lobby-join-btn{padding:5px 14px;font-size:.82rem;font-weight:600;letter-spacing:.04em;background:#c8b44a;color:#1a1a0e;border:none;border-radius:4px;cursor:pointer;transition:background .13s;white-space:nowrap;flex-shrink:0}.mp-lobby-join-btn:hover:not(:disabled){background:#e0cc60}.mp-lobby-join-btn:disabled{background:#3a3420;color:#605840;cursor:not-allowed}.mp-lobby-create-form{display:flex;flex-direction:column;gap:8px;min-width:0}.mp-lobby-create-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.mp-lobby-mode-description{width:100%;font-size:.88rem}.mp-lobby-create-row{display:flex;gap:8px;align-items:stretch}.mp-lobby-room-input,.mp-lobby-seed-drums{flex:1}.mp-lobby-lock-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.18);border-radius:4px;font-size:1.15rem;padding:0 10px;cursor:pointer;transition:background .13s,border-color .13s;line-height:1;display:flex;align-items:center}.mp-lobby-lock-btn:hover{background:#ffffff1f;border-color:#ffffff59}.mp-lobby-lock-btn--locked{background:#c8b44a1f;border-color:#c8b44a80}.mp-lobby-seed-btn{padding:0 12px;color:#d8d0a8;background:#ffffff0f;border:1px solid rgba(200,180,74,.25);border-radius:4px;cursor:pointer;font:inherit;white-space:nowrap}.mp-lobby-seed-btn:hover,.mp-lobby-seed-btn:focus-visible{background:#ffffff1f;border-color:#c8b44a80;outline:none}@media (orientation: portrait){.mp-lobby-seed-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.mp-lobby-seed-row .mp-lobby-seed-drums{grid-row:1 / span 2}.mp-lobby-seed-row .mp-lobby-seed-btn{min-height:34px}}@media (orientation: landscape),(min-width: 860px){.mp-lobby-section:has(.mp-lobby-create-layout){max-width:900px}.mp-lobby-create-layout{grid-template-columns:minmax(380px,520px) minmax(260px,1fr);align-items:stretch}.mp-lobby-mode-description{display:flex;align-items:center}}.mp-lobby-lock-hint{margin:0;font-size:.75rem;color:#888060;font-style:italic}.mp-lobby-create-btn{padding:10px 0;font-size:1rem;font-weight:600;letter-spacing:.05em;background:#c8b44a26;color:#c8b44a;border:1px solid rgba(200,180,74,.45);border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s}.mp-lobby-create-btn:hover:not(:disabled){background:#c8b44a47;border-color:#c8b44a}.mp-lobby-create-btn:disabled{opacity:.35;cursor:not-allowed}
