/* V14: one person, one set of components, one continuous construction. */
body[data-page=home] .site-header{isolation:isolate;transform:translateZ(0)}
body[data-page=home] .site-header .brand{background:url(assets/bespoke-logo-dark.jpeg) center/contain no-repeat}
body[data-page=home] .site-header .brand img{opacity:0}
.assembly-flow{--p:1;--pull:1;--dock:1;--pieces:1;--daylight:0;--intro-opacity:0;--px:0;--py:0;background:#101012}
.assembly-stage{perspective:1500px;perspective-origin:50% 48%;background:#101012;isolation:isolate}
.assembly-flow.is-assembling-site{height:480svh}
.is-assembling-site .assembly-stage{position:sticky;top:0;min-height:0;height:100svh}
.assembly-environment{position:absolute;inset:0;pointer-events:none;background:#e9e6df;opacity:var(--daylight);overflow:hidden}
.environment-grid{position:absolute;inset:0;background-image:linear-gradient(#2421270b 1px,transparent 1px),linear-gradient(90deg,#2421270b 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse at center,black,transparent 75%);transform:perspective(1200px) rotateX(calc(var(--py) * -3deg)) rotateY(calc(var(--px) * 3deg))}
.environment-word{position:absolute;bottom:5%;left:4%;font:650 25vw/.9 var(--display);letter-spacing:-.025em;color:#26212b06}
.assembly-layout{transform-style:flat;z-index:4;pointer-events:none}
.assembly-piece{transform-origin:center center;backface-visibility:hidden;will-change:auto}
.is-assembling-site .assembly-piece{will-change:transform,opacity;opacity:0}
.assembly-piece:before{content:"";position:absolute;inset:-18px;z-index:-1;background:#171719;border:1px solid #ffffff25;border-radius:calc((1 - var(--dock)) * 10px);box-shadow:0 20px 50px #00000020;opacity:calc((1 - var(--dock)) * var(--pieces));pointer-events:none}
.hero-heading.assembly-piece{z-index:5}
.hero-detail.assembly-piece{z-index:6}
.hero-actions.assembly-piece{z-index:7}
.assembly-layout .hero-heading,.assembly-layout .hero-detail,.assembly-layout .hero-actions{transform:none;opacity:1}
.assembly-layout .hero-actions{pointer-events:auto}
.assembly-layout .hero-actions[inert]{pointer-events:none}
.assembly-layout .hero-art{z-index:3;min-height:0;overflow:hidden;transform:none;background:rgb(17 16 18 / var(--pull));border:1px solid rgb(255 255 255 / calc(var(--pull) * .08));border-radius:calc((1 - var(--dock)) * 12px);box-shadow:0 calc((1 - var(--dock)) * var(--pull) * 30px) calc((1 - var(--dock)) * var(--pull) * 70px) rgb(0 0 0 / calc(var(--pull) * .2));opacity:1}
.portrait-card:before{display:none}
.assembly-art-fallback{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.portrait-card canvas{display:none;width:100%;height:100%;position:absolute;inset:0}
.has-portrait .portrait-card canvas{display:block}
.has-portrait .assembly-art-fallback{display:none}
.portrait-card figcaption{opacity:var(--dock);font-size:7px;bottom:16px;left:16px;right:16px;line-height:1.6;transform:none;color:#bdb4bd}
.portrait-live{display:flex;align-items:center;gap:6px;font:6px/1.6 var(--mono)!important;letter-spacing:.05em;white-space:nowrap}
.portrait-live i{width:4px;height:4px;border-radius:50%;background:#ff6038;display:block}
.portrait-corner{position:absolute;pointer-events:none;opacity:calc(var(--pull) * (1 - var(--dock)) * .5);width:22px;height:22px;border-color:#ff6038;border-style:solid}
.portrait-corner-one{left:14px;top:14px;border-width:1px 0 0 1px}.portrait-corner-two{right:14px;bottom:14px;border-width:0 1px 1px 0}
.assembly-stage .site-components{transform-style:flat;opacity:1;transform:none;pointer-events:none}
.assembly-stage .site-components:before{transform:scaleX(var(--dock))}
.assembly-stage .component{position:relative;transform-origin:center;align-self:stretch;border-color:rgb(255 255 255 / calc(var(--dock) * .12))}
.assembly-stage .component:before{inset:0;background:#1e1c20;border-color:#ffffff24;box-shadow:0 22px 70px #0000001f}
.assembly-stage .component:first-child:before{left:-18px}
.assembly-stage .component:last-child:before{right:-18px}
.opening-copy{display:none;position:absolute;inset:0;z-index:2;color:#eee9e3;pointer-events:none;opacity:var(--intro-opacity)}
.is-assembling-site .opening-copy{display:block}
.opening-eyebrow{position:absolute;left:var(--pad);right:var(--pad);top:22%;font:9px/1.5 var(--mono);letter-spacing:.1em;text-align:center;color:#aaa1a9}
.opening-title{position:absolute;left:var(--pad);right:var(--pad);top:30%;margin:0;text-align:center;font:650 clamp(70px,12vw,200px)/.9 var(--display);letter-spacing:-.015em;white-space:nowrap;transform:translateX(calc(var(--px) * -7px))}
.opening-title em{font-style:normal;color:#ff6038}
.opening-detail{position:absolute;left:var(--pad);right:var(--pad);bottom:15%;display:flex;align-items:flex-end;justify-content:space-between;gap:25px;font-size:16px;line-height:1.5;letter-spacing:-.015em;color:#c8c0c7}
.pointer-instruction{font:8px/1.8 var(--mono);letter-spacing:.07em;position:relative;padding-left:20px;color:#b7adb8}
.pointer-instruction i{position:absolute;left:0;top:5px;width:7px;height:7px;border:1px solid #ff6038;border-radius:50%}
.touch-instruction{display:none;font:7px/1.6 var(--mono);letter-spacing:.08em}
.assembly-caption{position:absolute;top:14%;left:var(--pad);right:var(--pad);z-index:7;text-align:center;pointer-events:none;color:#39323a;opacity:calc(var(--daylight) * (1 - var(--dock)))}
.assembly-caption>span{font:8px/1.4 var(--mono);letter-spacing:.12em;color:#7d7378}.assembly-caption>p{font-size:clamp(20px,2.1vw,30px);line-height:1.3;letter-spacing:-.03em;margin:9px 0}
.assembly-path{position:absolute;inset:11% 4% 8%;z-index:1;pointer-events:none;opacity:calc(var(--daylight) * .5)}
.assembly-path svg{width:100%;height:100%;overflow:visible}.assembly-path path{fill:none;stroke:#ff6038;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--pull));opacity:.7}
.assembly-stage .build-narration{z-index:12;color:color-mix(in srgb,#afa5b4,#675e68 calc(var(--daylight) * 100%))}
.assembly-stage .build-step{color:inherit}.assembly-stage .build-instruction,.assembly-stage .build-skip{color:inherit}
.assembly-flow:not(.is-assembling-site) .assembly-caption,.assembly-flow:not(.is-assembling-site) .assembly-path{display:none}
.assembly-flow:not(.is-assembling-site) .build-instruction{display:none}
.assembly-flow:not(.is-assembling-site) .assembly-piece{opacity:1;transform:none}
@media(min-width:1600px){.opening-detail{bottom:17%;font-size:20px}.opening-eyebrow{font-size:10px}.pointer-instruction{font-size:9px}}
@media(max-width:1100px) and (min-width:761px){.opening-title{font-size:11.6vw}.portrait-live{display:none}}
@media(max-width:760px){
 .assembly-flow.is-assembling-site{height:360svh}
 .assembly-stage{perspective:1000px;perspective-origin:50% 46%}
 .assembly-layout{inset:98px var(--pad) 122px}
 .assembly-piece:before{inset:-10px;border-radius:calc((1 - var(--dock)) * 7px)}
 .assembly-layout .hero-art{min-height:0}
 .opening-eyebrow{top:18%;font-size:6px;letter-spacing:.07em}
 .opening-title{top:24%;left:14px;right:14px;white-space:normal;font-size:18.2vw;line-height:.88;max-width:480px;margin:auto}
 .opening-title em{display:block;font-size:24vw;margin-top:2px}
 .opening-detail{bottom:13%;display:block;text-align:center;font-size:13px;line-height:1.5}
 .pointer-instruction{display:none}.touch-instruction{display:block;margin-top:19px;font-size:6px}
 .assembly-caption{top:84px;}.assembly-caption>span{font-size:6px}.assembly-caption>p{display:none}
 .assembly-stage .component{padding-inline:9px}
 .assembly-stage .component:first-child:before{left:-6px}.assembly-stage .component:last-child:before{right:-6px}
 .assembly-stage .component strong{font-size:10px}.assembly-stage .component-price strong{font-size:21px}
 .portrait-card figcaption{font-size:5px;left:10px;right:10px;bottom:9px}.portrait-live{display:none}
 .portrait-corner{width:12px;height:12px}.portrait-corner-one{left:8px;top:8px}.portrait-corner-two{right:8px;bottom:8px}
 .assembly-stage .build-instruction{font-size:5px}.assembly-stage .build-narration{font-size:5.5px}.assembly-stage .build-step{gap:8px}
}
@media(max-width:360px){.assembly-layout{inset:90px var(--pad) 112px}.opening-title{font-size:18vw;top:23%}.opening-title em{font-size:24vw}.opening-detail{font-size:12px;bottom:14%}.assembly-caption>p{font-size:17px}.assembly-stage .component strong{font-size:9px}.assembly-stage .component-price strong{font-size:20px}}
@media(max-width:760px) and (max-height:680px){.assembly-layout{top:90px;bottom:110px;gap:9px}.opening-eyebrow{top:18%}.opening-title{top:25%}.opening-detail{bottom:15%;font-size:12px}.touch-instruction{margin-top:12px}.assembly-caption{top:84px}.portrait-card figcaption{display:none}}
@media(min-width:761px) and (max-height:620px){.opening-eyebrow{top:23%}.opening-title{top:31%;font-size:10vw}.opening-detail{bottom:14%;font-size:13px}.assembly-caption{top:104px}.assembly-caption>p{display:none}}
@media(hover:none),(pointer:coarse){.pointer-instruction{display:none}.touch-instruction{display:block}}
@media(max-width:1000px) and (max-height:500px){.assembly-flow,.assembly-flow.is-assembling-site{height:auto!important}.assembly-stage,.is-assembling-site .assembly-stage{height:720px!important;min-height:720px!important;position:relative!important}.opening-copy,.assembly-caption,.assembly-path{display:none!important}}
@media(prefers-reduced-motion:reduce){.assembly-flow,.assembly-flow.is-assembling-site{height:auto!important}.assembly-stage,.is-assembling-site .assembly-stage{position:relative!important;min-height:720px!important}.assembly-piece{transform:none!important;opacity:1!important}.opening-copy,.assembly-caption,.assembly-path{display:none!important}}
