:root{color-scheme:dark;--bg:#070d17;--panel:rgba(10,20,31,.94);--line:#25414a;--muted:#91a6b2;--ink:#edf6f6;--mint:#90efdc;--orange:#eeab6c;--red:#fa8d8d;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-synthesis:none;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);overflow:hidden;overscroll-behavior:none}button,input{font:inherit}button{color:inherit;cursor:pointer;border:1px solid var(--line);background:#12222e;min-height:44px;padding:10px 16px;border-radius:6px;transition:background .15s,border-color .15s,transform .15s}button:hover{background:#213943;border-color:#6db6ad}button:active{transform:translateY(1px)}button:disabled{cursor:default;opacity:.4;transform:none}button:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}.primary{background:var(--mint);color:#092721;border-color:var(--mint);font-weight:700}.primary:hover{background:#b4f8e9;color:#07261d}.quiet{background:transparent}.danger{border-color:#795150;color:#ffa6a6}.small{font-size:.875rem;padding:8px 12px}.accent{color:var(--mint)}.muted{color:var(--muted)}.tag,.eyebrow{font-size:.75rem;font-weight:650;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.tag{display:inline-block;letter-spacing:.05em;padding:5px 8px;border:1px solid var(--line);border-radius:3px}.tag.safe{color:var(--mint)}.tag.risk{color:var(--orange)}.tag.danger{color:var(--red)}h1,h2,h3,p{margin:0}h2{font-size:1.65rem;font-weight:550;letter-spacing:-.035em}h3{font-size:1.1rem;font-weight:600}p{line-height:1.6}svg{display:block}#space{position:fixed;inset:0;width:100%;height:100%;touch-action:none;contain:strict;background:#060c16}#game{position:fixed;inset:0;pointer-events:none}button,input,a,.panel,.welcome,.modal,.stick{pointer-events:auto}.hud{position:absolute;inset:0;display:flex;flex-direction:column;padding:max(22px,env(safe-area-inset-top)) max(26px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(26px,env(safe-area-inset-left));background:linear-gradient(#060e18c9,transparent 190px,transparent calc(100% - 165px),#060e18bf);gap:15px}.topbar{display:flex;align-items:center;gap:24px;min-height:48px}.brand{font-size:1rem;letter-spacing:.26em;font-weight:750;color:var(--ink);white-space:nowrap}.brand .star{color:var(--mint);font-size:1.5rem;margin-right:12px;vertical-align:-2px}.divider{height:30px;width:1px;background:var(--line)}.system-name{font-weight:550;font-size:1.13rem}.system-sub{font-size:.75rem;color:var(--muted);margin-top:4px;letter-spacing:.06em}.top-right{display:flex;align-items:center;gap:16px;margin-left:auto}.credits{text-align:right;font-size:1.1rem;font-variant-numeric:tabular-nums}.credits small{display:block;font-size:.75rem;color:var(--muted);letter-spacing:.08em;margin-bottom:2px}.icon-button{width:44px;padding:9px;display:grid;place-items:center;background:#0a172699}.underbar{display:flex;gap:20px;align-items:center}.stat{display:grid;gap:5px;min-width:112px;font-size:.75rem;letter-spacing:.04em}.stat-label{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}.stat-label b{color:var(--ink);font-weight:500}.meter{height:3px;background:#263b4a;border-radius:3px;overflow:hidden}.meter i{height:100%;display:block;background:var(--mint);transition:width .15s}.stat.hull .meter i{background:#e9b07e}.stat.fuel .meter i{background:#88b6ea}.flight-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.location-info{padding-top:12px}.location-info .eyebrow{margin-bottom:8px}.location-info h2{font-size:clamp(1.5rem,3vw,2.8rem);font-weight:450;letter-spacing:-.035em}.location-info p{font-size:.875rem;color:var(--muted);margin-top:8px;max-width:270px}.target-panel{width:235px;padding:16px;border-left:2px solid #77cdbd;background:linear-gradient(90deg,#0d1c29e8,#0d1c2910)}.target-panel h3{margin:7px 0}.target-meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin:10px 0}.target-panel button{width:100%;margin-top:6px}.target-panel .target-row{display:flex;gap:8px}.target-row button{padding:8px;min-height:38px;font-size:.75rem}.target-list{display:flex;gap:8px;margin-top:10px}.target-list button{padding:7px 10px;min-height:34px;font-size:.75rem}.bottom{margin-top:auto;display:flex;align-items:flex-end;gap:25px}.nav{display:flex;gap:8px;margin:0 auto 4px}.nav button{display:flex;gap:9px;align-items:center;font-size:.875rem;background:#0b1824de;padding:11px 18px}.nav svg{width:17px;height:17px;color:var(--mint)}.control-zone{display:flex;align-items:flex-end;gap:15px}.stick-wrap{text-align:center}.stick{width:128px;height:128px;border:1px solid #4867788c;border-radius:50%;background:radial-gradient(circle,#1b354747,#10243422);position:relative;touch-action:none;user-select:none}.stick:before,.stick:after{content:'';position:absolute;background:#42617160}.stick:before{left:50%;top:10px;height:calc(100% - 20px);width:1px}.stick:after{top:50%;left:10px;width:calc(100% - 20px);height:1px}.stick-knob{position:absolute;width:50px;height:50px;left:calc(50% - 25px);top:calc(50% - 25px);border-radius:50%;background:#183b4b;border:1px solid #81c8c3a6;box-shadow:0 0 18px #72c4c320;pointer-events:none}.control-caption{font-size:.75rem;letter-spacing:.1em;color:#9cb4bd;margin-top:10px}.speed-box{margin-bottom:28px;font-variant-numeric:tabular-nums}.speed-box b{font-size:1.8rem;font-weight:400}.speed-box small{color:var(--muted);font-size:.75rem}.speed-box div{font-size:.75rem;color:var(--muted);letter-spacing:.07em;margin-top:4px}.action-zone{display:flex;gap:10px;align-items:flex-end}.aux-actions{display:flex;flex-direction:column;gap:8px}.aux-actions button{font-size:.75rem;min-width:72px;background:#0b1824ce;touch-action:none;user-select:none}.fire{width:90px;height:90px;border-radius:50%;background:#33251dc9;border:1px solid #d89460;color:#f7c89a;font-size:.75rem;letter-spacing:.06em;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;touch-action:none;user-select:none}.fire svg{width:24px;height:24px}.fire.held{background:#79502f}.boost.held{background:#27534e;color:var(--mint)}.radar-wrap{position:absolute;right:28px;bottom:155px;pointer-events:none}.radar-wrap canvas{width:134px;height:134px}.radar-mode{display:block;text-align:center;margin-top:4px;font-size:.7rem;letter-spacing:.16em;font-weight:650;color:var(--mint);text-shadow:0 1px 8px #000}.center-status{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--mint);letter-spacing:.1em;font-size:.875rem;pointer-events:none;text-shadow:0 2px 15px #000}.center-status .progress{height:3px;width:200px;background:#294744;margin-top:14px}.center-status .progress i{display:block;height:3px;background:var(--mint)}.scan-hint{position:absolute;left:50%;top:35%;transform:translateX(-50%);text-align:center;color:var(--muted);font-size:.75rem;letter-spacing:.08em}.toasts{position:absolute;top:155px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;max-width:min(470px,85vw);z-index:20}.toast{font-size:.875rem;background:#112432f0;border:1px solid #314c59;border-left:3px solid var(--mint);padding:10px 15px;box-shadow:0 10px 40px #0004;border-radius:4px;animation:toast-in .2s ease;max-width:100%;text-align:center}.toast.bad{border-left-color:var(--red)}@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.screen-cover{pointer-events:auto;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#03091380;z-index:30;padding:20px}.modal{width:min(900px,100%);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;background:#0b1723f7;border:1px solid #334955;border-radius:12px;box-shadow:0 30px 150px #0008;overflow:hidden}.modal-head{padding:23px 26px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #233946;gap:12px;flex-shrink:0}.modal-head .eyebrow{margin-bottom:5px}.modal-head .actions{display:flex;gap:8px;align-items:center}.modal-body{padding:24px 26px;overflow:auto;overscroll-behavior:contain;min-height:0}.modal-foot{padding:16px 26px;border-top:1px solid #233946;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-shrink:0}.modal-foot .muted{font-size:.875rem}.tabs{display:flex;padding:0 26px;gap:20px;border-bottom:1px solid #233946;flex-shrink:0;overflow-x:auto}.tabs button{border:0;border-radius:0;background:transparent;white-space:nowrap;padding:16px 2px;color:var(--muted);font-size:.875rem;border-bottom:2px solid transparent}.tabs button.active{color:var(--mint);border-color:var(--mint)}.intro{font-size:.875rem;color:var(--muted);margin-bottom:20px}.station-status{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.station-status button{font-size:.875rem}.market{width:100%;border-collapse:collapse}.market th{text-align:left;font-size:.75rem;color:var(--muted);font-weight:500;padding:0 8px 14px;letter-spacing:.06em;border-bottom:1px solid #273e4c}.market td{padding:16px 8px;border-bottom:1px solid #20323e;font-size:.875rem}.market .good-name{font-size:1rem;font-weight:550}.commodity-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:9px}.market .sub{font-size:.75rem;color:var(--muted);margin-top:5px;max-width:240px;line-height:1.4}.market td:last-child{text-align:right}.trade-buttons{display:flex;gap:7px;justify-content:flex-end}.trade-buttons button{padding:8px 12px;font-size:.875rem}.trade-hop{display:inline;min-height:0;padding:0;border:0;background:none;color:var(--mint);font-size:.8rem;letter-spacing:0;text-transform:none;font-weight:650}.row-label{display:flex;justify-content:space-between;align-items:center;gap:8px}.quantity{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:.875rem}.quantity button{min-height:36px;font-size:.8rem;padding:6px 12px}.quantity .active{border-color:var(--mint);color:var(--mint);background:#183e3b}.cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.card{border:1px solid #28404b;border-radius:7px;background:#101f2b;padding:20px}.card h3{margin:10px 0}.card p{font-size:.875rem;color:var(--muted);margin-bottom:16px}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-bottom b{font-weight:500;color:var(--mint);font-size:1rem}.card button{font-size:.875rem}.empty{padding:32px 10px;text-align:center;color:var(--muted);font-size:.94rem}.map-layout{display:grid;grid-template-columns:1fr 250px;gap:22px}.map-surface{position:relative;min-height:320px;background:#070f19;border:1px solid #233945;border-radius:8px;overflow:hidden}.galaxy-map{display:block;width:100%;height:100%;min-height:320px;touch-action:manipulation;pointer-events:auto}.map-legend{position:absolute;bottom:12px;left:14px;display:flex;gap:15px;font-size:.75rem;color:var(--muted);pointer-events:none}.map-side h2{margin:10px 0}.map-side p{font-size:.875rem;color:var(--muted);margin:12px 0 18px}.data-row{display:flex;justify-content:space-between;font-size:.875rem;border-bottom:1px solid #223540;padding:10px 0;gap:8px}.data-row span{color:var(--muted)}.map-side button{margin-top:18px;width:100%}.range-message{font-size:.75rem;color:var(--orange);margin-top:10px;line-height:1.5}.systems-strip{display:flex;gap:8px;overflow-x:auto;margin-top:16px;padding-bottom:4px}.systems-strip button{font-size:.8rem;white-space:nowrap;min-height:36px;padding:7px 11px}.systems-strip button.active{color:var(--mint);border-color:var(--mint)}.ship-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.ship-filters button{padding:7px 12px;border-radius:8px;border:1px solid #334955;background:#0f1c27;color:#9eb7bd;font:inherit;cursor:pointer}.ship-filters button.active{border-color:#83d7c4;color:#d7f7ef;background:#143039}.ship-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.ship-card{padding:20px 17px}.ship-card.selected{border-color:var(--ship,#83d7c4)}.ship-card p{min-height:64px}.ship-card .data-row{font-size:.8rem}.ship-card button{width:100%;margin-top:18px}.ship-card .ship-icon{font-size:2.8rem;color:var(--mint);line-height:1.2;margin:8px 0 16px;font-weight:250}.ship-preview{display:block;width:100%;height:88px;margin:10px 0 14px;background:radial-gradient(circle at 28% 18%,#1a3344,#0a1620 68)%);border:1px solid #29404c;border-radius:8px}.upgrade-list{display:flex;flex-direction:column;gap:12px}.upgrade-row{border:1px solid #28404b;border-radius:6px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:16px}.upgrade-row p{font-size:.875rem;color:var(--muted);margin-top:6px}.pips{display:flex;gap:5px;margin-top:12px}.pips i{width:20px;height:4px;background:#2b414c}.pips i.on{background:var(--mint)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.stat-card{padding:18px;border:1px solid #2d434e;border-radius:6px}.stat-card b{display:block;font-size:1.75rem;font-weight:450;margin-bottom:7px;color:var(--mint)}.stat-card span{font-size:.8rem;color:var(--muted)}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0}.help-grid h3{font-size:1rem;margin-bottom:7px}.help-grid p{font-size:.875rem;color:var(--muted)}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 0;border-top:1px solid #253b47}.setting-row p{font-size:.8rem;color:var(--muted);margin-top:5px}.setting-row button{flex-shrink:0;font-size:.875rem}.hidden{display:none!important}.welcome-cover{pointer-events:auto;position:absolute;inset:0;background:linear-gradient(90deg,#07101bea,#07101b20 85%);z-index:40;display:flex;align-items:center;padding:7vw;overflow:auto}.welcome{max-width:570px}.welcome .eyebrow{color:var(--mint);letter-spacing:.22em;margin-bottom:22px}.welcome h1{font-size:clamp(3.5rem,8vw,6.8rem);letter-spacing:-.065em;font-weight:450;line-height:.92;margin-bottom:20px}.welcome h1 span{display:block;font-size:.21em;letter-spacing:.4em;color:#a1b7c1;margin-top:18px;font-weight:400}.welcome p{color:#abc0ca;font-size:1.03rem;max-width:420px;margin:28px 0}.welcome-actions{display:flex;gap:12px;flex-wrap:wrap}.welcome .primary{padding:16px 26px;min-width:200px}.welcome-notes{display:flex;gap:17px;margin-top:22px;font-size:.75rem;color:#839da9;flex-wrap:wrap}.welcome-footer{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:7vw;font-size:.75rem;letter-spacing:.08em;color:#66808f}.keyboard-hint{font-size:.75rem;color:#79929f;text-align:center;margin-top:12px}.tutorial{position:absolute;left:50%;bottom:115px;transform:translateX(-50%);max-width:390px;text-align:center;padding:12px 20px;background:#102631da;border:1px solid #33565b;border-radius:5px;font-size:.875rem;line-height:1.5}.tutorial button{display:block;font-size:.8rem;padding:6px 14px;min-height:32px;margin:8px auto 0}.pause-tag{display:inline-block;margin-left:14px;color:var(--orange);font-size:.75rem;letter-spacing:.08em}.switch-on{color:var(--mint);border-color:#5b9f94}.file-input{max-width:250px;color:var(--muted);font-size:.875rem}.detail-text{font-size:.875rem;color:var(--muted);line-height:1.6}.canvas-fallback{position:fixed;inset:0;background:#070d17;color:#edf6f6;padding:30px;z-index:100}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1000px){.hud{padding:16px}.brand{font-size:.875rem}.brand .star{margin-right:6px}.topbar{gap:15px}.bottom{gap:14px}.speed-box{display:none}.nav button{padding:11px 12px}.target-panel{width:205px}.location-info p{max-width:210px}.radar-wrap{right:18px}.stick{width:112px;height:112px}.modal{max-height:calc(100dvh - 24px)}.screen-cover{padding:12px}}
@media(max-width:860px) and (min-width:651px){.bottom{flex-wrap:wrap;gap:10px}.nav{flex:1 1 100%;order:3;justify-content:space-around;margin:0}.action-zone{margin-left:auto;flex-shrink:0}.fire{width:78px;height:78px}.aux-actions button{min-width:62px;padding:8px 10px}}
@media(max-width:650px){.hud{padding:12px 12px max(12px,env(safe-area-inset-bottom));gap:12px}.topbar{gap:10px;min-height:39px}.brand{font-size:.75rem;letter-spacing:.14em}.brand .star{display:none}.divider{height:23px}.system-name{font-size:.9rem}.system-sub{font-size:.75rem;letter-spacing:0}.top-right{gap:8px}.credits{font-size:.9rem}.credits small{font-size:.75rem;letter-spacing:0}.top-right .icon-button{width:38px;min-height:38px}.underbar{gap:14px}.stat{min-width:0;flex:1;font-size:.75rem}.flight-top{gap:8px}.location-info{padding-top:8px}.location-info .eyebrow{font-size:.75rem;letter-spacing:.08em}.location-info h2{font-size:1.4rem}.location-info p{display:none}.target-panel{width:166px;padding:10px 9px;flex-shrink:0}.target-panel h3{font-size:.94rem;line-height:1.3}.target-meta{font-size:.75rem;gap:6px}.target-panel .eyebrow{font-size:.75rem;letter-spacing:.04em}.target-panel button{font-size:.8rem;min-height:39px;padding:7px 8px}.target-panel .target-row{gap:5px}.target-list{gap:4px;flex-wrap:wrap;max-width:150px}.target-list button{font-size:.75rem;padding:6px 7px;min-height:34px}.bottom{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.nav{grid-column:1/-1;grid-row:2;margin:0;width:100%;justify-content:space-around;gap:6px}.nav button{flex:1;justify-content:center;padding:10px 8px;font-size:.8rem;gap:7px}.nav svg{width:15px;height:15px}.control-zone{grid-row:1;grid-column:1}.action-zone{grid-row:1;grid-column:2;justify-content:flex-end}.stick{width:112px;height:112px}.control-caption{font-size:.75rem;margin-top:6px;letter-spacing:.06em}.fire{width:78px;height:78px;font-size:.75rem}.aux-actions button{min-width:62px;font-size:.75rem;padding:8px}.action-zone{gap:8px;padding-bottom:20px}.radar-wrap{right:12px;bottom:235px}.radar-wrap canvas{width:94px;height:94px}.toasts{top:120px;max-width:92vw;width:max-content}.toast{font-size:.8rem;padding:8px 12px}.screen-cover{padding:8px}.modal{max-height:calc(100dvh - 16px);border-radius:9px}.modal-head{padding:15px 16px}.modal-head h2{font-size:1.3rem}.modal-head .eyebrow{font-size:.75rem;letter-spacing:.08em}.modal-head .actions button{font-size:.8rem;padding:8px 10px;min-height:40px}.modal-body{padding:18px 16px}.modal-foot{padding:13px 16px;font-size:.8rem}.tabs{padding:0 16px;gap:18px}.tabs button{font-size:.875rem;padding:13px 1px}.cards{grid-template-columns:1fr}.card{padding:16px}.market .sub{display:none}.market td{padding:16px 4px;font-size:.8rem}.market th{font-size:.75rem;padding:0 4px 12px}.market .good-name{font-size:.875rem}.commodity-dot{display:none}.trade-buttons{gap:4px}.trade-buttons button{font-size:.75rem;padding:8px;min-height:40px}.market .supply{display:none}.station-status{gap:8px}.station-status button{padding:9px 12px;font-size:.8rem}.map-layout{grid-template-columns:1fr;gap:18px}.map-surface,.galaxy-map{min-height:240px;height:240px}.map-side h2{margin:7px 0}.map-side p{display:none}.map-side .data-row{padding:7px 0}.map-side button{margin-top:13px}.ship-grid{grid-template-columns:1fr}.ship-card p{min-height:0}.ship-preview{height:78px}
.upgrade-row{padding:14px 12px}.upgrade-row h3{font-size:1rem}.upgrade-row p{font-size:.8rem}.upgrade-row button{font-size:.8rem;padding:9px 11px;white-space:nowrap}.stats-grid{grid-template-columns:repeat(3,1fr);gap:8px}.stat-card{padding:13px 9px}.stat-card b{font-size:1.4rem}.stat-card span{font-size:.75rem}.help-grid{grid-template-columns:1fr;gap:16px}.welcome-cover{padding:8vw;align-items:center}.welcome h1{font-size:4rem}.welcome p{font-size:1rem;margin:26px 0}.welcome .eyebrow{font-size:.75rem;letter-spacing:.1em}.welcome-notes{gap:10px;font-size:.75rem}.welcome-footer{left:8vw;bottom:20px}.tutorial{bottom:240px;left:14px;transform:none;max-width:215px;text-align:left;padding:10px 13px;font-size:.8rem}.tutorial button{margin:8px 0 0}.keyboard-hint{display:none}.setting-row{align-items:flex-start}.setting-row button{max-width:135px}.file-input{width:140px}.pause-tag{display:none}}
@media(max-height:520px) and (min-width:651px){.hud{padding:10px 18px;gap:8px}.topbar{min-height:36px}.topbar .icon-button{width:36px;min-height:36px}.underbar{max-width:400px}.stat{font-size:.75rem;min-width:100px}.flight-top{position:absolute;top:90px;left:18px;right:18px}.location-info h2{font-size:1.5rem}.location-info p{display:none}.target-panel{width:182px;padding:10px}.target-panel h3{font-size:1rem;margin:5px 0}.target-panel button{min-height:34px;font-size:.8rem;padding:6px 8px}.target-panel .target-meta{margin:6px 0}.target-list{margin-top:8px}.target-list button{min-height:30px;font-size:.75rem;padding:5px 8px}.stick{width:94px;height:94px}.stick-knob{width:42px;height:42px;left:calc(50% - 21px);top:calc(50% - 21px)}.fire{width:74px;height:74px}.aux-actions button{min-height:36px;padding:6px 11px}.control-caption{font-size:.75rem;margin-top:4px}.nav button{padding:10px 12px}.radar-wrap{right:214px;bottom:78px}.radar-wrap canvas{width:88px;height:88px}.tutorial{bottom:76px;max-width:330px;font-size:.8rem;padding:8px 14px}.tutorial button{display:inline;margin:0 0 0 10px}.welcome-cover{padding:35px 8vw}.welcome h1{font-size:3.6rem}.welcome .eyebrow{margin-bottom:14px}.welcome p{margin:18px 0;font-size:.94rem}.welcome-notes{margin-top:13px}.welcome-footer{display:none}.toasts{top:90px}.map-surface,.galaxy-map{min-height:230px}.modal{max-height:calc(100dvh - 16px)}}
@media(prefers-reduced-motion:reduce){button,.meter i{transition:none}.toast{animation:none}}

@media(max-width:650px){.topbar .brand,.topbar .divider{display:none}}

/* Frontiers 2.0 */
[hidden]{display:none!important}select{font:inherit;color:var(--ink);background:#12222e;border:1px solid var(--line);border-radius:6px;min-height:44px;padding:10px;pointer-events:auto}select:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:3px}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:6px;color:var(--mint);text-decoration:none;white-space:nowrap}.section-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.section-actions button{font-size:.875rem}.section-title{margin:26px 0 15px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.module-list{display:grid;gap:12px}.module-card{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#101f2b;border:1px solid #28404b;border-radius:7px;padding:18px}.module-card.installed{border-left:3px solid var(--mint)}.module-card h3{margin:9px 0 7px}.module-card p{font-size:.875rem;color:var(--muted)}.module-card small{display:block;color:var(--orange);margin-top:10px}.module-card button{flex-shrink:0}.guild-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.guild-card,.faction-card{border-top:2px solid var(--guild)}.guild-card h3,.faction-card h3{color:var(--guild)}.commission{border-top:1px solid var(--line);padding-top:16px}.commission h4{margin:10px 0;font-weight:550}.reward-box{display:grid;gap:7px;padding:12px 14px;background:#81e3cd08;border:1px solid #456059;border-radius:5px;margin:10px 0 16px;font-size:.875rem;line-height:1.5}.reward-box strong{color:var(--guild,var(--mint));font-weight:550}.reward-box span,.reward-box small{color:var(--muted)}.quest-progress{font-size:.875rem;color:var(--mint);margin:12px 0 18px}.quest-progress .meter{margin-top:10px}.guild-card>button{width:100%}.faction-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.faction-card{padding:18px 15px}.faction-card>button{width:100%}.faction-jobs{display:grid;gap:7px;margin-top:12px}.faction-jobs button{font-size:.8rem}.rep-meter{position:relative;height:5px;background:#233743;margin:20px 0}.rep-meter:after{content:'';position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#7795a1}.rep-meter i{position:absolute;height:100%}.volume-control{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:.875rem;color:var(--mint)}.volume-control input{width:130px;accent-color:var(--mint)}.chart-toolbar{display:flex;gap:10px;margin-bottom:14px}.chart-search{flex:1;min-width:0}.chart-search input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:6px;background:#101f2b;color:var(--ink);padding:10px 14px}.map-surface{min-height:360px;align-self:stretch}.galaxy-map{height:100%;min-height:360px;touch-action:none}.chart-controls{position:absolute;left:10px;top:10px;display:flex;gap:6px}.chart-controls button{font-size:.75rem;padding:6px 10px;min-height:36px;background:#10202ef2}.chart-results{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.chart-results button{text-align:left;padding:9px 11px;min-width:0;font-size:.8rem}.chart-results span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-results small{display:block;color:var(--muted);margin-top:5px;font-size:.72rem}.chart-results .active{border-color:var(--mint);color:var(--mint)}.chart-note{margin:16px 0 0}.route-bar{display:flex;align-items:center;gap:10px;border:1px solid #5e5143;background:#33291e40;border-radius:7px;padding:13px 16px;margin-top:16px}.route-bar>div{flex:1;min-width:0}.route-bar strong{display:block;font-size:.875rem;font-weight:550;color:var(--orange)}.route-bar span{display:block;margin-top:5px;font-size:.8rem;color:var(--muted)}.route-bar button{font-size:.8rem;flex-shrink:0}.route-bar .quiet{padding:8px 14px}.route-hud button{font-size:.75rem;padding:6px 9px;min-height:32px;color:var(--orange);margin-top:10px;max-width:280px;text-align:left}.contract-route{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px}.contract-route button{font-size:.8rem;color:var(--mint)}.contract-route span{color:var(--muted);font-size:.75rem}.landing-button{border-color:#797fa4;color:#c3caef;background:#202638bb;font-size:.75rem}.surface-mode .radar-wrap,.station-mode .radar-wrap{display:none}.surface-mode .target-panel{border-color:#aab8eb}.surface-mode .fire{border-color:#9cbbed;color:#c6d6f8;background:#1b2d49cc}.surface-mode .route-hud,.station-mode .route-hud{display:none}.station-mode .target-panel{border-color:#7ec8c0}.station-mode .fire{border-color:#7ec8c0;color:#b8f0e8;background:#1a3538cc}.station-mode .control-caption{letter-spacing:.08em}.station-mode .boost.sprint{border-color:#7ec8c0;color:#b8f0e8;background:#1a3538cc}.station-mode #scan-button,.station-mode #brake{display:none!important}.station-mode .target-row{display:none}.station-mode .underbar{opacity:.55}.map-side .data-row{text-align:right}.map-side .data-row span{text-align:left;flex-shrink:0}.tabs{gap:18px}.nav{gap:6px}.nav button{padding:11px 13px}
@media(max-width:760px){.faction-grid{grid-template-columns:1fr}.faction-card p{margin-bottom:8px}.faction-jobs{grid-template-columns:1fr 1fr}.chart-results{grid-template-columns:repeat(3,1fr)}.nav button{padding:10px}}
@media(max-width:650px){.guild-grid{grid-template-columns:1fr}.module-card{padding:14px;gap:12px}.module-card h3{font-size:1rem}.module-card button{padding:9px 11px;font-size:.8rem}.chart-toolbar{flex-wrap:wrap}.chart-toolbar select{font-size:.8rem;max-width:155px}.chart-search input{font-size:.875rem}.map-surface,.galaxy-map,.system-map{min-height:300px;height:300px}.chart-results{grid-template-columns:1fr 1fr}.route-bar{padding:12px;flex-wrap:wrap}.route-bar>div{flex-basis:100%}.route-bar .primary{flex:1}.map-legend{font-size:.7rem;gap:12px}.chart-controls button{min-height:40px}.volume-control{gap:8px}.volume-control input{width:100px}.nav button{padding:8px 11px;min-width:55px}.target-list{gap:5px;flex-wrap:wrap;max-width:170px}.target-list button{padding:5px 8px}.route-hud button{max-width:165px;line-height:1.35;font-size:.7rem}.target-panel .landing-button{font-size:.7rem;padding:7px 6px}.setting-row:has(.button-link){align-items:flex-start;flex-direction:column}.faction-card .rep-meter{margin:14px 0}}
@media(max-height:520px) and (min-width:651px){.target-panel{width:192px}.target-panel .target-row{display:none}.landing-button{min-height:32px!important}.nav button{padding:9px}.route-hud button{margin-top:5px;max-width:250px}.surface-mode .location-info h2{font-size:1.3rem}.map-surface,.galaxy-map,.system-map{height:265px;min-height:265px}}

/* Exploration controls share the flight HUD on touch and desktop. */
.scanner-status{font-size:.75rem;line-height:1.4;color:var(--muted);margin-top:8px}.body-dossier{margin-top:8px;padding:8px 10px;border:1px solid #2a4a58;background:#0a1820cc;display:flex;flex-direction:column;gap:3px;font-size:.72rem;line-height:1.35;color:#9bb4c0}.body-dossier .eyebrow{letter-spacing:.08em;font-size:.62rem;color:#6a8a98}.body-dossier strong{color:#d4ece8;font-size:.82rem}.stat.heat .meter i{background:#88b6ea}.underbar .stat{min-width:0;flex:0 1 130px}.target-panel [hidden]{display:none!important}
@media(max-width:650px){.underbar{gap:10px}.underbar .stat{flex:1}.stat-label{gap:4px}.stat-label b{font-size:.7rem}.scanner-status{display:none}.target-panel #discovery-button{min-height:30px;padding:4px 5px;font-size:.65rem}}
@media(max-height:600px){.scanner-status{display:none}.target-panel #discovery-button{min-height:28px;padding:3px}.target-panel{padding-top:6px;padding-bottom:6px}}

/* Phone / foldable cover: keep the nav target strip narrow so flight stays visible. */
@media(max-width:650px){
 .flight-top{align-items:flex-start}
 .target-panel{width:min(112px,30vw);max-width:30vw;padding:7px 6px;border-left-width:1px;background:linear-gradient(90deg,#0d1c29c6,#0d1c2900);align-self:flex-start}
 .target-panel .eyebrow{display:none}
 .target-panel h3{font-size:.78rem;line-height:1.2;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .target-meta{font-size:.62rem;margin:4px 0;gap:2px;flex-direction:column;align-items:flex-start}
 .target-panel button{font-size:.68rem;min-height:30px;padding:4px 5px;margin-top:4px;letter-spacing:0}
 .target-panel .target-row{gap:4px}
 .target-panel .target-row button{min-height:28px;padding:3px 4px;font-size:.65rem}
 .target-panel .landing-button{font-size:.62rem;min-height:28px;padding:4px}
 .radar-wrap{right:8px;bottom:210px}
 .radar-wrap canvas{width:72px;height:72px}
}
@media(max-width:390px){
 .target-panel{width:min(98px,28vw);max-width:28vw;padding:6px 5px}
 .target-panel h3{font-size:.72rem}
 .target-panel button{min-height:28px;font-size:.62rem}
}

/* Station service robot (Concierge) — screen-only face */
.robot-desk{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:22px;align-items:start}.robot-desk-visual{background:linear-gradient(160deg,#0a1620,#12222e 55%,#0d1a24);border:1px solid #29404c;border-radius:10px;padding:14px}.robot-portrait{width:100%;height:auto;display:block}.robot-quote{margin:0 0 14px;padding:14px 16px;border-left:3px solid var(--mint);background:#81e3cd0c;border-radius:0 6px 6px 0}.robot-quote p{font-size:1rem;color:var(--ink);line-height:1.55;font-style:italic;margin:0}.robot-screen{fill:#102834}.robot-eye{transition:transform .2s,fill .2s}.robot-mouth{transition:transform .2s,fill .2s}.robot-brow{transition:transform .2s;transform-box:fill-box;transform-origin:center}
.robot-strip{display:flex;gap:14px;align-items:stretch;margin:0 0 20px;padding:12px 14px;border:1px solid #29404c;border-radius:10px;background:linear-gradient(120deg,#0a1620ee,#12222ecc)}.robot-strip-face{width:92px;flex-shrink:0;align-self:center}.robot-strip-copy{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.robot-strip-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin-bottom:8px}.robot-strip-head strong{font-size:1rem}.robot-strip .robot-quote{margin:0 0 10px;padding:10px 12px}.robot-strip .robot-quote p{font-size:.94rem}.robot-actions{margin-top:2px}
.robot-face--happy .robot-eye{fill:#b4f8e9}.robot-face--happy .robot-mouth{transform:translateY(2px) scaleY(1.4);fill:#90efdc}.robot-face--happy .robot-brow{transform:translateY(-2px)}
.robot-face--confused .robot-eye-l{transform:translateY(-2px)}.robot-face--confused .robot-eye-r{transform:translateY(2px)}.robot-face--confused .robot-brow-r{transform:rotate(12deg) translateY(-2px)}.robot-face--confused .robot-mouth{transform:scaleX(.7)}
.robot-face--annoyed .robot-eye{fill:#eeab6c}.robot-face--annoyed .robot-brow{transform:translateY(3px) rotate(-8deg)}.robot-face--annoyed .robot-brow-r{transform:translateY(3px) rotate(8deg)}.robot-face--annoyed .robot-mouth{fill:#eeab6c;transform:scaleY(.7)}
.robot-face--alert .robot-eye{fill:#fa8d8d}.robot-face--alert .robot-mouth{fill:#fa8d8d;transform:scaleX(1.15)}.robot-face--alert .robot-brow{transform:translateY(-1px)}
.robot-face--neutral .robot-eyes,.robot-face--happy .robot-eyes{animation:robot-blink 4.5s ease-in-out infinite}
@keyframes robot-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.12)}}
@media(max-width:650px){.robot-desk{grid-template-columns:1fr;gap:14px}.robot-desk-visual{max-width:220px;margin:0 auto}.robot-quote p{font-size:.94rem}.robot-strip{flex-direction:column;align-items:center;text-align:center}.robot-strip-face{width:110px}.robot-strip .robot-actions{justify-content:center}}
@media(prefers-reduced-motion:reduce){.robot-face--neutral .robot-eyes,.robot-face--happy .robot-eyes{animation:none}}

.discovery-list{display:grid;gap:8px}.discovery-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);background:#0b1824}.discovery-row div{display:grid;gap:4px}.discovery-row span{font-size:.78rem;color:var(--muted)}.discovery-row b{white-space:nowrap;color:var(--mint)}.discovery-list.sold{opacity:.7}

/* Desk terminal — focused vendor UI opened from the walkable deck */
.desk-cover{align-items:flex-end;justify-content:center;background:linear-gradient(180deg,#03091355,#030913cc 40%,#030913e8);padding:12px 16px max(16px,env(safe-area-inset-bottom))}
.desk-terminal{width:min(820px,100%);max-height:min(78dvh,720px);border-color:#3d6a72;box-shadow:0 -20px 80px #000a,0 0 0 1px #7ec8c033;border-radius:14px 14px 10px 10px;background:linear-gradient(180deg,#10202cf5,#0a151ef8)}
.desk-terminal .modal-head{border-bottom-color:#2a4a52;padding:18px 22px}
.desk-terminal .modal-body{padding:18px 22px}
.desk-terminal .modal-foot{border-top-color:#2a4a52}
.desk-banner{display:flex;gap:14px;align-items:center;margin:0 0 18px;padding:12px 14px;border:1px solid #2f5560;border-radius:10px;background:linear-gradient(110deg,#14303acc,#0f1c26ee)}
.desk-banner p{font-size:.875rem;color:var(--muted);margin-top:4px;line-height:1.45}
.hort-card{width:100%;aspect-ratio:148/104;border-radius:10px;border:2.2px solid #6db6ad;background:#0c1822;padding:6px;box-sizing:border-box;box-shadow:0 0 12px #6db6ad33}
.hort-portrait-photo{width:100%;height:100%;object-fit:cover;object-position:center 18%;border-radius:6px;display:block;filter:saturate(.92) contrast(1.05)}
.hort-strip .hort-card{min-width:0}
.desk-banner.hort-banner .desk-clerk{display:none}
.desk-clerk{width:46px;height:46px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 35% 30%,#cfe8e2,#1a3844 55%,#0d1a22);border:2px solid #7ec8c0;box-shadow:0 0 12px #7ec8c044;position:relative}
.desk-clerk:after{content:'';position:absolute;left:50%;top:42%;width:18px;height:8px;transform:translate(-50%,-50%);border-radius:40%;background:#9ff0e0aa}
@media(max-width:650px){.desk-cover{padding:8px}.desk-terminal{max-height:82dvh;border-radius:12px}.desk-banner{padding:10px 12px}}

.setting-row .section-actions{margin:0;justify-content:flex-end}
.credits-roll{margin-top:4px}.credits-roll .setting-row:first-child{border-top:0;padding-top:4px}

/* Xbox controller prompt chips */
.xb{display:inline-flex;align-items:center;justify-content:center;min-width:1.35em;height:1.35em;padding:0 .35em;margin:0 .12em;border-radius:4px;font-size:.72em;font-weight:700;font-style:normal;vertical-align:middle;line-height:1;letter-spacing:.02em;box-shadow:inset 0 -1px 0 #0004}
.xb i{font-style:normal;font-weight:700}
.xb-a{background:#3fa34a;color:#041208}
.xb-b{background:#c94b4b;color:#1a0505}
.xb-x{background:#3a6db5;color:#040810}
.xb-y{background:#d4a017;color:#1a1200}
.xb-bump,.xb-trig{background:#2a3844;color:#d7e6ec;border:1px solid #4d6570;border-radius:3px;font-size:.66em;min-width:1.7em}
.xb-sys{background:#1c2830;color:#9eb6c0;border:1px solid #3d5360;font-size:.62em;letter-spacing:.04em;text-transform:uppercase;min-width:2.2em}
.xb-stick{background:#243440;color:#c5dde6;border:1px solid #45606c;border-radius:50%;min-width:1.5em;height:1.5em}
.xb-dpad{background:#243440;color:#d0e4ec;border:1px solid #45606c;min-width:1.4em}
.help-pad{margin:18px 0 10px;padding:14px 16px;border:1px solid #2a414c;border-radius:8px;background:#0e1a24}
.help-pad h3{margin:0 0 8px;font-size:1rem;color:#c9e7e0}
.help-pad p{margin:6px 0;font-size:.875rem;color:var(--muted);line-height:1.55}

.pad-chip{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;margin-right:6px;border:1px solid #3d8f7a;border-radius:999px;background:#12352f;color:#9eebd8;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pad-chip[hidden]{display:none!important}

.fps-meter{position:absolute;top:auto;bottom:calc(env(safe-area-inset-bottom) + 74px);left:50%;right:auto;transform:translateX(-50%);z-index:25;pointer-events:none;min-width:84px;padding:6px 10px;border:1px solid #2a5a52;border-radius:6px;background:#0b1a18d8;color:#9eebd8;font-variant-numeric:tabular-nums;text-align:right;box-shadow:0 8px 24px #0006}
.fps-meter[hidden]{display:none!important}
.fps-meter small{display:block;font-size:.65rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:#6db6ad}
.fps-meter b{display:block;font-size:1.2rem;font-weight:600;color:#a7f0df;line-height:1.15;margin:2px 0}
.fps-meter span{display:block;font-size:.7rem;color:#7aa89e;letter-spacing:.02em}
.fps-meter.fps-idle{border-color:#6a5340;color:#e8c9a6}
.fps-meter.fps-idle small{color:#c4a07a}
.fps-meter.fps-idle b{color:#f0d2ad}
@media(max-width:650px){.fps-meter{top:auto;bottom:calc(env(safe-area-inset-bottom) + 88px);left:132px;right:auto;transform:none;min-width:0;width:62px;padding:3px 6px;text-align:left}.fps-meter small{display:none}.fps-meter span{font-size:.56rem;line-height:1.15}.fps-meter b{font-size:1.1rem}}

/* Compositor keep-alive: Chrome Android / Samsung VRR drop RAF to 60 Hz ~2s after
   the last touch. A 1px transform on its own layer is the strongest web hint.
   2.16.2–2.16.5 #space path is unchanged. */
#hz-keep{position:fixed;left:0;bottom:0;width:2px;height:2px;margin:0;padding:0;border:0;z-index:2;pointer-events:none;opacity:.03;background:#9eebd8;contain:strict;will-change:transform;transform:translate3d(0,0,0)}
#hz-keep.hz-keep-on{animation:nh-hz-keep 1s linear infinite}
@keyframes nh-hz-keep{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(1px,0,0)}100%{transform:translate3d(0,0,0)}}
#gpu-keep{position:fixed;left:2px;bottom:0;width:1px;height:1px;margin:0;padding:0;border:0;z-index:2;pointer-events:none;opacity:.02;contain:strict}

/* 2.11 Frontier Presence — traffic board + market callout */
.bulletin{margin:10px 0 16px;padding:12px 14px;border:1px solid #33565b;border-left:3px solid var(--mint);border-radius:6px;background:#81e3cd0c}
.bulletin.shortage{border-color:#5e5143;border-left-color:var(--orange);background:#eeab6c0c}
.bulletin .eyebrow{margin-bottom:6px}
.bulletin p{font-size:.875rem;color:var(--ink);line-height:1.5;margin:0}
.bulletin-callout{font-size:.8rem;color:var(--mint);margin:0 0 14px;line-height:1.45}
.market tr.hot-good td{background:#81e3cd0a}
.market tr.hot-good .good-name .tag{margin-left:6px;vertical-align:middle}

/* NH-003: 800×600 / foldable mid-widths — keep INTERACT on-screen */
@media(max-width:860px) and (min-width:651px){
 .bottom{flex-wrap:wrap;gap:10px}
 .nav{flex:1 1 100%;order:3;justify-content:space-around;margin:0}
 .action-zone{margin-left:auto;flex-shrink:0}
 .fire{width:78px;height:78px}
 .aux-actions button{min-width:62px;padding:8px 10px}
}

/* 3.0 New Frontier — landing HUD + welcome edition */
.welcome h1 span{letter-spacing:.32em;color:#9fd8cc}
.target-panel .landing-button{
 background:linear-gradient(180deg,#2a3148,#1a2034);
 border-color:#8a90b8;
 color:#e8ecff;
 font-weight:700;
 letter-spacing:.04em;
}
.target-panel .landing-button:hover{border-color:#b8c0e8;background:#323a58}
.surface-mode .target-panel{
 border-left-color:#c9b18d;
 background:linear-gradient(90deg,#1a1824ee,#0d1c2910);
}
.surface-mode .target-panel .eyebrow{color:#d4c4a0}
.surface-mode .landing-button{
 background:linear-gradient(180deg,#3a2a18,#241810);
 border-color:#d4a86a;
 color:#f0d4a0;
}

img.ship-plate{object-fit:contain;width:100%;height:88px;background:transparent}
