@font-face{font-family:Manrope;src:url('assets/manrope-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{--paper:#f3f0e9;--ink:#242621;--muted:#65685e;--orange:#e78025;--line:#d4d3c9;--header:94px;--pad:clamp(24px,5.4vw,104px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 16px)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}a,button,input,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:5px}button:disabled{cursor:wait;opacity:.45}h1,h2,h3,p,figure{margin:0}img{display:block;max-width:100%}p{line-height:1.65}h1,h2{font-weight:500;letter-spacing:-.055em;line-height:1.04}em{font-family:Georgia,serif;font-weight:400}button{border:0} .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}.skip-link{position:fixed;top:8px;left:16px;z-index:100;background:var(--orange);padding:14px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.site-header{height:var(--header);position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:8px var(--pad);background:var(--paper);border-bottom:1px solid rgba(36,38,33,.1)}.brand{display:block;width:112px;flex-shrink:0}.brand img{width:100%;height:auto}.site-header nav{display:flex;gap:36px;font-size:13px;font-weight:600}.site-header nav a{padding:10px 0}.site-header nav a:hover{color:#ae5513}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--orange);color:#191c17;padding:20px 26px;font-size:13px;font-weight:700;transition:background .2s,transform .2s}.button:hover{background:#f29140;transform:translateY(-2px)}.button span{font-size:20px}.button-small{padding:14px 19px;font-size:12px}
.experience{height:auto;background:#232620;position:relative;color:#fff}.scene-sticky{height:calc(100svh - var(--header));min-height:610px;position:relative;top:var(--header);overflow:hidden;background:#232620}.scene-media{position:absolute;inset:0}.poster,.poster img,#scene{position:absolute;width:100%;height:100%;inset:0}.poster img{object-fit:cover}#scene{opacity:0;transition:opacity .4s}#scene.ready{opacity:1}.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,24,20,.63),transparent 75%),linear-gradient(0deg,rgba(15,20,17,.93) 0%,rgba(15,20,17,.45) 25%,transparent 55%);pointer-events:none}.hero-heading{position:absolute;left:var(--pad);top:9%;max-width:860px;will-change:opacity,transform}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.orange-dot{display:inline-block;width:6px;height:6px;background:var(--orange);border-radius:50%;margin-right:8px;vertical-align:2px}h1{font-size:clamp(44px,6.3vw,104px);margin:23px 0 22px;line-height:1.02}h1 span{color:#f5efe4}.hero-intro{font-size:15px;color:#e6e7df;line-height:1.7}.scene-topline{position:absolute;top:32px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;font-weight:600;opacity:0}.scene-topline a{letter-spacing:.02em}.scene-caption{position:absolute;left:var(--pad);right:var(--pad);bottom:178px;display:flex;align-items:flex-start;gap:22px;max-width:760px}.caption-number{font-size:13px;color:var(--orange);font-weight:700;border:1px solid #ffffff55;width:42px;height:42px;display:grid;place-items:center;flex-shrink:0}.scene-caption h2{font-size:clamp(25px,2.65vw,42px);letter-spacing:-.035em;margin:5px 0 11px}.scene-caption .eyebrow{color:#dfb38a;font-size:9px}.scene-caption p:last-child{font-size:12px;color:#e0e2d9;max-width:550px}.experience-controls{position:absolute;bottom:18px;left:var(--pad);right:var(--pad)}.control-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#ddd;min-height:32px}.text-button{padding:8px 0 8px 15px;color:inherit;background:none;font-size:10px;text-decoration:underline;text-underline-offset:3px}.scroll-line{display:inline-block;height:15px;width:1px;background:var(--orange);margin-right:10px;vertical-align:-3px}.experience-controls input{display:block;width:100%;height:18px;margin:6px 0 0;appearance:none;background:transparent;cursor:ew-resize}.experience-controls input::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,var(--orange) var(--progress,0%),#ffffff55 var(--progress,0%))}.experience-controls input::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:var(--orange);border:0;border-radius:50%;margin-top:-4px}.experience-controls input::-moz-range-track{height:2px;background:#ffffff55}.experience-controls input::-moz-range-progress{background:var(--orange)}.experience-controls input::-moz-range-thumb{width:10px;height:10px;background:var(--orange);border:0}.stage-nav{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}.stage-nav button{display:flex;gap:10px;align-items:center;min-height:39px;text-align:left;color:#b8bcb2;background:none;padding:0;font-size:11px}.stage-nav button:last-child{justify-content:flex-end}.stage-nav span{font-size:9px;color:#a0a79c}.stage-nav b{font-weight:500}.stage-nav button[aria-current]{color:#fff}.stage-nav button[aria-current] span{color:var(--orange)}.visual-note{text-align:right;font-size:8px;letter-spacing:.04em;color:#c6c9c0;margin-top:9px}.visual-note a{text-decoration:underline;text-underline-offset:3px}.section-pad{padding:94px var(--pad)}.section-label{display:flex;justify-content:space-between;gap:25px;font-size:9px;font-weight:700;letter-spacing:.13em;border-top:1px solid var(--line);padding-top:19px;margin-bottom:66px}.statement-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;margin-bottom:70px}.statement h2,.process h2{font-size:clamp(40px,4.5vw,72px)}.statement-grid .lead{font-size:20px;line-height:1.55;letter-spacing:-.02em;margin-bottom:21px}.statement-grid p:not(.lead){font-size:13px;color:var(--muted)}.underlined{display:inline-flex;gap:50px;padding:15px 0 10px;border-bottom:1px solid var(--ink);font-size:12px;font-weight:700;margin-top:12px}.underlined span{font-size:18px}.focus-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;align-items:start}.service-list details{border-top:1px solid var(--line);padding:24px 0}.service-list summary{list-style:none;display:flex;align-items:center;font-size:20px;font-weight:500;letter-spacing:-.03em;cursor:pointer}.service-list summary::-webkit-details-marker{display:none}.service-list summary>span{font-size:9px;color:var(--muted);letter-spacing:0;margin-right:20px}.service-list summary i{font-style:normal;margin-left:auto;font-size:22px;font-weight:400;transition:transform .2s}.service-list details[open] i{transform:rotate(45deg);color:#b15b19}.service-list details p{font-size:12px;line-height:1.8;color:var(--muted);padding:19px 20px 0 33px}.service-footnote{font-size:10px;color:var(--muted);padding-top:18px;border-top:1px solid var(--line)}.finished-figure img{aspect-ratio:1.25;object-fit:cover;object-position:57% center}.finished-figure figcaption{display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.07em;padding-top:15px;color:var(--muted)}.process{background:#e7e6de}.process-heading{display:flex;justify-content:space-between;gap:8vw;align-items:flex-end;margin-bottom:65px}.process-heading>p{max-width:310px;font-size:13px;color:var(--muted)}.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.process-steps article{border-top:1px solid #b7baad;padding-top:22px}.step-number{font-size:10px;color:#8f4b15}.process-steps h3{font-weight:500;font-size:19px;letter-spacing:-.04em;margin:30px 0 16px}.process-steps p{font-size:12px;color:var(--muted)}.contact{display:grid;grid-template-columns:1.4fr 1fr;gap:10vw;padding-top:110px;padding-bottom:110px}.contact h2{font-size:clamp(45px,5.5vw,87px);margin:25px 0}.contact-copy>p:not(.eyebrow){font-size:14px;max-width:380px;color:var(--muted)}.contact-actions{display:flex;gap:28px;align-items:center;margin-top:36px}.phone{font-size:13px;font-weight:600;white-space:nowrap}.project-starter{border-left:1px solid var(--line);padding:30px 0 0 50px;align-self:stretch}.plus-mark{font-size:50px;color:var(--orange);font-weight:300;line-height:1}.project-starter h3{font-size:20px;letter-spacing:-.03em;font-weight:500;margin:26px 0 18px}.project-starter ul{list-style:none;padding:0;margin:0 0 26px;font-size:12px;color:var(--muted)}.project-starter li{padding:10px 0;border-bottom:1px solid var(--line)}.project-starter li:before{content:'↗';margin-right:12px;color:#a3561a}.project-starter p{font-size:12px;color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;gap:28px;margin:0 var(--pad);padding:35px 0;border-top:1px solid var(--line)}.footer-brand{width:105px}footer p{font-size:10px;color:var(--muted)}footer>div{text-align:right}footer a:not(.brand){font-size:11px}footer>div p{margin-top:8px;font-size:9px}.noscript-note{padding:18px var(--pad);font-size:13px;background:#f6d8bb}
body.manual .experience{height:auto}body.manual .scene-sticky{position:relative;top:0}.manual .hero-heading{opacity:1!important;transform:none!important}.manual .scene-topline{opacity:0!important}
.notes{max-width:1160px;margin:auto;padding:70px var(--pad)}.notes h1{color:var(--ink);font-size:clamp(40px,6vw,76px)}.notes h2{font-size:30px;margin:45px 0 20px}.notes h3{margin:26px 0 10px}.notes p,.notes li{font-size:14px;color:var(--muted);line-height:1.8}.notes ul,.notes ol{padding-left:22px}.notes a:not(.button){text-decoration:underline;text-underline-offset:3px}.notes .note-banner{background:#e7e6de;padding:25px;margin:25px 0;border-left:3px solid var(--orange)}.notes .comparison{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;margin:25px 0}th,td{padding:15px;border:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.6}th{background:#e7e6de}.notes figure{margin:30px 0}.notes figcaption{font-size:11px;color:var(--muted);margin-top:10px}
@media(min-width:1600px){.hero-heading{top:12%}.scene-caption{bottom:190px}}
@media(max-height:760px) and (min-width:761px){.hero-heading{top:6%}h1{font-size:clamp(42px,5.5vw,72px);margin:17px 0}.hero-intro{font-size:13px}.scene-sticky{min-height:570px}.scene-caption{bottom:166px}.scene-caption h2{font-size:27px}.scene-caption p:last-child{font-size:11px}}
@media(max-width:1000px){.site-header nav{gap:20px}.focus-grid{grid-template-columns:1fr 1fr;gap:30px}.service-list summary{font-size:17px}.contact{gap:40px}.contact-actions{flex-wrap:wrap}.project-starter{padding-left:30px}.process-steps{gap:20px}.process-steps h3{font-size:17px}}
@media(max-width:760px){:root{--header:76px;--pad:22px}.site-header{padding-top:7px;padding-bottom:7px}.brand{width:86px}.site-header nav{display:none}.button-small{font-size:10px;padding:11px 14px;gap:18px}.button-small span{font-size:17px}.has-player .experience{height:400svh}.scene-sticky{min-height:600px;height:calc(100svh - var(--header));max-height:850px;display:flex;flex-direction:column}.hero-heading{position:relative;top:auto;left:auto;padding:25px var(--pad) 20px;max-width:none;min-height:180px;transform:none!important;opacity:1!important}.hero-heading .eyebrow{font-size:7px;letter-spacing:.11em}h1{font-size:clamp(35px,8.9vw,58px);margin:15px 0 0;line-height:1.05}.hero-intro{display:none}.scene-media{position:relative;inset:auto;flex:none;width:100%;aspect-ratio:1672/941}.scene-sticky .scene-media{order:2}.hero-heading{order:1}.scene-caption{order:3;position:relative;left:auto;right:auto;bottom:auto;gap:12px;padding:22px var(--pad) 10px;min-height:131px}.caption-number{font-size:10px;width:30px;height:30px}.scene-caption h2{font-size:24px;line-height:1.1;letter-spacing:-.04em;margin:5px 0 8px}.scene-caption .eyebrow{font-size:7px}.scene-caption p:last-child{font-size:10px;line-height:1.55}.scene-shade{display:none}.poster img{object-fit:contain}.scene-topline{display:none}.experience-controls{position:relative;order:4;left:auto;right:auto;bottom:auto;margin:auto var(--pad) 14px;padding-top:7px}.control-top{font-size:9px;min-height:25px}.control-top .text-button{font-size:8px;padding:8px 0 8px 10px}.scroll-line{height:10px;margin-right:5px}.stage-nav{gap:4px}.stage-nav button{min-height:40px;gap:4px;flex-direction:column;align-items:flex-start;justify-content:center;font-size:9px}.stage-nav button:last-child{align-items:flex-end}.stage-nav span{font-size:7px}.visual-note{font-size:6.5px;margin-top:4px;text-align:left}.section-pad{padding:55px var(--pad)}.section-label{font-size:7px;margin-bottom:38px;letter-spacing:.08em;line-height:1.6}.section-label span:last-child{text-align:right;max-width:140px}.statement-grid{grid-template-columns:1fr;gap:25px;margin-bottom:40px}.statement h2,.process h2{font-size:42px}.statement-grid .lead{font-size:17px;margin-bottom:15px}.statement-grid p:not(.lead){font-size:12px}.focus-grid{grid-template-columns:1fr;gap:35px}.finished-figure img{aspect-ratio:1.45}.service-list summary{font-size:19px}.process-heading{display:block;margin-bottom:36px}.process-heading>p{margin-top:25px;max-width:100%;font-size:12px}.process-steps{grid-template-columns:1fr 1fr;gap:32px 20px}.process-steps h3{font-size:18px;margin:20px 0 12px}.process-steps p{font-size:11px}.contact{grid-template-columns:1fr;gap:40px}.contact h2{font-size:49px}.contact-copy>p:not(.eyebrow){font-size:12px}.contact-actions{gap:22px}.button{font-size:11px;padding:17px 20px;gap:25px}.project-starter{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.plus-mark{display:none}.project-starter h3{margin:0 0 16px}footer{flex-wrap:wrap;gap:22px;padding:30px 0}.footer-brand{width:90px}footer>div{width:100%;text-align:left;border-top:1px solid var(--line);padding-top:20px}footer>p{font-size:9px}.notes{padding-top:40px}.notes h2{font-size:27px}}
@media(max-width:760px) and (max-height:740px){.hero-heading{min-height:153px;padding-top:18px;padding-bottom:15px}h1{font-size:34px}.scene-caption{padding-top:16px;min-height:122px}.scene-caption h2{font-size:22px}.scene-sticky{min-height:570px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.experience{height:auto}.scene-sticky{position:relative;top:0}.hero-heading{transform:none!important;opacity:1!important}}

.has-player .experience{height:510vh}.has-player .scene-sticky{position:sticky}body.manual .scene-sticky{position:relative}body.manual .experience{height:auto}
@media(max-width:760px){.has-player .experience{height:400svh}.stage-nav button{min-height:44px}.control-top .text-button{min-height:36px}}
@media(prefers-reduced-motion:reduce){.has-player .experience{height:auto}.has-player .scene-sticky{position:relative}}

html:not(.has-player) .scene-sticky{top:0}html:not(.has-player) .experience-controls{display:none}html:not(.has-player) .scene-caption{bottom:35px}

/* Immersive spatial study: the architecture is an interactive WebGL environment. */
.scene-recovery[hidden]{display:none}.scene-recovery{position:absolute;z-index:8;left:var(--pad);right:var(--pad);bottom:24px;max-width:720px;padding:22px;background:#17392fee;border:1px solid #ffffff55;font-size:12px}.scene-recovery>div{display:flex;gap:25px;align-items:center}.scene-recovery .underlined{border-color:#ffffff66}.scene-recovery details{margin-top:15px}.scene-recovery details p{font-size:10px;overflow-wrap:anywhere;margin-top:9px}
.css-scene{position:absolute;inset:0;perspective:1400px;perspective-origin:50% 48%;overflow:hidden;background:radial-gradient(ellipse at 64% 47%,#537268,#253532 70%)}
.css-world{position:absolute;left:50%;top:57%;transform-style:preserve-3d;transform-origin:0 0 0}
.css-build,.css-box{position:absolute;transform-style:preserve-3d;transform-origin:0 0 0}
.css-face{position:absolute;display:block;background:var(--material);backface-visibility:hidden;border:1px solid #0000000a}
.css-face.front{background:linear-gradient(110deg,#ffffff12,#00000012),var(--material)}.css-face.right{background:linear-gradient(#00000020,#00000045),var(--material)}.css-face.left{background:linear-gradient(#00000030,#00000050),var(--material)}.css-face.top{background:linear-gradient(120deg,#ffffff28,transparent),var(--material)}.css-face.back,.css-face.bottom{background:linear-gradient(#00000030,#00000040),var(--material)}
.css-box.oak .front{background:repeating-linear-gradient(90deg,transparent 0 5px,#53331733 5px 6px),var(--material)}.css-box.floor .top{border:1px solid #8c8c7c;box-shadow:inset 0 0 35px #fffff51a}.css-box.glass .css-face{border-color:#cbe4db32;background:var(--material)}.css-box.light .css-face{box-shadow:0 0 8px #f7d89966}.css-room-logo{position:absolute;left:-60px;top:-43px;width:120px;height:auto;background:#f3f0e9;padding:5px;backface-visibility:hidden}
.has-css-3d #scene{opacity:0!important;pointer-events:none}.has-css-3d .hero-heading{z-index:1}.has-css-3d .scene-shade{z-index:1}.has-css-3d .scene-caption,.has-css-3d .scene-coordinate,.has-css-3d .scene-topline{z-index:2}
.finished-figure img{width:100%;height:auto}
.poster.hidden{display:none}
body:has(#scene){background:#ecece4}
body:has(#scene) .site-header{position:absolute;top:0;width:100%;background:transparent;border-bottom:1px solid #ffffff25;color:#f4f0e7;height:94px}
body:has(#scene) .site-header .brand{width:94px;position:relative;background:transparent}
body:has(#scene) .site-header nav a:hover{color:#f6ad6c}
.has-3d .experience{height:580svh;background:#253532}
.has-3d .scene-sticky{height:100svh;min-height:650px;max-height:none;top:0;display:block;background:#253532}
.has-3d .scene-media{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.has-3d .scene-shade{display:block;background:linear-gradient(90deg,rgba(13,30,28,.48),transparent 53%),linear-gradient(0deg,rgba(14,28,25,.98),rgba(14,28,25,.2) 26%,transparent 46%)}
.has-3d .hero-heading{position:absolute;left:var(--pad);top:21%;padding:0;min-height:0;max-width:620px;pointer-events:none;transform:none!important;opacity:var(--hero-opacity,1)!important}
.has-3d h1{font-size:clamp(54px,6.4vw,102px);line-height:1;max-width:650px;margin:24px 0}
.has-3d .hero-intro{font-size:13px;max-width:325px;display:block;color:#d7e0d7}
.has-3d .hero-heading .eyebrow{font-size:9px;letter-spacing:.17em}
.has-3d .scene-topline{display:flex;top:126px;font-size:9px;opacity:var(--topline-opacity,0)!important;pointer-events:none}
.has-3d .scene-topline a{pointer-events:auto}
.view-tools{position:absolute;right:var(--pad);top:172px;display:flex;gap:8px;z-index:4}
.has-3d .view-tools,.has-3d .explore-hint,.has-3d .player-actions{display:none}
.has-3d body.manual .player-actions{display:flex}.has-3d body.manual #tour-toggle{display:none}
.view-tools button{display:flex;align-items:center;gap:10px;border:1px solid #ffffff65;background:#263c35a6;color:#fff;border-radius:30px;padding:13px 18px;font-size:11px;backdrop-filter:blur(12px)}
.view-tools button[hidden]{display:none}
.view-tools button:hover,.view-tools button[aria-pressed=true]{background:#f0ece2;color:#25352c}
.view-tools button span{color:#f3a15b;font-size:18px}
#view-closer,#view-wider{min-width:44px;justify-content:center;padding:9px;font-size:19px}
.explore-hint{position:absolute;right:var(--pad);top:228px;font-size:10px;color:#dce3da;max-width:300px;text-align:right;pointer-events:none}
.scene-coordinate{position:absolute;right:var(--pad);bottom:222px;display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:.14em;color:#cbd7ce;pointer-events:none}
.scene-coordinate .crosshair{font-size:24px;font-weight:200;color:var(--orange)}
#build-percent{font-variant-numeric:tabular-nums;font-size:12px;min-width:36px;text-align:right;margin-left:12px}
.has-3d .scene-caption{position:absolute;left:var(--pad);right:auto;bottom:173px;padding:0;max-width:540px;min-height:0;gap:18px;pointer-events:none}
.has-3d .scene-caption h2{font-size:clamp(26px,2.7vw,40px);margin:5px 0 8px}
.has-3d .scene-caption p:last-child{font-size:11px;max-width:420px;color:#d8e0d7}
.has-3d .caption-number{width:37px;height:37px;font-size:12px;background:#1d352c66}
.has-3d .experience-controls{position:absolute;left:var(--pad);right:var(--pad);bottom:21px;margin:0;padding:0;z-index:5}
.player-actions{display:flex;align-items:center;gap:20px}
.player-actions .text-button{min-height:38px;padding:8px 0;font-size:10px;text-decoration:none}
#tour-toggle:before{content:'▶';color:var(--orange);font-size:8px;margin-right:8px}
#tour-toggle[aria-pressed=true]:before{content:'Ⅱ'}
.has-3d .control-top{border-top:1px solid #ffffff25;padding-top:7px}
.has-3d .stage-nav button{min-height:44px}
.has-3d .visual-note{font-size:8px;color:#aebfb1}
.is-exploring #scene{cursor:grab}.is-exploring #scene:active{cursor:grabbing}
.has-3d .is-exploring .hero-heading{opacity:0!important}
.has-3d .is-exploring .scene-caption{opacity:0}
.has-3d body.manual .scene-sticky{position:relative;top:0}
.has-3d body.manual .experience{height:100svh;min-height:650px}
@media(min-width:1600px){.has-3d .scene-caption{bottom:180px}}
@media(max-height:760px) and (min-width:761px){.has-3d .scene-sticky,.has-3d body.manual .experience{min-height:580px}.has-3d .hero-heading{top:25%}.has-3d h1{font-size:clamp(45px,5.6vw,78px);margin:18px 0}.has-3d .hero-intro{font-size:12px;max-width:290px}.has-3d .scene-caption{bottom:157px}.has-3d .scene-caption h2{font-size:28px}.scene-coordinate{bottom:197px}.view-tools{top:150px}.explore-hint{top:205px}.has-3d .scene-topline{top:119px}}
@media(max-width:760px){
 body:has(#scene) .site-header{height:80px;padding-top:12px;padding-bottom:12px}
 body:has(#scene) .site-header .brand{width:74px}
 .has-3d .experience{height:430svh}
 .has-3d .scene-sticky,.has-3d body.manual .experience{height:100svh;min-height:650px;max-height:none}
 .has-3d .scene-shade{background:linear-gradient(180deg,#17312b30,transparent 40%),linear-gradient(0deg,#10241efc,#10241ed9 19%,transparent 48%)}
 .has-3d .hero-heading{top:112px;left:var(--pad);right:var(--pad);max-width:none}
 .has-3d h1{font-size:clamp(39px,10.5vw,60px);margin:13px 0 0;line-height:1.01}
 .has-3d .hero-heading .eyebrow{font-size:7px;letter-spacing:.11em}
 .has-3d .hero-intro{display:none}
 .has-3d .scene-topline{top:108px;font-size:7px}
 .has-3d .scene-topline a{display:none}
 .view-tools{top:auto;bottom:283px;right:var(--pad);left:auto;gap:5px}
 .view-tools button{font-size:9px;min-height:42px;padding:9px 13px;gap:6px}
 .view-tools button span{font-size:16px}
 .explore-hint{top:auto;bottom:335px;font-size:9px;max-width:220px}
 .scene-coordinate{bottom:293px;left:var(--pad);right:auto;font-size:6px;gap:6px}
 .scene-coordinate>span:nth-child(2){display:none}
 #build-percent{font-size:10px;margin-left:0;min-width:28px}
 .has-3d .scene-caption{bottom:174px;left:var(--pad);right:var(--pad);gap:12px;max-width:none;min-height:86px}
 .has-3d .caption-number{width:29px;height:29px;font-size:10px}
 .has-3d .scene-caption .eyebrow{font-size:7px}
 .has-3d .scene-caption h2{font-size:25px;margin:4px 0 7px}
 .has-3d .scene-caption p:last-child{font-size:10px;line-height:1.6;max-width:290px}
 .has-3d .experience-controls{bottom:17px}
 .has-3d .control-top{font-size:8px;align-items:center;gap:8px}
 .player-actions{gap:14px}
 .player-actions .text-button{font-size:8px;min-height:42px}
 .has-3d .stage-nav{gap:5px}
 .has-3d .stage-nav button{font-size:9px;min-height:42px;gap:5px}
 .has-3d .stage-nav button:last-child{justify-content:center}
 .has-3d .stage-nav span{font-size:7px}
 .has-3d .visual-note{font-size:6px;line-height:1.6;margin-top:9px;max-width:285px}
 .has-3d .is-exploring .scene-caption{opacity:0}
}
@media(prefers-reduced-motion:reduce){.has-3d .experience{height:auto}.has-3d .scene-sticky{position:relative}}
/* Photographic depth presentation — ordinary image layers, compatible with embedded previews. */
.has-photo .scene-sticky{background:#34342e}
.has-photo #scene{overflow:hidden;pointer-events:none}
.photo-world,.photo-back,.photo-plate,.photo-foreground{position:absolute;inset:0;width:100%;height:100%}
.photo-world{overflow:hidden;background:#34342e}
.photo-back,.photo-foreground{transform-origin:50% 47%;will-change:transform}
.photo-plate,.photo-foreground{object-fit:cover;object-position:50% 48%;max-width:none;user-select:none}
.photo-plate{will-change:opacity}
.photo-foreground{z-index:2}
.has-photo .scene-shade{z-index:3;background:linear-gradient(90deg,#151c1859,transparent 67%),linear-gradient(0deg,#121915f5 0%,#121915b3 18%,transparent 52%)}
.has-photo .hero-heading,.has-photo .scene-topline,.has-photo .scene-caption,.has-photo .scene-coordinate{z-index:4}
.has-photo .view-tools,.has-photo .explore-hint{display:none}
.has-photo .player-actions{display:flex}
.has-photo .player-actions .text-button{font-size:9px;color:#d4d5cb;text-decoration:underline;text-underline-offset:3px}
.has-photo .scene-coordinate{right:var(--pad)}
.has-photo .visual-note{color:#c3c5ba}
.has-photo .poster.hidden{display:none}
.has-photo .scene-caption{opacity:var(--caption-opacity,1);transition:opacity .15s}
.has-photo:not(:has(.past-intro)) .scene-caption{opacity:0}
.has-photo .scene-topline{opacity:var(--topline-opacity,0)}
.scene-recovery[hidden]{display:none}
.scene-recovery{position:absolute;z-index:20;bottom:22px;left:var(--pad);right:var(--pad);max-width:680px;padding:22px;background:#17251cf2;color:#fff;border:1px solid #ffffff33}
.scene-recovery>div{display:flex;align-items:center;gap:24px;margin-top:12px}.scene-recovery details{margin-top:15px;font-size:11px}.scene-recovery .underlined{border-color:#fff}
.header-actions{display:flex;align-items:center;gap:18px}.nav-menu{display:none}.site-header nav a[aria-current]{border-bottom:1px solid var(--orange)}
.walkthrough-canvas{display:block;width:100%;height:100%}.has-walkthrough .experience{height:1000svh}.has-walkthrough .scene-media{background:#a59f8e}.has-walkthrough .scene-shade{background:linear-gradient(90deg,#17201966,transparent 66%),linear-gradient(0deg,#111b16f0 0%,#111b16a6 17%,transparent 42%);z-index:2}.has-walkthrough .hero-heading,.has-walkthrough .scene-caption,.has-walkthrough .scene-topline,.has-walkthrough .scene-coordinate{z-index:3}.has-walkthrough .scene-topline{opacity:var(--topline-opacity,0)}.has-walkthrough:not(:has(.past-intro)) .scene-caption{opacity:0}.has-walkthrough .hero-heading{max-width:780px}.has-walkthrough .hero-heading h1{font-size:clamp(52px,6vw,90px)}.has-walkthrough .scene-caption{max-width:620px;bottom:174px}.has-walkthrough .scene-caption h2{font-size:30px}.has-walkthrough .scene-coordinate{bottom:200px}.tour-map{position:absolute;z-index:3;right:var(--pad);top:120px;width:120px;padding:12px;background:#172019b3;border:1px solid #ffffff30;color:#e9e9dc;backdrop-filter:blur(10px)}.tour-map svg{display:block;width:100%;height:auto;margin-top:10px}.tour-map svg text{fill:#d2d8c9;font-size:6px;letter-spacing:.5px}.tour-location{display:flex;align-items:center;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.tour-location .orange-dot{flex-shrink:0}.tour-map.compact{width:auto;min-width:110px}.has-walkthrough .experience-controls{z-index:4}.has-walkthrough .visual-note{font-size:8px}.has-walkthrough .poster.hidden{display:none}.has-walkthrough body.manual .experience{height:auto}.has-walkthrough body.manual .scene-sticky{position:relative;top:0}
@media(max-width:760px){.has-walkthrough .experience{height:900svh}.has-walkthrough .hero-heading{top:22%;max-width:330px}.has-walkthrough .hero-heading h1{font-size:43px;line-height:1.04}.has-walkthrough .scene-caption{bottom:178px;min-height:100px}.has-walkthrough .scene-caption h2{font-size:25px}.has-walkthrough .scene-caption p:last-child{font-size:10px}.has-walkthrough .tour-map{top:98px;right:22px;width:auto;min-width:100px;padding:10px}.has-walkthrough .tour-map svg{display:none}.has-walkthrough .scene-coordinate{bottom:300px}.has-walkthrough .scene-shade{background:linear-gradient(180deg,#111b1640,transparent 43%),linear-gradient(0deg,#111b16f7 0%,#111b16aa 24%,transparent 50%)}.has-walkthrough .visual-note{font-size:7px;text-align:left}.has-walkthrough .scene-topline{max-width:170px}.has-walkthrough .scene-topline a{display:none}}
.service-link{display:inline-block;margin:14px 0 0 33px;font-size:11px;font-weight:700;border-bottom:1px solid #b66a2c;padding-bottom:6px;color:#7e4317}
.project-paths{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:33px var(--pad);background:#e4e2d8;border-bottom:1px solid var(--line)}
.project-paths a{position:relative;font-size:15px;font-weight:600;padding-right:20px}.project-paths a:hover{color:#8a4818}.project-paths a>span{display:block;font-size:7px;letter-spacing:.09em;color:var(--muted);margin-bottom:11px}.project-paths b{position:absolute;right:0;bottom:0;color:#a95b20;font-weight:400}
.service-hero{display:grid;grid-template-columns:.85fr 1.15fr;min-height:630px;border-bottom:1px solid var(--line)}
.service-hero-copy{padding:40px 4vw 65px var(--pad);align-self:center}.breadcrumb{display:block;font-size:10px;color:var(--muted);margin-bottom:65px}.service-hero .eyebrow{font-size:8px}.service-hero h1{font-size:clamp(43px,4.7vw,76px);margin:24px 0}.service-intro{font-size:14px;color:var(--muted);max-width:350px;margin-bottom:32px}
.service-hero-figure{position:relative;min-width:0;overflow:hidden}.service-hero-figure picture,.service-hero-figure img{display:block;width:100%;height:100%}.service-hero-figure img{position:absolute;inset:0;object-fit:cover}.kitchen-photo img{object-position:84% center}.bathroom-photo img{object-position:55% center}.service-hero-figure figcaption{position:absolute;bottom:0;left:0;right:0;padding:32px 24px 17px;color:#fff;font-size:8px;background:linear-gradient(transparent,#201f1ac9)}
.scope-steps{margin-top:35px}.service-planning{display:grid;grid-template-columns:1fr 1fr;gap:9vw;background:#e7e6de}.service-planning h2{font-size:clamp(40px,4.5vw,68px);margin:25px 0}.service-planning>div>p:not(.eyebrow){max-width:350px;font-size:13px;color:var(--muted)}.service-faqs details{padding:24px 0;border-top:1px solid #c4c5b9}.service-faqs summary{list-style:none;display:flex;justify-content:space-between;gap:25px;cursor:pointer;font-size:15px;font-weight:600;line-height:1.6}.service-faqs summary::-webkit-details-marker{display:none}.service-faqs summary span{color:#a95b20;font-size:22px;font-weight:400}.service-faqs details[open] summary span{transform:rotate(45deg)}.service-faqs details p{margin-top:18px;font-size:12px;line-height:1.9;color:var(--muted)}
@media(max-width:1000px){.site-header nav{gap:18px;font-size:11px}.service-hero{min-height:570px}.service-hero-copy{padding-right:25px}.service-hero h1{font-size:49px}.project-paths{gap:20px}.project-paths a{font-size:13px}}
@media(max-width:760px){
 .has-photo .scene-shade{background:linear-gradient(180deg,#151b185e,transparent 36%),linear-gradient(0deg,#131b17fa 0%,#131b17c9 22%,transparent 57%)}
 .has-photo .photo-plate,.has-photo .photo-foreground{object-position:57% 48%}
 .has-photo .photo-back,.has-photo .photo-foreground{transform-origin:57% 47%}
 .has-photo .scene-coordinate{bottom:299px;right:auto}
 .has-photo .visual-note{text-align:left;font-size:7px;max-width:100%}
 .has-photo .scene-caption{bottom:173px}
 .nav-menu{display:block;position:relative;font-size:11px}.nav-menu summary{cursor:pointer;list-style:none;padding:12px 0}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu summary span{margin-left:7px;color:var(--orange)}.nav-menu[open] nav{display:flex;flex-direction:column;position:absolute;top:45px;right:-40px;width:240px;padding:20px 25px;background:var(--paper);color:var(--ink);box-shadow:0 12px 30px #0003;gap:5px;font-size:13px;border:1px solid var(--line)}.nav-menu nav a{padding:12px 0}.header-actions{gap:16px}.site-header{z-index:50}
 .project-paths{grid-template-columns:1fr 1fr;gap:25px 20px;padding:28px var(--pad)}.project-paths a{font-size:12px}.project-paths a>span{font-size:6px;line-height:1.6}.project-paths b{right:1px}
 .service-hero{grid-template-columns:1fr;min-height:0}.service-hero-copy{padding:28px var(--pad) 38px}.breadcrumb{margin-bottom:37px}.service-hero h1{font-size:48px;line-height:1.04;margin:20px 0}.service-intro{font-size:13px;max-width:100%;margin-bottom:25px}.service-hero-figure{height:380px}.service-hero-figure img{position:relative}.service-hero-figure figcaption{font-size:7px;padding-left:var(--pad)}.kitchen-photo img{object-position:82% center}.service-planning{grid-template-columns:1fr;gap:35px}.service-planning h2{font-size:42px}.service-planning>div>p:not(.eyebrow){font-size:12px}.service-faqs summary{font-size:14px}.service-link{font-size:11px;margin-top:15px}
}
.has-walkthrough .player-actions{display:flex}.has-walkthrough .player-actions .text-button{font-size:10px;color:#eceee4;text-decoration:underline;text-underline-offset:3px;min-height:42px}.has-walkthrough .scene-caption{pointer-events:none}

/* Capture mode creates matching stills from this exact scene for posters and editorial figures. */
body.capture-view{overflow:hidden}.capture-view .site-header,.capture-view .hero-heading,.capture-view .scene-topline,.capture-view .scene-coordinate,.capture-view .scene-caption,.capture-view .experience-controls,.capture-view .tour-map,.capture-view .scene-shade{display:none!important}.capture-view .experience,.capture-view .scene-sticky{height:100svh!important;min-height:0!important}.capture-view .scene-media{inset:0!important}.capture-view #scene{inset:0!important}.capture-view .poster{display:none!important}

/* Flow photographic walkthrough. Scoped so the service-page studies retain their layout. */
.has-film .experience{height:800svh;background:#292b27}
.has-film .scene-sticky{min-height:540px;background:#292b27}
.has-film .scene-shade{background:linear-gradient(180deg,#171c164f,transparent 25%),linear-gradient(90deg,#111b1661,transparent 65%),linear-gradient(0deg,#111b16ec,transparent 46%)}
.has-film .hero-heading{top:24%;max-width:900px}
.has-film .hero-heading h1{font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em;font-size:clamp(56px,7.4vw,112px)}
.has-film .hero-intro{font-size:14px;max-width:370px}
.has-film .scene-caption{bottom:156px;max-width:700px}
.has-film .scene-caption h2{font-family:Georgia,serif;font-size:38px;letter-spacing:-.035em}
.has-film .scene-coordinate{bottom:170px}
.has-film .scene-topline{top:124px}
.has-film body.manual .hero-heading{opacity:var(--hero-opacity,1)!important}
.has-film .scene-caption,.has-film .hero-heading{transition:opacity .15s}
@media(max-width:760px){
 .has-film .experience{height:720svh}
 .has-film .scene-sticky{min-height:570px}
 .has-film .hero-heading{top:24%;max-width:340px}
 .has-film .hero-heading h1{font-size:clamp(45px,12.3vw,64px)}
 .has-film .scene-caption{bottom:150px;min-height:102px}
 .has-film .scene-caption h2{font-size:28px}
 .has-film .scene-coordinate{bottom:270px}
 .has-film .scene-topline{top:105px;max-width:220px}
 .has-film .scene-shade{background:linear-gradient(180deg,#111b1655,transparent 35%),linear-gradient(0deg,#111b16f5,#111b1680 26%,transparent 56%)}
 .has-film .stage-nav button{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.has-film .experience{height:auto}.has-film .scene-sticky{position:relative}}

/* Transparent original logo: retain orange artwork, use its own alpha for a white header wordmark. */
body:has(#scene) .site-header .brand::after{content:"";position:absolute;inset:0;background:#fff;mask:url('/assets/sturdybee-logo.png') center/contain no-repeat;-webkit-mask:url('/assets/sturdybee-logo.png') center/contain no-repeat;clip-path:inset(72% 0 0 0);pointer-events:none}
body:has(#scene) .site-header .brand img{filter:drop-shadow(0 1px 2px #0003)}
/* One native scroll surface, no wheel interception or pinning transforms. */
html.has-film{scroll-behavior:auto}
.has-film .scene-sticky{position:sticky;top:0;contain:layout paint}
.has-film body:not([data-scene="residential"]) .experience{height:580svh}
.has-film .scene-media{overflow:hidden}
.has-film #scene{transition:none}
.service-photo-canvas{position:absolute;inset:0;user-select:none}
.four-chapters{grid-template-columns:repeat(4,1fr)}
.has-film .scene-caption,.has-film .hero-heading{transition:none}
.has-film body.manual .experience{height:100svh;min-height:570px}
.has-film body.manual .scene-sticky{position:relative}
@media(max-width:760px){.has-film body:not([data-scene="residential"]) .experience{height:500svh}.has-film body.manual .experience{height:100svh}.has-film .scene-sticky{min-height:570px}.four-chapters button{align-items:flex-start}.four-chapters button:last-child{align-items:flex-end}}

/* Persistent navigation: stable contrast over photographs and light content. */
body:has(#scene) .site-header{position:fixed;inset:0 0 auto;height:88px;z-index:80;background:#17241ff5;border-bottom:1px solid #ffffff26;transform:translateZ(0)}
body:has(#scene) .site-header .brand{width:84px}
.has-film .scene-sticky{contain:layout;isolation:isolate}
.has-film .tour-map{backdrop-filter:none;background:#172019e6}
@media(max-width:760px){body:has(#scene) .site-header{height:80px}body:has(#scene) .site-header .brand{width:70px}.has-film .nav-menu[open] nav{position:fixed;left:var(--pad);right:var(--pad);top:80px;width:auto;max-height:calc(100svh - 110px);overflow:auto}}

/* Keep the photographic layer on one compositor surface throughout native scroll. */
.has-film .scene-sticky{contain:none;transform:translateZ(0);backface-visibility:hidden}
.has-film .walkthrough-canvas{position:absolute;inset:0;transform:translateZ(0);backface-visibility:hidden;pointer-events:none}
.has-film .scene-media,.has-film #scene{overflow:hidden;isolation:isolate}
.has-film .hero-heading{will-change:opacity}

/* Responsive editorial page; image dimensions reserve space without fixing height. */
.transformation-page .site-header{position:sticky;top:0;height:auto;min-height:88px;gap:24px;z-index:80}
.transformation-page .brand{width:86px}
.transformation-page .notes{padding-top:56px;padding-bottom:72px}
.transformation-page .notes h1{font-size:clamp(38px,5.6vw,76px);text-wrap:balance;max-width:900px}
.transformation-page .notes>p{max-width:780px;font-size:16px}
.transformation-page .notes>.eyebrow{font-size:10px;line-height:1.7;letter-spacing:.1em}
.transformation-page .notes figure img{width:100%;height:auto;aspect-ratio:1672/941;object-fit:cover}
.transformation-page .notes figcaption{line-height:1.6}
.transformation-page .notes li{padding:9px 0;font-size:15px;line-height:1.7}
.transformation-page .notes h2{font-size:clamp(26px,3vw,36px);line-height:1.15;text-wrap:balance}
@media(max-width:760px){
 .transformation-page .site-header{min-height:78px;padding:10px 20px;gap:12px}
 .transformation-page .brand{width:66px}
 .transformation-page .site-header .button{min-height:44px;font-size:11px;gap:12px;padding:12px 14px}
 .transformation-page .notes{padding:34px 22px 52px}
 .transformation-page .notes h1{font-size:clamp(35px,9.2vw,52px);line-height:1.07;margin:20px 0 24px}
 .transformation-page .notes>.eyebrow{font-size:8px}
 .transformation-page .notes>p,.transformation-page .notes li{font-size:15px;line-height:1.75}
 .transformation-page .notes h2{margin-top:34px;margin-bottom:16px}
 .transformation-page .notes figure{margin:28px 0}
 .transformation-page .notes figure img{aspect-ratio:4/3;object-position:50% 50%}
 .transformation-page .notes .button{min-height:48px;width:100%;gap:12px;font-size:12px}
 .transformation-page footer{margin:0 22px;display:block}
 .transformation-page footer p{font-size:11px;line-height:1.7;margin-bottom:15px}
}
