*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Arial,Helvetica,sans-serif;color:#233137;background:#aeb4b6}button{font:inherit;font-size:14px;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,canvas:focus-visible{outline:2px solid #614c29;outline-offset:4px}button:disabled{opacity:.4;cursor:wait}#experience{height:100%;height:100dvh;position:relative;isolation:isolate}#scene{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;top:38px;left:46px;right:46px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.identity{pointer-events:auto}.eyebrow{display:block;font-size:12px;letter-spacing:.20em;font-weight:500}h1{font-family:Georgia,'Times New Roman',serif;font-size:50px;font-weight:400;line-height:1;margin:13px 0 12px;letter-spacing:-.04em}.identity p{font-size:12px;letter-spacing:.22em;margin:0}.header-actions{display:flex;gap:18px;align-items:center;pointer-events:auto}.header-actions button{border:0;background:transparent;padding:12px 0}#about{border-bottom:1px solid #4b5a6155;padding-bottom:7px}.header-actions svg,footer svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;display:block}#fullscreen,#reset{width:44px;height:44px;display:grid;place-items:center}.view-caption{position:absolute;left:46px;bottom:161px;pointer-events:none;max-width:270px}.view-caption>span{font-size:12px;letter-spacing:.18em;opacity:.7}.view-caption h2{font:400 28px/1.2 Georgia,serif;margin:10px 0}.view-caption p{font-size:14px;line-height:1.5;margin:0;max-width:230px;color:inherit;opacity:.8}footer{position:absolute;left:46px;right:46px;bottom:26px}.control-row{display:flex;align-items:center;gap:12px}nav{display:flex;gap:4px;padding:6px;background:#edf0efdc;border:1px solid #fff4;backdrop-filter:blur(16px);box-shadow:0 6px 25px #1020270b;border-radius:3px}nav button{white-space:nowrap;background:transparent;border:0;padding:15px 23px;border-radius:2px;transition:background .2s}nav button span{font-size:12px;opacity:.55;margin-right:10px}nav button.selected{background:#26363c;color:#fff}nav button:not(.selected):hover{background:#fff9}.lighting{margin-left:auto;padding:5px;display:flex;background:#edf0efdc;border-radius:3px}.lighting button{padding:12px 16px;border:0;background:transparent;border-radius:2px}.lighting button.selected{background:#fff;color:#27353b;box-shadow:0 2px 5px #0001}#reset{border:1px solid #eef2f25c;background:#edf0efdc;border-radius:3px}.fineprint{display:flex;justify-content:space-between;gap:20px;margin-top:20px;font-size:12px;letter-spacing:.03em;color:inherit;opacity:.74}.fineprint span:last-child{font-size:11px;letter-spacing:.1em}.loading{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#aeb4b6;transition:opacity .7s}.loading.hidden{opacity:0;pointer-events:none}.loading-brand{font:72px Georgia,serif;border:1px solid #53626855;width:130px;height:130px;display:grid;place-items:center}.loading p{font:22px Georgia,serif;margin:28px 0 20px}.loading span{font-size:12px;margin-top:15px}.loading progress{width:230px;height:2px;border:0;appearance:none}.loading progress::-webkit-progress-bar{background:#6c7a7e35}.loading progress::-webkit-progress-value{background:#394a51}#walk-controls{position:absolute;right:46px;bottom:161px;max-width:220px;padding:14px;background:#172328bd;color:#fff;backdrop-filter:blur(16px);border:1px solid #fff2;border-radius:3px}#walk-controls[hidden]{display:none}#walk-controls>span{font-size:11px;letter-spacing:.15em}#walk-controls>div{display:flex;gap:6px;margin-top:12px}#walk-controls button{background:#fff1;border:1px solid #fff3;color:inherit;width:40px;height:42px;font-size:22px;border-radius:2px;touch-action:none}#walk-controls button:active{background:#fff4}body.interior{color:#f1efea}body.interior footer .control-row,body.interior .header-actions{color:#223039}body.interior header{filter:drop-shadow(0 2px 8px #0009)}body.interior #about{color:#f1efea;border-color:#fffa}body.interior #fullscreen{color:#f1efea}body.evening{color:#eef1ef}body.evening .control-row{color:#26363c}body.evening #about{border-color:#fffa}dialog{max-width:560px;width:calc(100% - 36px);border:0;padding:42px;color:#28383e;background:#f3f4f1;box-shadow:0 30px 100px #0005}dialog::backdrop{background:#09181dc2;backdrop-filter:blur(6px)}dialog h2{font:400 30px/1.18 Georgia,serif;margin:22px 0}dialog p{font-size:16px;line-height:1.7}dialog .note{font-size:13px;border-top:1px solid #ccd1cd;padding-top:20px}#close-info{position:absolute;right:16px;top:12px;border:0;background:none;font-size:30px;padding:5px 10px}body.interior .view-caption{max-width:210px}body.interior .view-caption p{max-width:190px}
@media(max-width:900px){header{left:25px;right:25px;top:26px}h1{font-size:42px}.view-caption{left:25px;bottom:160px}footer{left:25px;right:25px}nav button{padding:14px 16px}nav button span{display:none}.control-row{gap:8px}.lighting button{padding:12px}#walk-controls{right:25px;bottom:162px}.fineprint span:last-child{max-width:180px;text-align:right;font-size:10px}}
@media(max-width:600px){header{left:20px;right:20px;top:24px}h1{font-size:40px;margin:9px 0}.eyebrow{font-size:10px}.identity p{font-size:10px}.header-actions{gap:8px}#about{font-size:12px;max-width:85px;text-align:right;line-height:1.4}#fullscreen{width:34px}.view-caption{left:20px;bottom:216px}.view-caption h2{font-size:25px}.view-caption p{font-size:12px;max-width:170px}footer{left:16px;right:16px;bottom:18px}.control-row{flex-wrap:wrap;gap:10px}nav{width:100%;padding:5px;justify-content:space-between}nav button{flex:1;padding:14px 8px;font-size:14px}.lighting{margin-left:0}.lighting button{padding:10px 18px;font-size:13px}#reset{margin-left:auto;height:43px}.fineprint{margin-top:13px;gap:10px;display:block;font-size:11px}.fineprint span:last-child{display:block;text-align:left;max-width:none;margin-top:8px;font-size:9px}#walk-controls{right:16px;bottom:216px;padding:10px;max-width:180px}#walk-controls button{width:34px;height:40px}#walk-controls>span{font-size:9px}.view-caption>span{font-size:10px}body.interior .view-caption p{max-width:140px}body.interior .view-caption h2{font-size:22px}dialog{padding:30px}dialog h2{font-size:26px}dialog p{font-size:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

header,.view-caption,footer,#walk-controls{z-index:2}body.interior #experience::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(to bottom,#07111699,transparent 26%,transparent 48%,#07111690)}@media(max-width:600px){body.interior .view-caption{width:160px}body.interior .view-caption h2{font-size:21px}body.interior #experience::after{background:linear-gradient(to bottom,#071116aa,transparent 26%,transparent 43%,#071116c9)}}
@media(max-width:360px){body.interior .view-caption{bottom:312px;width:200px}body.interior .view-caption p{max-width:195px}#walk-controls{left:20px;right:auto;bottom:210px}.eyebrow{letter-spacing:.12em}.identity{max-width:168px}.header-actions{gap:3px}} #retry{margin-top:16px;padding:12px 30px;border:1px solid #36494f;background:#26363c;color:white;border-radius:3px}#retry[hidden],#fallback-preview[hidden]{display:none}#fallback-preview{max-width:min(520px,85vw);max-height:37vh;object-fit:contain;margin-top:22px}.loading:has(#retry:not([hidden])) .loading-brand{display:none}.loading:has(#retry:not([hidden])){padding:25px;text-align:center}
body.interior .view-caption{padding:12px 14px;background:#15232be8;border:1px solid #ffffff26;border-radius:3px;max-width:235px}body.interior .view-caption p{opacity:1}body.interior .view-caption>span{opacity:.85}.fineprint{padding:7px 9px;margin-top:12px;background:#f0f3efed;color:#223039;opacity:1;border-radius:2px}body.interior .fineprint,body.evening .fineprint{background:#17252bea;color:#f2f2ee}@media(max-width:360px){body.interior .view-caption{width:222px;bottom:312px}body.interior .view-caption p{display:none}body.interior .view-caption h2{font-size:20px;margin-bottom:0}}

/* ===== Phone layout pass (Sept 2026): compact overlay, tap to hide controls. CSS only; model, lighting and behavior unchanged. ===== */
@media(max-width:600px){
  header{top:12px;left:14px;right:14px;align-items:center}
  .identity{max-width:none}
  .eyebrow,.identity p{display:none}
  h1{font-size:24px;margin:0;letter-spacing:-.02em}
  .header-actions{gap:6px}
  #about{font-size:0;max-width:none;width:36px;height:36px;padding:0;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;opacity:.85;line-height:1}
  #about::before{content:'i';font:italic 600 15px/1 Georgia,serif}
  #fullscreen{width:36px;height:36px}
  .view-caption{left:14px;bottom:66px;max-width:56%}
  .view-caption>span{font-size:9px;letter-spacing:.14em}
  .view-caption h2{font-size:16px;margin:2px 0 0;line-height:1.2}
  .view-caption p{display:none}
  body.interior .view-caption{width:auto;max-width:56%;padding:6px 10px;bottom:66px}
  body.interior .view-caption h2{font-size:15px;margin-bottom:0}
  body.interior .view-caption p{display:none}
  footer{left:10px;right:10px;bottom:10px}
  .control-row{flex-wrap:nowrap;gap:6px}
  nav{width:auto;flex:1;padding:4px;gap:2px}
  nav button{flex:1;padding:11px 4px;font-size:12px;letter-spacing:.01em}
  .lighting{margin-left:0;padding:4px;gap:2px}
  .lighting button{font-size:0;width:34px;height:34px;padding:0;display:grid;place-items:center}
  .lighting button::before{font-size:17px;line-height:1}
  .lighting button[data-light=day]::before{content:'\2600'}
  .lighting button[data-light=evening]::before{content:'\263E'}
  #reset{width:38px;height:42px;margin-left:0}
  .fineprint{display:none}
  #walk-controls{right:10px;bottom:66px;padding:6px;max-width:none;background:#172328a6}
  #walk-controls>span{display:none}
  #walk-controls>div{margin-top:0;gap:4px}
  #walk-controls button{width:34px;height:36px;font-size:16px}
  body.interior #experience::after{background:linear-gradient(to bottom,#07111680,transparent 13%,transparent 82%,#07111690)}
  dialog .phone-note{display:block}
  .phone-hint{display:block}
}
@media(max-width:360px){
  body.interior .view-caption{bottom:66px;width:auto;max-width:52%}
  #walk-controls{left:auto;right:10px;bottom:66px}
  nav button{font-size:11px;padding:11px 2px}
}
dialog .phone-note{display:none}
/* Tap to hide or show the overlay (phones only; toggled by mobile-ui.js) */
header,.view-caption,footer,#walk-controls{transition:opacity .35s ease}
#experience::after{transition:opacity .35s ease}
body.ui-hidden header,body.ui-hidden .view-caption,body.ui-hidden footer,body.ui-hidden #walk-controls{opacity:0;pointer-events:none}
body.ui-hidden #experience::after{opacity:0}
.phone-hint{display:none;position:absolute;left:50%;bottom:76px;transform:translateX(-50%);z-index:3;padding:8px 14px;background:#172328cc;color:#fff;font-size:11px;letter-spacing:.06em;border-radius:20px;border:1px solid #fff2;backdrop-filter:blur(10px);pointer-events:none;white-space:nowrap;opacity:0;transition:opacity .4s ease}
.phone-hint.show{opacity:1}
body.ui-hidden .phone-hint{bottom:18px}
