:root{--plate:#2b2724;--plate-hi:#3a352f;--plate-lo:#1b1815;--ink:#efe6d4;--ink-dim:#9c9282;--hazard:#e8b12a;--alarm:#ff4a34;--ok:#7fd46a;--port:#ff7a3d;--stbd:#3dd6ff;--head:#b0ff5a;--panel-h:33vh;--bezel:#14110f}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;background:#0d0b0a;margin:0;padding:0;font-family:Segoe UI,Tahoma,Verdana,sans-serif;overflow:hidden}#viewport{z-index:0;position:fixed;inset:0}#viewport canvas{display:block}#pip{z-index:6;border:3px solid var(--bezel);pointer-events:none;border-radius:3px;outline:2px solid #ffffff1f;display:none;position:fixed;bottom:18px;left:18px;box-shadow:0 6px 22px #0000008c}#pip.on{display:block}#hud{z-index:5;pointer-events:none;font-variant-numeric:tabular-nums;position:fixed;inset:0}.hud-top{align-items:flex-start;gap:14px;padding:12px 16px;display:flex;position:absolute;top:0;left:0;right:0}.hud-card{background:linear-gradient(#1e1b18ed,#12100eed);border:2px solid #0d0b0a;border-top-color:#4b443c;border-radius:4px;padding:8px 12px;box-shadow:0 4px 16px #00000080}.hud-card .lbl{letter-spacing:.18em;color:var(--ink-dim);text-transform:uppercase;margin-bottom:2px;font-size:9px}.hud-card .val{letter-spacing:.02em;font-size:22px;font-weight:800;line-height:1}.hud-card .val.small{font-size:15px}.hud-card.wide{min-width:220px}#damage .val{color:var(--hazard)}#damage.rising .val{color:#ff8a3d;text-shadow:0 0 12px #ff8a3d99}.meter{background:#16130f;border:1px solid #000;border-radius:2px;height:9px;margin-top:5px;overflow:hidden}.meter>i{width:0%;height:100%;transition:width .14s linear;display:block}#panic .meter>i{background:linear-gradient(90deg,#6ecb5a,#e8b12a 55%,#ff4a34)}.objectives{margin:0;padding:0;font-size:11px;list-style:none}.objectives li{color:var(--ink-dim);align-items:center;gap:6px;padding:2px 0;display:flex}.objectives li .box{border:2px solid #6b6257;border-radius:2px;flex:none;width:11px;height:11px;position:relative}.objectives li.done{color:var(--ok)}.objectives li.done .box{background:var(--ok);border-color:var(--ok)}.objectives li .bar{background:#16130f;border-radius:2px;flex:1;min-width:30px;height:3px;overflow:hidden}.objectives li .bar>i{background:var(--hazard);width:0;height:100%;display:block}.prox{flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;top:84px;left:50%;transform:translate(-50%)}.prox-warn{color:#fff;letter-spacing:.12em;background:#be2814eb;border:2px solid #ffb9a5;border-radius:3px;padding:5px 14px;font-size:13px;font-weight:800;animation:.7s ease-in-out infinite alternate proxpulse;box-shadow:0 0 24px #ff462880}@keyframes proxpulse{0%{opacity:.72}to{opacity:1}}#minimap{background:#0e140cdb;border:2px solid #0d0b0a;border-top-color:#4b443c;border-radius:4px;width:190px;height:190px;display:none;position:absolute;top:12px;right:16px;box-shadow:0 4px 16px #00000080}#minimap.on{display:block}.centre-alert{text-align:center;letter-spacing:.2em;color:var(--alarm);text-shadow:0 0 30px #ff2814b3,0 4px #4a0d05;opacity:0;font-size:40px;font-weight:900;transition:opacity .2s;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}.centre-alert.on{opacity:1;animation:.32s infinite shakealert}.centre-alert .sub{letter-spacing:.14em;color:var(--ink);text-shadow:none;margin-top:8px;font-size:14px;font-weight:700;display:block}.centre-alert .recbar{background:#16130f;border:2px solid #000;border-radius:2px;width:320px;height:12px;margin:12px auto 0;overflow:hidden}.centre-alert .recbar>i{background:linear-gradient(90deg,#e8b12a,#7fd46a);width:0;height:100%;display:block}@keyframes shakealert{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-51%,-50%)}}#shouts{z-index:30;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;top:22%;left:0;right:0}.shout{letter-spacing:.03em;text-transform:uppercase;opacity:0;white-space:nowrap;background:#fff;border:4px solid #12100e;border-radius:6px;padding:10px 26px;font-size:clamp(22px,4.2vw,54px);font-weight:900;animation:.22s cubic-bezier(.2,1.8,.4,1) forwards shoutin;transform:rotate(-2deg)scale(.6);box-shadow:0 8px #12100e,0 12px 30px #0009}.shout .who{letter-spacing:.2em;opacity:.75;font-size:12px;display:block}.shout.out{animation:.3s forwards shoutout}@keyframes shoutin{to{opacity:1;transform:rotate(-2deg)scale(1)}}@keyframes shoutout{to{opacity:0;transform:rotate(-2deg)scale(.85)translateY(-30px)}}#panels{z-index:20;height:var(--panel-h);align-items:stretch;gap:6px;padding:0 6px 6px;display:flex;position:fixed;bottom:0;left:0;right:0}#panels:empty{display:none}.panel{border:3px solid var(--bezel);background:repeating-linear-gradient(90deg, #ffffff06 0 2px, transparent 2px 6px), linear-gradient(180deg, var(--plate-hi) 0%, var(--plate) 34%, var(--plate-lo) 100%);border-radius:5px;flex-direction:column;flex:1 1 0;min-width:0;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 2px #ffffff1a,inset 0 -3px 10px #0009,0 -4px 26px #0000008c}.panel:before{content:"";pointer-events:none;opacity:.5;background-color:#0000;background-image:radial-gradient(circle at 6px 6px,#6a6157 0 1.7px,#0000 2px),radial-gradient(circle at 6px 6px,#6a6157 0 1.7px,#0000 2px);background-position:0 0,0 100%;background-repeat:repeat-x;background-size:26px 26px,26px 26px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:2px solid #0006;border-radius:3px;position:absolute;inset:4px}.panel-head{z-index:1;background:linear-gradient(#0f0d0b,#211d1a);border-bottom:2px solid #000;flex:none;align-items:center;gap:8px;padding:5px 12px;display:flex;position:relative}.panel-head .swatch{border-radius:2px;width:12px;height:12px;box-shadow:0 0 10px}.panel-head .name{letter-spacing:.16em;font-size:12px;font-weight:900}.panel-head .blurb{letter-spacing:.12em;color:var(--ink-dim);text-transform:uppercase;font-size:9px}.panel-head .spacer{flex:1}.panel-head .keyhint{letter-spacing:.1em;color:var(--ink-dim);background:#100e0c;border:1px solid #000;border-radius:2px;padding:2px 6px;font-size:9px}.panel-body{z-index:1;flex:auto;gap:5px;min-height:0;padding:7px 8px;display:flex;position:relative}.mod{background:linear-gradient(#0000003d,#00000014);border:1px solid #000;border-top-color:#ffffff12;border-radius:3px;flex-direction:column;flex:1 1 0;gap:4px;min-width:0;padding:6px 7px;display:flex}.mod>.cap{letter-spacing:.16em;color:var(--ink-dim);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:8.5px;overflow:hidden}.mod>.cap b{color:var(--ink)}.mod .keys{color:#6f665c;letter-spacing:.08em;font-size:8px}.mod .art{flex:auto;justify-content:center;align-items:center;min-height:0;display:flex}.mod svg{width:100%;height:100%;display:block}.mod.narrow{flex:1 1 0;min-width:58px}.mod.wide{flex:1.9 1 0;min-width:96px}.mod.alarm{border-color:var(--alarm);box-shadow:0 0 0 1px #ff4a3480,inset 0 0 22px #ff4a3429}.lamps{flex-wrap:wrap;gap:5px;display:flex}.lamp{letter-spacing:.08em;color:#6f665c;align-items:center;gap:4px;font-size:8px;display:flex}.lamp i{background:#191512;border:1px solid #000;border-radius:50%;width:9px;height:9px;box-shadow:inset 0 1px 1px #ffffff24}.lamp.on{color:var(--ink)}.lamp.on i{background:var(--hazard);box-shadow:0 0 9px var(--hazard)}.lamp.on.red i{background:var(--alarm);box-shadow:0 0 9px var(--alarm)}.lamp.on.green i{background:var(--ok);box-shadow:0 0 9px var(--ok)}.heats{flex-direction:column;gap:3px;display:flex}.heatrow{color:#6f665c;letter-spacing:.08em;align-items:center;gap:5px;font-size:8px;display:flex}.heatrow .nm{flex:none;width:30px}.heatrow .bar{background:#16130f;border:1px solid #000;border-radius:2px;flex:1;height:7px;position:relative;overflow:hidden}.heatrow .bar>i{background:linear-gradient(90deg,#4b7fd6,#e8b12a 62%,#ff4a34);width:0;height:100%;transition:width .1s linear;display:block}.heatrow .bar>s{background:#ffffff73;width:2px;position:absolute;top:-2px;bottom:-2px}.press{cursor:ew-resize;background:#100e0c;border:2px solid #000;border-radius:3px;height:26px;display:flex;position:relative;overflow:hidden}.press>div{letter-spacing:.06em;color:#14110f;white-space:nowrap;justify-content:center;align-items:center;font-size:9px;font-weight:800;transition:width 60ms linear;display:flex;overflow:hidden}.press .p{background:linear-gradient(180deg, #ffa06b, var(--port))}.press .c{background:linear-gradient(180deg, #d8e6a0, var(--head))}.press .s{background:linear-gradient(180deg, #8fe6ff, var(--stbd))}.press>div.starve{color:#ff9c88;background:repeating-linear-gradient(45deg,#6a1a10 0 5px,#3a0e08 5px 10px)}.press>div.over{box-shadow:inset 0 0 0 2px #fffc}.press .tick{background:#00000080;width:1px;position:absolute;top:0;bottom:0}.lever-hint{color:#6f665c;text-align:center;letter-spacing:.1em;font-size:8px}.val-badge{letter-spacing:.04em;background:#100e0c;border:1px solid #000;border-radius:2px;align-self:center;padding:1px 5px;font-size:9px;font-weight:800}#lobby{z-index:60;background:radial-gradient(circle at 50% 25%,#2c2721,#0d0b0a 70%);display:none;position:fixed;inset:0;overflow:auto}#lobby.on{display:block}.lobby-inner{max-width:860px;margin:0 auto;padding:5vh 24px 60px}.logo{letter-spacing:.06em;color:var(--ink);text-shadow:0 5px #12100e,0 8px 24px #0009;margin:0 0 4px;font-size:clamp(34px,7vw,78px);font-weight:900;line-height:.95}.logo em{color:var(--hazard);font-style:normal}.tagline{color:var(--ink-dim);letter-spacing:.14em;text-transform:uppercase;margin-bottom:22px;font-size:12px}.hazbar{background:repeating-linear-gradient(45deg, var(--hazard) 0 10px, #1b1815 10px 20px);border:2px solid #12100e;border-radius:2px;height:12px;margin:14px 0 22px}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:18px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label{letter-spacing:.16em;color:var(--ink-dim);text-transform:uppercase;font-size:9px}.field input{color:var(--ink);font:inherit;letter-spacing:.2em;text-transform:uppercase;background:#100e0c;border:2px solid #000;border-top-color:#3d372f;border-radius:3px;width:150px;padding:8px 10px;font-weight:700}.btn{font:inherit;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;color:var(--ink);background:linear-gradient(#4a423a,#2b2724);border:2px solid #000;border-top-color:#6a6157;border-radius:3px;padding:9px 16px;font-size:12px;font-weight:800;box-shadow:0 3px #12100e}.btn:hover{background:linear-gradient(#5a5148,#332e29)}.btn:active{transform:translateY(2px);box-shadow:0 1px #12100e}.btn.primary{color:#1b1510;background:linear-gradient(#f0bf3d,#c8901a);border-top-color:#ffe08a}.btn.primary:hover{background:linear-gradient(#ffd15a,#d89c1c)}.btn:disabled{opacity:.4;cursor:not-allowed}.slots{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:20px;display:grid}.slot{border:3px solid var(--bezel);background:linear-gradient(180deg, var(--plate-hi), var(--plate-lo));border-radius:5px;padding:14px;position:relative;overflow:hidden}.slot h3{letter-spacing:.12em;margin:0 0 2px;font-size:14px}.slot .sub{color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-size:10px}.slot .who{min-height:17px;margin-bottom:10px;font-size:12px;font-weight:800}.slot .who.empty{color:#6f665c;font-style:italic;font-weight:500}.slot .who.bot{color:var(--hazard)}.slot ul{color:var(--ink-dim);margin:0 0 12px;padding-left:15px;font-size:10.5px;line-height:1.55}.slot .stripe{width:5px;position:absolute;top:0;bottom:0;left:0}.slot.mine{box-shadow:0 0 0 2px,0 0 26px #ffffff1f}.levels{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.levelbtn{text-align:left;cursor:pointer;color:var(--ink);font:inherit;background:linear-gradient(#322c27,#1d1a17);border:2px solid #000;border-top-color:#4b443c;border-radius:4px;flex:180px;padding:10px 12px}.levelbtn b{letter-spacing:.1em;font-size:12px;display:block}.levelbtn span{color:var(--ink-dim);font-size:10px}.levelbtn.sel{border-color:var(--hazard);box-shadow:inset 0 0 20px #e8b12a29}.note{color:var(--ink-dim);font-size:11px;line-height:1.65}.note code{color:var(--hazard);background:#100e0c;border:1px solid #000;border-radius:2px;padding:1px 5px;font-size:10.5px}.crew{color:var(--ink-dim);margin-bottom:14px;font-size:11px}.modetabs{flex-wrap:wrap;gap:10px;margin-bottom:22px;display:flex}.modetab{text-align:left;cursor:pointer;font:inherit;color:var(--ink-dim);border:3px solid var(--bezel);background:linear-gradient(#322c27,#1d1a17);border-radius:5px;flex:240px;padding:13px 16px}.modetab b{letter-spacing:.14em;color:var(--ink-dim);font-size:15px;font-weight:900;display:block}.modetab span{letter-spacing:.12em;text-transform:uppercase;font-size:10px}.modetab:hover{background:linear-gradient(#3d352e,#24201c)}.modetab.sel{border-color:var(--hazard);background:linear-gradient(#453a26,#241f18);box-shadow:inset 0 0 26px #e8b12a29}.modetab.sel b{color:var(--hazard)}.modetab.sel span{color:var(--ink)}.deck .blurb{color:var(--ink);border-left:4px solid var(--head);background:#b0ff5a0f;margin-bottom:20px;padding:8px 12px;font-size:12.5px;line-height:1.7}.crew-deck .blurb{border-left-color:var(--hazard);background:#e8b12a12}.contracts{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:20px;display:grid}.contract{text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:linear-gradient(#322c27,#1d1a17);border:2px solid #000;border-top-color:#4b443c;border-radius:4px;flex-direction:column;gap:3px;padding:11px 13px;display:flex}.contract .ct-top{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.contract .ct-top b{letter-spacing:.1em;font-size:12px}.contract .ct-stars{color:var(--hazard);letter-spacing:.08em;font-size:12px}.contract .ct-where{letter-spacing:.16em;color:#6f665c;text-transform:uppercase;font-size:8.5px}.contract .ct-brief{color:var(--ink-dim);font-size:10.5px;line-height:1.5}.contract:hover:not(:disabled){background:linear-gradient(#3d352e,#24201c)}.contract.sel{border-color:var(--hazard);box-shadow:inset 0 0 20px #e8b12a29}.contract.locked{opacity:.42;cursor:not-allowed}.contract.locked .ct-stars{color:#6f665c;letter-spacing:.16em;font-size:8.5px}.crewpick{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.crewbtn{text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:linear-gradient(#322c27,#1d1a17);border:2px solid #000;border-top-color:#4b443c;border-radius:4px;flex:150px;padding:9px 12px}.crewbtn b{letter-spacing:.12em;font-size:11.5px;display:block}.crewbtn span{color:var(--ink-dim);font-size:10px}.crewbtn.sel{border-color:var(--head);box-shadow:inset 0 0 20px #b0ff5a24}.crew-panel .crew-row{--nerve:1;background:#00000047;border:1px solid #ffffff12;border-radius:3px;align-items:center;gap:8px;padding:5px 7px;display:flex}.crew-panel .crew-who{flex-direction:column;min-width:54px;line-height:1.2;display:flex}.crew-panel .crew-who b{letter-spacing:.12em;font-size:10px}.crew-panel .crew-name{color:var(--ink-dim);letter-spacing:.1em;font-size:9px}.crew-panel .crew-state{letter-spacing:.08em;align-items:center;gap:5px;min-width:132px;font-size:9.5px;display:flex}.crew-panel .crew-ordered{color:var(--ink);font-weight:800}.crew-panel .crew-arrow{color:#6f665c}.crew-panel .crew-actual{color:var(--ok);font-weight:800}.crew-panel .crew-row.lagging .crew-actual{color:var(--hazard)}.crew-panel .crew-row.fumbling{border-color:var(--alarm);background:#ff4a3421}.crew-panel .crew-row.fumbling .crew-actual{color:var(--alarm)}.crew-panel .crew-wait{background:#100e0c;border-radius:2px;width:34px;height:4px;overflow:hidden}.crew-panel .crew-wait>i{background:var(--hazard);width:0;height:100%;display:block}.crew-panel .crew-row{opacity:calc(.55 + .45 * var(--nerve))}.crew-panel .crew-btns{flex:1;gap:4px;display:flex}.crew-panel .crew-btn{cursor:pointer;min-width:0;font:inherit;color:var(--ink-dim);text-align:center;background:linear-gradient(#322c27,#1d1a17);border:1px solid #000;border-top-color:#4b443c;border-radius:3px;flex:1 1 0;padding:4px 2px;line-height:1.15}.crew-panel .crew-btn b{letter-spacing:.06em;font-size:8.5px;display:block}.crew-panel .crew-btn span{color:#6f665c;font-size:8px}.crew-panel .crew-btn:hover{background:linear-gradient(#3d352e,#24201c)}.crew-panel .crew-btn.on{border-color:var(--crew);color:var(--ink);box-shadow:inset 0 0 12px #ffffff24}.crew-panel .crew-btn.latch{flex:0 0 42px}.crew-panel .crew-btn.latch.on{border-color:var(--hazard)}#scorecard{z-index:70;background:#080706f0;display:none;position:fixed;inset:0;overflow:auto}#scorecard.on{display:block}.score-inner{max-width:820px;margin:0 auto;padding:4vh 24px 60px}.stars{letter-spacing:.1em;color:#3a352f;margin:6px 0 14px;font-size:62px;line-height:1}.stars b{color:var(--hazard);text-shadow:0 0 26px #e8b12a8c}.score-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;display:grid}.score-box{border:3px solid var(--bezel);background:linear-gradient(180deg, var(--plate-hi), var(--plate-lo));border-radius:5px;padding:14px}.score-box h4{letter-spacing:.16em;color:var(--ink-dim);text-transform:uppercase;margin:0 0 10px;font-size:11px}.kv{border-bottom:1px solid #ffffff0e;justify-content:space-between;padding:3px 0;font-size:12px;display:flex}.kv b{font-variant-numeric:tabular-nums}.awards{flex-direction:column;gap:8px;display:flex}.award{border-left:4px solid var(--hazard);background:#e8b12a17;padding:7px 11px}.award b{letter-spacing:.09em;font-size:11.5px;display:block}.award span{color:var(--ink-dim);font-size:10.5px}.bigdmg{color:var(--hazard);font-variant-numeric:tabular-nums;font-size:46px;font-weight:900}#debug{right:8px;bottom:calc(var(--panel-h) + 8px);z-index:40;color:#9ce07a;white-space:pre;pointer-events:none;background:#080a08db;border:1px solid #2c3a2c;border-radius:3px;max-height:52vh;padding:7px 10px;font-family:ui-monospace,Consolas,monospace;font-size:10.5px;line-height:1.5;display:none;position:fixed;overflow:hidden}#debug.on{display:block}#debug .warn{color:var(--hazard)}#debug .bad{color:#ff6a52}#toast{z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%)}.toast{letter-spacing:.08em;background:#14110ff2;border:2px solid #000;border-top-color:#4b443c;border-radius:3px;padding:7px 14px;font-size:11.5px;animation:.18s toastin;box-shadow:0 4px 18px #0009}.toast.bad{border-color:var(--alarm);color:#ffb9a5}@keyframes toastin{0%{opacity:0;transform:translateY(-8px)}}@media (max-width:900px){:root{--panel-h:40vh}.panel-head .blurb{display:none}.score-grid{grid-template-columns:1fr}}#chat{left:14px;bottom:calc(var(--panel-h) + 14px);z-index:45;pointer-events:none;flex-direction:column;gap:5px;width:min(420px,38vw);display:flex;position:fixed}#chat .chat-log{scrollbar-width:thin;flex-direction:column;gap:2px;max-height:26vh;font-size:12px;line-height:1.45;transition:opacity .5s;display:flex;overflow-y:auto}#chat .chat-log.faded{opacity:.28}#chat.typing .chat-log{opacity:1}#chat .chat-line{word-break:break-word;background:#0e0c0ac7;border-left:3px solid #4b443c;border-radius:0 3px 3px 0;width:-moz-fit-content;width:fit-content;max-width:100%;padding:2px 8px}#chat .chat-line.history{opacity:.6;font-style:italic}#chat .chat-line.system{color:var(--hazard);border-left-color:var(--hazard)}#chat .chat-entry{pointer-events:auto;gap:6px;display:none}#chat.typing .chat-entry{display:flex}#chat .chat-entry input{min-width:0;color:var(--ink);font:inherit;background:#100e0c;border:2px solid #000;border-top-color:#3d372f;border-radius:3px;flex:1;padding:6px 9px;font-size:12px}#chat .chat-entry input:focus{outline:2px solid var(--hazard)}#chat .chat-entry .btn{padding:5px 10px;font-size:10px}#offline{z-index:65;background:radial-gradient(circle at 50% 28%,#2c2721f7,#0d0b0afb 70%);display:none;position:fixed;inset:0;overflow:auto}#offline.on{display:block}.offline-inner{max-width:720px;margin:0 auto;padding:8vh 24px 60px}.offline-title{letter-spacing:.18em;color:var(--alarm);text-transform:uppercase;margin:6px 0 12px;font-size:17px;font-weight:900}.offline-server{border-left:4px solid var(--alarm);margin:0 0 12px;padding:6px 0 6px 12px;font-size:13.5px;font-weight:700;line-height:1.6}.offline-lead{margin:0 0 10px;font-size:13.5px;line-height:1.6}.offline-fix{color:var(--ink-dim);margin:0 0 20px;font-size:12.5px;line-height:1.6}.offline-target{border-left:4px solid var(--hazard);background:#e8b12a14;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:20px;padding:8px 12px;display:flex}.offline-target label{letter-spacing:.16em;color:var(--ink-dim);text-transform:uppercase;font-size:9px}.offline-target code{color:var(--ink);word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-size:11.5px}.offline-inner .field input{text-transform:none;letter-spacing:.02em;max-width:100%;font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:600}.offline-status{letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase;min-height:14px;font-size:11px}.offline-status.bad{color:#ffb9a5}#stall{z-index:85;pointer-events:none;justify-content:center;display:none;position:fixed;top:0;left:0;right:0}#stall.on{display:flex}.stall-box{border:3px solid var(--alarm);text-align:center;background:#1c0a06f2;border-radius:4px;max-width:min(620px,88vw);margin-top:18vh;padding:16px 34px 18px;animation:1.05s ease-in-out infinite alternate stallpulse;box-shadow:0 0 46px #ff3c1e73,0 10px 34px #000000b3}@media (prefers-reduced-motion:reduce){.stall-box{animation:none}}.stall-title{letter-spacing:.2em;color:#ffb9a5;text-shadow:0 0 22px #ff3c1e99,0 3px #3a0a04;font-size:clamp(17px,2.6vw,25px);font-weight:900}.stall-clock{letter-spacing:.08em;color:var(--alarm);font-variant-numeric:tabular-nums;margin:4px 0 8px;font-size:clamp(26px,4.6vw,44px);font-weight:900}.stall-sub{letter-spacing:.09em;color:var(--ink);font-size:11.5px;line-height:1.55}@keyframes stallpulse{0%{box-shadow:0 0 18px #ff3c1e47,0 10px 34px #000000b3}to{box-shadow:0 0 52px #ff3c1e8c,0 10px 34px #000000b3}}#focusgate{z-index:90;pointer-events:none;background:#0807064d;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}#focusgate.on{display:flex}.fg-inner{margin-bottom:calc(var(--panel-h) + 28px);border:2px solid #000;border-top-color:var(--hazard);text-align:center;background:#14110ff5;border-radius:4px;padding:14px 26px;animation:1.4s ease-in-out infinite alternate fgpulse;box-shadow:0 8px 30px #000000b3}.fg-inner b{letter-spacing:.18em;color:var(--hazard);font-size:14px;display:block}.fg-inner span{letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase;margin-top:4px;font-size:10.5px;display:block}@keyframes fgpulse{0%{opacity:.78}to{opacity:1}}.btn.fs{display:none}.btn.fs.on{display:inline-block}
