:root{color:#f6f4e8;font-synthesis:none;background:#101b1d;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{overscroll-behavior:none;min-width:320px;min-height:100dvh;margin:0}button,input{font:inherit}.controller-shell{min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:radial-gradient(circle at top,#21453f,#101b1d 58%);place-items:center;display:grid}.card{background:#081214d1;border:1px solid #ffffff1f;border-radius:1.5rem;gap:1rem;width:min(100%,30rem);padding:clamp(1.25rem,5vw,2.25rem);display:grid;box-shadow:0 1.5rem 4rem #00000059}.eyebrow{color:#e6b85c;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}h1{margin:0;font-size:clamp(2rem,8vw,3.2rem)}label{color:#cad7d3;gap:.45rem;display:grid}input{min-height:3.25rem;color:inherit;background:#132827;border:1px solid #52736c;border-radius:.85rem;padding:.75rem 1rem}button{color:#172015;cursor:pointer;background:#e6b85c;border:0;border-radius:.9rem;min-height:3.5rem;font-weight:800}button:disabled{cursor:wait;opacity:.6}.error-message{color:#ff9d91;margin:0}.play-card{text-align:center}.status-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.room-identity{align-items:center;gap:.5rem;min-width:0;display:flex}.connection{color:#78d39c;font-size:.85rem;font-weight:700}.connection--reconnecting{color:#e6b85c}.network-status{justify-items:end;gap:.15rem;display:grid}.latency-indicator{color:#aabbb7;font-variant-numeric:tabular-nums;font-size:.75rem}.phase-copy{color:#cad7d3;margin:0}.upgrade-panel,.result-panel{gap:.9rem;display:grid}.upgrade-panel h2,.upgrade-panel p,.result-panel h2,.result-panel p{margin:0}.upgrade-grid{gap:.65rem;display:grid}.upgrade-card{color:#f6f4e8;text-align:left;background:linear-gradient(135deg,#174644,#1d3246);border:1px solid #75d8ff4d;gap:.35rem;min-height:5rem;padding:.9rem 1rem;display:grid}.upgrade-card small{color:#b9d3ce}.upgrade-card--selected{color:#11251e;background:#78d39c;border-color:#a8f1c7}.upgrade-card--selected small{color:#214938}.upgrade-balance{color:#d7e7ea}.upgrade-balance strong{color:#f6f4e8}.upgrade-warning{color:#ffb45f}.upgrade-hint{color:#9fb6bb;font-size:.85rem}.result-panel{color:#f5d7d4;background:#371319b8;border:1px solid #ff685f73;border-radius:1rem;gap:.4rem;padding:1.25rem}.result-panel>button{justify-self:center;width:240px;max-width:100%}.result-panel>strong{color:#ff9d91;font-size:2rem}.result-panel--victory{color:#d9f5e5;background:#12392bc7;border-color:#78d39c8c}.result-panel--victory>strong{color:#78d39c}.rematch-readiness{color:#ffd783;font-variant-numeric:tabular-nums;font-weight:800}.leave-room-button{margin-top:.25rem}.secondary-button{color:#f6f4e8;background:#183330;border:1px solid #52736c}.action-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.action-grid button{min-height:5rem}.upgrade-button{color:#f6f4e8;background:#28665b}.controller-roster{background:#132827;border-radius:1rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem;padding:1rem;display:grid}.controller-roster strong,.controller-roster>span:last-child{grid-column:1/-1}.result-card{background:#132827;border-radius:1rem;gap:.5rem;padding:1.5rem;display:grid}.result-card strong{font-size:2rem}.result-card--victory strong{color:#78d39c}.result-card--defeat strong{color:#ff9d91}.role-badge{color:#ffd783;white-space:nowrap;background:#4d2d1680;border:1px solid #e6b85c73;border-radius:999px;margin:0;padding:.3rem .75rem;font-size:.85rem;font-weight:800}.play-card--result>.status-row{display:none}.role-control{--control-gutter:clamp(.75rem, 3vmin, 1.5rem);--control-inset-bottom:max(var(--control-gutter), env(safe-area-inset-bottom));--control-size:clamp(9.75rem, min(57vmin, 63dvh), 18.75rem);--stick-travel:calc(var(--control-size) * .27);touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute;inset:0}.role-control[hidden],.role-control>.phase-copy,.role-control>small{display:none}.virtual-stick{bottom:var(--control-inset-bottom);left:max(var(--control-gutter), env(safe-area-inset-left));width:var(--control-size);pointer-events:auto;aspect-ratio:1;touch-action:none;background:radial-gradient(circle,#1b3937 0 20%,#132827 22% 64%,#0d1d1e 66%);border:3px solid #52736c;border-radius:50%;position:absolute;box-shadow:inset 0 0 2.5rem #00000059}.virtual-stick:before,.virtual-stick:after{content:"";background:#78d39c2e;position:absolute}.virtual-stick:before{height:2px;top:50%;left:8%;right:8%}.virtual-stick:after{width:2px;top:8%;bottom:8%;left:50%}.virtual-stick__knob{z-index:2;width:calc(var(--control-size) * .34);aspect-ratio:1;pointer-events:none;background:#48a98d;border:4px solid #dff8ed;border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 .6rem 1.5rem #00000059}.hold-action{right:max(var(--control-gutter), env(safe-area-inset-right));bottom:var(--control-inset-bottom);width:var(--control-size);pointer-events:auto;color:#10201f;aspect-ratio:1;touch-action:none;border:3px solid #ffffff47;border-radius:50%;min-height:0;position:absolute;box-shadow:inset 0 0 2.5rem #0003,0 .8rem 2rem #00000040}.action-zone.is-pressed{filter:brightness(1.22);transform:scale(.96)}.hold-action--gunner{background:linear-gradient(135deg,#ffb54a,#e56b3d)}.hold-action--shield{color:#e9f8ff;background:linear-gradient(135deg,#377dbb,#4da9d8)}.hold-action--pilot{color:#fff2ec;background:linear-gradient(135deg,#e0563f,#a82f2f)}.hold-action--pilot.is-overheated{filter:saturate(.4)brightness(.75)}.control-readout{right:max(var(--control-gutter), env(safe-area-inset-right));bottom:calc(var(--control-inset-bottom) + var(--control-size) + .4rem);width:var(--control-size);gap:.2rem;display:grid;position:absolute}.control-readout strong{font-size:.72rem}.mg-heat{background:#270a0a;border-color:#ff8a5e73}.mg-heat span{background:linear-gradient(90deg,#ffb54a,#ff6b3d,#e03f2f)}.shield-energy{background:#0a1a27;border:1px solid #65baff73;border-radius:999px;height:.85rem;overflow:hidden}.shield-energy span{border-radius:inherit;background:linear-gradient(90deg,#377dbb,#75d8ff);height:100%;transition:width .1s linear;display:block}.hold-action:active{filter:brightness(1.2);transform:scale(.98)}.controller-shell--combat{place-items:stretch stretch;min-height:100dvh;padding:0;overflow:hidden}.card.play-card.play-card--combat{width:100%;min-height:100dvh;max-height:100dvh;padding:max(.45rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.45rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));border:0;border-radius:0;grid-template-columns:minmax(0,1fr);align-content:start;gap:.35rem;position:relative;overflow:hidden}.play-card--combat .status-row>.room-identity>.role-badge,.play-card--combat>.error-message{display:none}.network-status>.leave-room-button{width:8.5rem;min-height:1.9rem;margin-top:.3rem;padding:.25rem .5rem;font-size:.7rem}.play-card--combat .network-status>.leave-room-button{top:max(.45rem, env(safe-area-inset-top));margin-top:0;position:absolute;left:50%;transform:translate(-50%)}@media (orientation:landscape) and (height<=620px){.card.play-card{grid-template-columns:minmax(12rem,1fr) minmax(18rem,1.4fr);align-items:center;width:min(100%,52rem)}.status-row,.play-card>.error-message{grid-column:1/-1}.controller-shell--lobby{padding:max(.5rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left))}.card.play-card--lobby{grid-template-columns:minmax(0,1fr);gap:.5rem;width:min(100%,30rem);padding:.85rem 1rem}.play-card--lobby>.controller-roster{gap:.3rem .6rem;margin-bottom:0;padding:.5rem .65rem}.play-card--lobby>.ready-button,.play-card--lobby>.leave-room-button{min-height:2.5rem;margin-top:0;padding:.3rem .5rem}.play-card>.upgrade-panel{grid-column:1/-1;gap:.5rem}.play-card>.upgrade-panel .upgrade-grid{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.play-card>.upgrade-panel .upgrade-card{padding:.5rem .6rem}.play-card>.upgrade-panel .upgrade-hint{display:none}.card.play-card--intermission{grid-template-columns:minmax(0,1fr);align-content:space-between;gap:.35rem;height:100%;padding:.5rem .75rem}.play-card--intermission>.status-row{align-items:start}.card.play-card--intermission .status-row>.room-identity>.role-badge{display:none}.play-card--intermission>.status-row,.play-card--intermission>.upgrade-panel,.play-card--intermission>.error-message{grid-column:1/-1}.play-card--intermission>.upgrade-panel h2{font-size:1rem}.card.play-card--intermission .upgrade-card{min-height:3.25rem}.play-card--intermission>.leave-room-button{min-height:2rem;padding:.3rem .5rem;font-size:.68rem}.controller-shell--result{place-items:stretch stretch;min-height:100dvh;padding:0}.card.play-card--result{min-height:100dvh;padding:max(.5rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));grid-template-columns:minmax(0,1fr);align-content:space-evenly;justify-self:center}.play-card--result>.result-panel,.play-card--result>.leave-room-button{grid-column:1/-1}.play-card--result>.leave-room-button{justify-self:center;width:min(14rem,40vw);min-height:2rem;padding:.3rem .5rem;font-size:.68rem}}.preview-controls{z-index:10;background:#081214eb;border:1px solid #ffffff24;border-top:0;border-left:0;border-bottom-right-radius:.75rem;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.3rem .6rem;display:flex;position:fixed;top:0;left:0}.preview-controls__group{gap:.25rem;display:flex}.preview-controls button{min-height:auto;color:inherit;background:0 0;border:1px solid #fff3;border-radius:.5rem;padding:.2rem .5rem;font-size:.72rem}.preview-controls button[aria-pressed=true]{color:#e6b85c;border-color:#e6b85c}.preview-controls--collapsed{background:#0812148c;padding:.2rem}.preview-controls__toggle{font-size:.85rem;line-height:1}.solo-panel{pointer-events:none;position:absolute;inset:0}.solo-panel .virtual-stick,.solo-panel .hold-action{width:100%;position:static;inset:auto}.solo-stick,.solo-fire{position:absolute}.solo-stick{bottom:var(--control-inset-bottom);width:var(--control-size)}.solo-stick--pilot{left:max(var(--control-gutter), env(safe-area-inset-left))}.solo-stick--gunner{right:max(var(--control-gutter), env(safe-area-inset-right))}.solo-panel--stacked .solo-fire{bottom:calc(var(--control-inset-bottom) + var(--control-size) + var(--control-gutter));width:calc(var(--control-size) * .42)}.solo-panel--stacked .solo-fire--gunner{right:max(var(--control-gutter), env(safe-area-inset-right))}.solo-panel--stacked .solo-fire--pilot{right:calc(max(var(--control-gutter), env(safe-area-inset-right)) + var(--control-size) * .42 + var(--control-gutter))}.solo-panel--triggers .solo-fire{top:max(var(--control-gutter), env(safe-area-inset-top));width:min(38vw,13rem)}.solo-panel--triggers .solo-fire--pilot{left:max(var(--control-gutter), env(safe-area-inset-left))}.solo-panel--triggers .solo-fire--gunner{right:max(var(--control-gutter), env(safe-area-inset-right))}.solo-panel--triggers .hold-action{aspect-ratio:auto;border-radius:1rem;min-height:3.25rem}.solo-readout{bottom:var(--control-inset-bottom);pointer-events:none;flex-direction:column;gap:.4rem;width:min(34vw,12rem);display:flex;position:absolute;left:50%;transform:translate(-50%)}.solo-readout .control-readout{margin:0}.solo-layout-toggle{color:inherit;pointer-events:auto;background:#0812148c;border:1px solid #ffffff47;border-radius:.5rem;padding:.35rem .5rem;font-size:.7rem}.maintenance-notice{color:#ffd894;background:#50380c8c;border:1px solid #ffc45a73;border-radius:.5rem;margin:0;padding:.5rem .9rem;font-size:.9rem}
