@font-face{font-family:Inter;src:url('/brand-fonts/inter-400.woff')}@font-face{font-family:Inter;src:url('/brand-fonts/inter-600.woff');font-weight:600}@font-face{font-family:Marcellus;src:url('/brand-fonts/marcellus.woff')}
:root{--ink:#233e3a;--green:#244b43;--cream:#f8f5ed;--line:#d3d4c8;--gold:#a98647}*{box-sizing:border-box}body{margin:0;background:#e3dfd3;color:var(--ink);font:14px/1.5 Inter,sans-serif}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d0a356;outline-offset:4px}button{border:0}a{color:inherit}#tour{height:100dvh;min-height:480px;overflow:hidden;position:relative}#scene{position:absolute;inset:0;outline:none;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:22px 30px;background:linear-gradient(#faf8f1ee,#faf8f1cc,transparent);pointer-events:none;gap:20px}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.1em}.brand img{width:40px;height:40px;object-fit:contain}.brand small{display:block;font-size:10px;letter-spacing:0;font-weight:400}.title{text-align:center;margin-left:40px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.16em}.title h1{font:28px/1.2 Marcellus,serif;margin:4px 0}.top-actions{display:flex;align-items:center;gap:10px}.top-actions button{width:36px;height:36px;border-radius:50%;background:#fff9;border:1px solid #c9cbbb;font-size:20px}.back{font-size:11px;margin-left:10px;text-decoration:none}.floor-rail{position:absolute;left:26px;top:132px;width:124px;background:#f8f5edeb;border:1px solid #fff8;border-radius:12px;box-shadow:0 10px 35px #1a36241a;padding:16px 10px}.floor-rail>.eyebrow{padding:0 10px;color:#748075}.floor-rail #floors{display:grid;gap:5px;margin-top:12px}.floor-btn{display:flex;align-items:center;gap:9px;text-align:left;width:100%;padding:9px;border-radius:7px;background:transparent;font-size:10px;line-height:1.4}.floor-btn strong{font-size:18px;font-weight:400;min-width:20px}.floor-btn[aria-current=true]{background:var(--green);color:#fff}.floor-btn:hover{background:#e1e6db}.floor-btn[aria-current=true]:hover{background:#1c3b34}.view-switch{margin-top:12px;border-top:1px solid var(--line);padding:15px 0 2px;width:100%;background:transparent;font-size:15px}.view-switch span{font-size:11px}.view-switch[aria-pressed=true]{color:#846022}.location{position:absolute;left:30px;bottom:125px;width:370px;pointer-events:none;text-shadow:0 1px 10px #fff,0 0 20px #fff;background:linear-gradient(90deg,#f8f5edeb,#f8f5edaa,transparent);padding:15px 35px 15px 0;border-radius:0 15px 15px 0}.location h2{font:30px/1.15 Marcellus,serif;margin:8px 0}.location p{font-size:12px;max-width:340px;margin:10px 0;color:#425650}.location button{pointer-events:auto;font-size:11px;text-decoration:underline;background:transparent;padding:0}.map-card{position:absolute;right:26px;top:132px;width:196px;background:#f8f5edea;border:1px solid #fff9;border-radius:12px;overflow:hidden;box-shadow:0 10px 35px #1a362413}.map-card>button{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;padding:14px 15px;font-size:11px;font-weight:600}#map{width:100%;height:auto;cursor:pointer;display:block}#map-body p{font-size:9px;padding:0 15px;margin:0 0 12px;color:#53766a}#map-body p span{float:right}.places{position:absolute;bottom:52px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);display:flex;align-items:center;gap:14px;background:#f8f5edee;border:1px solid #fff;border-radius:10px;padding:8px 12px;box-shadow:0 8px 30px #233e3a20}.places>.eyebrow{padding-left:5px;white-space:nowrap}#places{display:flex;gap:5px;overflow:auto}.place-btn{background:transparent;white-space:nowrap;padding:9px 13px;border-radius:6px;font-size:11px}.place-btn:hover,.place-btn.active{background:#e1e7da;color:#193e33}.control-hint{position:absolute;bottom:15px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:22px;color:#3b544a;font-size:10px}.control-hint span{background:#f8f5edcc;border-radius:4px;padding:3px 5px}kbd{font:9px Inter;background:#fff8;border:1px solid #a5b0a2;border-radius:3px;padding:2px 4px;margin-right:2px}.control-hint button{font-size:10px;background:#f8f5edcc;border:1px solid #b1b8a8;border-radius:5px;padding:5px 10px}#crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:white;text-shadow:0 1px 3px #000;font-size:20px;pointer-events:none}#toast{position:absolute;top:105px;left:50%;transform:translateX(-50%);max-width:70%;background:#244b43e8;color:white;border-radius:7px;padding:9px 15px;font-size:12px;opacity:0;transition:opacity .2s;pointer-events:none}#toast.visible{opacity:1}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cream);z-index:15}#loading small{font-size:11px;color:#788477}.loader{width:30px;height:30px;border:2px solid #cad4c8;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:0;border-radius:16px;background:var(--cream);color:var(--ink);padding:35px;max-width:750px;width:calc(100% - 32px);max-height:88dvh;box-shadow:0 30px 100px #173b3966}dialog::backdrop{background:#183b3b77;backdrop-filter:blur(5px)}dialog h2{font:34px/1.14 Marcellus;margin:8px 0 18px}dialog h3{font-size:13px;margin-top:22px}dialog p,dialog li{font-size:12px;line-height:1.7}dialog .close{position:absolute;right:12px;top:10px;font-size:26px;background:#f8f5ed;width:35px;height:35px;border-radius:50%;z-index:2}#welcome{max-width:880px;padding:0;grid-template-columns:44% 56%;overflow:auto}#welcome[open]{display:grid}.welcome-photo{background:url('photos/exterior.webp') center/cover;min-height:480px}.welcome-copy{padding:45px 36px 26px}.welcome-copy h2{font-size:42px;line-height:1.1;margin-top:20px}.welcome-features{display:flex;gap:12px;border-block:1px solid var(--line);padding:14px 0;margin:22px 0 18px;font-size:10px;flex-wrap:wrap}.welcome-copy .accuracy{font-size:11px;color:#6a766c}.primary{background:var(--green);color:#fff;width:100%;display:flex;justify-content:space-between;padding:14px 18px;border-radius:7px;margin-top:25px;font-size:13px}.text-button{background:transparent;width:100%;padding:13px 0 0;font-size:11px;text-decoration:underline}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.credits{color:#7c887d;border-top:1px solid var(--line);padding-top:20px}#reference-photo{width:100%;max-height:65dvh;object-fit:contain}#photo-dialog h2{font-size:25px;margin-top:18px}#stair-floors{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}#stair-floors .floor-btn{border:1px solid var(--line);font-size:14px;padding:18px}.mobile-controls{display:none}.fallback{position:absolute;inset:0;background:var(--cream);padding:60px}[hidden]{display:none!important}
@media(max-width:800px){.topbar{padding:15px 18px}.brand span,.back{display:none}.title{margin:0}.title h1{font-size:23px}.floor-rail{left:14px;top:98px;width:70px;padding:12px 5px}.floor-rail>.eyebrow{font-size:8px;padding:0 6px}.floor-btn{justify-content:center;padding:9px 3px}.floor-rail .floor-btn span{display:none}.floor-btn strong{font-size:20px;text-align:center}.view-switch span{display:block;font-size:9px}.map-card{right:14px;top:98px;width:142px}.map-card>button{padding:10px;font-size:10px}.map-card p{display:none}.location{left:18px;bottom:184px;width:270px;padding:12px 25px 12px 0}.location h2{font-size:25px}.location p{display:none}.places{bottom:73px;max-width:calc(100% - 28px);padding:7px}.places>.eyebrow{display:none}.place-btn{font-size:10px;padding:10px}.control-hint{bottom:24px;font-size:9px;gap:8px}.control-hint span:first-child,.control-hint span:nth-child(3){display:none}.welcome-photo{min-height:360px}.welcome-copy{padding:32px 25px 20px}.welcome-copy h2{font-size:32px}.welcome-features{gap:8px;font-size:9px}.help-grid{grid-template-columns:1fr;gap:0}}
@media(pointer:coarse){.mobile-controls{display:block}#joystick{position:absolute;left:24px;bottom:120px;width:90px;height:90px;border:1px solid #fff9;background:#f8f5ed55;border-radius:50%;touch-action:none}#stick{position:absolute;left:27px;top:27px;width:36px;height:36px;border:1px solid #fff9;background:#244b4399;border-radius:50%;pointer-events:none}#interact{position:absolute;right:26px;bottom:139px;width:52px;height:52px;border-radius:50%;font-size:25px;background:#f8f5edaa;border:1px solid #fff8}.location{bottom:225px}.control-hint span,.control-hint button{display:none}.control-hint:after{content:'Use thumb control to walk · Swipe to look'} }
@media(max-width:560px){#welcome[open]{display:block}.welcome-photo{height:150px;min-height:0;background-position:center 62%}.welcome-copy{padding:22px 25px}.welcome-copy h2{font-size:32px;margin:12px 0}.welcome-features{margin:15px 0;padding:10px 0}.welcome-copy .primary{margin-top:16px}.welcome-copy p{margin:10px 0}.map-card{width:118px}.map-card>button{font-size:9px}.top-actions{gap:5px}.top-actions button{width:31px;height:31px}dialog{padding:28px 22px}.location{width:230px}.location h2{font-size:22px}#toast{top:75px;font-size:10px;max-width:80%;width:max-content}#stair-floors{grid-template-columns:1fr}.title h1{font-size:21px}.title .eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.directory-button{width:100%;background:#e5e8dd;border:1px solid #d1d8c9;padding:8px;border-radius:5px;font-size:11px;margin-top:12px}#room-list{display:grid;gap:8px}.room-list-item{display:block;text-align:left;background:#ebece3;padding:13px 15px;border-radius:7px}.room-list-item strong{font-size:12px;display:block}.room-list-item span{font-size:10px;color:#617368;display:block;margin-top:4px}.room-list-item:hover{background:#dce3d4}

/* Keep a way out of the full-screen tour visible on small screens. */
@media(max-width:800px){.tour-back{display:inline-block;margin:0;padding:8px;font-size:11px;background:#f8f5edee;border-radius:6px}.plan-link{display:none}.topbar{gap:8px}.title h1{font-size:19px}.brand img{width:32px;height:32px}}
@media(max-width:380px){.topbar{padding:12px 10px}.brand{display:none}.top-actions{gap:4px}}
