/* ===== Motion layer v4 ===== */
@media (prefers-reduced-motion:no-preference){

/* split headlines: words rise from a clipped line */
.msplit .mw{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em;}
.msplit .mw-i{display:inline-block;transform:translateY(110%) rotate(2deg);opacity:0;transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .6s;transition-delay:calc(var(--i,0)*.07s);}
.msplit.go .mw-i{transform:none;opacity:1;}
.no-anim .msplit .mw-i{transform:none;opacity:1;transition:none;}
.msplit.reveal{opacity:1 !important;transform:none !important;}

/* hero: slow push-in, parallax + fade on scroll, breathing scrim */
.hero-photo > img{transform:scale(calc(1.08 - var(--hp,0)*.04)) translateY(calc(var(--hp,0)*12%));animation:mHeroIn 2.6s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 40%;will-change:transform;}
@keyframes mHeroIn{from{transform:scale(1.18);filter:brightness(.6) saturate(.7);}to{transform:scale(1.08);filter:none;}}
.hero-content{opacity:calc(1 - var(--hp,0)*1.6);transform:translateY(calc(var(--hp,0)*-40px));}
.hero-scrim{animation:mScrim 1.6s ease both;}
@keyframes mScrim{from{opacity:0;}to{opacity:1;}}
.hero-top .kicker.reveal,.hero-lead.reveal,.hero-cta.reveal,.hero-placed.reveal,.hero-place.reveal{transition-duration:1.1s;}
.hero-head.msplit .mw-i{transition-delay:calc(.35s + var(--i,0)*.09s);}
.mcue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:none;color:#fff;opacity:calc(.8 - var(--hp,0)*3);pointer-events:auto;z-index:3;}
.mcue-t{font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;}
.mcue-line{width:1px;height:44px;background:linear-gradient(to bottom,transparent,#fff);position:relative;overflow:hidden;}
.mcue-line::after{content:"";position:absolute;inset:0;background:var(--red);animation:mCue 1.8s cubic-bezier(.6,0,.4,1) infinite;}
@keyframes mCue{0%{transform:translateY(-100%);}60%,100%{transform:translateY(100%);}}
@media (max-width:820px){.mcue{display:none;}}

/* parallax images */
[data-plx]{transform:translateY(calc(var(--plx,0)*-28px)) scale(1.06);transition:none;will-change:transform;}
.jband [data-plx]{transform:translateY(calc(var(--plx,0)*-60px)) scale(1.1);}

/* page mood: chrome darkens over dark sections */
.nav{transition:background .5s,border-color .5s,box-shadow .5s;}
body.mood-dark .nav.is-scrolled{background:rgba(14,15,19,.72);border-bottom-color:rgba(255,255,255,.1);}
body.mood-dark .nav.is-scrolled .nav-links a{color:#d7d9de;}
body.mood-dark .nav.is-scrolled .nav-links a.active,body.mood-dark .nav.is-scrolled .nav-links a:hover{color:#fff;}
body.mood-dark .nav.is-scrolled .brand img{filter:brightness(0) invert(1);}
body.mood-dark .nav.is-scrolled .nav-cta{background:#fff;color:var(--ink);border-color:#fff;}
body.mood-dark .nav.is-scrolled .lang-flag{filter:none;}

/* 3D tilt cards with light sheen */
.ccard,.tm-card,.fn-card{transform-style:preserve-3d;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .18s ease-out,box-shadow .35s,border-color .35s;position:relative;}
.ccard:hover,.fn-card:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-8px);}
.ccard::after,.fn-card::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .3s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.35),transparent 60%);mix-blend-mode:soft-light;}
.ccard:hover::after,.fn-card:hover::after{opacity:1;}
.ccard .cs{transition:transform .6s cubic-bezier(.16,1,.3,1) !important;}
.ccard:hover .cs0{transform:translate(-14%,-4%) rotate(-9deg) !important;}
.ccard:hover .cs1{transform:translate(0,-10%) rotate(-1deg) scale(1.04) !important;}
.ccard:hover .cs2{transform:translate(14%,-3%) rotate(8deg) !important;}

/* magnetic buttons */
.btn{transform:translate(var(--magx,0),var(--magy,0)) !important;transition:transform .25s cubic-bezier(.16,1,.3,1),background .25s,color .25s,border-color .25s !important;}
.btn:hover{transform:translate(var(--magx,0),calc(var(--magy,0) - 2px)) !important;}
.btn::before{content:"";position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1);z-index:0;}
.btn{position:relative;overflow:hidden;}
.btn>*{position:relative;z-index:1;}
.btn:hover::before{transform:scaleX(1);}
.btn:hover{background:var(--ink) !important;border-color:var(--red) !important;color:#fff !important;}
.btn.hero-ghost:hover{color:#fff !important;}

/* press wall: clippings land on the desk */
.pcard{transform:rotate(var(--rot,0deg)) translateY(var(--dy,10px)) !important;opacity:0 !important;transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .6s,box-shadow .35s !important;box-shadow:0 10px 30px -18px rgba(0,0,0,.35);}
.pcard.landed{transform:rotate(var(--rot,0deg)) translateY(0) !important;opacity:1 !important;}
.pcard.landed:hover{transform:rotate(0deg) translateY(-8px) scale(1.03) !important;z-index:2;box-shadow:0 30px 60px -28px rgba(0,0,0,.45);}
.no-anim .pcard{opacity:1 !important;transform:rotate(var(--rot,0deg)) !important;}

/* marquee: speed up on hover is distracting; instead gentle fade edges */
.marquee-track-wrap{mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);}

/* service accordion: items cascade */
.acc-row.open .acc-panel li{animation:mUp .5s cubic-bezier(.16,1,.3,1) both;}
.acc-row.open .acc-panel li:nth-child(2){animation-delay:.05s}.acc-row.open .acc-panel li:nth-child(3){animation-delay:.1s}.acc-row.open .acc-panel li:nth-child(4){animation-delay:.15s}.acc-row.open .acc-panel li:nth-child(5){animation-delay:.2s}.acc-row.open .acc-panel li:nth-child(6){animation-delay:.25s}
.acc-row.open .acc-thumb{animation:mPop .7s cubic-bezier(.16,1,.3,1) both;}
@keyframes mUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes mPop{from{opacity:0;transform:scale(.7) rotate(-8deg);}to{opacity:1;transform:none;}}

/* testimonials: quote mark pulses in */
.tm-card .tm-mark{display:inline-block;animation:mPop .9s cubic-bezier(.16,1,.3,1) both;}

/* section hairline draws itself */
.section{position:relative;}
.sec-head .kicker::before,.kicker::before{transform-origin:left;animation:mLine 1s cubic-bezier(.16,1,.3,1) both;}
@keyframes mLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}

/* contact: form lifts in */
.contact-form-wrap.reveal{transition-duration:1.2s;transform:translateY(40px) rotateX(6deg);transform-origin:top;}
.contact-form-wrap.reveal.in{transform:none;}

/* smooth image hover zoom everywhere */
.fn-card-shot img,.fn-feature-shot img,.studio-shot img{transition:transform .9s cubic-bezier(.16,1,.3,1) !important;}
/* cursor */
.mcur{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;opacity:0;transition:opacity .3s;mix-blend-mode:difference;}
.mcur.show{opacity:1;}
.mcur-dot{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:#fff;}
.mcur-ring{position:absolute;left:-18px;top:-18px;width:36px;height:36px;border-radius:50%;border:1.5px solid #fff;display:flex;align-items:center;justify-content:center;transition:transform .35s cubic-bezier(.16,1,.3,1),background .3s;}
.mcur-ring b{font-family:var(--sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#000;opacity:0;transition:opacity .2s;}
.mcur.hot .mcur-ring{transform:scale(1.6);}
.mcur.view .mcur-ring{transform:scale(2.2);background:#fff;}
.mcur.view .mcur-ring b{opacity:1;}
.mcur.view .mcur-dot{opacity:0;}
@media (pointer:fine){body,a,button,.ccard,.ptile{cursor:none;}}
/* opener */
.mopen{position:fixed;inset:0;z-index:10000;background:var(--blue);display:flex;align-items:center;justify-content:center;clip-path:inset(0 0 0 0);transition:clip-path .8s cubic-bezier(.76,0,.24,1);}
.mopen-in{display:flex;flex-direction:column;align-items:center;gap:18px;opacity:0;transform:translateY(16px);transition:opacity .6s,transform .8s cubic-bezier(.16,1,.3,1);}
.mopen.go .mopen-in{opacity:1;transform:none;}
.mopen img{height:64px;filter:brightness(0) invert(1);}
.mopen-t{font-family:var(--serif);font-style:italic;font-size:20px;color:#fff;letter-spacing:.01em;}
.mopen.out{clip-path:inset(0 0 100% 0);}
.mopen.out .mopen-in{opacity:0;transform:translateY(-20px);}
/* grain */
.mgrain{position:absolute;inset:-50%;pointer-events:none;opacity:.07;z-index:2;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
  animation:mGrain .6s steps(4) infinite;}
@keyframes mGrain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-1%,-1%)}100%{transform:translate(3%,1%)}}
/* wave (scrollytelling) */
.wave{height:250vh;background:var(--ink);color:#fff;position:relative;}
.wave-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:center;}
.wave-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,80px);align-items:center;width:100%;}
.wave-title{font-size:clamp(32px,4.2vw,58px);font-weight:500;letter-spacing:-.02em;line-height:1.02;margin:14px 0 30px;}
.wave-beats{display:flex;flex-direction:column;gap:14px;border-left:1px solid rgba(255,255,255,.15);}
.wave-beat{padding:6px 0 6px 22px;opacity:.3;transition:opacity .5s,transform .5s;position:relative;}
.wave-beat::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.wave-beat.on{opacity:1;}
.wave-beat.on::before,.wave-beat.past::before{transform:scaleY(1);}
.wave-beat.past{opacity:.55;}
.wb-k{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;}
.wb-k i{font-style:normal;color:var(--red);}
.wave-beat p{font-family:var(--serif);font-size:clamp(16px,1.3vw,19px);line-height:1.45;margin:6px 0 0;color:#e6e7ea;max-width:38ch;}
.wave-count{display:flex;align-items:baseline;gap:10px;margin-top:30px;}
.wave-count strong{font-family:var(--serif);font-weight:500;font-size:clamp(48px,6vw,88px);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.wave-count span{font-family:var(--sans);font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:#aeb1b7;}
.wave-bar{height:2px;background:rgba(255,255,255,.15);margin-top:14px;overflow:hidden;}
.wave-bar i{display:block;height:100%;background:var(--red);transform-origin:left;transition:transform .1s linear;}
.wave-desk{position:relative;height:min(72vh,640px);perspective:1200px;}
.wave-desk::before{content:"";position:absolute;inset:10% 6%;border:1px dashed rgba(255,255,255,.12);border-radius:8px;}
.wave-clip{position:absolute;left:50%;top:50%;width:min(46%,300px);max-height:52%;object-fit:cover;object-position:top;border-radius:6px;box-shadow:0 30px 60px -20px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.08);
  transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y) + 60vh)) rotate(var(--r)) scale(.8);opacity:0;transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .4s,filter .6s;filter:brightness(.6);}
.wave-clip.on{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(1);opacity:1;}
.wave-clip.top{filter:brightness(1);transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(calc(var(--r)*.4)) scale(1.06);}
.wave-stamp{position:absolute;right:4%;bottom:6%;z-index:50;border:4px solid var(--red);color:var(--red);padding:10px 18px;transform:rotate(-12deg) scale(2);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s;font-family:var(--sans);font-weight:800;letter-spacing:.14em;text-transform:uppercase;display:flex;flex-direction:column;line-height:1.1;background:rgba(21,22,26,.85);}
.wave-stamp span:first-child{font-size:28px;}
.wave-stamp span:last-child{font-size:12px;}
.wave-stamp.on{opacity:1;transform:rotate(-12deg) scale(1);}
.wave-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#aeb1b7;}
@media (max-width:860px){.wave{height:210vh;}.wave-sticky{align-items:flex-start;}.wave-grid{grid-template-columns:1fr;align-content:start;padding-top:78px;gap:10px;}.wave-desk{height:34svh;order:2;}.wave-desk::before{display:none;}.wave-clip{width:52%;max-height:80%;}.wave-title{font-size:28px;margin:8px 0 12px;}.wave-beats{border-left:none;gap:0;min-height:96px;position:relative;}.wave-beat{position:absolute;inset:0 0 auto 0;padding:0;opacity:0 !important;}.wave-beat.on{opacity:1 !important;}.wave-beat::before{display:none;}.wave-beat p{font-size:15px;}.wave-count{margin-top:6px;}.wave-count strong{font-size:40px;}.wave-stamp{transform:rotate(-12deg) scale(1.6);}.wave-stamp.on{transform:rotate(-12deg) scale(.8);}.wave-hint{display:none;}}
.no-anim .wave-clip{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r));}
}

/* hero headline drifts with scroll (not glued in place) */
@media (prefers-reduced-motion:no-preference){
.hero-top{translate:0 calc(var(--hp,0) * 22vh);scale:calc(1 - var(--hp,0) * .06);opacity:calc(1 - var(--hp,0) * 3.2);transform-origin:left top;will-change:translate,opacity;}
.hero-bottom{translate:0 calc(var(--hp,0) * 30vh);opacity:calc(1 - var(--hp,0) * 2.4);}
.hero-content{transform:none !important;}
}
