/* /hero-wow-preview/ only: styles for wow-fx.js. Bands are static markup (they read fine
   without JavaScript); every motion-only rule is scoped to html.wow, which the script sets. */

/* ---------- Kinetic bands ---------- */
.wow-band{position:relative;overflow:hidden;padding:clamp(16px,2.6vw,36px) 0;user-select:none;pointer-events:none}
.wow-row{white-space:nowrap;line-height:0}
.wow-track{display:inline-flex;align-items:center;gap:clamp(18px,2.4vw,40px);padding-right:clamp(18px,2.4vw,40px);will-change:transform;
  font:800 clamp(64px,11vw,190px)/.92 Barlow,Arial,sans-serif;letter-spacing:-.03em;text-transform:uppercase}
.wow-track i{font-style:normal;font-size:.4em;line-height:1}
.wow-track .o{color:transparent;-webkit-text-stroke:2px currentColor}
.wow-band-a{background:#fff;color:#174cf2}
.wow-band-a .wow-track i{color:#d5ff83;-webkit-text-stroke:2px #174cf2}
.wow-band-x{background:#151815;padding:clamp(48px,7vw,110px) 0}
.wow-band-x .wow-row{position:relative;width:112%;margin-left:-6%;padding:clamp(10px,1.2vw,18px) 0;box-shadow:0 18px 40px -20px #000}
.wow-band-x .wow-track{font-size:clamp(38px,5.6vw,92px)}
.wow-band-x .r1{background:#d5ff83;color:#151815;rotate:-3deg;z-index:1}
.wow-band-x .r2{background:#174cf2;color:#fff;rotate:2.4deg;margin-top:clamp(-26px,-1.6vw,-12px)}
.wow-band-x .r2 .wow-track i{color:#d5ff83}
.wow-band-c{background:#112b73;color:#d5ff83}
.wow-band-c .wow-track .o{-webkit-text-stroke-color:#ffffff}
.wow-band-c .wow-track i{color:#fff}

/* ---------- Cursor light and ring (fine pointers only) ---------- */
.wow-glow{position:fixed;left:0;top:0;width:620px;height:620px;border-radius:50%;pointer-events:none;z-index:30;opacity:0;transition:opacity .5s ease;
  background:radial-gradient(circle,rgba(213,255,131,.26) 0%,rgba(156,192,255,.12) 32%,rgba(156,192,255,0) 64%)}
.wow-ring{position:fixed;left:0;top:0;width:34px;height:34px;border-radius:50%;border:1.5px solid #fff;mix-blend-mode:difference;pointer-events:none;z-index:9999;visibility:hidden}
html.wow-cursor-on .wow-glow{opacity:1}
html.wow-cursor-on .wow-ring{visibility:visible}

/* ---------- Worked-example waterfalls ---------- */
.wow-fall{margin:20px 0 8px;padding:16px 16px 12px;border-radius:14px;background:linear-gradient(180deg,#f5f8ff,#eef3ff);border:1px solid #dfe7fb}
.wow-fall-bars{display:flex;align-items:stretch;gap:14px;height:160px}
.wow-fall-col{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.wow-fall-val{font:800 12px/1 Manrope,Arial,sans-serif;color:#112b73;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.wow-fall-track{position:relative;flex:1}
.wow-fall-track i{position:absolute;left:10%;right:10%;border-radius:6px 6px 3px 3px;transform-origin:50% 100%}
.wow-fall-start i{background:linear-gradient(180deg,#2d63ff,#174cf2)}
.wow-fall-minus i{background:repeating-linear-gradient(135deg,#9cc0ff 0 6px,#c9d9ff 6px 12px);border:1px dashed #174cf2}
.wow-fall-result i{background:#d5ff83;box-shadow:inset 0 0 0 2px #151815}
.wow-fall-base{height:2px;background:#112b7333;margin-top:2px;border-radius:1px}

/* ---------- The four steps, sideways (desktop) ---------- */
@media(min-width:900px){
 .wow-h{position:relative;height:calc(100vh - 96px + var(--wow-travel,0px))}
 .wow-h-sticky{position:sticky;top:96px;height:calc(100vh - 96px);overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:clamp(22px,4vh,44px)}
 .wow-h-on .wow-h-sticky>.mf-heading{margin:0}
 .wow-h-on .wow-h-sticky>ol{display:flex;gap:28px;width:max-content;max-width:none;margin:0;padding:0;will-change:transform}
 .wow-h-on .wow-h-sticky>ol::before,.wow-h-on .wow-h-sticky>ol::after{display:none}
 .wow-h-on .wow-h-sticky>ol>li{position:relative;flex:none;width:min(500px,36vw);min-height:min(44vh,340px);padding:34px 34px 30px;border:1px solid #ffffff26;border-radius:20px;
   background:linear-gradient(160deg,#ffffff14,#ffffff04 60%);overflow:hidden;will-change:transform,opacity;display:flex;flex-direction:column;justify-content:space-between}
 .wow-h-on .wow-h-sticky>ol>li .mf-step-number{font-size:64px;margin:0}
 .wow-h-on .wow-h-sticky>ol>li h3{font-size:clamp(26px,2.2vw,36px)}
 .wow-h-ghost{position:absolute;right:-18px;bottom:-54px;font:800 280px/.8 Barlow,Arial,sans-serif;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px #d5ff8338;pointer-events:none;z-index:0}
 .wow-h-on .wow-h-sticky>ol>li>*:not(.wow-h-ghost){position:relative;z-index:1}
 .wow-h-bar{height:3px;background:#ffffff1f;border-radius:2px;overflow:hidden}
 .wow-h-bar i{display:block;height:100%;background:#d5ff83;transform:scaleX(0);transform-origin:left}
}

/* ---------- Founder: orbit rings around the portrait ---------- */
.wow-orbits{position:absolute;inset:0;z-index:-1;pointer-events:none;perspective:900px}
.wow-orbits i{position:absolute;left:50%;top:40%;aspect-ratio:1;border-radius:50%;border:1.5px solid #d5ff8366;transform:translate(-50%,-50%) rotateX(70deg);animation:wowOrbit 22s linear infinite}
.wow-orbits .o1{width:78%}.wow-orbits .o2{width:98%;animation-duration:30s;animation-direction:reverse;border-color:#9cc0ff59}.wow-orbits .o3{width:118%;animation-duration:40s;border-style:dashed;border-color:#ffffff33}
.wow-orbits b{position:absolute;left:50%;top:-5px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#d5ff83;box-shadow:0 0 14px 3px #d5ff83aa}
.wow-orbits .o2 b{background:#9cc0ff;box-shadow:0 0 12px 3px #9cc0ff99}
.wow-orbits .o3 b{background:#fff}
@keyframes wowOrbit{from{transform:translate(-50%,-50%) rotateX(70deg) rotateZ(0)}to{transform:translate(-50%,-50%) rotateX(70deg) rotateZ(360deg)}}
.wow .ms-founder-message .wow-word{display:inline}

/* ---------- Particles streaming into the final booking button ---------- */
.wow-stream-on{position:relative;isolation:isolate}
.wow-stream{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}

/* ---------- Footer wordmark letters ---------- */
.wow .tx-footer-word span{display:inline-block;transform-origin:50% 100%;
  color:rgb(213 255 131 / calc(var(--lit,0) * 1));-webkit-text-stroke:1.5px rgb(213 255 131 / calc(.32 + var(--lit,0) * .68));text-shadow:0 0 calc(var(--lit,0) * 40px) rgb(213 255 131 / calc(var(--lit,0) * .6))}

/* ---------- Strategy tiles: parallax photo and glare ---------- */
.wow .mf-strategy-photo{position:relative;overflow:hidden}
.wow .mf-strategy-photo img{scale:1.12;translate:var(--px,0px) var(--py,0px)}
.wow-tile-glare{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s ease;mix-blend-mode:soft-light;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),#ffffffcc,transparent 52%)}
.wow .mx-strategy-tile:hover .wow-tile-glare{opacity:1}

/* ---------- Reviews drift at different depths ---------- */
.wow .wow-float .mf-review{animation:wowFloat 6.5s ease-in-out infinite;animation-delay:calc(var(--wow-d,0s) * -1)}
@keyframes wowFloat{0%,100%{translate:0 0}50%{translate:0 -12px}}

/* ---------- Planning-thread comet ---------- */
.wow main{position:relative}
.wow-comet{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#d5ff83;pointer-events:none;z-index:3;opacity:0;transition:opacity .3s ease;
  box-shadow:0 0 0 4px #d5ff8340,0 0 28px 8px #d5ff83aa}

/* ---------- Living light behind the white chapters ---------- */
.wow #people,.wow #planning-examples,.wow #questions{position:relative;isolation:isolate;overflow:clip}
.wow #people::before,.wow #planning-examples::before,.wow #questions::before{content:"";position:absolute;inset:-15%;z-index:-1;pointer-events:none;
  background:radial-gradient(38% 32% at 18% 28%,#9cc0ff38,transparent 70%),radial-gradient(34% 30% at 82% 72%,#d5ff8352,transparent 70%),radial-gradient(28% 26% at 60% 12%,#174cf21a,transparent 70%);
  animation:wowAurora 24s ease-in-out infinite alternate}
.wow #planning-examples::before{animation-duration:30s;animation-direction:alternate-reverse}
@keyframes wowAurora{to{transform:translate3d(5%,-4%,0) rotate(10deg) scale(1.12)}}
.wow #meet-bryan{overflow-x:clip}

/* ---------- The loose sheets float until organized ---------- */
.wow .wow-sheets{perspective:1200px}
.wow .wow-sheets .mx-shift-sheets{translate:var(--sx,0) var(--sy,0);transform:rotateX(var(--srx,0deg)) rotateY(var(--sry,0deg));transform-style:preserve-3d}
.wow .wow-sheets:not([data-organized="true"]) .mx-loose-sheet{animation:wowSheet 5.5s ease-in-out infinite}
.wow .wow-sheets:not([data-organized="true"]) .mx-loose-sheet:nth-child(2){animation-delay:-1.8s;animation-duration:6.2s}
.wow .wow-sheets:not([data-organized="true"]) .mx-loose-sheet:nth-child(3){animation-delay:-3.4s;animation-duration:7s}
@keyframes wowSheet{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -14px;rotate:2.5deg}}

/* ---------- Decision rows lift their drawings on hover ---------- */
.wow #approach .pl-art{transition:transform .6s cubic-bezier(.16,1,.3,1),filter .6s ease}
.wow #approach .pl-decision-title:hover .pl-art{transform:translateY(-8px) rotate(-3deg) scale(1.08);filter:drop-shadow(0 16px 20px #174cf233)}

/* ---------- Chapter rail (desktop) ---------- */
.wow-rail{position:fixed;right:18px;top:50%;z-index:35;display:flex;flex-direction:column;gap:6px;transform:translate(20px,-50%);opacity:0;pointer-events:none;transition:opacity .4s ease,transform .5s cubic-bezier(.16,1,.3,1)}
.wow-rail.show{opacity:1;transform:translate(0,-50%);pointer-events:auto}
.wow-rail button{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:10px;height:22px;padding:0;border:0;background:none;cursor:pointer}
.wow-rail i{width:8px;height:8px;border-radius:50%;background:#9cc0ff;box-shadow:0 0 0 3px #ffffffcc;transition:transform .3s ease,background-color .3s ease}
.wow-rail span{font:700 11px/1 Manrope,Arial,sans-serif;letter-spacing:.06em;color:#112b73;background:#ffffffe6;padding:5px 8px;border-radius:999px;box-shadow:0 6px 16px -8px #071d66;opacity:0;transform:translateX(8px);transition:opacity .25s ease,transform .3s ease;white-space:nowrap}
.wow-rail button:hover span,.wow-rail button:focus-visible span,.wow-rail button.flash span{opacity:1;transform:none}
.wow-rail button.on i{background:#d5ff83;transform:scale(1.6);box-shadow:0 0 0 3px #174cf2,0 0 16px 4px #d5ff83aa}
.wow-rail button:hover span,.wow-rail button:focus-visible span{opacity:1}
@media(max-width:899px){.wow-rail{display:none}}

/* ---------- Hero hand-off: the copy leaves faster than the cards ---------- */
.wow .mf-hero .tx-final-copy{translate:0 var(--wow-hy,0px)}
.wow .mf-hero .tx-end-services{translate:0 calc(var(--wow-hy,0px)*.35)}

/* ---------- Spotlight edges ---------- */
.wow-spot{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;opacity:0;transition:opacity .35s ease;
 background:radial-gradient(360px circle at var(--gx,50%) var(--gy,50%),rgb(213 255 131 / .16),transparent 60%)}
.wow-spot::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;
 background:radial-gradient(340px circle at var(--gx,50%) var(--gy,50%),#d5ff83,#d5ff83b3 30%,#174cf2 55%,transparent 75%);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
:hover>.wow-spot{opacity:1}

/* ---------- Odometer ---------- */
.wow-odo{display:inline-flex;overflow:hidden}
.wow-reel{display:inline-block;height:1em;line-height:1;overflow:hidden}
.wow-strip{display:flex;flex-direction:column}
.wow-strip i{display:block;height:1em;line-height:1;font-style:normal}
.wow-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ---------- Film grain ---------- */
.wow-grain{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:29;opacity:0;transition:opacity .6s ease}
.wow-grain.on{opacity:.09}
.wow-grain:not(.on) i{animation-play-state:paused}
.wow-grain i{position:absolute;inset:-20%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:wowGrain .9s steps(6) infinite}
@keyframes wowGrain{0%{translate:0 0}17%{translate:-7% 4%}33%{translate:5% -6%}50%{translate:-3% 8%}67%{translate:8% 2%}83%{translate:-6% -4%}100%{translate:0 0}}
.tx-preview #consultation .tx-deadline-days .wow-odo span,.tx-preview #consultation .tx-deadline-days .wow-odo i{font:inherit;letter-spacing:inherit;text-transform:none;color:inherit}
.tx-preview #consultation .tx-deadline-days .wow-odo .wow-reel,.tx-preview #consultation .tx-deadline-days .wow-odo i{height:.86em;line-height:.86}

/* ---------- Sheets: one section at a time ---------- */
html.wow-sheets-on,html.wow-sheets-on body{background:#060b24}
html.wow-sheets-on #main>.wow-sheet{position:sticky;top:min(var(--sheet-hdr,0px),calc(100vh - var(--sheet-h,100vh)));top:min(var(--sheet-hdr,0px),calc(100svh - var(--sheet-h,100svh)));z-index:var(--sheet-z);transform-origin:50% var(--sheet-oy,50%)}
html.wow-sheets-on #main>.wow-sheet-next{border-radius:34px 34px 0 0;overflow:clip;box-shadow:0 -30px 70px -24px #000000a6}
html.wow-sheets-measure #main>.wow-sheet{position:relative;top:auto}
.wow-sheet-shade{position:absolute;inset:0;z-index:80;pointer-events:none;background:#050b24;opacity:0;border-radius:inherit}
html.wow-sheets-on #main>.wow-sheet-covered{visibility:hidden}
html.wow-sheets-on .wow-band,html.wow-sheets-on #main>svg,html.wow-sheets-on .wow-comet{display:none}
@media(max-width:899px){html.wow-sheets-on #main>.wow-sheet-next{border-radius:24px 24px 0 0}}

/* ---------- Panels: one section at a time, with space between (default; ?sheets=1 brings back the stacked sheets) ---------- */
html.wow-panels-on,html.wow-panels-on body{background:#e8eef9}
html.wow-panels-on #main>section{margin:0 clamp(8px,1vw,16px);border-radius:clamp(22px,2.4vw,36px);overflow:clip;isolation:isolate;
 box-shadow:inset 0 1px 0 #ffffff80,0 30px 70px -48px #071d6659}
html.wow-panels-on #main>section+section{margin-top:clamp(12px,1.4vw,22px)}
html.wow-panels-on #main>section:first-child{margin-top:clamp(6px,.8vw,12px)}
html.wow-panels-on #main{padding-bottom:clamp(12px,1.4vw,22px)}
html.wow-panels-on .wow-band,html.wow-panels-on #main>svg,html.wow-panels-on .wow-comet{display:none}

/* ---------- The TAXSTRA wordmark, now behind the hero's final screen ---------- */
.tx-preview .tx-hero .film{isolation:isolate}
.wow-hero-word{position:absolute;left:0;right:0;bottom:-.1em;z-index:-1;display:flex;justify-content:center;pointer-events:none;user-select:none;white-space:nowrap;
 font:800 clamp(120px,21vw,400px)/.8 Barlow,Arial,sans-serif;letter-spacing:-.04em;text-transform:uppercase}
.wow-hero-word span{display:inline-block;transform-origin:50% 100%;color:rgb(213 255 131 / .14);-webkit-text-stroke:2px rgb(213 255 131 / .85);
 text-shadow:0 0 26px rgb(213 255 131 / .45);translate:0 70%;opacity:0;
 transition:translate 1.1s cubic-bezier(.16,1,.3,1) calc(var(--i) * 70ms),opacity .8s ease calc(var(--i) * 70ms)}
.tx-preview .tx-hero .film.is-final .wow-hero-word span{translate:0 0;opacity:.6}
/* once risen, a glow wave runs along the letters: opacity only, so the compositor does it without repainting */
.tx-preview .tx-hero .film.is-final .wow-hero-word.is-live span{will-change:opacity;animation:wowWordGlow 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * .3s)}
@keyframes wowWordGlow{0%,100%{opacity:.6}50%{opacity:1}}
@media(max-width:899px){.wow-hero-word{font-size:clamp(84px,27vw,150px);bottom:-.08em}}
@media(prefers-reduced-motion:reduce){.wow-hero-word span{transition:none}.tx-preview .tx-hero .film.is-final .wow-hero-word.is-live span{animation:none}}
