/*
 * BP7 V2.0.1 · cinematic motion compatibility layer
 * Inspired by the principles of editorial motion, visual tracks and immersive panels.
 * Not a replica of any reference website.
 */
:root{--bp7-cine-ease:cubic-bezier(.16,1,.3,1);--bp7-film-radius:0px}
html.bp7-cinematic{scroll-behavior:auto}
html.bp7-cinematic body{overscroll-behavior-y:none}
html.bp7-cinematic .reveal{opacity:1;transform:none;transition:none}
html.bp7-cinematic main > section > .shell{position:relative;z-index:4}

/* Home Hero media, overlays and responsive rules are owned by v2-experience.css.
   This motion layer must not redefine player/media states or editorial fallbacks. */
.hero{isolation:isolate}
.hero .hero-inner{z-index:6}
.hero-film-track,.hero-case-caption,.hero-scroll-mark{display:none!important}

/* Horizontal editorial band. */
.word-tunnel{position:relative;z-index:4}
.word-tunnel .word{will-change:transform}

/* Media behaves like a moving film frame. */
.thesis-image,.case-media,.article-image{will-change:clip-path,transform}
html.bp7-cinematic .thesis-image{clip-path:inset(7% 5% 0 5%);transform-origin:center center}
html.bp7-cinematic .case-media{clip-path:inset(0 7% 0 0);transform-origin:center center}
html.bp7-cinematic .case:nth-child(even) .case-media{clip-path:inset(0 0 0 7%)}
html.bp7-cinematic .article-image{clip-path:inset(5% 6% 5% 6%)}

/* Work reads as one continuous visual track. */
.work{overflow:hidden}
.work .case{position:relative}
.work .case-head{will-change:transform,opacity}
.work .case-media img{will-change:transform}
.case-flow-index{position:absolute;left:max(32px,calc((100vw - 1500px)/2));top:50%;transform:translateY(-50%);z-index:5;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.54);pointer-events:none}

/* Capability rows move as a sequence, not isolated cards. */
.change{overflow:hidden}
.change-row{will-change:transform}
.change-row h3,.change-row p,.change-num{will-change:transform,opacity}

/* Manifesto is a full-screen typographic film title. */
.manifesto{position:relative}
.manifesto:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 0 40%,rgba(255,255,255,.08) 50%,transparent 60%);transform:translateX(var(--manifesto-sweep,-110%));will-change:transform}
.manifesto-lines{position:relative;z-index:2}
.manifesto-line{transform-origin:left center;will-change:transform,opacity}

/* Method becomes a measured editorial sequence. */
.method-step{position:relative;overflow:hidden}
.method-step:before{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--blue);transform:scaleX(var(--bp7-rule,0));transform-origin:left;will-change:transform}
.method-step>*{position:relative;will-change:transform,opacity}

/* Repertoire behaves as a calm visual ribbon while retaining the 20-logo grid. */
.clients-stage{will-change:transform}
.client-logo{will-change:transform,opacity}

/* Thinking image/text handoff. */
.article-copy{will-change:transform,opacity}
.article-image img{will-change:transform,filter}

/* Animus is treated as an information panel sliding over the experience. */
.animus-layout{perspective:1400px}
.console{transform-origin:right center;will-change:transform,opacity}
.console-line{will-change:transform,opacity}

/* Final statement grows into the viewport. */
.final{overflow:hidden}
.final h2,.final .serif,.final-link{will-change:transform,opacity}

/* subtle continuous section edge transitions */
.cinematic-wipe{position:fixed;z-index:3;inset:auto 0 0;height:1px;background:var(--blue);transform-origin:left;transform:scaleX(0);pointer-events:none;opacity:.85}

@media(max-width:980px){
  html.bp7-cinematic .case-media,html.bp7-cinematic .case:nth-child(even) .case-media{clip-path:inset(0)}
  .case-flow-index{display:none}
}
@media(max-width:767px){
  html.bp7-cinematic .thesis-image,html.bp7-cinematic .article-image{clip-path:inset(0)}
}
@media(prefers-reduced-motion:reduce){
  .hero-film-frame,.hero-film-frame img,.thesis-image,.case-media,.article-image,.change-row,.manifesto-line,.method-step>*,.clients-stage,.article-copy,.console,.final h2,.final .serif,.final-link{transform:none!important;clip-path:none!important;opacity:1!important}
  .manifesto:after,.cinematic-wipe{display:none}
}


/* V2.0.1 safety: Cases and film-frame fallbacks never return to the Home Hero. */
.hero.hero-has-video .hero-film-track,.hero.hero-has-video .hero-case-caption,.hero.hero-has-video .hero-scroll-mark{display:none!important}
