:root{--space:#07080b;--ink:#cfe3ea;--dim:#7d8a96;--cyan:#4fd8ff;--violet:#7b5cff;--warn:#ff8a2b;--bad:#ff3b30;--hair:#4fd8ff47;--panel:#14171db8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--space);height:100%;margin:0;overflow:hidden}body{color:var(--ink);letter-spacing:.02em;-webkit-font-smoothing:antialiased;font:11px/1.6 ui-monospace,Cascadia Mono,SF Mono,Consolas,monospace}#view{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;position:fixed;inset:0}.panel{background:var(--panel);border:1px solid var(--hair);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;max-width:calc(100vw - 32px);padding:10px 12px;position:absolute}.panel h1{letter-spacing:.55em;margin:0;font-size:15px;font-weight:600}.panel h2{letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin:0 0 6px;font-size:10px;font-weight:600}.panel p{letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:2px 0 0;font-size:10px}.rows{grid-template-columns:auto 1fr auto;column-gap:14px;display:grid}.rows .k{color:var(--dim)}.rows .gauge{align-items:center;gap:9px;display:flex}.rows .gauge .track{background:#4fd8ff26;flex:1;min-width:48px;height:3px}.rows .gauge .track i{background:var(--cyan);height:100%;display:block}.rows .gauge .n{font-variant-numeric:tabular-nums;white-space:nowrap}.rows .gauge.warn .track i,.rows .gauge.warn .n{background:var(--warn);color:var(--warn)}.rows .gauge.warn .n{background:0 0}.rows .gauge.bad .track i{background:var(--bad)}.rows .gauge.bad .n{color:var(--bad)}.rows .gauge.ok .track i{background:var(--cyan)}.cell .advice{letter-spacing:.02em;text-transform:none;border-left:2px solid var(--hair);color:var(--dim);margin:11px 0 0;padding-left:9px;font-size:11px;line-height:1.6}.rows .v{font-variant-numeric:tabular-nums}.rows .right{text-align:right}.ok{color:var(--cyan)}.bad{color:var(--bad)}.warn{color:var(--warn)}.dim{color:var(--dim)}.error{white-space:pre-wrap;color:var(--bad);grid-column:1/-1;margin:0}.status{min-width:230px;top:16px;left:18px}.status .rows{margin-top:10px}.meter{background:#4fd8ff26;height:3px;margin-top:6px}.meter i{background:var(--cyan);height:100%;transition:width .12s linear;display:block}.meter.over i{background:var(--warn)}.debug{top:16px;right:18px}.cell{min-width:300px;max-width:330px;bottom:110px;left:18px}.cell button,.status button,.resonator button,.tutorial button,.build button{font:inherit;color:var(--ink);border:1px solid var(--hair);cursor:pointer;background:#4fd8ff14;padding:4px 8px}.cell button{width:100%;margin-top:8px}.status button.xray{letter-spacing:.12em;width:100%;margin-top:8px}.status button.armed{border-color:var(--cyan);background:#4fd8ff38}.cell button:hover,.build button:hover:not(:disabled){background:#4fd8ff2e}.build{gap:8px;padding:8px;display:flex;bottom:18px;left:50%;transform:translate(-50%)}.build button{text-align:left;flex-direction:column;gap:2px;min-width:104px;display:flex}.build button:disabled{color:var(--dim);cursor:default;opacity:.55}.build button.armed{border-color:var(--cyan);background:#4fd8ff38}.build .name{letter-spacing:.08em}.build .cost{color:var(--dim);justify-content:space-between;gap:10px;font-size:10px;display:flex}.resonator{min-width:250px;bottom:110px;right:18px}.bands{gap:6px;margin-bottom:8px;display:flex}.bands button{letter-spacing:.14em;flex:1}.bands button.armed{border-color:var(--cyan);background:#4fd8ff38}.tutorial{width:min(440px,100vw - 36px);top:16px;left:50%;transform:translate(-50%)}.tutorial .blurb{letter-spacing:.02em;text-transform:none;color:var(--ink);margin:6px 0 0;font-size:11px;line-height:1.65}.tutorial .foot{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.outcome{text-align:center;border-color:var(--cyan);padding:20px 34px;top:38%;left:50%;transform:translate(-50%,-50%)}.core-row{align-items:center;gap:9px;margin-top:9px;display:flex}.core-row .k{flex:none}.core-row .track{background:#ff8a2b29;flex:1;min-width:40px;height:5px}.core-row .track i{background:var(--warn);height:100%;transition:width .3s linear;display:block}.core-row .n{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10px}.core-row.winning .track i{background:var(--cyan)}.core-row.winning .n{color:var(--cyan)}.core-row.losing .track i{background:var(--bad)}.core-row.losing .n{color:var(--bad)}.core-row.holding .n{color:var(--warn)}.core-row.unknown .n{color:var(--dim)}.status .transport{gap:4px;margin-top:6px;display:flex}.status .transport button{letter-spacing:.06em;flex:1;padding:3px 0;font-size:10px}.status .transport button.speed{flex:0 0 26px}.status .transport button.mute{flex:1.5}.status button.track{letter-spacing:.1em;width:100%;color:var(--dim);background:0 0;border-color:#0000;margin-top:6px;padding:2px 0;font-size:10px}.status button.track:hover:not(:disabled){color:var(--cyan);border-color:var(--hair)}.status button.track:disabled{cursor:default}.outcome h2{letter-spacing:.36em;margin:0;font-size:15px}.outcome .rows{text-align:left;max-width:230px;margin:14px auto 0}.outcome button.again{letter-spacing:.14em;width:100%;margin-top:14px}.outcome.lost{border-color:var(--bad)}.outcome.lost h2{color:var(--bad)}.outcome p{margin-top:6px}.markers{pointer-events:none;position:absolute;inset:0}.marker{border:1px solid var(--hair);font-variant-numeric:tabular-nums;color:var(--ink);background:#0c0e12d1;margin:-30px 0 0 -16px;padding:1px 5px;font-size:10px;position:absolute;top:0;left:0}.marker.urgent{border-color:var(--warn);color:var(--warn)}.alerts{text-align:center;position:absolute;bottom:116px;left:50%;transform:translate(-50%)}.alerts p{background:var(--panel);border-left:2px solid var(--warn);color:var(--ink);letter-spacing:.04em;margin:4px 0;padding:4px 10px}.hints{letter-spacing:.06em;max-width:168px;color:var(--dim);background:var(--panel);border:1px solid var(--hair);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:3px;flex-wrap:wrap;justify-content:flex-end;gap:4px 14px;padding:7px 10px;font-size:10px;display:flex;position:absolute;bottom:18px;right:18px}.hints kbd{font:inherit;color:var(--ink)}.hints button{font:inherit;letter-spacing:.06em;color:var(--cyan);border:1px solid var(--hair);cursor:pointer;background:#4fd8ff1a;border-radius:2px;padding:1px 7px}.hints button:hover{background:#4fd8ff38}@media (width<=1100px){.hints{display:none}}@media (width<=820px){.cell,.resonator{min-width:0;max-width:calc(100vw - 36px);bottom:108px}.resonator{display:none}.build{flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px)}.build button{min-width:84px}}.guide{border-color:var(--cyan);width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.guide h2{letter-spacing:.2em;color:var(--cyan);margin:0 0 10px;font-size:12px}.guide .stage{border:1px solid var(--hair);background:#07080b8c;border-radius:3px}.guide .stage svg{width:100%;height:auto;display:block}.guide .verdict{letter-spacing:.02em;text-transform:none;color:var(--ink);margin:11px 0 0;font-size:11px}.guide .verdict:before{content:"> ";color:var(--cyan)}.guide .blurb{letter-spacing:.02em;text-transform:none;color:var(--dim);margin:6px 0 0;font-size:11px;line-height:1.65}.guide .foot{align-items:center;gap:8px;margin-top:13px;display:flex}.guide .foot button{min-width:62px}.guide .dots{flex:1;justify-content:center;gap:5px;display:flex}.guide .dots i{background:var(--hair);cursor:pointer;border-radius:50%;width:6px;height:6px}.guide .dots i.on{background:var(--cyan)}.guide .keys{grid-template-columns:82px 1fr;gap:4px 12px;margin:0;padding:16px 18px;display:grid}.guide .keys dt{color:var(--ink)}.guide .keys dd{color:var(--dim);margin:0}.htp text{letter-spacing:.12em;text-anchor:middle;fill:var(--ink);font:8px ui-monospace,Cascadia Mono,Consolas,monospace}.htp .caption{fill:var(--dim);text-anchor:start;letter-spacing:.2em}.htp .layer{stroke:#4fd8ff1a;stroke-width:.7px}.htp .layer.l0{fill:#1b202a}.htp .layer.l1{fill:#161b24}.htp .layer.l2{fill:#12161e}.htp .layer.l3{fill:#0e1118}.htp .cell{fill:#23272f;stroke:#4fd8ff38}.htp .skyline{stroke:var(--hair)}.htp .core{animation:2.8s ease-in-out infinite corePulse}.htp .machine rect{fill:#7d8795}.htp .machine .mast{fill:#5d6875}.htp .machine .tip{fill:var(--cyan)}.htp .shards path{fill:var(--violet);transform-box:fill-box;transform-origin:50% 100%;animation:3.4s ease-in-out infinite shardGrow}.htp .shards.late path{animation-delay:1.1s}.htp .crater path{fill:#150a04;stroke:var(--warn);stroke-width:1.5px;animation:2.4s ease-in-out infinite emberPulse}@keyframes corePulse{0%,to{opacity:.72}50%{opacity:1}}@keyframes emberPulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes shardGrow{0%,to{opacity:.55;transform:scaleY(.5)}55%{opacity:1;transform:scaleY(1)}}.htp .tendrils path{fill:none;stroke:var(--warn);stroke-width:3px;stroke-linecap:round;stroke-dasharray:210;animation:5s ease-in-out infinite creep}.htp .tendrils path:nth-child(2){animation-delay:.7s}.htp .tendrils path:nth-child(3){animation-delay:1.4s}@keyframes creep{0%{stroke-dashoffset:210px;opacity:.15}55%{stroke-dashoffset:0;opacity:.95}85%{stroke-dashoffset:0;opacity:.95}to{stroke-dashoffset:0;opacity:0}}.htp .flow circle{fill:var(--cyan);animation:1.8s linear infinite rise}@keyframes rise{0%{opacity:0;transform:translateY(6px)}25%{opacity:1}to{opacity:0;transform:translateY(-34px)}}.htp .vent ellipse{fill:none;stroke:var(--warn);stroke-width:2px;animation:2.2s ease-in-out infinite emberPulse}.htp .meter rect{fill:#4fd8ff1a;stroke:var(--hair)}.htp .meter .fill{fill:var(--cyan);stroke:none;animation:4s ease-in-out infinite meterFill}.htp .note{fill:var(--dim);letter-spacing:.2em}@keyframes meterFill{0%,to{width:24px}55%{width:132px}}.htp .fog rect{fill:#090b10;opacity:.94}.htp .cone path{fill:var(--cyan);opacity:.16;transform-origin:var(--ox) var(--oy);animation:5s ease-in-out infinite sweep}@keyframes sweep{0%,to{transform:rotate(-16deg)}50%{transform:rotate(16deg)}}.htp .load rect{fill:var(--warn);animation:4.4s ease-in-out infinite loadUp}.htp .pressure path{fill:none;stroke:var(--warn);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:6 7;animation:1.5s linear infinite climb}.htp .countdown rect{fill:#0c0e12e6;stroke:var(--warn)}.htp .countdown text{fill:var(--warn)}.htp .countdown{animation:1s steps(2,end) infinite blink}@keyframes loadUp{0%,to{opacity:.12}70%{opacity:.95}}@keyframes climb{to{stroke-dashoffset:-13px}}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}.htp .bulwark rect{fill:#7d8795;stroke:var(--cyan)}.htp .pressure.blocked path{animation:1.5s linear infinite climb,4s ease-in-out infinite stall}.htp .pressure.diverted path{stroke-dasharray:120;animation:4s ease-in-out infinite divert}@keyframes stall{0%,45%{opacity:1}70%,to{opacity:.2}}@keyframes divert{0%,40%{stroke-dashoffset:120px;opacity:0}65%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:1}}.htp .bug{animation:5s linear infinite walk}.htp .bug ellipse{fill:#8a3b12}.htp .bug circle{fill:var(--warn)}.htp .shot path{stroke:var(--cyan);stroke-width:1.5px;animation:5s linear infinite fire}@keyframes walk{0%{transform:translateX(var(--from));opacity:0}8%{opacity:1}70%{transform:translateX(var(--to));opacity:1}76%,to{transform:translateX(var(--to));opacity:0}}@keyframes fire{0%,34%{opacity:0}36%,40%{opacity:1}42%,to{opacity:0}}.htp .beam path{stroke:var(--violet);stroke-width:2.5px;stroke-linecap:round;animation:2.4s ease-in-out infinite beamPulse}.htp[data-step="7"] .core{animation:2.8s ease-in-out infinite corePulse,6s ease-in-out infinite dying}@keyframes beamPulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes dying{0%{transform:scale(1)}to{transform:scale(.45)}}.htp .shaft rect{fill:#0b1a22;stroke:var(--cyan);stroke-width:.8px}.htp .charge circle{fill:var(--cyan);animation:4.5s ease-in infinite drop}.htp .climb ellipse{fill:#8a3b12;animation:4.5s ease-in 2.2s infinite climbOut}@keyframes drop{0%{opacity:0;transform:translateY(0)}10%{opacity:1}45%{opacity:1;transform:translateY(112px)}55%,to{opacity:0;transform:translateY(112px)}}@keyframes climbOut{0%{opacity:0;transform:translateY(112px)}10%{opacity:1}45%,to{opacity:0;transform:translateY(-6px)}}@media (width<=900px){.guide{width:calc(100vw - 24px)}}.fleet-ui{pointer-events:none;position:absolute;inset:0}.fleet-ui>*{pointer-events:auto}.fleet-head{text-align:center;pointer-events:none;position:absolute;top:22px;left:0;right:0}.fleet-head h1{letter-spacing:.62em;color:var(--ink);margin:0;font-size:17px}.fleet-head .lede{letter-spacing:.04em;text-transform:none;color:var(--dim);margin:9px 0 0;font-size:11px}.world-card{text-align:center;border-color:var(--hair);width:min(520px,100vw - 32px);position:absolute;bottom:88px;left:50%;transform:translate(-50%)}.world-card h2{letter-spacing:.34em;color:var(--ink);margin:0;font-size:14px}.world-card .world-row{justify-content:center;align-items:center;gap:8px;margin-top:8px;display:flex}.world-card .tag{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border:1px solid var(--hair);border-radius:2px;padding:0 6px;font-size:9px}.world-card .state{letter-spacing:.2em;text-transform:uppercase;font-size:9px}.world-card .state.ok{color:var(--cyan)}.world-card .state.open{color:var(--ink)}.world-card .state.shut{color:var(--dim)}.fleet-ui .world-blurb{letter-spacing:.02em;text-transform:none;color:var(--dim);margin:10px 0 0;font-size:11px;line-height:1.6}.world-stats{justify-content:center;align-items:center;gap:12px;margin-top:11px;display:flex}.world-stats .k{color:var(--dim);font-size:10px}.rating{gap:3px;display:flex}.rating i{border:1px solid var(--hair);border-radius:1px;width:6px;height:6px}.rating i.on{background:var(--cyan);border-color:var(--cyan)}.chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}.chips .chip{font:inherit;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border:1px solid var(--hair);cursor:pointer;background:#14171dcc;border-radius:2px;padding:4px 11px;font-size:10px}.chips .chip:hover:not(:disabled),.chips .chip.showing{border-color:var(--cyan);color:var(--cyan)}.chips .chip.locked{color:var(--dim);cursor:default;border-color:#7d8a964d}.chips .chip.beaten{border-color:#4fd8ff8c}.fleet-foot{justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:14px;left:18px;right:18px}.fleet-foot .k{color:var(--dim);font-size:10px}.fleet-foot .reset{font:inherit;letter-spacing:.1em;color:var(--dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;padding:2px 7px;font-size:10px}.fleet-foot .reset:hover{color:var(--bad);border-color:var(--bad)}@media (width<=820px){.world-card{width:calc(100vw - 20px);bottom:108px}.fleet-head h1{letter-spacing:.4em;font-size:14px}}.outcome .ends{gap:6px;margin-top:14px;display:flex}.outcome .ends button.again{letter-spacing:.1em;flex:1;width:auto;margin-top:0}.outcome .ends button.armed{border-color:var(--cyan);background:#4fd8ff38}@media (width<=820px){.fleet{width:calc(100vw - 20px)}.world .disc{width:40px;height:40px}}.demo{width:min(620px,100vw - 36px);padding:9px 13px 11px;bottom:18px;left:50%;transform:translate(-50%)}.demo-head{letter-spacing:.1em;color:var(--dim);align-items:baseline;gap:10px;font-size:10px;display:flex}.demo-badge{color:var(--cyan)}.demo-name{color:var(--ink);letter-spacing:.24em;text-transform:uppercase}.demo-note{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.04em;flex:1;min-width:0;overflow:hidden}.demo-time{font-variant-numeric:tabular-nums}.demo-track{background:#4fd8ff29;height:2px;margin:8px 0 9px;display:block}.demo-track i{background:var(--cyan);width:0;height:100%;transition:width .2s linear;display:block}.demo .demo-move{letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin:0;font-size:11px}.demo .demo-why{letter-spacing:.02em;text-transform:none;min-height:2.9em;color:var(--ink);margin:4px 0 0;font-size:11px;line-height:1.5}.demo.lost .demo-move{color:var(--warn)}.cell button.order{letter-spacing:.08em}.cell button.order.armed{border-color:var(--cyan);color:var(--ink);background:#4fd8ff33}.status .hold-rows{margin-top:2px}.panel{z-index:1}.alerts{z-index:3}.tutorial{z-index:4}.guide,.outcome,.debug{z-index:5}@media (width<=680px),(height<=560px){body{font-size:10px}.panel{padding:7px 9px}.panel h1{letter-spacing:.4em;font-size:12px}.panel h2{font-size:9px}.status h1{margin-right:8px;display:inline-block}.status>p{display:inline-block}.status .transport button{padding:5px 0}.status button.xray{margin-top:5px}.build{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:6px;max-width:none;padding:6px;overflow-x:auto;transform:none}.build::-webkit-scrollbar{display:none}.build button{flex:none;min-width:66px}.alerts{top:46%;bottom:auto}.alerts p{margin:3px 0}.guide{width:calc(100vw - 16px);max-height:calc(100vh - 24px)}.outcome{width:min(340px,100vw - 24px);padding:14px 18px}}@media (width<=680px){.status{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));min-width:0}.debug{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right))}.status .rows{grid-template-columns:auto 1fr auto auto 1fr auto;column-gap:9px}.cell,.resonator,.tutorial{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));top:auto;bottom:calc(76px + env(safe-area-inset-bottom));width:auto;min-width:0;max-width:none;max-height:40vh;overflow-y:auto;transform:none}}@media (height<=560px) and (width>=681px){.status{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));width:min(300px,36vw);min-width:0;max-height:calc(100vh - 88px);overflow-y:auto}.cell,.resonator{left:auto;right:calc(8px + env(safe-area-inset-right));top:calc(8px + env(safe-area-inset-top));width:min(300px,36vw);min-width:0;max-width:none;max-height:calc(100vh - 88px);bottom:auto;overflow-y:auto}.tutorial{top:calc(8px + env(safe-area-inset-top));width:min(360px,40vw)}.build{max-width:calc(100vw - 32px);left:50%;right:auto;transform:translate(-50%)}}@media (hover:none){.hints{display:none}.cell button,.status button,.build button,.tutorial button{min-height:34px}.status .transport button{min-height:30px}}#hud.veiled:before{content:"";-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:4;pointer-events:auto;background:#07080bc7;position:fixed;inset:0}[hidden]{display:none!important}.guide{flex-direction:column;display:flex;overflow:hidden}.guide .reading{flex:auto;min-height:0;overflow-y:auto}.guide .foot{flex:none}@media (width<=680px),(height<=560px){.guide{width:calc(100vw - 16px);max-height:calc(100vh - 20px);padding:9px 11px}.guide .stage svg{height:min(26vh,200px)}.guide h2{margin-bottom:7px}.guide .verdict{margin-top:8px}.guide .foot{gap:6px;margin-top:9px}.guide .foot button{min-width:52px;padding:6px 8px}.guide .keys{grid-template-columns:72px 1fr;padding:10px 12px}}@media (height<=560px){.guide{width:min(520px,100vw - 32px)}.guide .stage{max-width:330px;margin-inline:auto}.guide .stage svg{height:min(42vh,168px)}.guide .blurb{line-height:1.5}}
