#modelStage[data-renderer="three-gltf"] #buildingCanvas{display:block!important;opacity:1!important;cursor:grab;filter:none;touch-action:pan-y;pointer-events:auto!important}
#modelStage[data-renderer="three-gltf"] #buildingCanvas:active{cursor:grabbing}
#modelStage[data-renderer="loading"] #buildingCanvas{opacity:0}
#modelStage.no-webgl #buildingCanvas{display:none!important}
#modelStage.no-webgl:not(.story-fragments) .stage-cinematic{opacity:1!important;visibility:visible!important}
#modelStage.no-webgl.story-fragments .stage-fallback-pieces{display:block!important;opacity:1!important}
#modelStage.no-webgl.story-fragments .stage-cinematic{opacity:0!important;visibility:hidden!important}
#modelStage .stage-fallback-pieces{position:absolute;inset:4% 0 2%;z-index:2;display:none;overflow:visible;pointer-events:none;opacity:0}
#modelStage .fallback-object{position:absolute;left:50%;top:50%;display:block;width:var(--object-size,68px);height:calc(var(--object-size,68px)*1.1);color:#e6e1d9;filter:drop-shadow(0 12px 9px #0008);will-change:transform,translate;transform-origin:center;transition:transform .08s linear}
#modelStage .fallback-object:nth-child(3n){color:#c79a70}
#modelStage .fallback-object:nth-child(5n){color:#a9b3a8}
#modelStage .fallback-object svg{display:block;width:100%;height:100%;overflow:visible}
#modelStage.no-webgl.story-fragments.contact-scene .fallback-object{animation:object-drift 3.8s ease-in-out infinite;animation-delay:calc(var(--object-index,0)*-0.23s)}
#modelStage .fallback-object:nth-child(1){--object-index:1}#modelStage .fallback-object:nth-child(2){--object-index:2}#modelStage .fallback-object:nth-child(3){--object-index:3}#modelStage .fallback-object:nth-child(4){--object-index:4}#modelStage .fallback-object:nth-child(5){--object-index:5}#modelStage .fallback-object:nth-child(6){--object-index:6}#modelStage .fallback-object:nth-child(7){--object-index:7}#modelStage .fallback-object:nth-child(8){--object-index:8}#modelStage .fallback-object:nth-child(9){--object-index:9}#modelStage .fallback-object:nth-child(10){--object-index:10}#modelStage .fallback-object:nth-child(11){--object-index:11}#modelStage .fallback-object:nth-child(12){--object-index:12}#modelStage .fallback-object:nth-child(13){--object-index:13}#modelStage .fallback-object:nth-child(14){--object-index:14}
@keyframes object-drift{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -9px;rotate:3deg}}
#modelStage[data-renderer="three-gltf"] .stage-cinematic{opacity:0!important;visibility:hidden!important}
#contact.contact-section{position:relative!important;display:block!important;min-height:100svh!important;height:100svh!important;padding:0!important;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#242a2d 0,#15181b 54%,#101216 100%)!important;color:#f4f1ec}
#contact .contact-illustration{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;padding:0!important;opacity:1!important;z-index:1;overflow:hidden}
#contact .contact-illustration>.contact-model-fallback,#contact .contact-illustration>.old-illustration-svg,#contact .contact-illustration>#reunionCanvas{display:none!important}
#contact .contact-illustration .stage.contact-scene{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;z-index:1;opacity:1!important;pointer-events:none!important}
#contact .contact-scene #buildingCanvas{opacity:1!important;pointer-events:none!important}
#contact .contact-copy{position:absolute!important;inset:0!important;z-index:5;display:flex!important;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:auto!important;max-width:none!important;padding:40px 6vw 210px!important;pointer-events:none}
#contact .contact-copy>*{pointer-events:auto}
#contact .contact-copy .eyebrow{font-size:10px;letter-spacing:.2em;color:#c9a782;margin:0 0 25px}
#contact .contact-copy h2{font-size:clamp(64px,9.3vw,152px);line-height:.87;letter-spacing:-.075em;margin:0 0 25px;max-width:1000px}
#contact .contact-copy h2 em{color:#d4a77d}
#contact .contact-copy>p:not(.eyebrow){font-size:14px;max-width:520px;margin:0 auto 22px;color:#d2d1cc}
#contact .contact-copy .light-button{margin-top:4px;min-width:222px;border-radius:999px;padding:16px 24px;background:#f1efeb;color:#17191d}
#contact .contact-copy .contact-details{position:absolute;left:5vw;right:5vw;bottom:30px;display:grid;grid-template-columns:1.25fr .9fr 1fr 1.7fr;align-items:end;gap:20px;margin:0;padding:18px 0 0;border-top:1px solid #ffffff32;text-align:left}
#contact .contact-copy .contact-details p,#contact .contact-copy .contact-details a,#contact .contact-copy .contact-details address{font-size:11px;line-height:1.6;color:#d6d3ce;margin:0}
#contact .contact-copy .contact-details .studio-phone{font-size:16px;white-space:nowrap}
#contact .contact-copy .contact-details address{font-style:normal}
#contact .contact-copy .contact-details a{width:auto;overflow-wrap:anywhere}
#contact .contact-corner{top:25px;right:30px;bottom:auto;z-index:6;color:#b7b4ad;font-size:8px}
@media(max-width:760px){
 #modelStage .stage-fallback-pieces{inset:0}
 #modelStage .fallback-object{width:calc(var(--object-size,68px)*.74);height:calc(var(--object-size,68px)*.82)}
 #contact.contact-section{min-height:920px!important;height:100svh!important}
 #contact .contact-copy{justify-content:center;padding:34px 22px 310px!important}
 #contact .contact-copy .eyebrow{font-size:9px;margin-bottom:20px}
 #contact .contact-copy h2{font-size:clamp(54px,13vw,86px);margin-bottom:20px}
 #contact .contact-copy>p:not(.eyebrow){font-size:12px;max-width:330px}
 #contact .contact-copy .contact-details{left:22px;right:22px;bottom:22px;grid-template-columns:1fr 1fr;gap:10px 18px;padding-top:14px}
 #contact .contact-copy .contact-details .studio-phone{font-size:14px}
 #contact .contact-copy .contact-details address{grid-column:1/-1}
 #contact .contact-corner{top:19px;right:20px}
}
@media(prefers-reduced-motion:reduce){#modelStage .stage-fallback-pieces{display:none!important}#modelStage .fallback-object{animation:none!important}}

/* Persistent viewport stage throughout the editorial scroll. */
#modelStage.page-fragments{position:fixed!important;inset:90px 0 0!important;width:100vw!important;height:calc(100svh - 90px)!important;opacity:.48!important;mix-blend-mode:normal!important;z-index:8!important;overflow:hidden;pointer-events:none!important}
#modelStage.page-fragments .fallback-object{animation:object-drift 4s ease-in-out infinite}
@media(max-width:760px){#modelStage.page-fragments{inset:74px 0 0!important;width:100vw!important;height:calc(100svh - 74px)!important;opacity:.55!important}.hero-story-chapters,.hero-story-status{display:none!important}.floating-words{font-size:22px!important}}

/* One viewport renderer bridges the opening, editorial flow and final assembly. */
#contact.contact-section{height:280svh!important;min-height:0!important;overflow:visible!important;background:#101716!important}
.contact-pin{position:sticky;top:0;height:100svh;overflow:hidden}
#modelStage.page-fragments{z-index:3!important;opacity:1!important}
#modelStage.page-fragments.contact-scene{inset:90px 0 0!important;height:calc(100svh - 90px)!important}
#contact .contact-copy{opacity:var(--final-reveal,0);transform:translateY(calc((1 - var(--final-reveal,0))*35px));transition:opacity .15s;z-index:5}
#contact .contact-copy h2{transform:scale(calc(.92 + var(--final-reveal,0)*.08));transform-origin:center}
@media(prefers-reduced-motion:reduce){#contact.contact-section{height:100svh!important}#contact .contact-copy{opacity:1;transform:none}}
