@font-face{font-family:Cormorant;src:url('./assets/fonts/cormorant-garamond-latin.woff2') format('woff2');font-weight:400 600;font-display:swap}@font-face{font-family:Inter;src:url('./assets/fonts/inter-latin.woff2') format('woff2');font-weight:400 600;font-display:swap}
:root{--ivory:#f7f4ee;--deep:#071930;--navy:#082d5c;--champagne:#b9a47b;--line:#ffffff55;--gutter:clamp(24px,4vw,70px)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--deep);color:var(--ivory);font:400 14px/1.6 Inter,Arial,sans-serif}body{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--champagne);outline-offset:5px}button{border:0}h1,h2,p{margin:0}h1,h2{font-family:Cormorant,Georgia,serif;font-weight:400;line-height:1.02;letter-spacing:-.035em}svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.35;fill:none}[hidden]{display:none!important}.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}#experience{position:relative;width:100%;height:100svh;min-height:540px;overflow:hidden}#viewport,#canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#canvas{touch-action:none;cursor:grab}#canvas:active{cursor:grabbing}.scrim{position:absolute;left:0;right:0;pointer-events:none}.scrim.top{height:210px;top:0;background:linear-gradient(#071930c7,transparent)}.scrim.bottom{height:53%;bottom:0;background:linear-gradient(transparent,#07193070 45%,#071930e0)}#transition-veil{position:absolute;inset:0;background:var(--deep);opacity:0;pointer-events:none;transition:opacity .25s}header{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:35px var(--gutter);height:104px}.brand{display:block;flex-shrink:0}.brand img{display:block;width:160px;height:auto}.project-name{font-size:10px;letter-spacing:.22em;margin:auto}.project-name span{display:block;font-size:7px;letter-spacing:.18em;color:#e7e2da;margin-top:3px}.contact{font-size:12px;display:flex;gap:24px;align-items:center;border-bottom:1px solid #ffffff66;min-height:44px;padding:5px 0}.contact:hover{border-color:var(--champagne)}.kicker{font-size:10px;letter-spacing:.2em;line-height:1.6;font-weight:500}.loading{position:absolute;z-index:8;inset:0;background:var(--deep);display:grid;align-items:center;padding:var(--gutter)}.loading h1{font-size:clamp(60px,7vw,100px);margin-top:30px}.loading .kicker{letter-spacing:.3em}.loading .kicker span{color:var(--champagne)}.loader-line{height:1px;width:240px;background:#ffffff2e;margin:35px 0 20px;overflow:hidden}.loader-line:after{content:"";height:1px;width:50%;display:block;background:var(--champagne);animation:load 1.3s ease-in-out infinite alternate}@keyframes load{to{transform:translateX(100%)}}#loading-label{font-size:12px}.loading a{display:inline-block;font-size:11px;margin-top:20px;text-decoration:underline;text-underline-offset:5px}.welcome{position:absolute;left:var(--gutter);bottom:110px;z-index:2;max-width:750px}.welcome h1{font-size:clamp(65px,6.5vw,102px);margin:20px 0 24px;letter-spacing:-.04em;text-shadow:0 2px 24px #07193035}.welcome em{font-weight:400;font-style:normal;color:#dfd2bd}.welcome .kicker{font-size:9px}.welcome-text{font-size:13px;line-height:1.8}.enter{display:inline-flex;align-items:center;justify-content:space-between;gap:50px;background:var(--ivory);color:var(--deep);min-height:56px;padding:13px 22px;font-size:12px;margin-top:26px}.enter>span{font-size:25px}.enter:hover{background:white}.welcome-disclosure{font-size:9px;color:#e7e2da;line-height:1.8;margin-top:22px;max-width:55ch}.upper-controls{position:absolute;top:125px;left:var(--gutter);display:flex;gap:10px}.right-controls{position:absolute;top:125px;right:var(--gutter);display:flex;gap:10px}.glass-button,.icon-button{background:#071930b5;backdrop-filter:blur(16px);color:var(--ivory);border:1px solid #ffffff55;display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 16px;font-size:11px}.glass-button>span:first-child:not(:last-child){font-size:20px;line-height:1}.icon-button{width:44px;padding:10px;font-family:Cormorant,serif;font-size:22px}.glass-button:hover,.icon-button:hover{background:var(--deep)}.scene-caption{position:absolute;left:var(--gutter);bottom:169px;pointer-events:none;max-width:65%;text-shadow:0 2px 24px #07193055}.scene-caption .kicker{font-size:9px;display:flex;align-items:center;gap:16px}.hairline{height:1px;width:40px;background:#ffffff88}.scene-caption h1{font-size:clamp(58px,6.7vw,100px);margin:15px 0 10px}.scene-caption>p:last-child{font-size:12px;color:#e7e2da}.travel-controls{position:absolute;right:var(--gutter);bottom:177px;display:flex;align-items:center;gap:30px}.arrow-button{background:transparent;color:white;border:1px solid #ffffff88;border-radius:50%;width:50px;height:50px;font-size:22px}.travel-next>span{font-size:8px;letter-spacing:.17em;color:#e7e2da}.travel-next>button{background:transparent;color:white;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:4px 0;min-height:44px;border-bottom:1px solid #ffffff66;font-size:16px}.travel-next>button>span:last-child{font-size:26px}.travel-next{min-width:150px}.bottom-controls{position:absolute;left:var(--gutter);right:var(--gutter);bottom:52px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:20px;border-top:1px solid #ffffff3f}.play-button{display:flex;align-items:center;gap:13px;background:transparent;padding:0;min-height:44px;font-size:11px}.play-button>span:first-child{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff77;border-radius:50%;font-size:22px}.drag-hint{font-size:8px;letter-spacing:.17em;color:#e7e2da}.walking{display:flex;gap:7px}.walking button{display:grid;place-items:center;background:#07193070;width:44px;height:44px;border:1px solid #ffffff55;font-size:22px}.walking button:hover,.walking button.held{background:var(--navy)}#scene-dots{position:absolute;left:var(--gutter);bottom:113px;display:flex;gap:4px}#scene-dots button{padding:14px 4px;background:transparent;min-width:44px;min-height:44px}#scene-dots button:after{content:"";display:block;background:#ffffff6b;height:2px;transition:background .3s}#scene-dots button[aria-current=true]:after{background:var(--ivory);height:3px}.concept-badge{position:absolute;bottom:14px;left:var(--gutter);background:transparent;padding:0;display:flex;gap:8px;align-items:center;font-size:8px;letter-spacing:.13em;color:#e7e2da;min-height:28px}.concept-badge>span:first-child{color:var(--champagne);font-size:17px}.fallback{position:absolute;inset:0;background:var(--deep);z-index:7;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:var(--gutter)}.fallback h1{font-size:62px;margin:20px 0}.fallback p{max-width:45ch}.fallback button{background:transparent;text-decoration:underline;padding:12px 0;margin-top:16px}.noscript{position:fixed;inset:0;background:var(--deep);z-index:99;padding:15vh 10vw}.noscript a{text-decoration:underline}dialog{padding:30px 38px;border:1px solid #ffffff33;background:var(--deep);color:var(--ivory);width:min(600px,92vw);max-height:90svh;box-shadow:0 20px 100px #0005}dialog::backdrop{background:#07193088;backdrop-filter:blur(8px)}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:30px}.panel-top .kicker{font-size:9px;color:#c8b8a0}.panel-top button{border:1px solid #ffffff66;background:transparent;width:44px;height:44px;font-size:26px}dialog h2{font-size:46px;margin:20px 0 24px}#panel-body p{font-size:13px;line-height:1.8;margin:15px 0}#panel-body .fine{font-size:10px;color:#c8cdd2}#panel-body a{text-decoration:underline;text-underline-offset:4px}.room-list{display:grid;gap:0}.room-list button{background:transparent;display:flex;align-items:center;gap:24px;border-top:1px solid #ffffff30;min-height:59px;padding:13px 0;text-align:left;font-family:Cormorant,serif;font-size:25px}.room-list button span{font-family:Inter,Arial,sans-serif;font-size:9px;color:var(--champagne)}.room-list button[aria-current=true]{color:var(--champagne)}.room-list button:hover{padding-left:8px}.reference-photo{width:100%;max-height:52svh;object-fit:contain;background:#c8b8a0;display:block}.photo-switch{background:transparent;border:1px solid #ffffff66;min-height:44px;padding:10px 16px;margin:18px 0 0;font-size:11px}.map{width:100%;background:#f7f4ee;display:block}.map-wall{stroke:#082d5c;stroke-width:2;fill:none}.map-room{fill:#e7e2da;stroke:#c8b8a0;stroke-width:.5}.map-room.active{fill:#c8b8a0}.map-node{fill:#082d5c;stroke:#f7f4ee;stroke-width:2}.map-number{fill:white;font-family:Inter,sans-serif;font-size:8px;text-anchor:middle;dominant-baseline:central}.map-button{cursor:pointer}.map-button:focus{outline:2px solid #b9a47b}.map-camera{fill:#b9a47b;stroke:#082d5c;stroke-width:1}.help-grid{display:grid;grid-template-columns:125px 1fr;gap:18px;padding:18px 0;border-top:1px solid #ffffff30;font-size:12px}.help-grid strong{font-weight:500;color:#c8b8a0}.gallery-body{height:auto;overflow:auto;background:var(--ivory);color:var(--navy)}.gallery{max-width:1100px;margin:auto;padding:40px 24px}.gallery h1{font-size:64px}.gallery>p{margin:24px 0}.gallery a{text-decoration:underline}.gallery figure{margin:40px 0}.gallery img{width:100%;height:auto}.gallery figcaption{padding-top:12px;font-family:Cormorant,serif;font-size:28px}
@media(max-width:800px){header{padding:30px 24px;height:92px;gap:25px}.brand img{width:136px}.project-name{display:none}.contact{font-size:11px;gap:18px}.upper-controls,.right-controls{top:105px}.upper-controls{left:24px}.right-controls{right:24px}.upper-controls .glass-button,.right-controls .glass-button{padding:10px 13px;font-size:10px}.upper-controls #map-button span{display:none}.glass-button>span:first-child:not(:last-child){font-size:18px}.icon-button{display:none}.welcome{left:24px;right:24px;bottom:95px}.welcome h1{font-size:64px;max-width:12ch}.welcome .kicker{font-size:8px}.welcome-text{font-size:12px}.welcome-disclosure{font-size:9px;max-width:40ch}.scene-caption{left:24px;bottom:212px;max-width:90%}.scene-caption h1{font-size:55px;max-width:13ch}.scene-caption .kicker{font-size:8px}.scene-caption>p:last-child{font-size:11px}.travel-controls{bottom:132px;left:24px;right:24px;justify-content:space-between;gap:22px}.arrow-button{width:44px;height:44px}.travel-next{display:flex;align-items:center;gap:22px;min-width:0}.travel-next>span{font-size:7px;max-width:65px}.travel-next>button{font-size:13px;gap:20px;max-width:210px}.travel-next>button>span:first-child{max-width:150px}.bottom-controls{left:24px;right:24px;bottom:53px;padding-top:12px;gap:10px}.play-button{font-size:9px;gap:8px}.play-button>span:first-child{width:36px;height:36px}.walking{gap:5px}.walking button{width:40px;height:44px}.drag-hint{display:none}#scene-dots{left:24px;bottom:180px}#scene-dots button{min-width:32px;padding:14px 3px}.concept-badge{left:24px;font-size:6px;gap:6px;bottom:12px}.badge-detail{font-size:6px}.scrim.bottom{height:63%;background:linear-gradient(transparent,#07193066 32%,#071930ee)}dialog{padding:23px;width:92vw}dialog h2{font-size:38px}.help-grid{grid-template-columns:90px 1fr;font-size:11px;gap:14px}.fallback h1{font-size:48px}.loading h1{font-size:66px}}
@media(max-width:360px){header{padding-left:20px;padding-right:20px}.welcome h1{font-size:56px}.scene-caption h1{font-size:46px}.upper-controls{left:20px;gap:6px}.right-controls{right:20px}.travel-next>span{display:none}.play-button{font-size:8px}.walking button{width:36px}.badge-detail{display:none}}
@media(max-height:650px) and (min-width:701px){header{height:85px;padding-top:26px;padding-bottom:26px}.upper-controls,.right-controls{top:90px}.welcome{bottom:65px}.welcome h1{font-size:62px;margin:15px 0}.welcome-text{display:none}.welcome-disclosure{font-size:8px;margin-top:12px}.welcome .enter{margin-top:12px}.scene-caption{bottom:138px}.scene-caption h1{font-size:62px}.travel-controls{bottom:147px}.bottom-controls{bottom:38px;padding-top:10px}#scene-dots{bottom:87px}.concept-badge{bottom:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.welcome-shade{position:absolute;inset:0;background:linear-gradient(90deg,#071930c7, #07193055 45%,transparent 80%);pointer-events:none}
#experience[data-mode=tour] .welcome-shade{display:none}
@media(max-width:700px){.welcome-shade{background:linear-gradient(0deg,#071930b0,transparent 100%)}.welcome h1{font-size:60px}}
/* Keep the architecture visible while retaining readable navigation. */
#experience[data-mode=tour] .scrim.bottom{height:42%;background:linear-gradient(transparent,#07193066 55%,#071930bb)}
#experience[data-mode=tour] .scene-caption{bottom:148px}
#experience[data-mode=tour] .scene-caption h1{font-size:clamp(54px,5.5vw,80px)}
@media(max-width:800px){#experience[data-mode=tour] .scene-caption{bottom:210px}#experience[data-mode=tour] .scene-caption h1{font-size:52px}#experience[data-mode=tour] .scrim.bottom{height:56%}}
.scene-caption{transition:opacity .5s}
#experience[data-moving=true] .scene-caption{opacity:0}
.journey-pause{position:absolute;right:var(--gutter);top:182px;min-height:44px;padding:10px 16px;background:#071930c9;border:1px solid #ffffff66;font-size:11px}
@media(max-width:800px){.journey-pause{right:24px;top:161px;font-size:10px}}
/* Two modes share the same scene. Architectural colors remain independent of the interface. */
.mode-switch{position:absolute;top:125px;left:50%;transform:translateX(-50%);display:flex;padding:4px;background:#071930dd;border:1px solid #ffffff50;border-radius:30px;z-index:4;gap:2px}.mode-switch button{background:transparent;border-radius:25px;padding:10px 17px;font-size:10px;min-height:38px}.mode-switch button[aria-pressed=true]{background:#c8b8a0;color:#071930}.model-controls{position:absolute;left:50%;bottom:65px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:8px;background:#071930ed;border:1px solid #ffffff55;border-radius:14px;box-shadow:0 10px 40px #0003;z-index:4;white-space:nowrap}.model-controls button{padding:10px 13px;background:none;font-size:10px;min-height:40px;border-radius:8px}.model-controls button:hover{background:#ffffff20}.model-controls button[aria-pressed=true]{background:#b9a47b;color:#071930}.distribution-intro{position:absolute;left:var(--gutter);bottom:153px;pointer-events:none;text-shadow:0 2px 14px #07193099}.distribution-intro h1{font-size:42px;margin:8px 0 9px}.distribution-intro p:last-child{font-size:10px}.distribution-intro .kicker{font-size:8px}#room-labels{position:absolute;inset:0;pointer-events:none}#room-labels button{position:absolute;transform:translate(-50%,-50%);padding:7px 11px;border-radius:20px;font-size:9px;background:#071930e8;color:#f7f4ee;border:1px solid #dfceb0a0;box-shadow:0 3px 10px #0003;pointer-events:auto;min-height:32px;white-space:nowrap}#room-labels button:hover,#room-labels button:focus-visible{background:#b9a47b;color:#071930;z-index:2}#experience[data-view=distribution] .scene-caption,#experience[data-view=distribution] .travel-controls,#experience[data-view=distribution] .bottom-controls,#experience[data-view=distribution] #scene-dots{display:none}#experience:not([data-view=distribution]) .model-controls,#experience:not([data-view=distribution]) .distribution-intro{display:none}#experience[data-view=distribution] .scrim.bottom{height:29%;background:linear-gradient(transparent,#071930aa)}#experience[data-view=distribution] .scrim.top{height:185px}.fallback-plan{font-size:12px;text-decoration:underline;margin-top:20px}.welcome #enter{margin-left:12px;background:#071930c9;color:#f7f4ee;border:1px solid #ffffff50}.welcome #enter-distribution{background:#c8b8a0}#experience:not([data-mode=tour]) .welcome-shade{background:linear-gradient(90deg,#071930dc,#07193070 44%,#07193008 90%)}.welcome h1{font-size:clamp(60px,6vw,96px)}
@media(max-width:1000px){.mode-switch{top:183px}.distribution-intro h1{font-size:36px}.model-controls{bottom:65px}.model-controls button{padding:9px 10px}}
@media(max-width:700px){.mode-switch{top:161px;white-space:nowrap}.mode-switch button{padding:8px 15px;font-size:9px}.model-controls{bottom:65px;width:calc(100% - 38px);flex-wrap:wrap;justify-content:center;gap:2px;padding:6px;white-space:normal}.model-controls button{min-height:35px;padding:8px 10px;font-size:9px}.distribution-intro{left:24px;right:24px;bottom:174px}.distribution-intro h1{font-size:30px}.distribution-intro p:last-child{font-size:8px;line-height:1.8;max-width:250px}.distribution-intro .kicker{font-size:6px}#room-labels button{font-size:7px;padding:5px 8px;min-height:27px}#experience[data-view=distribution] .scrim.top{height:240px}.welcome h1{font-size:56px}.welcome #enter{margin-left:8px;padding:12px 14px;gap:10px;font-size:10px}.welcome #enter-distribution{padding:12px 14px;gap:15px;font-size:10px}.welcome-disclosure{max-width:100%}.welcome-text{font-size:11px}}
@media(max-height:650px) and (min-width:701px){.mode-switch{top:90px}.distribution-intro{bottom:126px}.distribution-intro h1{font-size:30px}.model-controls{bottom:45px}.model-controls button{min-height:34px}.welcome h1{font-size:60px}.welcome #enter,.welcome #enter-distribution{min-height:45px}}

.plan-reference{margin:20px 0}.plan-reference summary{cursor:pointer;font-size:12px;padding:14px 0}.plan-reference img{display:block;width:100%;height:auto;margin-top:15px}

/* Preserve contrast against the light architectural materials. */
.scrim.top{background:linear-gradient(#071930e0,transparent)}#experience[data-mode=tour] .scrim.bottom{background:linear-gradient(transparent,#07193099 55%,#071930e8)}

/* Cinematic route: the exact interactive model, with a fixed human-height camera. */
.cinema-entry{background:transparent!important;color:#f7f4ee;border:1px solid #ffffff70!important}
#cinema-ui{position:absolute;inset:0;z-index:8;pointer-events:none;background:linear-gradient(#07193080,transparent 16%,transparent 60%,#071930e6)}
#cinema-ui button,#cinema-ui input{pointer-events:auto}#cinema-ui button{background:#10243caa;border:1px solid #ffffff55;border-radius:30px;min-height:44px;padding:10px 17px;font-size:11px}
.cinema-top{position:absolute;top:28px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:20px}.cinema-top .kicker{font-size:9px;letter-spacing:2px}.cinema-bottom{position:absolute;bottom:45px;left:var(--gutter);right:var(--gutter)}.cinema-bottom>.kicker{font-size:8px;margin-bottom:6px}.cinema-bottom h1{font-size:clamp(40px,5vw,66px);margin:0 0 2px;line-height:1.05}.cinema-bottom>p:not(.kicker){font-size:12px;margin:6px 0 15px}.cinema-transport{display:flex;align-items:center;gap:15px}.cinema-transport input{flex:1;min-width:50px;accent-color:#d7be97}.cinema-transport span{font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}#cinema-chapters{display:flex;gap:7px;margin-top:12px}#cinema-chapters button{min-height:32px;padding:6px 14px;font-size:9px}#cinema-chapters button[aria-current=true]{background:#d7be97;color:#10243c;border-color:#d7be97}.film-route{width:100%;max-height:330px;background:#f6f1e9;border-radius:12px;padding:15px}
#experience[data-cinematic=true]>header,#experience[data-cinematic=true] #tour-ui,#experience[data-cinematic=true]>.scrim,#experience[data-cinematic=true] .journey-pause{visibility:hidden}#experience[data-cinematic=true] #canvas{pointer-events:none}#experience[data-cinematic=true] .concept-badge{z-index:9;font-size:7px;bottom:8px}
@media(max-width:700px){.cinema-top{top:20px;left:20px;right:20px}.cinema-top .kicker{font-size:6px;max-width:140px;line-height:1.8}.cinema-top button{font-size:9px!important;padding:8px 12px!important}.cinema-bottom{left:20px;right:20px;bottom:40px}.cinema-bottom h1{font-size:42px}.cinema-bottom>p:not(.kicker){font-size:10px;max-width:275px;line-height:1.6}.cinema-transport{gap:8px}.cinema-transport button{padding:9px 12px!important}.cinema-transport span{font-size:8px}#cinema-route{font-size:8px!important}#cinema-chapters{flex-wrap:wrap;gap:5px}#cinema-chapters button{font-size:8px;padding:6px 10px}.mode-switch button{padding:8px 10px;font-size:8px}.welcome #enter-cinema{margin:10px 0 0;padding:11px 15px;font-size:10px}}

.film-route{display:block;height:330px;stroke:none}

#film-video-ui{position:absolute;inset:0;background:#07121e;z-index:20;display:flex;align-items:center;justify-content:center}#film-video-ui[hidden]{display:none}#film-video{width:100%;height:100%;object-fit:contain}.film-video-head{position:absolute;left:24px;right:24px;top:20px;display:flex;justify-content:space-between;align-items:center;gap:15px;pointer-events:none}.film-video-head span{font-size:8px;letter-spacing:2px;text-shadow:0 1px 6px black}.film-video-head button{pointer-events:auto;border:1px solid #ffffff66;background:#10243cdd;border-radius:30px;min-height:44px;padding:10px 18px;font-size:11px}.film-video-note{position:absolute;bottom:48px;left:20px;right:20px;text-align:center;font-size:9px;text-shadow:0 2px 5px #000;pointer-events:none}.cinema-top-actions{display:flex;gap:8px}#film-video-error{position:absolute;left:20px;right:20px;bottom:90px;background:#10243cdd;border-radius:12px;padding:12px;font-size:12px;text-align:center}@media(max-width:700px){.cinema-top{align-items:flex-start}.cinema-top-actions{flex-direction:column;gap:5px}.cinema-top-actions button{min-height:36px!important}.film-video-head{left:15px;right:15px}.film-video-head span{max-width:160px;font-size:7px;line-height:1.7}.film-video-head button{font-size:10px;padding:8px 12px}.film-video-note{font-size:8px;line-height:1.5;bottom:65px}}

#experience[data-video=true]>:not(#film-video-ui){visibility:hidden}#experience[data-video=true]>#film-video-ui{visibility:visible}
