/* 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,.vch-world>footer{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}}

.vch-stage canvas{transform-origin:50% 55%;will-change:transform}
/* contact form: open fields on the film, hairline inputs, orange focus line */
.cform{max-width:760px;margin:70px auto 40px;text-align:left}
.cf-title{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:720;letter-spacing:-.04em;margin:10px 0 26px}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px}
.cform label{display:grid;gap:8px;font:500 11px "Geist Mono";letter-spacing:.16em;text-transform:uppercase;color:var(--muted);position:relative}
.cform label i{font-style:normal;opacity:.6;letter-spacing:.08em}
.cform .full{grid-column:1/-1}
.cform input,.cform select,.cform textarea{font:400 16px Geist,system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--ink);background:rgba(255,255,255,.6);border:0;border-bottom:1px solid rgba(17,17,19,.3);border-radius:0;padding:12px 2px;width:100%;transition:border-color .3s,background .3s;-webkit-appearance:none;appearance:none}
.cform select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}
.cform textarea{resize:vertical;min-height:120px}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:0;border-bottom-color:var(--acc);background:rgba(255,255,255,.9)}
.cform .bad input,.cform .bad select,.cform .bad textarea{border-bottom-color:#d93a0b}
.cform .err{font:500 11px Geist;letter-spacing:0;text-transform:none;color:#d93a0b}
.cf-project{margin-top:22px;overflow:hidden}
.cf-msg{margin-top:22px}
.cf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-foot{display:flex;align-items:center;gap:20px;margin-top:28px;flex-wrap:wrap}
.cf-status{font-size:15px;color:var(--body)}
.cf-status.ok{color:var(--ink);font-weight:600}.cf-status.ok:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--acc);margin-right:10px;vertical-align:1px}
.cf-status.no{color:#d93a0b}
.cform button[disabled]{opacity:.6;cursor:wait}
@media (max-width:767px){.cf-grid{grid-template-columns:1fr}.cform{margin-top:48px}}
.cform label i{position:absolute;right:0;top:0}
/* launch price tags: regular price cut by an orange slash, launch price beside it */
.ptags{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px}
.ptags.two-up{grid-template-columns:repeat(2,minmax(0,1fr));max-width:30rem;margin-top:26px}
.ptag{position:relative;display:grid;gap:4px;padding:18px 18px 16px;border-radius:16px;background:#111113;color:#fff;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.ptag:hover{transform:translateY(-3px)}
.ptag:before{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(255,90,31,.35),rgba(255,90,31,0) 70%)}
.pt-badge{justify-self:start;font:600 10px "Geist Mono";letter-spacing:.16em;color:#111113;background:var(--acc);padding:5px 8px;border-radius:6px}
.pt-name{font-size:14px;font-weight:600;letter-spacing:-.01em;margin-top:8px;line-height:1.25;min-height:2.5em;color:#fff}
.pt-old{position:relative;justify-self:start;font:500 15px "Geist Mono";color:rgba(255,255,255,.45);padding:0 3px}
.pt-cut{position:absolute;left:-4px;right:-4px;top:50%;height:3px;margin-top:-1.5px;background:var(--acc);border-radius:2px;transform:rotate(-14deg);transform-origin:50% 50%;box-shadow:0 0 10px rgba(255,90,31,.6)}
.pt-new{font-size:clamp(1.7rem,2.6vw,2.2rem);font-weight:760;letter-spacing:-.05em;line-height:1;color:#fff}
.pt-promo{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.ptags+.pt-promo{justify-content:center}
.two-up+.pt-promo{justify-content:flex-start}
.pt-code{font:500 12px "Geist Mono";letter-spacing:.08em;color:#111113;background:#fff;border:1.5px dashed var(--acc);border-radius:99px;padding:9px 14px;cursor:pointer}
.pt-code b{color:var(--acc);font-weight:700}
.pt-copied{margin-left:8px;color:var(--acc)}
.pt-fine{font-size:12.5px;color:var(--muted)}
@media (max-width:900px){.ptags{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.ptags{gap:10px}.ptag{padding:14px 12px}.pt-name{font-size:13px}}
/* website tags: deposit flow */
.ptags.two-up{max-width:44rem}
.pt-web{gap:6px;padding:20px 20px 18px}
.pt-new small{font-size:13px;font-weight:500;letter-spacing:0;color:rgba(255,255,255,.6)}
.pt-dep-h{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14);font:600 10.5px "Geist Mono";letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.pt-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:14px;color:#fff}
.pt-row b{font-size:20px;font-weight:740;letter-spacing:-.03em}
.pt-old.pt-sm{font-size:13px}
.pt-with{font:500 11px "Geist Mono";color:var(--acc)}
.pt-bal{color:rgba(255,255,255,.75);font-size:13.5px}
.pt-steps{font-size:12px;color:rgba(255,255,255,.5);margin-top:2px}
.pt-btn{margin-top:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;border-radius:10px;background:var(--acc);color:#fff;font-weight:600;font-size:14px;box-shadow:0 10px 26px rgba(255,90,31,.32);transition:background .2s}
.pt-btn:hover{background:#f04e14}
.pt-web:hover{transform:none}
@media (max-width:600px){.ptags.two-up{grid-template-columns:1fr}}
