/* Local cinema treatment. Ordinary document flow is the no-JS / reduced-motion baseline. */
.cinema-intro { position: relative; margin-top: -70px; isolation: isolate; }
.cinema-stage { position: relative; }
.editorial-home .cinema-hero { margin: 0; padding: 0; min-height: 100svh; }
.editorial-home .cinema-hero .hero-stage { min-height: 100svh; padding: 118px 0 80px; }
.editorial-home .cinema-hero .hero-backdrop { mask-image: none; -webkit-mask-image: none; }
.cinema-next h2 em { font-family: Georgia,'Times New Roman',serif; font-weight: 400; letter-spacing: -.055em; }
.cinema-next { position: relative; padding: 110px 6vw; background: radial-gradient(ellipse at 75% 45%,#18342880,transparent 65%); }
.cinema-next-inner { width: 100%; max-width: 1640px; margin: auto; display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.3fr); gap: 5vw; align-items: center; }
.cinema-eyebrow { margin: 0 0 25px; color: #a5bdab; font: 500 10px/1.6 var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
.cinema-next h2 { margin: 0; color: #f0f0e5; font: 500 clamp(42px,4.7vw,76px)/1.03 var(--font-body); letter-spacing: -.055em; }
.cinema-next-copy > p:not(.cinema-eyebrow) { margin: 26px 0 30px; color: #b6c7b9; font-size: 15px; line-height: 1.55; }
.cinema-next-copy .btn { font-size: 13px; }
.cinema-frame { margin: 0; min-width: 0; }
.cinema-frame-media { aspect-ratio: 16/10; padding: 8px; border: 1px solid #aec4ab45; border-radius: 12px; background: #0b1710; box-shadow: 0 30px 80px #0004,inset 0 1px 1px #e4f7dc26; overflow: hidden; }
.cinema-preview { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: 5px; }
.cinema-frame figcaption { display: flex; justify-content: space-between; gap: 16px; margin-top: 15px; font-size: 10px; color: #9eb3a2; }
.cinema-scroll-hint { display: none; }
.cinema-clients { width: 100%; margin-top: 44px; padding: 8px 0 0; }
.cinema-clients .clients { margin: 0 auto; width: 80%; max-width: 1100px; padding: 24px 0; }
.cinema-clients .clients-track { animation-duration: 28s; }
/* Only add a scroll runway after the controller has initialized. */
@media(min-width:901px) and (min-height:650px) {
 .cinema-motion .cinema-intro { height: 245svh; }
 .cinema-motion .cinema-stage { position: sticky; top: 0; height: 100svh; overflow: clip; }
 .cinema-motion .cinema-hero, .cinema-motion .cinema-next { position: absolute; inset: 0; min-height: 0; will-change: transform,opacity; }
 .cinema-motion .cinema-hero { transform-origin: 50% 50%; }
 .cinema-motion .cinema-next { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 110px 6vw 145px; transform-origin: 60% 50%; }
 .cinema-motion .cinema-scroll-hint { position: absolute; left: 6%; bottom: 34px; display: flex; gap: 38px; align-items: center; color: #c1cfbf; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; pointer-events: none; }
 .cinema-scroll-hint span { font-size: 20px; }
 .cinema-motion .cinema-next-inner { margin-block: 0; }
 .cinema-motion .cinema-frame-media { max-height: calc(100svh - 290px); }
 .cinema-motion .cinema-clients { position: absolute; bottom: 20px; left: 0; margin: 0; padding: 0; }
 .cinema-motion .cinema-clients .clients { padding: 16px 0; }
}
/* Result stories: all descriptions visible unless enhanced into a desktop accordion. */
.editorial-home .results-cases { padding-block: 96px 72px; }
.results-cases > .wrap { max-width: 1600px; }
.results-cases-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 30px; }
.results-cases-heading .cinema-eyebrow { margin: 0; }
.results-cases-heading h2 { font-size: clamp(32px,3.6vw,56px); font-weight: 500; letter-spacing: -.05em; margin: 0; }
.result-stories { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.result-story { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-width: 0; min-height: 370px; padding: 28px; overflow: hidden; border: 1px solid #c2d8bc38; border-radius: 12px; isolation: isolate; background: #10241a; }
.result-story::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,#06140b60,#07150d70 25%,#06100be8 70%,#06100b); }
.result-story-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: .6; filter: saturate(.35); transform: scale(1.03); transition: transform 850ms cubic-bezier(.65,0,.35,1),opacity 850ms cubic-bezier(.65,0,.35,1); }
.result-story-top { display: flex; justify-content: space-between; gap: 12px; font-size: 10px; line-height: 1.5; color: #e0e8da; letter-spacing: .035em; }
.result-story-top p { margin: 0; max-width: 21ch; }
.result-story-top > span { color: #a7b9a9; }
.result-story-copy { margin-top: 75px; }
.result-story h3 { font: 500 10px/1.4 var(--font-body); text-transform: uppercase; letter-spacing: .12em; color: #bacfb9; margin: 0 0 10px; }
.result-story .result-number { font: 500 clamp(42px,4.4vw,68px)/1 var(--font-body); letter-spacing: -.055em; color: #f2f1e6; margin: 0; white-space: nowrap; }
.result-story-detail { margin: 18px 0 0; max-width: 36ch; color: #c4d2c4; font-size: 13px; line-height: 1.65; }
.result-select { display: none; }
@media(min-width:1051px) {
 .results-interactive .result-stories { display: flex; }
 .results-interactive .result-story { flex: 1 1 0%; min-height: 400px; padding: 26px 22px; transition: flex-grow 850ms cubic-bezier(.65,0,.35,1); }
 .results-interactive .result-story.is-selected { flex-grow: 2.4; }
 .results-interactive .result-story-copy { margin-bottom: 36px; }
 .results-interactive .result-story-detail { width: 100%; max-height: 0; opacity: 0; margin-top: 0; transform: translateY(12px); overflow: hidden; transition: opacity 300ms ease-in-out,transform 550ms cubic-bezier(.65,0,.35,1),max-height 650ms cubic-bezier(.65,0,.35,1),margin 650ms ease-in-out; }
 .results-interactive .is-selected .result-story-detail { max-height: 115px; margin-top: 18px; opacity: 1; transform: none; transition-delay: 180ms,140ms,0ms,0ms; }
 .results-interactive .is-selected .result-story-image { opacity: .85; transform: scale(1); }
 .results-interactive .result-select { display: block; position: absolute; inset: 0; width: 100%; border: 0; border-radius: inherit; background: transparent; cursor: pointer; }
 .result-select > span { position: absolute; right: 20px; bottom: 20px; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #c1d5b955; border-radius: 50%; color: #dbe5d4; font-size: 20px; font-weight: 300; transition: transform 650ms cubic-bezier(.65,0,.35,1); }
 .is-selected .result-select > span { transform: rotate(45deg); }
 .result-select:focus-visible { outline: 2px solid #d8e8be; outline-offset: -4px; }
}
@media(max-width:900px),(max-height:649px) {
 .cinema-intro { margin-top: -70px; }
 .editorial-home .cinema-hero .hero-stage { min-height: 100svh; padding: 110px 0 75px; }
 .editorial-home .cinema-hero .hero-stage > .wrap { width: calc(100% - 44px); }
 .cinema-next { padding: 60px 22px 35px; }
 .cinema-next-inner { grid-template-columns: 1fr; gap: 34px; }
 .cinema-next h2 { font-size: clamp(44px,8vw,66px); }
 .cinema-next-copy > p:not(.cinema-eyebrow) { margin-block: 20px; }
 .cinema-eyebrow { font-size: 9px; margin-bottom: 18px; }
 .cinema-clients .clients { width: 100%; }
}
@media(max-width:600px) {
 .editorial-home .results-cases { padding-block: 48px; }
 .results-cases-heading { display: block; }
 .results-cases-heading h2 { margin-top: 12px; font-size: 38px; }
 .result-stories { grid-template-columns: 1fr; gap: 14px; }
 .result-story { min-height: 310px; padding: 24px; }
 .result-story-copy { margin-top: 60px; }
 .result-story .result-number { font-size: 58px; }
}
@media(prefers-reduced-motion:reduce) {
 .result-story,.result-story-image,.result-story-detail,.result-select > span { transition: none !important; }
}

/* Only real before-values appear. The final figure remains the accessible text. */
.result-baseline { margin: 0 0 7px; font-size: 12px; line-height: 1.4; color: #b9ceaf; }
.result-baseline span { display: inline-block; margin-left: 6px; color: #d1e8be; }
.result-number-window { position: relative; display: block; height: 1.16em; overflow: hidden; }
.result-number-final, .result-number-before { display: block; line-height: 1.16; }
.result-number-before { position: absolute; inset: 0; color: #b9ceaf; pointer-events: none; }
.result-number-accessible { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
