/* Architectural reveal: company identity stays above imagery in both chapters. */
.aperture-hero{position:relative;color:#fff;background:#191711;isolation:isolate}
.aperture-stage{position:relative;height:calc(100svh - 68px);min-height:580px;max-height:1000px;overflow:hidden;isolation:isolate}
.aperture-backdrop,.aperture-shade,.aperture-grid,.aperture-content,.discipline-panels,.aperture-chapter,.hero-shutters{position:absolute;inset:0}
.aperture-backdrop{z-index:0;overflow:hidden}
.aperture-backdrop img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;transform-origin:70% 50%}
.aperture-shade{z-index:1;background:linear-gradient(90deg,#0a0b08aa,transparent 80%),linear-gradient(180deg,#0a0b082a,transparent 35%,#0809078a)}
.aperture-grid{z-index:2;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none}
.aperture-grid i{border-right:1px solid #ffffff1a}
.aperture-content{z-index:5;padding:27px var(--gutter) 120px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.aperture-kicker{font-size:10px;letter-spacing:.16em;font-weight:500;color:#ffffffd9}
.aperture-top h1{margin:9px 0 0;line-height:.99;color:#fff;font-weight:500;font-size:clamp(90px,16.45vw,265px);letter-spacing:-.065em;white-space:nowrap;text-wrap:nowrap;max-width:none}
.aperture-title-mask,.aperture-title{display:block}
.aperture-title-mask{overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.aperture-title{transform-origin:0 50%}
.aperture-intro{display:flex;gap:7vw;align-items:flex-end;padding-bottom:4px}
.aperture-intro h2{font-size:clamp(38px,4.8vw,76px);font-weight:400;line-height:1.07;letter-spacing:-.04em;color:#fff}
.hero-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero-line>span{display:block}
.aperture-intro>p{font-size:13px;line-height:1.85;color:#efeee8;max-width:260px;padding-bottom:5px}
.aperture-footer{position:absolute;z-index:8;bottom:0;left:var(--gutter);right:var(--gutter);height:89px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid #ffffff58}
.aperture-footer>a{display:inline-flex;align-items:center;gap:48px;min-height:48px;color:#fff;font-size:13px}
.hero-project-cta{background:#f7f6f2;padding:0 21px;color:#191b19!important}
.hero-project-cta .icon{transition:transform .25s cubic-bezier(.22,1,.36,1)}
.hero-project-cta:hover .icon{transform:translate(3px,-3px)}
.hero-expertise-link .icon{width:19px;height:19px}
.aperture-footer a:focus-visible{outline:2px solid #fff;outline-offset:5px}
.discipline-panels{z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;pointer-events:none;visibility:hidden}
.discipline-panel{position:relative;overflow:hidden;background:#151812}
.discipline-panel-inner{position:absolute;inset:0;overflow:hidden}
.discipline-panel img{width:100%;height:100%;object-fit:cover}
.discipline-panel:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0c100ba6,#0c100b80 50%,#0c100bd9)}
.panel-caption{position:absolute;z-index:1;bottom:108px;left:24px;color:#fff;font-size:12px;font-weight:500}
.discipline-panel:nth-child(2) img{object-position:60% 50%}
.discipline-panel:nth-child(3) img{object-position:45% 50%}
.aperture-chapter{z-index:6;display:flex;flex-direction:column;justify-content:center;padding:0 var(--gutter) 80px;opacity:0;visibility:hidden;pointer-events:none}
.aperture-chapter>p{font-size:11px;letter-spacing:.15em;margin-bottom:23px;color:#f3f1eb}
.aperture-chapter h2{font-size:clamp(56px,7.4vw,116px);letter-spacing:-.045em;font-weight:500;line-height:1.03;color:#fff;text-shadow:0 2px 25px #0004}
.hero-shutters{z-index:10;display:none;grid-template-columns:repeat(5,1fr);pointer-events:none}
.hero-shutters i{background:var(--paper);transform-origin:50% 0}
/* The entrance begins in CSS on first paint, before any deferred JS executes. */
:root[data-intro=play] .hero-shutters{display:grid}
:root[data-intro=play] .hero-shutters i{animation:mbv-shutter-reveal .8s cubic-bezier(.76,0,.24,1) both}
:root[data-intro=play] .hero-shutters i:nth-child(2){animation-delay:.055s}
:root[data-intro=play] .hero-shutters i:nth-child(3){animation-delay:.11s}
:root[data-intro=play] .hero-shutters i:nth-child(4){animation-delay:.165s}
:root[data-intro=play] .hero-shutters i:nth-child(5){animation-delay:.22s}
:root[data-intro=play] .aperture-title-mask{animation:mbv-title-reveal .9s .12s cubic-bezier(.22,1,.36,1) both}
:root[data-intro=play] .hero-line>span{animation:mbv-line-reveal .65s .18s cubic-bezier(.22,1,.36,1) both}
:root[data-intro=play] .hero-line:nth-child(2)>span{animation-delay:.27s}
:root[data-intro=play] .aperture-intro>p,:root[data-intro=play] .aperture-footer{animation:mbv-copy-reveal .5s .45s cubic-bezier(.22,1,.36,1) both}
@keyframes mbv-shutter-reveal{from{transform:scaleY(1)}to{transform:scaleY(0)}}
@keyframes mbv-title-reveal{from{transform:translateY(42px)}to{transform:translateY(0)}}
@keyframes mbv-line-reveal{from{transform:translateY(115%)}to{transform:translateY(0)}}
@keyframes mbv-copy-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.home-page .company-proof{padding-top:36px;margin-top:0}
@media(min-width:1700px){.aperture-intro{padding-bottom:30px}.aperture-content{padding-top:40px}}
@media(max-width:1050px){.aperture-intro h2{font-size:52px}.aperture-intro>p{font-size:12px}.panel-caption{font-size:11px;left:18px}.aperture-stage{min-height:600px}.aperture-content{padding-bottom:125px}.aperture-intro{gap:6vw}}
@media(max-width:820px){
 .aperture-stage{height:calc(100svh - 76px);min-height:620px;max-height:900px}
 .aperture-content{padding:34px var(--gutter) 125px}.aperture-top h1{font-size:16.2vw;letter-spacing:-.06em;margin-top:20px}.aperture-kicker{font-size:9px}
 .aperture-backdrop img{object-position:68% 50%}.aperture-shade{background:linear-gradient(180deg,#11110e55,transparent 45%,#080907c7),linear-gradient(90deg,#08090740,transparent)}
 .aperture-intro{display:block}.aperture-intro h2{font-size:clamp(43px,7vw,64px)}.aperture-intro>p{font-size:13px;margin-top:24px;line-height:1.65}
 .aperture-footer{height:92px;gap:15px}.aperture-footer>a{gap:18px;font-size:12px}.hero-project-cta{padding-inline:15px}
 .aperture-chapter h2{font-size:clamp(50px,8vw,76px)}.aperture-chapter>p{font-size:10px}
 .discipline-panels{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr 1fr;gap:1px}
 .discipline-panel:nth-child(1),.discipline-panel:nth-child(2){grid-row:1}.discipline-panel:nth-child(3),.discipline-panel:nth-child(4){grid-row:2}
 .panel-caption{font-size:10px;bottom:22px;left:20px}.discipline-panel:nth-child(n+3) .panel-caption{bottom:111px}
 .discipline-panel:after{background:linear-gradient(180deg,#0c100ba6,#0c100b80 60%,#0c100bbf)}
 .aperture-chapter{justify-content:flex-start;padding-top:135px;padding-bottom:90px}
 .aperture-chapter h2{font-size:10vw}.aperture-chapter>p{margin-bottom:18px}
}
@media(max-width:540px){
 .aperture-stage{height:calc(100svh - 72px);min-height:610px;max-height:850px}.aperture-top h1{font-size:16.05vw;margin-top:22px;letter-spacing:-.065em}
 .aperture-content{padding-top:28px;padding-bottom:120px}.aperture-kicker{font-size:8px;letter-spacing:.13em}
 .aperture-intro h2{font-size:clamp(39px,10.6vw,58px)}.aperture-intro>p{font-size:12px;margin-top:21px;line-height:1.7}
 .aperture-backdrop img{object-position:62% 50%}.aperture-footer{height:92px}.aperture-footer>a{font-size:10px;gap:15px}.hero-project-cta{padding-inline:13px}.hero-project-cta .icon{width:18px;height:18px}.hero-expertise-link{max-width:150px}.hero-expertise-link>span{max-width:90px}
 .aperture-chapter{padding-top:140px}.aperture-chapter h2{font-size:11.4vw}.aperture-chapter>p{font-size:8px}.panel-caption{left:15px;font-size:10px}
 .home-page .company-proof{padding-top:24px}
}
@media(prefers-reduced-motion:reduce){.hero-shutters{display:none!important}.aperture-title-mask,.hero-line>span,.aperture-intro>p,.aperture-footer{animation:none!important}.aperture-title,.hero-line>span,.aperture-intro,.aperture-backdrop img{transform:none!important}.hero-project-cta .icon{transition:none}}
:root[data-motion=off] .hero-shutters{display:none!important}
