:root{color-scheme:dark;--bg:#0b151b;--panel:#101d24;--line:#2b3c43;--text:#e7ede9;--muted:#96a9ac;--mint:#b9f2cb;--power:#efc782;--oxygen:#97d5e5;--biomass:#b9e0a2;--heat:#f09f80;--hull:#c2bbdf;--danger:#ffb29c;font-family:'Avenir Next',Avenir,'Segoe UI',sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}body:before{content:'';position:fixed;inset:0;background:linear-gradient(90deg,#07121945,#0b151b88),url('../assets/starfield.webp') center/cover;z-index:-2;pointer-events:none}body:after{content:'';position:fixed;inset:0;background:linear-gradient(0deg,#081319b3,transparent 50%);pointer-events:none;z-index:-1}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}button:disabled{cursor:not-allowed;opacity:.38}button,a,summary,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--mint);outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;line-height:1.1}h1{font-size:clamp(28px,3vw,44px);letter-spacing:-1.6px}h2{font-size:34px;letter-spacing:-1.4px}h3{font-size:22px;letter-spacing:-.6px}button .icon{flex-shrink:0}.icon{width:20px;height:20px;vertical-align:middle;display:inline-block;flex-shrink:0}.tiny{width:12px;height:12px}.muted{color:var(--muted)}.mint{color:var(--mint)}.danger-text{color:var(--danger)!important}.power{--resource:var(--power)}.oxygen{--resource:var(--oxygen)}.biomass{--resource:var(--biomass)}.heat{--resource:var(--heat)}.hull{--resource:var(--hull)}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:600;line-height:1.4}.primary{min-height:54px;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--mint);color:#11231c;border:1px solid var(--mint);font-weight:650;font-size:14px;transition:background .18s,transform .18s;width:100%;border-radius:3px}.primary:hover{background:#d2ffdf;transform:translateY(-1px)}.primary:active{transform:translateY(1px)}.primary.danger{background:#efac91;border-color:#efac91}.secondary{min-height:44px;padding:10px 14px;border:1px solid #48606a;border-radius:3px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-size:13px;background:#12222caa}.secondary:hover{border-color:var(--mint);background:#1d343d}.full{width:100%;margin-top:12px}.text-button{min-height:44px;padding:8px 0;color:var(--muted);font-size:12px;display:inline-flex;align-items:center;gap:7px}.text-button:hover{color:var(--text)}.text-button .icon{width:17px;height:17px}.skip-link{position:fixed;top:-90px;left:16px;z-index:100;background:var(--mint);color:var(--bg);padding:12px}.skip-link:focus{top:12px}.announcer{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.topbar{height:92px;max-width:1440px;margin:auto;padding:0 50px;display:flex;align-items:center;gap:30px;border-bottom:1px solid #33454b7a}.brand{display:flex;align-items:center;gap:13px;font-size:27px;font-weight:650;letter-spacing:4px;line-height:1}.brand-dot{color:var(--mint)}.brand img{margin-top:-2px}.top-caption{font-size:9px;letter-spacing:2.6px;color:#8da4a6;border-left:1px solid #385057;padding:4px 0 4px 30px}.topbar nav{display:flex;align-items:center;gap:20px;margin-left:auto}.icon-button{width:44px;height:44px;display:grid;place-items:center;color:var(--muted)}.archive-button{height:44px;display:flex;align-items:center;gap:10px;font-size:12px;color:#c7d5d4}.archive-button .icon{width:17px;height:17px}.pressures{display:grid;grid-template-columns:repeat(5,1fr);max-width:1340px;margin:26px auto 0;padding:0 18px}.pressure{padding:0 32px;border-right:1px solid #35484f70}.pressure:first-child{padding-left:0}.pressure:last-child{padding-right:0;border:0}.pressure-name{display:flex;gap:8px;align-items:center;color:var(--resource);font-size:10px;letter-spacing:1.2px;text-transform:uppercase}.pressure-name .icon{width:15px;height:15px}.pressure-name .tiny{margin-left:auto;color:var(--danger)}.pressure-reading{display:flex;gap:6px;align-items:baseline;margin-top:7px;line-height:1}.pressure-reading strong{font-size:29px;font-weight:500;font-variant-numeric:tabular-nums}.pressure-reading>span{font-size:11px;color:#8da3a7}.meter{margin-top:11px;height:2px;background:#2d4149}.meter i{height:100%;display:block;background:var(--resource);transition:width .4s}.critical .pressure-reading{color:var(--danger)}.layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,1fr);gap:40px;max-width:1340px;margin:38px auto 0;padding:0 18px}.game-layout{margin-top:36px}.ship-scene{min-width:0;position:relative}.scene-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.scene-top .eyebrow{color:#b2c7c6;margin-bottom:10px}.scene-top h1{font-size:36px}.crew-count{display:flex;gap:7px;align-items:center;margin-top:10px;font-size:11px;color:var(--muted)}.crew-count b{color:var(--text);font-size:15px;font-weight:500}.crew-count .icon{width:17px;height:17px}.journey{display:flex;align-items:center;margin-top:23px;width:100%;position:relative}.journey:before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:#354b5366}.waypoint{width:10%;height:27px;position:relative;display:flex;align-items:center;justify-content:center}.waypoint:after{content:'';width:5px;height:5px;border-radius:50%;background:#637c84;border:3px solid var(--bg);box-sizing:content-box;z-index:1}.waypoint:first-child{justify-content:flex-start}.waypoint:last-child{justify-content:flex-end}.waypoint.current:after{display:none}.waypoint.visited:after{background:var(--mint)}.waypoint b{position:relative;display:grid;place-items:center;border:1px solid #90bca6;background:#172923;color:var(--mint);font-size:10px;width:27px;height:27px;border-radius:50%;font-weight:500;z-index:1}.waypoint .icon{position:absolute;width:16px;height:16px;background:var(--bg);z-index:2;color:#769498}.space-stage{position:relative;isolation:isolate;height:485px;display:flex;justify-content:center;align-items:center;perspective:1000px}.orbital-ring{position:absolute;inset:50px 28px;border:1px solid #839f9c12;border-radius:50%;transform:rotate(-22deg);pointer-events:none}.orbital-ring:before{content:'';position:absolute;inset:20px -34px;border:1px dashed #8cb8ab16;border-radius:50%}.orbital-ring:after{content:'';position:absolute;width:320px;height:320px;left:15%;top:-20px;border-radius:50%;background:radial-gradient(ellipse,#78b3aa16,transparent 70%)}.scene-coordinate{position:absolute;left:0;top:50%;font-size:8px;line-height:1.8;letter-spacing:2px;color:#91ada866;writing-mode:vertical-rl}.scene-scale{position:absolute;right:0;bottom:28px;color:#85a19d77;font-size:8px;letter-spacing:1.5px;line-height:1.8;text-align:right}.scene-scale b{font-weight:500;color:#b5c9c577}.ship-body{position:relative;width:min(460px,calc(100% - 80px));filter:drop-shadow(0 22px 26px #0009);padding-top:48px;padding-bottom:24px;animation:ship-reveal .85s ease-out both}.ship-nose{height:67px;width:66%;position:absolute;top:-8px;left:17%;background:linear-gradient(155deg,#799195,#293c42 40%,#162b33 42%,#3a5055 90%);clip-path:polygon(25% 0,75% 0,100% 78%,100% 100%,0 100%,0 78%);border-top:2px solid #9bb7b3;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 -12px 12px #031117}.ship-nose:before{content:'';position:absolute;top:4px;left:22%;width:56%;height:2px;background:#b9eed666;box-shadow:0 3px 9px #b9eed6aa}.ship-nose>span{position:absolute;right:15%;bottom:12px;font-size:11px;font-weight:600;letter-spacing:1px;color:#c4d2c380}.cockpit{width:60px;height:38px;border:2px solid #415657;background:linear-gradient(0deg,#07171c11,#0b171655),url('../assets/cockpit.webp') center/cover;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);margin-top:15px}.hull-frame{position:relative;padding:10px;background:linear-gradient(135deg,#688184,#2a3d43 10%,#1a2a31 50%,#667775);border:1px solid #718988;border-radius:12px;box-shadow:inset 0 0 0 3px #23373e,inset 0 0 0 5px #a2b4ac33,0 0 0 3px #0a151a,0 0 34px #8caeaa0b}.hull-frame:before{content:'';position:absolute;inset:0;border-radius:12px;border:5px solid transparent;border-top-color:#a5b5a81c;pointer-events:none}.nacelle{position:absolute;top:95px;bottom:60px;width:24px;background:linear-gradient(90deg,#1b3036,#65817b 26%,#243b43 42%,#0e222c 70%,#547674);border:1px solid #738b87;z-index:-1;box-shadow:inset 0 -20px 10px #04171c}.nacelle:before{content:'';position:absolute;inset:12px 5px;background:repeating-linear-gradient(0deg,#09212a 0 13px,#537977 14px 15px)}.nacelle:after{content:'';position:absolute;left:6px;right:6px;height:36px;bottom:-25px;background:linear-gradient(#aeeaff,#4de4ee88,transparent);border-radius:0 0 50% 50%;box-shadow:0 10px 19px #65ddda55}.nacelle-left{left:-17px;border-radius:40% 0 0 30%}.nacelle-right{right:-17px;border-radius:0 40% 30% 0}.ship-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;background:#0a141b;border:1px solid #071318;border-radius:4px;position:relative}.bay{aspect-ratio:1;min-width:0;position:relative;padding:0;border-radius:3px;isolation:isolate;transition:filter .15s,box-shadow .18s;background:#12212a;outline-offset:0!important}.bay .room-art{width:100%;height:100%;display:block;object-fit:cover;border-radius:3px;pointer-events:none}.bay:disabled{opacity:1;cursor:default}.bay.occupied{cursor:pointer}.bay.empty .room-art{opacity:.43}.bay.empty{box-shadow:inset 0 0 0 1px #30526022}.empty-mark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#87a49e77}.empty-mark .icon{width:16px;height:16px;stroke-width:1}.bay:hover:not(:disabled){filter:brightness(1.2)}.bay.selected{z-index:4;box-shadow:0 0 0 2px var(--mint),0 0 16px #b9f2cb66}.bay.selected:after{content:'';position:absolute;inset:3px;border:1px solid #cfffe188;border-radius:2px;pointer-events:none}.bay.place-target{box-shadow:inset 0 0 0 1px #b9f2cb77}.bay.place-target .empty-mark{color:var(--mint)}.bay.suggested{animation:suggested 2s ease-in-out infinite}.bay.linked{box-shadow:0 0 0 2px #72d3a5,0 0 14px #72d3a56b;z-index:2}.bay.adjacent:not(.linked):not(.selected){box-shadow:inset 0 0 0 1px #a8cfba55}.bay.organic:before{content:'';position:absolute;inset:7px;border-radius:40%;box-shadow:0 0 18px #88f4c025;mix-blend-mode:screen;pointer-events:none}.bay-number{position:absolute;bottom:3px;left:4px;font-size:7px;letter-spacing:.7px;color:#d5e5d8aa;text-shadow:0 1px 2px #000}.mutation-mark{position:absolute;right:3px;top:3px;width:16px;height:16px;display:grid;place-items:center;background:#132229;border-radius:50%;color:#d7b7f3;box-shadow:0 0 8px #b589e399}.mutation-mark .icon{width:12px;height:12px}.mutated.feral>.room-art{filter:saturate(1.45)}.mutated.efficient>.room-art{filter:hue-rotate(12deg)}.mutated.symbiotic:before{box-shadow:0 0 18px #bb9df08c}.engine-tail{height:21px;position:absolute;bottom:4px;left:27%;width:46%;display:flex;justify-content:space-between}.engine-tail i{position:relative;display:block;width:23%;height:18px;background:repeating-linear-gradient(0deg,#334e58 0 4px,#81958d 5px 6px);border-radius:0 0 4px 4px;box-shadow:0 1px 0 #d6e7d577}.engine-tail i:after{content:'';position:absolute;top:18px;width:78%;left:11%;height:25px;border-radius:0 0 50% 50%;background:linear-gradient(#befbfbbb,#47c8e566,transparent);box-shadow:0 8px 15px #8cedf144;animation:exhaust 2.4s infinite alternate}.ship-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #42616a55;padding:19px 0 14px;color:#b7cdc4;font-size:12px}.ship-caption>span:last-child{font-size:10px;color:var(--muted)}.status-light{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 7px #b9f2cb88;margin-right:9px}.placement-status{display:flex;justify-content:space-between;align-items:center;min-height:48px;font-size:12px;color:var(--muted);gap:12px;border-top:1px solid #32474f55}.placement-status b{color:var(--mint);font-weight:500}.placement-status.active{color:#b0c4c4}.placement-status .text-button{color:var(--mint)}.decision{min-width:0;padding:3px 0 20px 34px;border-left:1px solid #38515970;align-self:start}.decision>.eyebrow{margin-bottom:18px}.decision>p{color:var(--muted);font-size:13px;line-height:1.7;margin-top:15px}.route-list{display:flex;flex-direction:column;gap:11px;margin-top:28px}.route-option{position:relative;display:flex;align-items:center;text-align:left;gap:15px;min-height:124px;padding:18px 20px;border:1px solid #42606b8a;border-radius:4px;background:linear-gradient(110deg,#16303988,#11212b88);transition:background .2s,border-color .2s,transform .2s}.route-option:hover{background:#213b3fbb;border-color:#9dbbae;transform:translateX(3px)}.route-option:active{transform:scale(.99)}.route-symbol{width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;color:#b2d7b2;position:relative}.route-symbol:before{content:'';position:absolute;inset:0;border:1px solid #7aa59055;transform:rotate(45deg);border-radius:4px;background:#4979560d}.route-symbol .icon{width:23px;height:23px}.salvage .route-symbol{color:var(--power)}.salvage .route-symbol:before{border-color:#b69d6755}.anomaly .route-symbol{color:#c4b8eb}.anomaly .route-symbol:before{border-color:#ac94d155}.route-copy{min-width:0}.route-copy .eyebrow{font-size:8px;color:#9cb6ba;letter-spacing:1.5px;margin-bottom:4px}.route-copy strong{display:block;font-size:18px;font-weight:500;letter-spacing:-.3px}.route-reward{font-size:11px;color:#bfdfc3;display:block;margin-top:4px}.route-risk{display:flex;align-items:center;gap:5px;color:#c7aaa0;font-size:10px;margin-top:7px}.route-risk .icon{width:12px;height:12px}.route-arrow{width:17px;height:17px;margin-left:auto;color:#97b8b3}.quiet-tip{display:flex;gap:9px;color:#8da6aa;font-size:11px;line-height:1.6;margin-top:24px}.quiet-tip .icon{width:15px;height:15px;margin-top:2px}.encounter-art{height:176px;position:relative;display:flex;align-items:center;justify-content:center;margin:0 0 24px;overflow:hidden;background:radial-gradient(ellipse,#40655544,transparent 66%);border-top:1px solid #47605e44;border-bottom:1px solid #47605e44}.encounter-art:before{content:'';position:absolute;left:calc(50% - 88px);top:0;width:176px;height:176px;border:1px solid #89b4a022;border-radius:50%}.encounter-art>.room-art{width:152px;height:152px;object-fit:contain;mix-blend-mode:screen;filter:drop-shadow(0 0 22px #9bdcab22);border-radius:10px}.specimen-index{position:absolute;left:0;bottom:9px;letter-spacing:1.5px;color:#738f94;font-size:8px}.choice-list{display:grid;gap:10px;margin-top:24px}.choice-option{padding:15px 17px;border:1px solid #526d6b8a;border-radius:3px;background:#1430275e;text-align:left;min-height:75px}.choice-option:hover{border-color:#b9f2cb;background:#24423a99}.choice-option strong{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;color:#c9ecd0}.choice-option strong .icon{width:17px;height:17px}.choice-option>span{display:block;font-size:11px;color:#a2bcb5;margin-top:5px}.choice-option:nth-child(2){background:#15263175}.choice-option:nth-child(2) strong{color:#d3dcda}.choice-option .disabled-reason{color:var(--danger)}.inspector{margin-top:25px}.specimen-heading{display:flex;align-items:center;gap:14px}.specimen-heading>.room-art{width:61px;height:61px;border-radius:5px;border:1px solid #52716666}.specimen-heading .eyebrow{font-size:8px;letter-spacing:1.1px;margin-bottom:7px}.specimen-heading h3{font-size:21px}.flows{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:15px;min-height:26px}.flow{display:flex;gap:5px;align-items:center;font-size:12px;color:var(--resource)}.flow .icon{width:14px;height:14px}.flow-arrow{color:#94aca7;margin:0 3px}.flow.cost{color:#c7b3aa}.flow.muted{font-size:10px}.specimen-description{font-size:12px;color:#a2b6b9;line-height:1.6;margin-top:14px}.risk-line{display:flex;gap:7px;font-size:10px;color:#bcb39f;margin-top:11px;line-height:1.5}.risk-line .icon{width:13px;height:13px;margin-top:2px}.synergy-note{display:flex;gap:7px;font-size:11px;line-height:1.6;color:var(--mint);padding:10px 12px;margin-top:12px;background:#49795922;border-left:2px solid #8ccea4}.synergy-note .icon{width:15px;height:15px;flex-shrink:0;margin-top:2px}.inspector-actions{display:flex;gap:10px;margin-top:15px}.inspector-actions>button{flex:1}.anchored{display:flex;gap:7px;align-items:center;margin-top:14px;font-size:10px;color:var(--muted)}.anchored .icon{width:12px;height:12px}.empty-inspector{padding:22px 0 12px}.empty-inspector .eyebrow{color:var(--muted);font-size:8px;letter-spacing:1.4px;margin-bottom:8px}.empty-inspector h3{font-size:22px}.empty-inspector>p{font-size:12px;color:#a0b6b5;margin-top:12px;line-height:1.7}.mutation-options{margin-top:15px;border:1px solid #6d5b7d77;border-radius:3px}.mutation-options summary{min-height:44px;padding:10px 12px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:#d1bede}.mutation-options summary .icon{width:16px;height:16px}.mutation-options summary>span{margin-left:auto;font-size:10px;color:var(--muted)}.mutation-options summary:after{content:'+'}.mutation-options[open] summary:after{content:'−'}.mutation-options>div{display:grid;padding:0 10px 10px;gap:6px}.mutation-options button{text-align:left;display:block;width:100%;padding:10px;background:#56416222;border:1px solid #765d842d;min-height:58px}.mutation-options button:hover{border-color:#cbb7dd99}.mutation-options button strong{font-size:11px;color:#d6c3e8;font-weight:500}.mutation-options button span{display:block;color:#a69fb2;font-size:10px;margin-top:3px;line-height:1.6}.cargo{margin-top:24px;border-top:1px solid #3d575f88;padding-top:15px}.section-label{display:flex;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:1.4px;color:#b0c5c0;align-items:center}.section-label b{font-weight:400;color:#8aaca4;margin-left:6px;letter-spacing:0}.section-label>span:last-child{color:#7f9c9e;font-size:8px;letter-spacing:.7px}.cargo-tray{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}.cargo-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:3px;background:#07151b66;border:1px solid #38515c;border-radius:3px;min-height:77px}.cargo-item:hover{border-color:#c1dec5}.cargo-item.selected{border-color:var(--mint);box-shadow:0 0 0 1px #b9f2cb55}.cargo-item .room-art{width:100%;max-width:62px;aspect-ratio:1;object-fit:cover;border-radius:2px}.cargo-item>span{font-size:8px;line-height:1.2;color:#c6d6d1;text-align:center;max-width:80px}.cargo-empty{color:var(--muted);font-size:11px;grid-column:1/-1;line-height:1.8}.cargo-mutation{width:11px;height:11px;position:absolute;top:3px;right:3px;color:#dac5fa}.cargo-reject{display:flex;align-items:center;gap:14px;font-size:10px;color:var(--muted);margin-top:8px}.cargo-reject .text-button{font-size:10px}.forecast{margin-top:25px;padding-top:17px;border-top:1px solid #3b515d88}.forecast-values{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:13px}.forecast-values>div>span{display:flex;gap:4px;align-items:center;font-size:8px;color:var(--resource)}.forecast-values .icon{width:11px;height:11px}.forecast-values b{font-size:23px;font-weight:500;display:inline-block;margin-top:4px;font-variant-numeric:tabular-nums}.forecast-values small{font-size:10px;margin-left:5px}.positive{color:#9ec5a8}.negative{color:#dbaa99}.forecast-summary{display:flex;gap:7px;color:#a6c3af;font-size:10px;line-height:1.6;margin-top:13px}.forecast-summary .icon{width:13px;height:13px;margin-top:2px}.forecast-summary.warning{color:var(--danger)}.causes{margin-top:9px}.causes summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:44px;color:#92adaf;font-size:10px}.causes summary .icon{width:14px;height:14px}.causes[open] summary .icon{transform:rotate(45deg)}.causes ol{padding:0 0 0 15px;color:#afc3c0;font-size:10px;line-height:1.6}.causes li{margin-bottom:7px}.causes .damage,.causes .danger,.causes .starvation,.causes .dormant{color:var(--danger)}.build-repair{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 13px;border-top:1px solid #3b515d55;padding-top:5px}.build-repair>span{font-size:10px;color:#8ca6aa}.departure{margin-top:3px}.game-footer{max-width:1340px;margin:25px auto 0;padding:17px 18px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#739397;font-size:8px;letter-spacing:1.4px}.game-footer .text-button{font-size:9px;letter-spacing:.6px;min-height:28px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(92vw,560px);background:#203c3c;border:1px solid #678d80;border-radius:4px;display:flex;align-items:center;gap:10px;padding:13px 18px;font-size:12px;box-shadow:0 8px 24px #0009;z-index:60;pointer-events:none;animation:toast-in .2s}.toast .icon{width:17px;height:17px;color:var(--mint)}.restart-banner{position:fixed;bottom:0;left:0;right:0;z-index:70;background:#203335;border-top:1px solid #8bb3a2;box-shadow:0 -8px 30px #0009;display:flex;align-items:center;justify-content:center;gap:28px;padding:17px;font-size:13px}.restart-banner>div{display:flex;gap:10px}.welcome{align-items:center;margin-top:64px}.welcome .scene-top h1{font-size:47px}.welcome .space-stage{height:510px}.welcome .journey{opacity:.5}.welcome-decision{padding-left:46px;padding-top:15px}.welcome-decision>.eyebrow{margin-bottom:28px}.welcome-decision h2{font-size:clamp(39px,3.8vw,54px);font-weight:550;line-height:1.06;letter-spacing:-2.4px}.welcome-decision .intro{font-size:15px;line-height:1.8;margin-top:24px;color:#b3c8c5}.voyage-facts{display:flex;gap:30px;margin:30px 0;color:#8da9aa;font-size:10px}.voyage-facts b{font-size:22px;font-weight:400;color:var(--text);margin-right:6px}.welcome form label{display:flex;justify-content:space-between;gap:10px;margin:0 0 7px;font-size:10px;color:#adc4be}.welcome form label>span{font-size:9px;color:#819f9c}.welcome input,.welcome select{width:100%;min-height:47px;background:#0d1b22bb;border:1px solid #526b70;border-radius:3px;padding:12px 14px;font-size:12px;color:#c8ddd7;letter-spacing:1px}.welcome .launch{margin-top:13px}.welcome select{margin-bottom:3px}.welcome form label[for=starter]{margin-top:18px}.field-note{color:var(--muted);font-size:9px;margin:5px 0 10px}.save-note{display:flex;align-items:center;gap:7px;color:#8faaa4!important;font-size:10px!important;margin-top:18px!important}.save-note .icon{width:13px;height:13px}.welcome-foot{font-size:8px!important;letter-spacing:2px!important;margin-top:36px!important;color:#658880!important}.arrival-mark{width:76px;height:76px;border:1px solid #68897866;border-radius:50%;display:grid;place-items:center;margin:22px 0;color:var(--mint);background:radial-gradient(ellipse,#4c845b44,transparent 70%)}.arrival-mark .icon{width:36px;height:36px}.arrival-mark.loss{color:var(--danger);border-color:#b2867666}.report-resources{margin:23px 0 20px;display:grid;gap:10px;border-block:1px solid #3a565d77;padding:17px 0}.report-resources>div{display:flex;align-items:center;gap:15px;font-size:12px;line-height:1.6}.report-resources>div>span{display:flex;align-items:center;gap:8px;color:var(--resource)}.report-resources .icon{width:14px;height:14px}.report-resources strong{margin-left:auto;font-weight:400;font-variant-numeric:tabular-nums}.report-resources strong>span{font-size:10px;color:#6b8a92;margin-inline:8px}.report-resources b{font-weight:500}.report-resources small{width:25px;text-align:right;color:var(--muted);font-size:11px}.report-highlights p{display:flex;gap:8px;align-items:flex-start;font-size:11px;color:#c0ccc0;margin-bottom:13px;line-height:1.6}.report-highlights .icon{width:14px;height:14px;flex-shrink:0;margin-top:2px;color:#a1bca0}.decision>.primary{margin-top:21px}.ending-build{margin-top:24px;padding:18px 0;border-block:1px solid #57716966;font-size:12px;color:var(--mint)}.ending-build>b{display:block;font-size:46px;line-height:1.2;color:#d1e3d7;font-weight:450;margin-top:10px}.ending-build small{font-size:8px;letter-spacing:1.8px;margin-left:10px;font-weight:500;color:#8aa69e}.end-stats{display:flex;gap:25px;margin-top:20px;color:#97b4ac;font-size:10px}.end-stats b{display:block;font-size:23px;font-weight:500;color:var(--text)}.failure-reasons{padding:12px 0;color:#dbaf9d;font-size:11px;line-height:1.7}.failure-reasons p{margin-top:8px}.archive-page{max-width:1280px;margin:65px auto 60px;padding:0 24px}.archive-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.archive-heading h1{font-size:48px;line-height:1.1;margin-top:18px;letter-spacing:-2px}.archive-heading h1 span{color:var(--mint)}.archive-heading p{color:#a8bfb8;font-size:13px;margin-top:18px}.archive-stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid #4c6b6377;padding:24px 0;margin:35px 0}.archive-stats>div{display:flex;align-items:baseline;gap:13px;border-right:1px solid #4c6b6333;padding-left:25px}.archive-stats>div:first-child{padding-left:0}.archive-stats>div:last-child{border:0}.archive-stats strong{font-size:32px;font-weight:400;color:#c5e9cc}.archive-stats span{font-size:10px;color:#92aaa3}.archive-specimens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.archive-specimen{display:flex;gap:20px;border:1px solid #405d5866;background:#14282477;padding:20px;border-radius:4px;min-width:0}.archive-specimen>.room-art{width:105px;height:105px;border-radius:5px;object-fit:cover}.archive-specimen .eyebrow{font-size:8px;color:#91bea0;letter-spacing:1.4px}.archive-specimen h2{font-size:21px;letter-spacing:-.3px;margin-top:8px}.archive-specimen p{font-size:11px;color:#a1b8ae;margin-top:8px;line-height:1.65}.archive-specimen .flows{margin-top:8px}.archive-specimen.undiscovered{background:#10212644}.undiscovered>.room-art{filter:grayscale(1) brightness(.45);opacity:.45}.undiscovered .eyebrow{color:#839b99}.undiscovered h2{color:#97aaa5}.archive-records{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:40px;padding-top:30px;border-top:1px solid #49645c77}.archive-records h2{font-size:21px;letter-spacing:0;margin-bottom:15px}.archive-records p,.archive-records li{font-size:12px;color:#9eb6a7;line-height:1.8;overflow-wrap:anywhere}.archive-records ul{padding-left:17px}.archive-records b{font-weight:500;color:var(--text);margin-left:6px}
@keyframes ship-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes exhaust{from{opacity:.7;transform:scaleY(.8);transform-origin:top}to{opacity:1;transform:scaleY(1.12);transform-origin:top}}@keyframes suggested{0%,100%{box-shadow:inset 0 0 0 1px #b9f2cb99,0 0 0 #b9f2cb00}50%{box-shadow:inset 0 0 0 2px #b9f2cbdd,0 0 15px #b9f2cb88}}@keyframes jump{0%{filter:brightness(1)}25%{filter:brightness(2);transform:translateY(0)}55%{filter:brightness(1.5);transform:translateY(-12px)}100%{filter:brightness(1);transform:translateY(0)}}.ship-body.jumping{animation:jump .9s ease-out}.ship-body.jumping .engine-tail i:after{height:65px;box-shadow:0 18px 28px #6ceaffbb}@keyframes toast-in{from{opacity:0;bottom:16px}to{opacity:1;bottom:24px}}
@media(min-width:1440px){.pressures{margin-top:32px}.layout{margin-top:45px}.game-layout{gap:60px}.decision{padding-left:44px}.space-stage{height:525px}.ship-body{width:480px}.welcome{margin-top:65px}.welcome .space-stage{height:540px}}
@media(max-width:1100px){.topbar{padding:0 30px;height:80px}.top-caption{display:none}.pressures{margin-inline:12px}.pressure{padding-inline:23px}.layout{gap:26px;padding:0 30px;grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr)}.decision{padding-left:23px}.scene-top h1{font-size:29px}.crew-count>span{display:none}.space-stage{height:420px}.ship-body{width:calc(100% - 38px);padding-top:48px}.ship-nose{height:58px;top:1px}.scene-scale{display:none}.scene-coordinate{left:-12px;font-size:7px}.route-option{padding:14px;gap:12px;min-height:118px}.route-symbol{width:28px;height:32px}.route-copy strong{font-size:16px}.decision h2{font-size:29px}.welcome .scene-top h1{font-size:36px}.welcome .space-stage{height:445px}.welcome-decision h2{font-size:41px}.welcome{margin-top:48px}.welcome-decision{padding-left:25px}.welcome .intro{font-size:13px}.welcome form label>span{font-size:8px}.forecast-values small{margin-left:3px;font-size:9px}.forecast-values b{font-size:21px}.cargo-tray{gap:7px}.archive-specimen{padding:15px;gap:13px}.archive-specimen>.room-art{width:85px;height:85px}.archive-stats>div{display:block}.archive-stats span{display:block}}
@media(max-width:760px){body{font-size:13px}.topbar{height:68px;padding:0 18px;gap:12px}.brand{font-size:21px;gap:8px;letter-spacing:2.7px}.brand img{width:26px;height:26px}.topbar nav{gap:6px}.archive-button{width:44px;justify-content:center}.archive-button>span{display:none}.archive-button .icon{width:20px;height:20px}.pressures{margin:18px 18px 0;padding:0;gap:0}.pressure{padding:0 9px}.pressure-name{font-size:8px;letter-spacing:.1px;gap:4px}.pressure-name .icon{width:12px;height:12px}.pressure-name .tiny{display:none}.pressure-reading{gap:3px;margin-top:6px}.pressure-reading strong{font-size:24px}.pressure-reading>span{font-size:8px}.meter{margin-top:9px}.layout{display:flex;flex-direction:column;margin-top:25px;padding:0 18px;gap:22px}.decision{border:0;padding:0 0 14px;width:100%}.decision>.eyebrow{font-size:9px;letter-spacing:1.7px;margin-bottom:12px}.decision h2{font-size:31px;letter-spacing:-1.1px}.decision>p{font-size:12px;line-height:1.7;margin-top:10px}.game-layout:not(.phase-build)>.decision{order:0}.game-layout:not(.phase-build)>.ship-scene{order:1;border-top:1px solid #3d555d66;padding-top:22px}.game-layout.phase-build>.ship-scene{order:0}.game-layout.phase-build>.decision{order:1}.scene-top h1{font-size:28px;letter-spacing:-.8px}.scene-top .eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:7px}.crew-count{font-size:10px;margin-top:8px;gap:5px}.crew-count b{font-size:13px}.crew-count .icon{width:15px;height:15px}.journey{margin-top:16px}.waypoint{height:24px}.waypoint b{width:24px;height:24px;font-size:9px}.space-stage{height:auto;min-height:350px;padding:12px 0}.ship-body{width:calc(100% - 24px);max-width:410px;padding-top:45px;padding-bottom:24px}.ship-nose{height:61px;top:-8px}.hull-frame{padding:8px;border-radius:9px}.ship-grid{gap:3px}.nacelle{width:17px;top:74px;bottom:49px}.nacelle-left{left:-12px}.nacelle-right{right:-12px}.nacelle:before{inset:9px 3px}.nacelle:after{left:3px;right:3px;height:25px;bottom:-16px}.ship-nose .cockpit{width:57px;height:33px;margin-top:17px}.scene-coordinate{display:none}.bay-number{font-size:6px}.empty-mark .icon{width:14px;height:14px}.mutation-mark{width:13px;height:13px;top:2px;right:2px}.mutation-mark .icon{width:10px;height:10px}.ship-caption{padding:15px 0 10px;font-size:11px}.ship-caption>span:last-child{font-size:9px}.placement-status{min-height:51px;font-size:11px}.placement-status>span{max-width:85%}.placement-status .text-button{font-size:11px}.route-list{margin-top:21px;gap:10px}.route-option{min-height:112px;padding:16px 17px;gap:17px}.route-symbol{width:35px;height:35px}.route-copy .eyebrow{font-size:8px;letter-spacing:1.1px}.route-copy strong{font-size:18px}.route-reward{font-size:11px}.route-risk{font-size:10px;margin-top:6px}.quiet-tip{margin-top:18px;font-size:10px;line-height:1.7}.game-layout:not(.phase-build) .space-stage{min-height:0;padding-top:12px;padding-bottom:8px}.game-layout:not(.phase-build) .ship-body{width:260px;padding-top:34px;padding-bottom:19px}.game-layout:not(.phase-build) .hull-frame{padding:6px}.game-layout:not(.phase-build) .ship-grid{gap:2px}.game-layout:not(.phase-build) .ship-nose{height:50px;top:-10px}.game-layout:not(.phase-build) .crew-count{display:none}.game-layout:not(.phase-build) .scene-top h1{font-size:23px}.game-layout:not(.phase-build) .journey{margin-top:10px}.game-layout:not(.phase-build) .ship-nose .cockpit{height:30px;margin-top:14px}.game-layout:not(.phase-build) .engine-tail{bottom:0}.game-layout:not(.phase-build) .ship-caption{font-size:10px;padding-top:14px}.encounter-art{height:152px;margin-bottom:19px}.encounter-art>.room-art{width:136px;height:136px}.encounter-art:before{width:146px;height:146px;left:calc(50% - 73px)}.choice-list{margin-top:20px}.choice-option{min-height:78px;padding:15px 17px}.choice-option strong{font-size:14px}.choice-option>span{font-size:11px}.inspector{margin-top:22px}.specimen-heading>.room-art{width:61px;height:61px}.specimen-heading h3{font-size:23px}.specimen-heading .eyebrow{font-size:9px}.flows{margin-top:14px;gap:8px}.flow{font-size:13px}.flow .icon{width:15px;height:15px}.specimen-description{font-size:12px}.risk-line{font-size:11px}.inspector-actions .secondary{min-height:45px;font-size:12px}.cargo{margin-top:23px}.cargo-tray{gap:9px;grid-template-columns:repeat(4,1fr)}.cargo-item{min-height:93px;padding:5px}.cargo-item .room-art{max-width:72px}.cargo-item>span{font-size:9px;line-height:1.3}.cargo-reject .text-button{font-size:11px}.section-label{font-size:10px}.section-label>span:last-child{font-size:9px}.forecast{margin-top:24px;padding-top:19px}.forecast-values{gap:6px;margin-top:17px}.forecast-values>div>span{font-size:9px}.forecast-values .icon{width:12px;height:12px}.forecast-values b{font-size:24px;margin-top:5px}.forecast-values small{font-size:11px;margin-left:5px}.forecast-summary{font-size:11px;margin-top:14px}.causes summary{font-size:11px;min-height:44px}.causes ol{font-size:11px;line-height:1.7}.build-repair .text-button{font-size:12px}.build-repair>span{font-size:11px}.phase-build .departure{position:fixed;z-index:40;bottom:0;left:0;right:0;padding:12px 18px max(12px,env(safe-area-inset-bottom));background:#0b1b20f2;border-top:1px solid #526c6277;backdrop-filter:blur(12px)}.phase-build .departure .primary{min-height:50px}.phase-build~.game-footer{padding-bottom:112px}.game-footer{padding:6px 18px 24px;margin-top:20px;font-size:7px;letter-spacing:.7px;gap:8px;flex-wrap:wrap}.game-footer .text-button{font-size:9px;min-height:44px}.toast{bottom:88px;font-size:11px;padding:12px 15px;width:max-content;max-width:calc(100% - 30px);animation:none}.toast .icon{width:15px;height:15px}.desktop-only{display:none}.welcome{margin-top:27px;gap:13px}.welcome .ship-scene{order:1;margin-top:22px}.welcome-decision{order:0;padding:0 0 12px}.welcome-decision>.eyebrow{margin-bottom:18px;font-size:8px}.welcome-decision h2{font-size:43px;letter-spacing:-1.8px;line-height:1.05}.welcome-decision .intro{font-size:13px;margin-top:16px;line-height:1.75}.welcome .voyage-facts{margin:20px 0;gap:27px}.welcome form label{font-size:10px;margin-top:10px}.welcome form label>span{font-size:9px}.welcome input,.welcome select{min-height:46px}.welcome .launch{min-height:53px;margin-top:12px}.welcome .save-note{margin-top:13px!important;font-size:9px!important}.welcome-foot{display:none}.welcome .scene-top h1{font-size:30px}.welcome .space-stage{height:auto;min-height:350px}.welcome .ship-caption{padding-bottom:30px}.arrival-mark{width:65px;height:65px;margin:18px 0}.arrival-mark .icon{width:30px;height:30px}.report-resources{margin:20px 0 17px;padding:15px 0}.report-resources>div{font-size:12px;line-height:1.9}.report-highlights p{font-size:11px}.decision>.primary{margin-top:18px}.ending-build{margin-top:20px}.archive-page{margin:32px 0 35px;padding:0 18px}.archive-heading{display:block}.archive-heading>.secondary{margin-top:20px}.archive-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.archive-heading h1{font-size:35px;letter-spacing:-1.5px;margin-top:13px}.archive-heading p{font-size:12px;margin-top:13px}.archive-stats{margin:25px 0;padding:18px 0}.archive-stats>div{padding-left:12px}.archive-stats strong{font-size:27px}.archive-stats span{font-size:8px}.archive-specimens{grid-template-columns:1fr;gap:12px}.archive-specimen{padding:15px;gap:15px}.archive-specimen>.room-art{width:78px;height:78px}.archive-specimen h2{font-size:19px;margin-top:6px}.archive-specimen p{font-size:10px}.archive-specimen .flows{gap:6px}.archive-specimen .flow{font-size:10px}.archive-specimen .flow .icon{width:12px;height:12px}.archive-records{grid-template-columns:1fr;gap:20px;margin-top:27px;padding-top:25px}.archive-records h2{font-size:20px;margin-bottom:12px}.archive-records p,.archive-records li{font-size:11px}.restart-banner{display:block;padding:17px;font-size:12px}.restart-banner>div{margin-top:10px}.restart-banner button{flex:1}}
@media(min-width:560px) and (max-width:760px){.space-stage{min-height:420px}.welcome .space-stage{min-height:420px}.cargo-tray{grid-template-columns:repeat(6,1fr)}}
@media(max-width:375px){.pressure{padding-inline:7px}.pressure-name{font-size:7.5px;gap:3px}.pressure-name .icon{width:11px;height:11px}.pressure-reading strong{font-size:23px}.space-stage{min-height:325px}.ship-grid{gap:2px}.hull-frame{padding:7px}.ship-body{width:calc(100% - 24px)}.welcome-decision h2{font-size:40px}.forecast-values small{font-size:10px;margin-left:3px}.cargo-tray{gap:7px}.cargo-item{min-height:89px}.brand{font-size:20px}.route-option{padding-inline:14px}.route-copy strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Decorative orbit geometry stays inside its own frame. */
.orbital-ring{overflow:hidden}
.pressure-forecast{font-size:9px;line-height:1.5;color:#96b0a6;margin-top:7px;letter-spacing:.1px}.pressure-forecast b{font-weight:500;color:var(--resource);margin-left:4px}.pressure-forecast.negative b{color:var(--danger)}
.choice-numbers{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:10px;color:#c0d4ca}.choice-numbers .icon{width:12px;height:12px}.choice-numbers>span{display:flex;align-items:center;gap:4px}
@media(max-width:760px){.pressure-forecast{font-size:7px;margin-top:5px}.pressure-forecast b{font-size:9px;margin-left:2px}}

/* The frame is sliced from the inspected original painted hull, preserving touch-sized bays. */
.ship-body{padding-top:76px;padding-bottom:49px}
.ship-nose{top:0;left:0;width:100%;height:88px;clip-path:none;border:0;border-radius:0;background:url('../assets/hull-prow.webp') center bottom/100% 100% no-repeat;box-shadow:none}
.ship-nose:before,.ship-nose>span,.ship-nose .cockpit{display:none}
.nacelle{top:76px;bottom:49px;width:44px;background:none;border:0;border-radius:0;box-shadow:none}
.nacelle:before,.nacelle:after{display:none}
.nacelle-left{left:-32px;background:url('../assets/hull-port.webp') center/100% 100% no-repeat}
.nacelle-right{right:-32px;background:url('../assets/hull-starboard.webp') center/100% 100% no-repeat}
.engine-tail{left:0;bottom:-7px;width:100%;height:68px;background:url('../assets/hull-stern.webp') center/100% 100% no-repeat;z-index:-1}
.engine-tail i{display:none}
.hull-frame{background:linear-gradient(135deg,#665f54,#283339 45%,#8a8370);border-color:#817e71;box-shadow:inset 0 0 0 3px #283538,inset 0 0 0 5px #a2b4ac22,0 0 0 2px #0a151a}
.building-caption{display:none}
.deck-toolbar{border-top:1px solid #49605b88;padding-top:10px}
.deck-toolbar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;font-size:12px}
.deck-toolbar-heading b{font-weight:500;color:#cee9d3}.deck-toolbar-heading small{font-size:9px;color:#8da7a4;margin-left:8px}
.deck-toolbar-heading .flows{margin:0;min-height:20px;gap:5px}.deck-toolbar-heading .flow{font-size:10px}.deck-toolbar-heading .flow .icon{width:12px;height:12px}
.deck-toolbar .placement-status{border:0;min-height:55px}.deck-actions{display:flex;gap:8px;width:100%}.deck-actions .secondary{flex:1}
@media(max-width:1100px){.ship-body{width:calc(100% - 64px)}.space-stage{min-height:455px}.nacelle{width:32px}.nacelle-left{left:-25px}.nacelle-right{right:-25px}}
@media(max-width:760px){.ship-body{padding-top:51px;padding-bottom:30px;width:calc(100% - 24px)}.ship-nose{top:0;left:0;width:100%;height:60px}.nacelle{top:51px;bottom:30px;width:19px}.nacelle-left{left:-13px}.nacelle-right{right:-13px}.engine-tail{left:0;bottom:-3px;width:100%;height:40px}.space-stage{min-height:0;padding:5px 0 13px}.deck-toolbar{padding-top:7px}.deck-toolbar-heading{min-height:31px;font-size:11px}.deck-toolbar-heading .flow{font-size:9px}.deck-toolbar-heading .flow .icon{width:11px;height:11px}.deck-toolbar .placement-status{min-height:51px}.deck-actions{gap:7px}.deck-actions .secondary{padding:9px 7px;font-size:11px;min-height:44px}.deck-actions .icon{width:15px;height:15px}.game-layout:not(.phase-build) .ship-body{padding-top:42px;padding-bottom:25px}.game-layout:not(.phase-build) .ship-nose{height:50px;top:0}.game-layout:not(.phase-build) .nacelle{top:42px;bottom:25px}.game-layout:not(.phase-build) .engine-tail{height:34px;bottom:-2px}.welcome .space-stage{min-height:0}.ship-caption{margin-top:9px}}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.first-synergy{font-size:10px;line-height:1.5;color:var(--mint);margin:2px 0 4px}.departure-warning{font-size:11px;color:var(--danger);margin:0 0 10px;display:flex;gap:6px;align-items:center}.departure-warning .icon{width:14px;height:14px}

/* Keep the keyboard skip link truly unpainted until focused, including full-page capture. */
.skip-link{opacity:0;pointer-events:none}.skip-link:focus{opacity:1;pointer-events:auto}

/* V2: decisions are previews, and a build is one reversible plan. */
.voyage-guidance{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#a4bebd;margin-top:12px}.voyage-guidance span{color:#88a39f}.bay.sealed .room-art{filter:grayscale(.8) brightness(.42)}.sealed-mark{position:absolute;inset:0;display:grid;place-items:center;background:repeating-linear-gradient(135deg,transparent 0 8px,#14242d50 8px 10px);color:#7e979b}.sealed-mark .icon{width:20px;height:20px}.bay.danger-linked{outline:2px solid var(--danger);outline-offset:-4px;box-shadow:inset 0 0 18px #efac9155}.draft-strip{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid #30454c;padding-top:4px;font-size:11px;color:var(--muted);min-height:44px}.draft-strip b{color:var(--text);font-weight:500}.draft-strip .text-button{font-size:11px;padding:5px 8px}.route-card{border:1px solid transparent;border-radius:4px}.route-card.previewing{border-color:#8bbca6;background:#12251f88}.route-card .route-option{margin:0;border-color:transparent}.route-card.previewing .route-option{background:transparent}.route-preview{padding:0 20px 20px}.route-projection{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:13px 0 16px}.route-projection>span{display:flex;align-items:center;gap:4px;color:var(--resource)}.route-projection .icon{width:14px;height:14px}.route-projection b{font-size:19px;color:var(--text);font-weight:500}.route-projection small{font-size:9px}.route-cause{font-size:12px!important;color:#c7d9d6!important;margin-top:7px!important}.certainty-note{font-size:10px!important;color:#9ebbb1!important;margin:15px 0!important}.route-preview .primary{min-height:48px;font-size:12px}.route-inspector{border-top:1px solid #344c51;margin-top:25px;padding-top:22px}.operating-status{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;margin:13px 0}.operating-status .icon{width:16px;height:16px;margin-top:2px}.timing-note{font-size:10px!important;line-height:1.5!important;color:#91aeab!important;margin:9px 0 15px!important}.trajectory{display:flex;flex-direction:column;gap:4px;border-left:2px solid #739591;padding-left:10px;margin:14px 0;font-size:10px;color:#b5ceca}.seed-cost{font-size:11px;color:var(--mint);margin:10px 0}.plan-summary{border-top:1px solid #31484d;border-bottom:1px solid #31484d;padding:17px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:21px 0}.plan-summary strong{font-size:23px;font-weight:500;display:block;margin-top:5px;color:var(--mint)}.plan-summary p{font-size:11px!important;margin-top:4px!important;color:var(--muted)}.plan-summary .text-button{flex-shrink:0;font-size:10px}.service-stop{border:1px solid #4d655c;padding:17px;margin:16px 0}.service-stop p{font-size:12px!important;margin:8px 0 12px!important}.service-stop .text-button{display:flex}.departure .primary:disabled{opacity:.6}.seed-chooser{margin-top:16px;border:1px solid #405650;padding:0 12px;border-radius:3px}.seed-chooser>summary{min-height:46px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:12px;gap:12px}.seed-chooser>p{font-size:11px!important;color:#adcbc1!important;line-height:1.5!important;margin:4px 0 13px!important}.genome-options{display:grid;gap:9px;margin:12px 0}.genome-option{display:flex;align-items:center;gap:10px;text-align:left;padding:11px;background:#14282b;border:1px solid #3e565b;border-radius:3px;min-height:80px;width:100%}.genome-option.selected{border-color:var(--mint);background:#203c30}.genome-option>.room-art{width:54px;height:54px;border-radius:3px;object-fit:cover;flex-shrink:0}.genome-option>span:not(.room-art){flex:1;min-width:0}.genome-option strong{font-size:12px;font-weight:550;display:block;text-transform:capitalize}.genome-option small{font-size:10px;display:block;color:#b3cbca;line-height:1.5;margin-top:3px}.genome-price{font-size:9px;color:var(--mint);display:block;margin-top:5px}.genome-option>i{display:grid;place-items:center}.genome-option>i .icon{width:16px;height:16px}.banking-panel{margin:25px 0;border-top:1px solid #39524e;padding-top:22px}.banking-panel h3{margin-top:10px}.banking-panel>p{font-size:12px!important;margin:12px 0!important}.retained-note{display:flex;align-items:flex-start;gap:10px;border-top:1px solid #324d48;border-bottom:1px solid #324d48;padding:18px 0;margin:22px 0!important;font-size:12px!important;color:#c0d5d0!important}.bank-section,.blueprint-section{margin:32px 0 42px}.banked-genomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.banked-genome{display:flex;gap:14px;align-items:center;padding:17px;border:1px solid #3e5950;background:#14282099}.banked-genome .room-art{width:60px;height:60px;border-radius:3px}.banked-genome h3{font-size:17px;text-transform:capitalize;line-height:1.2}.banked-genome p{font-size:10px;line-height:1.6;color:#b2cac0;margin-top:7px}.banked-genome small{font-size:9px;display:block;color:var(--mint);margin-top:5px}.archive-empty{padding:22px 0;color:#b3c9c4;max-width:650px}.observations-title{font-size:25px;margin:25px 0 20px}.blueprint-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:16px}.blueprint{min-width:0;padding:14px;border:1px solid #344b50;background:#0d202699}.blueprint-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;border:3px solid #516264}.blueprint-grid>span{position:relative;aspect-ratio:1;display:block}.blueprint-grid .room-art{width:100%;height:100%;object-fit:cover;display:block}.blueprint-grid .sealed{opacity:.3}.blueprint-grid .icon{position:absolute;width:10px;height:10px;bottom:0;right:0;color:var(--mint)}.blueprint h3{font-size:13px;margin-top:12px;overflow-wrap:anywhere}.blueprint p{font-size:10px;color:#abc0c1;margin-top:5px}.genome-option:disabled{opacity:.5}
@media(max-width:1100px){.banked-genomes{grid-template-columns:repeat(2,minmax(0,1fr))}.blueprint-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.voyage-guidance{font-size:8px;margin-top:9px;gap:6px}.voyage-guidance span{font-size:7px}.draft-strip{font-size:9px;min-height:44px}.draft-strip .text-button{font-size:10px}.route-preview{padding:0 13px 15px}.route-projection{gap:5px;margin:11px 0}.route-projection>span{gap:3px}.route-projection b{font-size:18px}.route-projection small{font-size:8px}.route-projection .icon{width:12px;height:12px}.route-cause{font-size:11px!important}.certainty-note{font-size:9px!important}.operating-status{font-size:11px}.plan-summary{margin:20px 0 12px}.plan-summary strong{font-size:21px}.plan-summary p{font-size:10px!important}.plan-summary .text-button{font-size:9px}.banked-genomes{grid-template-columns:1fr}.blueprint-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.blueprint{padding:10px}.blueprint h3{font-size:11px}.bank-section,.blueprint-section{margin:27px 0}.genome-option>.room-art{width:48px;height:48px}.genome-option strong{font-size:11px}.genome-option small{font-size:9px}.genome-price{font-size:9px}.welcome .voyage-facts{gap:22px}.evacuation-banner{z-index:60}.departure-warning{line-height:1.4}.route-inspector .specimen-heading{margin-top:10px}}
.pressures{position:relative}.resource-caption{position:absolute;left:18px;top:-17px;font-size:8px;letter-spacing:1.7px;color:#a7bdb6}@media(max-width:760px){.resource-caption{font-size:6px;top:-13px;letter-spacing:1.1px}}
.deck-status{display:flex;align-items:flex-start;gap:6px;margin:6px 0;font-size:11px;line-height:1.45}.deck-status .icon{width:14px;height:14px;flex-shrink:0;margin-top:1px}@media(max-width:760px){.deck-status{font-size:10px}}
.commit-controls{display:flex;gap:10px;align-items:stretch}.commit-controls>.primary{flex:1;min-width:0;text-align:left}.commit-controls .primary small{display:block;font-size:10px;font-weight:400;margin-top:4px;opacity:.85}.commit-undo{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:58px;padding:8px;font-size:10px}.commit-undo .icon{width:17px;height:17px}
@media(max-width:760px){.phase-build .ship-body{width:calc(100% - 48px)}.game-layout.phase-build{margin-top:15px}.commit-controls{gap:8px}.commit-controls>.primary{padding:10px 12px;font-size:13px;min-height:54px}.commit-controls .primary small{font-size:9px}.commit-undo{min-width:52px}.phase-build .departure{padding-top:10px;padding-bottom:max(10px,env(safe-area-inset-bottom))}}

/* V3: selection is stationary; motion belongs to committed interactions. */
.ship-body{animation:none}
.pressure{display:block;text-align:left;min-width:0;background:transparent;color:inherit}
.pressure-reading,.pressure-forecast{display:flex}
.pressure-reading>span{white-space:nowrap}
.meter{position:relative;display:block}
.meter .heat-threshold{position:absolute;top:-3px;height:8px;width:1px;background:var(--danger)}
.flow[data-help]{cursor:help;border-bottom:1px dotted #829d9470}
.context-help{position:fixed;z-index:100;width:min(345px,calc(100vw - 24px));padding:16px 18px;background:#173039;border:1px solid #8ab3a0;border-radius:4px;box-shadow:0 10px 35px #0008;pointer-events:none}
.context-help strong{display:block;font-size:14px;color:var(--mint)}
.context-help p{margin-top:8px;font-size:12px;line-height:1.65;color:#d2e0da}
.topbar{position:relative}
.mix-toggle{font-size:10px;min-width:30px;justify-content:center}
.audio-settings{position:absolute;right:20px;top:80px;z-index:80;display:flex;flex-direction:column;gap:9px;padding:18px;background:#142a31;border:1px solid #789b8b;width:270px;box-shadow:0 12px 35px #0008}
.audio-settings>p{font-size:11px;color:var(--muted)}
.audio-settings .secondary{justify-content:flex-start}
.guide-choice{display:flex!important;align-items:center;gap:10px;justify-content:flex-start!important;font-size:12px!important;color:#c4ddd0;margin:15px 0 3px!important;min-height:44px;cursor:pointer}
.guide-choice input{width:18px!important;height:18px!important;min-height:18px!important;accent-color:var(--mint);margin:0}
.coach{display:flex;gap:14px;border-left:2px solid var(--mint);background:#182e2cc9;padding:12px 14px;margin:0 0 22px}
.coach .eyebrow{font-size:8px;letter-spacing:1.5px;margin:0 0 5px}
.coach strong{font-size:15px;font-weight:550}
.coach p{font-size:11px;line-height:1.6;color:#c1d6ca;margin-top:5px}
.coach-actions{display:flex;flex-direction:column;justify-content:center;flex-shrink:0;gap:0}
.coach .text-button{font-size:10px;min-height:44px;padding:5px 8px;color:var(--mint)}
.coach .text-button:last-child{color:var(--muted)}
.guide-target{outline:2px solid #b9f2cb!important;outline-offset:3px!important}
.bay.guide-target{outline-offset:0!important}
.route-option{width:100%}
.route-price{display:block;font-size:11px;line-height:1.5;color:#bfc9bc;margin-top:4px}
.route-reward{text-transform:none}
.route-projection>span{display:grid;grid-template-columns:auto 1fr;gap:3px}
.route-stat-name{grid-column:1/-1;font-size:9px;color:#bbccc5}
.route-projection small{grid-column:2}
.specimen-scan{margin-top:16px;padding:14px 0;border-top:1px solid #45605a;border-bottom:1px solid #45605a}
.specimen-scan .section-label{font-size:9px;letter-spacing:1px}
.specimen-scan .flows{margin-top:11px}
.specimen-scan p{font-size:12px;line-height:1.6;margin-top:9px;color:#c0d2c9}
.specimen-scan .scan-risk{font-size:11px;color:#d7c4a9}
.specimen-scan small{display:block;font-size:10px;margin-top:10px;color:var(--muted)}
.mutation-comparison{display:block;margin:12px 0 6px;padding:11px 12px;background:#392b3b66;border-left:2px solid #b69bd0;text-align:left}
.mutation-comparison>b{display:block;font-size:10px;text-transform:capitalize;color:#e0c6ef}
.mutation-comparison>span{display:block!important;font-size:12px!important;color:#ddd4e4!important;line-height:1.55!important;margin-top:7px!important}
.mutation-comparison small{display:block;font-size:10px;color:#c5b8cc;margin-top:7px;line-height:1.5}
.mutation-options .mutation-comparison{margin:8px 0 0;padding:8px;background:#35273b66}
.mutated.feral{box-shadow:inset 0 0 0 2px #fbb08a,0 0 10px #ff895833}
.mutated.feral>.room-art{filter:saturate(1.7) sepia(.25)}
.mutated.efficient .mutation-mark{color:#aeeaff;box-shadow:0 0 7px #8bcffb88}
.mutated.symbiotic .mutation-mark{color:#e4bcff}
.mutated.feral .mutation-mark{color:#ffca9e;background:#402720}
.mutation-mark{font-size:9px;font-weight:700;line-height:1}
.bay.inactive .room-art{filter:grayscale(.7) brightness(.6)}
.bay.inactive:before{content:'Ⅱ';position:absolute;right:3px;bottom:3px;inset:auto 3px 3px auto;z-index:5;background:#172328;color:#efbb97;width:14px;height:14px;font-size:9px;line-height:14px;text-align:center}
.bay.graft-arrival .room-art{animation:graft-settle .48s ease-out}
.bay.mutation-arrival .room-art{animation:mutation-bloom .65s ease-out}
.bay-feedback{position:absolute;z-index:8;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);padding:4px 7px;border:1px solid #a4cbb3;background:#18372b;color:#e8fff0;font-size:10px;white-space:nowrap;border-radius:3px;pointer-events:none;text-transform:capitalize}
@keyframes graft-settle{0%{transform:scale(.72);filter:brightness(1.9);opacity:.4}65%{transform:scale(1.045)}100%{transform:scale(1);opacity:1}}
@keyframes mutation-bloom{0%{filter:saturate(0) brightness(1.8);transform:scale(.94)}60%{filter:saturate(2.2);transform:scale(1.04)}100%{transform:scale(1)}}
body[data-outcome="loss"] .ship-body{filter:grayscale(.95) brightness(.48);opacity:.8}
body[data-outcome="loss"] .space-stage:after{content:'SIGNAL LOST';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:9px 17px;letter-spacing:3px;font-size:12px;color:#ffc5aa;background:#251b1ae6;border:1px solid #a3736077;z-index:6}
body[data-outcome="loss"] .status-light{background:#be806c;box-shadow:none}
body[data-outcome="win"] .space-stage{background:radial-gradient(ellipse,#94eaba20,transparent 68%)}
body[data-outcome="win"] .arrival-mark{background:#35523d55;box-shadow:0 0 55px #b9f2cb20}
.ending-build>span{display:block;font-size:9px;color:var(--muted);letter-spacing:1.8px;margin-bottom:7px}
.loss-legacy{border-left:2px solid #cd977a;padding:13px 16px;background:#35262355;color:#decbbd!important;font-size:12px!important}
.failure-reasons{padding:15px;border:1px solid #9c6f5955;background:#39271f33;margin-top:18px}
.failure-reasons p{font-size:12px;line-height:1.65;color:#f0c2aa}
@media(max-width:760px){
 .topbar nav{gap:5px}.topbar .icon-button{width:38px;min-width:38px}.topbar .archive-button{margin-left:1px}.mix-toggle{min-width:27px}
 .audio-settings{top:65px;right:15px}
 .pressure-reading>span{font-size:8px}.pressure.heat .pressure-reading{flex-wrap:wrap;gap:4px}
 .pressure-name{font-size:8px;letter-spacing:.25px}.pressure-name .icon{width:12px;height:12px}
 .coach{padding:10px 12px;gap:8px;margin-bottom:15px}.coach strong{font-size:13px}.coach p{font-size:10px}.coach .text-button{padding:4px;font-size:10px}
 .route-price{font-size:10px}.route-projection b{font-size:20px}.route-stat-name{font-size:10px}
 .deck-toolbar .placement-status{flex-wrap:wrap;gap:6px}.deck-toolbar .placement-status>span{flex:1;min-width:110px}
 .deck-toolbar .placement-status .text-button{font-size:10px;min-height:44px}
 .guided.phase-build .scene-top{display:none}.guided.phase-build .journey{margin-top:5px}.guided.phase-build .coach{margin-bottom:9px}
}
.mutation-highlight{margin:15px 0;padding:14px 16px;background:#37294377;border-left:2px solid #cba6df}
.mutation-highlight>strong{display:block;font-size:15px;color:#e4c8f4;text-transform:none}
.mutation-highlight>p{display:block!important;font-size:13px!important;color:#eadff0!important;line-height:1.6;margin-top:8px}
.mutation-highlight>small{display:block;font-size:11px;color:#c8b8ce;line-height:1.6;margin-top:8px}
.mutated.feral:after{content:'';position:absolute;inset:1px;pointer-events:none;border:2px solid #e6986da6;clip-path:polygon(0 0,35% 3%,50% 0,65% 4%,100% 0,96% 40%,100% 55%,96% 68%,100% 100%,65% 96%,46% 100%,30% 95%,0 100%,4% 66%,0 45%,4% 25%)}
.toast{pointer-events:none}
@media(max-width:760px){.guided.phase-build .coach{padding:8px 10px}.guided.phase-build .coach-actions .text-button{min-height:40px}.guided.phase-build .ship-body{padding-top:47px}.guided.phase-build .ship-nose{height:56px}}
body[data-outcome="loss"] .ship-body.jumping{animation:none;filter:grayscale(1) brightness(.3)}
body[data-outcome="loss"] .ship-body{filter:grayscale(1) brightness(.3)}
body[data-outcome="loss"] .crew-count,body[data-outcome="loss"] .scene-scale{color:#be9783}

/* V4: forecast crossings and operating instructions. */
.crossing-notice{margin:18px 0;padding:13px 15px;border-left:2px solid #d0bb87;background:#26333877}
.crossing-notice>.eyebrow{color:#cabb97;font-size:8px;letter-spacing:1.5px}
.crossing-notice>strong{display:block;margin-top:4px;font-size:17px;font-weight:550}
.crossing-notice>p{font-size:12px;line-height:1.6;margin-top:5px;color:#c0cdcc}
.crossing-notice .crossing-next{padding-top:9px;margin-top:9px;border-top:1px solid #82938c33;font-size:11px;color:#b8c6c4}
.crossing-notice details>summary,.launch-chart>summary,.crossing-trend>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;font-size:11px;color:#c2d2cc;list-style:none}
.crossing-notice details>summary .icon,.crossing-trend>summary .icon{width:14px;height:14px}
.flight-plan{list-style:none;padding:0;margin:6px 0 10px;display:grid;gap:14px}
.flight-plan>li{display:grid;grid-template-columns:31px 1fr;gap:10px;line-height:1.5}
.flight-plan>li>span{font-size:10px;color:#91a39f;border-right:1px solid #546c6388;padding-top:3px}
.flight-plan strong{font-size:12px;font-weight:550}
.flight-plan small{font-size:11px;display:block;color:var(--muted);margin-top:2px}
.flight-plan .current>span{color:var(--mint);border-color:var(--mint)}
.launch-chart{margin-top:10px}
.launch-chart>summary{font-size:10px;min-height:44px;justify-content:flex-start;color:#a6b9b1}
.launch-chart>.flight-plan{padding:10px 13px;background:#122329aa}
.crossing-trend{margin-top:12px;border-top:1px solid #3e555b77}
.crossing-trend>p{font-size:11px;color:var(--muted);line-height:1.6;margin:0 0 10px}
.trend-scroll{max-width:100%;overflow:auto}
.crossing-trend table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:11px;text-align:right}
.crossing-trend caption{text-align:left;font-size:10px;color:var(--muted);margin-bottom:8px}
.crossing-trend th,.crossing-trend td{padding:7px 4px;border-bottom:1px solid #3e555b55}
.crossing-trend thead th{font-size:9px;font-weight:500;color:var(--muted)}
.crossing-trend tr>:first-child{text-align:left}
.port-exchange{padding:14px 0;border-bottom:1px solid #3e555b77;margin-bottom:14px}
.port-exchange>strong{font-size:15px;font-weight:550}
.port-exchange p{font-size:11px;color:var(--muted);margin:6px 0 10px!important;line-height:1.6}
.port-exchange>div{display:flex;gap:7px;flex-wrap:wrap}
.port-exchange .secondary{font-size:11px;padding:8px 10px}
.port-exchange .selected{border-color:var(--mint);background:#254135;color:#d6f7df}
.port-exchange>small{display:block;margin-top:9px;font-size:10px;color:#b5c9bd;line-height:1.6}
.deck-actions{flex-wrap:wrap}
.operation-mark{position:absolute;left:3px;top:3px;padding:0 3px;background:#0a182bd9;color:#d4e0e1;font-size:13px;line-height:17px;border:1px solid #869ba5}
.bay.paused>.room-art{filter:saturate(.25) brightness(.6)}
.growth-mark{position:absolute;bottom:2px;left:2px;font-size:7px;letter-spacing:.5px;background:#c1efc9;color:#123324;padding:1px 4px}
.mutation-highlight>.mutation-actual{color:#def4e3!important;font-weight:600}
.evolution-pair{display:flex!important;align-items:center;gap:9px;margin:3px 0 10px;max-width:100%;color:#adc7b9}
.evolution-pair>.room-art{width:64px;height:64px;object-fit:cover;border:1px solid #82938966;border-radius:3px}
.evolution-pair>.room-art:last-child{width:76px;height:76px;border-color:#b6d2bda6}
.mutation-comparison>.evolution-pair{margin-top:7px}
.bay.mutated:not(.paused)>.room-art{filter:none}
.bay.mutated.paused>.room-art{filter:saturate(.25) brightness(.6)}
.specimen-details{border-top:1px solid #354c5466;margin-top:14px}
.specimen-details>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;font-size:11px;color:#adbfba;list-style:none}
.specimen-details>summary .icon{width:14px;height:14px}
.specimen-details .specimen-description{margin-top:8px}
body[data-outcome="win"] .space-stage{background:linear-gradient(180deg,#0b182733,transparent 62%,#0c1e2455),url('../assets/evolution-v4/refuge.webp') 58% center/cover;border:1px solid #adc5b755;margin-top:18px;min-height:465px}
body[data-outcome="win"] .orbital-ring{display:none}
body[data-outcome="win"] .space-stage .ship-body{filter:drop-shadow(0 24px 22px #07131edd)}
body[data-outcome="win"] .ship-caption{border-bottom:1px solid #52685f66;color:#c9e7ce}
@media(max-width:760px){
 .crossing-notice{padding:11px 12px;margin:14px 0}
 .crossing-notice>strong{font-size:15px}
 .crossing-notice>p{font-size:11px}
 .crossing-notice .crossing-next{font-size:10px}
 .deck-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .deck-actions .operation-toggle{border-color:#354c56;background:transparent;font-size:10px;padding:8px 10px}
 body[data-outcome="win"] .game-layout.phase-ended>.ship-scene{order:0;border-top:0;padding-top:0}
 body[data-outcome="win"] .game-layout.phase-ended>.decision{order:1}
 body[data-outcome="win"] .game-layout.phase-ended .space-stage{min-height:325px;margin-top:14px;background-position:62% center}
 body[data-outcome="win"] .game-layout.phase-ended .crew-count{display:flex}
 body[data-outcome="win"] .game-layout.phase-ended .ship-body{width:274px}
 body[data-outcome="win"] .game-layout.phase-ended .scene-top h1{font-size:31px}
}
.selection-context{position:sticky;top:8px;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px;padding:8px 10px;margin:15px 0;background:#10272bf5;border:1px solid #5f82766e;box-shadow:0 5px 18px #020b1099;backdrop-filter:blur(10px)}
.selection-context>span{display:grid;gap:3px;min-width:0}
.selection-context small{font-size:9px;letter-spacing:1px;color:var(--muted)}
.selection-context b{font-size:13px;overflow-wrap:anywhere}
.selection-context button{min-width:98px;min-height:44px;flex-shrink:0;font-size:12px}
.mutation-comparison>.evolution-pair{display:flex!important}
.mutation-options .mutation-choice-body{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:start;margin:0}
.mutation-choice-body>.room-art{width:56px;height:56px;object-fit:cover;border:1px solid #8cab9f88;border-radius:3px}
.mutation-options .mutation-choice-copy{margin:0}
.mutation-options .mutation-choice-copy>strong{font-size:13px;color:#e3d4eb}
.mutation-options .mutation-choice-copy>span{font-size:12px;line-height:1.5;color:#e0d9e4;margin-top:5px}
.mutation-choice-copy>small{display:block;font-size:11px;color:#b5aabc;line-height:1.5;margin-top:5px}
.mutation-options button{padding:12px}
.mutation-options .mutation-draft-note{font-size:11px;line-height:1.5;color:var(--muted);margin:7px 2px 0}
@media(max-width:760px){
 .selection-context{position:sticky;top:8px;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px;padding:8px 10px;margin:15px 0;background:#10272bf5;border:1px solid #5f82766e;box-shadow:0 5px 18px #020b1099;backdrop-filter:blur(10px)}
 .selection-context>span{display:grid;gap:3px;min-width:0}
 .selection-context small{font-size:9px;letter-spacing:1px;color:var(--muted)}
 .selection-context b{font-size:13px;overflow-wrap:anywhere}
 .selection-context button{min-width:98px;min-height:44px;flex-shrink:0;font-size:12px}
}
.people-demand{border-top:1px solid #48645b55;margin:0 0 8px;padding:5px 0}
.people-demand button{display:flex;align-items:center;gap:8px;text-align:left;font-size:11px;color:var(--muted);min-height:44px;padding:0;width:100%}
.people-demand button>.icon{width:16px;height:16px}
.people-demand button>.icon:last-child{margin-left:auto;width:14px}
.people-demand b{color:var(--text);font-weight:500}
.people-demand p{font-size:12px;line-height:1.5;padding-bottom:6px}
.rescue-schedule{margin-top:16px;padding-top:14px;border-top:1px solid #75988a55}
.rescue-schedule>strong{font-size:12px;color:#c9e5d5}
.rescue-schedule>p{font-size:12px;line-height:1.6;margin:7px 0}
.rescue-schedule>ol{padding:0;margin:8px 0;list-style:none}
.rescue-schedule li{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:5px 0}
.rescue-schedule>small{font-size:11px;line-height:1.5;color:var(--muted)}
.rescue-route{border-color:#8ba79888}
.rescue-route .route-symbol{color:#c5ead2}
.rescue-route .route-price{line-height:1.6;color:#c2d2ca}
.rescue-forecast-note{font-size:12px;line-height:1.6;color:#bad4c4;margin:10px 0}
.rescue-forecast-note>b{display:block;font-weight:600}
.rescue-contact{display:flex;gap:18px;align-items:center;margin:8px 0 24px;padding:16px;border-block:1px solid #587b6977;background:#1b382938}
.rescue-contact>.room-art{width:86px;height:86px;object-fit:cover;border:1px solid #6c8f7e99}
.rescue-contact>span{display:flex;flex-wrap:wrap;align-items:center;gap:9px;max-width:180px;font-size:12px;color:#bccfc4}
.rescue-contact b{font-size:42px;line-height:1;font-weight:500;color:#d9f0e0}
.rescue-demand{display:grid;gap:6px;margin:20px 0;font-size:12px}
.rescue-demand strong{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#9bbbab}
.rescue-demand>span{font-size:13px;color:#d0e4d8}
.rescue-demand small{color:var(--muted);line-height:1.5}
.rescue-comparison{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;margin:20px 0}
.rescue-comparison caption{text-align:left;color:var(--muted);font-size:11px;padding-bottom:8px}
.rescue-comparison th,.rescue-comparison td{text-align:right;font-size:12px;padding:7px 8px;border-bottom:1px solid #3e5b5066}
.rescue-comparison th:first-child{text-align:left;padding-left:0;color:var(--muted);font-weight:400}
.rescue-comparison thead th{font-size:11px;color:#c6dfd0;font-weight:500}
.rescue-comparison .people-row td{font-size:19px;color:#d7efd9}
.rescue-caution{font-size:12px;line-height:1.6;margin:16px 0}
.forecast-population{font-size:12px;color:#c7e2d1;margin:10px 0}
.people-ending{margin:26px 0 18px;padding:22px 0;border-block:1px solid #6e8e7855}
.people-ending>b{display:block;font-size:72px;line-height:1.25;color:#d5f5da;font-weight:500;letter-spacing:-3px}
.people-ending>p{font-size:16px;color:#cce1d1;line-height:1.4}
.people-ending>small{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin-top:12px}
.people-ending+.ending-build b{font-size:30px}

/* Deliberate travel between the selected room and its exact forecast. */
.deck-toolbar-heading{flex-wrap:wrap;gap:8px}
.deck-toolbar-heading .forecast-link{min-height:44px;margin-left:auto;padding:6px 12px;flex-shrink:0;color:var(--mint)}
.forecast{scroll-margin-block:85px 125px}
.operating-timing{font-size:12px;line-height:1.6;color:var(--muted);padding-left:12px;border-left:2px solid #adbea270}

.final-preview-toggle{width:100%;min-height:44px;margin-top:10px;font-size:12px;line-height:1.5}
.final-departure{border-top:1px solid var(--line);padding-top:16px;margin-top:15px}
.final-departure>p{font-size:12px;line-height:1.65;margin-top:10px}
.final-departure .final-trade{color:var(--muted)}
.final-departure .final-people b{display:block;color:var(--mint)}
.final-departure .primary{margin-top:14px}
.final-departure+.secondary{width:100%;min-height:44px;margin-top:10px}

/* Conditional rates remain visible beside actual dormant operation. */
.dormant-flow{margin-top:10px}.dormant-flow .flows{margin-top:0}.flow-condition{font-size:11px;color:var(--muted);margin-right:3px}.flow-idle-result{font-size:12px!important;line-height:1.5!important;color:var(--muted)!important;margin:5px 0 0!important}.operating-context{font-size:12px!important;line-height:1.5!important;color:var(--muted)!important;margin:6px 0 10px!important}.deck-toolbar .dormant-flow{margin-top:5px}

/* Existing service trades are visible while comparing signals. */
.route-service{display:block;margin-top:6px;color:var(--mint);font-size:12px;line-height:1.5}.route-service.trade-unavailable{color:var(--muted)}
/* V6: sealed room viewports and evidence-driven living connections. */
.room-art{display:block;position:relative;overflow:hidden;isolation:isolate;aspect-ratio:1;flex-shrink:0;background:#09171d}
.room-art>img{position:absolute;display:block;width:100%;height:100%;max-width:none;left:0;top:0;object-fit:fill;pointer-events:none}
.room-art::after{content:"";position:absolute;inset:0;border:2px solid #233c42;border-radius:inherit;box-shadow:inset 0 0 0 1px #061117;pointer-events:none}
.ecology-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;overflow:visible}
.ecology-edge{opacity:.82;transition:opacity .18s ease}
.ecology-edge.focused{opacity:1;filter:drop-shadow(0 0 3px #b5f6d8)}
.ecology-edge.subdued{opacity:.32}
.ecology-link image{animation:sap-breathe 3.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.ecology-link path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ecology-link.danger{color:#f19a72}.ecology-link.mutation{color:#ecc07c}.ecology-link.growth{color:#b7ec9b}
.ecology-link .influence-track{stroke-width:3;stroke-dasharray:3 5;animation:influence-flow 2.4s linear infinite}
.ecology-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:5px 14px;margin:3px 0 8px;font-size:10px;letter-spacing:.025em;color:var(--muted)}
.synergy-key{color:#a6e9ca}.symbiosis-key{color:#d3b9eb}
.ecology-note{margin:0 0 9px;padding:7px 10px;border-left:2px solid #b89acc;color:#b4c8c6;font-size:12px;line-height:1.45}
.ecology-note>span{font-weight:650;margin-right:7px}
.playtest-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1260px;margin:0 auto;padding:8px 24px max(16px,env(safe-area-inset-bottom));color:#8cabae;font-size:10px;letter-spacing:.06em}
.playtest-bar .text-button{min-height:44px;color:#b5cfca;font-size:12px;letter-spacing:0}
.playtest-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 40px);box-sizing:border-box;overflow:auto;background:#102229;color:#dce8dd;border:1px solid #567777;border-radius:9px;padding:24px;box-shadow:0 24px 90px #0009}
.playtest-dialog::backdrop{background:#020a10bf;backdrop-filter:blur(4px)}
.playtest-heading{display:flex;align-items:flex-start;gap:16px;justify-content:space-between}.playtest-heading h2{font-size:25px;line-height:1.2;margin:0}.playtest-heading button{min-height:44px}
.playtest-dialog p{font-size:14px;line-height:1.55;color:#b6ccc7}.playtest-dialog label{display:block;font-size:12px;margin-bottom:8px}
.playtest-dialog textarea{box-sizing:border-box;width:100%;resize:vertical;min-height:170px;padding:12px;background:#091a20;color:#d0e0d4;border:1px solid #496567;border-radius:4px;font:13px/1.5 ui-monospace,monospace}
.playtest-dialog .primary{width:100%;min-height:48px}
.playtest-dialog textarea:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
@media(max-width:760px){body[data-phase="build"] .playtest-bar{padding-bottom:calc(100px + env(safe-area-inset-bottom))}}
@keyframes sap-breathe{50%{opacity:.77;transform:scaleY(.92)}}
@keyframes influence-flow{to{stroke-dashoffset:-16}}
@media(prefers-reduced-motion:reduce){.ecology-link image,.ecology-link .influence-track{animation:none}.ecology-edge{transition:none}}

/* Voyage codes are editable without rerendering the ship. */
.voyage-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.voyage-actions button{min-height:44px;padding:8px 12px;font-size:12px}.voyage-help,.seed-message,.resume-note{font-size:12px;line-height:1.5;color:#a8bec0;margin:10px 0}.seed-message:empty{display:none}.seed-message{color:#a1e0c5}.resume-note .text-button{display:block;min-height:44px}.shared-voyage-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1260px;margin:12px auto;padding:12px 24px;background:#102a2e;border:1px solid #31575b;font-size:13px}.analytics-choice{display:grid!important;grid-template-columns:18px 1fr;gap:5px 9px;align-items:center;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;line-height:1.5;margin:12px 0!important;cursor:pointer}.analytics-choice input{width:18px!important;height:18px;margin:0!important;accent-color:#96d9bd}.analytics-choice small{grid-column:2;color:#a8bec0;font-size:11px;line-height:1.5}.playtest-dialog #share-voyage-link{width:100%;min-height:44px;background:#09181d;color:#c1e6dc;border:1px solid #49676c;padding:10px}.playtest-bar{flex-wrap:wrap}.playtest-bar .text-button{min-height:44px}@media(max-width:760px){.shared-voyage-notice{margin:8px 12px;padding:12px;flex-direction:column;align-items:stretch}.voyage-actions>.secondary{flex:1}.voyage-actions>.text-button{flex-basis:100%;text-align:left}.playtest-bar{gap:8px;font-size:9px;padding-left:16px;padding-right:16px}.playtest-bar>span{flex-basis:100%}.playtest-bar>.text-button{font-size:12px}}

/* Illustrated mobile departure, V7.1 */
.welcome-art{display:none}.welcome-story>.eyebrow{display:block;margin-bottom:24px}.welcome-story .intro{margin-bottom:0}
@media(max-width:760px){
 .welcome{margin-top:0}.welcome-intro{position:relative;isolation:isolate;min-height:338px;padding-top:174px;margin-bottom:0}
 .welcome-art{display:block;position:absolute;z-index:-1;top:0;left:-18px;width:calc(100% + 36px);height:370px;max-width:none;object-fit:cover;object-position:57% top;mask-image:linear-gradient(#000 68%,transparent 100%)}
 .welcome-story{position:relative;padding:0 0 12px}.welcome-story>.eyebrow{font-size:8px;margin-bottom:11px;letter-spacing:1.6px;text-shadow:0 1px 8px #071219}
 .welcome-decision .welcome-story h2{font-size:37px;line-height:1.02;letter-spacing:-1.5px;text-shadow:0 2px 20px #071219}
 .welcome-decision .welcome-story .intro{font-size:12px;line-height:1.55;margin-top:12px;max-width:275px;color:#cee0d8}
 .welcome .voyage-facts{margin:8px 0 15px;gap:22px;font-size:9px}.welcome .voyage-facts b{font-size:17px;margin-right:4px}
 .welcome .voyage-help{font-size:10px;line-height:1.55;margin-bottom:0}.welcome .guide-choice{margin-top:8px!important}
}

/* Support links use the existing feedback bar on every game screen. */
.support-links{display:flex;flex-wrap:wrap;gap:20px;align-items:center}.support-links a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.support-links{flex-basis:100%}}
