[hidden]{display:none!important}#app{flex-direction:column;font-size:14px;display:flex;position:fixed;inset:0}#app>*{pointer-events:auto}.wordmark{font-family:var(--font-display);letter-spacing:.14em;color:var(--fg);text-shadow:0 0 18px #3dffa073,0 0 2px #3dffa0e6}.stamp{font-family:var(--font-display);letter-spacing:.12em}.btn{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--green);border:1px solid var(--green);cursor:pointer;background:#3dffa014;border-radius:3px;padding:12px 18px;font-size:14px;font-weight:600;transition:transform 60ms ease-out,background .12s}.btn:active{background:#3dffa038;transform:translateY(1px)scale(.99)}.btn.warn{color:var(--amber);border-color:var(--amber);background:#ffb64814}.btn.danger{color:var(--red);border-color:var(--red);background:#ff533014}.btn.ghost{color:var(--dim);border-color:var(--line);background:0 0}.btn:disabled{opacity:.35;pointer-events:none}.panel{border:1px solid var(--line);background:linear-gradient(#0d1b27f5,#09131cf5);border-radius:4px}.scan:after{content:"";pointer-events:none;mix-blend-mode:screen;background:repeating-linear-gradient(0deg,#d2ffeb07 0 1px,#0000 1px 3px);position:absolute;inset:0}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--dim);letter-spacing:.18em;text-transform:uppercase;font-size:11px}input[type=text]{font-family:var(--font-body);letter-spacing:.1em;border:1px solid var(--line);color:var(--fg);text-transform:uppercase;background:#081018;border-radius:3px;outline:none;padding:12px;font-size:18px}input[type=text]:focus{border-color:var(--green);box-shadow:0 0 0 1px #3dffa059}.landing{padding:20px calc(16px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));flex-direction:column;flex:1;justify-content:center;align-items:center;gap:22px;display:flex;position:relative}.landing .title{text-align:center;margin:0;font-size:clamp(34px,9vw,72px);line-height:1.05}.landing .sub{color:var(--dim);letter-spacing:.3em;text-transform:uppercase;text-align:center;font-size:clamp(10px,2.4vw,13px)}.landing .sub b{color:var(--accent);font-weight:600}.shipplan{flex:none;width:min(720px,96vw);height:clamp(140px,22vh,220px);position:relative}.decks{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:16px;width:100%;display:flex}.formstamp{border:2px solid var(--green);color:var(--green);opacity:.4;font-family:var(--font-display);letter-spacing:.22em;pointer-events:none;border-radius:2px;padding:3px 8px;font-size:9px;position:absolute;bottom:10px;right:12px;transform:rotate(-7deg)}.intake{flex-direction:column;gap:14px;width:min(420px,100%);padding:18px;display:flex;position:relative}.intake .head{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;padding-bottom:8px;display:flex}.intake .head .stamp{color:var(--green);font-size:12px}.intake .head .no{color:var(--dim);font-size:11px}.idrow{align-items:center;gap:12px;display:flex}.idrow canvas{border:1px solid var(--line);width:72px;height:72px;image-rendering:pixelated;cursor:pointer;background:#081018;border-radius:3px;flex:none}.idrow .field{flex:1}.reroll{color:var(--dim);text-align:center;letter-spacing:.1em;margin-top:3px;font-size:10px}.muster{padding:calc(10px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:10px;display:flex;overflow:hidden auto}.muster h2{letter-spacing:.14em;margin:2px 44px 0 2px;font-size:15px}.muster .roomcode{color:var(--accent)}.postgrid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.post{text-align:left;border:1px solid var(--line);color:var(--fg);cursor:pointer;background:#0d1b27cc;border-radius:4px;flex-direction:column;gap:4px;min-height:66px;padding:10px;display:flex;position:relative}.post .nm{letter-spacing:.12em;align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.post .nm:before{content:"";background:var(--cast,var(--green));width:8px;height:8px;box-shadow:0 0 8px var(--cast,var(--green));border-radius:1px}.post .job{color:var(--dim);font-size:11px;line-height:1.35}.post .count{color:var(--cast,var(--green));font-size:12px;font-weight:600;position:absolute;top:8px;right:8px}.post.mine{border-color:var(--cast,var(--green));box-shadow:0 0 0 1px var(--cast,var(--green)), 0 0 18px #3dffa02e}.hostbar{flex-direction:column;gap:10px;padding:12px;display:flex}.hostbar .row{gap:8px;display:flex}.hostbar .row .btn{flex:1;padding:10px 6px;font-size:12px}.btn.sel{box-shadow:inset 0 0 0 1px var(--green);background:#3dffa040}.rosterline{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--line);color:var(--fg);background:#081018b3;border-radius:3px;align-items:center;gap:6px;padding:3px 7px 3px 3px;font-size:11px;display:inline-flex}.chip canvas{width:20px;height:20px;image-rendering:pixelated;border-radius:2px}.chip.off{opacity:.4}.waiting{color:var(--dim);text-align:center;letter-spacing:.12em;font-size:12px;animation:2.2s infinite pulse}@keyframes pulse{50%{opacity:.45}}@keyframes coachpulse{50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--cast,var(--green)) 35%, transparent);opacity:.82}}.coachpulse{animation:1.1s ease-in-out infinite coachpulse}.run{flex-direction:column;flex:1;display:flex;overflow:hidden}.statusbar{padding:calc(6px + env(safe-area-inset-top)) 54px 6px 12px;border-bottom:1px solid var(--line);background:#050b11eb;align-items:center;gap:10px;display:flex}.vbar{flex-direction:column;flex:1;gap:3px;display:flex}.vbar .lbl{letter-spacing:.18em;color:var(--dim);justify-content:space-between;font-size:9px;display:flex}.vbar .track{border:1px solid var(--line);background:#08131b;border-radius:2px;height:7px;overflow:hidden}.vbar .fill{background:var(--green);height:100%;box-shadow:0 0 8px var(--green);transition:width .25s linear}.vbar.hull .fill{background:var(--green)}.vbar.hull.low .fill{background:var(--red);box-shadow:0 0 8px var(--red)}.vbar.batt .fill{background:var(--amber);box-shadow:0 0 8px var(--amber)}.console-zone{--cast:var(--green);flex:1;position:relative;overflow:hidden}.console-head{justify-content:space-between;align-items:baseline;padding:8px 12px 4px;display:flex}.console-head .nm{font-family:var(--font-display);letter-spacing:.14em;color:var(--cast);text-shadow:0 0 12px color-mix(in srgb, var(--cast) 60%, transparent);font-size:15px}.console-head .pow{letter-spacing:.14em;color:var(--dim);font-size:10px}.console-head .pow b{color:var(--amber)}.console-body{flex-direction:column;display:flex;position:absolute;inset:34px 0 0}.console-canvas{touch-action:none;flex:1;width:100%}.stampzone{text-align:center;pointer-events:none;z-index:5;position:absolute;top:42%;left:0;right:0}.wastestamp{font-family:var(--font-display);letter-spacing:.2em;color:var(--red);border:2px solid var(--red);background:#050b11d1;border-radius:3px;padding:6px 14px;font-size:17px;animation:1.6s ease-out forwards stampin;display:inline-block;transform:rotate(-4deg)}.wastestamp.ok{color:var(--green);border-color:var(--green)}.wastestamp.warn{color:var(--amber);border-color:var(--amber)}.headright{align-items:center;gap:8px;display:inline-flex}.teachbtn{border:1px solid var(--dim);width:24px;height:24px;color:var(--dim);cursor:pointer;background:0 0;border-radius:50%;font-size:13px;line-height:1}@keyframes critpulse{50%{background:#400804f2}}.statusbar.crit{animation:.9s infinite critpulse}@keyframes stampin{0%{opacity:0;transform:rotate(-4deg)scale(1.5)}12%{opacity:1;transform:rotate(-4deg)scale(1)}80%{opacity:1}to{opacity:0}}.teach{z-index:6;border:1px dashed var(--cast);color:var(--fg);pointer-events:none;background:#050b11e6;border-radius:4px;padding:10px 12px;font-size:12px;line-height:1.45;animation:.4s ease-out teachin;position:absolute;top:42px;left:12px;right:88px}.teach b{color:var(--cast)}@keyframes teachin{0%{opacity:0;transform:translateY(8px)}}.transit{z-index:8;background:#050b11f0;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.transit .to{font-family:var(--font-display);letter-spacing:.2em;color:var(--cast);font-size:18px}.transit .track{border:1px solid var(--line);background:#08131b;width:min(70vw,300px);height:5px;overflow:hidden}.transit .fill{background:var(--cast);height:100%;box-shadow:0 0 10px var(--cast)}.transit .hint{color:var(--dim);letter-spacing:.14em;font-size:11px}.tasks{z-index:7;flex-direction:column;gap:8px;display:flex;position:absolute;bottom:8px;left:8px;right:84px}.task{border:1px solid var(--red);background:#1f0905eb;border-radius:4px;align-items:center;gap:10px;padding:8px 10px;animation:.3s ease-out taskin;display:flex}@keyframes taskin{0%{opacity:0;transform:translateY(10px)}}.task .ico{font-size:20px}.task .meta{flex:1}.task .meta .k{letter-spacing:.16em;color:var(--red);font-size:11px;font-weight:600}.task .track{background:#140705;border:1px solid #ff533066;height:5px;margin-top:4px;overflow:hidden}.task .fill{background:var(--red);height:100%;transition:width .15s}.task .act{letter-spacing:.06em;flex:none;width:74px;height:46px;font-size:11px}.shipbar{padding:6px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#050b11f0;gap:4px;display:flex}.room{border:1px solid var(--line);min-width:0;color:var(--dim);letter-spacing:.04em;text-align:center;cursor:pointer;background:#081018;border-radius:3px;flex-direction:column;flex:1;gap:2px;padding:7px 0 5px;font-size:9px;display:flex;position:relative;overflow:visible}.room .n{color:var(--fg);font-size:10px;font-weight:600}.room .pips{letter-spacing:1px;color:var(--dim);min-height:9px;font-size:7px;line-height:1}.room .pips.short{color:var(--amber)}.room.wanted{border-color:var(--amber);animation:1.4s ease-in-out infinite pulse}.room .c{color:var(--cast,var(--green));font-size:11px;font-weight:600;line-height:1}.room.here{border-color:var(--cast,var(--green));box-shadow:inset 0 0 10px color-mix(in srgb, var(--cast,var(--green)) 25%, transparent)}.room .badge{background:var(--red);color:#fff;border-radius:7px;min-width:14px;height:14px;font-size:9px;font-weight:600;line-height:14px;animation:1s infinite pulse;position:absolute;top:-6px;right:-3px}.room .pingbadge{background:var(--amber);color:#201200;border-radius:7px;min-width:14px;height:14px;font-size:9px;font-weight:700;line-height:14px;animation:.7s infinite pulse;position:absolute;top:-6px;left:-3px}.commrow{border-top:1px solid var(--line);background:#050b11f0;gap:6px;padding:6px 8px 0;display:flex}.commrow .btn{flex:1;height:36px;padding:0;font-size:11px}.commrow .btn.ghost{flex:0 0 88px}.commrow+.shipbar{border-top:none}.debrief{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:18px;padding:24px;display:flex}.debrief .outcome{font-size:clamp(30px,9vw,44px)}.debrief .outcome.won{color:var(--green)}.debrief .outcome.lost{color:var(--red);text-shadow:0 0 18px #ff533080}.debrief .card{min-width:min(320px,84vw);padding:16px 20px}.debrief .card .t{color:var(--accent);font-family:var(--font-display);letter-spacing:.14em;font-size:15px}.debrief .card .v{color:var(--dim);margin-top:6px;font-size:12px}.debrief .hint{color:var(--dim);letter-spacing:.14em;font-size:12px;animation:2.2s infinite pulse}.stagehud{pointer-events:none;font-size:clamp(12px,1.1vw,18px);position:fixed;inset:0}.stagehud>*{pointer-events:none}.shud-top{flex-direction:column;align-items:center;gap:6px;width:min(60vw,900px);display:flex;position:absolute;top:1.2vh;left:50%;transform:translate(-50%)}.shud-hull{border:2px solid var(--line);background:#050b11bf;border-radius:3px;width:100%;height:clamp(14px,2vh,22px);overflow:hidden}.shud-hull .fill{background:var(--green);height:100%;box-shadow:0 0 16px var(--green);transition:width .3s}.shud-hull.low .fill{background:var(--red);box-shadow:0 0 16px var(--red)}.shud-hull-lbl{letter-spacing:.22em;width:100%;color:var(--dim);justify-content:space-between;font-size:clamp(11px,1vw,15px);display:flex}.shud-hull-lbl b{color:var(--fg)}.shud-corner{color:var(--dim);letter-spacing:.14em;flex-direction:column;gap:4px;font-size:clamp(11px,1vw,15px);display:flex;position:absolute;top:1.2vh;left:1.2vw}.shud-corner b{color:var(--fg)}.shud-banner{text-align:center;position:absolute;top:22vh;left:0;right:0}.shud-banner .inner{font-family:var(--font-display);letter-spacing:.22em;color:var(--fg);border-top:2px solid var(--green);border-bottom:2px solid var(--green);text-shadow:0 0 24px #3dffa099;background:#050b11b8;padding:1vh 3vw;font-size:clamp(26px,3.4vw,54px);animation:.5s ease-out bannerin;display:inline-block}@keyframes bannerin{0%{opacity:0;letter-spacing:.5em}}.shud-callout{text-align:center;position:absolute;bottom:16vh;left:0;right:0}.shud-callout .inner{font-family:var(--font-display);letter-spacing:.18em;color:var(--red);border:3px solid var(--red);text-shadow:0 0 20px #ff5330cc;background:#140402d9;border-radius:4px;padding:.8vh 2vw;font-size:clamp(20px,2.6vw,40px);animation:.8s infinite klaxonflash;display:inline-block}.shud-callout .inner.info{color:var(--cyan);border-color:var(--cyan);text-shadow:0 0 20px #53d5ffb3;background:#030e14d9;animation:none}@keyframes klaxonflash{50%{box-shadow:0 0 34px #ff5330b3}}.blackout{z-index:40;background:#000;position:absolute;inset:0}.blackout canvas{width:100%;height:100%}.blackout .lbl{text-align:center;font-family:var(--font-display);letter-spacing:.3em;color:#888;font-size:clamp(14px,1.6vw,24px);position:absolute;bottom:8vh;left:0;right:0}.smuster{pointer-events:none;justify-content:center;align-items:center;gap:5vw;padding:4vh 4vw;display:flex;position:fixed;inset:0}.smuster>*{pointer-events:auto}.smuster .left{flex-direction:column;gap:3vh;max-width:46vw;display:flex}.smuster .title{margin:0;font-size:clamp(40px,6.5vw,110px);line-height:1.02}.smuster .sub{color:var(--dim);letter-spacing:.32em;text-transform:uppercase;font-size:clamp(11px,1.2vw,18px)}.smuster .sub b{color:var(--accent)}.boarding{flex-direction:column;align-items:center;gap:1.6vh;padding:2vh 2vw;display:flex;position:relative}.boarding .stamp{color:var(--green);font-size:clamp(12px,1.2vw,18px)}.boarding canvas.qr{width:clamp(180px,22vw,340px);height:auto;image-rendering:pixelated;background:#dff5ea;border-radius:4px;padding:10px}.boarding .code{font-family:var(--font-display);letter-spacing:.34em;color:var(--accent);text-shadow:0 0 22px #ff64b880;font-size:clamp(28px,3.6vw,60px)}.boarding .url{color:var(--dim);letter-spacing:.08em;font-size:clamp(11px,1vw,15px)}.smuster .crewlist{flex-wrap:wrap;gap:.8vh;max-width:40vw;display:flex}.smuster .crewlist .chip{font-size:clamp(11px,1.1vw,16px)}.smuster .crewlist .chip canvas{width:clamp(20px,2vw,30px);height:clamp(20px,2vw,30px)}.smuster .hint{color:var(--dim);letter-spacing:.18em;font-size:clamp(11px,1.1vw,16px);animation:2.4s infinite pulse}.retro{pointer-events:none;background:#050b118c;flex-direction:column;justify-content:center;align-items:center;gap:2.2vh;padding:3vh 4vw;display:flex;position:fixed;inset:0}.retro .outcome{margin:0;font-size:clamp(30px,4.5vw,72px)}.retro .outcome.won{color:var(--green)}.retro .outcome.lost{color:var(--red)}.retro .sub{color:var(--dim);letter-spacing:.24em;font-size:clamp(11px,1.2vw,17px)}.retro .grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1.6vh 1.6vw;width:min(92vw,1500px);min-height:0;display:grid}.retro .panel{flex-direction:column;gap:.8vh;min-width:0;padding:1.4vh 1.2vw;display:flex}.retro .panel h3{letter-spacing:.22em;color:var(--dim);margin:0;font-size:clamp(11px,1vw,15px);font-weight:600}.retro canvas.chart{width:100%;height:clamp(120px,22vh,260px)}.retro ul{flex-direction:column;gap:.5vh;margin:0;padding:0;font-size:clamp(12px,1.1vw,17px);list-style:none;display:flex}.retro .verdict{color:var(--amber)}.retro .super{justify-content:space-between;gap:1vw;display:flex}.retro .super .t{color:var(--accent);font-weight:600}.retro .super .v{color:var(--dim)}.retro .hint{color:var(--dim);letter-spacing:.2em;font-size:clamp(11px,1vw,15px);animation:2.4s infinite pulse}#settings-panel{top:calc(56px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));z-index:59;border:1px solid var(--line);background:linear-gradient(#0d1b27fa,#09131cfa);border-radius:4px;flex-direction:column;gap:12px;width:min(320px,100vw - 24px);padding:14px;display:flex;position:fixed}#settings-panel[hidden]{display:none}#settings-panel h3{font-family:var(--font-display);letter-spacing:.2em;color:var(--green);margin:0;font-size:13px}.setrow{letter-spacing:.08em;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.setrow .lbl{color:var(--fg);text-transform:uppercase}.setrow input[type=range]{width:130px;accent-color:var(--green)}.toggle{min-width:74px;padding:7px 10px;font-size:11px}.setnote{color:var(--dim);font-size:10px;line-height:1.5}
