/* business-v2 motion pass (bzm- prefix).
   Rule of the page: biz.css plus the first block here is the complete, final, static page.
   motion.js adds html.bzm-anim (motion allowed) and html.bzm-pin (pinned problem scene) only
   inside one gsap.matchMedia, and GSAP sets every from-state. Reduced motion, no JS and a blocked
   GSAP CDN all show the static page. */

html{scroll-behavior:auto}

/* ---------- 1. neutralise the lp.js reveal states in biz.css (the .rv class is gone) ---------- */
.js .bz-persist .bz-pc-cells i.on{scale:1 1}
.js .bz-hm .bz-hm-cells i:not(.n0){opacity:1;scale:1}
.js .bz-weeks .bz-wk-col u{scale:1 1}
.js .bz-weeks .bz-wk-col b{opacity:1}

/* hero waits for the intro timeline; the head script drops .bzm-wait after 3.5s if GSAP never loads */
@media (prefers-reduced-motion:no-preference){
  .bzm-wait .hero-inner,.bzm-wait .hero-stage,.bzm-wait .hero-shapes{visibility:hidden}
}

/* decorative hooks: invisible and absent in the static page */
.bzm-echo,.bzm-week-head,.bzm-rail{display:none}

/* ---------- 2. motion on: what GSAP drives takes over from the CSS loops and transitions ---------- */
html.bzm-anim .bz-tick-in{animation:none}
html.bzm-anim .bz-panel:not([hidden]) .bz-bar u{animation:none}
html.bzm-anim .bz-swin .bz-screen{transition:none}
html.bzm-anim .bz-pr-pause{display:none}
html.bzm-anim .bz-screen .chips .gchip{animation:none}

html.bzm-intro .hero-cta .btn{transition:box-shadow .5s var(--ease),background .3s}

/* shapes: GSAP folds the CSS rotate/translate into its own transform, so the drift loop adds only its delta */
@keyframes bzmDrift{from{translate:0 0}to{translate:22px -26px;rotate:9deg}}
html.bzm-anim .shape.bzm-f{animation-name:bzmDrift}

/* SplitText masks: room for descenders */
.bzml-mask,.bzmw-mask{padding-bottom:.14em;margin-bottom:-.14em}

/* numbers that count keep a steady width while they run */
.bzm-num{font-variant-numeric:tabular-nums}

/* highlight wipes in when motion is on (the one background-size transition, same as home-v3) */
html.bzm-anim .v2-hl{background:linear-gradient(color-mix(in srgb,var(--sun) 72%,#fff),color-mix(in srgb,var(--sun) 72%,#fff)) 0 100%/0% 38% no-repeat;transition:background-size 1.1s var(--ease) .15s}
html.bzm-anim .v2-hl.on{background-size:100% 38%}

/* ---------- problem: echo ring leaving the organic post ---------- */
html.bzm-anim .bz-org{overflow:visible}
html.bzm-anim .bzm-echo{display:block;position:absolute;inset:0;border-radius:18px;box-shadow:0 0 0 2px var(--coral);opacity:0;pointer-events:none;z-index:3}

/* ---------- belief: playhead and the You highlight ---------- */
html.bzm-anim .bzm-week-head{display:block;position:absolute;left:0;top:-4px;bottom:-4px;width:1.5px;background:var(--tiff);opacity:0;pointer-events:none;z-index:3}
html.bzm-anim .bz-pc-row.you::before{opacity:0;scale:.92;transition:opacity .5s var(--ease),scale .6s var(--ease)}
html.bzm-anim .bz-pc-row.you.bzm-you-on::before{opacity:1;scale:1}
html.bzm-anim .bz-pc-row.you .bz-pc-name{display:inline-block;transform-origin:0 50%}

/* ---------- how it works: progress rail and the 1 / 5 counter ---------- */
html.bzm-anim .bzm-rail{display:block;position:absolute;left:-28px;top:0;bottom:40px;width:2px;border-radius:2px;background:var(--bz-hair);overflow:hidden;pointer-events:none}
html.bzm-anim .bzm-rail b{position:absolute;inset:0;background:var(--tiff);transform-origin:50% 0}
html.bzm-anim #bzHowNow{display:inline-block;position:relative;overflow:clip;vertical-align:bottom}
html.bzm-anim #bzHowNow>i{display:inline-block;font-style:normal}
html.bzm-anim #bzHowNow>i.bzm-old{position:absolute;left:0;top:0}
@media (max-width:1000px){html.bzm-anim .bzm-rail{left:-22px}}

/* ---------- 7. campaigns: playhead ---------- */
.bzm-playhead,.bzm-ping{display:none}
html.bzm-anim .bzm-playhead{display:block;position:absolute;left:0;top:-5px;bottom:-5px;width:2px;border-radius:2px;background:var(--tiff);opacity:0;pointer-events:none;z-index:3;text-decoration:none}
html.bzm-anim .bz-wave>i{will-change:auto}

/* ---------- 12. close: ring leaving the Open dot ---------- */
html.bzm-anim .bz-open{position:relative}
html.bzm-anim .bzm-ping{display:block;position:absolute;left:14px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;box-shadow:0 0 0 2px var(--night);opacity:0;pointer-events:none;text-decoration:none}
