/* One brand, one cadence. */
.header .brand,.intro-brand,.intro-flight{font-family:FarsightSerif,Georgia,serif!important;font-weight:300!important;font-style:normal;letter-spacing:.045em!important;font-synthesis:none}
.header .brand span,.intro-descriptor{font-family:FarsightSerif,Georgia,serif!important;font-weight:300!important;letter-spacing:.24em!important}
.intro-descriptor{font-size:clamp(20px,3.2vw,48px)!important;margin-top:.45em}
.header nav a.talk-wave{display:inline-flex;white-space:nowrap;line-height:1.3}
.private-link{position:relative;text-shadow:0 0 18px #e3213270;isolation:isolate}
.private-link:before{content:'';position:absolute;inset:-7px -9px;z-index:-1;background:radial-gradient(ellipse,#e3273022,transparent 70%);filter:blur(6px);pointer-events:none}
.private-link:hover{text-shadow:0 0 12px #e3213290}
.cursor-ring{width:22px!important;height:22px!important;border:0!important;border-radius:0!important;background:transparent!important;mix-blend-mode:normal!important;box-shadow:none!important}
.cursor-ring:before,.cursor-ring:after{content:'';position:absolute;background:#d72129;opacity:.8}
.cursor-ring:before{width:17px;height:1px;left:2px;top:10px}.cursor-ring:after{height:17px;width:1px;left:10px;top:2px}
.cursor-ring.over-link:before,.cursor-ring.over-link:after{opacity:1;background:#e52b30}
body.cursor-on,body.cursor-on a,body.cursor-on button{cursor:auto}
.portfolio-top{padding-bottom:24px}.portfolio-grid{margin-top:0}
.folio-shell{width:min(94vw,1320px)!important;max-width:1320px!important;transform:none!important}
.folio-page{background-color:#f8f7f3;background-image:url('/assets/paper-fibre.webp');background-size:380px;box-shadow:inset 8px 0 15px -14px #3b3028}
.folio-copy h3{font-family:Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.025em}
.folio-cover-content p{font-family:Georgia,serif;font-style:italic;letter-spacing:.03em}
.agency-thread{bottom:19svh!important}.agency-thread-end{width:36px!important;height:36px!important;margin-left:-18px!important;border:1px solid currentColor}
.agency-thread-end.is-arrived{animation:thread-fill-settle 1.6s cubic-bezier(.2,.65,.2,1) both!important}
.agency-thread-end.is-arrived i{animation:none!important;background:#e21c2b!important;opacity:1!important;transform:scale(1)!important}
@keyframes thread-fill-settle{0%{background:#f2f1ef;transform:scale(.9)}65%{background:#e21c2b;transform:scale(1.28);box-shadow:0 0 0 15px #e21c2b15}100%{background:#e21c2b;transform:scale(1.1);box-shadow:0 0 0 0 #e21c2b00}}
.team-lift{height:490svh}.team-portrait{flex-shrink:0}
.manifesto-study{contain:none;bottom:3svh;right:3vw;width:min(40vw,660px);height:31svh;transition-delay:0s}
.manifesto-study.is-drawing{transition-delay:1s}
.study-plan svg{overflow:visible;filter:none}.study-plan path,.study-plan line,.study-plan rect,.study-plan circle,.study-plan ellipse{vector-effect:non-scaling-stroke}
.study-plan .plan-trace{fill:none;stroke:#44413c;stroke-width:.7;stroke-dasharray:1600;stroke-dashoffset:1600;animation:none}
.study-plan .plan-wall{stroke-width:2.2}.study-plan .plan-fine{stroke:#77736b;stroke-width:.45}
.study-plan.is-drawing .plan-trace{animation:plan-ink 2.8s cubic-bezier(.25,.55,.3,1) calc(1.1s + var(--order,0)*.1s) forwards}
.study-plan text{font:7px Arial,sans-serif;letter-spacing:.7px;fill:#56534f;opacity:0}
.study-plan.is-drawing text{animation:plan-label .8s calc(2s + var(--order,0)*.1s) forwards}
@keyframes plan-ink{to{stroke-dashoffset:0}}@keyframes plan-label{to{opacity:1}}
.study-detail{width:100%;right:0;height:31svh;pointer-events:none}
.precision-joint{position:absolute;right:5vw;bottom:0;width:27vw;height:28svh}
.joint-piece{position:absolute;object-fit:contain;width:65%;height:100%;filter:drop-shadow(0 10px 10px #231c1520);opacity:0}
.joint-wood{left:0;transform:translateX(-22%)}.joint-stone{left:23%;transform:translateY(22%)}.joint-brass{left:12%;transform:translateY(-25%)}
.is-drawing .joint-piece{opacity:1;transition:opacity .8s 1.2s,transform 3.4s 1.4s cubic-bezier(.18,.7,.1,1);transform:translate(0,0)}
.is-drawing .joint-brass{transition-delay:1.2s,2.3s}
.precision-joint:after{content:'';position:absolute;inset:12% 20%;background:linear-gradient(115deg,transparent 40%,#ffffffaa 50%,transparent 60%);opacity:0;pointer-events:none}
.is-drawing .precision-joint:after{animation:joint-glint 1.2s 5s both}@keyframes joint-glint{0%{opacity:0;transform:translateX(-25%)}40%{opacity:.6}100%{opacity:0;transform:translateX(35%)}}
.invisible-door{position:absolute;bottom:1svh;left:5vw;width:20vw;height:27svh;border:0;background:transparent;padding:0;pointer-events:auto;perspective:800px;cursor:pointer}
.door-wall{position:absolute;inset:0;background:url('/assets/door-wall.webp') center/contain no-repeat;opacity:.24;transition:opacity .9s;mask-image:linear-gradient(90deg,transparent,#000 12% 88%,transparent)}
.door-leaf{position:absolute;left:35%;top:16%;width:33%;height:69%;background:url('/assets/door-wall.webp') 51% 49%/303% 145%;border:1px solid #7775;transform-origin:left center;transition:transform 1.8s cubic-bezier(.2,.65,.15,1),box-shadow 1.8s}
.door-leaf:after{content:'';position:absolute;right:8%;top:51%;width:8px;height:1px;background:#8a7b68}
.invisible-door:after{content:'';position:absolute;right:37%;top:51%;width:4px;height:4px;background:#bbad97;box-shadow:0 0 8px #b9a991;animation:door-invite 2.5s infinite}
.invisible-door:hover .door-wall,.invisible-door:focus-visible .door-wall,.invisible-door.is-open .door-wall{opacity:1}
.invisible-door:hover .door-leaf,.invisible-door:focus-visible .door-leaf,.invisible-door.is-open .door-leaf{transform:rotateY(-20deg);box-shadow:9px 0 16px -4px #eac083a0}
@keyframes door-invite{50%{opacity:.3}}
@media(max-width:700px){.intro-descriptor{font-size:5vw!important}.manifesto-study{width:76vw;height:23svh;bottom:4svh}.study-detail{width:100%}.precision-joint{width:48vw;height:23svh;right:2vw}.invisible-door{width:32vw;height:22svh;left:3vw}.team-lift{height:420svh}.folio-shell{width:96vw!important}.header .brand span{font-size:12px!important}}
@media(prefers-reduced-motion:reduce){.manifesto-study{display:none}.agency-thread-end.is-arrived{animation:none!important;background:#e21c2b}.cursor-ring{display:none!important}}
.sound-credit{font-size:12px;padding:12px var(--pad);opacity:.65}.sound-credit p{font-size:12px}.sound-credit a{text-decoration:underline}
.home-page .hero-image,.build-layers>.build-site,.build-layers>.build-finished,.build-layers>.build-evening{object-fit:cover!important;object-position:center!important;transform:none!important;filter:none!important}
.home-page .hero-image{animation:none!important}
.invisible-door{height:auto;aspect-ratio:3/2;bottom:3svh}.door-wall{background-size:100% 100%;mask-image:none}.door-leaf{left:39.1%;top:10.2%;width:20.2%;height:80.8%;background-position:49% 53%;background-size:495% 123.8%;opacity:.32;transition:transform 1.8s cubic-bezier(.2,.65,.15,1),opacity .9s,box-shadow 1.8s}
.invisible-door:before{content:'';position:absolute;left:39.1%;top:10.2%;width:20.2%;height:80.8%;background:linear-gradient(90deg,#19130e,#cda573);opacity:0;transition:opacity 1.8s}
.invisible-door:hover:before,.invisible-door:focus-visible:before,.invisible-door.is-open:before{opacity:1}
.invisible-door:hover .door-leaf,.invisible-door:focus-visible .door-leaf,.invisible-door.is-open .door-leaf{opacity:1}
.invisible-door:after{right:42.5%;top:52%}
.joint-wood{left:5%;top:3%;width:50%;height:75%;object-fit:fill;z-index:1}.joint-stone{left:25%;top:67%;width:70%;height:32%;object-fit:fill;z-index:3}.joint-brass{left:54%;top:6%;width:5.5%;height:76%;object-fit:fill;z-index:2}
.folio-cover .folio-calligraphy{width:80%;height:auto;max-height:26%;object-fit:contain;filter:invert(1);opacity:.8;margin:0 auto;box-shadow:none}
.folio-cover-content{gap:3.2rem}
@media(prefers-reduced-motion:reduce){.team-lift{height:auto}.invisible-door:after{animation:none}}
.agency-thread-end{left:50%!important;margin-left:0!important;transform:translateX(-50%)}
@keyframes thread-fill-settle{0%{background:#f2f1ef;transform:translateX(-50%) scale(.9)}65%{background:#e21c2b;transform:translateX(-50%) scale(1.28);box-shadow:0 0 0 15px #e21c2b15}100%{background:#e21c2b;transform:translateX(-50%) scale(1.1);box-shadow:0 0 0 0 #e21c2b00}}
