/* Campaign-specific cinematic motion: purposeful depth, editorial pacing and reduced-motion fallback.
   Inspired by the existing Scroll-Craft capability. Never modify original photography. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.scroll-readout{position:fixed;top:0;left:0;width:100%;height:3px;transform-origin:left center;transform:scaleX(0);z-index:210;pointer-events:none;background:var(--ci-gold)}
.motion-v2 .site-nav{transition:transform .45s var(--motion-ease),background .35s ease}
.motion-v2 .site-nav .brand-logo{animation:mark-appear .9s var(--motion-ease) both}
@keyframes mark-appear{from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-12px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:none}}
.motion-v2 .w-hero h1,.motion-v2 .b-hero h1,.motion-v2 .p-hero h1,.motion-v2 .f-hero h1{animation:hero-title-in 1.25s var(--motion-ease) .1s both;will-change:auto}
@keyframes hero-title-in{0%{opacity:0;transform:translate3d(0,55px,0);clip-path:inset(0 0 100% 0)}100%{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
.motion-v2 .w-hero p,.motion-v2 .b-hero p,.motion-v2 .p-hero-copy p,.motion-v2 .f-hero-bottom p{animation:hero-paragraph-in 1s var(--motion-ease) .5s both}
@keyframes hero-paragraph-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.motion-v2 .w-hero-actions,.motion-v2 .b-hero-actions,.motion-v2 .p-actions,.motion-v2 .f-hero-bottom .pill{animation:hero-paragraph-in 1s var(--motion-ease) .7s both}
.motion-v2 .img-frame.m-image-reveal>img{clip-path:inset(0 0 100% 0);transform:translate3d(0,18px,0) scale(1.08);transition:clip-path 1.25s var(--motion-ease),transform 1.7s var(--motion-ease)}
.motion-v2 .img-frame.m-image-reveal.m-in>img{clip-path:inset(0 0 0 0);transform:none}
.motion-v2 .img-frame.m-image-reveal.m-in:hover>img{transform:scale(1.045)}
.motion-v2 .w-story-card,.motion-v2 .b-process article,.motion-v2 .p-package,.motion-v2 .f-film{transition:opacity .8s var(--motion-ease),transform 1.05s var(--motion-ease)}
.motion-v2 .w-story-card.m-tile-reveal,.motion-v2 .b-process article.m-tile-reveal,.motion-v2 .p-package.m-tile-reveal,.motion-v2 .f-film.m-tile-reveal{opacity:0;transform:translate3d(0,60px,0)}
.motion-v2 .w-story-card.m-tile-reveal.m-in,.motion-v2 .b-process article.m-tile-reveal.m-in,.motion-v2 .p-package.m-tile-reveal.m-in,.motion-v2 .f-film.m-tile-reveal.m-in{opacity:1;transform:none}
.motion-v2 .w-story-card:nth-child(2),.motion-v2 .b-process article:nth-child(2),.motion-v2 .p-package:nth-child(2),.motion-v2 .f-film:nth-child(2){transition-delay:.08s}
.motion-v2 .w-story-card:nth-child(3),.motion-v2 .b-process article:nth-child(3),.motion-v2 .p-package:nth-child(3),.motion-v2 .f-film:nth-child(3){transition-delay:.16s}
.motion-v2 .w-story-card:nth-child(4),.motion-v2 .f-film:nth-child(4){transition-delay:.24s}
.motion-v2 .b-focus-panel:not([hidden]){animation:gallery-enter .7s var(--motion-ease) both}
@keyframes gallery-enter{from{opacity:.3;filter:blur(8px);transform:translateY(12px)}to{opacity:1;filter:blur(0);transform:none}}
.motion-v2 .p-gallery-grid{perspective:1600px}
.motion-v2 .photo-item{backface-visibility:hidden}
.motion-v2 .photo-item.m-photo-reveal{opacity:0;transform:translateY(48px) rotateX(6deg);transition:transform .85s var(--motion-ease),opacity .85s var(--motion-ease)}
.motion-v2 .photo-item.m-photo-reveal.m-in{opacity:1;transform:none}
.motion-v2 .photo-item:nth-child(3n+2){transition-delay:.09s}
.motion-v2 .photo-item:nth-child(3n+3){transition-delay:.17s}
.motion-v2 .p-collage{perspective:1200px}
.motion-v2 .p-collage .photo{will-change:auto;transition:transform .9s var(--motion-ease),translate .65s var(--motion-ease)}
.motion-v2 .p-collage .photo-1{transform:rotate(5deg) translateZ(0)}
.motion-v2 .p-collage .photo-2{transform:rotate(-10deg) translateZ(0)}
.motion-v2 .p-collage .photo-3{transform:rotate(9deg) translateZ(0)}
.motion-v2 .p-collage .photo-1:hover{transform:rotate(2deg) scale(1.025)}
.motion-v2 .p-collage .photo-2:hover{transform:rotate(-5deg) scale(1.035)}
.motion-v2 .p-collage .photo-3:hover{transform:rotate(5deg) scale(1.035)}
.motion-v2 .b-evidence-gallery .img-frame{filter:grayscale(.35);transition:filter .7s}
.motion-v2 .b-evidence-gallery .img-frame:hover{filter:grayscale(0)}
.motion-v2 .b-evidence-card.m-tile-reveal{opacity:0;transform:translateY(66px);transition:transform 1.2s var(--motion-ease),opacity .85s var(--motion-ease)}
.motion-v2 .b-evidence-card.m-tile-reveal.m-in{opacity:1;transform:none}
.motion-v2 .b-evidence-card:nth-child(2){transition-delay:.13s}
.motion-v2 .b-evidence-card:nth-child(3){transition-delay:.26s}
.motion-v2 .f-film .f-play{box-shadow:0 0 0 1px #ffffff44,0 0 0 8px #ffffff16;transition:transform .3s var(--motion-ease),box-shadow .4s var(--motion-ease)}
.motion-v2 .f-film button:hover .f-play{box-shadow:0 0 0 1px var(--ci-gold),0 0 0 15px #c7b18825}
.motion-v2 .f-frame-strip .f-frame>img{transform:translate3d(0,var(--film-frame-shift,0px),0) scale(1.09);transition:none}
.motion-v2 .f-frame-strip .f-frame:nth-child(2)>img{transform:translate3d(0,var(--film-frame-shift-2,0px),0) scale(1.09)}
.motion-v2 .f-frame-strip .f-frame:nth-child(3)>img{transform:translate3d(0,var(--film-frame-shift-3,0px),0) scale(1.09)}
.motion-v2 .f-hero-img>img{filter:brightness(.74) saturate(.78)}
.motion-v2 .f-hero-lines{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#ffffff2b calc(25% - 1px),#ffffff2b 25%);opacity:.20}
.motion-v2 .f-hero h1 em{display:block;padding-bottom:.08em}
.motion-v2 .f-hero h1 span{display:block}
.motion-v2 .b-hero-aside{overflow:hidden}
.motion-v2 .b-hero-aside>img{transform-origin:center center}
.motion-v2 .b-hero-aside>img[data-motion-pan]{transform:translate3d(0,var(--business-shift,0px),0) scale(1.09)}
/* Wedding: three actual published photographic frames with scroll-driven storytelling.
   Not misrepresented as client-film footage while approval is pending. */
.w-film-journey{position:relative;min-height:300svh;height:300svh;background:var(--ci-deep);color:white;isolation:isolate}
.w-film-journey-pin{height:100svh;min-height:640px;top:0;position:sticky;overflow:hidden;display:grid;grid-template-columns:1.06fr .94fr;background:var(--ci-deep)}
.w-film-visual{position:relative;height:100%;overflow:hidden;isolation:isolate;background:#151719}
.w-film-shot{position:absolute;inset:-28px;opacity:0;transition:opacity .9s var(--motion-ease);will-change:opacity}
.w-film-shot:first-child,.w-film-shot[data-active="true"]{opacity:1}
.w-film-shot:not([data-active="true"]):first-child{opacity:0}
.w-film-shot:first-child:not([data-active]){opacity:1}
.w-film-shot img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.11) translate3d(0,var(--w-film-pan,0px),0);filter:saturate(.78) contrast(1.05);transition:transform 1.2s var(--motion-ease)}
.w-film-visual .w-film-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 60%,#090a0c6f 100%),linear-gradient(0deg,#090a0cb0,transparent 28%)}
.w-film-frame-counter{position:absolute;z-index:3;left:clamp(22px,5vw,75px);bottom:clamp(40px,6vw,98px);display:flex;align-items:center;gap:15px;font-size:13px;letter-spacing:.1em;font-weight:500}
.w-film-frame-counter>span:last-child{font-size:10px;letter-spacing:.2em;margin-left:10px;opacity:.8}
.w-film-live-dot{width:8px;height:8px;background:var(--ci-gold);border-radius:50%}
.w-film-copy{padding:clamp(90px,12vh,150px) clamp(25px,6.5vw,105px) 90px;align-self:center;max-width:800px;position:relative;z-index:2}
.w-film-copy .eyebrow{color:var(--ci-gold);margin-bottom:35px}
.w-film-copy h2{font:430 clamp(47px,5.1vw,83px)/1.11 var(--ci-font);letter-spacing:-.057em;margin:0 0 34px;max-width:690px}
.w-film-copy h2 .w-film-word{font-weight:500;color:var(--ci-gold);display:block;margin-top:8px}
.w-film-texts{min-height:138px}
.w-film-texts p{font-size:clamp(16px,1.2vw,19px);line-height:1.8;color:#f0eee6d4;margin:0 0 20px;animation:w-film-text-in .65s var(--motion-ease) both}
@keyframes w-film-text-in{from{opacity:0;transform:translateY(23px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
.w-film-cta{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin:22px 0 26px}
.w-film-secondary{font-size:12px;font-weight:650;border-bottom:1px solid #ffffffa8;padding-bottom:6px}
.w-film-clarity{max-width:570px;font-size:11px;line-height:1.55;color:#cdc9c0a3;margin:20px 0 0}
.w-film-rail{position:absolute;z-index:4;right:0;bottom:0;left:0;height:4px;background:#b5ae9f33}
.w-film-rail>span{display:block;height:100%;width:100%;background:var(--ci-gold);transform:scaleX(var(--w-film-progress,0));transform-origin:left}
@media(max-width:900px){.w-film-journey-pin{grid-template-columns:1fr 1fr}.w-film-copy{padding:90px 28px 90px}.w-film-copy h2{font-size:clamp(46px,6vw,69px)}}
@media(max-width:760px){
 .w-film-journey{height:270svh;min-height:1850px}
 .w-film-journey-pin{min-height:600px;height:100svh;grid-template-columns:1fr;grid-template-rows:43% 57%}
 .w-film-visual{grid-row:1}
 .w-film-visual .w-film-vignette{background:linear-gradient(0deg,#090a0c95,transparent 65%)}
 .w-film-frame-counter{bottom:17px;left:22px;font-size:11px}
 .w-film-copy{grid-row:2;align-self:center;padding:18px 22px 46px}
 .w-film-copy .eyebrow{margin-bottom:14px;font-size:9px}
 .w-film-copy h2{font-size:clamp(35px,8.8vw,49px);line-height:1.12;letter-spacing:-.047em;margin:0 0 15px}
 .w-film-copy h2 .w-film-word{margin-top:0}
 .w-film-texts{min-height:72px}
 .w-film-texts p{font-size:13px;line-height:1.65;margin:0 0 12px}
 .w-film-cta{gap:13px;margin:10px 0}
 .w-film-cta .pill{padding:12px 15px;font-size:11px}
 .w-film-secondary{font-size:11px}
 .w-film-clarity{font-size:9px;line-height:1.4;margin:6px 0 0}
 .motion-v2 .p-collage .photo{translate:none!important}
 .motion-v2 .w-story-card.m-tile-reveal{opacity:1;transform:none}
}
@media(max-height:710px) and (max-width:760px){
 .w-film-journey-pin{grid-template-rows:37% 63%}
 .w-film-copy h2{font-size:clamp(32px,8vw,43px)}
 .w-film-copy .eyebrow{margin-bottom:10px}
 .w-film-clarity{display:none}
}
@media(prefers-reduced-motion:reduce){
 .scroll-readout{display:none}
 .motion-v2 .site-nav .brand-logo,.motion-v2 .w-hero h1,.motion-v2 .b-hero h1,.motion-v2 .p-hero h1,.motion-v2 .f-hero h1,.motion-v2 .w-hero p,.motion-v2 .b-hero p,.motion-v2 .p-hero-copy p,.motion-v2 .f-hero-bottom p,.motion-v2 .w-hero-actions,.motion-v2 .b-hero-actions,.motion-v2 .p-actions,.motion-v2 .f-hero-bottom .pill{animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}
 .motion-v2 .img-frame.m-image-reveal>img,.motion-v2 .w-story-card.m-tile-reveal,.motion-v2 .b-process article.m-tile-reveal,.motion-v2 .p-package.m-tile-reveal,.motion-v2 .f-film.m-tile-reveal,.motion-v2 .photo-item.m-photo-reveal{opacity:1!important;clip-path:none!important;transform:none!important}
 .w-film-journey{height:auto;min-height:0}
 .w-film-journey-pin{height:auto;min-height:670px;position:relative}
 .w-film-shot{will-change:auto}
 .w-film-copy{padding-bottom:110px}
}
