/* one continuous film behind sections 01 to 04: a sticky canvas (vchap.js) scrubs chained clips as you scroll.
   Without JS or with reduced motion nothing here applies and the sections render as before. */
.vch-world{position:relative;margin-top:-100vh;z-index:5;pointer-events:none}
.vch-world>section{pointer-events:auto}
.vch-gap{height:100vh}
.vch-stage{position:sticky;top:0;height:100vh;margin-bottom:-100vh;overflow:hidden;z-index:0;pointer-events:none;background:#fff;opacity:0;will-change:opacity,transform}
.vch-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.vch-stage:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 62% 75% at 0% 100%,rgba(255,255,255,.9) 0%,rgba(255,255,255,.7) 45%,rgba(255,255,255,0) 100%),linear-gradient(90deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.22) 36%,rgba(255,255,255,0) 58%)}
.vch-world>section{position:relative;z-index:1;background:transparent!important;padding-top:0!important}
.vch-lead{height:190vh;position:relative;margin-bottom:8vh}
.vch-copy{position:sticky;top:calc(100vh - var(--ch,340px) - 60px);padding:0 52px;max-width:min(46rem,62vw)}
.vch-copy .after-title{font-size:clamp(2.8rem,6vw,6.6rem);font-weight:750;line-height:.9;letter-spacing:-.06em;color:#1d1d1f;margin-top:14px}
.vch-copy .lede{margin-top:18px;max-width:31rem;font-size:17px;line-height:1.55;color:var(--body)}
.vch-copy .w{display:inline-block}
.vch-world>section>.wrap{background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1);border-radius:28px;padding-top:44px;padding-bottom:48px;box-shadow:0 30px 80px rgba(17,17,19,.08);max-width:min(1180px,calc(100% - 64px));margin:0 auto 22vh}
.vch-world>section:last-of-type>.wrap{margin-bottom:12vh}
.vch .st-web,.vch .st-vault{display:none}
.vch-dots{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:40;display:grid;gap:10px;opacity:0;transition:opacity .4s;pointer-events:none}
.vch-dots.on{opacity:1}.vch-dots i{width:6px;height:6px;border-radius:50%;background:rgba(17,17,19,.18);transition:background .3s,transform .3s}.vch-dots i.on{background:var(--acc);transform:scale(1.5)}
@media (max-width:767px){
  .vch-stage:after{background:linear-gradient(0deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.8) 36%,rgba(255,255,255,.25) 60%,rgba(255,255,255,0) 74%)}
  .vch-lead{height:170vh}.vch-copy{padding:0 20px;max-width:none;top:calc(100vh - var(--ch,300px) - 34px)}.vch-copy .lede{font-size:15px}
  .vch-world>section>.wrap{max-width:calc(100% - 24px);padding:28px 18px 32px;border-radius:22px}
  .vch-dots{right:8px}
}

/* finale: the footer rides inside the film world, above the stage, on a light glass panel so the halo glows through behind the logo */
.vch-world>footer{position:relative;z-index:1;background:transparent!important;border:0!important;padding:12vh 0 8vh}
.vch-world>footer>.wrap{background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:28px;padding-top:44px;padding-bottom:40px;max-width:min(1180px,calc(100% - 64px));margin:0 auto}
.vch-world>section:last-of-type>.wrap{margin-bottom:10vh}
@media (max-width:767px){.vch-world>footer>.wrap{max-width:calc(100% - 24px);padding:28px 18px 28px;border-radius:22px}}
