:root{--ink:#1d2433;--muted:#667085;--gold:#d9a227;--gold-soft:#f6e3b0;--coral:#d97a5b;--card:#ffffffdb;--border:#1d243314;--shadow:0 10px 30px #1d24331f;--radius:16px;color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{-webkit-font-smoothing:antialiased;background:radial-gradient(1200px 800px at 70% 10%,#fff6e3 0%,#f4ead8 45%,#e7dccb 100%)}body.walking{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;position:fixed}#app{position:fixed;inset:0}#scene{touch-action:none;z-index:0;position:absolute;inset:0}#scene canvas{outline:none;display:block}.card{background:var(--card);-webkit-backdrop-filter:blur(14px)saturate(1.2);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius)}.brand{z-index:5;align-items:center;gap:12px;padding:12px 18px 12px 14px;display:flex;position:absolute;top:16px;left:16px}.brand-mark{background:linear-gradient(135deg, #f7d77c, var(--gold));border-radius:12px;place-items:center;width:44px;height:44px;font-size:24px;display:grid;box-shadow:inset 0 -2px #00000014}.brand h1{letter-spacing:.2px;margin:0;font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:600;line-height:1.1}.subtitle{color:var(--muted);margin:3px 0 0;font-size:13px}.byline{color:#98a2b3;letter-spacing:.3px;text-transform:uppercase;margin:2px 0 0;font-size:11px}.draft-pill{color:#b4532f;background:#fde8df;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.toolbar{z-index:5;gap:4px;padding:6px;display:flex;position:absolute;bottom:16px;left:16px}.toolbar button,.room-nav button{appearance:none;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;padding:9px 12px;font:500 13px/1 inherit;display:inline-flex}.toolbar button:hover,.room-nav button:hover{background:#1d24330f}.toolbar button.toggle.on{background:var(--gold-soft);color:#7a5a0d}.panel{z-index:6;flex-direction:column;width:340px;padding:18px;display:flex;position:absolute;top:16px;bottom:16px;right:16px;overflow:hidden}.sheet-handle{display:none}.panel h2{margin:0 0 6px;font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:600}.panel h3{text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin:0 0 8px;font-size:12px}.muted{color:var(--muted);margin:0 0 6px;font-size:13px;line-height:1.45}.intro{border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:14px}.room-card{background:linear-gradient(160deg,#fffaf0,#fff);border:1px solid #f1dfb0;border-radius:14px;margin-bottom:14px;padding:14px;animation:.22s ease-out pop}@keyframes pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.room-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.type-badge{color:#333;text-transform:uppercase;letter-spacing:.6px;background:#eee;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:8px;padding:4px 6px;font-size:16px}.icon-btn:hover{background:#0000000d}.blurb{margin:8px 0 10px;font-size:14px;line-height:1.5}.facts{grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 10px;font-size:13px;display:grid}.facts dt{color:var(--muted)}.facts dd{color:#98a2b3;margin:0;font-style:italic}.room-nav{justify-content:space-between;display:flex}.room-nav button{border:1px solid var(--border);background:#fff}.directory{flex-direction:column;flex:1;min-height:0;display:flex}#roomList{flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}#roomList li button{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:8px;font:500 14px/1.2 inherit;display:flex}#roomList li button:hover{background:#1d24330d}#roomList li button.active{background:var(--gold-soft)}#roomList .swatch{border:1px solid #0000001f;border-radius:4px;flex:none;width:14px;height:14px}#roomList .kind{color:#98a2b3;margin-left:auto;font-size:11px;font-weight:500}.legend{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;gap:6px 12px;margin-top:8px;padding-top:12px;font-size:11px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border:1px solid #0000001f;border-radius:3px;width:10px;height:10px;display:inline-block}.hover-tip{pointer-events:none;z-index:20;color:#fff;white-space:nowrap;background:#1d2433eb;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:8px 12px 8px 10px;display:grid;position:fixed;transform:translate(14px,14px);box-shadow:0 8px 24px #00000040}.hover-tip i{border:1px solid #fff6;border-radius:3px;grid-row:span 2;width:10px;height:10px}.hover-tip strong{font-size:14px;font-weight:600}.hover-tip span{color:#c8ced8;font-size:11px}.hidden{display:none!important}.loading{z-index:50;color:#7a5a0d;background:#f4ead8;place-items:center;font-family:Fraunces,Georgia,serif;font-size:20px;transition:opacity .4s;display:grid;position:absolute;inset:0}.loading.done{opacity:0;pointer-events:none}@media (width<=760px){.brand{padding:10px 12px;top:10px;left:10px;right:10px}.brand h1{font-size:20px}.brand-mark{width:36px;height:36px;font-size:20px}.byline{display:none}.toolbar{padding:4px;top:86px;bottom:auto;left:50%;transform:translate(-50%)}.toolbar button{padding:8px 9px;font-size:12px}.toolbar button span{display:none}.panel{width:auto;max-height:62vh;padding:6px 16px calc(14px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;transition:max-height .25s;inset:auto 0 0}.panel.collapsed{max-height:132px}.panel.collapsed .directory,.panel.collapsed .intro .muted{display:none}.panel.has-room.collapsed{max-height:46vh}.sheet-handle{cursor:pointer;background:0 0;border:0;width:100%;padding:6px 0 10px;display:block}.sheet-handle span{background:#d0d5dd;border-radius:3px;width:40px;height:5px;margin:0 auto;display:block}.intro{margin-bottom:10px;padding-bottom:10px}.panel h2{font-size:19px}}.tagline{color:#8a6a1f;margin:-2px 0 8px;font-size:13px;font-weight:500}.gallery{scroll-snap-type:x mandatory;gap:8px;margin:4px -2px 8px;padding:2px;display:flex;overflow-x:auto}.gallery figure{scroll-snap-align:start;flex:0 0 78%;margin:0}.gallery img{aspect-ratio:4/3;object-fit:cover;border:3px solid #e9cf8a;border-radius:10px;width:100%;display:block}.gallery figcaption{color:#98a2b3;margin-top:3px;font-size:10.5px;line-height:1.3}.facts dd{color:var(--ink);font-style:normal}.facts dd.tbd{color:#98a2b3;font-style:italic}.highlights{margin:0 0 8px;padding-left:18px;font-size:13px;line-height:1.5}.highlights li.seen{color:var(--muted)}.highlights li.seen:after{content:" (from photos)";color:#b0b7c3;font-size:10.5px}.small{font-size:11px}.walk-here{cursor:pointer;background:linear-gradient(135deg, #f7d77c, var(--gold));color:#3d2c05;border:0;border-radius:10px;width:100%;margin:6px 0 10px;padding:10px 12px;font:600 14px/1 inherit}.walk-here:hover{filter:brightness(1.05)}.toolbar button.walk-btn{color:#fff;background:#1d2433}.toolbar button.walk-btn.on{background:var(--coral);color:#fff}.walk-hud,.crosshair,.walk-help,.walk-exit{display:none}body.walking .walk-hud{z-index:8;color:#f6d47a;pointer-events:none;background:#16120ec7;border:1px solid #d9b45a99;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:10px 22px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0000004d}body.walking .walk-hud strong{letter-spacing:.5px;font-family:Fraunces,Georgia,serif;font-size:22px}body.walking .walk-hud span{color:#e8dcc0;font-size:12px}.walk-hud.flash{animation:.6s ease-out hudflash}@keyframes hudflash{0%{transform:translate(-50%)scale(1.08)}to{transform:translate(-50%)scale(1)}}body.walking .crosshair{z-index:7;pointer-events:none;background:#ffffffd9;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;display:block;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #00000040}body.walking .walk-help{z-index:7;color:#fff;pointer-events:none;white-space:nowrap;background:#16120e99;border-radius:999px;padding:6px 12px;font-size:12px;display:block;position:absolute;bottom:74px;left:50%;transform:translate(-50%)}body.walking .walk-help.touch{display:none}body.walking .walk-exit{z-index:9;cursor:pointer;color:#fff;background:#16120ecc;border:0;border-radius:10px;padding:10px 14px;font:600 13px/1 inherit;display:block;position:absolute;top:18px;right:18px}body.walking .panel,body.walking .brand,body.walking .toolbar button:not(.walk-btn){display:none}body.walk-locked .toolbar,body.walk-locked .walk-exit{opacity:.35}.walk-pause{z-index:20;background:#0f0c0959;place-items:center;display:grid;position:absolute;inset:0}.walk-pause .card{text-align:center;max-width:380px;padding:22px 26px}.walk-pause h2{margin:0 0 8px;font-family:Fraunces,Georgia,serif}.walk-pause p{margin:0 0 8px;font-size:14px}.walk-pause .row{justify-content:center;gap:8px;margin-top:12px;display:flex}.walk-pause button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;padding:10px 14px;font:600 14px/1 inherit}.walk-pause button.primary{background:var(--gold);color:#3d2c05;border-color:#0000}@media (pointer:coarse){body.walking .walk-help{display:none}body.walking .walk-help.touch{bottom:calc(28px + env(safe-area-inset-bottom));display:block}body.walking .walk-exit{top:calc(14px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right))}body.walking .walk-hud{top:calc(14px + env(safe-area-inset-top))}.walk-pause-desk{display:none!important}.walk-pause-touch{display:block}.walk-pause .row .walk-pause-desk{display:none!important}}.walk-pause-touch{display:none}.touch-pad{bottom:calc(28px + env(safe-area-inset-bottom));z-index:8;pointer-events:none;opacity:.55;width:128px;height:128px;display:none;position:absolute}.touch-pad.walk-pad{left:calc(18px + env(safe-area-inset-left))}.touch-pad.walk-pad.look{left:auto;right:calc(18px + env(safe-area-inset-right))}.touch-pad-ring{background:#16120e47;border:2px solid #ffffff8c;border-radius:50%;position:absolute;inset:8px;box-shadow:inset 0 0 0 1px #00000026,0 6px 18px #0003}.touch-pad-knob{background:#f6d47a8c;border:2px solid #ffffffa6;border-radius:50%;width:42px;height:42px;margin:-21px 0 0 -21px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #00000040}.touch-pad-label{text-align:center;color:#ffffffd9;letter-spacing:.4px;text-shadow:0 1px 3px #00000080;font-size:11px;font-weight:600;position:absolute;bottom:-2px;left:0;right:0}@media (pointer:coarse){body.walking .touch-pad.walk-pad{display:block}}.flight-pad{left:calc(12px + env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));z-index:7;touch-action:none;-webkit-user-select:none;user-select:none;width:132px;height:132px;display:none;position:absolute}.flight-pad .flight-dir,.flight-pad .flight-fast{appearance:none;cursor:pointer;color:#3d2c05;-webkit-tap-highlight-color:transparent;background:#ffffffd1;border:1px solid #1d24331f;place-items:center;font:700 14px/1 inherit;display:grid;position:absolute;box-shadow:0 4px 14px #1d243324}.flight-pad .flight-dir{border-radius:12px;width:40px;height:40px}.flight-pad .flight-dir:active,.flight-pad .flight-fast:active,.flight-pad .flight-dir.active,.flight-pad .flight-fast.active{background:var(--gold-soft);color:#7a5a0d}.flight-pad .flight-dir[data-flight=up]{top:4px;left:46px}.flight-pad .flight-dir[data-flight=down]{bottom:4px;left:46px}.flight-pad .flight-dir[data-flight=left]{top:46px;left:4px}.flight-pad .flight-dir[data-flight=right]{top:46px;right:4px}.flight-pad .flight-fast{letter-spacing:.2px;text-transform:uppercase;color:#fff;background:#1d2433e0;border-color:#0000;border-radius:50%;width:40px;height:40px;font-size:10px;top:46px;left:46px}.flight-pad .flight-fast:active,.flight-pad .flight-fast.active{background:var(--coral);color:#fff}@media (pointer:coarse){body:not(.walking) .flight-pad{display:block}@media (width<=760px){.flight-pad{bottom:calc(18px + env(safe-area-inset-bottom));left:calc(10px + env(safe-area-inset-left))}.toolbar{left:calc(50% + 28px)}}}@media (pointer:fine){.flight-pad,.touch-pad.walk-pad{display:none!important}}
