:root{--bg:#070b12;--panel:#0c121cd1;--panel-edge:#78aadc29;--ink:#e6edf5;--ink-dim:#8ea3bb;--teal:#37d6ff;--amber:#ffb02e;--red:#ff4d4d;--green:#4dffa8;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--gap:12px;--radius:14px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;padding:0;overflow:hidden}#application-canvas{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui-root{pointer-events:none;z-index:10;position:fixed;inset:0}.screens,.touch-controls,.orientation,.update-bar{pointer-events:auto}.btn{border:1px solid var(--panel-edge);border-radius:var(--radius);min-height:52px;color:var(--ink);font:600 17px/1 var(--font);letter-spacing:.02em;cursor:pointer;background:#141e2de6;padding:0 22px;transition:background .12s,border-color .12s,transform 80ms}.btn:hover{background:#1e2c40f2}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{color:#eaf9ff;background:linear-gradient(#1d7fa8,#14607f);border-color:#37d6ff80}.btn--primary:hover{background:linear-gradient(#2596c3,#17708f)}.btn--ghost{background:0 0}.btn--small{min-height:40px;padding:0 14px;font-size:15px}.btn.is-active{border-color:var(--green);color:var(--green)}.field{margin:0 0 var(--gap);text-align:left;display:block}.field__label{color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-size:13px;display:block}.field__input{border:1px solid var(--panel-edge);border-radius:var(--radius);width:100%;min-height:52px;color:var(--ink);font:500 17px/1 var(--font);background:#080d14e6;padding:0 16px}.field__input--slider{accent-color:var(--teal);background:0 0;border:none;min-height:44px;padding:0}.field__label{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.field__value{color:var(--teal);font-family:var(--mono);letter-spacing:0;text-transform:none}.field__hint{color:var(--ink-dim);margin-top:6px;font-size:13px;display:block}.field__input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.field__input--code{font:700 28px/1 var(--mono);letter-spacing:.34em;text-align:center;text-transform:uppercase}.error{margin:0 0 var(--gap);color:var(--red);font-size:15px}.screens{padding:calc(var(--safe-top) + 16px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 16px) calc(var(--safe-left) + 16px);background:radial-gradient(120% 90% at 50% 0,#101a28 0%,#05080e 70%);place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}.screen{text-align:center;flex-direction:column;gap:10px;width:min(560px,100%);max-height:100%;display:flex}.screen__title{letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:24px}.screen__title.is-good{color:var(--green)}.screen__title.is-bad{color:var(--red)}.logo{letter-spacing:.16em;background:linear-gradient(#d9f4ff,#47a8d8);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(30px,7vw,46px);font-weight:800}.tagline{color:var(--ink-dim);margin:0 0 8px;font-size:16px}.boot__status{color:var(--ink-dim);font-size:16px}.menu{flex-direction:column;gap:10px;display:flex}.menu--secondary,.menu--inline{flex-flow:wrap;justify-content:center}.menu--secondary .btn,.menu--inline .btn{flex:auto}@media (orientation:landscape) and (max-height:480px){.screen{width:min(760px,100%)}.menu{flex-flow:wrap}.menu .btn{flex:200px}.logo{font-size:32px}.tagline{display:none}}.code{font:800 40px/1 var(--mono);letter-spacing:.3em;color:var(--teal);text-shadow:0 0 22px #37d6ff66;padding:8px 0 12px}.lobby__players{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.lobby__player,.results__row{border:1px solid var(--panel-edge);border-radius:var(--radius);background:var(--panel);text-align:left;align-items:center;gap:10px;padding:12px 14px;display:flex}.lobby__dot{background:var(--crew-color,var(--teal));width:12px;height:12px;box-shadow:0 0 10px var(--crew-color,var(--teal));border-radius:50%;flex:none}.lobby__name,.results__name{flex:1;font-size:16px;font-weight:600}.lobby__tag{color:var(--ink-dim);letter-spacing:.12em;font-size:12px}.lobby__hint{color:var(--ink-dim);margin:0 0 8px;font-size:14px}.results__stats{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-bottom:10px;display:grid}.stat{border:1px solid var(--panel-edge);border-radius:var(--radius);background:var(--panel);padding:12px 8px}.stat__value{font:700 22px/1 var(--mono);color:var(--teal);display:block}.stat__label{color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;margin-top:4px;font-size:11px;display:block}.results__crew{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.hurt-arc{pointer-events:none;z-index:3;opacity:0;background:radial-gradient(ellipse 120% 60% at 50% -10%, rgba(255, 60, 48, calc(.55 * var(--hurt,1))) 0%, #ff3c3000 55%);position:absolute;inset:0}.hurt-arc.is-hit{animation:.9s ease-out forwards hurt-flash}@keyframes hurt-flash{0%{opacity:0}12%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.hurt-arc.is-hit{opacity:.8;animation:none}}.results__bonus{color:var(--accent-quiet,#4ddba4);letter-spacing:.02em;font-size:13px}.results__value{color:var(--ink-dim);font-size:13px;font-family:var(--mono)}.switch{border:1px solid var(--panel-edge);border-radius:var(--radius);background:var(--panel);text-align:left;cursor:pointer;align-items:center;gap:12px;min-height:56px;padding:12px 14px;display:flex}.switch__input{width:26px;height:26px;accent-color:var(--teal);flex:none}.switch__label{font-size:16px;font-weight:600;display:block}.switch__hint{color:var(--ink-dim);font-size:13px;display:block}.howto{text-align:left;color:var(--ink-dim);margin:0 0 10px;padding-left:20px;font-size:15px;line-height:1.6}.howto li{margin-bottom:6px}.hud{pointer-events:none;font-variant-numeric:tabular-nums;position:absolute;inset:0}.hud-panel{border:1px solid var(--panel-edge);background:var(--panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;padding:8px 12px}.hud-bottom-center{gap:8px;display:flex;position:absolute}.hud-top{top:calc(var(--safe-top) + 10px);left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);align-items:flex-start;gap:calc(var(--hud-min-gap,16) * 1px);display:flex;position:absolute}.hud-top-left,.hud-top-center,.hud-top-right{flex-direction:column;flex:1 1 0;gap:8px;display:flex}.hud-top-left{align-items:flex-start;gap:16px}.hud-cluster{align-items:stretch;gap:8px;display:flex}.hud-action{pointer-events:auto;z-index:2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-width:132px;min-height:48px;color:var(--amber);text-align:left;cursor:pointer;background:#261a0ac7;border:1px solid #ffb02e8c;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 14px;font-family:inherit;display:flex;position:relative}.hud-action:active{background:#ffb02e47}.hud-action__label{font-size:max(16px, calc(16px * var(--hud-scale,1)));letter-spacing:.04em;font-weight:700}.hud-action__hint{font-size:max(13px, calc(13px * var(--hud-scale,1)));color:var(--ink-dim)}.hud-top-center{flex:0 auto;align-items:center;min-width:0}.hud-top-center>*{text-overflow:ellipsis;max-width:100%;overflow:hidden}.hud-top-right{align-items:flex-end}.hud.is-left-handed .hud-top{flex-direction:row-reverse}.hud.is-left-handed .hud-top-left{align-items:flex-end}.hud.is-left-handed .hud-top-right{align-items:flex-start}.hud.is-left-handed .crew-dots,.hud.is-left-handed .crew{align-self:flex-start;align-items:flex-start}.hud-bottom-center{bottom:calc(var(--safe-bottom) + 168px);flex-direction:column;align-items:center;left:50%;transform:translate(-50%)}.tension{min-width:152px}.tension__value{font:700 max(22px, calc(22px * var(--hud-scale,1))) / 1.05 var(--font);letter-spacing:.04em;color:var(--teal)}.tension[data-level="1"] .tension__value{color:var(--amber)}.tension[data-level="1"] .tension__step.is-on{background:var(--amber)}.tension[data-level="2"] .tension__value{color:#ff8a3d}.tension[data-level="2"] .tension__step.is-on{background:#ff8a3d}.tension[data-level="3"] .tension__value{color:var(--red)}.tension[data-level="3"] .tension__step.is-on{background:var(--red)}.tension__steps{gap:4px;margin:6px 0 4px;display:flex}.tension__step{background:#ffffff1f;border-radius:3px;flex:1;height:5px}.tension__step.is-on{background:var(--teal)}.tension__label{color:var(--ink-dim);font-size:max(13px, calc(13px * var(--hud-scale,1)));letter-spacing:.12em}.clock{text-align:center;min-width:84px}.clock__value{font:700 max(22px, calc(22px * var(--hud-scale,1))) / 1 var(--mono)}.clock__value.is-urgent{color:var(--red);animation:1s ease-in-out infinite pulse}.clock__label{color:var(--ink-dim);font-size:max(13px, calc(13px * var(--hud-scale,1)));letter-spacing:.14em;margin-top:4px}@keyframes pulse{50%{opacity:.45}}.hud-banner{border:1px solid var(--panel-edge);color:var(--amber);font-size:max(16px, calc(16px * var(--hud-scale,1)));text-align:center;background:#0a101adb;border-radius:999px;padding:7px 14px;font-weight:600}.hud-banner.is-alarm{border-color:var(--red);color:var(--red)}.objective-line{border:1px solid var(--panel-edge);color:var(--ink);font-size:max(16px, calc(16px * var(--hud-scale,1)));white-space:nowrap;background:#0a101ac7;border-radius:999px;padding:6px 14px;font-weight:600}.crew-dots{background:#0a101ab8;border-radius:999px;align-self:flex-end;gap:6px;padding:6px 10px;display:flex}.crew-dots__dot{background:var(--crew-color,var(--teal));border-radius:50%;width:12px;height:12px}.crew-dots__dot.is-self{box-shadow:0 0 0 2px #fffc}.crew-dots__dot.is-down{background:var(--red);animation:.9s ease-in-out infinite pulse}.crew-dots__dot.is-offline,.crew-dots__dot.is-out{opacity:.3}.crew{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.crew__row{border-left:3px solid var(--crew-color,var(--teal));font-size:max(16px, calc(16px * var(--hud-scale,1)));background:#0a101ad1;border-radius:8px;align-items:center;gap:7px;min-width:170px;padding:6px 10px;display:flex}.crew__row.is-down{color:var(--red);border-left-color:var(--red)}.crew__row.is-offline{opacity:.6}.crew__name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.crew__track{background:#ffffff1f;border-radius:3px;flex:none;width:44px;height:5px;overflow:hidden}.crew__fill{height:100%;width:var(--fill,100%);background:var(--crew-color,var(--teal));display:block}.crew__status{font-family:var(--mono);font-size:max(16px, calc(16px * var(--hud-scale,1)));color:var(--red);text-align:right;min-width:34px}.hud-prompt{border:1px solid var(--panel-edge);font-size:max(16px, calc(16px * var(--hud-scale,1)));text-align:center;background:#0a101ae0;border-radius:999px;margin-bottom:8px;padding:8px 16px;font-weight:600}.ammo-arc{right:calc(var(--safe-right) + var(--ammo-x,268) * 1px);bottom:calc(var(--safe-bottom) + var(--ammo-y,208) * 1px);width:calc(var(--ammo-size,88) * 1px);height:calc(var(--ammo-size,88) * 1px);place-items:center;display:grid;position:absolute}.hud.is-left-handed .ammo-arc{right:auto;left:calc(var(--safe-left) + var(--ammo-x,268) * 1px)}.ammo-arc__ring{position:absolute;inset:0}.ammo-arc__seg{width:calc(5px * var(--hud-scale,1));height:calc(14px * var(--hud-scale,1));margin:calc(-7px * var(--hud-scale,1)) 0 0 calc(-2.5px * var(--hud-scale,1));transform:rotate(calc(var(--a,0) * 1deg)) translateY(calc(var(--ammo-size,88) * -.36px));background:#96afcd38;border-radius:2px;transition:background .12s linear;position:absolute;top:50%;left:50%}.ammo-arc__seg.is-lit{background:var(--teal);box-shadow:0 0 6px #37d6ff8c}.ammo-arc.is-empty .ammo-arc__seg.is-lit,.ammo-arc.is-empty .ammo-arc__value{color:var(--red);background:var(--red)}.ammo-arc.is-empty .ammo-arc__value{background:0 0}.ammo-arc__value{font:700 max(18px, calc(18px * var(--hud-scale,1))) / 1 var(--mono);text-shadow:0 1px 4px #000}.ammo-arc.is-reloading .ammo-arc__value{color:var(--amber)}.ammo-arc__label{white-space:nowrap;color:var(--ink-dim);font-size:max(13px, calc(13px * var(--hud-scale,1)));letter-spacing:.06em;text-shadow:0 1px 3px #000;position:absolute;top:calc(100% + 2px)}.down-overlay{text-align:center;pointer-events:none;background:radial-gradient(60% 60%,#0000,#7800006b);place-content:center;gap:6px;display:grid;position:absolute;inset:0}.down__title{font:800 max(40px, calc(40px * var(--hud-scale,1))) / 1 var(--font);letter-spacing:.2em;color:var(--red)}.down__text{color:var(--ink);font-size:max(16px, calc(16px * var(--hud-scale,1)))}.seen-ring{--seen:#ebf2fae6;will-change:transform;width:108px;height:108px;margin:-54px 0 0 -54px;position:absolute;top:0;left:0}.seen-ring.is-suspicious{--seen:var(--amber)}.seen-ring.is-alerted{--seen:var(--red)}.seen-ring__fill{background:conic-gradient(var(--seen) calc(var(--fill,0) * 360deg), #060b1280 0);filter:drop-shadow(0 0 5px #000000d9);border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle closest-side,#0000 0 57%,#000 59%);mask:radial-gradient(circle closest-side,#0000 0 57%,#000 59%)}.seen-ring.is-alerted .seen-ring__fill{animation:.75s ease-in-out infinite seen-alert}@keyframes seen-alert{50%{opacity:.4}}.seen-ring__tip{transform:rotate(calc(var(--bearing,0) * 1deg));position:absolute;inset:0}.seen-ring__tip:before{content:"";border-left:8px solid #0000;border-right:8px solid #0000;border-bottom:12px solid var(--seen);filter:drop-shadow(0 0 4px #000000e6);margin-left:-8px;position:absolute;top:-13px;left:50%}.health-arc{--hp-color:var(--green);will-change:transform;width:104px;height:104px;margin:-52px 0 0 -52px;position:absolute;top:0;left:0}.health-arc.is-warn{--hp-color:var(--amber)}.health-arc.is-critical{--hp-color:var(--red)}.health-arc__fill{background:conic-gradient(from 100deg, var(--hp-color) 0 calc(var(--hp,1) * 160deg), #060b128c calc(var(--hp,1) * 160deg) 160deg, transparent 160deg);filter:drop-shadow(0 0 4px #000000e6);border-radius:50%;position:absolute;inset:0;transform:scaleY(.42);-webkit-mask:radial-gradient(circle closest-side,#0000 0 55%,#000 58%);mask:radial-gradient(circle closest-side,#0000 0 55%,#000 58%)}.hurt-vignette{pointer-events:none;opacity:var(--hurt,0);background:radial-gradient(#f000 42%,#be12129e 100%);transition:opacity .16s linear;animation:1.6s ease-in-out infinite hurt-breathe;position:absolute;inset:0}@keyframes hurt-breathe{50%{opacity:calc(var(--hurt,0) * .55)}}.marker-layer{position:absolute;inset:0;overflow:hidden}.marker{border:2px solid var(--teal);will-change:transform;background:#080e16b3;border-radius:50%;place-items:center;width:24px;height:24px;margin:-12px 0 0 -12px;display:grid;position:absolute;top:0;left:0}.marker__label{white-space:nowrap;font-size:max(13px, calc(13px * var(--hud-scale,1)));font-family:var(--mono);color:var(--ink-dim);text-shadow:0 1px 3px #000;position:absolute;top:26px}.marker.is-offscreen{opacity:.75;transform-origin:50%}.marker.is-offscreen .marker__label{display:none}.marker--objective{border-color:var(--amber)}.marker--extraction{border-color:var(--green);box-shadow:0 0 14px #4dffa880}.marker--crew{border-color:var(--teal);width:16px;height:16px;margin:-8px 0 0 -8px}.marker--down{border-color:var(--red);animation:.9s ease-in-out infinite pulse}.marker--ping{border-color:#fff}.connection-banner{top:calc(var(--safe-top) + 64px);border:1px solid var(--amber);color:var(--amber);font-size:max(16px, calc(16px * var(--hud-scale,1)));background:#ffb02e2e;border-radius:999px;padding:8px 18px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.connection-banner.is-lost{border-color:var(--red);color:var(--red);background:#ff4d4d2e}.touch-controls{touch-action:none;position:absolute;inset:0}.touch-arc{display:contents}.touch-stick{width:calc(var(--stick-size,124) * 1px);height:calc(var(--stick-size,124) * 1px);opacity:.55;background:#0a121c52;border:2px solid #a0c8f038;border-radius:50%;place-items:center;transition:opacity .14s;display:grid;position:absolute}.touch-stick.is-active{opacity:1}.touch-stick--move{left:calc(var(--safe-left) + 26px);bottom:calc(var(--safe-bottom) + 26px)}.touch-controls.is-left-handed .touch-stick--move{left:auto;right:calc(var(--safe-right) + 26px)}.touch-stick--aim{right:calc(var(--safe-right) + var(--stick-x,300) * 1px);bottom:calc(var(--safe-bottom) + var(--stick-y,26) * 1px)}.touch-controls.is-left-handed .touch-stick--aim{right:auto;left:calc(var(--safe-left) + var(--stick-x,300) * 1px)}.touch-controls.is-floating .touch-stick--aim:not(.is-active){opacity:0}.touch-stick__knob{will-change:transform;background:#78beeb80;border:1px solid #c8ebff8c;border-radius:50%;width:44%;height:44%}.touch-utility{left:calc(var(--safe-left) + var(--util-x,186) * 1px);bottom:calc(var(--safe-bottom) + 24px);position:absolute}.touch-controls.is-left-handed .touch-utility{left:auto;right:calc(var(--safe-right) + var(--util-x,186) * 1px)}.touch-button{width:calc(var(--arc-size,76) * 1px);height:calc(var(--arc-size,76) * 1px);color:var(--ink);font:700 max(16px, calc(16px * var(--hud-scale,1))) / 1 var(--font);letter-spacing:.01em;cursor:pointer;background:#0e1622ad;border:2px solid #a0c8f047;border-radius:50%;padding:0 2px}.touch-button--arc{right:calc(var(--safe-right) + var(--arc-x,0) * 1px);bottom:calc(var(--safe-bottom) + var(--arc-y,0) * 1px);position:absolute}.touch-controls.is-left-handed .touch-button--arc{right:auto;left:calc(var(--safe-left) + var(--arc-x,0) * 1px)}.touch-button--primary{background:#143c52b8;border-color:#37d6ff8c}.touch-button--fire{background:#4e1814b8;border-color:#ff6e6099}.touch-button.is-held{border-color:var(--teal);background:#37d6ff66}.touch-button--fire.is-held{border-color:var(--red);background:#ff6e6073}.orientation{z-index:100;text-align:center;background:var(--bg);place-content:center;justify-items:center;gap:14px;padding:24px;display:grid;position:absolute;inset:0}.orientation__icon{border:3px solid var(--teal);border-radius:12px;width:64px;height:104px;animation:2.4s ease-in-out infinite rotate-hint}@keyframes rotate-hint{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.orientation__title{margin:0;font-size:22px}.orientation__text{color:var(--ink-dim);margin:0;font-size:15px}.update-bar{bottom:calc(var(--safe-bottom) + 12px);z-index:50;border:1px solid var(--panel-edge);background:var(--panel);border-radius:999px;align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:flex;position:absolute;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
