@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600&family=Italiana&display=swap');
:root{--paper:#eeece5;--ink:#343930;--muted:#707368;--line:#d3d3c9;--olive:#626a50}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,#viewer:focus-visible{outline:2px solid var(--olive);outline-offset:5px}button{border:0;background:none}header{height:102px;margin:0 3.4%;display:flex;align-items:center;border-bottom:1px solid var(--line);justify-content:space-between;position:relative;z-index:3}.wordmark{padding:0;font-size:23px;font-weight:500;letter-spacing:2px;white-space:nowrap}.wordmark span{font-size:11px;vertical-align:top;margin-left:5px}header nav{display:flex;gap:38px}header nav button{font-size:12px;letter-spacing:1.5px;padding:16px 0;position:relative}header nav button:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:var(--ink);transform:scaleX(0);transition:transform .3s}header nav button:hover:after,header nav .nav-active:after{transform:scaleX(1)}.header-note{font-size:10px;letter-spacing:1.6px;color:var(--muted)}.small-cross{font-size:22px;margin-left:30px;font-weight:400}#stage{position:relative;height:calc(100svh - 203px);min-height:565px;overflow:hidden}#viewer{position:absolute;inset:0;outline:none;touch-action:none}#viewer canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity 1.2s}body.ready #viewer canvas{opacity:1}.intro{position:absolute;left:5%;top:9%;z-index:1;pointer-events:none;transition:opacity .45s,transform .45s}.eyebrow{font-size:11px;letter-spacing:2.1px;font-weight:500;margin:0 0 23px}h1{font-family:'Italiana',Georgia,serif;font-size:clamp(37px,3.55vw,61px);font-weight:400;line-height:1.08;letter-spacing:-1.5px;margin:0}h1 em{font-family:Georgia,serif;font-size:.86em;font-weight:400;letter-spacing:-1.6px} .intro-copy{font-size:13px;color:var(--muted);line-height:1.8;margin-top:24px}.top-meta{position:absolute;top:28px;right:3.5%;display:flex;gap:35px;font-size:10px;letter-spacing:1.5px;color:var(--muted);pointer-events:none}.top-meta span:last-child{border-left:1px solid var(--line);padding-left:25px}.view-controls{position:absolute;right:3.5%;top:37%;display:flex;flex-direction:column;border:1px solid #cccec3;border-radius:30px;background:#f5f4eea8;backdrop-filter:blur(12px);padding:9px 5px;z-index:3}.view-controls button{width:39px;height:40px;font-size:24px;display:grid;place-items:center;border-radius:50%;transition:background .2s}.view-controls button:hover{background:#dcded1}.view-controls>span{height:1px;background:var(--line);margin:4px 9px}.view-controls svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.2}.north{position:absolute;left:4%;bottom:82px;display:grid;place-items:center;pointer-events:none}.north span{font-size:11px;color:var(--muted)}.north svg{width:43px;height:43px;transform:rotate(22deg);fill:none;stroke:#7a806b;stroke-width:1}.stage-bottom{position:absolute;bottom:27px;left:3.5%;right:3.5%;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.study-label,.scale{font-size:10px;letter-spacing:1.2px}.study-label{display:flex;gap:9px;align-items:center}.study-label i{width:5px;height:5px;border-radius:50%;background:#91987c}.stage-bottom p{font-size:12px;color:var(--muted);margin:0}.stage-bottom b{padding:0 10px;font-weight:400}.scale span{font-size:17px;margin-left:12px}footer{height:101px;border-top:1px solid var(--line);margin:0 3.4%;display:flex;align-items:center;justify-content:space-between}.part-nav{display:flex;height:100%;gap:40px}.part-nav button{font-size:12px;letter-spacing:1px;position:relative;padding:0 6px;min-width:126px;text-align:left;color:#7f8177;transition:color .25s}.part-nav button span{font-size:10px;margin-right:17px;color:#989b8c}.part-nav button i{position:absolute;top:-1px;left:0;width:100%;height:2px;background:var(--olive);transform:scaleX(0);transform-origin:left;transition:transform .5s}.part-nav button.active i{transform:scaleX(1)}.part-nav button.active,.part-nav button:hover{color:var(--ink)}.footer-note{font-size:10px;letter-spacing:1.5px;color:var(--muted)}.panel{position:absolute;left:4.5%;top:45px;bottom:75px;width:300px;z-index:2;padding:0 25px 20px 0;overflow:auto;animation:panelIn .6s ease both}.panel .back{font-size:11px;letter-spacing:1px;padding:0;margin:0 0 40px}.panel .eyebrow{margin-bottom:12px;color:var(--olive)}h2{font-family:'Italiana',Georgia,serif;font-weight:400;font-size:43px;margin:0 0 20px;letter-spacing:-1px}.panel>p:not(.eyebrow):not(.placeholder-note){font-size:14px;line-height:1.7;color:var(--muted)}dl{margin:24px 0 18px}dl>div{border-top:1px solid var(--line);padding:13px 0;display:grid;grid-template-columns:85px 1fr;gap:8px}dt{font-size:10px;letter-spacing:1px;line-height:1.6}dd{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}.placeholder-note{font-size:10px;letter-spacing:1.1px;color:#878a7d;line-height:1.6}.text-button{font-size:11px;letter-spacing:1px;border-bottom:1px solid var(--line);padding:16px 0;width:100%;text-align:left}.text-button span{float:right;font-size:17px}.selected .intro{opacity:0;transform:translateY(-10px)}#hover-label{position:absolute;pointer-events:none;z-index:5;background:#f9f8f0eb;border:1px solid #c6cbb9;padding:10px 17px;font-size:11px;letter-spacing:1.3px;opacity:0;transition:opacity .2s;box-shadow:0 5px 20px #373e2910}dialog{border:1px solid var(--line);background:#f4f2eb;color:var(--ink);padding:56px;max-width:570px;width:90%;box-shadow:0 30px 100px #27302524}dialog::backdrop{background:#454b3a45;backdrop-filter:blur(7px)}dialog p{font-size:16px;line-height:1.8;color:var(--muted)}dialog .eyebrow{font-size:11px}dialog .close{position:absolute;right:18px;top:12px;font-size:30px}.dialog-foot{display:block;margin-top:35px;padding-top:25px;border-top:1px solid var(--line);font-size:11px;letter-spacing:1.5px}#loading{position:fixed;inset:0;background:var(--paper);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s,visibility .8s}body.ready #loading{opacity:0;visibility:hidden;pointer-events:none}.load-brand{font-size:28px;letter-spacing:5px}.brand-dot{font-size:12px;vertical-align:top}.load-line{width:190px;height:1px;background:var(--line);margin-top:35px}.load-line i{height:1px;display:block;background:var(--olive);width:5%;transition:width .3s}#loading p{font-size:10px;letter-spacing:2px;margin-top:20px}#notice{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);max-width:90%;padding:16px 22px;background:#f9f8f0;border:1px solid var(--line);font-size:13px;z-index:10}#fallback{position:absolute;left:42%;top:35%;max-width:350px;padding:25px;border:1px solid var(--line);background:#f2f0e8}#fallback p{line-height:1.7;color:var(--muted)}@keyframes panelIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
[hidden]{display:none!important}.panel{background:linear-gradient(90deg,#eeece5f5 82%,#eeece500)}
@media(min-width:1500px){.panel{width:340px;top:65px}.panel>p:not(.eyebrow):not(.placeholder-note){font-size:16px}dd{font-size:14px}}
@media(max-width:1000px){.header-note,.footer-note{display:none}.part-nav{width:100%;justify-content:space-between;gap:10px}.part-nav button{min-width:0}.intro{top:11%}h1{font-size:40px}.top-meta{font-size:9px}.top-meta span:first-child{display:none}.panel{width:270px}.stage-bottom .scale{display:none}.stage-bottom p{font-size:11px}}
@media(max-width:700px){header{height:78px;margin:0 6%}.wordmark{font-size:17px;letter-spacing:1px}header nav{gap:17px}header nav button{font-size:10px;letter-spacing:.8px}.header-note{display:none}#stage{height:calc(100svh - 160px);min-height:610px}.intro{left:6%;top:40px}h1{font-size:35px;line-height:1.06}.eyebrow{font-size:9px;margin-bottom:17px}.intro-copy{font-size:12px;margin-top:18px}.top-meta{top:20px;right:6%;font-size:8px}.top-meta span:last-child{border:0;padding:0}.view-controls{right:5%;top:47%;padding:5px 3px}.view-controls button{width:32px;height:34px}.north{left:5%;bottom:76px}.stage-bottom{bottom:22px;left:6%;right:6%;flex-direction:column;gap:13px}.stage-bottom .study-label{font-size:9px}.stage-bottom p{font-size:10px}.stage-bottom b{padding:0 4px}footer{height:82px;margin:0 5%}.part-nav button{font-size:10px;letter-spacing:.5px;padding:0 4px}.part-nav button span{display:block;margin:0 0 8px;font-size:9px}.panel{left:6%;right:6%;top:auto;bottom:65px;width:auto;max-height:235px;background:#eeece5ed;backdrop-filter:blur(12px);padding:17px 20px;border:1px solid var(--line)}.panel .back{margin-bottom:20px}.panel h2{font-size:30px;margin-bottom:10px}.panel .eyebrow{font-size:9px}.panel dl{margin:15px 0}.selected .north{display:none}.selected .view-controls{top:22%}.selected .study-label{display:none}dialog{padding:40px 28px}dialog h2{font-size:36px}#fallback{left:6%;right:6%;top:43%;max-width:none}#fallback h2{font-size:28px}#fallback p{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* DWG-linked floor-plan presentation */
.overview-plan{position:absolute;z-index:2;left:5%;top:310px;width:275px}.plan-card{background:#f6f5efee;border:1px solid #d2d4c7;padding:15px 15px 11px;box-shadow:0 7px 24px #30362806}.plan-heading{display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:1px;margin-bottom:13px}.plan-heading span:last-child{color:var(--muted);font-size:9px}.plan-image-button{display:block;width:100%;padding:0;background:#fff;overflow:hidden;border:1px solid #e8e9e2}.plan-image-button:disabled{cursor:default}.plan-image-button img{width:100%;height:175px;display:block;object-fit:contain;padding:10px;transition:opacity .3s}.plan-card p{font-size:11px;line-height:1.5;color:var(--muted);margin:10px 0 0}.panel{width:320px;padding-right:20px}.panel .back{margin-bottom:22px}.panel h2{font-size:37px;margin-bottom:15px}#selected-plan .plan-card{margin:0 0 18px}#selected-plan .plan-image-button img{height:150px}.panel>p:not(.eyebrow):not(.placeholder-note){font-size:13px}.panel dl{margin-top:16px}.panel dl>div{padding:10px 0}.view-controls{top:31%}.north{left:auto;right:4%;bottom:85px}.plan-dialog{width:min(1050px,94vw);max-width:1050px;padding:30px 36px;max-height:94svh;overflow:auto}.plan-dialog h2{font-size:34px;margin-bottom:15px}.plan-dialog .eyebrow{margin-bottom:10px}.expanded-plan-scroll{background:white;max-height:68svh;overflow:auto}.expanded-plan-scroll img{display:block;width:100%;min-width:650px}.plan-disclaimer{font-size:12px!important;margin-bottom:0}.part-nav button{font-size:13px}
@media(max-height:850px) and (min-width:701px){.intro{top:52px}h1{font-size:36px}.intro-copy{display:none}.overview-plan{top:220px;width:245px}.plan-image-button img{height:135px}.overview-plan .plan-heading{font-size:9px}.panel{top:24px}.panel .back{margin-bottom:15px}}
@media(max-width:700px){.overview-plan{left:6%;top:auto;bottom:75px;width:160px}.plan-card{padding:9px}.plan-heading{font-size:8px;margin-bottom:6px}.plan-heading span:last-child{font-size:7px}.plan-image-button img{height:96px;padding:4px}.plan-card p{font-size:9px;margin-top:6px}.intro-copy{display:none}.panel{left:5%;right:5%;width:auto;max-height:290px;bottom:58px;padding:15px}.panel h2{font-size:29px}.panel .back{margin-bottom:12px}#selected-plan .plan-image-button img{height:132px}.panel .eyebrow{margin-bottom:7px}.selected .view-controls{top:9%}.view-controls{top:31%}.plan-dialog{padding:25px 18px}.expanded-plan-scroll img{min-width:560px}.plan-dialog .eyebrow{font-size:9px}.north{right:5%;bottom:87px}.part-nav button{font-size:10px}.overview-plan .plan-heading span:last-child{display:none}}

/* Daylight is optional and secondary to the architecture. */
.daylight{position:absolute;right:3.5%;top:65px;z-index:4;width:225px;background:#f6f5efeb;border:1px solid var(--line);backdrop-filter:blur(15px)}.daylight summary{cursor:pointer;list-style:none;padding:13px 16px;font-size:10px;letter-spacing:1.4px;display:flex;align-items:center;gap:13px}.daylight summary::-webkit-details-marker{display:none}.daylight summary>span{font-size:20px;line-height:1}.daylight summary:after{content:'+';margin-left:auto}.daylight[open] summary:after{content:'−'}.daylight-body{padding:8px 17px 15px}.daylight label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;margin-top:12px}.daylight output{font-variant-numeric:tabular-nums}.daylight input{width:100%;accent-color:var(--olive);cursor:pointer;margin:13px 0 6px}.range-labels{display:flex;justify-content:space-between;font-size:8px;color:var(--muted)}.daylight p{font-size:10px;line-height:1.6;color:var(--muted);margin:20px 0 0}.daylight .text-button{font-size:9px;padding:12px 0 0;border:0}
#gallery-view{padding:45px 5% 55px;max-width:1800px;margin:auto}.gallery-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.gallery-head .eyebrow{margin-bottom:14px}.gallery-head h1{font-size:42px}.gallery-head .back{font-size:11px;letter-spacing:1px}.gallery-feature{margin:0}.gallery-feature>img{display:block;width:100%;height:calc(100svh - 320px);min-height:350px;object-fit:contain;background:#e3e3db}.gallery-feature figcaption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.3px;padding:18px 0;color:var(--muted)}.gallery-thumbs{display:flex;gap:20px;margin-top:8px}.gallery-thumbs button{padding:0;width:160px;text-align:left;opacity:.55;transition:opacity .25s}.gallery-thumbs button.active,.gallery-thumbs button:hover{opacity:1}.gallery-thumbs img{display:block;width:100%;height:85px;object-fit:cover}.gallery-thumbs span{font-size:9px;letter-spacing:.7px;display:block;padding-top:10px}.gallery-thumbs button.active img{outline:1px solid var(--olive);outline-offset:4px}body.gallery-mode #stage,body.gallery-mode>footer{display:none}body.gallery-mode #gallery-view{display:block}
@media(max-width:700px){header nav{gap:12px}header nav button{font-size:9px}.wordmark{font-size:14px}.daylight{right:5%;top:46px;width:180px}.daylight summary{font-size:9px;padding:10px 12px}.daylight[open]{box-shadow:0 12px 35px #34393020}.gallery-head{align-items:flex-start;gap:20px}.gallery-head h1{font-size:29px}.gallery-head .back{font-size:9px;line-height:1.6;min-width:95px}#gallery-view{padding-top:30px}.gallery-feature>img{height:52svh;min-height:270px}.gallery-feature figcaption{font-size:8px;gap:15px}.gallery-thumbs{gap:12px}.gallery-thumbs button{width:calc((100% - 24px)/3)}.gallery-thumbs img{height:65px}.gallery-thumbs span{font-size:8px;line-height:1.5}}
@media(max-width:700px){.daylight{top:158px;width:160px}.selected .daylight{top:18px;width:180px}}

/* Camera-relative compass; north matches the supplied ground-floor plan. */
.north{pointer-events:auto;width:76px;height:76px;padding:0;border-radius:50%;z-index:3;background:transparent;transition:background .2s}
.north:hover{background:#f9f8f0b8}
.north svg{display:block;width:76px;height:76px;transform:none}
.north text{fill:var(--muted);stroke:none;text-anchor:middle;font-family:inherit;font-size:10px;letter-spacing:0}
#plan-title:empty{display:none}
.overview-plan .plan-heading{justify-content:flex-start}
@media(max-width:700px){.north,.north svg{width:62px;height:62px}.selected .north{display:grid;bottom:auto;top:9%;right:18%}.overview-plan .plan-heading span:last-child{display:inline}}
@media(min-width:701px){.north{bottom:60px}}

.explode-button{margin:0 0 8px;border:1px solid var(--line);padding:12px 14px;background:#f8f7f0}.explode-button[aria-pressed="true"]{background:#dde0d3}.effect-note{font-size:11px!important;line-height:1.5!important;margin:0 0 16px;color:var(--muted)}
#stage:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#eeece5f2 0%,#eeece5d9 19%,#eeece500 42%),linear-gradient(0deg,#eeece5 0%,#eeece500 15%)}
.intro{z-index:2}.stage-bottom,.top-meta{z-index:2}.panel{background:#eeece5ed;padding:20px;border:1px solid var(--line);backdrop-filter:blur(8px)}
@media(max-width:700px){#stage:before{background:linear-gradient(180deg,#eeece5 0%,#eeece500 35%),linear-gradient(0deg,#eeece5 0%,#eeece500 20%)}}

.wordmark{position:relative;text-align:left;line-height:1.15}.wordmark small{display:block;font-size:9px;letter-spacing:.23em;margin-top:5px;font-weight:400}.north{background:#f7f5eeed;border:1px solid #a7ab9b;border-radius:50%;box-shadow:0 3px 15px #42463720;color:#454e3d}.north:hover,.north:focus-visible{background:#fffdf5;box-shadow:0 3px 18px #42463735}

.north{background:rgba(247,245,238,.74);border-color:#a7ab9b80;box-shadow:0 2px 10px #42463714}.north:hover,.north:focus-visible{background:rgba(247,245,238,.88)}
