
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}img{max-width:100%;display:block}button{border-radius:0}small,.mono,pre{font-family:Consolas,'Courier New',monospace}h1,h2,h3,p{margin-top:0}pre{white-space:pre-wrap;overflow-wrap:anywhere}dialog{max-width:min(740px,calc(100vw - 30px));max-height:90vh;overflow:auto;padding:0;border:1px solid var(--line);background:var(--panel);color:var(--text)}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}.dialog-body{padding:28px}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:center}.dialog-top button{background:transparent;color:inherit;border:1px solid var(--line);padding:8px 12px}.agent-section{padding:55px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:25px}.section-head small{color:var(--accent);letter-spacing:2px}.section-head h2{margin:9px 0;font-size:28px}.status{font:12px Consolas,monospace;border:1px solid var(--line);padding:8px 10px;white-space:nowrap}.command-inputs{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;margin-bottom:15px}.command-inputs label{font-size:12px;color:var(--muted)}input,select{width:100%;padding:12px;margin-top:7px;background:var(--bg);color:var(--text);border:1px solid var(--line);min-width:0}.command-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.command-grid article{min-width:0;border:1px solid var(--line);background:var(--panel)}.command-grid header{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.command-grid header b{font-size:13px}.command-grid button{border:1px solid var(--line);background:var(--bg);color:var(--text);padding:7px 14px}.command-grid pre{font-size:11px;line-height:1.75;padding:18px;margin:0;max-height:250px;overflow:auto;color:var(--muted)}.subtle{font-size:12px;color:var(--muted);line-height:1.8}.footer{border-top:1px solid var(--line);padding:28px 0;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);max-width:90vw;padding:14px 24px;background:var(--accent);color:var(--bg);z-index:99;opacity:0;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:700px){.section-head{align-items:start;flex-direction:column;gap:10px}.section-head h2{font-size:24px}.command-inputs{grid-template-columns:1fr 1fr}.command-inputs label:first-child{grid-column:1/-1}.command-grid{grid-template-columns:1fr}.footer{flex-direction:column}.agent-section{padding:35px 0}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

:root{--bg:#071725;--panel:#0b2235;--text:#eef5e7;--muted:#8eacbc;--line:#244558;--accent:#5fe6d3;--orange:#ffae5a}body{background:var(--bg);color:var(--text);font-family:'Microsoft Yahei',Arial,sans-serif;background-image:radial-gradient(#1b3544 1px,transparent 1px);background-size:24px 24px}.top{height:78px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line);padding:0 40px;background:#071725ef;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;font:bold 21px Consolas,monospace;letter-spacing:2px}.brand img{image-rendering:pixelated}.brand small{display:block;font:10px 'Microsoft Yahei';letter-spacing:4px;color:var(--muted);margin-top:4px}.top nav{display:flex;gap:26px;font-size:13px}.top nav a{padding:8px 0;border-bottom:1px solid transparent}.top nav a:hover{color:var(--accent);border-color:var(--accent)}.top-right{display:flex;align-items:center;gap:20px}.chain{font:10px Consolas;letter-spacing:1px;color:var(--accent)}.top-right button{font-size:11px;border:1px solid var(--line);color:var(--muted);background:transparent;padding:8px}main{max-width:1560px;margin:auto;padding:0 40px}.intro{display:flex;align-items:end;justify-content:space-between;padding:38px 0 30px;gap:25px}.eyebrow{font:10px Consolas;letter-spacing:3px;color:var(--accent)}h1{font-size:clamp(32px,3.2vw,50px);margin:14px 0 0;letter-spacing:-1px}h1 em{font-style:normal;color:var(--orange)}.intro p{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:2px}.harbor{display:grid;grid-template-columns:minmax(0,1fr) 300px;border:1px solid var(--line);background:#081827}.world{position:relative;overflow:hidden;min-height:520px}.world>img{width:100%;height:100%;position:absolute;object-fit:cover}.world-shade{position:absolute;inset:0;background:linear-gradient(#03132255,transparent 35%,#03132288)}.map-label{position:absolute;top:20px;left:20px;font:12px Consolas;background:#071725dd;padding:10px 13px;border:1px solid #8cd9d877}.map-label small{display:block;margin-top:7px;color:#9abcd1;font-size:10px}.blink{display:inline-block;width:6px;height:6px;background:var(--accent);animation:blink 2s steps(2) infinite}.route-lines{position:absolute;inset:0;width:100%;height:100%;opacity:.6;pointer-events:none}.route-lines path{fill:none;stroke:#d0fffa;stroke-width:2;stroke-dasharray:4 8;animation:dash 5s linear infinite}.map-pin{position:absolute;top:var(--y);left:var(--x);transform:translate(-50%,-50%);border:0;background:transparent;color:white;display:grid;justify-items:center;gap:5px;filter:drop-shadow(0 3px 0 #082333)}.map-pin b{display:grid;place-items:center;width:32px;height:32px;background:#0e2b3fe8;border:1px solid #a6b5bb;font:13px Consolas}.map-pin span{background:#071725ee;border:1px solid #647e8d;padding:6px 10px;font-size:11px;white-space:nowrap}.map-pin.active b,.map-pin:hover b{background:var(--orange);color:var(--bg);border-color:white;box-shadow:0 0 0 5px #ffae5a44}.map-pin.active span{border-color:var(--orange);color:var(--orange)}.world-foot{position:absolute;bottom:18px;left:20px;right:20px;display:flex;justify-content:space-between;font:10px Consolas;letter-spacing:1px}.ship-marker{position:absolute;left:15%;top:70%;font-size:23px;color:var(--accent);display:none;text-shadow:0 0 16px #5fe6d3}.ship-marker.sailing{display:block;animation:sail 6s linear infinite}.dispatch{border-left:1px solid var(--line);padding:24px;background:linear-gradient(145deg,#102d41,#091d2d)}.dispatch-title small{display:block;color:var(--orange);font-size:10px;letter-spacing:2px;margin-bottom:18px}.dispatch-title b{font-size:24px}.dispatch-title p{font-size:12px;line-height:1.8;color:var(--muted);margin:10px 0 20px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-block:1px solid var(--line);padding:18px 0}.metrics dt{font-size:10px;color:var(--muted)}.metrics dd{margin:6px 0 0;font:bold 25px Consolas;color:var(--accent)}.metrics dd small{font-size:10px;color:var(--muted);margin-left:6px}.crew-select{font-size:11px;color:var(--muted)}.crew-select select{font-size:12px;padding:10px;background:#071725}.energy-label{display:flex;justify-content:space-between;margin:20px 0 8px;font-size:11px;color:var(--muted)}.energy-label b{color:var(--text);font:11px Consolas}.energy-track,.progress-track{height:6px;background:#06131e;overflow:hidden}.energy-track i,.progress-track i{display:block;height:100%;width:100%;background:var(--accent);transition:width .4s}.primary{display:flex;justify-content:space-between;width:100%;margin-top:20px;background:var(--orange);color:#102332;border:0;border-bottom:4px solid #aa6333;padding:13px 16px;font-weight:bold;font-size:13px}.primary:hover{filter:brightness(1.1)}.progress-track{height:3px;margin-top:8px}.progress-track i{width:0;background:var(--orange)}.dispatch-state{font-size:11px;line-height:1.7;min-height:37px;color:var(--muted);margin:12px 0 8px}.text-btn{background:none;border:0;padding:0;color:var(--accent);font-size:11px}.inventory{display:grid;grid-template-columns:repeat(3,1fr) 240px;border:1px solid var(--line);border-top:0;background:#0b2032;margin-bottom:38px}.inventory>div{padding:20px 24px;border-right:1px solid var(--line)}.inventory small{display:block;font-size:10px;color:var(--muted)}.inventory strong{font:bold 29px Consolas;color:var(--text);margin:7px 12px 0 0;display:inline-block}.inventory span{font-size:10px;color:var(--muted)}.inventory button{background:#102b3d;border:0;color:var(--orange);font-size:13px;text-align:left;padding:20px}.inventory button small{margin-top:10px;color:var(--muted)}.lower-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:35px;margin:0 0 65px}.log-panel{padding:20px 0}.log-list{max-height:190px;overflow:auto;min-height:100px}.log-row{display:grid;grid-template-columns:80px 1fr auto;gap:14px;border-bottom:1px dashed var(--line);font-size:12px;padding:15px 0}.log-row small{color:var(--muted)}.log-row b{color:var(--accent)}.empty-log{padding:26px 0;font-size:13px;color:var(--muted)}.manifest{background:#e6d5b4;color:#193044;padding:28px 34px;clip-path:polygon(0 0,100% 0,100% 94%,97% 100%,0 100%);box-shadow:inset 0 0 0 9px #142f4422;position:relative}.manifest>span{font:10px Consolas;letter-spacing:3px;color:#46636c}.manifest h3{margin:16px 0;font-size:24px}.manifest ol{padding-left:18px;font-size:13px;line-height:2}.manifest p{font-size:11px;line-height:1.7;color:#425765;max-width:350px;margin-bottom:0}.crew-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.crew-grid button{border:1px solid var(--line);text-align:left;padding:20px;background:var(--panel);color:var(--text);display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center;transition:transform .2s,border-color .2s}.crew-grid button:hover{transform:translateY(-5px);border-color:var(--orange)}.crew-grid img{width:96px;height:96px;image-rendering:pixelated}.crew-grid small{font-size:9px;letter-spacing:1px;color:var(--accent)}.crew-grid h3{font-size:18px;margin:10px 0}.crew-grid p{font-size:10px;color:var(--muted);margin:0}.crew-grid button>span{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;font-size:11px;color:var(--orange)}.rules{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:80px 0 30px}.rules-art{border:1px solid var(--line);padding:6px;box-shadow:12px 12px 0 #102b3b}.rules-art img{width:100%}.rules h2{font-size:32px;margin:16px 0 25px}.rules details{border-top:1px solid var(--line);padding:14px 0}.rules summary{font-size:13px;cursor:pointer;color:var(--text)}.rules details p{font-size:12px;color:var(--muted);line-height:1.9;margin:14px 0 0}.dialog-body>img{margin:15px auto}.dialog-body>p{font-size:14px;line-height:1.9;color:var(--muted)}body.no-motion *,body.no-motion *::before,body.no-motion *::after{animation:none!important;transition:none!important}@keyframes blink{50%{opacity:.35}}@keyframes dash{to{stroke-dashoffset:-120}}@keyframes sail{0%{left:18%;top:72%}50%{left:60%;top:42%}100%{left:18%;top:72%}}@media(max-width:1100px){.top{padding:0 24px}.top nav{gap:15px}.chain{display:none}main{padding:0 24px}.harbor{grid-template-columns:minmax(0,1fr) 280px}.world{min-height:540px}.crew-grid button{grid-template-columns:1fr}.crew-grid img{width:100%;height:auto}.inventory{grid-template-columns:repeat(3,1fr)}.inventory button{grid-column:1/-1;border-top:1px solid var(--line)}.inventory button small{display:inline-block;margin:0 0 0 20px}}@media(max-width:700px){.top{height:auto;min-height:70px;padding:14px 18px;flex-wrap:wrap;gap:14px}.brand{font-size:18px}.top nav{order:3;width:100%;justify-content:space-between;font-size:11px;gap:8px}.top-right{margin-left:auto}.intro{padding-top:28px;flex-direction:column;align-items:start;gap:18px}.intro h1{font-size:30px}.intro p{font-size:12px}main{padding:0 16px}.harbor{grid-template-columns:1fr}.world{min-height:360px}.world>img{object-position:55%}.map-label{left:10px;top:10px;padding:7px 9px;font-size:10px}.map-label small{font-size:8px}.map-pin span{font-size:9px;padding:5px}.map-pin b{width:26px;height:26px;font-size:10px}.world-foot{font-size:8px;left:12px;right:12px}.dispatch{border-left:0;border-top:1px solid var(--line);padding:23px}.dispatch-title p{margin-bottom:16px}.metrics{grid-template-columns:repeat(4,1fr);gap:10px}.metrics dd{font-size:22px}.metrics dd small{font-size:9px;margin-left:3px}.inventory>div{padding:16px 11px}.inventory strong{font-size:24px;display:block}.inventory span{font-size:9px;line-height:1.6;display:block}.inventory button{font-size:12px}.inventory button small{font-size:9px}.lower-grid{grid-template-columns:1fr;gap:8px;margin-bottom:40px}.log-row{grid-template-columns:64px 1fr auto;font-size:11px}.manifest{padding:24px}.crew-grid{grid-template-columns:1fr;gap:12px}.crew-grid button{grid-template-columns:96px 1fr;padding:16px;gap:15px}.crew-grid img{width:96px;height:96px}.rules{grid-template-columns:1fr;padding-top:45px;gap:35px}.rules h2{font-size:26px}.section-head h2{font-size:23px}}

/* Round 2: map labels and anchor clearance */
section[id]{scroll-margin-top:100px}.map-label{left:auto;right:16px;top:14px}.world-foot{pointer-events:none}.map-pin{min-height:54px;min-width:54px}@media(max-width:700px){section[id]{scroll-margin-top:130px}.map-label{right:10px;top:10px;font-size:9px;padding:7px}.map-label small{font-size:8px}}
