/* Scroll film shared by the concept demos. Theme per demo with the --cf-* variables. */
.cf{--cf-ink:#1d1611;--cf-light:#fff8ea;--cf-mute:currentColor;--cf-accent:#b0812f;--cf-disp:"Bodoni Moda",Georgia,serif;--cf-sans:"Manrope",system-ui,sans-serif;--cf-top:96px;--cf-shade:#00000055;
  position:relative;height:var(--cf-h,640vh);font-family:var(--cf-sans)}
.cf-stage{position:sticky;top:0;height:100vh;height:100lvh;width:100%;overflow:hidden;background:#0d0b09}
.cf-poster,.cf-cv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.cf-cv{opacity:0;transition:opacity .5s}
.cf.cf-live .cf-cv{opacity:1}
.cf-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 55%,#00000018)}
.cf-tone-dark .cf-vig{background:radial-gradient(120% 90% at 50% 45%,transparent 45%,#00000066)}
.cf-panel{position:absolute;z-index:3;opacity:0;will-change:transform,opacity,filter;pointer-events:none}
.cf-panel.cf-on{pointer-events:auto}
.cf-first{opacity:1}
.cf-t-dark{color:var(--cf-ink)}
.cf-t-light{color:var(--cf-light)}
.cf-t-light .cf-h1,.cf-t-light .cf-h2{text-shadow:0 10px 50px var(--cf-shade)}
/* soft scrim behind light text so it reads over bright frames */
.cf-panel.cf-t-light:not(.cf-center):before,.cf-center.cf-t-light:before{content:"";position:absolute;z-index:-1;inset:-18% -30% -18% -40%;background:radial-gradient(closest-side,var(--cf-scrim,#0008),transparent);pointer-events:none}
.cf-right.cf-t-light:before{inset:-18% -40% -18% -30%}
.cf-panel.cf-t-dark:before{content:"";position:absolute;z-index:-1;inset:-18% -30%;background:radial-gradient(closest-side,var(--cf-scrim-l,#fff6),transparent);pointer-events:none}
.cf-t-light .cf-text,.cf-t-light .cf-kicker{text-shadow:0 2px 16px var(--cf-shade)}
.cf-hero,.cf-left{left:max(22px,5.5vw);top:calc(50% + var(--cf-top) / 2);transform:translateY(-50%);max-width:min(46vw,640px)}
.cf-right{right:max(22px,5.5vw);top:calc(50% + var(--cf-top) / 2);transform:translateY(-50%);max-width:min(30vw,420px)}
.cf-center{left:0;right:0;top:calc(50% + var(--cf-top) / 2);transform:translateY(-50%);text-align:center;padding:0 24px}
.cf-side{right:max(22px,5.5vw);top:calc(50% + var(--cf-top) / 2);transform:translateY(-50%);max-width:300px}
.cf-kicker{font-size:11px;letter-spacing:.32em;text-transform:uppercase;display:flex;gap:14px;align-items:center;margin:0 0 20px;opacity:.82;font-weight:600}
.cf-kicker:before{content:"";width:34px;height:1px;background:currentColor}
.cf-center .cf-kicker{justify-content:center}
.cf-center .cf-kicker:after{content:"";width:34px;height:1px;background:currentColor}
.cf-h1{font-family:var(--cf-disp);font-weight:500;font-size:clamp(54px,8.6vw,148px);line-height:.88;letter-spacing:-.02em;margin:0}
.cf-h2{font-family:var(--cf-disp);font-weight:500;font-size:clamp(46px,6.2vw,100px);line-height:.9;letter-spacing:-.02em;margin:0}
.cf-center .cf-h2{font-size:clamp(54px,10vw,170px);line-height:.86}
.cf-h1 em,.cf-h2 em{font-style:italic;font-weight:400;color:var(--cf-accent)}
.cf-t-light .cf-h1 em,.cf-t-light .cf-h2 em{color:inherit}
.cf-text{font-size:15px;line-height:1.75;margin:22px 0 0;max-width:400px;opacity:.86}
.cf-center .cf-text{margin-left:auto;margin-right:auto}
.cf-meta{display:flex;gap:34px;margin-top:26px;border-top:1px solid currentColor;border-color:color-mix(in srgb,currentColor 22%,transparent);padding-top:18px}
.cf-meta b{display:block;font-family:var(--cf-disp);font-weight:500;font-size:30px;line-height:1.1}
.cf-meta small{font-size:10px;letter-spacing:.24em;text-transform:uppercase;opacity:.7}
.cf-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.cf-center .cf-ctas{justify-content:center}
.cf-btn{display:inline-flex;align-items:center;gap:12px;border:1px solid currentColor;border-radius:99px;padding:14px 22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;text-decoration:none;color:inherit;transition:transform .4s,background .4s,color .4s}
.cf-btn:hover{transform:translateY(-2px)}
.cf-btn-solid{background:var(--cf-ink);color:var(--cf-light);border-color:var(--cf-ink)}
.cf-t-light .cf-btn-solid{background:var(--cf-light);color:var(--cf-ink);border-color:var(--cf-light)}
.cf-btn i{font-style:normal;width:22px;height:22px;border-radius:50%;background:currentColor;display:grid;place-items:center;font-size:12px}
.cf-btn-solid i{background:var(--cf-light);color:var(--cf-ink)}
.cf-t-light .cf-btn-solid i{background:var(--cf-ink);color:var(--cf-light)}
.cf-cue{position:absolute;z-index:3;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;text-decoration:none;color:inherit;opacity:.8}
.cf-tone-dark .cf-cue,.cf-tone-dark .cf-prog{color:var(--cf-light)}
.cf-tone-light .cf-cue,.cf-tone-light .cf-prog{color:var(--cf-ink)}
.cf-cue i{width:1px;height:42px;background:linear-gradient(currentColor,transparent);animation:cfcue 1.8s ease-in-out infinite}
@keyframes cfcue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.cf-prog{position:absolute;z-index:3;left:50%;bottom:30px;transform:translateX(-50%);display:flex;gap:30px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:0}
.cf-prog div{display:flex;align-items:center;gap:10px;opacity:.4;transition:opacity .4s}
.cf-prog div:before{content:"";width:14px;height:1px;background:currentColor;transition:width .4s}
.cf-prog div.on{opacity:1}.cf-prog div.on:before{width:34px}
.cf-poster img{width:100%;height:100%;object-fit:cover;display:block}
.cf-mv,.cf-caps{display:none}
@media (max-width:820px){
  /* phones: a full-screen portrait clip plays on its own; chapter lines appear as timed captions */
  .cf{height:auto!important;margin-top:0}
  .cf-stage{position:relative;height:calc(100svh - var(--cf-off,0px));min-height:520px;max-height:980px;background:var(--cf-bg,#0d0b09)}
  .cf-cv,.cf-prog,.cf-cue,.cf-side{display:none!important}
  .cf-poster,.cf-mv{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .cf .cf-vig,.cf.cf-tone-dark .cf-vig{inset:0;z-index:2;background:linear-gradient(180deg,color-mix(in srgb,var(--cf-bg,#0d0b09) 82%,transparent) 0,color-mix(in srgb,var(--cf-bg,#0d0b09) 40%,transparent) calc(var(--cf-top) + 90px),transparent calc(var(--cf-top) + 150px),transparent 30%,color-mix(in srgb,var(--cf-bg,#0d0b09) 88%,transparent) 50%,var(--cf-bg,#0d0b09) 60%)}
  .cf-panel{display:none}
  .cf-panel.cf-first{display:block;position:absolute;left:20px;right:20px;top:auto;bottom:calc(26px + env(safe-area-inset-bottom));max-width:none;transform:none!important;filter:none!important;opacity:1!important;text-align:left;padding:0;pointer-events:auto;color:var(--cf-fg,var(--cf-light))}
  .cf-panel:before{display:none}
  .cf-first .cf-h1,.cf-first .cf-text,.cf-first .cf-kicker{text-shadow:none}
  .cf-h1 em,.cf-t-light .cf-h1 em{color:var(--cf-accent)}
  .cf-kicker{margin-bottom:12px;font-size:10px}
  .cf-h1{font-size:clamp(42px,12vw,62px);line-height:.92}
  .cf-text{font-size:14px;line-height:1.6;margin-top:12px;max-width:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .cf-ctas{margin-top:18px;gap:10px}
  .cf-btn{padding:13px 18px;font-size:11px;min-height:44px}
  .cf-btn-solid,.cf-t-light .cf-btn-solid{background:var(--cf-fg,var(--cf-light));color:var(--cf-bg,#0d0b09);border-color:var(--cf-fg,var(--cf-light))}
  .cf-btn-solid i,.cf-t-light .cf-btn-solid i{background:var(--cf-bg,#0d0b09);color:var(--cf-fg,var(--cf-light))}
  .cf-caps{display:block;position:absolute;z-index:3;left:20px;right:20px;top:calc(var(--cf-top) + 22px);color:var(--cf-fg,var(--cf-light));pointer-events:none}
  .cf-cap{position:absolute;left:0;right:0;top:0;margin:0;opacity:0;transform:translateY(10px);transition:opacity .7s,transform .7s}
  .cf-cap.on{opacity:1;transform:none}
  .cf-cap span{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;opacity:.8;margin-bottom:8px}
  .cf-cap span:before{content:"";width:26px;height:1px;background:currentColor}
  .cf-cap b{display:block;font-family:var(--cf-disp);font-weight:500;font-size:clamp(26px,7.4vw,34px);line-height:1;letter-spacing:-.01em}
  .cf-cap b em{font-style:italic;font-weight:400;color:var(--cf-accent)}
}
@media (prefers-reduced-motion:reduce){.cf-cue i{animation:none}}
@media (min-width:600px) and (max-width:820px){
  .cf-h1{font-size:clamp(60px,9.5vw,80px)}
  .cf-panel.cf-first,.cf-caps{left:40px;right:40px}
  .cf-text{max-width:520px}
}
@media (max-width:820px) and (max-height:620px){.cf-h1{font-size:clamp(36px,10.5vw,48px)}.cf-text{-webkit-line-clamp:2}.cf-cap b{font-size:24px}}
@media (max-width:359px){.cf-btn{padding:11px 14px;font-size:10px;letter-spacing:.12em}.cf-ctas{gap:8px}}
