.construction-game{--site-ink:#21382f;--site-paper:#f4f1e7;--site-orange:#efa63c;background:var(--site-paper);color:var(--site-ink);border:1px solid #c6cbbc;border-radius:20px;overflow:hidden;font-family:Poppins,system-ui,sans-serif;box-shadow:0 18px 50px #24372b20}
.construction-game button{font-family:inherit;cursor:pointer;touch-action:manipulation}.construction-game button:focus-visible{outline:3px solid #b16e12;outline-offset:3px}.construction-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;background:#21382f;color:#f6f0dd}.construction-topbar small{font-size:9px;letter-spacing:.17em;color:#cfbf95}.construction-topbar h2{margin:4px 0 0;font-size:24px;font-weight:600;letter-spacing:-.04em}.construction-header-actions{display:flex;gap:7px;flex-wrap:wrap}.construction-header-actions button{padding:10px 13px;border:1px solid #a6b5a966;border-radius:9px;background:#ffffff10;color:#f6f0dd;font-size:11px}.construction-header-actions [data-leave]{background:#e8aa48;color:#26392e;border-color:#e8aa48}
.construction-stage{position:relative;height:clamp(520px,68dvh,800px);isolation:isolate}.construction-viewport{position:absolute;inset:0}.construction-viewport canvas{display:block;width:100%;height:100%;outline-offset:-4px;touch-action:pan-y}
.construction-mission{position:absolute;left:18px;top:18px;width:205px;padding:18px;border:1px solid #ffffffb3;border-radius:15px;background:#f7f4e8ee;box-shadow:0 8px 25px #3e4a2a18;backdrop-filter:blur(8px)}.construction-tag{font-size:8px;letter-spacing:.12em;color:#7e733e}.construction-mission h3{margin:8px 0;font-size:19px;line-height:1.3;letter-spacing:-.04em}.construction-mission p{margin:0 0 16px;font-size:10px;line-height:1.7;color:#6a7460}.construction-progress{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.construction-progress strong{font-size:21px}.construction-progress span{font-size:8px;color:#66765b}.construction-mission progress{width:100%;height:5px;accent-color:#ca8a2e;border:none;margin:10px 0 16px}.construction-score{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #d7d9c7}.construction-score span{font-size:8px;letter-spacing:.12em}.construction-score b{font-size:20px;font-variant-numeric:tabular-nums}.construction-mission canvas{display:block;width:132px;height:132px;max-width:100%;margin:14px auto 0;border-radius:9px}.construction-map-note{display:block;margin-top:8px;color:#73806b;font-size:8px;line-height:1.6}
.construction-status{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);max-width:calc(100% - 210px);width:max-content;padding:10px 16px;border:1px solid #c7cbb2;border-radius:10px;background:#f9f6e9ee;color:#3b4a35;font-size:10px;text-align:center;pointer-events:none}.construction-speed{position:absolute;right:18px;bottom:16px;display:flex;align-items:baseline;gap:5px;padding:8px 15px;border:1px solid #ffffffaa;border-radius:11px;background:#21382fe6;color:#faf2da}.construction-speed strong{font-size:27px;font-variant-numeric:tabular-nums}.construction-speed span{font-size:9px;color:#c9d0bf}
.construction-bottom{padding:16px 20px;background:#f4f1e7;border-top:1px solid #d8d7c5;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.construction-garage{display:flex;gap:8px}.construction-garage button{min-width:110px;padding:10px 13px;text-align:left;border:1px solid #c8ccbc;border-radius:10px;background:#fffdf6;color:#53634d}.construction-garage button small{display:block;font-size:7px;letter-spacing:.12em}.construction-garage button strong{display:block;margin-top:4px;font-size:12px;font-weight:600}.construction-garage button[aria-pressed=true]{border-color:#b17e28;background:#f4d898;color:#3c432c;box-shadow:inset 0 0 0 1px #b17e2833}.construction-help{text-align:right;font-size:9px;line-height:1.9;color:#6f775e}.construction-help div{font-size:8px}.construction-touch{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px}.construction-steering,.construction-drive{display:flex;gap:7px}.construction-touch button{display:grid;place-items:center;min-width:48px;min-height:44px;border:1px solid #bcc7b1;border-bottom-width:3px;border-radius:11px;background:#fffdf5;color:#354c38;font-size:18px;touch-action:none;user-select:none;-webkit-user-select:none}.construction-drive button[data-control=brake]{font-size:10px}.construction-touch .construction-attack{padding:0 20px;background:#e7a841;border-color:#a97629;font-size:12px;font-weight:600}.construction-touch button.held{transform:translateY(2px);background:#d7dfc8;border-bottom-width:1px}
.construction-win{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:min(90%,380px);padding:30px;border-radius:18px;background:#fffaf0;box-shadow:0 20px 80px #1b2e3680;text-align:center;border:1px solid #d2aa63;z-index:4}.construction-win[hidden]{display:none}.construction-win>span{color:#98723c;font-size:10px;letter-spacing:.15em}.construction-win h3{font-size:26px;margin:12px 0;color:#2c4735}.construction-win p{font-size:12px;color:#6f795e}.construction-win button{padding:12px 20px;border:1px solid #bd832e;border-radius:10px;background:#efb956;color:#34412c;font-weight:600}
.hotspot.construction{left:80%;top:8%}.hotspot.construction>span{background:#d99c3b;color:#fff}
@media(max-width:900px){.construction-bottom{grid-template-columns:1fr}.construction-help{text-align:left}.construction-mission{width:168px;padding:13px}.construction-mission h3{font-size:16px}.construction-garage button{flex:1;min-width:0}.construction-garage{width:100%}}
@media(max-width:600px){.construction-topbar{padding:14px;align-items:flex-start;gap:10px}.construction-topbar small{font-size:7px}.construction-topbar h2{font-size:18px}.construction-header-actions{justify-content:flex-end;max-width:145px;gap:5px}.construction-header-actions button{padding:7px 9px;font-size:9px}.construction-header-actions [data-leave]{width:100%}.construction-stage{height:540px}.construction-mission{top:10px;left:10px;width:130px;padding:10px}.construction-mission h3,.construction-mission p,.construction-map-note{display:none}.construction-tag{font-size:6px}.construction-progress{margin-top:7px}.construction-progress strong{font-size:18px}.construction-progress span{font-size:6px}.construction-mission progress{margin:6px 0}.construction-score{padding-top:5px}.construction-score span{font-size:6px}.construction-score b{font-size:16px}.construction-mission canvas{width:78px;height:78px;margin:7px auto 0}.construction-status{bottom:13px;left:10px;transform:none;max-width:calc(100% - 100px);font-size:8px;padding:8px 10px;text-align:left}.construction-speed{right:10px;bottom:13px;padding:6px 10px}.construction-speed strong{font-size:23px}.construction-bottom{padding:12px;gap:10px}.construction-garage{gap:5px}.construction-garage button{padding:8px;font-size:10px}.construction-garage button strong{font-size:10px}.construction-garage button small{font-size:6px}.construction-help{font-size:8px}.construction-help div{display:none}.construction-touch{gap:8px}.construction-touch button{min-width:40px;min-height:44px}.construction-steering,.construction-drive{gap:4px}.construction-touch .construction-attack{padding:0 10px;font-size:10px}}

/* Redevelopment workflow: protected campus, material depot, and buildable plots. */
.construction-phase-track{display:flex;gap:6px;align-items:center}.construction-phase-track span{padding:7px 10px;border:1px solid #9aab8b40;border-radius:20px;color:#a3b0a3;font-size:9px;white-space:nowrap}.construction-phase-track .active{border-color:#e8b353;background:#e5b251;color:#263c2e}
.construction-mission{max-height:calc(100% - 32px);overflow:auto;padding:14px}.construction-mission h3{font-size:18px;margin:6px 0}.construction-mission p{margin-bottom:10px;font-size:9px}.construction-mission progress{margin:7px 0 10px}.construction-mission canvas{width:110px;height:110px;margin-top:10px}.construction-map-note{font-size:7px}
.construction-materials{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid #d7d9c7}.construction-materials>span{font-size:8px;letter-spacing:.1em}.construction-materials>strong{font-size:18px}.construction-materials button{grid-column:1/-1;padding:7px;border:1px solid #b9bca3;border-radius:7px;background:#e5e7d3;color:#45583a;font-size:9px}.construction-game button:disabled{opacity:.46;cursor:default}
.construction-projects{position:absolute;right:16px;top:18px;width:195px;padding:14px;border:1px solid #ffffffb3;border-radius:15px;background:#f7f4e8ee;box-shadow:0 8px 25px #3e4a2a18;backdrop-filter:blur(8px)}.construction-projects>small{font-size:7px;letter-spacing:.12em;color:#75836c}.construction-projects>h3{font-size:15px;margin:7px 0 12px;line-height:1.4}.construction-project-list{display:grid;gap:7px}.construction-project-list button{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px;padding:9px;text-align:left;border:1px solid #d5d9cc;border-radius:10px;background:#fffdf5;color:#485b47}.construction-project-list button[aria-pressed=true]{border-color:#6c9eb1;background:#e3f0ee;box-shadow:inset 0 0 0 1px #6c9eb126}.construction-project-list button>span{font-size:11px;font-weight:600}.construction-project-list button>small{font-size:7px}.construction-project-list progress{grid-column:1/-1;width:100%;height:4px;accent-color:#5192a2;margin:3px 0}.construction-project-list em{grid-column:1/-1;font-style:normal;font-size:7px;color:#829078}.construction-projects>p{font-size:8px;line-height:1.6;color:#6b7a62;margin:10px 0}.construction-projects>[data-build-action]{width:100%;padding:10px 6px;border:1px solid #5d8e9b;border-radius:9px;background:#4a7c89;color:#fff;font-size:10px;touch-action:none;user-select:none}
.construction-waypoint{position:absolute;bottom:64px;left:50%;transform:translateX(-50%);border:1px solid #80a4b155;border-radius:20px;background:#203d44e8;padding:7px 13px;color:#e9f2e4;font-size:9px;pointer-events:none}
.construction-bottom{grid-template-columns:minmax(380px,1fr) minmax(230px,.8fr)}.construction-garage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.construction-garage button{min-width:0;padding:9px 11px}.construction-garage button strong{font-size:11px}.construction-touch .construction-build{padding:0 16px;border-color:#4f8290;background:#578b97;color:#fff;font-size:12px;font-weight:600}
@media(max-width:1000px){.construction-phase-track{display:none}.construction-bottom{grid-template-columns:1fr}.construction-projects{width:175px;padding:12px}.construction-mission{width:168px}}
@media(max-width:600px){.construction-stage{height:600px}.construction-mission{left:9px;top:10px;width:126px;padding:9px;max-height:290px}.construction-mission h3,.construction-mission p{display:none}.construction-mission canvas{width:65px;height:65px;margin-top:7px}.construction-materials{margin-top:6px;padding-top:6px}.construction-materials>span{font-size:6px}.construction-materials>strong{font-size:15px}.construction-materials button{padding:5px;font-size:7px}.construction-projects{right:9px;top:10px;width:143px;padding:9px}.construction-projects>small{font-size:6px}.construction-projects>h3{font-size:11px;margin:5px 0 8px}.construction-project-list{gap:5px}.construction-project-list button{padding:6px}.construction-project-list button>span{font-size:9px}.construction-project-list button>small{font-size:6px}.construction-project-list em{display:none}.construction-projects>p{font-size:7px;margin:8px 0}.construction-projects>[data-build-action]{padding:8px 4px;font-size:8px}.construction-garage button{padding:8px 6px}.construction-garage button strong{font-size:10px}.construction-waypoint{bottom:67px;font-size:8px}.construction-touch{display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px;align-items:end}.construction-steering{display:flex;gap:4px}.construction-drive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.construction-drive .construction-attack{grid-column:1/3}.construction-touch .construction-build{padding:0 5px;font-size:10px}.construction-touch button{min-width:0;min-height:42px}.construction-steering button{width:40px}}

/* Area selection before the 3D renderer is allocated. */
.construction-area-picker{padding:32px;background:#eff2e9;border:1px solid #ccd4c7;border-radius:20px;color:#294334;font-family:Poppins,system-ui,sans-serif}.construction-area-picker>header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.construction-area-picker>header span,.construction-area-description>span{color:#77856a;font-size:9px;letter-spacing:.15em}.construction-area-picker h2{margin:8px 0;font-size:32px;font-weight:600;letter-spacing:-.04em}.construction-area-picker header p{margin:0;font-size:12px;line-height:1.7;color:#697b61}.construction-area-picker button{font-family:inherit;cursor:pointer}.construction-area-picker [data-area-back]{padding:10px 15px;background:transparent;border:1px solid #c2cbbb;border-radius:10px;color:#4e6548;white-space:nowrap}.construction-area-options{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}.construction-area-card{overflow:hidden;border:1px solid #c8d1c1;border-radius:17px;background:#fffef7;box-shadow:0 9px 25px #273e2c0a}.construction-area-preview{position:relative;height:170px;overflow:hidden;background:linear-gradient(170deg,#d8ddc9 0 45%,#c7ad79 45% 100%);isolation:isolate}.area-preview-road{position:absolute;width:140%;height:35px;left:-10%;bottom:30px;transform:rotate(-15deg);background:#888b77;border-top:1px solid #d9d9b8;border-bottom:1px solid #d9d9b8}.area-preview-crane{position:absolute;right:30%;bottom:40px;width:10px;height:100px;background:repeating-linear-gradient(45deg,#9c793b 0 5px,#dca94d 5px 12px);box-shadow:inset 2px 0 #e1b765}.area-preview-crane:before{content:'';position:absolute;width:110px;height:7px;left:-50px;top:0;background:#bd913e}.area-preview-crane:after{content:'';position:absolute;height:55px;width:1px;left:-36px;top:7px;background:#69705b}.area-yard .construction-area-preview>i{position:absolute;bottom:25px;width:36px;height:30px;border:3px solid #a58c58;background:#bc9d61;transform:skewY(-12deg)}.area-yard .construction-area-preview>i:nth-of-type(1){left:22%}.area-yard .construction-area-preview>i:nth-of-type(2){left:33%;bottom:38px}.area-yard .construction-area-preview>i:nth-of-type(3){left:17%;bottom:59px}
.area-city .construction-area-preview{background:linear-gradient(170deg,#bed5df 0 48%,#a7b9af 48%)}.area-city .area-preview-road{background:#52646a;border-color:#cad4c9}.area-city .construction-area-preview>i{position:absolute;bottom:50px;width:42px;height:78px;background:repeating-linear-gradient(0deg,transparent 0 10px,#c3dfe4 10px 15px),repeating-linear-gradient(90deg,#66818d 0 8px,#91a8ab 8px 15px);border-right:9px solid #536f7a;box-shadow:4px 5px 0 #364f4f20;transform:skewY(-8deg)}.area-city .construction-area-preview>i:nth-of-type(1){left:12%;height:53px}.area-city .construction-area-preview>i:nth-of-type(2){left:26%;height:100px;bottom:58px}.area-city .construction-area-preview>i:nth-of-type(3){left:43%;height:65px;bottom:66px}.area-city .construction-area-preview>i:nth-of-type(4){left:59%;height:120px;bottom:37px}.area-city .construction-area-preview>i:nth-of-type(5){left:75%;height:80px;bottom:25px}.area-city .construction-area-preview>i:nth-of-type(6){left:88%;height:45px;bottom:20px}
.construction-area-description{padding:24px}.construction-area-description h3{margin:8px 0 10px;font-size:23px;font-weight:600;letter-spacing:-.03em}.construction-area-description p{min-height:44px;margin:0;color:#718169;font-size:11px;line-height:1.8}.construction-area-description ul{padding-left:17px;color:#64785d;font-size:10px;line-height:1.9;margin:16px 0 20px}.construction-area-description button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px 15px;border:1px solid #b08c40;border-radius:10px;background:#e6b757;color:#384b30;font-size:11px;font-weight:600}.area-city .construction-area-description button{background:#3c6976;color:#eff6ee;border-color:#3c6976}.construction-area-description button>span{margin-left:auto}.construction-area-picker button:focus-visible{outline:3px solid #648da1;outline-offset:3px}.construction-area-note{margin:22px 0 0;font-size:10px;line-height:1.7;color:#7a856b}
.construction-fullscreen{display:grid;place-items:center;min-width:40px;min-height:40px;padding:8px!important}.construction-fullscreen .mdi{font-size:22px}.construction-vehicle-select{display:none}
/* The class follows native fullscreenchange and the WebView focus fallback. */
.construction-game.is-fullscreen{display:flex;flex-direction:column;width:100vw;height:100dvh;max-width:none;margin:0;border:0;border-radius:0;overflow:hidden;box-sizing:border-box;background:#eff2e9}.construction-game.is-focus-mode{position:fixed;inset:0;z-index:100000}.construction-game.is-fullscreen .construction-topbar{flex:0 0 auto;padding:10px 18px}.construction-game.is-fullscreen .construction-topbar h2{font-size:20px}.construction-game.is-fullscreen .construction-stage{flex:1 1 auto;min-height:180px;height:auto}.construction-game.is-fullscreen .construction-bottom{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:10px 16px}.construction-game.is-fullscreen .construction-garage,.construction-game.is-fullscreen .construction-help{display:none}.construction-game.is-fullscreen .construction-vehicle-select{display:flex;align-items:center;gap:8px;flex:0 1 230px;font-size:9px;color:#66785e}.construction-vehicle-select select{max-width:170px;min-width:0;padding:9px;border:1px solid #c2ceba;border-radius:9px;background:#fffdf5;color:#364f38;font:inherit;font-size:11px}.construction-game.is-fullscreen .construction-touch{flex:1;grid-column:auto}.construction-game.is-fullscreen .construction-mission,.construction-game.is-fullscreen .construction-projects{max-height:calc(100% - 90px);overflow:auto}
@media(max-width:600px){.construction-area-picker{padding:20px 14px}.construction-area-picker>header{display:block}.construction-area-picker h2{font-size:27px}.construction-area-picker header p{font-size:10px}.construction-area-picker [data-area-back]{margin-top:14px;padding:8px 12px;font-size:10px}.construction-area-options{grid-template-columns:1fr;gap:16px;margin-top:22px}.construction-area-preview{height:140px}.construction-area-description{padding:18px}.construction-area-description h3{font-size:21px}.construction-area-description p{min-height:0}.construction-fullscreen{min-width:32px;min-height:32px}.construction-fullscreen .mdi{font-size:20px}.construction-header-actions [data-choose-area]{font-size:8px}.construction-game.is-fullscreen .construction-topbar{padding:8px 10px}.construction-game.is-fullscreen .construction-topbar h2{font-size:15px}.construction-game.is-fullscreen .construction-bottom{display:grid;grid-template-columns:1fr;padding:8px 10px;gap:6px}.construction-game.is-fullscreen .construction-vehicle-select{justify-content:space-between}.construction-game.is-fullscreen .construction-vehicle-select select{max-width:none;flex:1}.construction-game.is-fullscreen .construction-touch{grid-column:1;grid-template-columns:84px minmax(0,1fr)}.construction-game.is-fullscreen .construction-mission{width:118px}.construction-game.is-fullscreen .construction-projects{width:135px}.construction-game.is-fullscreen .construction-topbar small{font-size:6px}}
@media(max-height:700px){.construction-game.is-fullscreen .construction-mission canvas,.construction-game.is-fullscreen .construction-map-note,.construction-game.is-fullscreen .construction-mission h3,.construction-game.is-fullscreen .construction-mission p,.construction-game.is-fullscreen .construction-projects>h3{display:none}.construction-game.is-fullscreen .construction-project-list button{padding:6px}.construction-game.is-fullscreen .construction-project-list em{display:none}.construction-game.is-fullscreen .construction-projects>p{margin:6px 0;font-size:7px}.construction-game.is-fullscreen .construction-topbar small{display:none}}

/* Camera toolbar uses the same controls in either area and in fullscreen. */
.construction-camera-controls{position:absolute;z-index:3;top:16px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);padding:9px 10px 7px;border:1px solid #fffaf0b8;border-radius:13px;background:#f4f3e9ed;box-shadow:0 7px 24px #263c2e22;backdrop-filter:blur(8px);color:#3b594b;user-select:none;-webkit-user-select:none}.construction-camera-caption{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:6px}.construction-camera-caption>span{font-size:7px;font-weight:600;letter-spacing:.12em}.construction-camera-caption output{font-size:9px;color:#70836a;font-variant-numeric:tabular-nums}.construction-camera-buttons{display:flex;gap:4px;align-items:center}.construction-camera-buttons button{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;padding:0;border:1px solid #c5d0bf;border-radius:8px;background:#fffdf4;color:#416352;touch-action:manipulation}.construction-camera-buttons .mdi{font-size:19px}.construction-camera-buttons button:hover:not(:disabled){background:#dce8d8;border-color:#9bb298}.construction-camera-buttons button:active:not(:disabled){transform:translateY(1px)}.construction-camera-buttons>span{width:1px;height:19px;background:#c9d3c1;margin:0 2px}.construction-camera-controls>small{display:block;margin-top:6px;text-align:center;font-size:7px;color:#7c896e}.construction-viewport canvas{touch-action:none;cursor:grab}.construction-viewport canvas.is-orbiting{cursor:grabbing}
@media(max-width:800px){.construction-camera-controls{top:auto;bottom:110px;padding:7px 8px 6px}.construction-camera-buttons button{width:30px;height:30px}.construction-camera-caption{margin-bottom:5px}.construction-camera-controls>small{font-size:6px}.construction-camera-buttons>span{margin:0 1px}.construction-camera-buttons .mdi{font-size:18px}}
@media(max-width:360px){.construction-camera-buttons{gap:3px}.construction-camera-buttons button{width:28px;height:30px}.construction-camera-buttons>span{margin:0}.construction-camera-caption output{font-size:8px}}

/* Relay mission: explicit work stages and a compact cargo manifest. */
.construction-mission-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 24px}.construction-mission-options label{display:flex;align-items:center;gap:12px;padding:18px;border:1px solid #cbd5e1;border-radius:16px;background:#fff;cursor:pointer}.construction-mission-options label:has(input:checked){border-color:#0f766e;background:#ecfdf5;box-shadow:0 0 0 2px #0f766e22}.construction-mission-options input{accent-color:#0f766e;width:18px;height:18px}.construction-mission-options strong,.construction-mission-options small{display:block}.construction-mission-options small{margin-top:5px;color:#64748b;line-height:1.5}.construction-game [hidden]{display:none!important}.construction-relay [data-supply]{display:none!important}.construction-relay-steps{display:grid;gap:6px;margin:12px 0}.construction-relay-steps>div{display:flex;align-items:center;gap:7px;padding:8px;border-radius:9px;background:#ffffff08;border:1px solid #ffffff12}.construction-relay-steps>div.active{background:#fbbf241a;border-color:#fbbf24}.construction-relay-steps>div.done{background:#10b98122;border-color:#10b98155}.construction-relay-steps b{display:grid;place-items:center;border-radius:50%;width:21px;height:21px;background:#ffffff15;font-size:10px}.construction-relay-steps span{flex:1}.construction-relay-steps strong,.construction-relay-steps small{display:block;font-size:10px}.construction-relay-steps small{opacity:.65;font-size:9px;margin-top:3px}.construction-relay-steps em{font-style:normal;font-size:10px;color:#fcd34d}.construction-relay-manifest{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}.construction-relay-manifest span{background:#ffffff08;padding:8px;border-radius:8px;font-size:9px}.construction-relay-manifest b{display:block;font-size:15px;color:#fcd34d;margin-top:4px}.construction-relay [data-relay-hint]{font-size:11px;line-height:1.6;color:#cbd5e1}.construction-relay [data-relay-action]{width:100%;min-height:40px;border:0;border-radius:9px;background:#fbbf24;color:#17202a;font-weight:800;padding:8px;cursor:pointer}.construction-relay [data-relay-action]:disabled{opacity:.5}.construction-relay .construction-projects{overflow:auto}.construction-relay .construction-garage{grid-template-columns:repeat(3,1fr)}
@media(max-width:600px){.construction-mission-options{grid-template-columns:1fr}.construction-mission-options label{padding:13px}.construction-relay-steps>div{padding:5px;gap:4px}.construction-relay-manifest span{padding:5px}.construction-relay [data-relay-hint]{font-size:10px}}
.construction-relay-steps>div{background:#eef0e7;border-color:#dce1d3}.construction-relay-steps>div.is-done{background:#dff2e5;border-color:#95c9a6}.construction-relay-steps b{background:#dfe6d9}.construction-relay-steps em{color:#7c5310}.construction-relay-manifest span{background:#e8eddf}.construction-relay-manifest b{color:#315a45}.construction-relay [data-relay-hint]{color:#52604e}

/* Independent information drawers leave only a compact icon when hidden. */
.construction-info-panel{padding-top:42px!important}
.construction-info-close,.construction-info-open{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #bcc9b5;border-radius:11px;background:#fffdf4;color:#365344;cursor:pointer;box-shadow:0 4px 12px #203b2512;touch-action:manipulation}
.construction-info-close{position:absolute;right:8px;top:8px;width:27px;height:27px;border-radius:8px;box-shadow:none}
.construction-info-close .mdi{font-size:20px}.construction-info-open .mdi{font-size:23px}
.construction-info-open{position:absolute;top:18px;z-index:5;width:42px;height:42px;background:#fffdf4ed;backdrop-filter:blur(8px)}
.construction-info-open--left{left:18px}.construction-info-open--right{right:16px}
.construction-info-close:hover,.construction-info-open:hover{background:#dfeada;border-color:#718e71}
.construction-info-close:focus-visible,.construction-info-open:focus-visible{outline:3px solid #dca53f;outline-offset:3px}
.construction-status{display:none}
@media(max-width:600px){.construction-info-open{top:10px;width:38px;height:38px}.construction-info-open--left{left:9px}.construction-info-open--right{right:9px}.construction-info-panel{padding-top:39px!important}}
.construction-garage{flex-wrap:wrap;max-width:100%}.construction-garage button{flex:1 1 110px}.construction-bottom{grid-template-columns:minmax(0,1fr) auto}
@media(max-width:1000px){.construction-bottom{grid-template-columns:minmax(0,1fr)}.construction-garage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.construction-garage button{min-width:0}}
/* A single selector keeps the expanded fleet from covering the map. */
.construction-game .construction-garage{display:none}.construction-game .construction-vehicle-select{display:flex;align-items:center;gap:10px;font-size:10px;color:#52664e}.construction-game .construction-vehicle-select select{max-width:230px;width:100%}
.construction-waypoint.construction-build-feedback{max-width:min(440px,calc(100% - 110px));white-space:normal;text-align:center;border:1px solid #c4dbbc;background:#f7f9edf2;color:#314f3b;padding:10px 14px;font-size:11px;line-height:1.5;bottom:25px}
@media(max-width:600px){.construction-waypoint.construction-build-feedback{font-size:9px;bottom:70px;max-width:calc(100% - 32px)}}
.construction-viewport canvas{touch-action:none}

/* Project setup wizard */
.construction-wizard{background:linear-gradient(145deg,#f5f6ee,#e9eee3);padding:36px;overflow:hidden}.construction-wizard [hidden]{display:none!important}.construction-wizard>header{margin-bottom:30px}.construction-wizard>header h2{font-size:36px;line-height:1.18;letter-spacing:-.045em;margin:12px 0}.construction-wizard [data-exit]{display:flex;gap:6px;align-items:center;padding:10px 14px;border:1px solid #c2ccbc;border-radius:10px;background:#ffffff70;color:#45604b;font-size:11px}.construction-wizard [data-exit] .mdi{font-size:18px}.construction-wizard-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:6px;background:#dce4d5;border-radius:15px;gap:6px;margin-bottom:30px}.construction-wizard-steps button{display:flex;gap:11px;align-items:center;padding:13px 16px;border:0;background:transparent;border-radius:11px;text-align:left;color:#65785e;font-size:12px;font-weight:600}.construction-wizard-steps button:disabled{cursor:default;opacity:.65}.construction-wizard-steps b{display:grid;place-items:center;width:31px;height:31px;border:1px solid #b6c3ac;border-radius:50%;font-size:12px;flex-shrink:0}.construction-wizard-steps small{display:block;font-size:7px;letter-spacing:.12em;font-weight:500;margin-bottom:3px}.construction-wizard-steps .mdi{margin-left:auto}.construction-wizard-steps .is-active{background:#254b3a;color:#fffdf1;box-shadow:0 4px 9px #22403215}.construction-wizard-steps .is-active b{background:#e9bb62;color:#294333;border-color:#e9bb62}.construction-wizard-steps .is-complete b{background:#b7d2b5;border-color:#b7d2b5}.construction-wizard-content{min-height:340px}.construction-wizard-heading>span{font-size:8px;letter-spacing:.15em;color:#728667}.construction-wizard-heading h3{font-size:24px;letter-spacing:-.03em;margin:9px 0;color:#294334;font-weight:600}.construction-wizard-heading h3:focus{outline:none}.construction-wizard-heading p{font-size:11px;color:#6c7b65;margin:0 0 22px}.construction-wizard fieldset{border:0;padding:0;margin:0;min-width:0}.construction-wizard-missions{display:grid;grid-template-columns:1fr 1fr;gap:18px}.construction-wizard-choice,.construction-wizard-area{position:relative;cursor:pointer;display:block;transition:border-color .15s,box-shadow .15s,transform .15s}.construction-wizard-choice{background:#fffef8;border:1px solid #cbd4c3;border-radius:16px;padding:24px}.construction-wizard-choice:hover,.construction-wizard-area:hover{transform:translateY(-2px);border-color:#7e9c79}.construction-wizard-choice:has(input:checked),.construction-wizard-area:has(input:checked){border-color:#3b7454;box-shadow:0 0 0 2px #3b745422;background:#f8fcf2}.construction-wizard-choice input,.construction-wizard-area input{position:absolute;opacity:0;width:1px;height:1px}.construction-wizard-choice:focus-within,.construction-wizard-area:focus-within{outline:3px solid #c89b46;outline-offset:4px}.construction-wizard-choice-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.construction-wizard-choice-top>.mdi{font-size:30px;color:#507755;background:#e8efdf;width:54px;height:54px;display:grid;place-items:center;border-radius:14px}.construction-wizard-check{display:grid;place-items:center;width:23px;height:23px;border:1px solid #c1cdb9;color:transparent;border-radius:50%;font-size:12px}.construction-wizard label:has(input:checked) .construction-wizard-check{background:#315f44;border-color:#315f44;color:white}.construction-wizard-choice>small{font-size:8px;letter-spacing:.12em;color:#7e8b70}.construction-wizard h4{font-size:20px;font-weight:600;letter-spacing:-.025em;margin:9px 0}.construction-wizard-choice p{color:#708069;font-size:11px;line-height:1.8;margin:0 0 18px}.construction-wizard-chip{display:inline-block;border:1px solid #d3dcc7;border-radius:20px;padding:5px 10px;font-size:9px;color:#56704e}.construction-wizard .construction-area-options{gap:18px}.construction-wizard-area h4{display:flex;justify-content:space-between;align-items:center}.construction-wizard-area .construction-area-description{padding:20px}.construction-wizard-area .construction-area-preview{height:155px}.construction-wizard-area .construction-area-description p{min-height:0}.construction-wizard-review{display:grid;grid-template-columns:1fr 1.1fr;border:1px solid #ccd6c3;border-radius:17px;overflow:hidden;background:#fffef7}.construction-wizard-review>[data-review-preview]{min-height:290px;overflow:hidden}.construction-wizard-review .construction-area-preview{height:100%;min-height:290px}.construction-wizard-summary{padding:25px}.construction-wizard-summary>small{font-size:8px;letter-spacing:.14em;color:#7c8a70}.construction-wizard-summary-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e2e7da}.construction-wizard-summary-row small{display:block;font-size:7px;color:#87937c;letter-spacing:.1em;margin-bottom:4px}.construction-wizard-summary-row strong{font-size:12px;font-weight:500}.construction-wizard-summary-row button{background:none;border:0;color:#4d7857;text-decoration:underline;text-underline-offset:3px;font-size:10px}.construction-wizard-summary p{font-size:11px;color:#607457;line-height:1.7;margin:16px 0 10px}.construction-wizard-summary>span{font-size:9px;color:#7f8c73}.construction-wizard-note{font-size:10px;color:#7d8a70;line-height:1.7}.construction-wizard-footer{display:flex;align-items:center;gap:18px;border-top:1px solid #ced8c6;padding-top:23px;margin-top:26px}.construction-wizard-footer button{display:flex;align-items:center;gap:9px;border:1px solid #c2ccba;border-radius:10px;padding:12px 20px;font-size:11px;background:#f9fbf3;color:#49633f;font-weight:600;min-height:44px}.construction-wizard-footer [data-next]{margin-left:auto;background:#e7b755;border-color:#d4a043;color:#34452c;min-width:140px;justify-content:center}.construction-wizard-footer [data-next]:disabled{background:#d7dfcf;border-color:#cbd5c2;color:#8b9981;cursor:default}.construction-wizard-footer [data-step-status]{font-size:10px;color:#7c8a70}.construction-wizard-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.construction-wizard{padding:22px 15px}.construction-wizard>header{position:relative;padding-top:40px;margin-bottom:20px}.construction-wizard>header h2{font-size:30px}.construction-wizard [data-exit]{position:absolute;top:0;right:0;padding:6px 10px;font-size:9px}.construction-wizard-steps{gap:3px;padding:4px;margin-bottom:22px}.construction-wizard-steps button{padding:10px 6px;gap:6px;font-size:9px}.construction-wizard-steps b{width:23px;height:23px;font-size:10px}.construction-wizard-steps small,.construction-wizard-steps .mdi{display:none}.construction-wizard-heading h3{font-size:20px;line-height:1.4}.construction-wizard-missions{grid-template-columns:1fr;gap:12px}.construction-wizard-choice{padding:18px}.construction-wizard-choice-top{margin-bottom:12px}.construction-wizard-choice-top>.mdi{width:42px;height:42px;font-size:25px}.construction-wizard h4{font-size:18px}.construction-wizard-content{min-height:0}.construction-wizard-review{grid-template-columns:1fr}.construction-wizard-review>[data-review-preview],.construction-wizard-review .construction-area-preview{height:150px;min-height:150px}.construction-wizard-summary{padding:20px}.construction-wizard-footer{gap:8px;flex-wrap:wrap}.construction-wizard-footer button{padding:10px 12px;font-size:10px}.construction-wizard-footer [data-next]{min-width:105px}.construction-wizard-footer [data-step-status]{font-size:8px}.construction-wizard .construction-area-options{margin-top:0}}
@media(prefers-reduced-motion:reduce){.construction-wizard-choice,.construction-wizard-area{transition:none}}
.construction-wizard-footer{position:sticky;bottom:0;z-index:2;background:#edf1e6;padding-bottom:12px}.construction-wizard>header h2{font-size:32px}
.construction-header-actions button>.mdi{display:none}.construction-camera-hide,.construction-camera-open{display:grid;place-items:center;padding:0;border:1px solid #c5d0bf;border-radius:9px;background:#fffdf4;color:#416352;cursor:pointer;touch-action:manipulation}.construction-camera-hide{width:26px;height:26px;margin:-3px -3px 0 0}.construction-camera-hide .mdi{font-size:18px}.construction-camera-open{position:absolute;z-index:4;top:18px;left:50%;transform:translateX(-50%);width:42px;height:42px;background:#fffdf4ed;box-shadow:0 4px 14px #203b2520;backdrop-filter:blur(8px)}.construction-camera-open .mdi{font-size:23px}.construction-camera-hide:hover,.construction-camera-open:hover{background:#deead8}
@media(max-width:700px){.construction-game .construction-header-actions{display:flex;flex-wrap:nowrap;max-width:none;gap:5px}.construction-game .construction-header-actions button{display:grid;place-items:center;padding:0;width:35px;height:35px;min-width:35px;min-height:35px;border-radius:10px}.construction-game .construction-header-actions button>span{display:none}.construction-game .construction-header-actions button>.mdi{display:block;font-size:21px}.construction-game .construction-header-actions [data-leave]{width:35px}.construction-game .construction-topbar{align-items:center;gap:8px;padding:12px 10px}.construction-game .construction-topbar small{display:none}.construction-game .construction-topbar h2{font-size:15px;margin:0}.construction-camera-open{top:10px;width:38px;height:38px}}
@media(max-width:380px){.construction-game .construction-header-actions{gap:3px}.construction-game .construction-header-actions button,.construction-game .construction-header-actions [data-leave]{width:31px;height:34px;min-width:31px;min-height:34px}.construction-game .construction-topbar h2{font-size:12px}}
/* Forest site preview and its four-stage work tracker. */
.area-forest .construction-area-preview{background:linear-gradient(170deg,#cbdcc5 0 45%,#6f8450 45%)}
.area-forest .area-preview-road{background:#927a50;border-color:#b49a6c}
.area-forest .construction-area-preview>i{position:absolute;bottom:38px;width:13px;height:48px;background:#715234;border-radius:3px;left:15%}
.area-forest .construction-area-preview>i:before{content:'';position:absolute;left:-20px;top:-27px;width:54px;height:64px;border-radius:50%;background:#365f38;box-shadow:7px 3px 0 #284b30}
.area-forest .construction-area-preview>i:nth-of-type(2){left:30%;bottom:55px;transform:scale(.85)}
.area-forest .construction-area-preview>i:nth-of-type(3){left:45%;bottom:44px;transform:scale(1.1)}
.area-forest .construction-area-preview>i:nth-of-type(4){left:60%;bottom:30px}
.area-forest .construction-area-preview>i:nth-of-type(5){left:75%;bottom:52px;transform:scale(.8)}
.area-forest .construction-area-preview>i:nth-of-type(6){left:88%;bottom:20px;transform:scale(.9)}
.construction-game[data-area="forest"] .construction-phase-track{flex-wrap:wrap}

.construction-fullscreen [data-fullscreen-icon]{display:block;width:22px;height:22px;flex-shrink:0}
@media(max-width:600px){.construction-fullscreen [data-fullscreen-icon]{width:20px;height:20px}}
.construction-kalimantan .construction-projects{width:235px}.kalimantan-tanks{display:grid;gap:7px;margin-top:14px}.kalimantan-tanks button{display:block;width:100%;padding:10px;border:1px solid #bfd0c8;border-radius:10px;background:#f8faf1;color:#294334;text-align:left;cursor:pointer}.kalimantan-tanks button[aria-pressed="true"]{background:#d7edf0;border-color:#438da0}.kalimantan-tanks button>span{display:flex;justify-content:space-between;gap:8px;font-size:10px}.kalimantan-tanks b{font-size:9px;font-variant-numeric:tabular-nums}.kalimantan-tanks progress{width:100%;height:5px;margin:8px 0 4px;accent-color:#278fa8}.kalimantan-tanks small,.kalimantan-team-note{font-size:8px;color:#637c72}.kalimantan-spray{width:100%;padding:12px;margin-top:12px;border:0;border-radius:10px;background:#276e83;color:white;font:inherit;cursor:pointer;touch-action:none}.construction-kalimantan [data-rescue-hint]{font-size:10px;line-height:1.7}.construction-kalimantan .construction-materials strong{font-size:13px}.construction-kalimantan [data-control="supply"]{touch-action:none}@media(max-width:600px){.construction-kalimantan .construction-projects{width:155px}.kalimantan-tanks button{padding:7px}.kalimantan-tanks button>span{font-size:8px;flex-wrap:wrap}}
.construction-kalimantan .construction-projects{max-height:calc(100% - 100px);overflow-y:auto;overscroll-behavior:contain}
.kalimantan-objectives{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.kalimantan-objectives>div{padding:9px;border-radius:9px;background:#e4ece0}.kalimantan-objectives span{display:block;font-size:8px;color:#627765}.kalimantan-objectives strong{display:block;margin-top:4px;font-size:14px;font-variant-numeric:tabular-nums}

.construction-win-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.construction-win-actions>button{min-height:44px;padding:12px 14px;font-family:inherit;line-height:1.4;cursor:pointer}.construction-win-actions>button:only-child{grid-column:1/-1}.construction-win-actions>button:not([data-play-again]){background:transparent;border-color:#bcc8b8;color:#40583f}.construction-win-actions>button:focus-visible{outline:3px solid #527d88;outline-offset:3px}@media(max-width:420px){.construction-win-actions{grid-template-columns:1fr;gap:10px}}
/* Keep every mission action available without opening the side panels. */
.construction-touch--complete{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:end;gap:16px}
.construction-touch--complete .construction-direction-pad{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(2,46px);gap:6px}
.construction-direction-pad [data-control="forward"]{grid-column:2;grid-row:1}
.construction-direction-pad [data-control="left"]{grid-column:1;grid-row:2}
.construction-direction-pad [data-control="reverse"]{grid-column:2;grid-row:2}
.construction-direction-pad [data-control="right"]{grid-column:3;grid-row:2}
.construction-touch--complete .construction-drive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}
.construction-touch--complete .construction-drive button{grid-column:auto;min-height:46px;min-width:0;padding:10px 8px;font:600 11px/1.4 Poppins,system-ui,sans-serif;overflow-wrap:anywhere}
.construction-touch--complete .construction-supply{background:#e2f0f4;border-color:#7ba2b3;color:#245e75}
.construction-touch--complete button[hidden]{display:none!important}
.construction-touch--complete button:disabled{opacity:.45;cursor:default}
.construction-touch--complete button:focus-visible{outline:3px solid #548da0;outline-offset:2px}
.construction-kalimantan .construction-touch--complete .construction-drive{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){
 .construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:10px 12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(10px,env(safe-area-inset-bottom))}
 .construction-game .construction-vehicle-select{min-width:0;justify-content:space-between}.construction-game .construction-vehicle-select select{max-width:none;flex:1;min-height:42px}
 .construction-game .construction-help{display:none}
 .construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-column:1/-1;grid-template-columns:144px minmax(0,1fr);gap:12px;width:100%;min-width:0}
 .construction-game .construction-touch--complete .construction-direction-pad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:6px}
 .construction-game .construction-direction-pad button{width:44px;min-height:44px;min-width:44px}
 .construction-game .construction-touch--complete .construction-drive{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .construction-game .construction-touch--complete .construction-drive .construction-supply{grid-column:1/-1}
 .construction-game.construction-kalimantan .construction-touch--complete .construction-drive .construction-supply{grid-column:auto}
 .construction-game .construction-stage{height:clamp(240px,calc(100dvh - 290px),600px)}
 .construction-game.is-fullscreen .construction-stage{height:auto;min-height:140px}
}
@media(max-width:360px){.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-template-columns:144px minmax(0,1fr);gap:8px}.construction-game .construction-touch--complete .construction-direction-pad{grid-template-columns:repeat(3,44px);gap:6px}.construction-game .construction-direction-pad button{width:44px;min-width:44px}.construction-game .construction-touch--complete .construction-drive button{font-size:10px;padding:8px 5px}}
.construction-touch--complete .construction-direction-pad button{min-width:0;width:100%;-webkit-touch-callout:none}
@media(min-width:601px) and (max-width:1100px) and (max-height:550px){.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{display:flex;align-items:end}.construction-game .construction-vehicle-select{flex:0 1 160px;flex-wrap:wrap}.construction-game .construction-touch--complete{flex:1;width:auto}.construction-game .construction-touch--complete .construction-drive{grid-template-columns:repeat(3,minmax(0,1fr))}.construction-game .construction-touch--complete .construction-drive .construction-supply{grid-column:auto}.construction-game.construction-kalimantan .construction-touch--complete .construction-drive{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Studio mode selection and sequential campaign map. */
.construction-journey{color:#294c42}.construction-journey [hidden]{display:none!important}.construction-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:28px 0}.construction-mode-options>button{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:30px;text-align:left;border:1px solid #c1cfc0;border-radius:20px;background:linear-gradient(145deg,#fffef5,#eaf1df);color:#294c42;cursor:pointer;min-height:290px;font:inherit}.construction-mode-options>button:last-child{background:linear-gradient(145deg,#254b40,#38694f);color:#fff9df}.construction-mode-options .mdi{font-size:36px}.construction-mode-options small,.construction-journey-map small{font-size:11px;letter-spacing:.1em;font-weight:700}.construction-mode-options h3{font-size:28px;margin:0}.construction-mode-options p{line-height:1.7;margin:0;max-width:42ch}.construction-mode-options strong{margin-top:auto}.construction-journey button:focus-visible{outline:3px solid #d98718;outline-offset:4px}.construction-mode-options>button:hover{box-shadow:0 8px 24px #24433220;transform:translateY(-2px)}.construction-journey-progress{padding:22px 26px;border:1px solid #cad4bc;border-radius:16px;background:#f4f6e9;margin:24px 0}.construction-journey-progress>strong{font-size:21px;display:block;margin-bottom:8px}.construction-journey-progress>span{font-size:13px}.construction-journey-progress progress{display:block;width:100%;height:12px;margin:16px 0;accent-color:#387353}.construction-journey-progress p{line-height:1.6;font-size:14px}.construction-journey-progress small{font-size:12px;line-height:1.6;display:block}.construction-journey-map{list-style:none;margin:32px 0;padding:0 0 0 52px}.construction-journey-map>li{position:relative;padding:0 0 26px 24px;border-left:2px dashed #b3c2ac}.construction-journey-map>li:last-child{border-color:transparent;padding-bottom:0}.construction-journey-node{position:absolute;left:-22px;top:22px;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#eef1e3;border:2px solid #a9bba0;color:#345b45;font-weight:800;font-size:15px}.construction-journey-map article{display:grid;grid-template-columns:180px minmax(0,1fr);overflow:hidden;border:1px solid #becdb7;background:#fffdf5;border-radius:18px}.construction-journey-map article>.construction-area-preview{height:100%;min-height:200px;border-radius:0}.construction-journey-map article>div:last-child{padding:24px}.construction-journey-map h3{font-size:21px;margin:9px 0}.construction-journey-map article strong{display:block;font-size:13px}.construction-journey-map p{font-size:13px;line-height:1.7;margin:12px 0}.construction-journey-map article span:not(.area-preview-road):not(.area-preview-crane){font-size:12px;display:block}.construction-journey-map button{display:block;margin-top:16px;padding:12px 20px;border:1px solid #365d42;border-radius:10px;background:#365d42;color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;min-height:44px}.construction-journey-map .is-current article{border:2px solid #b68129;box-shadow:0 5px 22px #8c642219}.construction-journey-map .is-current .construction-journey-node{background:#f2cf83;border-color:#b68129}.construction-journey-map .is-complete .construction-journey-node{background:#365d42;color:white}.construction-journey-map .is-locked article{background:#edf0e8;color:#596955}.construction-journey-map .is-locked .construction-area-preview{filter:grayscale(.8);opacity:.6}.construction-journey-map button:disabled{background:#d9dfd2;color:#596653;border-color:#c3cbbb;cursor:not-allowed}
@media(max-width:700px){.construction-mode-options{grid-template-columns:1fr;gap:14px}.construction-mode-options>button{padding:24px;min-height:230px}.construction-journey-map{padding-left:24px}.construction-journey-map>li{padding-left:24px}.construction-journey-map article{grid-template-columns:1fr}.construction-journey-map article>.construction-area-preview{height:110px;min-height:110px}.construction-journey-map article>div:last-child{padding:18px}.construction-journey-progress{padding:20px}.construction-journey-map h3{font-size:19px}}
@media(prefers-reduced-motion:reduce){.construction-mode-options>button:hover{transform:none}}
.construction-journey>header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.construction-journey>header>div>span{display:block;font-size:10px;letter-spacing:.18em;color:#64775c}.construction-journey>header h2{font-size:clamp(24px,3vw,36px);line-height:1.2;margin:12px 0}.construction-journey>header p{line-height:1.7;color:#65765b;font-size:13px;margin:0}.construction-journey>header>button{flex-shrink:0;min-height:44px;padding:10px 16px;border:1px solid #bdcbb1;border-radius:10px;background:#fffdf3;color:#34543f;font:inherit;font-size:12px;cursor:pointer}.construction-journey>header>button:hover{background:#e5ecd8}@media(max-width:700px){.construction-journey>header{flex-direction:column;gap:16px}}
/* Compact, icon-led Studio controls; labels stay available to assistive tools. */
.construction-icon-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.construction-icon-chips>span{display:inline-flex!important;align-items:center;gap:7px;padding:6px 10px;border-radius:8px;background:#365d4210;font-size:12px;line-height:1.4}.construction-icon-chips .mdi{font-size:19px}.construction-mode-options>button{min-height:210px;gap:12px}.construction-mode-options>button>.mdi:first-child{font-size:44px}.construction-mode-options>button>.mdi:last-child{align-self:flex-end;margin-top:auto;font-size:24px}.construction-mode-options>button:last-child .construction-icon-chips>span{background:#ffffff18}.construction-mode-options .construction-icon-chips .mdi{font-size:20px}.construction-journey>header>button,.construction-wizard [data-exit],.construction-wizard [data-edit]{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;padding:0;font-size:21px}.construction-journey>header{flex-direction:row;align-items:center}.construction-journey-progress{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:18px 22px}.construction-journey-progress>strong{margin:0;font-size:19px}.construction-journey-progress progress,.construction-journey-progress small{grid-column:1/-1;margin:0}.construction-journey-progress progress{margin:5px 0}.construction-journey-progress small{display:flex;gap:7px;align-items:center}.construction-journey-map article>.construction-area-preview{min-height:170px}.construction-journey-map article>div:last-child{padding:20px}.construction-journey-map article strong .mdi,.construction-stage-area .mdi{margin-right:5px}.construction-stage-area{font-size:12px;margin-top:8px;color:#65765b}.construction-journey-map button{width:44px;height:44px;padding:0;font-size:24px;margin-top:12px}.construction-journey-node .mdi{font-size:20px}.construction-stage-detail summary{font-size:12px;cursor:pointer;padding:8px 0;min-height:32px}.construction-stage-detail p{margin:4px 0 8px}.construction-wizard-steps button>.mdi{font-size:24px}.construction-wizard-choice-top>.mdi{font-size:30px}.construction-area-description h4>.mdi{font-size:22px}.construction-wizard-choice .construction-icon-chips{margin-bottom:0}.construction-wizard-choice{min-height:0}.construction-wizard [data-review-goals]{margin:12px 0}.construction-wizard-check .mdi{font-size:16px}@media(max-width:700px){.construction-mode-options>button{min-height:185px;padding:22px}.construction-journey-map article>.construction-area-preview{min-height:90px;height:90px}.construction-journey-map article>div:last-child{padding:16px}.construction-journey-progress{padding:16px}.construction-journey>header h2{font-size:25px}.construction-wizard-steps button{gap:8px}.construction-wizard-steps button>.mdi{font-size:22px}}
.construction-wizard-steps button{display:flex;justify-content:center;align-items:center}.construction-wizard-steps button>.mdi{margin:0}.construction-wizard-steps button>span{flex:0 1 auto;text-align:left}

/* Winding level map. SVG scenery and HTML controls use the same coordinate space. */
.construction-adventure-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;margin-top:20px;align-items:start}.construction-adventure-viewport{height:620px;height:min(680px,75dvh);min-height:360px;overflow:auto;overscroll-behavior:contain;border-radius:24px;border:4px solid #faf6dc;box-shadow:0 5px 0 #c7d1ae,0 14px 30px #3153321c;background:#62c64f;scrollbar-width:thin;scrollbar-color:#c6a26a #79cb5a}.construction-adventure-world{position:relative;width:100%;height:1540px;isolation:isolate;overflow:hidden}.construction-adventure-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.construction-adventure-stages{position:absolute;inset:0;list-style:none;margin:0;padding:0}.construction-adventure-stages>li{position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);width:76px;height:72px;text-align:center}.construction-adventure-stages button{position:relative;display:grid;place-items:center;width:76px;height:65px;padding:0;border:4px solid #f7f6dd;border-radius:26px;background:linear-gradient(145deg,#a4f180,#29bd63 65%,#21954d);box-shadow:0 7px 0 #267d46,0 11px 0 #f7f6dd,0 16px 0 #8b8768,0 19px 8px #31533250;color:white;cursor:pointer;touch-action:manipulation;transition:transform .15s;outline-offset:10px}.construction-adventure-stages button b{font:800 29px/1 Poppins,sans-serif;text-shadow:0 2px 0 #2c70463d}.construction-adventure-stages button:before{content:'';position:absolute;top:6px;left:9px;width:18px;height:7px;border-radius:50%;background:#ffffff85;transform:rotate(-25deg)}.construction-adventure-stages button:hover:not(:disabled){transform:translateY(-3px)}.construction-adventure-stages button[aria-pressed=true]{outline:4px solid #fff3a1;outline-offset:9px}.construction-adventure-stages .is-locked button{background:linear-gradient(145deg,#c2b9ae,#927b6d 70%);box-shadow:0 7px 0 #6b594f,0 11px 0 #eee9d5,0 16px 0 #8b8768,0 19px 8px #31533235;color:#f8f0e5;cursor:not-allowed}.construction-adventure-stages .is-complete button{background:linear-gradient(145deg,#82dfb4,#299b80);box-shadow:0 7px 0 #216f5f,0 11px 0 #f7f6dd,0 16px 0 #8b8768,0 19px 8px #31533235}.construction-adventure-badge{position:absolute;right:-9px;bottom:-13px;display:grid;place-items:center;border:2px solid #fff5d8;border-radius:50%;width:27px;height:27px;background:#31794d;color:#fff;font-size:16px}.is-locked .construction-adventure-badge{background:#6b594f}.is-complete .construction-adventure-badge{background:#e8bd4e;color:#655020}.construction-adventure-you{position:absolute;left:50%;bottom:calc(100% + 14px);transform:translateX(-50%);padding:5px 12px;border-radius:9px;background:#fff7d8;color:#456537;font-size:10px;font-weight:800;letter-spacing:.08em;white-space:nowrap;box-shadow:0 3px 0 #b39c62}.construction-adventure-you:after{content:'';position:absolute;left:calc(50% - 6px);top:100%;border:6px solid transparent;border-top-color:#fff7d8}.construction-adventure-start,.construction-adventure-end{position:absolute;left:50%;transform:translateX(-50%) rotate(-4deg);border:3px solid #fff2ca;border-radius:10px;padding:7px 18px;background:#a57544;color:#fff5d6;font-size:12px;font-weight:800;letter-spacing:.13em;box-shadow:0 4px 0 #79572f}.construction-adventure-start{bottom:28px}.construction-adventure-end{top:35px;left:35%}.construction-adventure-info{background:#fffdf2;border:1px solid #d3d9be;border-radius:20px;padding:22px;position:sticky;top:16px}.construction-adventure-score{display:flex;align-items:center;gap:12px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #e1e5d1}.construction-adventure-score>span{white-space:nowrap;font-size:13px;font-weight:700}.construction-adventure-score progress{width:100%;height:10px;accent-color:#3c9161}.construction-adventure-selected-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:18px;background:#e9f0d9;border-radius:18px;color:#4b7652;font-size:34px}.construction-adventure-info [data-stage-detail]>small{font-size:10px;letter-spacing:.1em;color:#798369}.construction-adventure-info h3{font-size:23px;line-height:1.3;margin:10px 0}.construction-adventure-info strong{font-size:13px}.construction-adventure-play{display:flex;justify-content:center;align-items:center;gap:9px;width:100%;min-height:48px;margin-top:16px;border:0;border-radius:13px;background:#31634a;color:#fff;font:600 14px Poppins,sans-serif;cursor:pointer;box-shadow:0 4px 0 #204a36}.construction-adventure-play .mdi{font-size:23px}.construction-adventure-play:disabled{opacity:.6;cursor:wait}.construction-adventure-save{display:flex;align-items:center;gap:6px;margin-top:22px;font-size:10px;color:#7d876c}.construction-adventure-info .construction-stage-detail p{font-size:12px;line-height:1.65}.construction-adventure-info .construction-icon-chips>span{font-size:11px}
@media(max-width:800px){.construction-adventure-layout{grid-template-columns:minmax(0,1fr) 240px;gap:14px}.construction-adventure-info{padding:17px}.construction-adventure-stages>li{width:62px;height:60px}.construction-adventure-stages button{width:62px;height:55px;border-radius:21px}.construction-adventure-stages button b{font-size:25px}.construction-adventure-world{height:1420px}}
@media(max-width:600px){.construction-adventure-layout{grid-template-columns:1fr;gap:16px}.construction-adventure-viewport{height:52dvh;min-height:320px;border-radius:20px}.construction-adventure-world{height:1400px}.construction-adventure-info{position:static;padding:18px}.construction-adventure-score{padding-bottom:10px;margin-bottom:12px}.construction-adventure-selected-icon{float:right;width:44px;height:44px;margin:0;font-size:27px}.construction-adventure-info h3{font-size:20px;margin:7px 0}.construction-adventure-info .construction-icon-chips{margin:10px 0 0}.construction-adventure-save{margin-top:14px}.construction-adventure-info .construction-stage-detail summary{padding:8px 0}.construction-adventure-start{bottom:24px}.construction-adventure-stages>li{width:58px}.construction-adventure-stages button{width:58px;height:52px;border-radius:19px}}
@media(prefers-reduced-motion:reduce){.construction-adventure-stages button{transition:none}}
/* Ibu Kota: rural fields and village silhouettes in the area chooser. */
.area-ibukota .construction-area-preview{background:linear-gradient(165deg,#cce5db 0 35%,#80a95c 36% 58%,#b9c97c 59% 75%,#688d47 76%)}.area-ibukota .area-preview-road{background:#c8ad78}.area-ibukota .construction-area-preview>i{background:#d7c3a0;box-shadow:inset 0 9px #996443;border-radius:2px}.area-ibukota .construction-area-preview>i:nth-of-type(2n){background:#e4d8b4;box-shadow:inset 0 9px #738456}.area-ibukota .construction-area-preview:after{content:'';position:absolute;width:30%;height:20%;right:5%;bottom:10%;background:repeating-linear-gradient(100deg,#597c3f 0 3px,#8fa958 3px 12px);transform:skewY(-12deg);border:3px solid #bcb17b}

/* Playable island atlas: one scene, direct map selection, tactile mission dock. */
.construction-playground{color:#244d4a}.studio-playground-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.studio-playground-header>div>span{font-size:9px;letter-spacing:.18em;color:#647e70}.studio-playground-header h2{font-size:clamp(22px,3vw,32px);margin:8px 0 0}.studio-playground-header>button{display:grid;place-items:center;width:46px;height:46px;border:1px solid #cbd7bc;border-radius:14px;background:#fffdf1;color:#365b49;font-size:24px;cursor:pointer}.studio-world,.studio-mode-world{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 10%,#e3f8ef 0,transparent 55%),linear-gradient(160deg,#b2e1df,#72c3d3 70%,#54a8c5);border-radius:28px;border:3px solid #f9fff0;box-shadow:0 7px 0 #b6d2c3,inset 0 0 80px #e7fff835}.studio-world:before,.studio-mode-world:before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-radial-gradient(ellipse at 40% 70%,transparent 0 45px,#fff2 46px 47px,transparent 48px 96px);opacity:.6;pointer-events:none}.studio-world-heading{position:absolute;left:24px;top:20px;font-size:12px;font-weight:600;color:#36788a;display:flex;gap:7px;align-items:center}.studio-islands{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:4px;position:relative;padding:45px 20px 35px;min-height:310px}.studio-island{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:0;border-radius:50%;padding:0 0 16px;min-width:0;color:#275a58;cursor:pointer;touch-action:manipulation;outline-offset:4px}.studio-island:nth-child(even){margin-top:35px}.studio-island-art{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 7px 4px #1b68741c);transform-origin:50% 80%;transition:transform .35s cubic-bezier(.2,.9,.3,1.4),filter .3s}.studio-island:hover .studio-island-art{transform:translateY(-9px) rotate(-2deg)}.studio-island[aria-pressed=true] .studio-island-art{transform:translateY(-14px) scale(1.08);filter:drop-shadow(0 10px 8px #f7f6b9a6)}.studio-island-name{position:relative;padding:7px 16px;border-radius:12px;background:#f8fff1e6;box-shadow:0 4px 0 #4286933d;font-size:14px;font-weight:700;transition:background .2s,color .2s,transform .2s}.studio-island[aria-pressed=true] .studio-island-name{background:#2c6d58;color:white;transform:translateY(-4px)}.studio-island-marker{position:absolute;top:12%;left:50%;transform:translateX(-50%);display:grid;place-items:center;width:37px;height:37px;border-radius:50% 50% 50% 4px;rotate:-45deg;background:#fff8df;color:#46735d;box-shadow:0 3px 0 #8fbbac66;opacity:0;transition:opacity .2s,top .3s;z-index:2}.studio-island-marker .mdi{rotate:45deg;font-size:22px}.studio-island[aria-pressed=true] .studio-island-marker{top:0;opacity:1}.studio-island-check{position:absolute;right:18%;bottom:48px;display:grid;place-items:center;width:29px;height:29px;border:3px solid #fff8d8;border-radius:50%;background:#399d73;color:white;font-size:18px;opacity:0;transform:scale(.2);transition:opacity .2s,transform .3s}.studio-island[aria-pressed=true] .studio-island-check{opacity:1;transform:scale(1)}.studio-island-sparkles{position:absolute;top:40%;left:20%;color:#fff8c3;opacity:0;pointer-events:none;font-size:32px}.studio-island[aria-pressed=true] .studio-island-sparkles{animation:studio-spark .7s ease-out}.studio-control-dock{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:24px;margin:24px 0 0;padding:20px;background:#fffcf0;border:1px solid #d1dbc5;border-radius:23px;box-shadow:0 5px 0 #dce1c8}.studio-missions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.studio-missions>button{display:flex;flex-direction:column;align-items:center;gap:7px;border:0;background:transparent;padding:5px 2px;border-radius:15px;color:#61766a;font:inherit;cursor:pointer}.studio-missions>button>span{display:grid;place-items:center;width:54px;height:54px;border-radius:19px;background:#eaf0de;box-shadow:0 4px 0 #d1dac0;color:#59795a;font-size:30px;transition:transform .25s,background .2s}.studio-missions>button>b{font-size:10px;font-weight:600}.studio-missions>button:hover>span{transform:translateY(-4px)}.studio-missions>button[aria-pressed=true]>span{background:#346d55;color:#fff5c5;box-shadow:0 4px 0 #1f4e39;transform:translateY(-3px) rotate(-5deg)}.studio-missions>button[aria-pressed=true]{color:#265c43}.studio-missions>button[data-mission-choice=kalimantan][aria-pressed=true]>span{background:#cb7845;box-shadow:0 4px 0 #9d542d}.studio-launch{display:flex;align-items:center;justify-content:space-between;gap:12px;border-left:1px solid #e0e5d0;padding-left:24px;min-width:0}.studio-selection strong{font-size:14px;display:flex;align-items:center;gap:6px}.studio-selection .construction-icon-chips{gap:5px;margin:8px 0 0}.studio-selection .construction-icon-chips>span{padding:4px 7px;font-size:10px;gap:5px}.studio-selection .construction-icon-chips .mdi{font-size:16px}.studio-launch>button{display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;min-width:110px;min-height:66px;padding:10px 19px;border:3px solid #fff4c3;border-radius:21px;background:#ecb94d;color:#594629;box-shadow:0 5px 0 #be8c32;font:700 18px Poppins,sans-serif;cursor:pointer;transition:transform .2s,filter .2s}.studio-launch>button .mdi{font-size:33px}.studio-launch>button:hover:enabled{transform:translateY(-3px);filter:brightness(1.07)}.studio-launch>button:disabled{background:#e3e7da;border-color:#f5f8ed;color:#91a18c;box-shadow:0 5px 0 #c7d0bb;cursor:not-allowed}.studio-cloud{position:absolute;width:95px;height:29px;border-radius:50%;background:#ffffff70;pointer-events:none;z-index:-1;animation:studio-cloud-drift 12s ease-in-out infinite alternate}.studio-cloud:before,.studio-cloud:after{content:'';position:absolute;border-radius:50%;background:inherit;width:45px;height:39px;left:15px;top:-17px}.studio-cloud:after{width:36px;height:30px;left:47px;top:-12px}.studio-cloud-one{left:8%;top:20%;scale:.9}.studio-cloud-two{right:10%;top:12%;scale:1.2;animation-delay:-4s}.studio-cloud-three{left:48%;bottom:14%;scale:.65;animation-delay:-8s}.studio-mode-world{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;padding:35px 35px 25px;margin-top:20px;min-height:380px}.studio-mode-portal{display:flex;flex-direction:column;align-items:center;position:relative;border:0;background:none;border-radius:50%;padding:0 10px 30px;color:#285c58;cursor:pointer;max-width:430px;width:100%;justify-self:center}.studio-mode-portal>.studio-island-art{width:85%;max-height:270px}.studio-mode-portal:hover>.studio-island-art{transform:translateY(-10px) rotate(-2deg)}.studio-mode-portal h3{font-size:clamp(20px,2.2vw,28px);margin:0;padding:8px 24px;background:#fbfff0e8;border-radius:15px;box-shadow:0 4px 0 #38788636;z-index:1}.studio-portal-icon{position:absolute;top:20px;left:50%;transform:translateX(-50%);display:grid;place-items:center;width:52px;height:52px;border-radius:19px;background:#fff6cc;color:#356c57;font-size:33px;box-shadow:0 4px 0 #d5b970;rotate:-6deg;transition:translate .3s}.studio-mode-portal:hover .studio-portal-icon{translate:0 -10px}.studio-portal-play{display:grid;place-items:center;width:46px;height:46px;position:absolute;right:13%;bottom:19px;background:#2e765c;color:white;border:3px solid #f8ffdf;border-radius:50%;font-size:25px;box-shadow:0 4px 0 #245a48;z-index:2}.studio-portal-progress{position:absolute;bottom:0;left:50%;transform:translateX(-50%);font-size:11px;color:#285c58}.studio-mode-adventure .studio-portal-icon{background:#c7efb2}.construction-playground button:focus-visible,.studio-mode-portal:focus-visible{outline:3px solid #e4a63b;outline-offset:5px}.studio-world[data-mission=kalimantan]{background:radial-gradient(ellipse at 50% 10%,#fff1c7,transparent 60%),linear-gradient(160deg,#b4e0d4,#75c3ce)}.studio-world{transition:background .4s}
@keyframes studio-spark{0%{opacity:0;transform:scale(.2) rotate(0)}30%{opacity:1}100%{opacity:0;transform:translate(-20px,-30px) scale(1.3) rotate(70deg)}}@keyframes studio-cloud-drift{from{translate:-15px 0}to{translate:18px 6px}}
@media(max-width:950px){.studio-islands{grid-template-columns:repeat(2,minmax(0,1fr));padding:35px 35px 25px;min-height:0;gap:0 25px}.studio-island{max-width:300px;width:100%;justify-self:center}.studio-island:nth-child(even){margin-top:25px}.studio-island:nth-child(n+3){margin-top:-15px}.studio-control-dock{grid-template-columns:1fr;gap:17px}.studio-launch{border-left:0;border-top:1px solid #e0e5d0;padding:16px 0 0}.studio-missions>button{flex-direction:row;justify-content:center}.studio-missions>button>span{width:45px;height:45px;font-size:26px;border-radius:16px}}
@media(max-width:600px){.studio-playground-header{margin-bottom:14px}.studio-playground-header h2{font-size:23px}.studio-world,.studio-mode-world{border-radius:22px}.studio-world-heading{left:16px;top:15px;font-size:10px}.studio-islands{padding:40px 5px 20px;gap:0 2px}.studio-island{padding-bottom:12px}.studio-island:nth-child(n+3){margin-top:0}.studio-island-name{font-size:12px;padding:6px 12px}.studio-island-marker{width:28px;height:28px;top:0}.studio-island-marker .mdi{font-size:17px}.studio-island-check{right:10%;bottom:36px;width:24px;height:24px;font-size:14px;border-width:2px}.studio-island[aria-pressed=true] .studio-island-art{transform:translateY(-6px) scale(1.04)}.studio-control-dock{margin-top:18px;padding:14px;gap:13px;border-radius:19px}.studio-missions{gap:5px}.studio-missions>button{flex-direction:column;gap:7px}.studio-missions>button>span{width:47px;height:47px;font-size:28px}.studio-missions>button>b{font-size:10px}.studio-launch{padding-top:13px}.studio-launch>button{min-width:100px;min-height:57px;font-size:16px;border-radius:17px;padding:8px 13px}.studio-launch>button .mdi{font-size:28px}.studio-selection strong{font-size:13px}.studio-selection .construction-icon-chips>span{font-size:9px;padding:3px 5px}.studio-mode-world{gap:0;padding:35px 4px 25px;min-height:250px}.studio-mode-portal{padding:0 0 25px}.studio-mode-portal>.studio-island-art{width:100%;margin-top:22px}.studio-mode-portal h3{font-size:16px;padding:7px 13px}.studio-portal-icon{width:38px;height:38px;font-size:25px;top:10px;border-radius:14px}.studio-portal-play{width:34px;height:34px;font-size:20px;right:2%;bottom:12px;border-width:2px}.studio-portal-progress{font-size:10px;bottom:0}}
@media(prefers-reduced-motion:reduce){.studio-cloud,.studio-island-sparkles{animation:none!important}.studio-island-art,.studio-island-marker,.studio-island-name,.studio-island-check,.studio-missions>button>span,.studio-launch>button,.studio-portal-icon,.studio-world{transition:none!important}}

/* Campaign interaction lives entirely on the world objects. */
.construction-adventure-layout.construction-adventure-direct{display:block;position:relative;margin-top:18px}.construction-adventure-direct .construction-adventure-viewport{height:min(740px,76dvh);min-height:380px}.construction-map-hud{position:absolute;z-index:3;top:18px;right:22px;display:flex;align-items:center;gap:8px;pointer-events:none}.construction-map-hud>span{display:flex;align-items:center;gap:7px;padding:8px 12px;background:#fff9e7e8;border:2px solid #fffdf3;border-radius:30px;box-shadow:0 3px 0 #9d9f6c55;color:#3e6446;font-size:12px;font-weight:700;backdrop-filter:blur(6px)}.construction-map-hud>span:last-child{padding:9px;pointer-events:auto}.construction-map-hud .mdi{font-size:19px}.construction-map-stage-icons{display:flex;align-items:center;justify-content:center;gap:8px;position:absolute;left:50%;top:calc(100% + 20px);transform:translateX(-50%);padding:4px 8px;background:#fff5d6dc;border-radius:12px;box-shadow:0 2px 0 #97794745;color:#5f7151;pointer-events:none}.construction-map-stage-icons .mdi{font-size:17px}.construction-adventure-direct .is-locked .construction-map-stage-icons{opacity:.72}.construction-adventure-direct .is-current button{outline:4px solid #fff3a1;outline-offset:8px}.construction-adventure-direct .is-current button:after{content:'';position:absolute;inset:-17px;border:2px solid #fff3b5;border-radius:38px;pointer-events:none;animation:construction-stage-beacon 2s ease-out infinite}.construction-adventure-direct .construction-adventure-you{font-size:21px;padding:5px 11px;bottom:calc(100% + 20px);animation:construction-stage-pointer 2s ease-in-out infinite}.construction-adventure-direct .construction-adventure-stages button{transition:transform .18s,filter .18s}.construction-adventure-direct .construction-adventure-stages button:active:enabled{transform:translateY(5px) scale(.95)}.construction-adventure-direct .construction-adventure-stages button.is-launching{transform:translateY(-6px) scale(1.15);filter:brightness(1.25)}.construction-adventure-direct .construction-adventure-stages button.is-launching:after{animation:none;opacity:0}.construction-adventure-direct .construction-adventure-start,.construction-adventure-direct .construction-adventure-end{font-size:22px;line-height:1;padding:8px 16px}.construction-adventure-direct .construction-adventure-stages button:focus-visible{outline:4px solid #fff;outline-offset:9px}@keyframes construction-stage-beacon{0%{transform:scale(.92);opacity:.8}100%{transform:scale(1.35);opacity:0}}@keyframes construction-stage-pointer{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media(max-width:600px){.construction-adventure-direct .construction-adventure-viewport{height:72dvh;min-height:360px}.construction-map-hud{top:12px;right:14px}.construction-map-hud>span{font-size:11px;padding:6px 10px}.construction-map-hud>span:last-child{padding:7px}.construction-map-stage-icons{gap:6px;top:calc(100% + 14px);padding:3px 7px}.construction-map-stage-icons .mdi{font-size:15px}.construction-adventure-direct .construction-adventure-you{bottom:calc(100% + 16px);font-size:18px}.construction-adventure-direct .construction-adventure-stages>li{height:56px}}
@media(prefers-reduced-motion:reduce){.construction-adventure-direct .is-current button:after,.construction-adventure-direct .construction-adventure-you{animation:none}.construction-adventure-direct .construction-adventure-stages button{transition:none}}
.studio-missions{grid-template-columns:repeat(5,minmax(0,1fr))}.studio-missions>button[data-mission-choice=flood][aria-pressed=true]>span{background:#3e8da3;color:#f1ffff;box-shadow:0 4px 0 #28697c}.studio-world[data-mission=flood]{background:radial-gradient(ellipse at 50% 10%,#e1f1f0,transparent 60%),linear-gradient(160deg,#a0c8d7,#6caabe)}.flood-live-status{position:absolute;z-index:3;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:10px;pointer-events:none}.flood-live-status>span{display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid #e1f6ed;border-radius:24px;background:#f3fff3eb;color:#326376;box-shadow:0 4px 18px #315b6922;font-size:12px}.flood-live-status .mdi{font-size:21px}.flood-live-status progress{width:60px;height:8px;accent-color:#4b9bb5}.flood-goals{display:grid;gap:8px;margin-top:15px}.flood-goals>div{display:flex;align-items:center;gap:8px;padding:9px;border-radius:9px;background:#e3ede1;font-size:11px}.flood-goals .mdi{font-size:22px;color:#4b7c84}.flood-goals b{margin-left:auto}.construction-flood [data-flood-action]{width:100%;padding:12px 8px;border-radius:10px;border:0;background:#357b91;color:white;font:600 11px Poppins,sans-serif;touch-action:none}.construction-flood [data-flood-hint]{font-size:11px;line-height:1.6}.construction-flood .construction-phase-track>span{display:flex;align-items:center;gap:5px}.construction-flood .construction-phase-track .mdi{font-size:17px}.construction-flood .construction-phase-track small{font-size:9px}.construction-flood .construction-drive{grid-template-columns:repeat(2,minmax(0,1fr))}.construction-flood .construction-phase-track .is-done{background:#c3dcca;color:#385d49}@media(max-width:600px){.studio-missions>button>b{font-size:9px}.studio-missions>button>span{width:41px;height:41px;font-size:25px}.flood-live-status{bottom:108px;gap:6px}.flood-live-status>span{padding:7px 9px;font-size:10px;gap:5px}.flood-live-status progress{width:38px}.construction-flood .construction-phase-track small{display:none}}
.flood-live-status [hidden]{display:none!important}
/* Personal village: optional goals stay visual and never block relaxed play. */
.studio-missions{grid-template-columns:repeat(6,minmax(0,1fr))}.studio-missions>button[data-mission-choice=village][aria-pressed=true]>span{background:#b28545;color:#fff1bd;box-shadow:0 4px 0 #85612c}.village-live-status{position:absolute;z-index:3;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:7px;max-width:calc(100% - 20px)}.village-world-stats,.village-challenges{display:flex;gap:6px;align-items:center;justify-content:center}.village-world-stats{padding:8px 14px;background:#fffbedeb;border:1px solid #f7ffe7;border-radius:22px;box-shadow:0 3px 15px #244e3c22}.village-world-stats>span{display:flex;align-items:center;gap:5px;padding:0 6px;color:#4b705d;font-size:11px;white-space:nowrap}.village-world-stats .mdi{font-size:20px}.village-challenges>button{display:flex;align-items:center;gap:5px;min-height:36px;padding:7px 10px;background:#f7f8e8f0;color:#526e57;border:1px solid #b8c9ac;border-radius:13px;font:600 10px Poppins,sans-serif;cursor:pointer}.village-challenges>button[aria-pressed=true]{background:#426b55;color:#fff2c5;border-color:#cde1be}.village-challenges>button:disabled{cursor:default;opacity:.7}.village-challenges>button:disabled[aria-pressed=true]{opacity:1}.village-run-metrics{display:flex;align-items:center;gap:5px;padding:4px 12px;border-radius:12px;background:#fff9e5e6;color:#6d7357;font-size:10px}.village-job-list{display:grid;gap:8px;margin-top:12px}.village-job-list>button{display:flex;gap:8px;align-items:center;min-height:43px;border:1px solid #bbcdb1;border-radius:10px;background:#edf2df;color:#496650;font:500 10px Poppins,sans-serif;padding:9px;cursor:pointer}.village-job-list .mdi{font-size:22px}.village-job-list b{margin-left:auto}.village-job-list button[aria-pressed=true]{border-color:#7a9b63;background:#dae6c7}.village-method-note{display:block;font-size:9px;line-height:1.6;color:#73816a;margin:10px 0}.construction-village [data-village-hint]{font-size:11px;line-height:1.6}.construction-village [data-village-action]{padding:12px;width:100%;border:0;border-radius:10px;background:#537b5a;color:white;font:600 11px Poppins,sans-serif;touch-action:none}.construction-village .construction-drive{grid-template-columns:repeat(2,minmax(0,1fr))}.village-replay-open{display:flex;align-items:center;gap:5px}.village-replay-dialog{width:min(760px,94vw);max-height:94dvh;padding:16px;border:2px solid #d6e0bd;border-radius:22px;background:#faf9e9;color:#355b4b;box-shadow:0 24px 100px #193f3780;overflow:auto}.village-replay-dialog::backdrop{background:#183b38c9;backdrop-filter:blur(5px)}.village-replay-dialog header,.village-replay-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.village-replay-dialog header{margin-bottom:12px}.village-replay-dialog canvas{width:100%;height:auto;border-radius:14px;background:#32574d;display:block}.village-replay-dialog button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 14px;border:1px solid #bdcead;border-radius:12px;background:#e8efd8;color:#3c644b;font:600 12px Poppins,sans-serif;cursor:pointer}.village-replay-dialog button:disabled{opacity:.55;cursor:wait}.village-replay-dialog p{font-size:12px}.village-replay-dialog .mdi{font-size:22px}.construction-village [data-village-result]{font-size:12px;line-height:1.7;padding:10px;margin-bottom:12px;background:#e3ecd2;border-radius:12px}.construction-village .construction-phase-track .mdi{margin-right:5px}@media(max-width:950px){.studio-missions>button{flex-direction:column}.studio-control-dock{gap:16px}}@media(max-width:600px){.studio-missions>button>span{width:36px;height:39px;font-size:24px;border-radius:13px}.studio-missions>button>b{font-size:8px}.village-live-status{bottom:103px;gap:5px}.village-world-stats{padding:6px 8px;gap:2px}.village-world-stats>span{font-size:10px;padding:0 3px}.village-world-stats .mdi{font-size:18px}.village-challenges{gap:4px}.village-challenges>button{font-size:9px;padding:6px 8px;min-height:34px}.village-replay-dialog{padding:12px}.construction-village .construction-header-actions .village-replay-open{font-size:10px}}
@media(max-width:600px){.studio-missions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.studio-missions>button{flex-direction:row;gap:6px;min-height:48px}.studio-missions>button>span{width:42px;height:42px;font-size:26px;flex-shrink:0}.studio-missions>button>b{font-size:9px}}
/* Festival fleet: each icon selects a real parked machine. */
.studio-missions{grid-template-columns:repeat(7,minmax(0,1fr))}.studio-missions>button[data-mission-choice=festival][aria-pressed=true]>span{background:#a37ca6;color:#fff1cd;box-shadow:0 4px 0 #735779}.festival-fleet{display:grid;gap:6px;margin-top:12px}.festival-fleet>button{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px;border:1px solid #cad4ba;border-radius:9px;background:#edf1df;color:#53715a;font:500 10px Poppins,sans-serif;cursor:pointer}.festival-fleet .mdi{font-size:22px}.festival-fleet b{margin-left:auto}.festival-fleet>button[aria-pressed=true]{background:#dce8c7;border-color:#719b75}.festival-fleet>button.is-needed{box-shadow:inset 3px 0 #e1b44a}.construction-festival [data-festival-hint]{font-size:11px;line-height:1.6}.construction-festival [data-festival-action]{width:100%;min-height:42px;padding:10px;border:0;border-radius:10px;background:#67886a;color:white;font:600 11px Poppins,sans-serif;touch-action:none}.festival-live-status{position:absolute;z-index:3;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:8px;pointer-events:none}.festival-live-status>span{display:flex;align-items:center;gap:7px;padding:8px 13px;background:#fff6e9ed;color:#627252;border:1px solid #fff8df;border-radius:24px;box-shadow:0 3px 14px #34513922;font-size:11px;white-space:nowrap}.festival-live-status .mdi{font-size:20px}.construction-festival .construction-phase-track .mdi{font-size:20px}.construction-festival .construction-phase-track .is-done{background:#bcd7bd;color:#47704c}.construction-festival .construction-drive{grid-template-columns:minmax(0,1fr)}@media(max-width:950px){.studio-missions{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:600px){.studio-missions{grid-template-columns:repeat(3,minmax(0,1fr))}.festival-live-status{bottom:100px;gap:5px}.festival-live-status>span{padding:6px 9px;font-size:10px}.festival-live-status .mdi{font-size:18px}.construction-festival .construction-phase-track{gap:3px}.construction-festival .construction-phase-track>span{padding:5px}.construction-festival .construction-phase-track .mdi{font-size:15px}.festival-fleet>button{min-height:42px}}
/* A fifth island remains directly selectable on wide and small screens. */
@media(min-width:951px){.studio-islands{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding-left:22px;padding-right:22px}}
.studio-island[data-island=snow] .studio-island-name{background:#edf8ff;color:#527c94}.studio-island[data-island=snow] .studio-island-marker{background:#e5f5ff;color:#6094b2}.studio-world[data-area=snow]{background:radial-gradient(ellipse at 45% 0,#f6fcff,transparent 65%),linear-gradient(145deg,#cfe7f3,#90bed9)}
@media(max-width:950px){.studio-island[data-island=snow]{grid-column:1/-1;max-width:270px;margin-top:0}}
.construction-snow .construction-tag{color:#537d97}.construction-snow .construction-waypoint{background:#385c70e8}
/* A small excavator carries the player along the same Bézier road after a win. */
.construction-journey-vehicle{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}.construction-journey-vehicle [data-travel-pose]{filter:drop-shadow(0 3px 2px #354c3c35)}.construction-journey-vehicle:not(.is-arrived) .journey-excavator-treads{animation:journey-tracks .3s linear infinite}.construction-journey-vehicle:not(.is-arrived) .journey-excavator-boom{transform-origin:9px 0;animation:journey-boom .65s ease-in-out infinite alternate}.construction-journey-travel-controls{position:absolute;right:18px;bottom:18px;z-index:6;display:flex;align-items:center;gap:7px;max-width:calc(100% - 36px)}.construction-journey-travel-controls>span{display:flex;align-items:center;gap:9px;background:#fff8de;color:#436349;border:2px solid #fffdf4;border-radius:18px;padding:10px 15px;box-shadow:0 4px 0 #69835455;font-size:12px}.construction-journey-travel-controls .mdi{font-size:23px}.construction-journey-travel-controls>button{width:45px;height:45px;border:2px solid #fff8d3;border-radius:15px;background:#416f54;color:#fff9dd;cursor:pointer}.construction-journey-travel-controls>button:focus-visible{outline:3px solid #ffcf58;outline-offset:3px}.construction-adventure-stages .just-arrived{animation:journey-arrival .5s ease-out}.construction-journey-vehicle.is-arrived .journey-excavator-body{animation:journey-park .35s ease-out}@keyframes journey-tracks{to{stroke-dashoffset:-8}}@keyframes journey-boom{to{transform:rotate(5deg)}}@keyframes journey-arrival{50%{filter:brightness(1.25);scale:1.1}}@keyframes journey-park{50%{transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.construction-journey-vehicle *,.construction-adventure-stages .just-arrived{animation:none!important}}
/* Instrument consoles reserve a row below the map, including fullscreen. */
.construction-game>.construction-live-status{--console-accent:#8ddfce;--console-rgb:141,223,206;position:relative;inset:auto;transform:none;z-index:auto;box-sizing:border-box;display:grid;grid-template-columns:minmax(185px,.65fr) minmax(0,2fr);align-items:center;width:100%;max-width:none;min-width:0;margin:0;padding:12px 21px;flex:0 0 auto;gap:16px;border:0;border-top:3px solid #435455;border-bottom:3px solid #0b151b;border-radius:0;background:linear-gradient(100deg,#24333a,#131f27 65%,#1d2b31);box-shadow:inset 0 1px #78877d40,inset 0 -1px #ffffff08;color:#e4eee9;pointer-events:auto;font-family:system-ui,sans-serif}
.construction-game>.festival-live-status{--console-accent:#f4ce86;--console-rgb:244,206,134}
.construction-live-status:before,.construction-live-status:after{content:'';position:absolute;top:8px;width:5px;height:5px;border-radius:50%;border:1px solid #0c171d;background:linear-gradient(135deg,#6e7d7c,#26373d);box-shadow:0 1px #97aaa521}
.construction-live-status:before{left:6px}.construction-live-status:after{right:6px}
.construction-live-status>.cockpit-console-heading{grid-column:1;grid-row:1}.construction-live-status>.village-status-row{grid-column:2;grid-row:1}
.cockpit-console-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 8px;align-items:center;min-width:0}
.cockpit-console-brand{display:flex;align-items:center;gap:9px;color:#e8eee9;font:800 11px/1.2 system-ui;letter-spacing:.14em;min-width:0}.cockpit-console-brand small{display:block;margin-top:5px;color:#8b9f9f;font:500 7px/1 system-ui;letter-spacing:.15em;white-space:nowrap}



.cockpit-mode{display:flex;align-items:center;justify-self:end;gap:5px;padding:5px 7px;border:1px solid #35494b;border-radius:5px;background:#12242a;font:700 8px/1.1 system-ui;letter-spacing:.08em;color:var(--console-accent);white-space:nowrap}
.cockpit-mode>i{width:4px;height:4px;flex:0 0 4px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}
.cockpit-speed{display:flex;gap:5px;align-items:baseline;justify-self:start;padding-left:38px}.cockpit-speed>b{color:var(--console-accent);font:600 23px/1 ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.05em}.cockpit-speed>small{font:500 8px/1 system-ui;color:#91a6a5}
.construction-live-status .village-status-row{display:block;min-width:0}.construction-live-status .cockpit-readouts{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;min-width:0;align-items:stretch;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none}
.construction-live-status .festival-readouts{grid-template-columns:repeat(3,minmax(0,1fr))}
.construction-live-status .cockpit-readouts>.cockpit-readout{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:7px;min-width:0;padding:10px 12px;background:linear-gradient(145deg,#0e1d25,#172b30);border:1px solid #3b5050;border-top-color:#4a5d58;border-radius:8px;box-shadow:inset 0 2px 5px #0003;color:#dcece4;white-space:nowrap;position:relative;overflow:hidden}
.cockpit-readout>small{color:#8fa7a6;font:600 8px/1 system-ui;letter-spacing:.13em;white-space:nowrap}.cockpit-readout-value{display:flex;align-items:center;gap:6px;min-width:0;min-height:19px;color:var(--console-accent)}
.cockpit-readout-value>b{font:600 18px/1 ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.05em;text-shadow:0 0 12px rgba(var(--console-rgb),.15)}
.construction-live-status .cockpit-readout .mdi{font-size:17px;line-height:1;opacity:.75}
.cockpit-readout-value [data-console-weather],.cockpit-readout-value [data-console-storage]{font:700 10px/1 system-ui;letter-spacing:.04em}
.cockpit-readout-caption{font:500 6px/1 system-ui;letter-spacing:.14em;color:#748f90}.construction-live-status .cockpit-readout progress{appearance:none;display:block;width:100%;height:3px;min-height:3px;margin:0;border:0;border-radius:10px;overflow:hidden;background:#2b4448;accent-color:var(--console-accent)}
.cockpit-readout progress::-webkit-progress-bar{background:#2b4448}.cockpit-readout progress::-webkit-progress-value{background:var(--console-accent);border-radius:10px;box-shadow:0 0 7px rgba(var(--console-rgb),.5);transition:width .3s}.cockpit-readout progress::-moz-progress-bar{background:var(--console-accent);border-radius:10px}
.construction-live-status .village-options-toggle{display:grid;place-items:center;justify-self:end;flex:0 0 30px;width:30px;height:27px;min-height:27px;padding:0;border:1px solid #4c6360;border-radius:5px;background:linear-gradient(#344748,#22373a);box-shadow:0 2px #08151b;color:#c6dbd2;cursor:pointer}.construction-live-status .village-options-toggle .mdi{font-size:17px}.construction-live-status .village-options-toggle[aria-expanded=true]{background:#d8be81;color:#253b3c;border-color:#ffe5a1}
.construction-live-status button:focus-visible{outline:2px solid #ffe3a2;outline-offset:3px}
.construction-live-status .village-status-options{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:10px;margin-top:0;border-top:1px solid #3b5050}
.construction-live-status [hidden]{display:none!important}.construction-live-status .village-challenges{flex-wrap:wrap;justify-content:flex-start;gap:6px}.construction-live-status .village-challenges>button{min-height:36px;padding:8px 12px;border:1px solid #405b59;border-radius:6px;background:#243b3d;color:#accbc2;font:600 10px system-ui}.construction-live-status .village-challenges>button[aria-pressed=true]{background:#c4d8b4;color:#263e36;border-color:#e2f2c9;box-shadow:0 0 12px #bfe8ba12}.construction-live-status .village-run-metrics{padding:0;background:none;color:#9fbab0;font:500 10px ui-monospace,monospace}
.construction-live-status[data-storage=temporary] [data-console-storage],.construction-live-status[data-storage=temporary] [data-console-save-note]{color:#edbe80}
.construction-live-status[data-console-mode=working] .cockpit-mode{color:#ffda8c;border-color:#977d48;background:#403923}.construction-live-status[data-console-mode=working] .cockpit-mode>i{animation:cockpit-working-pulse 1.6s ease-in-out infinite}
.construction-live-status[data-console-mode=paused] .cockpit-mode,.construction-live-status[data-console-mode=loading] .cockpit-mode{color:#a2b5bb;background:#27343e;border-color:#48575d}.construction-live-status[data-console-mode=complete] .cockpit-mode{color:#c2e2a2;border-color:#73945d;background:#293d2a}
@keyframes cockpit-working-pulse{50%{opacity:.45;box-shadow:0 0 3px currentColor}}
@media(max-width:850px){.construction-game>.construction-live-status{grid-template-columns:180px minmax(0,1fr);padding:10px 16px;gap:12px}.construction-live-status .cockpit-readouts{gap:5px}.construction-live-status .cockpit-readouts>.cockpit-readout{padding:9px 8px}.cockpit-readout-value{gap:4px}.cockpit-readout-value>b{font-size:16px}.cockpit-readout>small{font-size:7px;letter-spacing:.08em}.cockpit-readout-value [data-console-weather],.cockpit-readout-value [data-console-storage]{font-size:9px}.cockpit-readout-caption{font-size:5px}}
@media(max-width:600px){.construction-game>.construction-live-status{display:block;padding:9px 12px}.cockpit-console-heading{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cockpit-console-brand{flex:1;font-size:10px;gap:7px}.cockpit-console-brand small{font-size:6px;margin-top:3px;letter-spacing:.09em}.cockpit-mode{font-size:7px;padding:5px;gap:4px}.cockpit-speed{padding:0;gap:3px}.cockpit-speed>b{font-size:19px}.cockpit-speed>small{font-size:7px}.construction-live-status .village-options-toggle{width:29px;height:29px;flex-basis:29px}.construction-live-status .cockpit-readouts{gap:4px}.construction-live-status .cockpit-readouts>.cockpit-readout{padding:8px 5px;gap:6px;border-radius:6px}.cockpit-readout>small{font-size:6px;letter-spacing:.06em}.cockpit-readout-value{gap:3px;min-height:16px}.cockpit-readout-value>b{font-size:14px}.construction-live-status .cockpit-readout .mdi{font-size:13px}.cockpit-readout-value [data-console-weather],.cockpit-readout-value [data-console-storage]{font-size:8px;letter-spacing:0}.cockpit-readout-caption{font-size:5px;letter-spacing:.05em}.construction-live-status .village-status-options{margin-top:9px;padding-top:9px;gap:8px}.construction-live-status .village-challenges>button{min-height:40px;padding:7px 10px}.construction-live-status .festival-readouts>.cockpit-readout{padding:8px 12px}.festival-readouts .cockpit-readout-value>b{font-size:17px}}
@media(max-width:360px){.cockpit-console-brand small{display:none}.cockpit-console-brand{letter-spacing:.05em}.cockpit-mode{font-size:6px}.cockpit-readout-value{gap:2px}.construction-live-status .cockpit-readout .mdi{font-size:11px}.cockpit-readout-value>b{font-size:12px}}
@media(max-height:550px) and (min-width:601px){.construction-game>.construction-live-status{padding:6px 16px;gap:12px}.cockpit-console-heading{gap:4px 7px}.cockpit-console-brand small{display:none}.cockpit-speed{padding-left:32px}.cockpit-speed>b{font-size:18px}.construction-live-status .cockpit-readouts>.cockpit-readout{padding:7px 10px;gap:5px}.cockpit-readout-caption{display:none}.construction-live-status .village-options-toggle{height:24px;min-height:24px}.construction-village.is-fullscreen:has(.village-status-options:not([hidden])) .construction-stage{min-height:100px}.construction-live-status:has(.village-status-options:not([hidden])) .village-status-row{visibility:hidden}.construction-live-status .village-status-options{grid-column:2;grid-row:1;align-self:center;border:0;padding:0;margin:0;gap:7px}.construction-live-status .village-challenges>button{min-height:40px}}
@media(prefers-reduced-motion:reduce){.construction-live-status *,.construction-live-status *:before,.construction-live-status *:after,.construction-live-status progress::-webkit-progress-value{animation:none!important;transition:none!important}}

/* Lightweight entry feedback is available before the 3D module downloads. */
[data-room-content]{position:relative}
/* The loading scene shares the chooser's floating-island visual language. */
.construction-loading{position:relative;isolation:isolate;overflow:hidden;z-index:30;display:grid;place-items:center;min-height:580px;padding:52px 24px 26px;border:3px solid #f5ffed;border-radius:28px;background:radial-gradient(ellipse at 50% 8%,#effbec 0,transparent 62%),linear-gradient(155deg,#bce6df,#82cbd5 65%,#68b5cb);box-shadow:0 7px 0 #a6c9bc;color:#285b56;font-family:system-ui,sans-serif}
[data-room-content]:has(>.construction-loading)>.construction-game{position:absolute;inset:0;visibility:hidden;pointer-events:none}
.construction-loading-sky{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.construction-loading-brand{position:absolute;left:28px;top:22px;display:flex;align-items:center;gap:9px;font-size:10px;font-weight:700;letter-spacing:.2em;color:#467b77}
.construction-loading-brand>span{font-size:20px;color:#529587}
.construction-loading-card{width:min(100%,740px);text-align:center;position:relative}
.construction-loading-card h2{font-size:clamp(23px,3.5vw,34px);font-weight:800;letter-spacing:-.045em;color:#285d55;margin:0 0 19px;line-height:1.2;text-shadow:0 2px #f4ffdf80}
.construction-loading-art{width:100%;max-width:680px;margin:-18px auto -2px;position:relative}
.construction-loading-art svg{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 16px 14px #347b8117)}
.construction-loading-dock{width:min(100%,390px);margin:auto;position:relative;z-index:2}
.construction-loading-meter{height:12px;position:relative;overflow:hidden;border:3px solid #faffede6;border-radius:30px;background:#80b4ae;box-shadow:0 3px 0 #498e8d22}
.construction-loading-card progress{appearance:none;display:block;width:100%;height:100%;border:0;background:transparent;accent-color:#efb54d}
.construction-loading-card progress::-webkit-progress-bar{background:#9fcac0}
.construction-loading-card progress::-webkit-progress-value{background:linear-gradient(90deg,#efb14a,#ffe29a);border-radius:30px;transition:width .3s}
.construction-loading-card progress::-moz-progress-bar{background:linear-gradient(90deg,#efb14a,#ffe29a);border-radius:30px}
.construction-loading-card progress:indeterminate{background:repeating-linear-gradient(110deg,#edb951 0 14px,#ffe4a0 14px 28px);background-size:60px 100%;animation:loading-stripes 1.8s linear infinite}
.construction-loading-card progress:indeterminate::-webkit-progress-bar{background:repeating-linear-gradient(110deg,#edb951 0 14px,#ffe4a0 14px 28px);background-size:60px 100%;animation:loading-stripes 1.8s linear infinite}
.loading-meter-glow{position:absolute;top:0;bottom:0;width:45%;background:linear-gradient(90deg,transparent,#fff9,transparent);animation:loading-meter-sweep 2.4s ease-in-out infinite;pointer-events:none}
.construction-loading-caption{display:flex;align-items:center;justify-content:center;gap:12px;min-height:28px;margin:9px 0 0}
.construction-loading-caption [data-loading-status]{margin:0;font-size:12px;line-height:1.5;color:#3d7771;font-weight:600}
.construction-loading-caption [data-loading-detail]{font-size:12px;font-weight:800;color:#285d55;font-variant-numeric:tabular-nums}
.construction-loading-dock [data-loading-slow]{margin:4px 0 0;font-size:11px;line-height:1.5;color:#477a73}
.construction-loading-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:17px 0 0}
.construction-loading-actions button{display:flex;justify-content:center;align-items:center;gap:9px;min-height:43px;padding:10px 19px;border:1px solid #fafff0b3;border-radius:15px;background:#f8fff07d;color:#356d62;font:700 12px system-ui,sans-serif;cursor:pointer;transition:transform .2s,background .2s;touch-action:manipulation}
.construction-loading-actions [data-loading-skip],.construction-loading-actions [data-loading-retry]{background:#f8cf76;border:2px solid #fff3c4;box-shadow:0 4px 0 #bd964c;color:#5c492d;min-width:165px}
.construction-loading-actions [data-loading-skip]>span{display:grid;place-items:center;width:24px;height:24px;background:#fff4c773;border-radius:50%;font-size:11px}
.construction-loading-actions button:hover{transform:translateY(-3px);background:#fffae6}
.construction-loading-actions button:focus-visible{outline:3px solid #326b57;outline-offset:5px}
.construction-loading [hidden]{display:none!important}
.loading-cloud{position:absolute;width:130px;height:35px;background:#ffffff7a;border-radius:100%;animation:loading-cloud-drift 18s ease-in-out infinite alternate}
.loading-cloud:before,.loading-cloud:after{content:'';position:absolute;bottom:9px;background:inherit;border-radius:50%;width:57px;height:48px;left:19px}
.loading-cloud:after{width:43px;height:35px;left:66px}
.loading-cloud-a{left:5%;top:28%;scale:.9;animation-delay:-5s}
.loading-cloud-b{right:7%;top:18%;scale:1.2;animation-delay:-11s}
.loading-cloud-c{right:18%;bottom:23%;scale:.65;opacity:.6;animation-delay:-3s}
.loading-orbit{position:absolute;width:760px;height:250px;left:50%;top:44%;border:1px solid #f3ffe45c;border-radius:50%;transform:translate(-50%,-50%) rotate(-12deg)}
.loading-orbit:after{content:'';position:absolute;inset:-55px -80px;border:1px solid #f3ffe42e;border-radius:50%}
.loading-spark{position:absolute;color:#fff9d6;animation:loading-twinkle 3.5s ease-in-out infinite;font-size:28px}
.loading-spark-a{left:20%;top:17%;animation-delay:-1s}.loading-spark-b{right:22%;top:39%;font-size:19px;animation-delay:-2s}.loading-spark-c{left:12%;bottom:23%;font-size:20px}
.loading-island{animation:loading-island-float 5s ease-in-out infinite;transform-origin:50% 60%}
.loading-island-shadow{animation:loading-shadow 5s ease-in-out infinite;transform-origin:50% 90%}
.loading-dig-arm{transform-box:fill-box;transform-origin:0% 90%;animation:loading-dig 3.2s ease-in-out infinite}
.loading-truck{animation:loading-truck-drive 7s ease-in-out infinite}
.loading-crane-hook{transform-box:fill-box;transform-origin:50% 0;animation:loading-hook-sway 4s ease-in-out infinite}
.loading-tree{transform-box:fill-box;transform-origin:50% 100%;animation:loading-tree-sway 4s ease-in-out infinite;animation-delay:var(--tree-delay)}
.loading-flag-cloth{transform-box:fill-box;transform-origin:0 50%;animation:loading-flag-wave 1.6s ease-in-out infinite}
.loading-dust{animation:loading-dust-puff 3.2s ease-out infinite;transform-origin:370px 270px}
.loading-bird{animation:loading-bird-glide 11s ease-in-out infinite}
.is-loading-error .construction-loading-meter{display:none}.is-loading-error .loading-meter-glow{animation:none}
@keyframes loading-island-float{50%{transform:translateY(-9px)}}
@keyframes loading-shadow{50%{transform:scaleX(.93);opacity:.1}}
@keyframes loading-dig{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(15deg)}}
@keyframes loading-truck-drive{0%,100%{transform:translate(0,0)}45%,55%{transform:translate(82px,30px)}}
@keyframes loading-hook-sway{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(7deg)}}
@keyframes loading-tree-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes loading-flag-wave{50%{transform:scaleX(.86) skewY(-4deg)}}
@keyframes loading-dust-puff{0%,35%,100%{opacity:0;transform:translateY(0) scale(.6)}55%{opacity:.9}85%{opacity:0;transform:translateY(-15px) scale(1.5)}}
@keyframes loading-bird-glide{0%,100%{transform:translate(0,0)}50%{transform:translate(70px,-14px)}}
@keyframes loading-cloud-drift{from{transform:translateX(-20px)}to{transform:translateX(30px)}}
@keyframes loading-twinkle{0%,100%{opacity:.25;transform:scale(.8) rotate(-10deg)}50%{opacity:1;transform:scale(1.1) rotate(10deg)}}
@keyframes loading-stripes{to{background-position:60px 0}}
@keyframes loading-meter-sweep{from{transform:translateX(-120%)}to{transform:translateX(350%)}}
@media(max-width:600px){.construction-loading{min-height:510px;padding:65px 14px 28px;border-radius:23px}.construction-loading-brand{left:20px;top:20px;font-size:9px}.construction-loading-art{width:132%;max-width:none;margin:0 -16% 16px}.construction-loading-card h2{font-size:27px;margin-bottom:23px}.construction-loading-dock{width:90%}.loading-cloud-a{left:-12%;top:22%}.loading-cloud-b{right:-14%;top:20%;scale:.9}.loading-spark-a{left:13%;top:21%}.construction-loading-actions{gap:10px}.construction-loading-actions button{padding:10px 14px}.construction-loading-actions [data-loading-skip]{min-width:150px}}
@media(prefers-reduced-motion:reduce){.construction-loading *,.construction-loading *:before,.construction-loading *:after,.construction-loading progress::-webkit-progress-bar{animation:none!important;transition:none!important}}

/* Simulator control deck: steering, reversible pedals and contextual tools. */
.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:20px;padding:12px 18px;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom));border-top:1px solid #4b5d5c;background:linear-gradient(115deg,#25363b,#16262e 70%,#203239);box-shadow:inset 0 1px #ffffff09;color:#dce9e3}
.construction-game .construction-vehicle-select,.construction-game.is-fullscreen .construction-vehicle-select{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:9px;flex:none;width:100%;min-width:0;font:600 9px system-ui;color:#a2bbb3}
.sim-vehicle-caption{display:flex;align-items:center;gap:9px;min-width:0;font:700 9px/1.2 system-ui;letter-spacing:.1em;color:#cbded6}.sim-vehicle-caption>.mdi{font-size:25px;color:#dbbf85}.sim-vehicle-caption small{display:block;margin-top:4px;color:#83a89a;font:500 6px/1.2 system-ui;letter-spacing:.11em}
.construction-game .construction-vehicle-select select,.construction-game.is-fullscreen .construction-vehicle-select select{width:100%;max-width:none;min-width:0;min-height:42px;padding:9px 11px;border:1px solid #526b65;border-bottom-color:#0c1e23;border-radius:9px;background:#1b3037;color:#e0ede4;box-shadow:inset 0 1px #ffffff0b,0 2px #0a1a204d;font:500 10px system-ui;cursor:pointer;color-scheme:dark}
.construction-game .construction-help{display:none}
.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{display:grid;grid-column:auto;grid-template-columns:152px 190px minmax(0,1fr);align-items:stretch;gap:18px;width:100%;min-width:0}
.sim-control-caption{display:block;margin:0 0 7px;font:600 7px/1 system-ui;letter-spacing:.16em;color:#8ca69e}.sim-steering-cluster,.sim-pedal-cluster{min-width:0}
.construction-game .construction-touch--complete .construction-direction-pad{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;grid-template-rows:64px;align-items:center;gap:1px;padding:0;min-width:0}
.construction-game .construction-touch--complete .construction-direction-pad button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;grid-row:1;width:44px;min-width:44px;height:60px;min-height:44px;padding:7px 0;border:1px solid #5b706a;border-bottom:3px solid #0d2228;border-radius:13px;background:linear-gradient(150deg,#3a5051,#243b41);box-shadow:inset 0 1px #8caba529,0 3px 8px #06171d4d;color:#cae0d5;touch-action:none;user-select:none;-webkit-user-select:none;transition:background .12s,transform .12s,box-shadow .12s}
.construction-game .construction-touch--complete .construction-direction-pad [data-control=left]{grid-column:1;grid-row:1}.construction-game .construction-touch--complete .construction-direction-pad [data-control=right]{grid-column:3;grid-row:1}
.construction-direction-pad button svg{width:25px;height:25px;pointer-events:none}
.sim-steering-wheel{grid-column:2;grid-row:1;position:relative;width:100%;max-width:64px;aspect-ratio:1;justify-self:center;isolation:isolate;--steering-angle:0deg;pointer-events:none}
.sim-wheel-rim{position:absolute;inset:0;width:100%;height:100%;color:#9db4ad;transform:rotate(var(--steering-angle));transition:transform .12s ease-out;filter:drop-shadow(0 3px 2px #05141980)}
.sim-wheel-rim circle{stroke:#94aaa2;stroke-width:7;fill:#16272d}.sim-wheel-rim path{stroke:#69877c;stroke-width:7;stroke-linecap:round;fill:none}.sim-wheel-rim .sim-wheel-marker{stroke:#f5d28d;stroke-width:4}
.sim-drive-gear{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;gap:2px;width:29px;height:29px;border:1px solid #58786d;border-radius:50%;background:#233c3f;box-shadow:0 0 0 3px #15282e}
.sim-drive-gear b{color:#cce9d6;font:700 14px/.9 ui-monospace,SFMono-Regular,Consolas,monospace;text-shadow:0 0 8px #ace0c544}.sim-drive-gear small{font:500 4px/1 system-ui;letter-spacing:.12em;color:#7c9c90}.sim-drive-gear [data-gear=R]{color:#9dd8eb}.sim-drive-gear [data-gear=B]{color:#ffb391}
.construction-pedals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:7px;height:64px}
.construction-game .construction-touch--complete .sim-pedal{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:44px;height:64px;padding:6px 3px;border:1px solid #759d90;border-bottom:4px solid #122b2c;border-radius:12px 12px 8px 8px;background:linear-gradient(155deg,#42635a,#2a4946);color:#d8efdc;box-shadow:inset 0 1px #e3f5de19,0 4px 8px #07192140;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .12s,box-shadow .12s,background .12s;position:relative;overflow:hidden}
.construction-game .construction-touch--complete .sim-pedal:before{content:'';position:absolute;left:6px;right:6px;bottom:4px;height:7px;background:repeating-linear-gradient(0deg,#cce8d416 0 1px,transparent 1px 3px);pointer-events:none}
.sim-pedal svg{width:20px;height:20px;flex:0 0 20px;pointer-events:none}.sim-pedal>span{font:700 9px/1 system-ui;letter-spacing:.02em;pointer-events:none}
.construction-touch--complete kbd{padding:0;border:0;border-radius:0;background:none;color:inherit;opacity:.5;font:500 6px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em;pointer-events:none}
.construction-game .construction-touch--complete .sim-pedal-reverse{border-color:#668d9c;border-bottom-color:#10272f;background:linear-gradient(155deg,#365765,#263f4b);color:#cae3ec}
.construction-game .construction-touch--complete .sim-pedal-brake{border-color:#aa7c69;border-bottom-color:#38262b;background:linear-gradient(155deg,#765748,#4b3835);color:#f3c3a6}
.construction-game .construction-touch--complete .sim-pedal-forward{border-color:#83b19a;border-bottom-color:#16392e;background:linear-gradient(155deg,#537e63,#325845);color:#e3f5d7}
.construction-game .construction-touch--complete .construction-drive{display:flex;grid-template-columns:none;align-items:stretch;gap:8px;min-width:0;padding-top:14px}
.construction-game .construction-touch--complete .construction-drive:not(:has(>button:not([hidden]))){display:none}
.construction-game .construction-touch--complete .construction-drive button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;grid-column:auto;width:auto;min-width:0;min-height:44px;height:64px;margin:0;padding:10px;border:1px solid #f3d9a4;border-bottom:4px solid #94733e;border-radius:12px;background:linear-gradient(150deg,#edcf8c,#cda363);box-shadow:inset 0 1px #fff6d255,0 4px 8px #07192140;color:#493d2a;font:700 10px/1.4 system-ui;overflow-wrap:anywhere;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .12s,box-shadow .12s,filter .12s}
.construction-drive button:before{content:'';flex:0 0 19px;width:19px;height:19px;background:currentColor;-webkit-mask:var(--sim-action-icon) center/contain no-repeat;mask:var(--sim-action-icon) center/contain no-repeat;opacity:.8;pointer-events:none}
.construction-drive .construction-attack{--sim-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m14 6 4-4a6 6 0 0 1-7 8L4 17a2 2 0 0 0 3 3l7-7a6 6 0 0 0 8-7l-4 4-4-4Z'/%3E%3C/svg%3E")}
.construction-game .construction-touch--complete .construction-drive .construction-build{--sim-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M4 21V7l8-4 8 4v14H4Zm5 0v-5h6v5M8 9h2m4 0h2m-8 3h2m4 0h2'/%3E%3C/svg%3E");border-color:#648590;border-bottom-color:#19313b;background:linear-gradient(155deg,#426371,#2a4550);color:#c7e0e6}
.construction-game .construction-touch--complete .construction-drive .construction-supply{--sim-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='m3 7 9-4 9 4v11l-9 4-9-4V7Zm0 0 9 4 9-4M12 11v11M8 5l9 4'/%3E%3C/svg%3E");border-color:#578c82;border-bottom-color:#143b36;background:linear-gradient(155deg,#376a60,#264e49);color:#c1e1cd}
.construction-game .construction-touch--complete button:not(:disabled):hover{filter:brightness(1.1)}
.construction-game .construction-touch--complete button.held,.construction-game .construction-touch--complete button:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 2px 8px #07192150,0 0 12px #bdeacc22;filter:brightness(1.2);border-bottom-width:1px}
.construction-game .construction-touch--complete button:disabled{opacity:.38;filter:saturate(.4);cursor:not-allowed}.construction-game .construction-touch--complete button[hidden]{display:none!important}
.construction-game .construction-touch--complete button:focus-visible{outline:2px solid #ffe2a0;outline-offset:3px}
.construction-game[data-control-state=braking] .sim-drive-gear{border-color:#db9b77;box-shadow:0 0 0 3px #352e2b,0 0 15px #ffbd8020}
.construction-game[data-control-state=paused] .sim-vehicle-caption small,.construction-game[data-control-state=loading] .sim-vehicle-caption small{color:#abb9bf}
@media(max-width:1100px) and (min-height:551px){.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{grid-template-columns:minmax(0,1fr);gap:11px}.construction-game .construction-vehicle-select,.construction-game.is-fullscreen .construction-vehicle-select{display:grid;grid-template-columns:minmax(100px,.65fr) minmax(0,1fr);align-items:center;gap:10px}.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-column:1/-1;grid-template-columns:152px 190px minmax(0,1fr);gap:14px}}
@media(max-width:600px){.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{display:grid;grid-template-columns:minmax(0,1fr);padding:9px 11px;padding-bottom:max(9px,env(safe-area-inset-bottom));gap:9px}.construction-game .construction-vehicle-select,.construction-game.is-fullscreen .construction-vehicle-select{display:grid;grid-template-columns:minmax(105px,.75fr) minmax(0,1fr);gap:8px}.sim-vehicle-caption{font-size:7px;letter-spacing:.06em;gap:6px}.sim-vehicle-caption>.mdi{font-size:20px}.sim-vehicle-caption small{font-size:5px;letter-spacing:.04em}.construction-game .construction-vehicle-select select,.construction-game.is-fullscreen .construction-vehicle-select select{min-height:38px;padding:7px 9px;font-size:9px}.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-column:1/-1;grid-template-columns:minmax(140px,.95fr) minmax(150px,1.05fr);gap:8px 12px}.sim-control-caption{font-size:6px;margin-bottom:5px;letter-spacing:.13em}.construction-game .construction-touch--complete .construction-direction-pad{grid-template-columns:44px minmax(0,1fr) 44px;grid-template-rows:58px}.construction-game .construction-touch--complete .construction-direction-pad button{height:54px;min-height:44px;width:44px;min-width:44px;border-radius:11px}.sim-steering-wheel{max-width:58px}.construction-pedals{height:58px;gap:6px}.construction-game .construction-touch--complete .sim-pedal{height:58px;border-radius:10px 10px 7px 7px;gap:5px}.sim-pedal>span{font-size:8px}.construction-touch--complete kbd{display:none}.construction-game .construction-touch--complete .construction-drive{grid-column:1/-1;padding:0;gap:7px}.construction-game .construction-touch--complete .construction-drive button{height:44px;min-height:44px;padding:8px 10px;font-size:9px;border-radius:9px;gap:7px}.construction-drive button:before{width:17px;height:17px;flex-basis:17px}}
@media(max-width:360px){.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{padding-left:8px;padding-right:8px}.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{gap:8px;grid-template-columns:minmax(132px,.9fr) minmax(148px,1.1fr)}.construction-game .construction-touch--complete .construction-drive button{font-size:8px;padding:7px 6px}.construction-drive button:before{display:none}}
@media(min-width:601px) and (max-height:550px){.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{display:grid;grid-template-columns:135px minmax(0,1fr);align-items:center;gap:12px;padding:7px 12px}.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-column:auto;grid-template-columns:140px 160px minmax(0,1fr);gap:12px}.sim-control-caption{font-size:6px;margin-bottom:4px}.construction-game .construction-touch--complete .construction-direction-pad{grid-template-rows:54px}.construction-game .construction-touch--complete .construction-direction-pad button{height:50px;min-height:44px}.sim-steering-wheel{max-width:54px}.construction-game .construction-touch--complete .sim-pedal,.construction-pedals{height:54px}.construction-touch--complete kbd{display:none}.construction-game .construction-touch--complete .construction-drive{padding-top:10px;gap:6px}.construction-game .construction-touch--complete .construction-drive button{height:54px;font-size:9px;padding:7px}.construction-drive button:before{display:none}.sim-vehicle-caption{font-size:7px;gap:6px}.sim-vehicle-caption>.mdi{font-size:18px}.sim-vehicle-caption small{font-size:5px}.construction-game .construction-vehicle-select select{min-height:35px;font-size:9px;padding:7px}}
@media(prefers-reduced-motion:reduce){.construction-touch--complete *,.construction-touch--complete *:before{transition:none!important;animation:none!important}}
@media(min-width:601px) and (max-width:750px) and (max-height:550px){.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{grid-template-columns:105px minmax(0,1fr);gap:10px}.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-template-columns:132px 144px minmax(0,1fr);gap:8px}}
/* A single live minimap replaces the decorative radar. */
.sim-vehicle-caption [data-minimap]{display:block;box-sizing:border-box;width:48px;height:48px;flex:0 0 48px;border:1px solid #638d7a;border-radius:9px;background:#26332e;box-shadow:0 0 0 3px #101e24}
.cockpit-map-slot{display:block;flex:0 0 62px;width:62px;height:62px}
.cockpit-map-slot [data-minimap]{display:block;box-sizing:border-box;width:100%;height:100%;border:1px solid #638d7a;border-radius:8px;box-shadow:0 0 0 3px #101e24;background:#26332e}
.construction-live-status .cockpit-console-heading{grid-template-columns:minmax(0,1fr) auto;gap:8px}
.construction-live-status .cockpit-console-brand{grid-row:1/3}
.construction-live-status .cockpit-speed{padding:0;justify-self:end}
.construction-live-status .village-options-toggle{grid-column:2}
.sim-compass-needle{position:absolute;inset:0;width:100%;height:100%;transform:rotate(var(--heading-angle,0deg));transform-origin:center;pointer-events:none;filter:drop-shadow(0 0 3px #efc26388)}
.sim-compass-needle path{fill:#f9da91;stroke:#172e34;stroke-width:1}
.sim-drive-gear [data-heading-readout]{font:600 5px/1 ui-monospace,monospace;letter-spacing:0;white-space:nowrap;color:#adcbbb}
.construction-game .construction-mission [hidden]{display:none!important}
@media(max-width:600px){
 .sim-vehicle-caption [data-minimap]{width:36px;height:36px;flex-basis:36px}
 .construction-live-status .cockpit-console-heading{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px 9px;margin-bottom:7px}
 .construction-live-status .cockpit-console-brand{grid-row:1/3;gap:7px;font-size:9px}
 .construction-live-status .cockpit-map-slot{width:50px;height:50px;flex-basis:50px}
 .construction-live-status .cockpit-mode{grid-column:2;grid-row:1}
 .construction-live-status .cockpit-speed{grid-column:2;grid-row:2;justify-self:end}
 .construction-live-status .village-options-toggle{grid-column:3;grid-row:1/3;width:44px;height:44px}
}
@media(min-width:601px) and (max-height:550px){
 .construction-live-status .cockpit-map-slot{width:46px;height:46px;flex-basis:46px}
 .construction-live-status .cockpit-console-brand{font-size:9px;gap:7px}
 .sim-vehicle-caption [data-minimap]{width:34px;height:34px;flex-basis:34px}
 .construction-live-status .cockpit-console-heading{column-gap:6px;row-gap:4px}
}
.sim-vehicle-caption [data-control-status][hidden]{display:none!important}

/* Mission actions live in the control deck, with one touch target per action. */
.construction-info-panel [data-control]{display:none!important}
@media(min-width:601px) and (max-width:750px) and (max-height:550px){
 .construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-template-columns:132px 146px minmax(0,1fr)}
}
/* Keep the map and controls together even before entering fullscreen on a phone. */
@media(max-width:600px),(max-width:950px) and (max-height:550px){
 .construction-game:not(.is-fullscreen){display:flex;flex-direction:column;height:100dvh;box-sizing:border-box}
 .construction-game:not(.is-fullscreen) .construction-stage{height:auto;min-height:100px;flex:1 1 auto}
 .construction-game:not(.is-fullscreen) .construction-topbar,.construction-game:not(.is-fullscreen) .construction-bottom{flex:0 0 auto}
}
@media(max-width:600px) and (max-height:600px){
 .construction-game>.construction-live-status{padding-top:6px;padding-bottom:6px}
 .construction-live-status .cockpit-map-slot{width:44px;height:44px;flex-basis:44px}
 .construction-live-status .cockpit-console-heading{margin-bottom:5px}
 .construction-live-status .cockpit-readout-caption{display:none}
 .construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{padding-top:6px;padding-bottom:max(6px,env(safe-area-inset-bottom));gap:6px}
 .construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{row-gap:6px}
 .construction-game .construction-touch--complete .sim-pedal,.construction-pedals{height:54px}
 .construction-game .construction-touch--complete .construction-direction-pad{grid-template-rows:54px}
 .construction-game.is-fullscreen .construction-stage{min-height:100px}
}
@media(max-width:600px) and (max-height:600px){
 .construction-live-status:has(.village-status-options:not([hidden])) .village-status-row{visibility:hidden}
 .construction-live-status .village-status-options{position:absolute;left:12px;right:12px;bottom:9px;height:56px;margin:0;padding:0;border:0;display:flex;align-items:center}
 .construction-live-status .village-challenges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:5px}
 .construction-live-status .village-challenges>button{min-height:44px;height:44px;padding:6px 5px;font-size:9px}
 .construction-live-status .village-run-metrics{display:none}
}
/* Ordered missions: one goal, one marker, contextual work buttons. */
.construction-campaign .construction-phase-track,.construction-campaign .construction-projects,.construction-campaign .construction-info-open,.construction-campaign .construction-score,.construction-campaign .construction-materials,.construction-campaign .construction-map-note,.construction-campaign .construction-help,.construction-campaign .construction-garage{display:none!important}
.construction-campaign .construction-mission{display:block!important;position:absolute;top:12px;left:12px;width:min(300px,calc(100% - 24px));padding:12px 15px!important;border-radius:16px;pointer-events:none}
.construction-campaign .construction-info-close{display:none!important}
.construction-campaign .construction-mission h3{display:block;margin:4px 0 8px;font-size:18px;line-height:1.3}
.construction-campaign .construction-tag{font-size:9px;letter-spacing:.08em}
.construction-campaign .construction-progress{display:flex;align-items:center;gap:10px;margin:0 0 5px}
.construction-campaign .construction-progress strong{font-size:14px}
.construction-campaign .construction-progress span{font-size:10px}
.construction-campaign .construction-mission>progress{height:5px;margin:3px 0 0}
.construction-campaign .construction-waypoint{max-width:calc(100% - 24px);padding:9px 15px;border-color:#64eac1;background:linear-gradient(90deg,#205b50 var(--objective-progress,0%),#1c3435 var(--objective-progress,0%));color:#e8fff6;font-size:12px;line-height:1.35}
.construction-campaign .construction-status{display:none}
.construction-campaign .construction-touch [data-control][hidden]{display:none!important}
.construction-campaign .construction-camera-caption,.construction-campaign .construction-camera-controls>small{display:none}
@media(max-width:700px){.construction-campaign .construction-mission{top:8px;left:8px;width:min(235px,calc(100% - 90px));padding:9px 12px!important}.construction-campaign .construction-mission h3{font-size:14px;margin-bottom:4px}.construction-campaign .construction-tag{font-size:8px}.construction-campaign .construction-progress strong{font-size:12px}.construction-campaign .construction-waypoint{font-size:11px;padding:7px 10px}.construction-campaign .construction-camera-controls{top:auto;bottom:110px;left:50%;right:auto;transform:translateX(-50%);width:max-content}}
/* One live canvas moves between the navigation dock, pinned radar and temporary dialog. */
.construction-radar-home{display:inline-flex;flex:none;align-items:center;justify-content:center;line-height:0}
.construction-game .construction-radar-trigger,.construction-game .construction-radar-shortcut{display:block;padding:0;border:0;border-radius:9px;background:#24483f;cursor:pointer;line-height:0;touch-action:manipulation}
.construction-radar-trigger:focus-visible,.construction-radar-shortcut:focus-visible{outline:3px solid #b5f0cf;outline-offset:3px}
.construction-radar-shortcut{width:40px;height:40px;color:#c8f4db;font-size:24px}
.construction-radar-pin{position:absolute;z-index:6;top:12px;right:12px;width:204px;padding:8px;border:1px solid #adc8b0;border-radius:16px;background:#183c34ed;box-shadow:0 8px 24px #14282038;box-sizing:border-box}
.radar-pin-caption{display:block;font-size:8px;font-weight:700;letter-spacing:.12em;color:#c5e2ce;margin:1px 3px 7px}
.construction-game .construction-radar-pin [data-minimap]{display:block;width:186px;height:186px;border-radius:10px;border:1px solid #a5c5b3;box-shadow:none}
.has-pinned-radar .construction-projects{top:245px;max-height:calc(100% - 260px)}
.has-pinned-radar .construction-info-open--right{right:228px}
.construction-radar-menu{position:fixed;z-index:10000;display:grid;gap:4px;width:184px;padding:6px;border:1px solid #a9c3b2;border-radius:13px;background:#f5fbf4;box-shadow:0 12px 36px #122c3540;box-sizing:border-box}
.construction-radar-menu button{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border:0;border-radius:8px;background:transparent;color:#254c40;text-align:left;font:600 12px system-ui;cursor:pointer;min-height:38px}
.construction-radar-menu button:hover,.construction-radar-menu button:focus-visible{background:#dcefe1;outline:0}
.construction-radar-menu [aria-checked=true]::after{content:'✓';color:#2a8260}
.construction-radar-dialog{width:min(90vw,680px);max-height:92dvh;margin:auto;padding:16px;overflow:auto;box-sizing:border-box;border:1px solid #96b8a6;border-radius:22px;background:#16392f;color:#e9fff0;box-shadow:0 24px 80px #10272180}
.construction-radar-dialog::backdrop{background:#0b1d22b8;backdrop-filter:blur(4px)}
.construction-radar-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.construction-radar-dialog header small{font-size:9px;letter-spacing:.15em;color:#a5c9b5}.construction-radar-dialog h2{font:700 20px system-ui;margin:3px 0 0}
.construction-radar-dialog [data-radar-close]{display:grid;place-items:center;width:38px;height:38px;border:1px solid #91baa6;border-radius:50%;background:#ffffff12;color:#edfff1;font-size:27px;cursor:pointer}
.construction-radar-dialog .construction-radar-large [data-minimap]{display:block;width:100%;height:auto;max-height:70dvh;object-fit:contain;aspect-ratio:1;border-radius:14px;box-shadow:none;border:1px solid #adc3ab;box-sizing:border-box}
.radar-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:9px 16px;font-size:10px;color:#cbe4d4;margin:12px 0 0}
.construction-radar-menu[hidden],.construction-radar-pin[hidden],.construction-radar-home [hidden],.construction-radar-pin [hidden]{display:none!important}
@media(max-width:600px){.construction-radar-pin{top:8px;right:8px;width:156px;padding:6px;border-radius:12px}.construction-game .construction-radar-pin [data-minimap]{width:142px;height:142px}.radar-pin-caption{font-size:7px;margin-bottom:5px}.has-pinned-radar .construction-info-open--right{right:174px}.has-pinned-radar .construction-projects{top:185px;max-height:calc(100% - 200px)}.construction-campaign.has-pinned-radar .construction-mission{width:calc(100% - 190px);max-width:200px;box-sizing:border-box}.construction-campaign.has-pinned-radar .construction-mission h3{font-size:12px}.construction-radar-dialog{width:94vw;padding:12px;border-radius:18px}.construction-radar-dialog h2{font-size:18px}}
.construction-game .construction-radar-shortcut{display:grid;place-items:center}.construction-radar-shortcut svg{display:block;color:#c8f4db}
.cockpit-map-slot .construction-radar-home,.cockpit-map-slot .construction-radar-trigger{width:100%;height:100%;box-sizing:border-box}.cockpit-map-slot .construction-radar-shortcut{width:100%;height:100%}

/* A single compact sound icon; settings stay outside the playing field. */
.construction-sound{position:relative;flex:none;color:#e6f5ff}
.construction-sound summary{display:grid;place-items:center;width:36px;height:36px;cursor:pointer;list-style:none;border:1px solid #ffffff24;border-radius:10px;background:#ffffff0d}
.construction-sound summary::-webkit-details-marker{display:none}
.construction-sound summary:focus-visible{outline:3px solid #6ee7c4;outline-offset:2px}
.construction-sound[open] summary{background:#256753}
.construction-sound-panel{position:absolute;right:0;top:44px;z-index:90;width:176px;padding:12px;display:grid;gap:12px;background:#142831;border:1px solid #6ee7c44d;border-radius:12px;box-shadow:0 12px 35px #0008;color:#edf8ff}
.construction-sound-panel label{display:grid;gap:5px;font-size:12px}
.construction-sound-panel input{width:100%;accent-color:#6ee7c4;touch-action:pan-x}
.construction-sound .construction-sound-panel button{width:100%;font-size:12px;height:32px}
@media(max-width:700px){.construction-sound-panel{left:0;right:auto;width:160px}.construction-sound summary{width:33px;height:33px}.construction-game .construction-sound .construction-sound-panel button{width:100%;height:35px;padding:4px 8px}.construction-game .construction-topbar>div:first-child{min-width:0}.construction-game .construction-topbar h2{overflow-wrap:normal}}
@media(max-width:380px){.construction-sound summary{width:29px;height:32px}}

/* Keep the vehicle selector and the three control groups as siblings in the dock. */
.construction-game{container-name:construction;container-type:inline-size}
.construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{grid-template-columns:210px minmax(0,1fr)}
.construction-game .construction-bottom>.construction-vehicle-select{grid-column:auto;min-width:0}
.construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-template-columns:152px 190px minmax(250px,1fr);grid-column:auto}
.construction-game .construction-touch--complete .construction-drive button{flex-direction:column;gap:4px;word-break:normal;overflow-wrap:normal;white-space:normal;line-height:1.25;text-align:center}
.sim-vehicle-caption .sim-vehicle-readout{display:grid;gap:7px;flex:1;min-width:0;letter-spacing:normal}
.sim-vehicle-readout [data-active-vehicle]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 10px/1.3 system-ui;letter-spacing:.055em;text-transform:uppercase}
.sim-project-progress{display:flex;gap:7px;align-items:center;min-width:0}
.sim-project-progress progress{display:block;flex:1;width:0;min-width:24px;height:6px;margin:0;border:0;border-radius:8px;overflow:hidden;background:#ffffff17;appearance:none;accent-color:#8fe1b5}
.sim-project-progress progress::-webkit-progress-bar{background:#ffffff17;border-radius:8px}
.sim-project-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#64ad91,#a6e4b4);border-radius:8px}
.sim-project-progress progress::-moz-progress-bar{background:#8fe1b5;border-radius:8px}
.sim-project-progress output{min-width:28px;color:#b8e5cb;font:700 9px/1 system-ui;font-variant-numeric:tabular-nums;text-align:right}
.construction-game .sim-vehicle-caption .construction-radar-home{flex:0 0 48px;width:48px;height:48px}
.construction-game .sim-vehicle-caption .construction-radar-trigger,.construction-game .sim-vehicle-caption .construction-radar-shortcut{width:100%;height:100%;box-sizing:border-box}
@container construction (max-width:1100px){
 .construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{grid-template-columns:minmax(0,1fr);gap:10px}
 .construction-game .construction-bottom>.construction-vehicle-select{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,260px);align-items:center;gap:14px}
 .construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-column:1/-1;grid-template-columns:152px 190px minmax(250px,1fr);gap:16px}
 .sim-vehicle-caption .sim-vehicle-readout{flex:0 1 260px}
}
@container construction (max-width:780px){
 .construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-template-columns:minmax(140px,1fr) minmax(150px,1.15fr);gap:8px 14px}
 .construction-game .construction-touch--complete .construction-drive{grid-column:1/-1;padding-top:0;gap:8px}
 .construction-game .construction-touch--complete .construction-drive button{flex-direction:row;height:44px;min-height:44px;padding:7px 8px;font-size:9px}
 .construction-game .construction-touch--complete .construction-drive button:before{display:block;width:17px;height:17px;flex-basis:17px}
 .sim-vehicle-readout [data-active-vehicle]{font-size:9px}
}
@container construction (max-width:420px){
 .construction-game .construction-bottom,.construction-game.is-fullscreen .construction-bottom{padding-left:10px;padding-right:10px;gap:9px}
 .construction-game .construction-bottom>.construction-vehicle-select{grid-template-columns:minmax(0,1fr) minmax(118px,.9fr);gap:10px}
 .construction-game .sim-vehicle-caption .construction-radar-home{width:36px;height:36px;flex-basis:36px}
 .construction-game .sim-vehicle-caption [data-minimap]{width:36px;height:36px;flex-basis:36px}
 .sim-vehicle-caption{gap:7px}
 .sim-vehicle-readout [data-active-vehicle]{font-size:8px;letter-spacing:.025em}
 .sim-project-progress{gap:4px}.sim-project-progress output{font-size:8px;min-width:24px}
 .construction-game .construction-touch--complete,.construction-game.is-fullscreen .construction-touch--complete{grid-template-columns:minmax(128px,1fr) minmax(144px,1.1fr);gap:8px}
}
