/* One physical scene, from suspension to composition. */
.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}
.contact-cta,.site-footer{color:var(--brown)}
.hero-v4{height:100svh;min-height:640px;isolation:isolate;perspective:1200px}
.hero-v4 .hero-scene{clip-path:none;z-index:0;overflow:hidden;background:#a6c5d4}
.hero-v4 .hero-scene img,.hero-v4 .hero-film{transform:none;object-fit:cover;object-position:center center;width:100%;height:100%;background:transparent}
.hero-v4 .hero-scene:before{content:'';position:absolute;inset:0;background:none;opacity:.55;z-index:-1}
.hero-v4 .hero-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#c1dbe812,transparent 65%,#43302e15);pointer-events:none}
.opening-veil{position:absolute;inset:0;background:var(--blue);z-index:1}
.hero-v4 .hero-title{z-index:4;aspect-ratio:1014/699;width:min(61vw,890px);will-change:transform;pointer-events:none}
.logo-whole{position:absolute;inset:0;will-change:transform,opacity;transform-origin:center}
.hero-v4 .hero-meta{z-index:5;top:142px;font-size:13px}
.hero-v4 .hero-sticker{z-index:5;background:var(--yellow);right:7%;top:64%;width:142px;height:142px;transform:rotate(12deg);font-size:16px}
.hero-sticker svg{position:absolute;inset:7px;width:128px;fill:none;stroke:var(--brown);stroke-width:.45;stroke-dasharray:1 4}
.paper-piece{position:absolute;z-index:3;width:clamp(85px,12vw,180px);aspect-ratio:1.5;background:var(--yellow);box-shadow:2px 9px 10px #43302e19;pointer-events:none;backface-visibility:hidden;transform-style:preserve-3d}
.paper-piece:before{content:'';position:absolute;inset:0;background:linear-gradient(32deg,transparent 49.7%,#43302e20 50%,transparent 50.5%),linear-gradient(-32deg,transparent 49.7%,#43302e20 50%,transparent 50.5%)}
.paper-piece:after{content:'';position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 59%);background:linear-gradient(180deg,#fff1b5,#e9d99b);filter:drop-shadow(0 1px 1px #43302e30)}
.paper-one{left:8%;top:50%;transform:rotate(-18deg)}
.paper-two{right:11%;top:27%;width:clamp(60px,8vw,120px);transform:rotate(18deg);background:#e0edf3}
.paper-two:after{background:linear-gradient(180deg,#e0edf3,#b0cbd9)}
.hero-v4 .hero-foot{z-index:5;bottom:34px}
.scene-statement{position:absolute;z-index:2;top:19%;left:57%;right:3%;color:var(--brown);visibility:hidden;pointer-events:none}
.scene-eyebrow,.scene-signoff{font-size:13px;display:block;letter-spacing:.02em}
.scene-eyebrow{margin-bottom:22px}
.scene-line,.chaos-letters{font-family:Anton,sans-serif;font-size:clamp(60px,8.8vw,144px);line-height:1.02;letter-spacing:-.035em}
.chaos-letters{display:flex;white-space:nowrap}
.chaos-letters span{display:block;transform-origin:50% 85%;will-change:transform}
.scene-signoff{margin-top:23px}
.scene-index{position:absolute;bottom:37px;left:var(--gutter);right:var(--gutter);z-index:6;display:flex;align-items:center;gap:24px;font-size:11px;letter-spacing:.03em;pointer-events:none;color:var(--brown);visibility:hidden}
.scene-stage{width:170px}.scene-track{display:block;width:120px;height:1px;background:#43302e40}.scene-track i{display:block;width:100%;height:1px;background:var(--brown);transform:scaleX(0);transform-origin:left}
.scene-count{font-variant-numeric:tabular-nums}.scene-skip{position:absolute;bottom:27px;right:var(--gutter);padding:10px 0;z-index:8;font-size:12px;border-bottom:1px solid;visibility:hidden}
.assembly-heading>span{display:block;overflow:visible}
.assembly-heading i{font-style:normal;display:inline-block;transform-origin:50% 80%}
.intro{overflow:hidden}.service-toggle h3{transition:letter-spacing .4s,color .4s}.service-toggle:hover h3{letter-spacing:-.065em}.service-number{transition:transform .4s}.service-toggle:hover .service-number{transform:translateX(7px)}
.work-teaser .work-photo,.work-layout .work-photo{transform:none;padding:0;background:transparent}.work-photo figcaption{position:static;margin-top:12px;color:inherit}.work-teaser .work-photo{color:var(--yellow)}.work-layout .work-photo{color:var(--yellow)}
.no-motion .hero-v4 .hero-title{transform:translate(-50%,-50%)!important}.no-motion .hero-v4 .hero-scene{display:block;opacity:1}.no-motion .hero-v4 .opening-veil{opacity:.9}.no-motion .hero-v4 .hero-film{display:none}.no-motion .paper-piece{display:none}
@media(min-aspect-ratio:18/10){.scene-statement{top:16%;left:59%}.scene-line,.chaos-letters{font-size:7vw}}
@media(max-width:900px){.hero-v4 .hero-title{width:75vw}.paper-one{left:3%;top:58%}.paper-two{right:6%;top:27%}.scene-statement{top:17%;left:50%}.scene-line,.chaos-letters{font-size:10vw}.scene-signoff{font-size:12px}.scene-eyebrow{font-size:12px}.hero-v4 .hero-sticker{width:118px;height:118px;right:5%;font-size:14px;top:69%}.hero-sticker svg{width:104px}}
@media(max-width:600px){
 .hero-v4{height:100svh;min-height:650px}.hero-v4 .hero-title{width:88vw;top:44%}.hero-v4 .hero-meta{top:115px;font-size:11px}.hero-v4 .hero-meta .place{font-size:9px;max-width:140px;text-align:right}
 .hero-v4 .hero-sticker{width:106px;height:106px;right:var(--gutter);top:66%;font-size:13px}.hero-sticker svg{width:92px}
 .paper-one{left:8%;top:68%;width:90px}.paper-two{top:25%;right:8%;width:65px}
 .hero-v4 .hero-scene{background:#a8c7d6}.hero-v4 .hero-scene:before{opacity:.18;background-size:auto 70%;filter:blur(60px)}
 .hero-v4 .hero-scene img,.hero-v4 .hero-film{position:absolute;inset:auto 0 12%;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;mask-image:linear-gradient(180deg,transparent,black 7%,black 98%,transparent)}
 .scene-statement{top:16%;left:var(--gutter);right:var(--gutter)}.scene-line,.chaos-letters{font-size:clamp(74px,24vw,120px);line-height:1}.scene-eyebrow{margin-bottom:15px;font-size:11px}.scene-signoff{margin-top:13px;font-size:12px}
 .scene-index{bottom:34px;gap:13px;font-size:10px;right:auto}.scene-stage{width:128px}.scene-track{width:55px}.scene-count{display:none}.scene-skip{font-size:11px;bottom:24px}
 .hero-v4 .hero-foot{bottom:30px}.hero-v4 .hero-services{max-width:135px;font-size:9px}
}
@media(max-width:600px) and (max-height:750px){.scene-statement{top:13%}.scene-line,.chaos-letters{font-size:18vw}.scene-eyebrow{margin-bottom:10px}.scene-signoff{margin-top:8px}.hero-v4 .hero-scene img,.hero-v4 .hero-film{bottom:10%}}
@media(prefers-reduced-motion:reduce){.hero-v4 .hero-scene{display:block}.hero-v4 .opening-veil{opacity:.9}.hero-v4 .hero-film{display:none}.paper-piece{display:none}}

/* Final pass: stable mobile viewport, a dedicated portrait set and touch controls. */
.hero-v4{min-height:0}
.scene-picture{display:block;position:absolute;inset:0}
.hero-v4 .hero-scene:before{background:none;filter:none;transform:none}
.film-status{position:absolute;left:var(--gutter);bottom:78px;z-index:9;font-size:11px;padding:8px 12px;min-height:44px;background:var(--blue);border-radius:24px;color:var(--brown)}
.film-status[hidden]{display:none}.film-status:disabled{cursor:default}
.scene-stage{width:auto;min-width:170px;padding:7px 10px;background:var(--blue);border-radius:24px}
.scene-skip{padding:10px 15px;background:var(--blue);border:0;border-radius:24px;min-height:44px;display:flex;align-items:center}
.motion-enabled .hero-v4 .hero-film{display:block}
.motion-toggle{min-height:44px}
.footer-links a{display:inline-flex;align-items:center;min-height:44px}
.form-status{min-height:1.5em}
@media(hover:none){.service-toggle:hover h3{letter-spacing:-.035em}.service-toggle:hover .service-number{transform:none}.circle-link:hover{transform:none}}
@media(max-width:600px){
 .nav{gap:10px}.nav a{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.nav a.nav-home{display:none}
 .hero-v4 .hero-scene img,.hero-v4 .hero-film{inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;mask-image:none;-webkit-mask-image:none}
 .hero-v4 .hero-foot{bottom:max(24px,env(safe-area-inset-bottom))}
 .scene-index{bottom:max(28px,env(safe-area-inset-bottom))}.scene-skip{min-height:44px;bottom:max(10px,env(safe-area-inset-bottom));display:flex;align-items:center}
 .film-status{bottom:max(64px,calc(env(safe-area-inset-bottom) + 42px))}
}
@media(max-width:600px) and (orientation:portrait){
 .hero-v4 .hero-scene{background:#aecbd8}
 .scene-statement{top:7%;left:var(--gutter);right:var(--gutter)}
 .scene-line,.chaos-letters{font-size:min(18vw,8svh);line-height:1.02}
 .scene-eyebrow{font-size:11px;margin-bottom:12px}.scene-signoff{font-size:12px;margin-top:12px}
 .scene-index{gap:10px}.scene-track{width:40px}.scene-stage{width:auto;min-width:126px}
}
@media(max-width:360px){.scene-track{display:none}}
@media(max-width:600px) and (max-height:650px) and (orientation:portrait){
 .scene-eyebrow{display:none}.scene-statement{top:8%}.scene-signoff{font-size:11px;margin-top:8px}
 .hero-v4 .hero-meta{top:99px;font-size:10px}.hero-v4 .hero-meta .place{font-size:8px}
 .hero-v4 .hero-sticker{width:90px;height:90px;font-size:12px}.hero-sticker svg{width:76px}
}
@media(max-height:600px) and (orientation:landscape){
 .hero-v4{min-height:0}.hero-v4 .hero-title{width:min(48vw,62svh);top:51%}
 .hero-v4 .hero-meta{top:100px;font-size:11px}.hero-v4 .hero-meta .place{font-size:9px}
 .hero-v4 .hero-sticker{top:57%;width:90px;height:90px;font-size:12px}.hero-sticker svg{width:76px}
 .scene-statement{top:9%;left:57%;right:3%}.scene-line,.chaos-letters{font-size:8vw}.scene-eyebrow{font-size:10px;margin-bottom:8px}.scene-signoff{font-size:10px;margin-top:8px}
 .scene-index{bottom:19px}.scene-skip{bottom:6px}.scene-eyebrow{display:none}
 .hero-v4 .hero-foot{bottom:20px}.hero-v4 .hero-services{font-size:10px}
}

/* One intact mark; two acts occupying the same quiet space on the right. */
.scene-statement{left:auto;right:4%;width:39%;text-align:right;top:20%}
.chaos-letters{justify-content:flex-end}
.scene-resolution{position:absolute;inset:0;visibility:hidden}
.resolution-line{font-family:Anton,sans-serif;font-size:clamp(48px,6.5vw,110px);line-height:1.04;letter-spacing:-.025em;white-space:nowrap}
.scene-eyebrow{line-height:1.5}
@media(max-width:900px){.scene-statement{left:auto;right:var(--gutter);width:45%;top:17%}.scene-line,.chaos-letters{font-size:9vw}.resolution-line{font-size:7vw}}
@media(max-width:600px) and (orientation:portrait){
 .scene-statement{left:auto;right:var(--gutter);width:86%;top:9%}
 .scene-line,.chaos-letters{font-size:min(18vw,8svh)}
 .resolution-line{font-size:min(14vw,7svh)}
 .scene-resolution .scene-eyebrow{font-size:10px}
}
@media(max-height:600px) and (orientation:landscape){.scene-statement{left:auto;right:4%;width:40%;top:10%}.resolution-line{font-size:6.5vw}}

/* Let the physical scene tell the story; the typography stays composed. */
.scene-line,.chaos-letters{font-size:clamp(54px,7vw,112px)}
@media(max-width:600px) and (orientation:portrait){.scene-line,.chaos-letters{font-size:min(15vw,7svh)}}
