@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Barlow-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Barlow-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Barlow-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Barlow-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rajdhani;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Rajdhani-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rajdhani;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Rajdhani-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--space: #070a0f;--chrome: #1c232c;--raised: #26303b;--hi: #3d4b59;--lo: #0b0f14;--well: #0d1218;--cream: #e8dfc6;--cream-dark: #c9bd9c;--ink: #1c232c;--coral: #ff8a5c;--coral-ink: #7a3a1e;--teal: #4fd1c5;--teal-ink: #1d6b64;--mustard: #f2c14e;--amber: #ffb347;--ok: #8fe388;--bad: #ff5c5c;--text: #e9e4d6;--muted: #8f9aa6;--fd: "Rajdhani", "Barlow", "Helvetica Neue", Arial, sans-serif;--fu: "Barlow", "Helvetica Neue", Arial, sans-serif;--fm: "IBM Plex Mono", "Courier New", monospace;--rail: 48px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--space) url(/art/space.webp) center / 1024px;color:var(--text);font:13px/1.35 var(--fu);overflow:hidden}a{color:var(--teal);text-decoration:none}a:hover{color:var(--coral)}::selection{background:var(--coral);color:var(--ink)}input,select{background:var(--well);color:var(--text);border:1px solid var(--lo);box-shadow:inset 0 1px #0008;border-radius:3px;padding:6px 8px;font:inherit}input::placeholder{color:var(--muted)}input:focus{outline:1px solid var(--teal);outline-offset:0}input[type=range]{accent-color:var(--cream);padding:0;border:0;box-shadow:none;background:transparent}.mono{font-family:var(--fm)}.muted{color:var(--muted)}.small{font-size:11px}.display{font-family:var(--fd);font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--cream);line-height:.95}.bad{color:var(--bad)}.app{height:100%;display:flex;flex-direction:column}.rail{height:var(--rail);flex:none;display:flex;align-items:center;gap:14px;padding:0 14px;background:var(--chrome) url(/art/gunmetal-light.webp) center / 512px;border-bottom:2px solid #0b0f14;box-shadow:inset 0 -1px #fff2,0 2px #3d4b59,0 4px 12px #000a}.rail .brand{display:flex;align-items:center;gap:10px;color:inherit}.rail .brand .name{font-family:var(--fd);font-weight:700;font-size:24px;letter-spacing:.16em;color:var(--cream);line-height:1}.rail .brand .sub{font-family:var(--fm);font-size:9px;letter-spacing:.22em;color:var(--muted);line-height:1}.rail .divider{width:1px;height:28px;background:var(--lo);box-shadow:1px 0 0 var(--hi)}.rail .nav{display:flex;gap:6px}.rail .spacer{flex:1}.rail .credits{display:flex;align-items:center;gap:6px;font-family:var(--fm);font-size:13px;color:var(--mustard)}.rail .rank{display:flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--hi);border-radius:3px;font-family:var(--fd);font-weight:700;font-size:14px;letter-spacing:.12em;color:var(--cream);text-transform:uppercase}.rail .clock{display:flex;align-items:center;gap:6px;font-family:var(--fm);font-size:11px;color:var(--muted)}.rail .clock b{color:var(--text);font-weight:500}.rail .who{font-family:var(--fm);font-size:11px;color:var(--muted)}.screen{flex:1;min-height:0;display:grid;gap:10px;padding:10px}.screen.three{grid-template-columns:288px minmax(0,1fr) 312px}.screen.chart{grid-template-columns:288px minmax(0,1fr) 336px}.screen.bridge{grid-template-columns:400px minmax(0,1fr) 360px}.screen.centre{display:flex;justify-content:center;align-items:flex-start;overflow:auto}.col{display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto}.col>.grow{flex:1}@media(max-width:1100px){body{overflow:auto}.screen.three,.screen.chart,.screen.bridge{grid-template-columns:1fr}.col{overflow:visible}.viewport{min-height:60vh}}.panel{background:var(--chrome) url(/art/gunmetal.webp) center / 512px;background-clip:padding-box;border:14px solid transparent;border-image:url(/art/panel-frame.webp) 97 / 14px stretch;border-radius:6px;flex:none}.panel>.body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px}.panel>.body.tight{padding:6px;gap:2px}.plate{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--cream) url(/art/enamel.webp) center / 256px;color:var(--ink);font-family:var(--fd);font-weight:700;font-size:16px;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px 3px 12px;border-radius:3px 3px 0 0}.plate .aside{font-family:var(--fm);font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:none}.plate .rivets{display:flex;gap:6px}.plate .rivets i{width:5px;height:5px;border-radius:50%;background:var(--cream-dark);box-shadow:inset 0 1px #fff8;display:block}.enamel{background:var(--cream) url(/art/enamel.webp) center / 256px;color:var(--ink);border-radius:6px;padding:10px 12px;display:flex;gap:10px;box-shadow:0 2px 0 var(--cream-dark),inset 0 0 0 1px #fff6;flex:none}.enamel a{color:var(--coral-ink);font-weight:600;letter-spacing:.06em;font-size:11px}.enamel .title{font-family:var(--fd);font-weight:700;font-size:14px;letter-spacing:.12em}.enamel p{margin:0;font-size:12.5px;line-height:1.35}.key{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:none;color:var(--text);border:7px solid transparent;border-image:url(/art/key.webp) 22 fill / 7px stretch;padding:1px 6px 3px;font-family:var(--fu);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;cursor:pointer;line-height:1.2;-webkit-user-select:none;user-select:none;text-shadow:0 1px 0 #0008}.key:hover{filter:brightness(1.18);color:#fff}.key:active{transform:translateY(1px);filter:brightness(.92)}.key.on{border-image-source:url(/art/key-teal.webp);color:var(--ink);text-shadow:0 1px 0 #fff5}.key.on:hover{color:var(--ink)}.key.primary{border-image-source:url(/art/key-coral.webp);color:var(--ink);text-shadow:0 1px 0 #fff5}.key.primary:hover{color:var(--ink)}.key.big{height:56px;border-width:12px;border-image-width:12px;font-family:var(--fd);font-weight:700;font-size:24px;letter-spacing:.14em;width:100%}.key.sm{padding:0 4px 1px;border-width:6px;border-image-width:6px}.key:disabled{opacity:.45;cursor:default;transform:none;filter:none}.keys{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.lamp{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none;background:currentColor;box-shadow:0 0 6px currentColor,inset 0 -1px 1px #0008;vertical-align:-1px}.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-family:var(--fm);font-size:11.5px}.kv b{color:var(--muted);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.status-line{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.row{display:flex;align-items:center;gap:8px}.row.between{justify-content:space-between}.list-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--lo)}.list-row .name{display:flex;flex-direction:column;flex:1;line-height:1.2;font-weight:600}.list-row .name .sub{font-family:var(--fm);font-size:10.5px;color:var(--muted);font-weight:400}.swatch{width:12px;height:12px;border-radius:3px;flex:none;display:inline-block}.toggle{display:inline-flex;border:1px solid var(--lo);border-radius:3px;overflow:hidden}.toggle button{border:0;background:var(--raised);color:var(--muted);padding:3px 8px;font:600 10px/1.3 var(--fu);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.toggle button.on.coral{background:var(--coral);color:var(--ink)}.toggle button.on.teal{background:var(--teal);color:var(--ink)}.toggle button:disabled{cursor:default;opacity:.7}.stamp{display:inline-block;transform:rotate(-6deg);border:2px solid currentColor;font-family:var(--fd);font-weight:700;font-size:14px;letter-spacing:.14em;padding:1px 6px 0;border-radius:3px;opacity:.9;text-transform:uppercase;line-height:1.3}.stamp.conquest,.stamp.settled{color:var(--ok)}.stamp.evolving,.stamp.open{color:var(--amber)}.stamp.outpost{color:var(--teal)}.stamp.extinct,.stamp.lost,.stamp.departed{color:var(--coral)}.stamp.pristine{color:var(--muted)}.bar{height:8px;background:var(--lo);border-radius:4px;overflow:hidden;position:relative}.bar>i{display:block;height:100%;background:var(--teal);border-radius:4px}.bar>i.ok{background:var(--ok)}.bar>i.coral{background:var(--coral)}.bar .mark{position:absolute;top:-3px;width:2px;height:14px;background:var(--cream)}.gauge{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;text-align:center}.gauge>div{background:var(--lo);border-radius:4px;padding:6px 4px}.gauge .lbl{font-family:var(--fm);font-size:9px;letter-spacing:.12em;color:var(--muted)}.gauge .val{font-family:var(--fd);font-weight:700;font-size:26px;color:var(--cream);line-height:1;margin-top:2px}.gauge .val.ok{color:var(--ok)}.gauge .val.bad{color:var(--bad)}table.ledger{width:100%;border-collapse:collapse;font-size:12.5px}table.ledger th{text-align:left;padding:6px 8px;font:500 10px/1.3 var(--fm);letter-spacing:.14em;color:var(--muted);text-transform:uppercase}table.ledger td{padding:7px 8px;border-top:1px solid var(--lo)}table.ledger td.num,table.ledger th.num{text-align:right}table.ledger .credits{font-family:var(--fm);color:var(--mustard)}.viewport{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--chrome) url(/art/gunmetal-light.webp) center / 512px;border:1px solid var(--lo);border-radius:10px;box-shadow:inset 0 1px #fff2,0 2px 0 var(--lo);padding:4px}.crt{position:relative;flex:1;min-height:0;background:var(--space);background-clip:padding-box;border:26px solid transparent;border-image:url(/art/crt-frame.webp) 74 / 26px stretch;overflow:hidden}.crt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;background:repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 60%,#00000066 100%)}.stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--hi) transparent}.stage canvas{display:block;cursor:crosshair}.overlay{position:absolute;z-index:2;pointer-events:none}.overlay.hud{background:#0d1218dd;border:1px solid var(--hi);border-radius:3px;padding:5px 8px;font-family:var(--fm);font-size:11px;display:flex;flex-wrap:wrap;gap:4px 12px;max-width:min(520px,70%)}.overlay.hud>span{white-space:nowrap}.overlay.hud>span.bad{white-space:normal;flex-basis:100%}.overlay.tools{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:10px;color:var(--muted);pointer-events:auto}.alerts{display:flex;flex-direction:column;gap:4px}.alert{background:#0d1218dd;border-left:3px solid var(--teal);padding:4px 8px;font-size:11px;font-weight:600;letter-spacing:.04em}.alert.bad{border-color:var(--bad)}.alert.amber{border-color:var(--amber)}.alert.ok{border-color:var(--ok)}.minimap{position:absolute;left:10px;bottom:10px;z-index:2;background:#0d1218dd;padding:2px;border:1px solid var(--hi);border-radius:3px;box-shadow:0 0 0 2px #000a;cursor:pointer}.minimap canvas{display:block}.bottom-rail{height:40px;flex:none;display:flex;align-items:center;gap:10px;margin-top:4px;padding:2px 6px 3px;border:10px solid transparent;border-image:url(/art/tray.webp) 22 fill / 10px stretch}.bottom-rail .scrub{flex:1;display:flex;align-items:center;gap:8px}.bottom-rail .scrub input{flex:1}.bottom-rail .scrub.off{opacity:.4;pointer-events:none}.cmdcard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px}.cmd{position:relative;aspect-ratio:1;background:none;border:9px solid transparent;border-image:url(/art/key-sq.webp) 26 fill / 9px stretch;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.cmd:hover{filter:brightness(1.18)}.cmd.on{border-image-source:url(/art/key-sq-teal.webp)}.cmd.on .hot,.cmd.on .count{color:var(--ink)}.cmd.locked{opacity:.4;cursor:default}.cmd.empty{border-image:none;border:1px solid var(--lo);background:var(--lo);cursor:default}.cmd:disabled:not(.on){opacity:.4;cursor:default}.cmd .hot{position:absolute;top:2px;left:4px;font:400 9px/1 var(--fm);color:var(--muted)}.cmd .count{position:absolute;bottom:2px;right:4px;font:500 11px/1 var(--fm);color:var(--text)}.cmd .lock{position:absolute;bottom:3px;right:3px}.stamps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}.stamp-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;background:transparent;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer;width:100%;min-width:0}.stamp-row .name{min-width:0}.stamp-row .name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deploy-block{position:sticky;bottom:0;background:var(--space);padding-top:6px;display:flex;flex-direction:column;gap:6px}.stamp-row:hover{background:var(--raised)}.stamp-row.on{background:var(--raised);box-shadow:inset 0 0 0 1px var(--teal)}.stamp-row svg{flex:none;background:var(--lo);border-radius:2px}.stamp-row .name{display:flex;flex-direction:column}.stamp-row .name b{font-weight:600;font-size:12px;letter-spacing:.04em}.stamp-row .name span{font-family:var(--fm);font-size:10px;color:var(--muted)}.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.shelf>div{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;background:var(--lo);border-radius:4px}.shelf .slot{width:44px;height:44px;background:var(--raised);border-radius:4px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 var(--hi)}.shelf .nm{font-size:11px;font-weight:600}.shelf .qty{font-family:var(--fm);font-size:12px;color:var(--cream)}.shelf>div.locked{border:1px dashed var(--hi);background:transparent;opacity:.6;justify-content:center}.shop-row{display:grid;grid-template-columns:32px 1fr auto auto;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--lo)}.shop-row.locked{opacity:.45}.shop-row .price{font-family:var(--fm);color:var(--mustard)}.inbox{position:relative;display:inline-flex}.inbox .badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--coral);color:var(--ink);font:600 10px/16px var(--fm);text-align:center}.inbox .drop{position:absolute;right:0;top:40px;width:360px;z-index:20;max-height:70vh;overflow-y:auto}.inbox .item{padding:8px 12px;border-top:1px solid var(--lo);display:flex;flex-direction:column;gap:2px}.inbox .item .t{display:flex;align-items:center;gap:8px;font-weight:600}.clockin{width:460px;margin:60px auto;display:flex;flex-direction:column;gap:14px}.clockin .crest{display:flex;flex-direction:column;align-items:center;gap:6px}.clockin form{display:flex;gap:8px}.clockin form input{flex:1}.guide{width:min(760px,100%);display:flex;flex-direction:column;gap:10px}.guide-list{display:flex;flex-direction:column}.guide-row{display:flex;gap:10px;padding:8px 6px;align-items:flex-start}.guide-row+.guide-row{border-top:1px solid var(--lo)}.guide-row svg{flex:none;background:var(--lo);border-radius:2px;margin-top:2px}.guide-row .text{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.guide-row b{font-weight:600;font-size:12.5px;letter-spacing:.04em}.guide-row .short{font-size:12px}.guide-row .detail{font-size:11.5px}
