:root{--ink:#eceddf;--muted:#a0b5b4;--dark:#122e34;--panel:#153238;--line:#456063;--accent:#dbe8bd;--coral:#e1b098;--teal:#91d4c4;color-scheme:dark;font-family:Arial,Helvetica,sans-serif;font-size:14px;background:#172c34;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,input,summary{font:inherit}button{cursor:pointer;background:#204148;border:1px solid #52707180;color:var(--ink);border-radius:5px;min-height:40px;padding:9px 13px;transition:background .18s,border-color .18s}button:hover{background:#365961;border-color:#b5c9b6}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible,summary:focus-visible{outline:2px solid #dceaba;outline-offset:4px}button.primary,.hero-button{background:var(--accent);color:#21393b;border-color:var(--accent);font-weight:600}button.primary:hover,.hero-button:hover{background:#eff4db}.primary span,.hero-button span{margin-left:18px}button.text-button{background:transparent;border-color:transparent}button.text-button:hover{background:#2d4a50}button.full{width:100%;margin:6px 0}button.subtle{background:transparent}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.skip{position:absolute;top:-100px;left:20px;z-index:100;background:#e9efce;padding:12px;color:#18343a}.skip:focus{top:10px}#scene{display:block;width:100%;height:100%;touch-action:none;outline:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0c2228a6 0,transparent 22%,transparent 66%,#0c2228bd 100%)}.topbar{position:absolute;left:32px;right:32px;top:24px;display:flex;align-items:center;gap:32px;z-index:10;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:12px;align-items:center;padding:0;background:none!important;border:0;font-family:Georgia,serif;font-size:29px;letter-spacing:3px;line-height:1}.brand-mark{font-size:39px;font-family:Georgia,serif;letter-spacing:-8px;padding-right:6px;transform:scaleX(.8);color:var(--accent)}.brand small{display:block;letter-spacing:3.2px;font-family:Arial,sans-serif;font-size:8px;margin-top:8px;color:#bbcdc6}.top-context{display:flex;align-items:center;gap:10px;color:#d6e0d6;font-size:11px;letter-spacing:.4px;white-space:nowrap}.live-dot{width:6px;height:6px;background:#b5dac0;border-radius:50%;box-shadow:0 0 12px #bcf0c7}.slash{opacity:.35;margin:0 6px}.edition{font-size:9px;letter-spacing:2px}.top-actions{display:flex;align-items:center;gap:5px;margin-left:auto}.top-actions #undo,.top-actions #redo{font-size:22px;border:0;background:transparent;width:35px;padding:0}.help-button{border-radius:50%;min-height:30px;width:30px;margin-left:7px;padding:0;background:transparent}.welcome{position:absolute;left:5vw;bottom:22%;pointer-events:none;max-width:520px;text-shadow:0 2px 28px #112c34;transition:opacity .3s}.welcome button{pointer-events:auto}.eyebrow{font-size:9px;letter-spacing:2.1px;font-weight:600;line-height:1.6;color:var(--accent);margin:0 0 12px}.welcome h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,4.6vw,76px);font-weight:400;letter-spacing:-2px;line-height:1.08;margin:0}.welcome em{font-weight:400;color:#e4ebc7}.welcome .intro{color:#d4e0d8;font-size:13px;line-height:1.8;margin:19px 0}.hero-button{border-radius:3px;padding:13px 19px;font-size:12px}.hotspot{position:absolute;display:flex;align-items:center;gap:10px;padding:8px 12px 8px 8px;background:#183a3eea;backdrop-filter:blur(12px);box-shadow:0 5px 24px #10252d55;transform:translate(-50%,-50%);z-index:2;text-align:left;letter-spacing:1.2px;font-size:10px;border-color:#a4bcb18a}.hotspot small{display:block;color:#b3c7c0;font-size:9px;letter-spacing:.2px;margin-top:5px}.spot-dot{width:27px;height:27px;border:1px solid #a2b59980;border-radius:50%;display:grid;place-items:center;font-size:10px;color:var(--accent)}.bottom{position:absolute;bottom:36px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:10}.controls-hint{display:flex;align-items:center;gap:13px;font-size:10px;color:#d5dfd6}.controls-hint button{font-size:10px;background:#16333bd9;min-height:36px}.exhibits{display:flex;background:#112e36e8;border:1px solid #55727390;backdrop-filter:blur(15px);border-radius:7px;padding:4px;box-shadow:0 6px 28px #09202966}.exhibits button{font-size:11px;border-color:transparent;background:transparent;padding:10px 17px;white-space:nowrap}.exhibits button:hover,.exhibits button.active{background:#325158}.exhibits b{font-size:9px;color:#bbcead;margin-right:9px;font-weight:400}.exhibits span{margin-left:20px;color:#acbdb5}.transport{display:flex;gap:9px;align-items:center;background:#16333bd9;border:1px solid #55727366;border-radius:5px;padding:0 10px}.transport button{background:transparent;border:0;width:23px;padding:0;font-size:15px}.transport input{width:85px}.transport #clock{font-size:10px;font-variant-numeric:tabular-nums;color:#c5d9d0}.save-status{position:absolute;bottom:12px;left:32px;font-size:9px;color:#b4c6be;z-index:10;max-width:70vw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kiosk{position:absolute;top:96px;bottom:104px;right:26px;width:375px;background:linear-gradient(145deg,#1c3c43f7,#102e35fc);backdrop-filter:blur(20px);border:1px solid #78938c66;border-radius:10px;box-shadow:0 24px 90px #081a2766;z-index:15;display:flex;flex-direction:column}.kiosk-head{padding:23px 25px 15px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #55737366}.kiosk-head .eyebrow{margin-bottom:5px}.kiosk h2{font-family:Georgia,serif;font-size:33px;font-weight:400;margin:0;letter-spacing:-.5px}.close{background:none;border:0;font-size:27px;line-height:1;width:34px;min-height:32px;padding:0}.kiosk-scroll{padding:19px 25px 22px;overflow:auto;scrollbar-width:thin;scrollbar-color:#6d8580 transparent;flex:1}.panel-intro{font-size:12px;line-height:1.7;color:#c1d0cb;margin:0 0 22px}.curve-label{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.2px;color:#c0cbb7;margin-bottom:9px}.curve-label span{letter-spacing:0;color:#9ab5b4}#score{display:block;background:#102a32;width:100%;height:154px;border:1px solid #557a7a88;border-radius:5px;touch-action:none;cursor:crosshair}.legend{display:flex;gap:18px;font-size:9px;margin:9px 0 15px;color:#aec1bc}.legend span:before{content:'';display:inline-block;width:15px;margin-right:6px;border-top:1px solid #e4b59b;vertical-align:middle}.legend .dotted:before{border-top:1px dashed #96b6b9}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 20px}.preset-grid button{font-size:10px;min-height:34px;padding:6px}.preset-grid.three{grid-template-columns:repeat(3,1fr)}.preset-grid button.active{border-color:#c6dcb7;background:#3a5858}.preset-grid .risk{color:#e4b49e}.control{margin:15px 0}.control label{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#d7dfd2;margin-bottom:7px}.control output{font-size:10px;color:#aac4bb;font-variant-numeric:tabular-nums}input[type=range]{accent-color:#cadfb9;width:100%;cursor:pointer;height:18px;margin:0}.gate{display:flex;align-items:flex-start;gap:11px;border:1px solid #6887787d;border-radius:5px;padding:13px;margin:18px 0 7px;background:#36574838}.gate.invalid{border-color:#c88d7966;background:#7b4d4529}.gate>span{color:#bfd8a8;font-size:19px}.gate.invalid>span{color:#e4b19b}.gate strong{font-size:10px;font-weight:500}.gate p{font-size:9px;line-height:1.5;margin:5px 0 0;color:#acc3ba}.kiosk details{border-top:1px solid #6b827155;margin-top:17px}.kiosk summary,dialog summary{font-size:11px;padding:15px 0;cursor:pointer;color:#d8e2cf}.details-inner{padding:0 0 5px}.fine{font-size:10px;line-height:1.65;color:#9db7b1;margin:12px 0}.next-step{margin:23px 0 0;padding-top:16px;border-top:1px solid #68847766}.next-step>span{font-size:8px;letter-spacing:1.2px;color:#b1c6b8}.next-step button{margin-top:10px;width:100%;background:transparent;font-size:11px;text-align:left}.kiosk-foot{padding:12px 23px;border-top:1px solid #5f7b7766;display:flex;justify-content:space-between;color:#a8c3b6;font-size:9px}.local-label{font-size:8px;letter-spacing:1.4px}.enter-button{padding:15px;font-size:12px;margin-bottom:26px!important}.section-label{font-size:8px;letter-spacing:1.4px;display:block;margin-bottom:10px;color:#b9cbb5}.connection{padding:17px 16px;border:1px solid #6f897766;background:#25494566;border-radius:5px;margin:23px 0 14px}.connection .eyebrow{font-size:7px;letter-spacing:1.3px}.connection h3{font:22px Georgia,serif;margin:0 0 10px}.connection p:not(.eyebrow){font-size:11px;line-height:1.65;color:#bbcebf}.connection button{font-size:11px;background:#19383d}.inside-bar{position:absolute;top:102px;left:32px;max-width:430px;background:#19363de8;border:1px solid #6c8a8066;border-radius:6px;padding:20px;z-index:11}.inside-bar button{font-size:11px;margin:2px}.inside-bar small{display:block;font-size:9px;color:#b9ccbd;margin-top:14px}.inside-bar .eyebrow{display:block}#toast{position:absolute;top:96px;left:50%;transform:translate(-50%,-12px);opacity:0;max-width:min(530px,88vw);background:#e6edcf;color:#18343b;border:1px solid #d8e0c6;box-shadow:0 5px 35px #10293066;border-radius:6px;padding:14px 20px;font-size:12px;line-height:1.6;pointer-events:none;z-index:60;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{color:var(--ink);background:#15343b;max-width:570px;width:calc(100% - 32px);max-height:85dvh;border:1px solid #8c9e886e;border-radius:9px;padding:29px;box-shadow:0 24px 150px #06161bbb;scrollbar-width:thin}dialog::backdrop{background:#051a24ab;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head .eyebrow{margin:0}dialog h2{font:38px/1.15 Georgia,serif;letter-spacing:-.8px;margin:17px 0}dialog p{font-size:12px;line-height:1.85;color:#c1d0c4}dialog pre{white-space:pre-wrap;word-break:break-word;font:10px/1.7 monospace;background:#0e2931;border:1px solid #496c6766;padding:16px;max-height:240px;overflow:auto;border-radius:4px}.architecture{border:1px solid #73907966;display:flex;align-items:center;flex-direction:column;padding:16px;gap:8px;font-size:9px;letter-spacing:1px;border-radius:4px}.architecture b{font-weight:400;color:#99b1a0}#inspector-state{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:18px 0;font-size:11px;color:#bdcfbb}#fallback{position:absolute;top:20%;left:8%;max-width:50vw;z-index:1}#fallback h2{font:35px Georgia,serif}#fallback p{line-height:1.8;color:#b0c4bc}#render-error{font-size:11px;white-space:pre-wrap}.touch-move{position:absolute;bottom:155px;left:30px;z-index:10;text-align:center}.touch-move button{width:41px;margin:2px;touch-action:none;background:#183a40cf}body.editing .controls-hint span{display:none}body.editing .welcome,body.inside .welcome{display:none}body.editing .hotspot,body.inside .hotspot{display:none}body.inside .exhibits{opacity:.85}body.editing .kiosk{animation:arrive .25s ease-out}@keyframes arrive{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1500px){.kiosk{width:400px}.kiosk-scroll{padding:23px 28px}#score{height:172px}}
@media(max-width:1150px){.top-context{display:none}.controls-hint>span{display:none}.topbar{left:24px;right:24px}.welcome{bottom:23%;left:5%}.transport .scrub{display:none}.bottom{left:24px;right:24px}.kiosk{width:355px;right:20px}.exhibits button{padding:9px 13px}}
@media(max-width:700px){.topbar{top:15px;left:18px;right:18px;gap:10px}.brand{font-size:23px;gap:7px}.brand-mark{font-size:31px}.brand small{font-size:6px}.top-actions{gap:2px}.top-actions #undo,.top-actions #redo{display:none}.top-actions #inspect{font-size:0;width:31px;padding:0}.top-actions #inspect:after{content:'⌘';font-size:20px}.top-actions #save{font-size:10px;padding:8px 10px;min-height:35px}.top-actions #save span{display:none}.top-actions #open{font-size:10px;padding:5px}.help-button{display:none}.welcome{left:24px;bottom:28%;max-width:86vw}.welcome .eyebrow{font-size:7px;letter-spacing:1.6px}.welcome h1{font-size:47px;line-height:1.08}.welcome .intro{font-size:11px;line-height:1.8;margin:17px 0}.hero-button{font-size:10px;padding:11px 15px}.hotspot{font-size:8px;padding:6px;gap:6px}.hotspot small{font-size:8px}.spot-dot{width:23px;height:23px;font-size:8px}.bottom{bottom:36px;left:12px;right:12px;display:flex;gap:8px;justify-content:center}.controls-hint{position:absolute;bottom:59px;left:8px}.controls-hint button{padding:7px 10px;font-size:9px;min-height:31px}.exhibits{flex:1;justify-content:space-around}.exhibits button{padding:9px 10px;flex:1;font-size:10px}.exhibits span{margin-left:8px}.transport{gap:0;padding:0 5px}.transport #clock{display:none}.transport button{width:30px}.save-status{left:17px;bottom:14px;font-size:8px;max-width:90vw}.kiosk{top:75px;right:10px;left:10px;bottom:100px;width:auto;background:#153238fa}.kiosk-head{padding:17px 20px 12px}.kiosk h2{font-size:28px}.kiosk-scroll{padding:16px 20px}.kiosk-foot{padding:10px 20px}body.editing .controls-hint{display:none}#score{height:153px}.panel-intro{font-size:11px;margin-bottom:15px}dialog{padding:21px}dialog h2{font-size:31px}.inside-bar{top:79px;left:15px;right:15px;max-width:none;padding:14px}.inside-bar .eyebrow{font-size:7px}.inside-bar button{font-size:10px;padding:6px 10px;min-height:34px}.inside-bar small{font-size:8px}.touch-move{left:19px;bottom:155px}.touch-move button{background:#133039e8}#fallback{left:7%;top:20%;max-width:85vw}#fallback h2{font-size:25px}body.no3d .welcome{display:none}#toast{top:77px;font-size:11px}body.inside .controls-hint{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

body:not(.editing):not(.inside) .vignette{background:linear-gradient(90deg,#102b32c4 0,transparent 56%),linear-gradient(180deg,#0c2228a6 0,transparent 22%,transparent 66%,#0c2228bd 100%)}

.mobile-history{display:none}@media(max-width:700px){.mobile-history{display:flex;gap:5px}.mobile-history button{font-size:19px;min-height:25px;width:32px;padding:0;border:0;background:transparent}.kiosk-foot{align-items:center}.kiosk-foot .local-label{display:none}}

/* Study 02 — field notes, not another dashboard. Scene-first on every aspect. */
:root{--accent:#e7dcbd;--coral:#dda77e;--ink:#f0ecdd;--muted:#b9c9ba}
button{min-height:44px;border-radius:3px}
.topbar{top:max(20px,env(safe-area-inset-top));gap:23px}
.top-context .edition{font-size:8px;letter-spacing:1.2px}
.welcome{bottom:18%;left:4.5vw;max-width:420px}
.welcome h1{font-size:clamp(42px,4.6vw,70px);line-height:1.08}
.welcome .eyebrow{letter-spacing:1.55px;font-weight:400;color:#d9dcc7}
.welcome .intro{color:#e2e4d3;font-size:13px}
.hero-button{background:#ece1c3;color:#223c3b;border-color:#ece1c3;min-height:48px}
.exhibits{border-radius:3px;padding:2px;box-shadow:none}
.bottom{bottom:max(36px,calc(env(safe-area-inset-bottom) + 24px))}
.save-status{bottom:max(12px,env(safe-area-inset-bottom));font-size:9px}
.hotspot{box-shadow:none;border-radius:2px;background:#173d3ed9}
.kiosk{--ink:#283e36;--muted:#657465;--accent:#6d7959;color-scheme:light;color:#283e36;background:#f2efdf;border:0;border-radius:2px;box-shadow:0 14px 55px #0c282833;width:382px;top:98px;bottom:105px;backdrop-filter:none}
.kiosk-head{padding:22px 24px 17px;border-bottom:1px solid #b8c0a8;align-items:center}
.kiosk-head .eyebrow{font-size:8px;letter-spacing:1.15px;color:#6c755f}
.kiosk h2{font-size:34px;color:#283e36}
.kiosk-actions{display:flex;align-items:center;gap:3px}
#kiosk-peek{font-size:10px;border:0;background:none;color:#657465;padding:6px;max-width:70px;line-height:1.5}
.kiosk .close{color:#344b3e;min-width:40px;min-height:44px}
.kiosk-scroll{scrollbar-color:#a0ac93 transparent;padding:20px 24px}
.kiosk .panel-intro{font-size:12px;color:#637361;line-height:1.75}
.kiosk button{color:#334b3d;background:#e6e8d9;border-color:#c4ccb6;min-height:42px}
.kiosk button:hover{background:#dce1ce;border-color:#778b73}
.kiosk button.primary{background:#35574a;color:#f4efdb;border-color:#35574a}
.kiosk .eyebrow{color:#6c785b}
.kiosk .curve-label{color:#546951;font-size:8px}
.kiosk .curve-label span{color:#74836f}
.kiosk #score{border-radius:0;border:1px solid #788a73}
.kiosk .legend{color:#677666}
.kiosk .legend .solid:before{border-color:#805c42}
.kiosk .legend .dotted:before{border-color:#537266}
.kiosk .preset-grid{gap:0;border:1px solid #b6c1a7}
.kiosk .preset-grid button{border:0;border-radius:0;background:transparent;min-height:41px;font-size:11px}
.kiosk .preset-grid button:nth-child(2n){border-left:1px solid #c3cbb7}
.kiosk .preset-grid button:nth-child(n+3){border-top:1px solid #c3cbb7}
.kiosk .preset-grid.three button{border:0;border-right:1px solid #c3cbb7}
.kiosk .preset-grid.three button:last-child{border:0}
.kiosk .preset-grid button.active{background:#d1d8bd;color:#2e4839}
.kiosk .preset-grid .risk{color:#9b5139}
.kiosk .control{margin:16px 0}
.kiosk .control label{color:#354f3c;font-size:12px;align-items:center}
.kiosk .control output{color:#65795c;font-size:11px}
.kiosk input[type=range]{accent-color:#a36d47;height:30px}
.kiosk .gate{background:none;border:0;border-left:2px solid #83966b;border-radius:0;padding:6px 0 6px 12px;margin:20px 0 10px}
.kiosk .gate>span{color:#647f4c}
.kiosk .gate.invalid{border-color:#ba7752;background:none}
.kiosk .gate.invalid>span{color:#a25c38}
.kiosk .gate strong{font-size:11px;color:#38513d}
.kiosk .gate p{color:#6e7b65;font-size:10px}
.kiosk details{border-color:#bdc5b0}
.kiosk summary{color:#395441;font-size:12px;min-height:44px}
.kiosk .fine{color:#6f7c67;font-size:10px}
.kiosk .next-step{border-color:#bdc5b0}
.kiosk .next-step>span{color:#6b795b;font-size:8px;letter-spacing:.7px}
.kiosk .next-step button{background:#e1e4d0;font-size:11px;color:#365440}
.kiosk .section-label{color:#71815f;font-size:8px}
.kiosk-foot{color:#68755c;border-color:#bcc6ac;align-items:center;padding:10px 24px;min-height:45px}
.kiosk .connection{padding:19px 0 8px;border:0;border-top:1px solid #b4bfa2;border-radius:0;background:none}
.kiosk .connection h3{font-size:25px;color:#35523d}
.kiosk .connection p:not(.eyebrow){color:#66775e;font-size:11px}
.kiosk .connection button{color:#f3eddb;background:#35574a;font-size:11px}
.kiosk .connection button.subtle{background:none;color:#6c7d64}
.kiosk .enter-button{font-size:12px;margin-bottom:20px!important}
.kiosk button:focus-visible,.kiosk input:focus-visible,.kiosk summary:focus-visible{outline-color:#8f694a}
.site-plan{margin:0 0 23px;border-top:1px solid #8e9f80;border-bottom:1px solid #b9c3a7;padding:10px 0 5px}
.plan-heading{display:flex;justify-content:space-between;font:8px/1.6 ui-monospace,monospace;letter-spacing:.5px;color:#748064}
#site-plan{display:block;width:100%;height:135px;margin:7px 0 0}
.site-plan p{font-size:10px;line-height:1.6;margin:8px 0;color:#697a60}
body.peeking .kiosk{bottom:auto}
body.peeking .kiosk-scroll{display:none}
body.peeking .kiosk-head{border:0}
body.peeking .kiosk-foot{display:none}
body.inside .vignette{background:linear-gradient(180deg,#193b4299 0,transparent 20%,transparent 73%,#173438aa)}
body.inside .bottom .controls-hint,body.inside .exhibits{display:none}
body.inside .bottom{justify-content:flex-end;pointer-events:none}
body.inside .bottom .transport{pointer-events:auto}
.inside-bar{top:88px;left:32px;right:32px;max-width:none;background:none;border:0;border-radius:0;padding:0;pointer-events:none;display:flex;justify-content:space-between;gap:24px;align-items:start}
.inside-bar button{pointer-events:auto;border-color:#d2dbc54d;background:#204843c7;min-height:44px;font-size:11px;padding:9px 15px}
.journey-thread{display:flex;align-items:center;gap:14px;color:#f0eedc;font-size:12px;min-height:44px;text-shadow:0 1px 7px #24494b}
.journey-thread button{border:0;background:transparent;padding:7px 0;font-family:Georgia,serif;font-size:16px}
.thread-line{width:34px;height:1px;background:#d9ddba99}
.place-actions{display:flex;gap:4px;pointer-events:auto}
.inside-bar small{position:fixed;bottom:max(50px,calc(env(safe-area-inset-bottom) + 35px));left:32px;margin:0;color:#e1e8d3;font-size:10px;text-shadow:0 1px 8px #204848}
body.inside .save-status{display:none}
.touch-move{left:28px;bottom:100px}
.touch-move button{width:49px;height:49px;min-height:49px;margin:2px;border-radius:50%;background:#204943b8;border:1px solid #d7dfba99;touch-action:none}
.touch-move button:active{background:#cdd9b9;color:#29463b}
dialog{background:#f1efdf;color:#2e4638;color-scheme:light;border:0;border-radius:2px;box-shadow:0 20px 120px #112f3277}
dialog h2{color:#2e4638}
dialog .eyebrow,dialog p,dialog .fine{color:#68795f}
dialog button{background:#e0e5d2;border-color:#b7c5a7;color:#36513d}
dialog button.primary{background:#355b48;border-color:#355b48;color:#f1ead5}
dialog .close{background:none;border:0;color:#35563e}
dialog pre{color:#d5e3c8}
dialog summary{color:#3e5b43}
dialog .architecture{border-color:#a3b795;color:#4a6044}
#inspector-state{color:#58704f}
.route-map{position:relative;margin:30px 0 20px}
.route-map button{position:relative;width:100%;background:none;border:0;display:flex;gap:23px;align-items:center;text-align:left;padding:14px 0}
.route-map b{font:11px ui-monospace,monospace;border:1px solid #93a17b;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#f1efdf;font-weight:400;flex-shrink:0}
.route-map span{font:25px Georgia,serif}
.route-map small{display:block;margin:7px 0;font:11px/1.5 Arial,sans-serif;color:#758565}
.route-map [aria-current=location] b{background:#385b45;color:#eee6ce}
.route-map [aria-current=location] span{color:#344f35}
.route-rule{position:absolute;left:19px;width:1px;background:#a0ae89;top:32px;bottom:32px}
#route-status{border-top:1px solid #b9c5a9;padding-top:15px;font-size:12px}
#toast{top:auto;bottom:105px;border-radius:2px;background:#e7e4c9;color:#2f4f3e;font-size:12px;max-width:430px;box-shadow:0 3px 25px #15383133}
@media(max-width:1150px){.topbar{gap:12px}.top-context{display:none}.top-actions #inspect{font-size:0;width:40px;padding:0}.top-actions #inspect:after{content:'⌘';font-size:20px}.inside-bar{left:24px;right:24px}.place-actions button{padding:8px 11px}.journey-thread{gap:10px}}
@media(max-width:700px){
 html,body{height:100dvh}
 #scene{position:absolute;inset:0;width:100%;height:100dvh}
 .topbar{left:16px;right:16px;top:max(12px,env(safe-area-inset-top));gap:5px;min-height:45px}
 .brand{font-size:21px;letter-spacing:2px;gap:5px}.brand-mark{font-size:30px}.brand small{font-size:6px;letter-spacing:2.6px}
 .top-actions{gap:0}.top-actions button{min-height:42px}.top-actions #places{font-size:11px;padding:5px 8px}.top-actions #inspect{width:31px}.top-actions #open{font-size:10px;padding:4px 6px}.top-actions #save{font-size:10px;padding:7px 9px;min-height:42px}
 .welcome{left:22px;bottom:19%;max-width:85vw}.welcome h1{font-size:43px;letter-spacing:-1.5px}.welcome .eyebrow{font-size:7px;max-width:260px;letter-spacing:1.3px}.welcome .intro{font-size:11px;margin:14px 0}.hero-button{font-size:11px;min-height:46px}
 .hotspot{display:none!important}
 .bottom{left:12px;right:12px;bottom:max(30px,calc(env(safe-area-inset-bottom) + 17px));gap:8px}
 .exhibits button{font-size:11px;min-height:44px}.exhibits b{margin-right:6px}.exhibits span{margin-left:10px}.controls-hint{bottom:58px;left:4px}.controls-hint button{min-height:42px;font-size:10px}
 .save-status{left:16px;bottom:max(8px,env(safe-area-inset-bottom));font-size:7px;max-width:92vw}
 .kiosk{top:calc(65px + 33dvh);bottom:max(89px,calc(env(safe-area-inset-bottom) + 80px));left:10px;right:10px;width:auto;background:#f2efdf}
 body.editing #scene{top:58px;height:34dvh}
 body.editing .vignette{background:linear-gradient(180deg,#173f4877,transparent 17%);bottom:auto;height:45dvh}
 .kiosk-head{padding:10px 16px;min-height:66px}.kiosk-head .eyebrow{font-size:7px;margin:0 0 3px}.kiosk h2{font-size:27px}.kiosk-scroll{padding:14px 17px 20px}.kiosk-foot{padding:6px 15px;min-height:44px;font-size:9px}
 .kiosk .panel-intro{font-size:11px;line-height:1.55;margin-bottom:14px}.kiosk #score{height:134px}.kiosk .preset-grid button{min-height:43px}
 .kiosk .mobile-history{display:flex}.kiosk .mobile-history button{min-height:32px;min-width:40px;color:#435d42;background:none}
 #kiosk-peek{font-size:10px;max-width:75px;color:#496744;background:none;border:0}.kiosk .close{min-width:38px}
 body.peeking #scene{height:calc(100dvh - 226px)}body.peeking .kiosk{top:auto;bottom:94px;height:66px}body.peeking .kiosk-head{padding:10px 16px}.kiosk-actions{gap:0}
 .inside-bar{top:71px;left:17px;right:17px;gap:8px;display:block}
 .journey-thread{font-size:11px;gap:10px;white-space:nowrap;min-height:36px}.journey-thread button{font-size:15px;min-height:40px}.thread-line{width:24px}
 .place-actions{position:fixed;bottom:max(106px,calc(env(safe-area-inset-bottom) + 98px));right:17px;display:flex;flex-direction:column;gap:6px;max-width:146px}
 .place-actions button{background:#294d43df;min-height:44px;font-size:11px;padding:8px 12px;border-color:#bfcbaf88}
 .inside-bar small{position:fixed;bottom:57px;left:18px;color:#edf0dd;font-size:9px;max-width:70vw}
 body.inside .transport{margin-right:2px;background:#203e37a8;min-height:42px}
 body.inside .top-actions #inspect,body.inside .top-actions #open{display:none}
 .touch-move{left:14px;bottom:max(119px,calc(env(safe-area-inset-bottom) + 106px));z-index:12;max-width:180px}
 .touch-move button{width:47px;height:47px;min-height:47px;margin:2px}.touch-move>div{display:flex}
 #toast{bottom:77px;font-size:11px;padding:11px 15px;max-width:90vw;width:max-content}
 dialog{padding:22px;max-height:calc(100dvh - 32px)}dialog h2{font-size:32px}.route-map{margin:20px 0}.route-map span{font-size:24px}
 #site-plan{height:135px}
}
@media(max-width:360px){.topbar{left:10px;right:10px}.brand{font-size:18px}.brand-mark{font-size:26px}.top-actions #places{font-size:10px;padding:4px}.top-actions #inspect{width:27px}.top-actions #save{font-size:9px;padding:6px}.welcome h1{font-size:39px}.touch-move button{width:43px;height:45px;min-height:45px}.place-actions{right:11px;max-width:128px}.place-actions button{font-size:10px}.kiosk-actions #kiosk-peek{max-width:60px;font-size:9px}}
@media(max-height:540px) and (min-width:701px){.topbar{top:10px}.kiosk{top:70px;bottom:75px;width:335px}.bottom{bottom:20px}.save-status{display:none}.inside-bar{top:68px}.kiosk-head{padding:10px 18px}.kiosk h2{font-size:26px}.touch-move{bottom:75px}.welcome h1{font-size:40px}.welcome .intro{font-size:11px}.welcome{bottom:20%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* The extension uses paper notebooks, open gallery views and readable app workspaces. */
.assembly-hero{display:block;margin-top:10px;background:#16353de8;border-color:#a8c1b888;padding:12px 19px;font-size:12px}.assembly-hero span{margin-left:25px}.assembly-footnote{font-size:11px;color:#d3ded2;margin:12px 0}.gallery-overview{font-size:11px;margin-top:9px;padding:9px 0;border:0;background:none;color:#c8dbc9;text-decoration:underline;text-underline-offset:5px}.assembly-map-link{margin-top:20px!important}
.assembly-dialog{width:min(1110px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);padding:30px;color:#253d3c;background:#f0eee1;border:1px solid #b8c0ae;border-radius:8px;overflow:auto;color-scheme:light}.assembly-dialog::backdrop{background:#071d29ce;backdrop-filter:blur(6px)}.assembly-head{display:flex;justify-content:space-between;gap:20px}.assembly-head .eyebrow{color:#547064}.assembly-head h2{font:normal clamp(30px,4vw,43px)/1.14 Georgia,serif;margin:0;color:#263d3b}.assembly-head .close{color:#263d3b;background:none}.assembly-intro{font-size:13px;line-height:1.7;max-width:750px;color:#53695e}.assembly-filters{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:13px 0 22px}.assembly-filters label{font-size:12px}.assembly-filters input{flex:1;min-width:180px;padding:12px;border:1px solid #a5b5a5;border-radius:4px;background:#faf9f0;color:#1d3737}.assembly-filters span{font-size:11px;color:#647969}.assembly-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.assembly-card{padding:18px 0;border-top:3px solid var(--studio-accent);display:flex;flex-direction:column;gap:9px}.assembly-kind{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#5a7268;margin:0}.assembly-card h3{font:normal 24px Georgia,serif;margin:0;color:#203b3a}.assembly-description{font-size:12px;line-height:1.75;color:#52685f;flex:1;margin:0}.assembly-open{display:block;text-align:left;border:1px solid #a7b4a4;color:#24443f;background:#e5e8d9;padding:12px 14px;font:600 12px Arial;border-radius:3px}.assembly-open:hover{background:#d3dfca}.assembly-version{font-size:10px;line-height:1.6;color:#667567;margin:0}.assembly-footer{border-top:1px solid #b8c4b1;margin-top:23px;padding-top:17px;display:flex;justify-content:space-between;gap:20px;font-size:10px;line-height:1.7}.assembly-footer a{color:#37594d}.assembly-footer span{max-width:260px;color:#5d7465}
.studio-room{position:fixed;right:20px;top:91px;bottom:91px;width:360px;background:#eeeaddf7;color:#283c38;z-index:16;border-radius:5px;border:1px solid #c7cabb;border-top:4px solid var(--studio-accent,#a3b49e);box-shadow:0 14px 50px #06192355;overflow:auto;padding:22px;scrollbar-width:thin;color-scheme:light}.studio-room header{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.studio-room .eyebrow{color:#657a6b;line-height:1.5}.studio-room h2{font:normal 29px/1.12 Georgia,serif;margin:7px 0 10px;letter-spacing:-.7px}.studio-room .close{background:none;color:#40574b;flex-shrink:0}.studio-room p{font-size:12px;line-height:1.72;color:#54675b}.room-actions{display:flex;gap:8px;margin:16px 0}.studio-room button{font:12px Arial;padding:11px;border:1px solid #a9b7a6;border-radius:3px;background:#f9f6eb;color:#335247;min-height:40px}.room-actions button{flex:1}.room-app{border-top:1px solid #c2c9b8;margin-top:15px;padding-top:14px}.room-app h3{font:normal 22px Georgia,serif;margin:0}.room-app p{margin:8px 0}.room-app .room-launch{width:100%;text-align:left;background:#31564f;color:#f7f0dc;border-color:#31564f}.room-app details{font-size:11px;color:#536c5b;line-height:1.7;margin-top:8px}.room-app summary{cursor:pointer;padding:4px 0}.room-limit{border-top:1px solid #b6c2af;padding-top:12px;font-size:10px!important}.studio-kicker{letter-spacing:1.5px;font-size:10px!important;border-top:1px solid #aabbac;padding-top:17px}.material-choices{display:flex;gap:7px;margin:12px 0}.material-choices button{flex:1}.material-choices button[aria-pressed=true]{background:#375b53;color:#f5eed9}.studio-room label{display:block;margin:16px 0;font-size:12px;color:#435b4b}.studio-room input[type=range]{display:block;width:100%;margin-top:13px;accent-color:#51766a}.studio-room select{width:100%;padding:10px;color:#2d493d;background:#fcf9f0;border:1px solid #acb9a6;margin-bottom:12px}.studio-room output{float:right}.part-readout{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#e1e5d7;font:11px/1.7 monospace;margin:14px 0}.studio-room .fine{font-size:10px}.studio-room .full{width:100%}
.near-studio{position:fixed;bottom:132px;left:50%;transform:translateX(-50%);z-index:18}.near-studio button{display:flex;flex-direction:column;gap:7px;min-width:225px;background:#153d45f2;color:#f0e5c9;border:1px solid #a8c1ae;padding:14px 22px;font:13px Georgia}.near-studio small{font:10px Arial;color:#c3d6bf}
.studio-workspace{padding:0;width:calc(100vw - 32px);height:calc(100dvh - 28px);max-width:none;max-height:none;border:1px solid #89a698;background:#102c33;color:#ebe7d9;border-radius:7px;overflow:hidden;box-shadow:0 30px 100px #0009}.studio-workspace::backdrop{background:#071d27e8}.studio-workspace[open]{display:flex;flex-direction:column}.studio-workspace header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:10px 18px;min-height:58px;border-bottom:1px solid #507368}.studio-workspace header button{padding:11px 14px;background:#e0e5ce;color:#203e3a;border:0;border-radius:4px;font:12px Arial}.studio-workspace header div{flex:1}.studio-workspace header strong{font:19px Georgia;display:block}.studio-workspace header small{display:block;font:10px Arial;color:#b8cdbc;margin-top:5px}.studio-workspace header a{color:#d4e0cd;font-size:11px;white-space:nowrap}#workspace-notice{padding:8px 19px;background:#17343a;color:#c6d8c8;font-size:10px;line-height:1.5}#workspace-stage{flex:1;min-height:0;display:flex;background:#132a30}#workspace-stage iframe{width:100%;height:100%;border:0;flex:1;background:#f4f1e6}#workspace-unavailable{padding:30px;max-width:700px;color:#d5dfcd;font-size:14px;line-height:1.8}#workspace-unavailable a{color:#eadaba}.workspace-exit{max-width:570px;background:#efeada;color:#2c453c;border:1px solid #acb9a2;padding:30px;border-radius:5px}.workspace-exit::backdrop{background:#05141bae}.workspace-exit h2{font:30px Georgia}.workspace-exit p{font-size:14px;line-height:1.8}.workspace-exit div{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.workspace-exit button{padding:12px;color:#304f42;background:#fbf8ee;border:1px solid #98ad93;font:12px Arial;border-radius:3px}#exit-confirm{background:#3d5b4a;color:#f2ecd8}
@media(max-width:950px){.assembly-list{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-room{width:320px;right:12px;top:84px}.studio-workspace header{gap:10px}.studio-workspace header a{font-size:10px}}
@media(max-width:700px){.assembly-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:20px}.assembly-list{grid-template-columns:1fr}.assembly-footer{display:block}.assembly-footer span{display:block;margin-top:8px}.assembly-filters label{flex-basis:100%}.assembly-filters input{min-width:0}.studio-room{left:10px;right:10px;width:auto;top:auto;bottom:86px;max-height:52dvh;padding:16px}.studio-room h2{font-size:26px}.studio-room header{position:sticky;top:-16px;background:#eeeadd;z-index:2}.room-actions{margin:9px 0}.studio-room p{font-size:12px}.near-studio{bottom:215px;left:auto;right:10px;transform:none}.near-studio button{min-width:170px;padding:11px;font-size:11px}.studio-workspace{width:100vw;height:100dvh;border-radius:0;border:0}.studio-workspace header{padding:9px;flex-wrap:wrap;gap:8px}.studio-workspace header button{padding:10px;font-size:11px}.studio-workspace header strong{font-size:16px}.studio-workspace header a{margin-left:auto}.studio-workspace header small{font-size:9px}#workspace-notice{font-size:9px;padding:6px 10px;max-height:58px;overflow:auto}.workspace-exit{max-width:calc(100vw - 24px);padding:24px}.assembly-hero{padding:11px 16px}.gallery-overview{font-size:11px}}
[hidden]{display:none!important}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #b38e51;outline-offset:3px}

/* 0.4: preserve the place; make the next action legible. */
.arrival-choices{display:flex;gap:10px;margin-top:13px;pointer-events:auto}.arrival-choices button{font-size:11px;background:#173d3ee6;border-color:#a8c1b880}.studio-room{width:400px}.room-featured{display:block;font:9px Arial;letter-spacing:1.6px;color:#657252;margin:12px 0 8px}.room-preview{display:block;width:100%;height:130px;object-fit:cover;border-radius:3px;background:#18383c;margin:0 0 12px}.room-app h3{font-size:23px}.room-app .room-launch{min-height:44px}.room-more{margin:21px 0 0;border-top:1px solid #bcc5b0;padding-top:12px}.room-more>summary{font-size:13px;cursor:pointer;padding:12px 0;color:#294f43;font-weight:bold}.room-held{border:1px dashed #aaa88e;padding:13px;margin-top:22px}.room-held h3{font-size:18px}.room-held p{font-size:11px}.studio-workspace.expanded{width:100vw;height:100dvh;margin:0;inset:0;border:0;border-radius:0}.studio-workspace header{gap:12px}.studio-workspace header strong{font-size:17px}.studio-workspace header button{white-space:nowrap}.studio-room[hidden]{display:none}.hotspot{font-size:10px}.topbar .edition{letter-spacing:1px}
@media(max-width:1150px){.studio-room{width:350px}.top-actions{gap:2px}.top-actions button{padding:7px 9px}.top-actions #open{font-size:11px}}
@media(max-width:700px){.studio-room{width:auto;left:10px;right:10px}.room-preview{height:125px}.top-actions #open{font-size:0;width:31px}.top-actions #open::after{content:'Open';font-size:10px}.topbar{gap:5px;left:12px;right:12px}.top-actions #save{font-size:9px;padding:7px}.top-actions #places{display:none}.arrival-choices{gap:8px}.studio-workspace header small{font-size:9px}.studio-workspace header a{font-size:10px}.studio-workspace header #workspace-expand{display:none}.studio-workspace header{gap:7px}.studio-workspace header div{min-width:100px}.room-actions button{min-height:44px}}

/* In-flow confirmation replaces the game's attention surface; no extra dialog layer. */
.studio-workspace .workspace-exit{position:relative;inset:auto;width:calc(100% - 36px);max-width:760px;margin:18px auto;padding:24px;flex:none;z-index:auto;box-shadow:none;box-sizing:border-box}
.studio-workspace .workspace-exit[hidden]{display:none!important}
.studio-workspace .workspace-exit:not([hidden]){display:block}
@media(max-width:700px){.studio-workspace .workspace-exit{width:calc(100% - 20px);margin:10px auto;padding:16px}.workspace-exit h2{font-size:23px;margin:4px 0 10px}.workspace-exit p{font-size:12px;line-height:1.6}}
/* Match the retained dark game canvas when a child page leaves transparent margins. */
#workspace-stage iframe[data-app="way-panel"],#workspace-stage iframe[data-app="tidebreak"],#workspace-stage iframe[data-app="scroll"],#workspace-stage iframe[data-app="threshold"],#workspace-stage iframe[data-app="ashfall"],#workspace-stage iframe[data-app="undertide"]{background:#10141e}
