/* Generated sprites are keyed in the canvas renderer, never blended with the scene. */
.nui{display:block;filter:saturate(var(--nui-saturation,1));mix-blend-mode:normal;opacity:1;object-fit:contain}
.nui[data-failed=true]{border:2px dashed #b86b45;border-radius:12px;background:#fff7ef}
.scene-sprite{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.down>.nui,.sleep>.nui,.down .nui,.sleep .nui,.pui>.nui,.pui .nui{transform:none;animation:none}
.map-nui{width:78px;height:104px;transition:left .9s ease,top .9s ease}
.map-nui-label{font-size:11px;bottom:-7px;padding:4px 6px;max-width:none;background:#fffef7;color:#194641;box-shadow:0 2px 6px #163b3430}
.map-nui.missing{opacity:1}
.map-nui.working .nui,.camp-character.working .nui{animation:work-motion 1s ease-in-out infinite}
.nui[data-pose=sleep],.nui[data-pose=down]{animation:none!important}
.nui[data-pose=sew]{animation:sew-motion 1.2s ease-in-out infinite}
.nui[data-pose=cook]{animation:work-motion 1.6s ease-in-out infinite}
.nui[data-pose=fish]{animation:fishing-motion 2.6s ease-in-out infinite}
@keyframes work-motion{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-3px)}}
@keyframes sew-motion{0%,100%{transform:translateY(0)}35%{transform:translateY(-2px)}55%{transform:translateY(1px)}}
@keyframes fishing-motion{0%,100%{transform:rotate(-1deg)}65%{transform:rotate(2deg)}}
.condition-advice{display:grid;gap:10px;margin:16px 0}
.condition-item{padding:14px 16px;border:1px solid #e4d5b6;border-left:4px solid #d49a2b;border-radius:10px;background:#fff9ea;font-size:14px;line-height:1.6}
.condition-item.severity-3{background:#fff1ea;border-color:#e8c2b2;border-left-color:#c45b40}
.condition-item>strong{display:block;font-size:15px;color:#634a24}
.condition-item.severity-3>strong{color:#973f2a}
.condition-item p{font-size:14px;margin:5px 0;line-height:1.65}
.condition-item small{display:block;font-size:13px;color:#6c6659;line-height:1.7}
.remedy-button{display:inline-flex;align-items:center;padding:7px 12px;min-height:36px;border-radius:7px;border:1px solid #c9d6c2;background:#fffef7;font-size:13px;font-weight:700;margin-top:8px;box-shadow:0 1px 2px #193d3710}
.remedy-button:hover{background:#eaf2e0}
.condition-advice.compact{margin:10px 0 0;grid-column:1/-1}
.compact .condition-item{padding:9px 11px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 9px;align-items:center}
.compact .condition-item strong{font-size:13px;grid-column:1}
.compact .condition-item p{font-size:12px;grid-column:1;margin:0}
.compact .remedy-button{grid-column:2;grid-row:1/3;font-size:12px;padding:7px 8px;margin:0}
.condition-clear{padding:12px 15px;border:1px solid #bfdccb;background:#eff8f0;color:#35684f;border-radius:9px;font-size:14px;line-height:1.7}
.crew-info .condition-advice{margin-bottom:2px}
.inspector>.condition-advice{margin:15px 0}
.inspector .compact .condition-item{display:block}
.inspector .compact .remedy-button{margin-top:7px}
.exploration-fog{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.map-routes{z-index:2}.map-pin{z-index:3}.map-caption,.compass,.map-key,.weather-note{z-index:2}
.map-caption{background:#e9f8eddb;padding:7px 10px;border-radius:7px}
.map-key{background:#e9f8ede6;padding:5px 8px;border-radius:7px}
.map-pin.newly-discovered .pin-dot{animation:discovery-pulse 1.2s ease-out 3}
@keyframes discovery-pulse{0%{box-shadow:0 0 0 0 #ffe194e0}100%{box-shadow:0 0 0 20px #ffe19400}}
.milestone-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}
.milestone-list:empty{display:none}
.milestone-list article{border:1px solid #c6dcbc;border-radius:12px;background:#f0f7e6;padding:15px;display:grid;gap:5px}
.milestone-list strong{font-size:12px;color:#517044}.milestone-list span{font-size:18px;font-weight:800}.milestone-list small{font-size:13px;line-height:1.6}
.grown-camp{position:relative;aspect-ratio:3/2;min-height:410px;isolation:isolate;overflow:hidden;border:4px solid #fffefb}
.grown-camp .camp-art{width:100%;height:100%;position:absolute;inset:0;object-fit:fill}
.grown-camp .camp-stage{left:3%;top:3%;max-width:55%;padding:10px 15px;background:#fffef2e8;border-radius:10px;z-index:10;pointer-events:none}
.grown-camp .camp-stage h2{font-size:22px;margin:3px 0;color:#254c48}.grown-camp .camp-stage span{font-size:12px;letter-spacing:.03em}.grown-camp .camp-stage p{font-size:12px;margin:0;line-height:1.5}
.camp-facility{position:absolute;width:23%;height:31%;transform:translate(-50%,-55%);padding:0;z-index:2;transition:filter .2s,transform .2s}
.camp-facility:hover{z-index:9;filter:drop-shadow(0 0 6px #ffeda3)}
.camp-facility:active:not(:disabled){transform:translate(-50%,-55%) scale(.98)}
.camp-facility>.scene-sprite{transform:scale(var(--facility-scale));transform-origin:center 80%;filter:drop-shadow(0 5px 3px #60481e33)}
.camp-facility.facility-fire{width:15%;height:25%;z-index:4}
.camp-facility.facility-warehouse{width:19%;height:28%}
.camp-facility.facility-beacon{width:13%;height:28%}
.camp-facility.facility-raft{width:22%;height:28%}
.camp-facility.facility-fence{width:29%;height:20%;display:flex;z-index:7}
.facility-fence>.scene-sprite{width:70%;flex:none;margin-right:-32%}
.facility-fence.level-3{width:38%}
.facility-label{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);font-size:11px;background:#fffef1f5;border:1px solid #d8d0a9;border-radius:5px;padding:3px 6px;white-space:nowrap;line-height:1.3;box-shadow:0 2px 3px #50371618}
.facility-label b{display:block;font-size:8px;color:#b8801c;letter-spacing:.15em}
.camp-facility.under-construction{outline:2px dashed #dbbd69;outline-offset:-15px;border-radius:15px}
.facility-progress{display:block;position:absolute;bottom:-14px;left:25%;width:50%;height:4px;background:#fff1c5;border-radius:9px;overflow:hidden}
.facility-progress i{display:block;height:100%;background:#d59a20}
.camp-placed{position:absolute;width:12%;height:24%;padding:0;z-index:6;transform:translate(-50%,-70%);filter:drop-shadow(0 4px 2px #644d312f)}
.camp-placed:active:not(:disabled){transform:translate(-50%,-70%)}
.camp-placed>span{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;border-radius:5px;padding:2px 5px;background:#fffdf1ed}
.status-bubble{position:absolute;top:5%;right:-30%;font-style:normal;font-size:10px;background:#e7f6ff;border:1px solid #a8cfde;color:#2e647c;border-radius:7px;padding:2px 5px;white-space:nowrap}
.being-cared:after{content:'✦';position:absolute;left:0;top:0;color:#e7b13f;animation:care-glow 2s ease-out 3;font-size:24px;pointer-events:none}
@keyframes care-glow{0%{transform:translateY(15px);opacity:0}50%{opacity:1}100%{transform:translateY(-20px);opacity:0}}
.camp-cat{position:absolute;width:17%;height:24%;left:3%;bottom:2%;z-index:5}
.camp-scene-caption{position:absolute;bottom:2%;left:50%;transform:translateX(-50%);background:#fff9e9ec;padding:5px 12px;border-radius:20px;font-size:11px;white-space:nowrap;z-index:9;max-width:95%;text-align:center}
.grown-camp.night .camp-shade{position:absolute;inset:0;background:#14346588;z-index:1;pointer-events:none}
.grown-camp.evening .camp-shade{background:#e4a03c18}
.grown-camp.night .camp-stage{background:#eef6f3ee}
.facility-detail{display:flex;align-items:center;gap:20px}.facility-detail>.scene-sprite{width:150px;height:160px;flex:none}.facility-detail p{font-size:14px}
.facility-stages{padding:15px 18px;list-style:none;display:grid;gap:10px;background:#f4f6ed;border-radius:9px;font-size:14px}.facility-stages .complete{color:#217052;font-weight:700}
.speech{align-items:flex-start}.speech .nui{width:70px;height:82px;flex-shrink:0}.speech p{font-size:14px;line-height:1.85}.speech strong{font-size:12px}
.night-scene{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;isolation:isolate;background:#102c48}
.night-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.48) saturate(.7)}
.night-tint{position:absolute;inset:0;background:linear-gradient(#132d7350,#102a4810);pointer-events:none}
.night-shelter{position:absolute;width:35%;height:65%;left:10%;bottom:7%;filter:brightness(.8)}
.night-crew{position:absolute;display:flex;width:35%;height:38%;left:22%;bottom:10%;z-index:3}
.night-crew .nui{width:33%;height:100%;filter:brightness(.88)}
.night-beast{position:absolute;right:5%;bottom:10%;width:25%;height:48%;z-index:4}
.night-scene.startled .night-crew{animation:startled .22s ease-in-out 5 1s}
.night-scene-title{position:absolute;left:4%;top:6%;color:#edf7fa;font-size:12px;text-shadow:0 2px 3px #001827;line-height:1.8;z-index:5}
.night-scene-title strong{font-size:20px;color:#fff4c4}
.night-result{background:#f0f4f1;padding:16px;border-radius:10px;margin:16px 0;font-size:15px;line-height:1.9}
.night-scene.storm:after,.grown-camp.storm:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(115deg,transparent 0 28px,#c7e4ff30 29px 30px,transparent 31px 70px);animation:rain 1.5s linear infinite;z-index:5}
@keyframes startled{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.event-illustration{height:230px;position:relative;overflow:hidden;border-radius:13px;margin-bottom:20px;background:#428d91}
.event-island-crop{width:180%;max-width:none;height:180%;object-fit:cover;position:absolute;left:-35%;top:-35%;filter:blur(2px)}
.event-atmosphere{position:absolute;inset:0;background:linear-gradient(0deg,#1c4a4980,transparent)}
.event-actor{position:absolute;width:135px;height:190px;left:calc(50% - 67px);bottom:12px;filter:drop-shadow(0 5px 3px #183d4330)}
.event-place{position:absolute;left:15px;top:14px;color:white;font-size:14px;font-weight:700;text-shadow:0 2px 3px #163e44}
.event-cave .event-atmosphere{background:#112438aa}.event-wind .event-actor{animation:fishing-motion .8s ease-in-out infinite}.event-mud .event-atmosphere{background:#55411a50}
@media(max-width:960px){.grown-camp{min-height:350px}.grown-camp .camp-stage h2{font-size:19px}.grown-camp .camp-stage p{display:none}.camp-facility .facility-label{font-size:10px}.camp-placed>span{font-size:10px}.crew-info .compact .condition-item{display:block}.crew-info .compact .remedy-button{margin-top:6px}}
@media(max-width:650px){.map-nui{width:55px;height:74px}.map-nui-label{font-size:9px;bottom:-6px}.map-caption{display:none}.grown-camp{aspect-ratio:1.12;min-height:360px;border-width:3px}.grown-camp .camp-stage{max-width:69%;padding:7px 9px;left:2%;top:2%}.grown-camp .camp-stage h2{font-size:17px}.grown-camp .camp-stage span{font-size:10px}.camp-facility{width:26%;height:26%}.camp-facility.facility-fire{width:19%;height:22%}.camp-facility.facility-beacon{width:16%;height:22%}.camp-facility.facility-warehouse{width:23%;height:25%}.camp-facility.facility-raft{width:23%;height:24%}.camp-facility .facility-label{font-size:9px;max-width:110px;white-space:normal;width:max-content;text-align:center;padding:2px 4px}.facility-label b{font-size:7px}.camp-placed{width:17%;height:21%}.camp-placed>span{font-size:9px}.status-bubble{font-size:9px;right:-15%}.camp-scene-caption{font-size:10px}.condition-item{padding:12px}.condition-item strong{font-size:14px}.compact .condition-item{display:block}.compact .remedy-button{margin-top:7px}.condition-item p{font-size:13px}.condition-item small{font-size:12px}.facility-detail{gap:12px}.facility-detail>.scene-sprite{width:100px;height:120px}.facility-detail p{font-size:13px}.night-scene{aspect-ratio:1.45}.night-scene-title strong{font-size:17px}.night-result{font-size:14px;padding:12px}.night-crew{width:42%;left:20%}.night-beast{width:30%}.speech .nui{width:58px;height:70px}.event-illustration{height:200px}}
@media(prefers-reduced-motion:reduce){.nui,.scene-sprite,.night-beast,.night-crew,.event-actor,.pin-dot,.being-cared:after{animation:none!important;transition:none!important}}

/* The crew follows the map immediately, independently of destination height. */
.content-grid.view-map{grid-template-columns:minmax(0,1fr) clamp(280px,25vw,360px);gap:20px;align-items:start}
.exploration-main{min-width:0}
.view-map .map-section{min-width:0}
.view-map .map-frame{width:100%;max-height:none;aspect-ratio:3/2}
.view-map>.inspector{display:block;min-width:0;margin-top:0;padding:20px}
.view-map>.inspector .panel-divider{display:block}
.view-map .crew-section{margin-top:14px}
.view-map .crew-heading{flex-wrap:wrap;gap:5px 12px;margin-bottom:10px}
.view-map .crew-heading>span{font-size:12px}
.view-map .crew-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.view-map .crew-card{display:flex;flex-direction:column;min-width:0}
.view-map .crew-avatar{padding:5px;min-height:90px}
.view-map .crew-avatar .nui{width:72px;height:86px}
.view-map .crew-avatar>span{display:none}
.view-map .crew-info{display:block;padding:12px;min-width:0}
.view-map .crew-name{font-size:15px;gap:4px}
.view-map .crew-tags{margin-bottom:8px;display:flex;flex-wrap:wrap;gap:3px}
.view-map .crew-minor{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px}
.view-map .crew-job{margin-top:auto;padding:10px 12px;display:block;text-align:left}
.view-map .crew-job>span,.view-map .crew-job>small{display:block}
.view-map .crew-job>small{margin-top:4px;font-size:12px}
.view-map .crew-info .compact .condition-item{display:block;padding:8px}
.view-map .crew-info .compact .remedy-button{margin-top:6px}
@media(min-width:1450px){
 .view-map .crew-card{display:grid;grid-template-columns:80px minmax(0,1fr)}
 .view-map .crew-avatar{grid-row:1;padding:8px 2px}
 .view-map .crew-job{grid-column:1/-1;grid-row:2;display:flex}
 .view-map .crew-job>small{margin-top:0}
}
@media(max-width:899px){
 .content-grid.view-map{grid-template-columns:minmax(0,1fr);gap:16px}
 .exploration-main{display:contents}
 .view-map .map-section{grid-row:1}
 .view-map>.inspector{grid-row:2}
 .view-map .crew-section{grid-row:3;margin-top:0}
}
@media(max-width:650px){
 .view-map .map-frame{aspect-ratio:1.3}
 .view-map .crew-grid{grid-template-columns:minmax(0,1fr)}
 .view-map .crew-card{display:grid;grid-template-columns:90px minmax(0,1fr)}
 .view-map .crew-avatar{grid-row:1/3;padding:8px 3px}
 .view-map .crew-avatar .nui{width:76px;height:100px}
 .view-map .crew-info{padding:13px}
 .view-map .crew-job{grid-column:2;grid-row:2;margin-top:0}
 .view-map>.inspector{padding:18px 15px}
}
/* Two distinct daytime turns and four core plush gauges. */
.action-schedule{background:#edf4ed;border:1px solid #dbe7da;border-radius:14px;padding:13px 16px;margin-bottom:14px;display:flex;flex-wrap:wrap;align-items:center;gap:9px 20px}
.action-schedule strong{font-size:13px}.action-schedule strong span{color:#277366;margin-left:8px}.action-schedule>div{display:flex;flex-wrap:wrap;gap:8px}.action-schedule>div span{font-size:12px;padding:5px 9px;border-radius:7px;color:#657466}.action-schedule .active{background:#fff;color:#235c51;font-weight:700}.action-schedule>small{flex-basis:100%;line-height:1.6;color:#536653}
.main-vitals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.main-vitals .meter-label{font-size:11px}.main-vitals .meter-label strong{font-size:12px}.main-vitals .meter-label small{display:none}.recent-job{display:block;margin:7px 0;color:#617468;font-size:11px}.crew-tags{display:flex;flex-wrap:wrap;gap:4px}.crew-tags .tag{font-size:10px;white-space:normal}.view-map .crew-info .main-vitals{display:grid}.view-map .crew-info .meter-row{margin-bottom:8px}
/* Full silhouettes and always-visible assigned jobs in the time bar. */
.phasebar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;padding:10px 24px;max-height:none}.phase-track{grid-column:1;grid-row:1}.phase-note{grid-column:1;grid-row:3;display:block}.phase-note strong{display:none}.phase-note small{font-size:11px}.phasebar>.advance{grid-column:2;grid-row:1/4}.order-crew{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.order-nui{display:flex;align-items:center;gap:7px;min-width:0;background:#edf3e9;border-radius:10px;padding:3px 8px;text-align:left;overflow:visible}.order-nui .nui{width:44px;height:58px;flex:0 0 44px;animation:none!important;transform:none!important}.order-nui>span{min-width:0}.order-nui b,.order-nui small{display:block;line-height:1.5;overflow-wrap:anywhere}.order-nui b{font-size:11px}.order-nui small{font-size:11px;color:#4c6a5e}.workspace main{padding-bottom:210px}.map-nui{transform:translate(-50%,-70%)}.map-nui:active:not(:disabled){transform:translate(-50%,-70%)}
.loot-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.loot-row>span{display:flex;flex-direction:column;gap:3px;background:#edf4ec;border-radius:8px;padding:8px}.loot-row b{font-size:13px;color:#1b6757}.loot-row small{font-size:11px;color:#62786d}
.island-life{margin-top:24px}.animal-grid{display:grid;gap:10px;margin:16px 0}.animal-card{display:flex;gap:12px;align-items:center;padding:12px;background:#f1f5ed;border-radius:12px}.animal-card>.scene-sprite{width:90px;height:85px;flex:0 0 90px}.animal-card h3{margin:0 0 4px}.animal-card small{display:block;line-height:1.6;margin:5px 0}.animal-card .soft-button{font-size:12px}.salvage-inventory{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.salvage-inventory>span{padding:6px 9px;border-radius:8px;background:#f2eee2;font-size:12px}.salvage-inventory b{margin-left:10px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-grid article{padding:14px;border:1px solid #dbe6d6;border-radius:12px;display:flex;flex-direction:column;gap:8px}.project-grid article h3{font-size:15px;margin:0}.project-grid article p{font-size:12px;line-height:1.6;margin:0}.project-grid .costs{margin-top:auto}.project-grid .soft-button{font-size:12px}.encounter-head{display:flex;align-items:center;gap:20px}.encounter-head>.scene-sprite{width:150px;height:150px}.night-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}.night-option{border:1px solid #c9d9c4;border-radius:12px;padding:15px;background:#f1f5ed;text-align:left}.night-option strong,.night-option small{display:block}.night-option small{margin-top:8px;font-size:12px;line-height:1.7}.night-option:disabled{opacity:.48}
@media(max-width:900px){.phasebar{gap:6px 12px;padding:8px 14px}.phasebar>.advance{font-size:12px;padding:12px}.order-nui{gap:3px;padding:3px}.order-nui .nui{width:38px;flex-basis:38px;height:52px}.order-nui small{font-size:10px}}
@media(max-width:650px){.phasebar{grid-template-columns:1fr;left:0;padding:8px 10px;gap:6px}.phase-track{grid-row:1;justify-content:center}.phase-track>span{flex-direction:row}.order-crew{grid-row:2;gap:5px}.phasebar>.advance{grid-row:3;grid-column:1;padding:10px;min-height:40px}.phase-note{display:none}.order-nui b{font-size:10px}.workspace main{padding-bottom:230px}.project-grid,.night-options{grid-template-columns:1fr}.encounter-head{gap:10px}.encounter-head>.scene-sprite{width:100px;height:110px}.animal-card>.scene-sprite{width:65px;flex-basis:65px}}
.project-art{width:100%;height:120px;object-fit:contain}.camp-roof{position:absolute;z-index:1;left:16%;top:16%;width:68%;height:65%;pointer-events:none}.camp-roof .scene-sprite{width:100%;height:100%}.camp-neighbour{position:absolute;z-index:5;width:55px;height:50px;transform:translate(-50%,-50%);pointer-events:none}.camp-neighbour .scene-sprite{width:100%;height:100%}
/* Area controls remain clickable when a plush occupies the same place. */
.map-pin{z-index:7;min-width:32px;min-height:32px}.map-pin .pin-name{pointer-events:none}.map-shade,.map-routes,.exploration-fog,.map-caption,.compass,.map-key,.weather-note{pointer-events:none}.mobile-locations{display:flex;flex-wrap:wrap;gap:7px;padding-top:12px}.mobile-locations button{min-height:36px;border:1px solid #cbdccd;border-radius:18px;padding:6px 11px;background:#fffef7;font-size:12px}.mobile-locations button.selected{background:#167e82;color:#fff}.map-nui,.order-nui,.crew-avatar{touch-action:none;cursor:grab}.being-pinched{opacity:.3!important;cursor:grabbing}.dragging-nui{user-select:none;cursor:grabbing}.dragging-nui .map-nui{pointer-events:none}.drop-candidate .pin-dot{outline:5px solid #efc668;box-shadow:0 0 0 10px #efc66855}.mobile-locations .drop-candidate{outline:3px solid #efc668}.pinched-ghost{position:fixed;z-index:1000;pointer-events:none;width:100px;height:132px;transform:translate(-50%,-12px);filter:drop-shadow(0 12px 7px #163c4940)}.pinched-ghost>.nui{width:100%;height:100%;transform-origin:50% 8%;animation:pinched-sway .65s ease-in-out infinite alternate!important}.pinched-ghost:before{content:'⌁';position:absolute;top:-14px;left:43px;font-size:24px;color:#e9b44b}.drag-caption{display:block;position:absolute;top:138px;left:50%;transform:translateX(-50%);padding:5px 10px;border-radius:8px;background:#fffdf0;color:#20554b;font-size:12px;white-space:nowrap;box-shadow:0 2px 8px #193c4930}@keyframes pinched-sway{from{transform:rotate(-9deg) translateY(2px) scaleY(1.04)}to{transform:rotate(9deg) translateY(0) scaleY(1.04)}}@media(prefers-reduced-motion:reduce){.pinched-ghost>.nui{animation:none!important;transform:rotate(5deg)}}
/* Place plush bodies beside destination controls using measured free space. */
.map-nui,.map-nui:active:not(:disabled){transform:none;transition:none;display:flex;flex-direction:column;align-items:center;overflow:visible}.map-nui>.nui{width:100%;height:calc(100% - 16px);flex-shrink:0}.map-nui-label{position:static;transform:none;max-width:100%;padding:1px 3px;font-size:9px;line-height:14px;white-space:nowrap;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}.map-pin{max-width:145px}.map-pin .pin-name{white-space:nowrap}

/* Current stock and consumption stay together at every material choice. */
.costs.consumption{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.cost{display:inline-flex;flex-direction:column;gap:3px;max-width:100%;font-size:14px;line-height:1.5;white-space:normal}.cost-count{display:block;font-size:14px;font-variant-numeric:tabular-nums}.cost-count b{font-weight:700}.cost.short{color:#a32c27;background:#fff0eb}.chore-button>.consumption{grid-column:1/-1;text-align:left}.chore-button .cost{font-size:13px}.animal-card .cost{margin-top:5px}
/* Island forecasts and the book share the established teal-and-paper palette. */
.island-forecast{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;padding:16px;margin:12px 0;background:#edf6f7;border:1px solid #c2dfe2;border-radius:14px}.island-forecast>div{padding:7px;border-radius:8px}.island-forecast .current{background:#fff;border-left:3px solid #167e82}.island-forecast b,.island-forecast small{display:block;font-size:14px;line-height:1.6}.island-forecast p{grid-column:1/-1;margin:0;font-size:14px;line-height:1.7}.nui-suggestions{margin:12px 0 18px;padding:15px;background:#fff;border:1px solid #d4e2d7;border-radius:14px}.nui-suggestions summary{cursor:pointer;font-size:15px;font-weight:700}.nui-suggestions summary span{color:#167e82;margin-left:12px}.nui-suggestions>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.nui-suggestions article{display:flex;align-items:flex-start;gap:8px;min-width:0}.nui-suggestions article>.nui{width:50px;height:68px;flex:none}.nui-suggestions article>div{min-width:0}.nui-suggestions p{font-size:14px;line-height:1.7}.nui-suggestions strong{font-size:14px}.nui-suggestions .soft-button{font-size:14px;padding:9px;text-align:left;white-space:normal}.view-escape{display:block}.escape-book{max-width:1250px;margin:auto}.escape-book>.section-heading p{margin:8px 0}.escape-book p{font-size:16px;line-height:1.8}.route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:24px 0}.route-card{min-width:0;display:flex;flex-direction:column;padding:24px;border:1px solid #cedcd3;border-radius:18px;background:#fff;box-shadow:0 8px 25px #16444b08}.route-card h2{font-size:22px;margin:10px 0 0}.route-card ol{padding:0;list-style:none;margin:18px 0;flex:1}.route-card li{display:flex;gap:12px;padding:16px 0;border-top:1px dashed #d1ded7}.step-number{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#e9eef0;color:#53676c;font-size:14px}.route-card li>div{min-width:0}.route-card li.done .step-number{color:white;background:#187e72}.route-card li.done strong{color:#17695c}.route-card li.next .step-number{background:#f3d986;color:#59431b}.route-card li strong{font-size:16px;line-height:1.5}.route-card li p{font-size:14px;margin:6px 0}.route-card li small{display:block;font-size:13px;margin-top:5px}.route-card .costs{margin:10px 0}.route-card .departure-note{font-size:14px;background:#f2f6f4;padding:12px;border-radius:9px}.route-card>.primary{margin-top:auto;white-space:normal}.island-mode-notes{margin:16px 0;padding:12px 16px;background:#f1f6f3;border-radius:12px}.island-mode-notes p{font-size:14px;line-height:1.7}.animal-grid .animal-card>div{min-width:0}.animal-card .soft-button{white-space:normal}.sidenav .nav-item{min-height:70px}
@media(max-width:1000px){.nui-suggestions>div{grid-template-columns:1fr}.nui-suggestions article>.nui{width:62px;height:76px}}
@media(max-width:700px){.route-grid{grid-template-columns:1fr}.route-card{padding:18px}.island-forecast{gap:4px;padding:10px;grid-template-columns:1fr 1fr}.island-forecast>div:first-child{grid-column:1/-1}.sidenav{overflow-x:auto}.sidenav .nav-item{flex-shrink:0;min-height:54px}.escape-book h1{font-size:26px}}

@media(max-width:700px){.sidenav{justify-content:flex-start}.sidenav .nav-item{min-width:70px}}

.assigned-avatars{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:100%;height:auto;overflow:visible}.assigned-crew{display:flex;align-items:center;gap:6px;max-width:100%;flex-wrap:wrap}.assigned-avatars .nui{position:static;display:block;width:44px;height:54px;max-width:44px;flex:0 0 44px;transform:none;margin:0}.evening-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.evening-shortcuts .soft-button{font-size:14px}#camp-buildings,#salvage-workshop{scroll-margin-top:20px}

.order-nui{height:auto;min-height:62px;align-items:center}.order-nui>span{min-width:0}.order-nui small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.5}.order-crew{align-items:stretch}

/* Time and weather tint only the scenery; interface text retains contrast. */
.environment{min-height:100vh;--time-bg:#eff5eb;--sky-filter:brightness(1.04) saturate(.95);--weather-filter:brightness(1);background:var(--time-bg);transition:background 1s}
.environment.time-afternoon{--time-bg:#eef5e5;--sky-filter:brightness(1.08) saturate(1.08)}
.environment.time-evening{--time-bg:#f3e6da;--sky-filter:sepia(.2) saturate(1.2) brightness(.92)}
.environment.time-night{--time-bg:#243b4d;--sky-filter:brightness(.62) saturate(.7)}
.environment.weather-cloud{--weather-filter:brightness(.91) saturate(.8)}
.environment.weather-rain{--weather-filter:brightness(.78) saturate(.7);background-image:linear-gradient(#48677b18,#48677b18)}
.environment.weather-storm{--weather-filter:brightness(.62) saturate(.55);background-image:linear-gradient(#20374d35,#20374d35)}
.environment .island-art,.environment .camp-art{filter:var(--sky-filter) var(--weather-filter);transition:filter 1s}
.environment .workspace main{background:transparent}
.environment .topbar{height:auto;min-height:96px;flex-wrap:wrap;padding-top:14px;padding-bottom:12px;gap:10px 20px}
.weather-effects{flex:1 0 100%;font-size:12px;line-height:1.7;border-top:1px solid var(--line);padding-top:7px}.weather-effects strong,.weather-effects small{display:block}.weather-effects small{color:var(--ink-soft);font-size:11px}
.order-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;margin-top:4px;font-size:11px}.order-stats>span{white-space:nowrap}.order-stats strong{font-variant-numeric:tabular-nums;color:var(--deep)}
.order-nui{align-items:flex-start}.order-work{max-height:3em;overflow-y:auto!important}.order-nui .nui{align-self:center}.workspace main{padding-bottom:245px}
.craft-equipment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.craft-equipment .equipment-selects{grid-template-columns:1fr}.craft-equipment .pocket-title .nui{width:56px;height:70px}.night-owl{position:absolute;left:8%;top:15%;width:85px;height:85px;z-index:4}.night-owl canvas{width:100%;height:100%}
@media(max-width:650px){.craft-equipment{grid-template-columns:1fr}.order-nui{flex-direction:column;gap:0}.order-nui .nui{height:36px;width:28px;flex-basis:36px;align-self:flex-start}.order-nui>span{width:100%}.order-stats{gap:2px 4px;font-size:9px}.workspace main{padding-bottom:310px}.phasebar{max-height:45vh;overflow-y:auto}.weather-effects{font-size:11px}}
@media(prefers-reduced-motion:reduce){.environment,.environment .island-art,.environment .camp-art{transition:none}}
