:root {color-scheme:light;--ink:#263b32;--muted:#647068;--paper:#f8f7f1;--border:#d7dcd2;--accent:#315440;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-synthesis:none}
* {box-sizing:border-box} html,body {margin:0;width:100%;height:100%;overflow:hidden;background:#e8ece3} button,select {font:inherit;color:inherit} button,summary,select {-webkit-tap-highlight-color:transparent} button {cursor:pointer} button:disabled,select:disabled {cursor:wait;opacity:.5} button:focus-visible,summary:focus-visible,select:focus-visible,canvas:focus-visible {outline:3px solid #748d48;outline-offset:4px} [hidden] {display:none!important}
#scene {position:fixed;inset:0} canvas {display:block;width:100%;height:100%;touch-action:none;outline:none} .masthead {position:fixed;top:max(36px,env(safe-area-inset-top));left:42px;pointer-events:none;text-shadow:0 1px 20px #f8f7f1,0 1px 8px #f8f7f1b8}.eyebrow {font-size:10px;letter-spacing:.17em;line-height:1.6;text-transform:uppercase;font-weight:600;margin:0 0 7px} h1 {font:400 clamp(31px,3vw,43px)/1.12 Georgia,"Times New Roman",serif;letter-spacing:-.035em;margin:0}.subtitle {font-size:12px;letter-spacing:.015em;margin:9px 0 0;color:#495d51}
.guide {position:fixed;right:32px;top:max(34px,env(safe-area-inset-top));z-index:5}.guide summary {list-style:none;display:grid;place-items:center;width:35px;height:35px;border:1px solid #c8d0c4;border-radius:50%;background:#f8f7f1e8;font:18px Georgia,serif;cursor:pointer;box-shadow:0 2px 8px #24372a08}.guide summary::-webkit-details-marker {display:none}.guide[open] summary {background:var(--ink);color:var(--paper);margin-left:auto}.guide-panel {position:absolute;right:0;top:47px;width:306px;padding:23px 25px;background:var(--paper);border:1px solid var(--border);box-shadow:0 8px 40px #263b3220;border-radius:3px}.guide h2 {font:23px Georgia,serif;margin:0 0 18px}.guide p {font-size:12px;line-height:1.7;margin:14px 0}.guide strong {font-weight:600}.guide-note {padding-top:12px;border-top:1px solid var(--border);color:var(--muted)}kbd {font:10px ui-monospace,monospace;display:inline-block;padding:0 3px;background:#e9ede4;border-radius:2px;margin:0 1px}
.explorer {position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 48px);z-index:3}.toolbar {display:flex;align-items:center;gap:15px;background:#f8f7f1f5;padding:10px 12px 10px 10px;border:1px solid #d2d9ca;border-radius:5px;box-shadow:0 7px 30px #20362413;backdrop-filter:blur(12px)}.toolbar button {border:0;background:none;min-height:39px;border-radius:3px;padding:0 13px;font-size:12px;white-space:nowrap;transition:background .15s}.toolbar button:hover:not(:disabled) {background:#e7ecdf}.mode-switch {display:flex;padding:3px;background:#e5e9df;border-radius:3px}.mode-switch button {min-height:34px}.mode-switch button[aria-pressed=true] {background:var(--ink);color:var(--paper)}.mode-switch button[aria-pressed=true]:hover {background:#355342}.viewpoint-control {display:flex;align-items:center;gap:10px;padding-left:2px}.viewpoint-control label {font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}.viewpoint-control select {width:171px;max-width:100%;border:0;background:transparent;font-size:12px;min-height:39px;cursor:pointer;padding:0 19px 0 0;border-radius:2px}.divider {height:25px;border-left:1px solid var(--border);margin:0 -4px}#roof {display:flex;align-items:center;gap:7px;padding:0 6px}#roof svg,.reset svg {width:22px;height:22px}#roof[aria-pressed=true] {color:#496c32}.toolbar .reset {display:grid;place-items:center;padding:0 9px}.caption {display:flex;align-items:center;justify-content:space-between;margin:11px 4px 0;font-size:10px;letter-spacing:.035em;color:#3f5747;text-shadow:0 1px 8px #fff}#view-label {min-width:100px}.orbit-instructions {color:#49624f;font-size:10px}.orbit-instructions span {margin:0 6px}.study-note {text-align:right;min-width:100px;color:#586857}
.loading {position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:#eef0e9f5}.loading-card {width:min(380px,calc(100% - 48px));text-align:center;padding:40px 20px}.loading-mark {width:78px;height:62px;color:#647e58;margin-bottom:25px}.loading h2 {font:32px/1.2 Georgia,serif;letter-spacing:-.025em;margin:10px 0 13px}.loading #loading-message {font-size:12px;color:var(--muted);line-height:1.7;margin:0 auto;max-width:280px}.loading progress {appearance:none;width:190px;height:3px;border:0;background:#d6ddcf;margin:30px auto 0;display:block;accent-color:var(--accent)}progress::-webkit-progress-bar {background:#d6ddcf}progress::-webkit-progress-value {background:var(--accent)}progress:indeterminate {animation:breathe 1.4s ease-in-out infinite}.loading button {margin-top:24px;background:var(--ink);color:var(--paper);border:0;padding:11px 20px;border-radius:3px;font-size:12px}.loading[data-error=true] .loading-mark {color:#8e6047}.noscript {position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:var(--paper);padding:40px}
.walk-hint {position:fixed;top:34px;left:50%;transform:translateX(-50%);background:#f8f7f1e8;border:1px solid var(--border);padding:9px 14px;border-radius:3px;font-size:11px;display:none;margin:0;pointer-events:none;white-space:nowrap}.touch-pad {position:fixed;bottom:158px;left:28px;display:none;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(2,43px);gap:5px;z-index:4}.touch-pad button {touch-action:none;user-select:none;background:#f8f7f1d9;border:1px solid #bcc9b4;color:var(--ink);font-size:24px;border-radius:5px;box-shadow:0 2px 9px #263b3210}.touch-pad button:active {background:var(--ink);color:var(--paper)}.forward {grid-area:1/2}.left {grid-area:2/1}.back {grid-area:2/2}.right {grid-area:2/3}#crosshair {position:fixed;top:50%;left:50%;width:5px;height:5px;border:1px solid #fff9;border-radius:50%;background:#263b3277;box-shadow:0 0 0 1px #263b3230;pointer-events:none;display:none}body[data-mode=walk] .walk-hint,body[data-locked=true] #crosshair {display:block}body[data-locked=true] .walk-hint {display:none}body[data-mode=walk] .orbit-instructions {visibility:hidden}body[data-ready=false] .walk-hint,body[data-ready=false] .touch-pad {display:none}.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes breathe {50%{opacity:.35}}
@media(pointer:coarse) {body[data-mode=walk] .touch-pad {display:grid}}
@media(max-width:760px) {.masthead {left:23px;top:max(25px,env(safe-area-inset-top))}.masthead .eyebrow {font-size:8px;letter-spacing:.12em}h1 {font-size:32px}.subtitle {font-size:11px}.guide {right:22px;top:max(25px,env(safe-area-inset-top))}.explorer {max-width:none;width:calc(100% - 32px);bottom:max(17px,env(safe-area-inset-bottom))}.toolbar {padding:9px;gap:8px;flex-wrap:wrap;justify-content:space-between}.mode-switch {flex:1}.mode-switch button {flex:1}.viewpoint-control {order:3;flex:1 0 100%;border-top:1px solid var(--border);padding:5px 5px 0;gap:16px}.viewpoint-control select {flex:1;width:auto;height:33px;min-height:33px}.divider {display:none}#roof {padding:0 8px}.toolbar .reset {padding:0 7px}.caption {font-size:9px;margin-top:9px}.orbit-instructions {display:none}.study-note {min-width:0}.walk-hint {top:122px;max-width:calc(100% - 34px);font-size:10px;padding:8px 11px}body[data-mode=walk] .touch-pad {display:grid}.guide-panel {width:min(306px,calc(100vw - 44px));max-height:calc(100dvh - 200px);overflow:auto}}
@media(max-height:500px) and (min-width:761px) {.masthead {top:18px;left:24px}h1 {font-size:30px}.subtitle {display:none}.explorer {bottom:12px}.walk-hint {top:18px}.guide {top:18px}.guide-panel {max-height:calc(100dvh - 85px);overflow:auto}}
@media(prefers-reduced-motion:reduce) {* {animation:none!important;transition:none!important}}
.masthead {z-index:1;text-shadow:none}.masthead::before {content:"";position:absolute;inset:-15px -18px;z-index:-1;background:#f8f7f1e8;border-radius:3px}.caption {background:#f8f7f1d9;padding:5px 8px;margin:7px 0 0;border-radius:2px;text-shadow:none}
.home-link {display:inline-block;pointer-events:auto;color:var(--muted);font-size:10px;text-decoration:none;margin-bottom:12px}.home-link:hover {text-decoration:underline}.home-link:focus-visible {outline:2px solid var(--ink);outline-offset:4px}.guide-panel a {color:var(--ink)}
#trees {display:flex;align-items:center;gap:7px;padding:0 6px}#trees svg {width:22px;height:22px}#trees[aria-pressed=true] {color:#496c32}
@media(max-width:760px) {#roof span,#trees span {display:none}#roof,#trees {padding:0 9px}.mode-switch {flex:1 1 120px}}
/* Keep the architecture dominant while retaining clear navigation. */
.masthead {top:max(28px,env(safe-area-inset-top));left:30px}
.masthead h1 {font-size:32px}
.masthead .eyebrow {display:none}
.masthead .subtitle {margin-top:6px}
.masthead::before {inset:-12px -15px;background:#f8f7f1d9;backdrop-filter:blur(12px)}
body[data-mode=walk] .masthead h1 {font-size:24px}
body[data-mode=walk] .masthead .subtitle {display:none}
@media(max-width:760px) {.masthead {left:23px;top:max(25px,env(safe-area-inset-top))}.masthead h1 {font-size:29px}body[data-mode=walk] .walk-hint {top:100px}}

/* Keep the extra flight controls within the existing touch pad. */
.touch-pad {grid-template-columns:repeat(4,43px)}
.rise {grid-area:1/4}.descend {grid-area:2/4}.boost {grid-area:1/1}
.touch-pad .rise,.touch-pad .descend,.touch-pad .boost {font-size:11px}
.walk-hint {white-space:normal;text-align:center;max-width:calc(100vw - 34px)}
.enter-house {display:flex;align-items:center;justify-content:space-between;gap:24px;pointer-events:auto;margin-top:15px;min-height:42px;padding:0 16px;border:0;border-radius:3px;background:var(--ink);color:var(--paper);font-size:12px;font-weight:600}
.enter-house:hover:not(:disabled) {background:#355342}
@media(max-width:760px) {body[data-mode=walk] .walk-hint {top:154px}}
