/* FullRoute motion layer: the live route network behind page heroes, headline reveals,
   cursor-lit cards, tilting mockups, the scroll progress bar, the ⌘K jump menu, the
   mobile call-to-action bar and page transitions. fx.js adds the classes this file
   styles; with "reduce motion" on (or without JS) everything shows in its final state. */

@property --fx-ang{syntax:"<angle>";inherits:false;initial-value:0deg}

/* page transitions (browsers that support cross-page view transitions) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:fx-out .22s var(--ease) both}
::view-transition-new(root){animation:fx-in .38s var(--ease) both}
@keyframes fx-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes fx-in{from{opacity:0;transform:translateY(10px)}}
.site-header{view-transition-name:fx-header}

/* scroll progress */
.fx-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;pointer-events:none;transform-origin:0 50%;transform:scaleX(var(--fx-p,0));
  background:linear-gradient(90deg,var(--accent),#8B5CF6 55%,var(--hl))}

/* header: tighter and lifted once the page scrolls, tucked away while reading down */
.site-header{transition:transform .35s var(--ease),box-shadow .3s,background .3s}
.site-header.fx-scrolled{box-shadow:0 10px 30px -18px rgba(11,18,32,.35);background:color-mix(in srgb,var(--bg) 90%,transparent)}
.site-header.fx-scrolled .wrap{padding-block:8px}
.site-header.fx-hide{transform:translateY(-110%)}
.site-header .wrap{transition:padding .3s var(--ease)}

/* hero backdrops: drifting aurora + live route network canvas */
.fx-stage{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.fx-aurora{position:absolute;inset:-20%;filter:blur(60px);opacity:.85}
.fx-aurora i{position:absolute;border-radius:50%;mix-blend-mode:normal;animation:fx-drift 22s ease-in-out infinite alternate}
.fx-aurora i:nth-child(1){width:46vmax;height:46vmax;right:-6%;top:-8%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 30%,transparent),transparent 65%)}
.fx-aurora i:nth-child(2){width:34vmax;height:34vmax;left:30%;top:30%;background:radial-gradient(circle,color-mix(in srgb,#8B5CF6 18%,transparent),transparent 65%);animation-duration:28s;animation-delay:-6s}
.fx-aurora i:nth-child(3){width:26vmax;height:26vmax;left:-4%;bottom:-10%;background:radial-gradient(circle,color-mix(in srgb,var(--hl) 16%,transparent),transparent 65%);animation-duration:34s;animation-delay:-12s}
@keyframes fx-drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-6%,4%,0) scale(1.08)}100%{transform:translate3d(5%,-5%,0) scale(.96)}}
.fx-net{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s var(--ease)}
.fx-net.on{opacity:1}
.fx-grain{position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero > .wrap,.page-hero > .wrap{position:relative}
/* the old static glow is replaced by the aurora */
.fx-ready .hero::after,.fx-ready .page-hero::after{opacity:0}

/* headline reveal: words rise out of a mask, highlights sweep in after */
.fx-words .fx-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.fx-words .fx-w > span{display:inline-block;transform:translateY(105%);opacity:0;filter:blur(6px);
  transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .6s,filter .8s;transition-delay:calc(var(--d,0) * 55ms + 60ms)}
.fx-words.fx-in .fx-w > span{transform:none;opacity:1;filter:none}
.fx-words mark{background-size:0 100%;background-repeat:no-repeat;transition:background-size 1s cubic-bezier(.65,0,.35,1) .55s}
.fx-words.fx-in mark{background-size:100% 100%}
.hero h1.fx-words mark,.page-hero h1.fx-words mark{transition-delay:.9s}

/* staggered grids: children arrive one after another */
.js .reveal.fx-stagger{opacity:1;transform:none}
.js .fx-stagger > *{opacity:0;transform:translateY(26px) scale(.98);filter:blur(5px);
  transition:opacity .7s var(--ease),transform .8s cubic-bezier(.16,1,.3,1),filter .7s var(--ease);transition-delay:calc(var(--i,0) * 75ms)}
.js .fx-stagger.in > *{opacity:1;transform:none;filter:none}
.js .fx-stagger.fx-done > *{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s,opacity .3s;transition-delay:0s}
.js .reveal:not(.fx-stagger){filter:blur(4px);transition:opacity .8s var(--ease),transform .9s cubic-bezier(.16,1,.3,1),filter .8s var(--ease)}
.js .reveal.in:not(.fx-stagger){filter:none}

/* cursor-lit cards: a soft light follows the pointer, the edge catches it */
.fx-lit{--mx:50%;--my:50%}
.fx-spot,.fx-edge{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;z-index:0}
.fx-spot{background:radial-gradient(520px circle at var(--mx) var(--my),color-mix(in srgb,var(--accent) 10%,transparent),transparent 42%)}
.fx-edge{padding:1px;background:radial-gradient(320px circle at var(--mx) var(--my),color-mix(in srgb,var(--accent) 75%,transparent),transparent 60%);
  -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)}
.fx-lit:hover > .fx-spot,.fx-lit:hover > .fx-edge,.fx-lit.fx-touch > .fx-spot,.fx-lit.fx-touch > .fx-edge{opacity:1}
.fx-lit.fx-touch > .fx-spot,.fx-lit.fx-touch > .fx-edge{transition:opacity .6s}
.product.dark .fx-spot,.band .fx-spot{background:radial-gradient(520px circle at var(--mx) var(--my),rgba(255,255,255,.07),transparent 42%)}
.product.dark .fx-edge,.band .fx-edge{background:radial-gradient(320px circle at var(--mx) var(--my),rgba(255,201,60,.6),transparent 60%)}
.fx-lit > :not(.fx-spot):not(.fx-edge){position:relative;z-index:1}
.card,.step,.promise > div,.stats > div,.ba-col,.founder{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.card.fx-lit:hover,.promise > div.fx-lit:hover,.ba-col.fx-lit:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}

/* tilting mockups */
.fx-tilt{transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);transform-style:preserve-3d;will-change:transform}
.fx-tilt-glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:5;opacity:0;transition:opacity .4s;
  background:radial-gradient(600px circle at var(--gx,50%) var(--gy,0%),rgba(255,255,255,.22),transparent 45%);mix-blend-mode:soft-light}
.fx-tilt:hover .fx-tilt-glare{opacity:1}

/* floating chips around the home route card */
.fx-float-wrap{position:relative}
.fx-chip{position:absolute;z-index:6;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,transparent);
  border:1px solid var(--line);box-shadow:var(--shadow-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:.8rem;line-height:1.25;white-space:nowrap;
  animation:fx-bob 6s ease-in-out infinite;translate:0 var(--py,0px);transition:translate .2s linear}
.fx-chip b{display:block;font-size:.84rem}
.fx-chip small{color:var(--muted);font-family:var(--mono);font-size:.66rem;letter-spacing:.04em}
.fx-chip .dot{flex:none;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.fx-chip .dot svg{width:16px;height:16px}
.fx-chip.c1{left:-34px;top:16%}
.fx-chip.c2{right:-26px;bottom:24%;animation-delay:-3s}
.fx-chip.c2 .dot{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
@keyframes fx-bob{50%{transform:translateY(-10px)}}
@media (max-width:1100px){.fx-chip.c1{left:-12px}.fx-chip.c2{right:-8px}}
@media (max-width:620px){.fx-chip{display:none}}

/* buttons: light sweep, magnetic pull, living border on the main calls to action */
.btn:not(.ghost),.btn:not(.ghost):hover{background-image:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.32) 48%,transparent 66%);background-size:260% 100%;background-repeat:no-repeat;background-position:130% 0}
.btn:not(.ghost):hover{background-position:-30% 0;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,background-position .8s var(--ease)}
.btn.fx-mag{transition:transform .25s cubic-bezier(.2,.9,.3,1.3),box-shadow .2s var(--ease),background-color .2s,background-position .8s var(--ease)}
.fx-ring{position:relative;isolation:isolate}
.fx-ring::before{content:"";position:absolute;inset:-3px;border-radius:inherit;z-index:-1;padding:2px;
  background:conic-gradient(from var(--fx-ang),transparent 0 62%,var(--hl) 74%,#8B5CF6 84%,var(--accent) 94%,transparent);animation:fx-spin 4s linear infinite;
  -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)}
@keyframes fx-spin{to{--fx-ang:360deg}}

/* bands: a light runs along the top edge */
.band > .fx-beam,.cta-final .box > .fx-beam{position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;overflow:hidden;z-index:1}
.fx-beam::after{content:"";position:absolute;top:0;width:30%;height:100%;left:-30%;background:linear-gradient(90deg,transparent,var(--hl),#fff,transparent);animation:fx-beam 7s cubic-bezier(.6,0,.4,1) infinite}
@keyframes fx-beam{0%{left:-30%}60%,100%{left:100%}}

/* eyebrow labels decode like a terminal readout */
.eyebrow.fx-decoding{font-variant-numeric:tabular-nums}

/* ⌘K jump menu */
.fx-k-btn{display:inline-flex;align-items:center;gap:6px;font:500 .8rem var(--mono);color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 10px;cursor:pointer;margin-left:6px;transition:color .15s,border-color .15s}
.fx-k-btn:hover{color:var(--ink);border-color:var(--line-2)}
.fx-k-btn svg{width:14px;height:14px}
.fx-k-btn kbd{font:inherit;font-size:.72rem;opacity:.8}
@media (max-width:1180px) and (min-width:1021px){.fx-k-btn kbd{display:none}}
@media (max-width:1020px){.fx-k-btn{margin:8px 0 0;justify-content:center;padding:12px;font-size:.92rem}}
.fx-k{position:fixed;inset:0;z-index:200;display:grid;place-items:start center;padding:12vh 16px 16px;background:color-mix(in srgb,var(--band) 45%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transition:opacity .2s,visibility 0s .2s}
.fx-k.open{opacity:1;visibility:visible;transition:opacity .2s}
.fx-k-box{width:min(620px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg),0 0 0 1px color-mix(in srgb,var(--accent) 15%,transparent);overflow:hidden;
  transform:translateY(-10px) scale(.98);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.fx-k.open .fx-k-box{transform:none}
.fx-k-in{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.fx-k-in svg{width:18px;height:18px;color:var(--muted);flex:none}
.fx-k-in input{flex:1;min-width:0;border:0;outline:0;background:none;font:500 1.06rem var(--body);color:var(--ink)}
.fx-k-in kbd{font:500 .7rem var(--mono);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 6px}
.fx-k-list{list-style:none;margin:0;padding:8px;max-height:min(420px,56vh);overflow-y:auto}
.fx-k-list .grp{font:500 .66rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:10px 12px 4px}
.fx-k-list a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}
.fx-k-list a i{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);color:var(--accent);font-style:normal}
.fx-k-list a i svg{width:16px;height:16px}
.fx-k-list a span{flex:1;min-width:0}
.fx-k-list a small{display:block;color:var(--muted);font-size:.8rem}
.fx-k-list a[aria-selected="true"]{background:var(--accent-soft)}
.fx-k-list a[aria-selected="true"]::after{content:"↵";font:500 .8rem var(--mono);color:var(--accent)}
.fx-k-empty{padding:22px;text-align:center;color:var(--muted)}
.fx-k-foot{display:flex;gap:16px;padding:10px 18px;border-top:1px solid var(--line);font:500 .68rem var(--mono);color:var(--muted);background:var(--surface-2)}

/* mobile call-to-action bar */
.fx-dock{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:60;display:none;align-items:center;gap:10px;padding:8px 8px 8px 16px;border-radius:999px;
  background:color-mix(in srgb,var(--band) 92%,transparent);color:#fff;box-shadow:0 18px 40px -12px rgba(0,0,0,.5);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transform:translateY(140%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.fx-dock.show{transform:none}
.fx-dock p{flex:1;min-width:0;font-size:.84rem;line-height:1.25;color:rgba(255,255,255,.8)}
.fx-dock p b{color:#fff;display:block;font-size:.9rem}
.fx-dock .btn{padding:11px 16px;font-size:.88rem}
.fx-dock button.x{flex:none;width:30px;height:30px;border-radius:50%;border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;font-size:1rem;line-height:1}
@media (max-width:760px){.fx-dock{display:flex}}

/* footer: live Atlanta clock + oversized wordmark */
.fx-foot-live{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--muted);margin-top:16px}
.fx-foot-live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 60%,transparent);animation:ping 1.8s infinite}
.fx-wordmark{display:block;margin-top:44px;padding-bottom:.06em;font-family:var(--display);font-weight:700;letter-spacing:-.06em;line-height:.8;font-size:clamp(4rem,17vw,15rem);text-align:center;user-select:none;
  color:transparent;-webkit-text-stroke:1px var(--line-2);background:linear-gradient(90deg,var(--accent),#8B5CF6,var(--hl)) 0 0/0% 100% no-repeat;-webkit-background-clip:text;background-clip:text;
  transition:background-size 1.4s cubic-bezier(.65,0,.35,1)}
.fx-wordmark.in{background-size:100% 100%}

/* scroll story (home): one lead travels search → site → call → booked → review */
.story{padding-block:104px 40px}
.story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:64px;align-items:start}
.story-steps{display:flex;flex-direction:column}
.story-step{min-height:72vh;display:flex;flex-direction:column;justify-content:center;gap:12px;padding-left:28px;position:relative;opacity:.32;transition:opacity .5s var(--ease)}
.story-step::before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:3px;background:linear-gradient(var(--accent),var(--hl));transform:translateY(-50%);transition:height .6s var(--ease)}
.story-step.on{opacity:1}
.story-step.on::before{height:70%}
.story-step .n{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.story-step h3{font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.03em}
.story-step p{color:var(--muted);max-width:30em}
.story-stage{position:sticky;top:calc(50vh - 300px);height:600px;display:grid;place-items:center}
.story-meter{position:absolute;left:-28px;top:40px;bottom:40px;width:2px;background:var(--line);border-radius:2px}
.story-meter i{position:absolute;left:0;top:0;width:100%;height:var(--sp,0%);background:linear-gradient(var(--accent),var(--hl));border-radius:2px;transition:height .2s linear}
.sphone{position:relative;width:290px;height:590px;border-radius:46px;background:#0B1220;padding:11px;box-shadow:var(--shadow-lg),0 0 0 1px rgba(255,255,255,.06) inset,0 60px 120px -40px color-mix(in srgb,var(--accent) 45%,transparent)}
.sphone::before{content:"";position:absolute;top:20px;left:50%;width:84px;height:24px;border-radius:14px;background:#000;transform:translateX(-50%);z-index:9}
.sscreen{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;background:#fff;color:#0B1220;font-size:13px;line-height:1.35}
.sview{position:absolute;inset:0;padding:54px 16px 16px;display:flex;flex-direction:column;gap:10px;opacity:0;transform:translateY(16px) scale(.98);transition:opacity .5s var(--ease),transform .6s cubic-bezier(.16,1,.3,1);pointer-events:none}
.sview.on{opacity:1;transform:none}
.sview.v-search .bar{display:flex;align-items:center;gap:8px;border:1px solid #DFE4EE;border-radius:999px;padding:10px 14px;font-size:13px;box-shadow:0 2px 8px rgba(11,18,32,.06)}
.sview.v-search .bar::before{content:"";width:12px;height:12px;border:2px solid #55607A;border-radius:50%;flex:none}
.sview .typed::after{content:"";display:inline-block;width:1.5px;height:14px;background:#2B5BFF;margin-left:1px;vertical-align:-2px;animation:pulse 1s steps(1) infinite}
.sview .res{border:1px solid #E5E9F2;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px}
.sview .res.dim{opacity:.45}
.sview .res b{font-size:14px}
.sview .res .st{color:#B86E00;letter-spacing:1px}
.sview .res .acts{display:flex;gap:6px;margin-top:6px}
.sview .res .acts span{flex:1;text-align:center;padding:6px 0;border-radius:999px;background:#EEF1F7;font-size:11px;font-weight:600;color:#26314D}
.sview .res .acts span.hot{background:#2B5BFF;color:#fff;box-shadow:0 0 0 0 rgba(43,91,255,.5);animation:fx-tap 1.6s infinite}
@keyframes fx-tap{70%{box-shadow:0 0 0 10px rgba(43,91,255,0)}}
.sview.v-site{padding:0;gap:0;background:#F6F7FB}
.sview.v-site .s-hero{padding:58px 16px 18px;background:linear-gradient(160deg,#0B1220,#1A2B5A);color:#fff;display:flex;flex-direction:column;gap:8px}
.sview.v-site .s-hero b{font-family:var(--display);font-size:20px;line-height:1.1;letter-spacing:-.02em}
.sview.v-site .s-hero small{color:#FFC93C}
.sview.v-site .s-hero i{font-style:normal;align-self:flex-start;background:#FFC93C;color:#0B1220;font-weight:700;padding:8px 14px;border-radius:999px;font-size:12px}
.sview.v-site .s-sv{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px}
.sview.v-site .s-sv span{background:#fff;border:1px solid #DFE4EE;border-radius:10px;padding:10px;font-weight:600;font-size:12px}
.sview.v-site .s-rev{margin:0 16px;background:#fff;border:1px solid #DFE4EE;border-radius:12px;padding:10px;font-size:12px;color:#55607A}
.sview.v-site .s-call{position:absolute;left:12px;right:12px;bottom:14px;text-align:center;background:#2B5BFF;color:#fff;border-radius:999px;padding:11px;font-weight:700;font-size:13px;animation:fx-tap 1.6s infinite}
.sview.v-site .s-load{position:absolute;top:44px;left:0;height:2px;background:#FFC93C;width:0}
.sview.v-site.on .s-load{animation:fx-load 1.1s var(--ease) forwards}
@keyframes fx-load{to{width:100%;opacity:0}}
.sview.v-call{background:linear-gradient(170deg,#0B1220,#121B30);color:#EEF2FA}
.sview.v-call .who{text-align:center;margin-top:18px;display:flex;flex-direction:column;gap:4px}
.sview.v-call .who b{font-size:19px;font-family:var(--display)}
.sview.v-call .who small{color:#97A3BD;font-family:var(--mono);font-size:10px;letter-spacing:.1em}
.sview.v-call .wave{display:flex;justify-content:center;align-items:center;gap:3px;height:34px;margin:6px 0}
.sview.v-call .wave i{width:3px;border-radius:3px;background:#4B73FF;height:30%;animation:fx-wave 1s ease-in-out infinite}
.sview.v-call .wave i:nth-child(2n){animation-delay:-.3s}.sview.v-call .wave i:nth-child(3n){animation-delay:-.55s;background:#FFC93C}
@keyframes fx-wave{50%{height:100%}}
.sview.v-call .bub{max-width:85%;padding:8px 11px;border-radius:14px;font-size:12px}
.sview.v-call .bub.ai{background:rgba(75,115,255,.22);align-self:flex-start;border-bottom-left-radius:4px}
.sview.v-call .bub.me{background:rgba(255,255,255,.1);align-self:flex-end;border-bottom-right-radius:4px}
.sview.v-call .bub{opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}
.sview.v-call.on .bub{opacity:1;transform:none}
.sview.v-call.on .bub:nth-of-type(2){transition-delay:.5s}.sview.v-call.on .bub:nth-of-type(3){transition-delay:1.1s}.sview.v-call.on .bub:nth-of-type(4){transition-delay:1.7s}
.sview.v-booked{background:#F6F7FB}
.sview .note{background:#fff;border-radius:16px;padding:12px;box-shadow:0 8px 24px -10px rgba(11,18,32,.25);display:flex;gap:10px;align-items:flex-start;opacity:0;transform:translateY(-12px);transition:opacity .45s,transform .5s cubic-bezier(.16,1,.3,1)}
.sview.on .note{opacity:1;transform:none}
.sview.on .note:nth-of-type(2){transition-delay:.45s}.sview.on .note:nth-of-type(3){transition-delay:.9s}
.sview .note i{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#2B5BFF;color:#fff;font-style:normal;font-weight:700;font-size:12px}
.sview .note i.y{background:#FFC93C;color:#0B1220}.sview .note i.g{background:#0F9D63}
.sview .note b{display:block;font-size:12.5px}
.sview .note span{font-size:11.5px;color:#55607A}
.sview .lock-time{text-align:center;font-family:var(--display);font-size:46px;font-weight:600;letter-spacing:-.03em;color:#0B1220;margin:4px 0 6px}
.sview.v-review .stars-big{font-size:30px;letter-spacing:4px;color:#FFC93C;text-align:center;margin-top:10px}
.sview.v-review .stars-big span{display:inline-block;transform:scale(0);transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.sview.v-review.on .stars-big span{transform:none}
.sview.v-review.on .stars-big span:nth-child(2){transition-delay:.12s}.sview.v-review.on .stars-big span:nth-child(3){transition-delay:.24s}.sview.v-review.on .stars-big span:nth-child(4){transition-delay:.36s}.sview.v-review.on .stars-big span:nth-child(5){transition-delay:.48s}
.sview.v-review .quote{background:#fff;border:1px solid #DFE4EE;border-radius:14px;padding:12px;font-size:12.5px}
.sview.v-review .quote b{display:block;margin-bottom:4px}
.story-cap{font-size:.78rem;color:var(--muted);text-align:center;margin-top:14px}
@media (max-width:900px){
  .story{padding-block:72px 24px}
  .story-grid{grid-template-columns:1fr;gap:0}
  .story-stage{order:-1;top:calc(env(safe-area-inset-top,0px) + 58px);height:auto;z-index:2;padding:8px 0 10px;background:var(--bg)}
  .story-stage::after{content:"";position:absolute;left:0;right:0;top:100%;height:36px;background:linear-gradient(var(--bg),transparent);pointer-events:none}
  .story-meter{display:none}
  .sphone{transform:scale(.5);transform-origin:top center;margin-bottom:-295px}
  .story-step{min-height:0;padding:24px 0 104px 20px;justify-content:flex-start;opacity:.55}
  .story-step::before{top:24px;transform:none}
  .story-step.on::before{height:calc(100% - 128px)}
}
@media (prefers-color-scheme:dark){
  .sphone{box-shadow:var(--shadow-lg),0 0 0 1px rgba(255,255,255,.1),0 60px 120px -40px color-mix(in srgb,var(--accent) 55%,transparent)}
  .fx-wordmark{-webkit-text-stroke-color:var(--line-2)}
}

/* reduce motion: everything still arrives, by fading in place; nothing slides, tilts or floats */
@media (prefers-reduced-motion:reduce){
  .fx-words .fx-w > span{transform:none;filter:none;transition:opacity .9s ease;transition-delay:calc(var(--d,0) * 45ms + 60ms)}
  .js .fx-stagger > *{transform:none;filter:none;transition:opacity .8s ease;transition-delay:calc(var(--i,0) * 70ms)}
  .js .reveal:not(.fx-stagger){filter:none;transform:none}
  .fx-tilt{transform:none!important}
  .fx-aurora i,.fx-chip,.fx-ring::before,.sview .res .acts span.hot,.sview.v-site .s-call{animation:none}
  .sview,.sview.on{transform:none}
  .story-step::before{transition:height .4s ease}
  .fx-dock{transform:none;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}
  .fx-dock.show{opacity:1;visibility:visible;transition:opacity .3s}
  .site-header.fx-hide{transform:none}
  ::view-transition-old(root),::view-transition-new(root){animation-name:fx-fade}
}
@keyframes fx-fade{from{opacity:0}}
