@font-face{font-family:Manrope;src:url('./fonts/manrope-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('./fonts/manrope-semibold.ttf') format('truetype');font-weight:600 800;font-display:swap}
:root{--ink:#262d27;--muted:#60655c;--paper:#f6f4ed;--line:rgba(45,51,42,.17);--accent:#3a4d3d;--surface:rgba(248,247,241,.95);--shadow:0 8px 40px #1522181a;--radius:5px;--font:Manrope,sans-serif}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:#b1afa1}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #b18a47;outline-offset:4px}a{color:inherit;text-underline-offset:4px}button,progress{touch-action:manipulation}[hidden]{display:none!important}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon.small{width:15px;height:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#experience{position:relative;width:100%;height:100%;min-height:440px;overflow:hidden}#house-viewer,.scene-poster,.scene-shade{position:absolute;inset:0;width:100%;height:100%;border:0}.scene-poster{background:#aaa99f url('./assets/poster.webp') center 57%/cover no-repeat;transition:opacity .7s ease;z-index:1}.scene-shade{z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(22,28,21,.5),transparent 75%),linear-gradient(0deg,rgba(19,27,20,.44),transparent 45%);transition:opacity .7s}.topbar{position:absolute;z-index:5;top:24px;left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:56px;padding:8px 12px 8px 19px;background:var(--surface);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.4);border-radius:var(--radius)}.identity,.top-actions{display:flex;align-items:center;gap:18px}.brand{font-size:12px;font-weight:600;letter-spacing:.17em;white-space:nowrap;display:flex;align-items:center;gap:8px}.brand-mark{font-family:Georgia,serif;font-size:26px;line-height:1;transform:translateY(-2px);letter-spacing:0}.identity-divider,.dock-divider{height:24px;width:1px;background:var(--line)}.house-title{display:flex;align-items:center;gap:9px;background:none;font-size:13px;padding:10px 0}.top-actions{gap:5px}.text-button{background:transparent;font-size:12px;padding:12px 13px;border-radius:3px;white-space:nowrap}.text-button:hover,.icon-button:hover{background:#e4e7dd}.icon-button{display:grid;place-items:center;min-width:40px;min-height:40px;padding:9px;background:none;border-radius:3px}.welcome{position:absolute;z-index:3;left:clamp(30px,7.8vw,140px);bottom:clamp(100px,16vh,180px);max-width:590px;color:#fff}.location{font-size:12px;letter-spacing:.04em;display:flex;align-items:center;gap:9px;margin:0 0 23px}.location span{height:6px;width:6px;border-radius:50%;background:#d6e1c3}.welcome h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.04em;font-size:clamp(44px,5.1vw,80px);line-height:1.06;margin:0 0 24px;text-wrap:balance}.welcome-copy{font-size:15px;line-height:1.75;margin:0 0 31px;color:#fff}.entry-actions{display:flex;align-items:center;gap:21px}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:37px;min-height:53px;padding:15px 20px;background:var(--paper);color:var(--ink);border-radius:3px;font-size:13px;font-weight:600;transition:background .2s,transform .2s}.primary-button:hover{background:#e3e9d8;transform:translateY(-1px)}.download-note{font-size:11px;line-height:1.8;margin:0;max-width:260px;color:#fff}.download-note strong{font-weight:600}.scene-credit{position:absolute;bottom:24px;left:28px;right:28px;z-index:3;display:flex;justify-content:space-between;gap:14px;font-size:10px;letter-spacing:.02em;color:#fff;text-shadow:0 1px 5px #0009;pointer-events:none}.scene-credit a{pointer-events:auto}.scene-credit span span{padding:0 7px;opacity:.75}.loading-panel{max-width:390px;min-width:260px;padding:19px 21px;background:rgba(30,39,31,.86);border:1px solid #ffffff40;border-radius:var(--radius)}.loading-heading{display:flex;justify-content:space-between;gap:15px;font-size:13px}.loading-panel progress{display:block;width:100%;height:3px;border:0;margin:15px 0 12px;accent-color:#dce6cb;background:#ffffff30}.loading-panel progress::-webkit-progress-bar{background:#ffffff30}.loading-panel progress::-webkit-progress-value{background:#dce6cb}.loading-panel progress:indeterminate{background:linear-gradient(90deg,#ffffff25,#dce6cb,#ffffff25);background-size:200% 100%;animation:progress 2s linear infinite}.loading-panel p{font-size:11px;line-height:1.7;margin:0 0 10px}.underlined-button{background:none;padding:2px 0;border-bottom:1px solid currentColor;font-size:12px}.error-panel{max-width:390px;background:var(--surface);color:var(--ink);padding:22px;border-radius:var(--radius);font-size:13px;line-height:1.7}.error-panel .primary-button{background:var(--accent);color:white;margin:5px 0 17px}.error-panel a{display:block;font-size:11px}.error-panel p{margin:0 0 10px}
body[data-state=ready] .scene-poster,body[data-state=ready] .scene-shade{opacity:0;pointer-events:none}body[data-state=ready] .scene-credit{background:rgba(25,32,24,.75);left:auto;right:28px;bottom:17px;border-radius:3px;padding:7px 10px;text-shadow:none;font-size:9px}.tour-ui{position:absolute;inset:0;z-index:4;pointer-events:none}.tour-ui button{pointer-events:auto}.view-caption{position:absolute;top:98px;left:29px;display:flex;align-items:center;gap:8px;color:white;background:rgba(27,36,27,.79);padding:8px 11px;font-size:11px;border-radius:3px}.live-dot{width:5px;height:5px;border-radius:50%;background:#cbdabc}.navigation-dock{position:absolute;bottom:56px;left:50%;transform:translateX(-50%);max-width:calc(100% - 48px);background:var(--surface);border:1px solid #ffffff70;box-shadow:var(--shadow);border-radius:var(--radius);pointer-events:auto}.dock-row{display:flex;align-items:center;padding:7px;gap:12px}.mode-switch{display:flex;gap:2px}.mode-button{padding:11px 16px;min-height:40px;font-size:12px;background:none;border-radius:3px}.mode-button[aria-pressed=true]{background:var(--accent);color:white}.gesture-hint{font-size:10px;white-space:nowrap;margin:0 8px 0 0;color:var(--muted)}.gesture-hint span span{padding:0 5px}.touch-hint{display:none}.tour-stops{display:flex;gap:5px;padding:9px 10px;border-bottom:1px solid var(--line);max-width:min(720px,calc(100vw - 50px));overflow-x:auto;scrollbar-width:thin}.stop-button{padding:9px 13px;border:1px solid transparent;font-size:11px;min-height:35px;white-space:nowrap;background:none;border-radius:3px}.stop-button:hover{background:#e9ebe3}.stop-button[aria-pressed=true]{border-color:#8d9985;background:#e5eadf}.movement-controls{position:absolute;bottom:132px;right:29px;display:grid;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px;gap:5px;pointer-events:auto}.move-button{display:grid;place-items:center;width:44px;height:44px;background:var(--surface);border:1px solid #ffffff80;border-radius:4px;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 2px 14px #0001}.move-button:hover,.move-button.is-moving{background:#dce5d3}.move-forward{grid-column:2;grid-row:1}.move-left{grid-column:1;grid-row:2}.move-left .icon{transform:rotate(-90deg)}.move-back{grid-column:2;grid-row:2}.move-back .icon{transform:rotate(180deg)}.move-right{grid-column:3;grid-row:2}.move-right .icon{transform:rotate(90deg)}.property-detail{position:absolute;z-index:6;top:96px;left:28px;width:310px;padding:24px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-close{position:absolute;top:8px;right:8px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:10px;color:var(--muted);margin:0 0 14px}.property-detail h2{font-family:Georgia,serif;font-weight:400;font-size:30px;letter-spacing:-.025em;margin:0 0 14px}.property-detail>p:not(.eyebrow){font-size:12px;line-height:1.85;margin:0 0 15px}.property-detail>p.small-copy{font-size:10px;color:var(--muted)}
dialog{position:fixed;width:min(510px,calc(100% - 30px));max-height:calc(100dvh - 40px);overflow-y:auto;border:1px solid #d3d7ca;padding:37px;background:var(--paper);color:var(--ink);border-radius:6px;box-shadow:0 25px 100px #0003;font-family:var(--font)}dialog::backdrop{background:rgba(15,23,17,.53);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:9px;top:9px}dialog h2{font-family:Georgia,serif;font-size:38px;line-height:1.12;font-weight:400;letter-spacing:-.035em;margin:0 0 25px}.instruction-row{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:15px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.7}.instruction-row>span{font-weight:600}.instruction-row p{margin:0;color:var(--muted)}kbd{font:10px var(--font);display:inline-block;border:1px solid #aeb6a4;border-radius:3px;min-width:17px;text-align:center;padding:0 2px;background:#fff}.dialog-note{font-size:11px;line-height:1.8;color:var(--muted);margin:17px 0 22px}dialog .primary-button{background:var(--accent);color:white}.dialog-intro{font-size:12px;line-height:1.8;margin:0 0 23px}.source-entry{border-top:1px solid var(--line);padding:16px 0 5px}.source-entry h3{font-size:11px;font-weight:600;margin:0 0 8px}.source-entry p{font-size:11px;line-height:1.85;color:var(--muted);margin:0 0 10px}.source-entry a{color:var(--ink)}@keyframes progress{to{background-position:-200% 0}}
@media(min-width:1500px){.topbar{top:30px;left:38px;right:38px}.view-caption{left:39px;top:106px}.movement-controls{right:39px}.scene-credit{left:38px;right:38px}}
@media(max-width:760px){.topbar{top:14px;left:14px;right:14px;min-height:52px;padding:6px 7px 6px 12px;gap:9px}.identity{gap:12px}.brand{font-size:10px;letter-spacing:.12em}.brand-mark{font-size:23px}.identity-divider{display:none}.house-title{font-size:11px}.house-title .icon{display:none}.top-actions{gap:0}.text-button{font-size:10px;padding:11px 9px}#help-button{font-size:0;width:34px;padding:0}#help-button:after{content:'?';font-size:14px;font-weight:600;border:1px solid #6d7765;border-radius:50%;display:grid;place-items:center;width:20px;height:20px;margin:auto}#fullscreen-button{min-width:33px;padding:7px}.welcome{left:28px;right:28px;bottom:16vh;max-width:none}.welcome h1{font-size:clamp(43px,8.8vw,64px)}.welcome-copy{font-size:13px}.location{font-size:11px;margin-bottom:18px}.entry-actions{gap:15px}.download-note{font-size:10px}.primary-button{gap:25px;min-height:50px;padding:14px 18px;font-size:12px}.scene-credit{bottom:18px;left:20px;right:20px;font-size:8px}.scene-credit span span{padding:0 3px}.view-caption{left:15px;top:78px}.navigation-dock{max-width:calc(100% - 28px);bottom:62px}.dock-row{gap:8px}.gesture-hint{font-size:9px;white-space:normal;max-width:145px;margin:0 3px}.mode-button{font-size:11px;padding:10px 12px}.movement-controls{right:15px;bottom:calc(164px + env(safe-area-inset-bottom,0px))}.property-detail{top:78px;left:15px;max-width:calc(100% - 30px)}body[data-state=ready] .scene-credit{right:15px;bottom:calc(14px + env(safe-area-inset-bottom,0px));font-size:8px;padding:6px 8px}.tour-stops{max-width:calc(100vw - 30px)}.stop-button{font-size:10px;padding:9px 11px}.dock-divider{display:none}dialog{padding:31px 26px}dialog h2{font-size:34px}.instruction-row{grid-template-columns:83px 1fr;font-size:11px}}
@media(pointer:coarse){.desktop-hint{display:none}.touch-hint{display:inline}.movement-controls{grid-template-columns:46px 46px 46px;grid-template-rows:46px 46px}.move-button{width:46px;height:46px}}
@media(max-width:420px){.brand{font-size:9px;letter-spacing:.1em}.brand-mark{display:none}.identity{gap:12px}.house-title{font-size:10px}.topbar{padding-left:11px}.text-button{padding:10px 7px}.welcome{left:23px;right:23px;bottom:17vh}.welcome h1{font-size:44px}.entry-actions{align-items:flex-start;flex-direction:column;gap:11px}.download-note br{display:none}.download-note{max-width:270px}.gesture-hint{max-width:115px;font-size:9px}.dock-row{gap:3px}.mode-button{padding:11px 10px}.dock-row>.icon-button{min-width:36px}.scene-credit{font-size:7px}.movement-controls{bottom:172px}}
@media(max-height:650px) and (min-width:761px){.welcome{bottom:85px}.welcome h1{font-size:49px}.welcome-copy{margin-bottom:20px}.location{margin-bottom:14px}.scene-credit{bottom:15px}.navigation-dock{bottom:44px}.movement-controls{bottom:123px}}
@media(max-height:480px){#experience{min-height:320px}.topbar{top:8px}.welcome{bottom:44px;left:28px}.welcome h1{font-size:34px;margin-bottom:12px}.welcome-copy{display:none}.location{margin-bottom:10px}.entry-actions{flex-direction:row;align-items:center}.navigation-dock{bottom:36px}.movement-controls{bottom:110px}.view-caption{top:70px}.scene-credit{bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:420px){.identity{flex-direction:column;align-items:flex-start;gap:0}.house-title{padding:3px 0}.brand{font-size:8px}.topbar{gap:7px}.text-button{min-height:40px}#help-button{min-height:40px}}
.floor-label{padding-left:10px;margin-left:2px;border-left:1px solid #ffffff40;color:#e3ebd9;white-space:nowrap}.stair-shortcut{position:absolute;right:29px;top:98px;display:flex;align-items:center;gap:15px;min-height:34px;padding:8px 12px;background:var(--surface);box-shadow:var(--shadow);border-radius:3px;font-size:11px}.stair-shortcut:hover{background:#e4e7dd}.labeled-move{font-size:10px;line-height:1.2;gap:1px;align-content:center}.labeled-move span{font-size:15px;line-height:1}.move-jump,.move-down{grid-column:1;grid-row:1}.move-sprint,.move-up{grid-column:3;grid-row:1}.mode-switch{flex:none}.gesture-hint{min-width:0}.navigation-dock{width:max-content}.dock-row>.icon-button{flex:none}.movement-controls{bottom:180px}.view-caption{max-width:calc(100% - 195px)}
@media(max-width:760px){.stair-shortcut{right:15px;top:78px;font-size:10px;padding:8px 10px}.view-caption{max-width:calc(100% - 142px);font-size:10px;gap:6px}.floor-label{padding-left:7px;margin-left:0}.navigation-dock{width:calc(100% - 28px)}.dock-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px}.mode-switch{order:0}.dock-row>.icon-button{order:1}.gesture-hint{order:2;flex-basis:100%;max-width:none;margin:0;padding:2px 5px 4px;text-align:center;font-size:10px;white-space:normal}.mode-button{padding:11px 14px}.tour-stops{max-width:100%}.movement-controls{bottom:calc(197px + env(safe-area-inset-bottom,0px))}.stair-shortcut span{font-size:13px}}
@media(max-width:420px){.mode-button{padding:11px 13px}.floor-label{font-size:9px}.view-caption{flex-wrap:wrap;row-gap:4px;max-width:calc(100% - 135px)}.movement-controls{bottom:calc(203px + env(safe-area-inset-bottom,0px))}}
@media(max-height:480px){.stair-shortcut{top:70px}.movement-controls{bottom:120px}.navigation-dock{bottom:35px}.view-caption{font-size:9px}.gesture-hint{display:none}}
