.blink{animation:1s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}.pulse{animation:.9s steps(2,start) infinite pulse}@keyframes pulse{to{opacity:.45}}.warn{color:var(--red)}.gold{color:var(--yellow)}.red{color:var(--red)}.good{color:var(--green)}.chip{color:#0b0a26;background:var(--chip);white-space:nowrap;padding:4px 6px 3px;font-size:8px;display:inline-block;box-shadow:2px 2px #0b0a26}.pips{vertical-align:middle;gap:2px;display:inline-flex}.pips i{background:#23205a;width:8px;height:8px;box-shadow:inset 0 0 0 1px #3a3f7a}.pips i.on{background:var(--green)}.pips i.on.lvl3{background:var(--yellow)}.pips i.on.lvl4,.pips i.on.lvl5{background:var(--red)}.hint{color:var(--dim);letter-spacing:1px;font-size:8px}.empty{font-family:var(--txt);color:var(--dim);font-size:20px;line-height:1.1}.dialog,.panel,.fleet-detail{border:2px solid var(--white);box-shadow:0 0 0 2px #0b0a26, inset 0 0 0 2px var(--navy);background:#0e0d33eb}.attract-scores h2,.heroes h2,.menu h2,.fleets h2,.briefing h2,.games h2{color:var(--yellow);text-shadow:2px 2px 0 var(--red), 4px 4px 0 #0b0a26;letter-spacing:2px;margin:0;font-size:18px;font-weight:400}.dialog-prd{color:var(--cyan);font-size:10px}@media (prefers-reduced-motion:reduce){.pulse,.blink{animation:none}}.j-center{text-align:center;justify-items:center;gap:10px;display:grid;position:absolute;left:0;right:0}.j-h{color:var(--yellow);text-shadow:2px 2px 0 var(--red), 4px 4px 0 #0b0a26;margin:0;font-size:16px}.j-sub{color:var(--cyan);letter-spacing:2px;text-shadow:1px 1px #0b0a26;margin:0;font-size:8px}.j-txt{font-family:var(--txt);letter-spacing:1px;color:var(--white);max-width:520px;margin:0;font-size:20px;line-height:1.05}.j-tiny{margin:0;font-size:8px;line-height:1.9}.j-dim{color:var(--dim)}.j-error{color:#ff8fa3}.j-hint{text-align:center;color:var(--dim);letter-spacing:1px;text-shadow:1px 1px #0b0a26;margin:0;font-size:8px;position:absolute;bottom:8px;left:0;right:0}.j-panel{border:2px solid var(--white);box-shadow:0 0 0 2px #0b0a26, inset 0 0 0 2px var(--navy);background:#0e0d33f0;gap:8px;padding:14px 16px;font-size:9px;line-height:1.6;display:grid;position:absolute}.j-panel p{margin:0}.j-badge{letter-spacing:1px;color:#0b0a26;background:var(--fc,var(--yellow));padding:5px 7px 4px;font-size:7px;position:absolute;top:14px;right:16px;box-shadow:2px 2px #0b0a26}
.inv{position:absolute;inset:0}.inv-stat{gap:5px;margin:0;line-height:1;display:grid;position:absolute;top:6px}.inv-stat b{color:var(--cyan);letter-spacing:1px;white-space:nowrap;font-size:7px;font-weight:400}.inv-stat span{color:var(--white);font-size:10px}.inv-score{left:24px}.inv-hi{justify-items:center;left:50%;transform:translate(-50%)}.inv-wave{left:470px}.inv-lives{gap:4px;display:flex;position:absolute;top:6px;right:24px}.inv-foot{white-space:nowrap;margin:0;position:absolute;top:12px;left:112px}.inv-panel{text-align:center;white-space:nowrap;justify-items:center;gap:6px;line-height:1.2;top:48px;left:50%;transform:translate(-50%)}.inv-panel.inv-mid{top:50%;transform:translate(-50%,-50%)}.inv-title{color:var(--yellow);letter-spacing:1px;text-shadow:2px 2px 0 var(--red), 4px 4px 0 #0b0a26;font-size:14px}.inv-sub{color:var(--cyan);letter-spacing:1px;font-size:8px}.inv-how{color:var(--dim);letter-spacing:1px;font-size:8px}.inv-panel .hint{font-size:8px}.inv-final{align-items:baseline;gap:10px;display:flex}.inv-final b{color:var(--cyan);font-size:8px;font-weight:400}.inv-final span{color:var(--white);font-size:16px}.inv-send{letter-spacing:1px;color:var(--white);font-size:8px}.inv-sending{color:var(--dim)}.inv-best{color:var(--yellow);animation:.8s step-end infinite inv-blink}.inv-failed{color:#ff8fa3}@keyframes inv-blink{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.inv-best{animation:none}}.inv-table{text-align:left;grid-template-columns:24px max-content max-content;align-items:center;gap:2px 12px;margin:0;padding:0;list-style:none;display:grid}.inv-table li{display:contents}.inv-pts{color:var(--white);font-size:9px}.inv-kind{font-family:var(--txt);font-size:18px;line-height:1}.grid-tall .inv-stat{gap:4px;top:4px}.grid-tall .inv-stat b,.grid-tall .inv-stat span{font-size:8px}.grid-tall .inv-score{left:10px}.grid-tall .inv-hi{justify-items:start;left:66px;transform:none}.grid-tall .inv-wave{left:144px}.grid-tall .inv-lives{gap:2px;top:3px;right:8px}.grid-tall .inv-foot{font-size:8px;top:8px;left:186px;transform:none}.grid-tall .inv-foot .j-key,.grid-tall .inv-panel .j-key{font-size:8px}.grid-tall .inv-panel{gap:5px;padding:8px 10px;top:30px}.grid-tall .inv-ready{left:12px;right:12px;transform:none}.grid-tall .inv-mid{top:50%}.grid-tall .inv-title{font-size:12px}.grid-tall .inv-table{grid-template-columns:18px max-content minmax(0,1fr);gap:1px 8px}.grid-tall .inv-pts{font-size:8px}.grid-tall .inv-kind{white-space:normal;font-size:15px}
.pf-screen{background:#000;position:absolute;top:0;left:0}.pf-host,.pf-host canvas{width:100%;height:100%;position:absolute;inset:0}.pf-host canvas{image-rendering:pixelated}.pf-notice{letter-spacing:1px;color:var(--white,#fff);white-space:nowrap;margin:0;font-size:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
.pf{position:absolute;inset:0}.pf-hud{justify-content:space-between;display:flex;position:absolute;top:6px;left:24px;right:24px}.pf-stat{gap:5px;margin:0;line-height:1;display:grid}.pf-stat b{font-weight:400;font-size:var(--pf-label,7px);color:var(--white);letter-spacing:1px;text-shadow:1px 1px #0b0a26}.pf-stat span{font-size:var(--pf-value,10px);color:var(--white);text-shadow:1px 1px #0b0a26}.pf-foot{white-space:nowrap;color:var(--white);text-shadow:1px 1px #0b0a26;margin:0;position:absolute;bottom:8px;right:24px}.pf-back{white-space:nowrap;margin:0;font-size:8px;position:absolute;top:calc(50% + 18px);left:50%;transform:translate(-50%)}.pf-panel{text-align:center;white-space:nowrap;justify-items:center;gap:6px;line-height:1.2;top:50%;left:50%;transform:translate(-50%,-50%)}.pf-sub{color:var(--cyan);letter-spacing:1px;font-size:8px}.pf-how{color:var(--dim);letter-spacing:1px;font-size:8px}.pf-panel .hint{font-size:8px}.grid-tall .pf-hud{top:4px;left:8px;right:8px}.grid-tall .pf-stat{--pf-label:8px;--pf-value:8px;gap:4px}.grid-tall .pf-foot{font-size:8px;bottom:6px;right:8px}.grid-tall .pf-panel{padding:8px 10px}.grid-tall .pf-how{white-space:normal;max-width:260px}
