:root{color-scheme:dark;--bg:#0a171d;--panel:#12262d;--panel2:#19333b;--line:#2b4850;--muted:#a2b9bb;--text:#f3edda;--accent:#e6cc8a;--cyan:#8ddccb;--red:#ff9b89;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 40% 0,#19363c,var(--bg) 65%);color:var(--text);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:10px 15px;border-radius:9px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;cursor:pointer}button:hover:not(:disabled),.button:hover{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:#263026;border-color:var(--accent)}.primary:hover:not(:disabled){background:#f5dd9e;color:#172322}.danger{color:var(--red)}input,select,textarea{background:#0c1d24;border:1px solid var(--line);color:var(--text);padding:12px;border-radius:8px;width:100%;min-height:44px}textarea{min-height:100px}label{display:block;color:var(--muted);margin:15px 0 6px;font-size:13px}:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}header{border-bottom:1px solid #30464a;background:#0a1921c9}.header-inner{max-width:1600px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:13px 28px;gap:20px}.brand{display:flex;align-items:center;gap:11px;font-weight:750;letter-spacing:.14em;font-size:14px}.brand img{width:30px;height:30px}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.19em;font-weight:500}nav{display:flex;gap:24px;font-size:12px}nav a[aria-current=page]{color:var(--accent)}main{max-width:1400px;margin:auto;padding:30px}.eyebrow{font:10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:500}h1{font-size:clamp(32px,4vw,54px);line-height:1.1;margin:12px 0}h2{font-size:27px;line-height:1.2;margin:0 0 14px}h3{font-size:16px;margin:0 0 7px}p{margin:0 0 16px}.muted,.micro{color:var(--muted)}.micro{font-size:12px;line-height:1.55;margin:10px 0}.mono{font-family:var(--mono)}.good-text,.metric-good{color:var(--cyan)}.warn-text{color:var(--red)}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.full{width:100%;margin-top:15px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:20px}.foot{max-width:1400px;margin:24px auto 0;padding:24px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;flex-wrap:wrap}.skip{position:absolute;left:10px;top:-70px;background:var(--accent);color:#111;padding:10px;z-index:20}.skip:focus{top:10px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#eff1d9;color:#183733;padding:12px 20px;border-radius:9px;box-shadow:0 8px 30px #0009;z-index:25;max-width:90vw;font-size:13px;pointer-events:none}dialog{background:var(--panel);color:var(--text);border:1px solid #749082;border-radius:17px;max-width:590px;width:calc(100% - 28px);padding:30px;max-height:90svh;overflow:auto;box-shadow:0 25px 90px #000a}dialog::backdrop{background:#041014d9;backdrop-filter:blur(5px)}dialog h2{margin:14px 0 20px;font-size:33px}dialog p{color:#bacbca}dialog .actions{margin-top:22px}.warning{border:1px solid #78674b;background:#453d262e;color:#e2c995;font-size:12px;padding:12px 14px;border-radius:8px;margin:12px 0}.start-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;text-align:center;margin:24px 0}.start-rules span{font-size:33px;color:var(--cyan)}.start-rules b{display:block;font:12px system-ui;color:var(--text);margin-top:8px}.rule-steps{display:grid;grid-template-columns:1fr 1fr;gap:20px}.rule-steps p{font-size:12px;margin:6px 0}.rule-steps b{color:var(--accent);font-size:13px}
/* A persistent village, rather than a dashboard of tasks. */
.valley-game{max-width:1600px;padding:18px 28px}.game-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.game-title h1{font-size:28px;margin:5px 0}.game-options{display:flex;gap:7px}.game-options button{font-size:12px;padding:7px 12px;min-height:38px}.game-options button[aria-pressed=true]{border-color:#739e8b;color:var(--cyan)}.season-hud{border:1px solid #456059;border-radius:12px;background:linear-gradient(90deg,#253b36,#13292e);display:grid;grid-template-columns:1.3fr 1fr 1.15fr 1.15fr 1fr;align-items:center;gap:18px;padding:13px 22px;margin-bottom:14px}.season-hud>div{border-right:1px solid #49605a55}.season-hud>div:last-child{border:0}.season-hud small{display:block;font-size:10px;letter-spacing:.06em;color:#b6c7bf;margin-bottom:3px}.season-hud b{font-size:17px;display:block;font-weight:650;font-variant-numeric:tabular-nums}.season-hud em{font-size:13px;font-style:normal;color:#849c93}.day-badge{display:flex;gap:14px;align-items:center}.day-badge>span{font-size:28px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:stretch}.valley-map{height:min(66svh,680px);min-height:520px;position:relative;isolation:isolate;border-radius:15px;overflow:hidden;background:url('city.webp') center/cover;border:1px solid #617b71;box-shadow:inset 0 0 70px #071b2399}.map-sky{position:absolute;inset:0;background:linear-gradient(#142b2780,transparent 28%,#12232933 74%,#0a202b99);pointer-events:none;z-index:-1}.map-sky.storm{background:linear-gradient(#242b5199,#18264644)}.map-sky.storm:after{content:'';position:absolute;inset:-100%;background:repeating-linear-gradient(110deg,transparent 0 45px,#b3d9e122 46px 47px,transparent 48px 80px);animation:rain 1s linear infinite}.map-heading{position:absolute;top:20px;left:22px;text-shadow:0 2px 8px #000}.map-name{display:block;font:10px var(--mono);letter-spacing:.22em;color:#f8e9b9}.map-subtitle{display:block;color:#c8dcd4;font:11px Georgia;margin-top:4px}.network-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.7}.network-lines path{fill:none;stroke:#b4f5d4;stroke-width:.27;stroke-dasharray:1.5 1;animation:data-flow 15s linear infinite}.network-lines .offline{stroke:#ff9a7f;stroke-dasharray:.6 1;animation:none}.district-pin{--x:50%;--y:50%;position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:116px;min-height:124px;display:flex;flex-direction:column;gap:1px;padding:9px 10px 7px;background:linear-gradient(#183e40ed,#102b31f5);border:1px solid #83b5a0;border-radius:30px 30px 12px 12px;box-shadow:0 7px 0 #0a222ad9,0 10px 20px #000a;color:#f4edcf;transition:box-shadow .2s,transform .2s;z-index:2}.district-pin:hover{transform:translate(-50%,-54%)}.district-pin.selected{outline:2px solid #f2d38b;outline-offset:5px;box-shadow:0 7px 0 #192d20,0 0 35px #f8cc7755}.district-pin.struggling{border-color:#e19178}.pin-building{font-size:33px;line-height:1.2}.pin-name{font-size:12px;margin-top:2px}.pin-status{position:absolute;top:-10px;right:-7px;min-width:25px;height:25px;padding:3px 6px;border-radius:7px;background:#aacfb0;color:#152f2b;font:bold 10px/19px var(--mono);box-shadow:0 3px 9px #0007}.struggling .pin-status{background:#eda990;color:#452324}.pin-service{font:11px var(--mono);color:#c0e8d0;display:flex;gap:7px;align-items:center;margin:5px 0}.pin-service i{display:block;width:43px;height:4px;background:linear-gradient(90deg,#a3dabb var(--fill),#3c5555 var(--fill));border-radius:3px}.pin-level{font-size:9px;letter-spacing:4px;color:#d4bb80}.ric-pin{position:absolute;left:22%;top:74%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:1px;padding:9px 15px;background:#112736ed;border:1px solid #a493d3;border-radius:12px;box-shadow:0 7px 0 #142139;z-index:2}.ric-pin.selected{outline:2px solid #c1b7f1;outline-offset:4px}.ric-pin>span{font-size:32px;color:#c9b8ff;line-height:1.2}.ric-pin b{font-size:11px}.ric-pin small{font-size:9px;color:#c0b8d0}.forecast-card{position:absolute;left:18px;right:18px;bottom:18px;background:#122d34f2;border:1px solid #61776a;border-radius:11px;padding:12px 16px;display:flex;gap:15px;align-items:center;backdrop-filter:blur(8px);z-index:3}.forecast-icon{font-size:30px}.forecast-card small{font:9px var(--mono);letter-spacing:.1em;color:var(--accent);display:block}.forecast-card b{font-size:14px;display:block}.forecast-card div>span{font-size:11px;color:#b4c8c4;display:block}.map-legend{position:absolute;right:18px;top:20px;background:#112932c9;border-radius:7px;padding:6px 9px;display:flex;flex-direction:column;gap:3px;font-size:9px;color:#d6e9dd}.map-legend i{display:inline-block;width:12px;border-top:2px solid #b4f5d4;margin-right:4px}.map-legend span+span i{border-top:2px dashed #ff9a7f}.map-residents i{position:absolute;left:40%;top:57%;font-style:normal;font-size:16px;animation:stroll 17s ease-in-out infinite;filter:drop-shadow(0 2px 2px #000)}.map-residents i:nth-child(2){left:62%;top:44%;animation-delay:-6s}.map-residents i:nth-child(3){left:54%;top:72%;animation-delay:-10s}.command-panel{background:#10272e;border:1px solid #375751;border-radius:14px;overflow:hidden;height:min(66svh,680px);min-height:520px;display:flex;flex-direction:column}.panel-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);padding:5px 5px 0;background:#11232b;flex-shrink:0}.panel-tabs button{border:0;background:transparent;border-radius:7px 7px 0 0;font-size:21px;display:flex;flex-direction:column;gap:0;padding:7px 3px 8px;color:#8ea7a9}.panel-tabs small{font-size:9px;font-weight:500}.panel-tabs [aria-selected=true]{background:#1d393d;color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.panel-body{overflow:auto;padding:19px 17px;scrollbar-width:thin;scrollbar-color:#536d65 transparent}.inspector-heading{display:flex;gap:11px;align-items:center;margin-bottom:14px}.inspector-heading h2{font-size:24px;margin:5px 0 0}.inspector-heading .eyebrow{font-size:8px}.portrait{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;border:1px solid #627768;background:#274342;font-size:24px;flex-shrink:0}.resident{display:flex;gap:8px;font-size:11px;padding:10px 12px;background:#223a38;border-radius:7px;margin-bottom:15px}.resident b{color:var(--accent);font-size:10px}.resident span{font-style:italic;color:#c0d0c3}.district-metrics{display:flex;gap:14px;justify-content:space-between;margin:15px 0}.district-metrics small{font-size:9px;color:var(--muted);display:block}.district-metrics b{font:20px var(--mono)}.health-line{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:17px}.health-line meter{flex:1;min-width:50px;height:7px}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;margin:20px 0 10px}.section-label>span{font-size:9px;font-weight:400;color:var(--muted)}.pill{padding:3px 7px;border-radius:4px;background:#284e42}.pill.good{color:#a6dfc6}.pill.bad{background:#603e31;color:#ffbca5}.action-card{display:flex;flex-wrap:wrap;justify-content:space-between;gap:3px 5px;text-align:left;width:100%;padding:10px 12px;margin:6px 0;background:#1b353b;border:1px solid #3c5958;border-radius:8px}.action-card:disabled{opacity:.53}.action-name{font-size:12px;font-weight:650}.action-cost{font:9px var(--mono);color:#dfc792;align-self:center}.action-card small{display:block;width:100%;font-size:10px;font-weight:400;color:#afc0bf;line-height:1.45}.telemetry{border:1px solid #35564f;border-radius:7px;padding:5px 10px;background:#0b2027}.telemetry div{display:flex;gap:10px;border-bottom:1px solid #294038;padding:8px 0;font-size:10px}.telemetry div:last-child{border:0}.telemetry b{color:var(--cyan);font:10px var(--mono)}.power-options{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.power-options button{display:flex;flex-direction:column;gap:4px;font-size:11px;padding:9px 4px}.power-options small{font-size:8px;color:var(--muted);font-weight:400}.change-preview{background:#253e32;padding:10px;border:1px solid #6d8c64;border-radius:8px;margin-top:12px;font-size:11px}.change-preview>span{display:block;color:#cedbc5;margin-top:4px}.architecture{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:10px;margin:18px 0}.architecture span{padding:6px 10px;border-radius:5px;background:#244244}.architecture i{font:9px var(--mono);color:var(--accent)}.policy-options{display:flex;gap:5px}.policy-options button{flex:1;font-size:10px;padding:8px 4px}.policy-options button[aria-pressed=true]{opacity:1;background:#49503a;border-color:#d5bd82;color:#f2d893}.rapp{border-top:1px solid #3c5450;padding:15px 0 5px}.rapp-title{display:flex;align-items:center;gap:10px}.rapp-title>span{font-size:30px;color:#c6b1f6;width:34px;text-align:center}.rapp-title h3{font-size:13px;margin:0}.rapp-title small{font-size:9px;color:var(--muted)}.rapp p{font-size:11px;color:#b4c6c0;margin:9px 0}.installed{margin-left:auto;font-style:normal;color:var(--cyan)}.promise{padding:12px;border:1px solid #425b50;border-radius:9px;margin:10px 0;background:#1d3432}.promise b,.promise span,.promise small{display:block}.promise b{font-size:12px}.promise span{font-size:10px;color:var(--muted);margin:5px 0}.promise small{font-size:10px;color:var(--accent)}.promise.completed{border-color:#729c74}.log-entry{display:flex;gap:10px;border-top:1px solid #304842;padding:11px 0;font-size:11px}.log-entry small{font:8px var(--mono);color:var(--accent);min-width:32px;padding-top:3px}.season-days{display:flex;flex-wrap:wrap;gap:5px}.season-days span{display:grid;place-items:center;border:1px solid #39554d;width:29px;height:30px;border-radius:5px;font-size:11px;color:var(--muted)}.season-days .past{background:#305042;color:#bbd8a1}.season-days .current{border-color:#d3b779;color:#f3d69c}.history-chart{display:flex;gap:6px;align-items:flex-end;min-height:125px;margin:10px 0}.history-chart>div{flex:1;text-align:center;max-width:28px}.history-chart i{display:block;border-radius:4px 4px 0 0;background:linear-gradient(#bdcc89,#57978b)}.history-chart small{font-size:9px}.day-control{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 20px;border:1px solid #486153;border-radius:12px;margin-top:14px;background:#1d3431}.service-preview>small{font:9px var(--mono);letter-spacing:.08em;color:#bac4af}.service-preview>div{display:flex;gap:20px;align-items:center;margin-top:3px}.service-preview b{font-size:20px;font-weight:550}.service-preview span{font-size:12px;color:#c2cec2}.day-control .primary{min-width:185px;font-size:14px}.mentor{display:flex;gap:12px;align-items:center;padding:12px 4px;color:#b6c4b4}.mentor>span{color:var(--accent);font-size:20px}.mentor p{font-size:11px;margin:0;flex:1}.mentor small{font-size:10px;color:#829991}.balance-sheet{display:grid;grid-template-columns:1fr auto;gap:9px 20px;font-size:13px;padding:20px;background:#0d2027;border-radius:10px}.balance-sheet span{color:var(--muted)}.balance-sheet b{font-family:var(--mono)}.review-hero{text-align:center;margin:20px 0}.review-hero b{font:60px Georgia;display:block}.review-hero span{font-size:12px;color:var(--muted)}.report-stats{display:flex;justify-content:space-around;gap:14px;text-align:center;margin:24px 0}.report-stats b{display:block;font:28px Georgia;color:var(--accent);margin-bottom:5px}.report-stats span{font-size:11px;color:var(--muted)}.reward{padding:10px;border-radius:6px;background:#34492e;color:#d9e4af!important;font-size:13px}
/* Full viewport, skippable in-engine cutscenes. */
dialog.cinema{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;overflow:hidden;background:#071c24}.cinema-world{position:absolute;inset:-6%;background:linear-gradient(#05192322,#081d3088),url('city.webp') center/cover;animation:camera-drift 4.5s ease-out both;filter:brightness(.55)}.cinema canvas{position:absolute;inset:0;width:100%;height:100%}.cinema-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0009 0,transparent 18%,transparent 52%,#04131ae6 82%)}.cinema-caption{position:absolute;bottom:8%;left:8%;right:8%;text-align:center}.cinema-caption h2{font-size:clamp(28px,4vw,54px);margin:12px 0}.cinema-caption p{font-size:13px;color:#bdd4ce;max-width:600px;margin:10px auto 20px}.cinema-steps{display:flex;justify-content:center;gap:24px;font:10px var(--mono);color:#78908e}.cinema-steps span.active{color:#e7d4a0}.cinema-progress{width:200px;height:2px;background:#59695666;margin:22px auto 0}.cinema-progress i{height:100%;display:block;background:#e7d4a0}.cinema-skip{position:absolute;top:25px;right:25px;background:#112c33bb;border-color:#78948a;font-size:12px}.cinema-skip span{font-size:9px;opacity:.6}.cinema .eyebrow{font-size:11px}
/* Chapter selection and reference pages. */
.valley-home{padding:22px 28px;max-width:1500px}.world-select{position:relative;min-height:690px;height:calc(100svh - 180px);max-height:900px;background:linear-gradient(90deg,#092029db,transparent 70%),url('city.webp') center/cover;border:1px solid #6c8170;border-radius:20px;overflow:hidden}.world-title{position:absolute;z-index:3;left:5%;top:6%;max-width:410px}.world-title h1{font-size:clamp(50px,5.5vw,86px);text-shadow:0 4px 16px #001826;line-height:.98;margin:18px 0}.world-title h1 em{font-style:normal;color:var(--accent)}.world-title p{color:#d0dac8;margin:20px 0;font-size:15px;max-width:280px}.world-title .button{margin:0 6px 7px 0}.world-record{position:absolute;right:28px;top:26px;padding:12px 18px;background:#102d31e3;border:1px solid #a79669;border-radius:12px;font-size:23px;color:#f0dfab;z-index:3}.world-record small{display:block;font-size:10px;color:#b9cdbd}.island-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;flex-direction:column;width:65px;height:65px;border:2px solid #dac58b;background:#203b31ed;border-radius:50%;box-shadow:0 7px 0 #0e2823,0 15px 24px #0008;z-index:2}.island-pin>span{font-size:28px}.island-pin>b{position:absolute;right:-5px;top:-8px;background:#e6ce92;border-radius:50%;width:21px;text-align:center;color:#3d3c26;font-size:11px}.island-pin small{position:absolute;top:75px;white-space:nowrap;padding:4px 9px;border-radius:5px;background:#102b31ed;color:#eef0d6;font-size:10px}.island-pin:hover{background:#64724a;transform:translate(-50%,-55%)}.island-pin.won{border-color:#b6e69b}.island-pin i{position:absolute;left:-12px;top:-8px;color:#ffe393;font-style:normal}.world-bottom{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:#112d31e8;padding:10px 24px;border-radius:25px;white-space:nowrap;font-size:12px;color:#d5e0ca;border:1px solid #62785c}.chapter-list{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:14px}.chapter-list a{background:#19332f;border:1px solid #3e594b;border-radius:9px;padding:12px 8px;text-align:center}.chapter-list span{font-size:22px}.chapter-list b{display:block;font-size:11px;margin:5px 0}.chapter-list small{font-size:9px;color:var(--muted);display:block}.guide{max-width:1000px}.guide h1{margin-bottom:12px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.guide .panel p,.guide .panel li{font-size:13px;color:#bbc9c0}.guide .panel li{margin:9px 0}.guide .panel h2{font-size:24px}.guide details{border-top:1px solid var(--line);padding:14px 0}.guide summary{cursor:pointer;color:var(--accent);font-size:14px}.guide details p{margin-top:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.06em}td,th{padding:12px 10px;border-bottom:1px solid var(--line)}.score-header{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:22px}.score-header select{width:auto;max-width:100%}.caption{font:10px var(--mono);color:var(--muted)}.empty{padding:45px 20px;text-align:center}.empty h2{margin:14px 0}.score-best{font:50px Georgia;color:var(--accent)}
@keyframes data-flow{to{stroke-dashoffset:-40}}@keyframes stroll{50%{transform:translate(38px,19px)}}@keyframes rain{to{transform:translate(-40px,90px)}}@keyframes camera-drift{from{transform:scale(1.03) translate(-1%,1%)}to{transform:scale(1.15) translate(1%,-1%)}}
@media(min-width:1700px){.play-layout{grid-template-columns:minmax(0,1fr) 400px}.panel-body{padding:22px}.valley-map,.command-panel{height:680px}}
@media(max-width:1050px){.play-layout{grid-template-columns:minmax(0,1fr) 320px}.valley-game{padding:15px}.season-hud{padding:12px;gap:12px}.season-hud b{font-size:15px}.map-subtitle{display:none}.map-heading{left:13px;top:17px}.map-name{font-size:8px}.map-legend{font-size:8px;right:10px;top:14px}.district-pin{width:95px;min-height:108px}.pin-building{font-size:28px}.pin-name{font-size:11px}.forecast-card{left:10px;right:10px;padding:10px;gap:10px}.forecast-card div>span{font-size:10px}.world-title{max-width:300px}.chapter-list{grid-template-columns:repeat(4,1fr)}}
@media(max-width:800px){.header-inner{padding:12px 15px;gap:12px}.brand{font-size:11px;letter-spacing:.09em}.brand img{width:25px;height:25px}.brand small{font-size:8px}nav{gap:12px;font-size:10px}.valley-game{padding:12px}.game-title{gap:10px}.game-title h1{font-size:24px}.game-options{gap:4px}.game-options button{padding:6px 9px;min-height:38px}.game-options button span{display:none}.game-title .eyebrow{font-size:8px}.season-hud{grid-template-columns:1.2fr 1fr 1fr;gap:10px;padding:12px}.season-hud>div{border:0}.season-hud>div:nth-child(4){grid-column:1/3}.season-hud small{font-size:8px}.season-hud b{font-size:14px}.season-hud .day-badge b{font-size:12px}.day-badge{gap:8px}.day-badge>span{font-size:22px}.play-layout{grid-template-columns:1fr}.valley-map{height:470px;min-height:470px}.command-panel{height:auto;max-height:none;min-height:0}.panel-body{overflow:visible;padding:18px}.panel-tabs{position:sticky;top:0;z-index:3}.panel-tabs button{flex-direction:row;font-size:21px;gap:7px}.panel-tabs small{font-size:11px}.district-pin{width:95px;min-height:106px}.ric-pin{top:70%;padding:6px 12px}.district-pin[style*="73%"]{top:66%}.map-heading{top:14px}.forecast-card{bottom:10px}.day-control{position:sticky;bottom:0;z-index:5;padding:11px 13px;margin-top:10px;box-shadow:0 -8px 25px #071c2588;gap:10px}.service-preview>small{font-size:7px}.service-preview>div{display:block;margin-top:2px}.service-preview b{font-size:16px}.service-preview span{display:block;font-size:9px}.day-control .primary{min-width:140px;font-size:12px;padding:10px}.mentor{padding:12px 2px}.mentor small{display:none}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.action-grid .action-card{align-content:start}.section-label{font-size:13px}.action-name{font-size:13px}.action-card small{font-size:11px}.telemetry div{font-size:11px}.resident{font-size:12px}.rapp p{font-size:12px}.power-options small{font-size:9px}.cinema-caption{left:6%;right:6%;bottom:9%}.cinema-steps{gap:12px;font-size:8px}.cinema-caption h2{font-size:32px}.cinema-skip{top:15px;right:15px}.cinema-caption p{font-size:11px}.cinema .eyebrow{font-size:8px}.valley-home{padding:12px}.world-select{min-height:770px;height:90svh;background-position:54% center}.world-title{left:6%;top:5%}.world-title h1{font-size:57px}.world-title p{font-size:13px;max-width:220px;margin:16px 0}.world-record{right:14px;top:17px;font-size:19px;padding:9px}.world-record small{font-size:8px}.island-pin{width:54px;height:54px}.island-pin small{top:64px;font-size:9px}.world-bottom{font-size:9px;padding:9px 12px;width:max-content;max-width:95%;white-space:normal;text-align:center}.chapter-list{grid-template-columns:repeat(2,1fr)}.guide-grid{grid-template-columns:1fr}.guide{padding:20px 15px}.score-header{align-items:start;flex-direction:column}.rule-steps{gap:15px}.foot{padding:20px 15px;font-size:11px}.report-stats{gap:10px}.report-stats b{font-size:24px}dialog{padding:23px}}
@media(max-width:370px){.brand small{display:none}nav{gap:8px;font-size:9px}.game-options button{padding:5px 7px}.game-title h1{font-size:21px}.season-hud{gap:8px}.district-pin{width:85px}.world-title h1{font-size:50px}.world-record{font-size:16px}.world-record small{font-size:7px}.rule-steps{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

@media(max-width:800px){.world-select{min-height:880px}.island-pin:nth-child(1){top:53%!important}.island-pin:nth-child(2){top:49%!important}.island-pin:nth-child(3){top:60%!important}.island-pin:nth-child(4){top:77%!important}.island-pin:nth-child(5){top:85%!important}.island-pin:nth-child(6){top:76%!important}.island-pin:nth-child(7){top:66%!important}}
.tutorial-coach{border:1px solid #c5ad73;background:linear-gradient(110deg,#29433b,#142e36);border-radius:13px;padding:17px 22px;margin:0 0 14px}.tutorial-progress{display:flex;justify-content:space-between;gap:12px;font:11px var(--mono);color:var(--accent);margin-bottom:7px}.tutorial-coach h2{font-size:25px;margin:5px 0 8px}.tutorial-coach>p{font-size:15px;max-width:900px;margin:0 0 8px}.tutorial-coach details{font-size:13px;color:#c2d4c7;margin:8px 0}.tutorial-coach summary{cursor:pointer;color:var(--accent)}.tutorial-coach details p{margin:8px 0}.tutorial-coach .actions{margin-top:12px}.tutorial-coach button{font-size:12px;min-height:38px}.tutorial-target{outline:3px solid #f9d66c!important;outline-offset:3px;box-shadow:0 0 22px #f0c24c44!important}@media(max-width:800px){.tutorial-coach{padding:16px}.tutorial-progress{font-size:10px}.tutorial-coach h2{font-size:25px}.tutorial-coach>p{font-size:14px}.world-title .button{font-size:12px}.world-select{min-height:970px}}

/* Keep equipment condition as prominent as traffic service. */
.hardware-card{padding:13px;margin:14px 0;border:1px solid #658d79;border-radius:9px;background:#203c35}.hardware-card.damaged{border-color:#e0b571;background:#3a332b}.hardware-card>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hardware-card>div>span:first-child{font-size:14px;font-weight:650}.hardware-card strong{font:26px var(--mono);color:#f8e7bd}.hardware-state{font-size:12px;margin-left:auto}.hardware-card meter{display:block;width:100%;height:15px;margin:7px 0}.hardware-card p{font-size:12px;line-height:1.5;color:#e1e7dc;margin:7px 0}.hardware-card small{font-size:11px;color:#d9cda9}.pin-service{font-size:11px;margin:4px 0 0}.pin-health{font-size:11px;font-weight:500;color:#cedfd5}.district-pin{min-height:140px}.lesson-evidence{display:flex;gap:10px;flex-wrap:wrap;padding:10px 12px;background:#0e272c;border-radius:6px;margin:12px 0;font-size:13px}.lesson-evidence b{color:#f6d88d}.lesson-result{font-size:13px!important;color:#d1e4d8;border-left:3px solid #96cbb1;padding-left:10px}.game-options{flex-wrap:wrap;justify-content:flex-end}@media(max-width:800px){.game-title{align-items:flex-start;flex-wrap:wrap}.game-options{justify-content:flex-start}.district-pin{min-height:128px}.hardware-card strong{font-size:26px}.district-metrics small{font-size:12px}.tutorial-coach .lesson-evidence{font-size:13px}}

.chapter-map{width:100%;height:105px;object-fit:cover;border-radius:7px;margin-bottom:8px}.chapter-list>a{overflow:hidden}.map-subtitle{display:block!important}

.city-life{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.city-life text{font-size:21px;text-anchor:middle;dominant-baseline:central;filter:drop-shadow(0 2px 2px #0008)}.city-life .water-boat text{font-size:24px}@media(prefers-reduced-motion:reduce){.city-life{display:none}}

/* Daily choices have real costs and consequences; quiet days remain optional. */
.daily-plan{margin:18px 0;padding:20px;border:1px solid #647762;border-radius:16px;background:#162e30}
.plan-heading{display:flex;gap:24px;justify-content:space-between;align-items:start}.plan-heading h2{font-size:23px;margin:6px 0}.plan-heading p{max-width:650px;color:#c8d5ce;margin:6px 0}.plan-heading small,.plan-card>small{font-size:11px;letter-spacing:1px;color:#d7c88e}.tomorrow-preview{display:grid;gap:6px;min-width:220px;max-width:340px}.tomorrow-preview small{letter-spacing:0;color:#afc3bd}.plan-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:16px}.plan-card{padding:16px;background:#203b3d;border-radius:12px;border:1px solid #47645d}.plan-card.attention{border-color:#cbaa62}.plan-card h3{font-size:17px;margin:8px 0}.plan-card p{font-size:13px;line-height:1.55;color:#c8d5ce}.plan-card button{font-size:13px;padding:9px 12px}
@media(max-width:700px){.plan-heading{flex-direction:column;gap:12px}.tomorrow-preview{max-width:none}.daily-plan{padding:15px}}

.share-link{display:block;width:100%;box-sizing:border-box;font-size:14px;margin:10px 0;padding:14px;border:1px solid #8ea89a;background:#0f2328;color:#f5ead0;border-radius:8px}

.last-day-result{font-size:13px;color:#bfe0bd;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #47645d}
.game-options{flex-wrap:wrap;justify-content:flex-end}.game-options .setting-toggle{min-height:44px;border-width:2px;font-size:13px;padding:9px 13px;display:inline-flex;align-items:center;gap:8px}.game-options .setting-toggle[aria-pressed=true]{background:#e6cb88;border-color:#f6dc98;color:#12282d;box-shadow:0 0 0 1px #e6cb8833}.game-options .setting-toggle[aria-pressed=false]{background:#172b32;border-color:#7d9297;color:#d2dce0}.game-options .setting-toggle b{font-size:11px;letter-spacing:.08em}.toggle-dot{width:9px;height:9px;display:inline-block;border-radius:50%;border:2px solid currentColor}.setting-toggle[aria-pressed=true] .toggle-dot{background:currentColor}.setting-toggle[aria-pressed=false] .toggle-dot{background:transparent}

.difficulty-picker{padding:22px;margin:0 0 20px;border:1px solid #526e63;border-radius:14px;background:#132b31}.difficulty-picker h2{margin:0 0 6px;font-size:24px}.difficulty-picker>p{font-size:13px;color:#c0d1ca}.difficulty-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.difficulty-cards button{display:flex;flex-direction:column;gap:9px;text-align:left;align-items:start;padding:18px;border:2px solid #506962;background:#1d353b}.difficulty-cards strong{font-size:20px}.difficulty-cards span{font-size:13px;line-height:1.5;font-weight:400}.difficulty-cards small{font-size:11px;line-height:1.4}.difficulty-cards button[aria-pressed=true]{border-color:#edcd82;background:#455039;box-shadow:inset 0 0 0 1px #edcd8233;color:#fff0bd}.setting-toggle:disabled{opacity:1;cursor:not-allowed}.game-options .setting-toggle:disabled{border-style:dashed;background:#342b35;color:#e4c0d1}
@media(max-width:800px){.difficulty-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:450px){.difficulty-cards{grid-template-columns:1fr}}

.effect-comparison{margin:12px 0;padding:10px;border:1px solid var(--line);border-radius:8px}.effect-comparison summary{cursor:pointer;font-weight:700;color:var(--gold)}.effect-comparison table{width:100%;font-size:.7rem;border-collapse:collapse}.effect-comparison th,.effect-comparison td{padding:6px 3px;text-align:left;border-bottom:1px solid var(--line)}

/* Chapter circles and labels share one stable, unobstructed hit area. */
.world-title{pointer-events:none}.world-title a,.world-title button{pointer-events:auto}.island-pin{width:130px;height:110px;border:0;border-radius:12px;background:transparent;box-shadow:none;gap:9px;z-index:4}.island-pin>span{display:flex;align-items:center;justify-content:center;width:65px;height:65px;flex-shrink:0;border:2px solid #dac58b;border-radius:50%;background:#203b31ed;box-shadow:0 5px 0 #0e2823,0 9px 18px #0008}.island-pin small{position:static;white-space:normal;text-align:center;font-size:11px;line-height:1.2;max-width:130px}.island-pin>b{right:29px;top:0}.island-pin:hover{transform:translate(-50%,-50%);background:#193d3655}.island-pin:hover>span{background:#64724a}.island-pin:focus-visible{outline:3px solid #f9d66c;outline-offset:4px}.island-pin.won>span{border-color:#b6e69b}.island-pin i{left:23px;top:0}.restart-season{border:2px solid var(--accent);color:var(--accent)}.restart-note{display:block;color:#d0dac8;font-size:11px;margin:0 0 12px}@media(max-width:800px){.island-pin{width:105px;height:100px}.island-pin>span{width:54px;height:54px}.island-pin>b{right:20px}.island-pin small{font-size:10px;padding:5px 6px}.island-pin:nth-child(1){left:31%!important;top:56%!important}.world-title{max-width:280px}}

.action-wrap{margin:8px 0}.action-wrap .action-card{margin:0;width:100%}.requirement-list{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 10px}.requirement{position:relative;padding:4px 6px;border:1px solid #526b62;border-radius:6px;font-size:10px;cursor:help;outline-offset:2px}.requirement.met{color:#b4d9bd}.requirement.missing{color:#ffd39d;border-color:#b77841;background:#493021}.requirement-help{display:none;position:absolute;bottom:calc(100% + 6px);left:0;width:210px;max-width:70vw;background:#09212b;color:#eef4e8;padding:10px;box-shadow:0 4px 16px #0008;border:1px solid #d3ba7b;border-radius:7px;font-size:12px;line-height:1.5;z-index:12;pointer-events:none}.requirement:hover .requirement-help,.requirement:focus .requirement-help{display:block}.rapp-benefit{background:#25463b;border-left:3px solid var(--accent);padding:10px!important;color:#e0ebcf!important}.action-grid .action-wrap{min-width:0}.requirement-list .requirement:nth-child(even) .requirement-help{left:auto;right:0}
/* Keep explanations inside the inspector, including chips near either edge. */
.requirement-list{position:relative}.requirement{position:static}.requirement-help,.requirement-list .requirement:nth-child(even) .requirement-help{left:0;right:0;width:auto;max-width:100%;bottom:calc(100% + 6px)}

/* Keep reset help visually and accessibly attached to its button. */
.season-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:14px}.world-title .season-actions .button{margin:0}.restart-group{display:flex;flex-direction:column;align-items:stretch;gap:6px;max-width:195px}.restart-group .restart-note{margin:0;padding:0 3px;line-height:1.45;font-size:12px;color:#e2e8dd}

/* Keep the author link readable alongside game navigation on small screens. */
@media(max-width:650px){.header-inner{flex-wrap:wrap}.header-inner nav{flex-wrap:wrap;gap:10px 18px;width:100%;justify-content:flex-end}}
.author-heading{display:flex;gap:18px;align-items:center;margin-bottom:18px}.author-heading img{width:55px;height:55px}.author-heading h2{margin:0}.about-links{display:flex;flex-wrap:wrap;gap:10px}

.resident>b{flex:0 0 106px}.resident>b small{display:inline-block;color:#c4d3c9;font-size:10px;line-height:1.4;font-weight:400;margin-top:3px}

.season-outcome{font-size:clamp(42px,7vw,64px);line-height:1.1;margin:14px 0}.season-outcome.win{color:#a8e2b4}.season-outcome.fail{color:#ffb292}.season-outcome small{font-size:.4em;vertical-align:middle;color:#cee2dd}.outcome-checks{display:grid;gap:8px;margin:18px 0}.outcome-checks>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid #517066;border-radius:8px;font-size:14px}.outcome-checks .met{color:#b5d8bf}.outcome-checks .missing{color:#ffc8a1;border-color:#b27c48;background:#5b382b44}.outcome-checks span{font-variant-numeric:tabular-nums}

.requirement.icon-only{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;font-size:16px;cursor:default}
