/* Dystopian Trail: second playtest pass. Scene, decision, consequence. */
.game-shell{max-width:1280px}.game-header{padding:12px 22px}.game-header .wordmark{font-size:24px}.game-footer,main>footer{padding:14px}.context-help{display:inline-flex;position:relative;vertical-align:middle;margin-inline-start:8px;font:400 14px/1.5 var(--body-font);text-transform:none;letter-spacing:normal}.help-trigger{display:inline-grid;place-items:center;border:1px solid var(--button-border);border-radius:50%;min-height:24px;min-width:24px;width:24px;height:24px;padding:0;background:var(--panel-raised);color:var(--text-bright);font-size:13px}.help-popover{position:absolute;z-index:40;top:calc(100% + 10px);inset-inline-end:-12px;display:grid;gap:8px;width:min(300px,75vw);padding:18px;background:var(--paper);color:var(--paper-ink);border:1px solid var(--paper-border);border-radius:8px;box-shadow:0 8px 35px #0009;text-align:start}.help-popover strong{font-weight:800}.help-popover span{display:block}.help-trigger:focus-visible{outline:3px solid var(--accent)}.seed-entry{padding:15px 0}.seed-entry label{display:block;margin-bottom:8px}.seed-entry input{max-width:360px}.persona-preview-stats{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.persona-preview-stats .mini-stat{padding:10px;border:1px solid var(--border-subtle);border-radius:5px}.persona-preview-header h3{margin:0}.persona-preview-card{padding:24px}.persona-preview-stats+.muted{margin:0}
.world-view .journey-scene{position:relative;aspect-ratio:1.95;min-height:510px;overflow:visible;background:var(--panel-raised)}.world-view .journey-scene .scene-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 70%}.world-view{overflow:visible}.survival-hud{padding:14px 20px 10px;background:var(--hud-overlay-top);display:block;border:0;position:relative;z-index:5}.world-view .survival-hud{position:absolute;top:0;inset-inline:0;background:linear-gradient(var(--hud-overlay-top),var(--hud-overlay-bottom))}.critical-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0}.hud-stat{padding:0 10px;border-inline-end:1px solid var(--border-muted);min-width:0}.hud-stat:last-child{border:0}.hud-stat dt{font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:3px;white-space:normal;color:var(--text)}.hud-stat .context-help{margin-inline-start:0}.hud-stat .help-trigger{min-width:20px;min-height:20px;width:20px;height:20px;font-size:11px;border-color:var(--panel-border)}.hud-stat dd{font:800 24px/1.3 var(--body-font);margin:4px 0;color:var(--text-bright)}.hud-stat.critical{background:#5e2528aa;border-radius:4px}.hud-stat.critical dd{color:var(--negative-text)}.hud-context-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--border-muted);margin-top:10px;padding-top:8px}.hud-context{font-size:13px;margin:0;color:var(--text-bright)}.hud-conditions{display:flex;gap:15px;align-items:center;font-size:13px;color:var(--text);margin:0}.hud-conditions>span{display:flex;align-items:center;gap:7px}.scene-caption{position:absolute;bottom:0;inset-inline:0;padding:50px 28px 22px;background:linear-gradient(transparent,var(--scene-scrim));color:var(--text-bright);pointer-events:none;z-index:2}.scene-caption .eyebrow{font-size:11px;margin:0 0 7px}.scene-caption h1{font-size:clamp(23px,3vw,36px);color:var(--text-bright);margin:0;max-width:850px;text-shadow:0 2px 8px #000}.scene-caption h1:focus{outline:0}.weather-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden}.journey-scene{position:relative}.journey-scene[data-weather=storm]>img{filter:brightness(.65) saturate(.65)}.journey-scene[data-weather=storm] .weather-atmosphere{background:repeating-linear-gradient(110deg,transparent 0 28px,#c8e2f34a 29px 30px,transparent 31px 50px);background-size:90px 180px;animation:rain-drift .55s linear infinite;opacity:.7}.journey-scene[data-weather=cold]>img{filter:saturate(.5) brightness(.85)}.journey-scene[data-weather=cold] .weather-atmosphere{background-image:radial-gradient(#fff 1px,transparent 2px);background-size:40px 44px;opacity:.6;animation:snow-drift 6s linear infinite}.journey-scene[data-weather=heat] .weather-atmosphere{background:linear-gradient(#eab45a30,transparent 60%,#eaa34435)}.journey-scene[data-weather=smoke]>img{filter:saturate(.5) sepia(.15)}.journey-scene[data-weather=smoke] .weather-atmosphere{background:linear-gradient(100deg,#b9b09b85,transparent,#bbb09885);background-size:180% 100%;animation:smoke-drift 15s ease-in-out infinite alternate}.scene-moving>img{animation:road-drift 2.6s ease-in-out both}.world-view .scene-moving{overflow:hidden}.travel-countdown{position:absolute;bottom:0;inset-inline:0;height:5px;background:var(--border-subtle);z-index:6}.travel-countdown>span{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;animation:travel-progress 2.6s linear both}.transit-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 28px;background:var(--panel)}.transit-caption p{margin:0}.travel-controls{padding:22px 28px}.travel-command{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.travel-command>button{min-width:240px}.turn-chip{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.daily-settings{display:grid;grid-template-columns:1fr 1fr;gap:22px}.daily-settings fieldset{border:0;margin:0;padding:0;min-width:0}.daily-settings legend{font-size:17px;font-weight:700;margin-bottom:12px}.setting-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.setting-option{display:flex;flex-direction:column;gap:6px;text-align:start;align-items:flex-start;min-height:130px;padding:12px 10px;background:var(--panel-raised);border:1px solid var(--border-subtle);border-radius:6px;font-family:var(--body-font);white-space:normal;line-height:1.35}.setting-option strong{font-size:15px}.setting-option span{font-size:13px}.setting-option small{font-size:11px;color:var(--text-dim)}.setting-option.selected{border:2px solid var(--accent);padding:11px 9px;background:var(--panel-selected)}.setting-option:disabled{opacity:.68}.settings-note{grid-column:1/-1;margin:0;color:var(--accent);font-size:13px}.weather-summary{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:20px 0;padding:12px 16px;background:#0c2431;border:1px solid var(--border-subtle);border-radius:5px;font-size:13px}.weather-summary>div{display:flex;align-items:center;gap:8px}.weather-summary p{margin:0;flex:1}.condition-icon{font-size:25px;color:var(--accent)}.protection-status{color:var(--positive-text)}.travel-tabs{display:flex;gap:5px;border-bottom:1px solid var(--border-subtle);margin-top:25px}.travel-tabs button{border:0;border-radius:0;padding:12px 18px;background:transparent;font:600 14px var(--body-font)}.travel-tabs button[aria-pressed=true]{color:var(--accent);border-bottom:3px solid var(--accent)}.status-sheet{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:22px 0 0}.status-sheet h2{font:700 16px var(--body-font);margin:0 0 8px}.status-sheet .muted{font-size:13px}.inventory-list{margin:10px 0;display:grid;gap:0}.inventory-list>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-muted);padding:9px 0;align-items:baseline}.inventory-list dt{color:var(--text-dim);font-size:13px}.inventory-list dd{font-size:15px;font-weight:700;margin:0;color:var(--text-bright);text-align:end}.equipment-list,.loadout-items{list-style:none;margin:0;padding:0}.equipment-list li{display:grid;gap:3px;padding:8px 0}.equipment-list strong{font-size:14px}.equipment-list span{font-size:12px;color:var(--text-dim)}.trail-log{margin:0;padding:15px 0;list-style:none;max-height:330px;overflow-y:auto}.trail-log li{padding:12px 10px 12px 22px;border-inline-start:2px solid var(--panel-border);border-bottom:1px solid var(--border-subtle);font-size:14px}.journal{padding:0}.camp-access{padding:0 28px 24px}.camp-access button{width:100%}.repair-notice{padding:18px;background:var(--danger-panel);border:1px solid var(--danger-border);border-radius:6px;margin-bottom:20px}.repair-notice p{font-size:13px;margin:8px 0}.turn-receipt{padding:16px 28px;background:var(--panel-raised);border-bottom:1px solid var(--border-subtle);animation:receipt-in .35s ease-out}.turn-receipt h2{font:700 14px var(--body-font);margin:0 0 6px;color:var(--text)}.turn-receipt p{font-size:13px;margin:0 0 8px;line-height:1.5}.receipt-changes{display:flex;flex-wrap:wrap;gap:8px;font-size:12px}.receipt-changes span{padding:4px 8px;border-radius:4px;background:var(--panel-inset)}.helpful{color:var(--positive-text)}.harmful{color:var(--negative-text)}.receipt-details{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0 0}.receipt-details>div{display:flex;gap:8px;align-items:baseline;font-size:13px}.receipt-details dd{margin:0;font-weight:700}.danger-notice{position:fixed;inset-inline-end:24px;bottom:24px;width:min(430px,calc(100vw - 32px));z-index:80;display:flex;gap:18px;padding:22px;background:var(--danger-panel);border:2px solid var(--danger-border);border-radius:9px;box-shadow:0 12px 50px #000a;animation:danger-arrive .5s ease-out;color:var(--text-bright)}.danger-notice>span{display:grid;place-items:center;font:bold 36px var(--title-font);flex:0 0 44px}.danger-notice p{font-size:14px;line-height:1.5;margin:8px 0 12px}.danger-notice button{min-height:34px;padding:5px 15px;font-size:13px;background:var(--paper);color:var(--primary-ink)}
.outfit-workspace { padding:24px 28px; }
.outfit-heading { margin-block-end:16px; }
.outfit-heading h1 { display:flex; align-items:center; gap:6px; font-size:26px; margin:0; }
.outfit-heading>p { margin:8px 0 0; font-size:13px; line-height:1.5; color:var(--text-dim); }
.outfit-category { margin-block:18px 0; }
.outfit-category>h2 { display:flex; align-items:center; gap:4px; font:700 14px var(--body-font); color:var(--accent); margin:0 0 6px; }
.outfit-category .help-trigger { min-width:24px; width:24px; min-height:24px; height:24px; font-size:12px; }
.outfit-catalog .store-item-grid { display:block; margin:0; }
.outfit-catalog .store-card { display:grid; grid-template-columns:72px minmax(0,1fr) max-content 136px; gap:12px; align-items:center; min-height:70px; padding:10px 12px; background:transparent; border:0; border-bottom:1px solid var(--border-subtle); border-radius:0; transition:background-color .12s ease; }
.outfit-catalog .store-item-selected { background:var(--panel-selected); }
.store-item-art { display:block; width:72px; height:72px; object-fit:contain; image-rendering:pixelated; }
.store-card h3 { margin:0; font:700 16px/1.35 var(--body-font); }
.store-card .store-item-detail { display:flex; flex-wrap:wrap; gap:3px 12px; margin:4px 0 0; color:var(--text-dim); font-size:13px; line-height:1.45; }
.store-card .item-grants { font:600 13px/1.45 var(--body-font); color:var(--positive-text); }
.store-owned { color:var(--text); }
.store-card .store-price { font:600 14px/1.35 var(--body-font); color:var(--accent); text-align:end; white-space:normal; }
.store-qty-row { display:grid; grid-template-columns:44px 48px 44px; align-items:center; gap:0; margin:0; }
.store-qty-btn { width:44px; min-width:44px; height:44px; min-height:44px; padding:0; border-radius:4px; font:700 20px var(--body-font); }
.store-qty-row .store-qty { width:48px; min-width:0; height:44px; padding:0 2px; border:1px solid var(--panel-border); border-radius:4px; background:var(--panel-inset); font:700 16px var(--body-font); font-variant-numeric:tabular-nums; text-align:center; appearance:textfield; }
.store-qty::-webkit-inner-spin-button,.store-qty::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.loadout-panel { position:sticky; bottom:0; z-index:10; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; margin-block:20px 0; padding:14px 0 max(14px,env(safe-area-inset-bottom)); background:var(--panel); border-block-start:2px solid var(--accent); }
.loadout-panel .store-cart-summary { display:flex; flex:1 1 340px; flex-wrap:wrap; gap:12px 28px; border:0; padding:0; margin:0; }
.store-cart-summary dt { color:var(--text-dim); font-size:12px; line-height:1.35; }
.store-cart-summary dd { margin:4px 0 0; font:700 21px/1.2 var(--body-font); font-variant-numeric:tabular-nums; }
.store-cart-summary .cart-cash { color:var(--accent); }
.store-checkout-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.store-checkout-actions button { flex:0 0 auto; min-width:144px; min-height:44px; padding:10px 16px; font-size:14px; }
.capacity-warning { flex:1 0 100%; padding:10px 12px; margin:0; background:var(--warning-panel); color:var(--warning-text); border-inline-start:3px solid var(--accent); font-size:13px; line-height:1.5; }
.outfit-category:has(.store-item-grid:empty) { display:none; }
.store-card { scroll-margin-block:30px 150px; }
@media(max-width:620px) {
 .outfit-workspace { padding:16px; }
 .outfit-heading { margin-block-end:12px; }
 .outfit-heading h1 { font-size:22px; }
 .outfit-category { margin-block-start:12px; }
 .outfit-catalog .store-card { grid-template-columns:48px minmax(0,1fr) 132px; gap:2px 10px; padding:4px; }
 .store-item-art { width:48px; height:48px; grid-column:1; grid-row:1; align-self:start; }
 .outfit-catalog .store-card-body { grid-column:2/-1; grid-row:1; min-width:0; }
 .store-card h3 { font-size:15px; }
 .store-card .store-item-detail { font-size:12px; gap:2px 8px; }
 .store-card .item-grants { font-size:12px; }
 .store-card .store-price { grid-column:1/3; grid-row:2; text-align:start; font-size:14px; padding-inline-start:4px; }
 .store-qty-row { grid-column:3; grid-row:2; grid-template-columns:44px 44px 44px; }
 .store-qty-row .store-qty { width:44px; }
 .loadout-panel { gap:12px; margin-block-start:14px; padding-block:12px max(12px,env(safe-area-inset-bottom)); }
 .loadout-panel .store-cart-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; gap:10px; }
 .store-cart-summary dt { font-size:11px; }
 .store-cart-summary dd { font-size:19px; }
 .store-checkout-actions { justify-content:flex-end; width:100%; gap:8px; }
 .store-checkout-actions button { flex:1 1 0; min-width:0; padding:10px 12px; font-size:13px; }
}
html.hc .store-item-selected { background:#202020; }
html.hc .store-card .store-price,html.hc .store-item-detail,html.hc .item-grants,html.hc .store-owned,html.hc .store-cart-summary dt { color:inherit; }
html.hc .loadout-panel { background:#000; }
@media(prefers-reduced-motion:reduce) { .outfit-catalog .store-card { transition:none; } }
.result-screen{padding:0}.result-art .journey-scene{aspect-ratio:2.25;min-height:360px}.result-art .journey-scene .scene-background{filter:brightness(.55) saturate(.6);object-position:50% 68%}.result-art-caption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:34px;background:linear-gradient(transparent,var(--scene-scrim));color:var(--text-bright)}.result-art-caption h1{font-size:clamp(25px,3.5vw,43px);text-align:start;margin:8px 0 12px}.result-art-caption p:last-child{max-width:760px;line-height:1.6;margin:0;font-size:15px}.result-profile{display:flex;gap:18px;align-items:center;margin:24px 30px}.result-profile .persona-portrait{display:block;width:80px;height:80px;flex:0 0 80px;border:1px solid var(--accent-border);border-radius:50%;background-image:var(--persona-art,url(static/img/journey/personas.png));background-size:600% 200%;background-repeat:no-repeat}.result-profile>div{display:grid;gap:4px}.result-profile .eyebrow{font-size:10px;margin:0}.result-profile strong{font-size:20px}.result-profile span{font-size:13px;color:var(--text-dim)}.result-screen .result-info,.result-screen .stats-section{padding:0 30px 24px;margin:0}.result-metadata{display:flex;gap:20px;flex-wrap:wrap;font-size:13px}.score-display{padding:15px 0;font-size:15px;display:flex;align-items:baseline;gap:15px}.score-value{font:800 38px var(--title-font);color:var(--accent)}.stats-section h2{font:700 17px var(--body-font);margin-bottom:15px}.result-screen .stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.result-screen .stats-grid>div{padding:13px 15px;background:var(--panel-raised);border:1px solid var(--border-subtle);border-radius:5px}.result-screen .stats-grid dt{font-size:12px;color:var(--text-dim);margin:0}.result-screen .stats-grid dd{margin:8px 0 0;font:700 19px var(--body-font);text-align:start;min-height:28px}.result-menu{padding:0 30px 28px;margin:0}.result-menu ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.result-menu .menu-item{display:block;width:100%;height:100%;padding:12px 15px;font:600 14px var(--body-font);text-align:start;border:1px solid var(--panel-border);border-radius:5px}.result-menu li:nth-child(3) button{background:var(--accent);color:var(--primary-ink)}
@keyframes rain-drift{to{background-position:-60px 180px}}@keyframes snow-drift{to{background-position:30px 88px}}@keyframes smoke-drift{to{background-position:100% 0}}@keyframes road-drift{0%{object-position:46% 70%;transform:scale(1)}100%{object-position:54% 70%;transform:scale(1.035)}}@keyframes travel-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes danger-arrive{from{transform:translateY(25px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes receipt-in{from{opacity:0}to{opacity:1}}
@media(max-width:800px){.game-shell{max-width:100%}.world-view .journey-scene{aspect-ratio:1.35;min-height:440px}.critical-stats{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:8px}.hud-stat:nth-child(4){border:0}.hud-stat:nth-child(n+5){padding-top:6px;border-top:1px solid var(--border-muted)}.hud-stat dt{font-size:11px}.hud-stat dd{font-size:20px;margin:2px 0}.survival-hud{padding:10px}.hud-context-row{margin-top:6px;padding-top:7px}.hud-context{font-size:12px}.hud-conditions{font-size:11px}.hud-conditions>span:nth-child(n+2){display:none}.hud-stat .help-popover{inset-inline-end:auto;inset-inline-start:-20px;width:240px}.hud-stat:nth-child(4n) .help-popover,.hud-stat:nth-child(4n-1) .help-popover{inset-inline-start:auto;inset-inline-end:0}.daily-settings{grid-template-columns:1fr;gap:18px}.setting-option{min-height:115px}.result-screen .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:540px){.game-header{padding:12px 14px}.game-header .wordmark{font-size:20px}.game-menu>summary{min-height:36px;padding:5px 10px;font-size:14px}.world-view .journey-scene{aspect-ratio:1;min-height:430px}.scene-caption{padding:38px 18px 16px}.scene-caption h1{font-size:22px}.scene-caption .eyebrow{font-size:10px}.world-view .journey-scene .scene-background{object-position:45% 73%}.hud-stat{padding-inline:5px}.hud-stat .help-trigger{width:17px;height:17px;min-width:17px;min-height:17px}.hud-stat .context-help{margin:0}.hud-stat dt{font-size:10px}.hud-stat dd{font-size:19px}.hud-conditions{gap:4px}.travel-controls{padding:18px}.travel-command{gap:12px;margin-bottom:20px}.travel-command>button{min-width:0;padding:12px 16px;font-size:14px}.turn-chip{font-size:10px}.setting-option{padding:10px 8px}.setting-option.selected{padding:9px 7px}.setting-option strong{font-size:15px}.setting-option small{font-size:12px}.setting-option span{font-size:13px}.daily-settings legend{font-size:15px}.weather-summary{padding:12px;gap:8px}.weather-summary p{flex-basis:100%;font-size:12px}.status-sheet{grid-template-columns:1fr;gap:20px}.camp-access{padding:0 18px 20px}.turn-receipt{padding:14px 18px}.transit-caption{padding:15px 18px;align-items:flex-start}.transit-caption p{font-size:13px}.transit-caption button{font-size:12px;padding:8px;min-width:100px}.result-art .journey-scene{aspect-ratio:1.1;min-height:350px}.result-art-caption{padding:22px}.result-art-caption h1{font-size:26px}.result-art-caption p:last-child{font-size:13px}.result-profile{margin:20px}.result-screen .result-info,.result-screen .stats-section{padding:0 20px 20px}.result-screen .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.result-screen .stats-grid>div{padding:12px}.result-metadata{gap:10px}.result-menu{padding:0 20px 24px}.result-menu ul{grid-template-columns:repeat(2,minmax(0,1fr))}.result-menu .menu-item{font-size:12px}.danger-notice{bottom:16px;inset-inline-end:16px;padding:16px;gap:10px}.danger-notice>span{flex-basis:25px}.danger-notice strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){.scene-moving>img,.journey-scene[data-weather] .weather-atmosphere,.travel-countdown>span,.danger-notice,.turn-receipt{animation:none}.travel-countdown>span{transform:none}.world-view .journey-scene .scene-background{transform:none}}

/* Direct game controls and contained dismissible menus. */
main#main:focus,#screen-title:focus,#store-title:focus{outline:none;box-shadow:none}
.header-controls{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}.header-controls button:not(.help-trigger){padding:.55rem .8rem;min-height:40px;font:inherit}.contrast-switch{display:flex;align-items:center;gap:.5rem}.switch-track{width:30px;height:18px;border:1px solid currentColor;border-radius:20px;padding:2px;display:inline-flex;align-items:center}.switch-track span{display:block;width:12px;height:12px;border-radius:50%;background:currentColor}.contrast-switch[aria-checked=true] .switch-track{background:var(--panel-selected)}.contrast-switch[aria-checked=true] .switch-track span{transform:translateX(12px)}.language-picker{position:relative}.language-options{position:absolute;inset-inline-end:0;top:calc(100% + 6px);z-index:80;min-width:220px;max-height:320px;overflow:auto;padding:.4rem;background:var(--panel-inset);border:1px solid var(--accent-border);box-shadow:0 12px 28px #0008;display:grid;gap:3px}.language-options button{text-align:start;border:0;background:transparent}.language-options button[aria-selected=true]{background:var(--panel-selected);color:var(--accent)}.save-feedback{flex-basis:100%;font-size:.75rem;color:var(--text-dim);text-align:end}.game-header{flex-wrap:wrap}.route-stop{padding:1.5rem;background:var(--panel-inset);border:1px solid var(--accent-border);display:flex;gap:2rem;align-items:center;justify-content:space-between;margin:1rem 0}.route-stop h2{font-size:1.25rem;margin:.2rem 0}.route-stop p{max-width:60ch}.route-stop .controls{display:grid;min-width:240px}.cooldown-status{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.cooldown-status progress{width:100%;accent-color:var(--accent)}.cooldown-status p{font-size:.85rem}.header-controls .contrast-switch{font-size:.8rem}.game-header .wordmark{min-width:220px}.context-help .help-popover{z-index:90}.drawer-body{max-height:88vh;overflow:auto}
@media(max-width:700px){.game-header{gap:.7rem}.header-controls{width:100%;gap:.35rem}.header-controls button{font-size:.75rem;padding:.4rem .5rem}.game-header .wordmark{font-size:1rem}.route-stop{display:block;padding:1rem}.cooldown-status{grid-template-columns:1fr}.save-feedback{text-align:start}}

/* Scene layers share one clock. Weather and lighting never dim the HUD. */
.scene-art{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:var(--panel-raised)}
.journey-scene .scene-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 65%}
.journey-scene.scene-road .scene-background{object-fit:fill;object-position:center}
.scene-light{position:absolute;inset:0;pointer-events:none;transition:background .5s}
.journey-scene[data-time=morning] .scene-light{background:linear-gradient(110deg,#ffbe6838,transparent 65%)}
.journey-scene[data-time=dusk] .scene-light{background:linear-gradient(#56285a68,#dc682844 55%,#101d4760)}
.journey-scene[data-time=night] .scene-light{background:#081a5c88}
.journey-scene[data-time=night] .scene-background{filter:brightness(.52) saturate(.65)}
.journey-scene[data-time=dusk] .scene-background{filter:brightness(.78) sepia(.18)}
.journey-scene[data-indoors=true] .scene-light{opacity:.25}
.journey-scene[data-weather=heat] .weather-atmosphere{background:radial-gradient(ellipse at 78% 8%,#fff0b2a0,transparent 48%),repeating-linear-gradient(0deg,transparent 0 16px,#ffac4130 20px,transparent 26px);background-size:100% 100%,100% 75px;animation:heat-shimmer 2s ease-in-out infinite alternate;backdrop-filter:blur(.45px)}
.journey-scene[data-indoors=true] .weather-atmosphere{display:none}
@keyframes heat-shimmer{from{transform:translateY(0) skewX(-.3deg);opacity:.65}to{transform:translateY(-8px) skewX(.3deg);opacity:.95}}
.crew-van{position:absolute;width:42%;left:16%;bottom:13%;aspect-ratio:1.5;filter:drop-shadow(0 3px 1px #0005)}
.crew-van img{display:block;width:100%;height:100%;object-fit:contain}
.scene-moving .crew-van{animation:van-drive 2.6s linear both}
.scene-moving .crew-van img{animation:van-suspension .28s ease-in-out infinite alternate}
.scene-moving .scene-background{animation:landscape-pass 2.6s linear both}
@keyframes van-drive{from{left:9%}to{left:49%}}
@keyframes van-suspension{from{transform:translateY(0)}to{transform:translateY(2px)}}
@keyframes landscape-pass{from{transform:scale(1.08) translateX(2%)}to{transform:scale(1.08) translateX(-2%)}}
.top-game-menu{position:relative;margin-inline-start:auto}
.top-game-menu-panel{position:absolute;inset-inline-end:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 32px));z-index:100;padding:12px;background:var(--panel);border:1px solid var(--button-border);box-shadow:0 12px 30px #0008;border-radius:8px}
.top-game-menu-panel .header-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.top-game-menu-panel .contrast-switch,.top-game-menu-panel .language-picker{grid-column:1/-1}
.top-game-menu-panel .language-picker>button{width:100%;text-align:start;display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.top-game-menu-panel .language-picker>button>span{flex-shrink:0}
.top-game-menu-panel .language-options{width:100%;max-height:min(320px,45vh)}
.viewport-help{position:fixed;inset:auto;z-index:1000;visibility:hidden;max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box;width:min(320px,calc(100vw - 24px));font:400 14px/1.5 var(--body-font);letter-spacing:normal;text-transform:none}
button,a[href],summary,[role=button],[role=option],[role=radio],[role=switch],label:has(input[type=radio]),label:has(input[type=checkbox]){cursor:pointer}
button *,a[href] *,summary *,[role=option] *,[role=radio] *{cursor:inherit}
button:disabled,[aria-disabled=true]{cursor:not-allowed}
input[type=text],input[type=number],textarea{cursor:text}
@media(max-width:600px){.world-view .journey-scene{min-height:430px}.scene-road .crew-van{width:68%;left:6%;bottom:15%}@keyframes van-drive{from{left:0}to{left:30%}}.top-game-menu-panel{inset-inline-end:0}.world-view .journey-scene:not(.scene-road) .scene-background{object-fit:contain;background:var(--panel-inset)}.journey-scene:not(.scene-road) .scene-art{inset:80px 0 60px}}
@media(prefers-reduced-motion:reduce){.scene-moving .scene-background,.scene-moving .crew-van,.scene-moving .crew-van img,.journey-scene[data-weather] .weather-atmosphere{animation:none}.scene-light{transition:none}}
.game-header{position:relative;z-index:20}
.crew-name-form,.crew-intro{padding:24px 30px}.crew-intro{border-bottom:1px solid var(--border-subtle)}.crew-intro h1{margin:10px 0}.crew-intro p:last-child{max-width:65ch;color:var(--text-dim)}.crew-name-form>label{display:block;font-weight:700;margin-bottom:8px}.crew-name-form>input{width:min(440px,100%)}.crew-names-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.crew-name-card{display:grid;grid-template-columns:60px 1fr;column-gap:12px;align-items:center;background:var(--panel-raised);padding:15px;border:1px solid var(--border-subtle);border-radius:8px}.crew-name-card .portrait-art{grid-row:1/3;width:60px;height:75px}.crew-name-card label{font-weight:700}.crew-name-card input{width:100%;min-width:0;margin-top:8px}.crew-roster{grid-column:1/-1}.crew-roster .inventory-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.crew-roster dt span{display:block;font-size:12px;color:var(--text-dim)}.crew-roster dd{font-size:13px}
.setup-actions .setup-back-mobile { display:none; }
@media(max-width:700px) {
 .setup-actions { flex-direction:column; align-items:stretch; }
 .setup-actions .setup-back-desktop { display:none; }
 .setup-actions .setup-back-mobile { display:block; }
}
.crew-van .van-body{position:absolute;inset:0}
.van-window{position:absolute;top:37.5%;height:20.3%;overflow:hidden;isolation:isolate}
.van-row-0{left:23%;width:15%;border-radius:24% 9% 10% 6%}
.van-row-1{left:40.5%;width:15%;border-radius:8%}
.van-row-2{left:58.7%;width:23.3%;clip-path:polygon(0 0,64% 0,100% 87%,100% 100%,0 100%)}
.scene-moving .crew-van img{animation:none}
@media(max-width:700px){.crew-names-grid{grid-template-columns:1fr 1fr;gap:10px}.crew-name-card{grid-template-columns:42px 1fr;padding:10px;column-gap:8px}.crew-name-card .portrait-art{width:42px;height:60px}.crew-name-form,.crew-intro{padding:20px}.crew-name-card label{font-size:12px}.crew-roster .inventory-list{grid-template-columns:1fr}}
/* Route briefings retain map scale on small screens; the text itinerary stays readable. */
/* Leave safe room for scene subjects between the HUD and title. */
.world-view .journey-scene:not(.scene-road){min-height:600px;aspect-ratio:1.8}.world-view .journey-scene:not(.scene-road) .scene-art{inset:116px 0 0}.world-view .journey-scene:not(.scene-road) .scene-background{object-fit:cover;object-position:center 15%}
@media(max-width:800px){.world-view .journey-scene:not(.scene-road) .scene-background{object-fit:contain;object-position:center}.world-view .journey-scene:not(.scene-road){min-height:520px;aspect-ratio:1}.world-view .journey-scene:not(.scene-road) .scene-art{inset:170px 0 100px}}
@media(max-width:540px){.world-view .journey-scene:not(.scene-road){min-height:500px}.world-view .journey-scene:not(.scene-road) .scene-art{inset:168px 0 100px}}
/* Geographic map is an interlude scene in the journey, not an auxiliary panel. */
.map-scene{background:var(--panel);border:1px solid var(--panel-border);color:var(--text)}.map-scene-heading{padding:24px 28px 16px;display:flex;gap:20px;justify-content:space-between;align-items:center}.map-scene-heading h1{font:700 clamp(24px,3.2vw,40px) var(--title-font);margin:8px 0}.map-scene-heading p{margin:6px 0}.map-scene-heading button{flex-shrink:0}.map-scene-art{margin:0;background:#193d49;border-block:1px solid var(--panel-border)}.us-route-map{display:block;width:100%;height:auto;max-height:660px}.map-road-casing{fill:none;stroke:#173e42;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.map-road-future{fill:none;stroke:#f3edcc;stroke-width:2.5;stroke-dasharray:5 3}.route-traced{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;animation:map-trace-in .9s ease-out}.map-city{font:700 12px monospace;fill:#fff4d3;paint-order:stroke;stroke:#193d49;stroke-width:3;stroke-linejoin:round}.map-stamp text{font:700 11px monospace;fill:#f1e4bb;paint-order:stroke;stroke:#193d49;stroke-width:3;stroke-linejoin:round}.map-scene-art figcaption{padding:12px 28px;font-size:14px;color:var(--accent);border-top:1px dashed var(--panel-border)}.map-scene-itinerary{display:grid;grid-template-columns:1fr 2fr;gap:28px;padding:22px 28px;border-bottom:1px solid var(--panel-border)}.map-distance{display:flex;flex-direction:column;gap:5px;font-size:13px}.map-distance strong{font:700 26px var(--title-font);color:var(--accent)}.map-scene-itinerary ol{display:grid;grid-template-columns:1fr 1fr;gap:24px;list-style:none;padding:0;margin:0}.map-scene-itinerary li{display:flex;flex-direction:column;gap:6px}.map-scene-itinerary li strong{font-size:18px}.map-scene-itinerary li span,.map-scene-itinerary li small{font-size:13px;color:var(--text)}.map-scene-actions{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:18px 28px 8px}.map-scene-actions p{font-size:13px;max-width:600px}.map-scene-actions button{flex-shrink:0}.map-attribution{font-size:11px;padding:0 28px 18px;margin:0}.map-attribution a{color:var(--text-dim)}.persona-origin{color:var(--paper-ink)}.scene-location{margin:0 0 6px;font-size:13px;color:var(--text-dim)}
@keyframes map-trace-in{from{stroke-dasharray:0 100}to{stroke-dasharray:100 0}}
@media(max-width:600px){.map-scene-heading{padding:18px 16px;align-items:flex-start;flex-wrap:wrap;gap:10px}.map-scene-heading h1{font-size:26px}.map-scene-heading p{font-size:13px}.map-scene-heading button{font-size:13px}.map-scene-art figcaption{padding:12px 16px}.map-scene-itinerary{display:block;padding:16px}.map-distance{margin-bottom:18px}.map-scene-itinerary ol{gap:16px}.map-scene-itinerary li strong{font-size:16px}.map-scene-actions{align-items:stretch;flex-direction:column;gap:8px;padding:12px 16px}.map-attribution{padding:4px 16px 16px}.scene-location{font-size:11px}}
@media(prefers-reduced-motion:reduce){.route-traced{animation:none}}

@media(min-width:1000px) { .outfit-catalog .store-item-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; } }
