/* Direct copy, intentional framing, and the approved eight-blade reveal. */
.cinema-title h1{font-size:clamp(94px,10.6vw,168px)}.cinema-title .hero-under p{max-width:420px}.aperture-stamp{width:220px;bottom:110px}.aperture-stamp video{mix-blend-mode:normal;mask-image:radial-gradient(#000 59%,transparent 72%)}.page-film{margin-block:0 65px;background:#06110c;border:1px solid #44634d55}.page-film video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain}.page-film figcaption{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;font-size:9px;letter-spacing:1px;color:#adc1ae}.page-aperture{position:absolute;right:0;top:35px;width:230px}.page-aperture video{display:block;width:100%;mask-image:radial-gradient(#000 59%,transparent 72%)}.page-aperture span{display:block;text-align:center;font-size:7px;letter-spacing:1px;color:#b4c3aa}[data-page=process] .page-intro,[data-page=about] .page-intro{padding-right:270px}[data-page=process] .page-intro h1,[data-page=about] .page-intro h1{font-size:clamp(62px,6.8vw,99px)}.process-step{margin-right:12%;padding:35px 30px;border:1px solid #54705a50;background:linear-gradient(110deg,#143122,#0b170f);margin-bottom:25px;position:relative;grid-template-columns:85px 1fr}.process-step:nth-child(even){margin-left:12%;margin-right:0}.process-step h2{font-size:39px}.process-step p{font-size:14px}.process-step:after{content:'';position:absolute;bottom:-25px;left:41px;height:24px;width:1px;background:#728d65}.process-step:last-child:after{display:none}.process-step>div:after{height:3px;width:90px}.offer-label img{height:auto;max-height:410px;aspect-ratio:2/3;object-fit:contain;background:#0c1b12;padding:8px}.split-feature img,.note-image img{object-fit:contain;aspect-ratio:auto;max-height:540px;background:#0b1b12}.note-image{height:440px}.note-image span{background:#07160dde;padding:9px}.storyboard img{object-fit:contain;background:#06110c;height:240px;aspect-ratio:auto}.scene-note img{height:310px;object-fit:contain;background:#0c1b12}.film-poster{aspect-ratio:9/16;max-height:760px;background:#08130d}.film-poster img{object-fit:contain}.poster-bottom{display:none}.case-poster img{object-fit:contain;aspect-ratio:auto;height:auto;max-height:690px;background:#0a1810}.case-poster{background:#0a1810}.case-poster .button{position:absolute;bottom:20px;left:20px;right:20px;justify-content:center}.screening-film{aspect-ratio:auto;display:grid;grid-template-columns:1fr 1fr;height:410px;align-items:stretch;border:1px solid #57715b60}.screening-film:after{display:none}.screening-film img{height:100%;object-fit:contain;background:#050d08}.screening-film>div{position:static;align-self:end;padding:25px 22px;min-width:0}.screening-film h3{font-size:43px;overflow-wrap:normal}.screening-film .screen-play{width:44px;height:44px;top:22px;right:22px}.screening-film:hover img{transform:none;filter:brightness(1.12)}.film-badge{background:#06120ad9}.study-disclosure{color:#b0bdaf}.vision-plan small{font-size:10px}.page-intro .lede{max-width:690px}.contact-aside .location{border-left:2px solid var(--metal);padding-left:20px}.footer-top>p{color:#c6b28e}
@media(max-width:1050px){.aperture-stamp{width:160px}.page-aperture{width:180px}[data-page=process] .page-intro,[data-page=about] .page-intro{padding-right:205px}.screening-film{height:360px}.screening-film h3{font-size:34px}.screening-film>div{padding:20px 16px}.process-step{grid-template-columns:65px 1fr;gap:20px}.process-step h2{font-size:33px}}
@media(max-width:760px){.cinema-title{padding-top:180px}.cinema-title h1{font-size:clamp(68px,18vw,110px)}.hero-under p{font-size:13px;max-width:280px}.aperture-stamp{width:110px;top:43px;bottom:auto}.page-film{margin-bottom:35px}.page-film figcaption{font-size:7px;padding:8px 12px;letter-spacing:.4px}.page-film video{aspect-ratio:16/9}.page-aperture{position:relative;right:auto;top:auto;width:180px;margin:24px auto 0}[data-page=process] .page-intro,[data-page=about] .page-intro{padding-right:0}[data-page=process] .page-intro h1,[data-page=about] .page-intro h1{font-size:63px}.process-step{margin-right:20px;padding:25px 15px;gap:15px;grid-template-columns:42px 1fr}.process-step:nth-child(even){margin-left:20px}.process-step>span{font-size:43px}.process-step h2{font-size:29px}.process-step p{font-size:12px}.process-step:after{left:30px}.offer-label img{max-height:360px;aspect-ratio:2/3}.split-feature img{max-height:460px;width:100%;aspect-ratio:auto}.note-image{height:370px}.storyboard img{height:100%;min-height:165px;object-fit:contain}.scene-note img{height:330px}.film-poster{aspect-ratio:9/16;max-height:650px}.screening-film{height:350px;grid-template-columns:1fr 1fr}.screening-film h3{font-size:35px}.screening-film>div{padding:18px 14px}.screening-film small{font-size:8px}.screening-film p{font-size:11px}.case-poster img{max-height:580px}.film-description p{font-size:11px}.film-description a{font-size:11px}.page-intro .lede{font-size:14px}}
@media(prefers-reduced-motion:reduce){.screening-film:hover img{filter:none}}

@media(max-width:760px){.cinema-hero>.ambient{object-fit:contain;background:#06110c}}

/* Use format-specific media and keep the entire frame inside the preview stage. */
.preview-monitor{height:510px;min-height:510px}
.monitor-frame{flex:none;width:min(100%,800px);height:auto;max-height:none;aspect-ratio:16/9;transition:none;background:#06110c}
.monitor-frame[data-ratio=portrait]{width:min(100%,255px);max-width:none;aspect-ratio:9/16}
.monitor-frame[data-ratio=square]{width:min(100%,440px);max-width:none;aspect-ratio:1}
.monitor-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.monitor-frame[data-ratio=portrait] .monitor-tag{left:8px;bottom:8px;font-size:8px;padding:7px 9px;letter-spacing:1px}
@media(max-width:760px){
 .preview-monitor{height:320px;min-height:320px;padding:16px}
 .monitor-frame{width:min(100%,512px);max-height:none}
 .monitor-frame[data-ratio=portrait]{width:162px}
 .monitor-frame[data-ratio=square]{width:min(100%,288px)}
 .monitor-tag{left:8px;bottom:8px;font-size:7px;padding:6px 8px;letter-spacing:.8px}
 .monitor-frame[data-ratio=portrait] .monitor-tag{font-size:7px}
}

/* A subtle monitor treatment accompanies each distinct visual direction. */
.edit-desk[data-feeling=impact] .preview-monitor{background:radial-gradient(ellipse,#342511,#050b08 75%)}
.edit-desk[data-feeling=story] .preview-monitor{background:radial-gradient(ellipse,#163728,#040a07 75%)}
.edit-desk[data-feeling=memory] .preview-monitor{background:radial-gradient(ellipse,#302c23,#0b100c 75%)}
.edit-desk[data-feeling=memory] .monitor-tag{background:#29231ed9;color:#e9d5b7}

/* The approved aperture sequence carries the brand into every shared header/footer. */
.brand .brand-aperture{display:block;width:56px;height:56px;flex:0 0 56px;object-fit:contain;border-radius:50%;opacity:1}
.footer .brand .brand-aperture{width:64px;height:64px;flex-basis:64px}
.motion-off .brand .brand-aperture{opacity:1}
@media(max-width:760px){.brand .brand-aperture{width:50px;height:50px;flex-basis:50px}.footer .brand .brand-aperture{width:56px;height:56px;flex-basis:56px}}

/* Media follows its own proportions; copy determines the card height. */
.screening-film{height:auto;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;overflow:visible}
.screening-art{display:block;position:relative;min-width:0;align-self:start;line-height:0}
.screening-film .screening-art img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;transform:none}
.screening-film>div{position:static;align-self:center;padding:28px 22px;min-width:0;min-height:0}
.screening-film h3{font-size:clamp(30px,3vw,43px);line-height:1.04;margin:16px 0;overflow-wrap:anywhere}
.screening-film p{margin:0;line-height:1.7}
.screening-film .screen-play{top:16px;right:16px;line-height:1}
.film-poster{height:auto;max-height:none;aspect-ratio:auto}
.film-poster img{height:auto;aspect-ratio:auto}
.film-poster:hover img{transform:none;filter:brightness(1)}
.case-poster{align-self:start;overflow:visible}
.case-poster img{height:auto;max-height:none;aspect-ratio:auto}
.case-poster .button{position:static;display:flex;margin:0;justify-content:center}
.vision-film{min-height:0;display:flex;flex-direction:column}
.vision-film video{position:static;display:block;flex:none;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.vision-film:after{display:none}
.vision-title{position:static;padding:30px 32px 22px;margin:0}
.vision-title h3{font-size:clamp(44px,5vw,72px)}
.vision-label{position:static;display:block;padding:0 32px 24px;margin-top:auto;line-height:1.7}
.cinema-hero>.ambient{object-fit:contain;object-position:center;background:#06110c}
.studio-note>.wrap{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,80px)}
.note-image{position:relative;width:min(100%,360px);height:auto;overflow:visible;margin:0 auto}
.note-image img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;background:none}
.note-image figcaption{margin-top:14px;font-size:8px;letter-spacing:1.3px;color:#aebfae;line-height:1.7}
.studio-note h2{font-size:clamp(44px,4.6vw,67px);line-height:1;max-width:700px}
.studio-note .studio-background{font-size:12px;color:#b5c3b4;border-left:1px solid var(--gold);padding-left:16px;margin-top:24px}
.page-film figcaption{gap:14px;flex-wrap:wrap}
@media(max-width:1050px) and (min-width:761px){.screening-films{grid-template-columns:1fr}.screening-film{grid-template-columns:minmax(0,.65fr) minmax(0,1fr)}.screening-art{max-width:300px}.screening-film h3{font-size:44px}.screening-film>div{padding:32px}}
@media(max-width:760px){
 .screening-film{height:auto;grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}
 .screening-film>div{padding:20px 14px}.screening-film h3{font-size:clamp(26px,7vw,36px)}
 .screening-film .screen-play{width:34px;height:34px;top:10px;right:10px}
 .studio-note>.wrap{grid-template-columns:1fr;gap:32px}.note-image{width:min(100%,330px)}
 .studio-note h2{font-size:clamp(42px,10.5vw,62px)}
 .vision-title{padding:24px}.vision-label{padding:0 24px 24px}.vision-title h3{font-size:52px}
}

/* A light-and-reveal treatment for the studio story. The photo stays in full view. */
.studio-note{position:relative;isolation:isolate;--studio-x:55%;--studio-y:45%}
.studio-note:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 600px 440px at var(--studio-x) var(--studio-y),#b781431c,transparent 75%)}
.studio-image{position:relative;isolation:isolate;overflow:hidden;line-height:0;box-shadow:0 25px 65px #0005}
.studio-image:before{content:'';position:absolute;inset:0;border:1px solid #d2a66e55;z-index:3;pointer-events:none}
.studio-image:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;background:linear-gradient(112deg,transparent 28%,#ffecd400 36%,#ffecd459 49%,#ffecd400 62%,transparent 72%);transform:translateX(-130%);opacity:0;mix-blend-mode:screen}
.studio-shutters{position:absolute;inset:0;display:flex;z-index:4;pointer-events:none}
.studio-shutters i{flex:1;background:#102017;transform:scaleY(0);transform-origin:bottom;border-right:1px solid #b7814330}
.effects-ready:not(.effects-entered) .studio-shutters i{transform:scaleY(1)}
.effects-entered .studio-shutters i{animation:studio-open 11s cubic-bezier(.22,.8,.24,1) infinite both}
.effects-entered .studio-shutters i:nth-child(2){animation-delay:.10s}
.effects-entered .studio-shutters i:nth-child(3){animation-delay:.20s}
.effects-entered .studio-shutters i:nth-child(4){animation-delay:.30s}
.effects-entered .studio-image:after{animation:studio-light 11s ease-in-out 1s infinite}
.effects-entered h2 em{background:linear-gradient(105deg,#d2a66e 25%,#fff0cb 44%,#d2a66e 62%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:studio-type-light 11s ease-in-out 1s infinite}
.studio-note:not(.effects-in-view) .studio-image:after,.studio-note:not(.effects-in-view) h2 em,.studio-note:not(.effects-in-view) .studio-shutters i,.motion-off .studio-shutters i{animation-play-state:paused}
@keyframes studio-open{0%,100%{transform:scaleY(1)}10%,88%{transform:scaleY(0)}}
@keyframes studio-light{0%{transform:translateX(-130%);opacity:0}4%{opacity:.7}22%{transform:translateX(130%);opacity:.7}23%,100%{transform:translateX(130%);opacity:0}}
@keyframes studio-type-light{0%{background-position:120% 0}23%,100%{background-position:-120% 0}}
.motion-off .studio-shutters{display:none}.motion-off .studio-image:after{animation:none;opacity:0}.motion-off .studio-note h2 em{animation:none;color:var(--gold);background:none}
@media(prefers-reduced-motion:reduce){.studio-shutters{display:none}.studio-image:after{display:none}.studio-note h2 em{animation:none;color:var(--gold);background:none}.studio-note:before{background:radial-gradient(ellipse at center,#b7814315,transparent 75%)}}

/* Process steps reveal separately as they reach the reading area. */
.js.process-reveals-ready .process-step{transition:none}
.js.process-reveals-ready .process-step:not(.step-visible){opacity:0;transform:translate3d(-18px,36px,0)}
.js.process-reveals-ready .process-step:nth-child(even):not(.step-visible){transform:translate3d(18px,36px,0)}
.js.process-reveals-ready .process-step.step-visible{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
.process-reveals-ready .process-step:after{transform:scaleY(0);transform-origin:top;transition:transform .5s ease .45s}
.process-reveals-ready .process-step.step-visible:after{transform:scaleY(1)}
.js.process-reveals-ready.motion-off .process-step,.js.process-reveals-ready .process-step:focus-within{opacity:1!important;transform:none!important;transition:none!important}
.process-reveals-ready.motion-off .process-step:after{transform:scaleY(1);transition:none}
@media(max-width:760px){.js.process-reveals-ready .process-step:not(.step-visible),.js.process-reveals-ready .process-step:nth-child(even):not(.step-visible){transform:translateY(24px)}}
@media(prefers-reduced-motion:reduce){.js.process-reveals-ready .process-step:not(.step-visible),.js.process-reveals-ready .process-step:nth-child(even):not(.step-visible){opacity:1;transform:none}.process-reveals-ready .process-step:after{transform:scaleY(1)}}

/* Reverse gently when a step passes back below the reading line. */
.js.process-reveals-ready.process-reveals-animated .process-step:not(.step-visible){transition:opacity .4s var(--ease),transform .4s var(--ease)}

/* Distinct page roles: small onward links instead of repeated full demos. */
.portfolio-signpost,.portfolio-next,.service-next{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-block:65px;border-top:1px solid var(--line)}
.portfolio-signpost h2,.portfolio-next h2,.service-next h2{font-size:clamp(42px,4.7vw,68px);line-height:1.02}.portfolio-signpost p,.service-next p{max-width:480px}.portfolio-next{margin-top:45px;margin-bottom:45px}.portfolio-next>div:last-child,.service-next>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.service-next{margin-bottom:50px}.service-next p,.service-next small{margin:0}.service-next small{font-size:12px}.lab-service-link{margin:22px 0 0;font-size:13px}.portfolio-signpost .eyebrow,.portfolio-next .eyebrow,.service-next .eyebrow{margin-bottom:22px}
@media(max-width:760px){.portfolio-signpost,.portfolio-next,.service-next{grid-template-columns:1fr;gap:28px;padding-block:40px}.portfolio-next,.service-next{margin-bottom:20px}.portfolio-signpost h2,.portfolio-next h2,.service-next h2{font-size:44px}.portfolio-next .button,.service-next .button{width:100%;justify-content:space-between}}

.page-onward{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding-block:30px 60px;border-top:1px solid var(--line)}

.film-study .case-poster{aspect-ratio:auto;align-self:start}.film-study .case-poster img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.film-study .scene-note img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.film-source-notes{margin-bottom:60px}.film-source-notes li{font-size:13px;line-height:1.8;color:var(--muted);margin:8px 0}.film-study .credits dd{overflow-wrap:anywhere}
