@charset "UTF-8";

[data-reveal]{
  opacity:0;
  will-change:transform,opacity;
  transition:
    opacity .95s var(--e-out),
    transform 1.05s var(--e-out),
    clip-path 1.1s var(--e-io),
    filter .95s var(--e-out);
  transition-delay:var(--rd,0ms);
}
[data-reveal="up"]      {transform:translateY(46px);}
[data-reveal="left"]    {transform:translateX(-52px);}
[data-reveal="right"]   {transform:translateX(52px);}
[data-reveal="pop"]     {transform:translateY(28px) scale(.94);}

[data-reveal].is-in{
  opacity:1;
  transform:none;
  filter:none;
  clip-path:inset(0 0 0 0);
}


.hero.is-live .hero__title .line > span{
  animation:lineUp 1.05s var(--e-out) forwards;
}
.hero.is-live .hero__title .line:nth-child(1) > span{animation-delay:.12s;}
.hero.is-live .hero__title .line:nth-child(2) > span{animation-delay:.24s;}
.hero.is-live .hero__title .line:nth-child(3) > span{animation-delay:.36s;}

@keyframes lineUp{
  from{transform:translateY(110%); opacity:0;}
  to  {transform:translateY(0);    opacity:1;}
}

.hero__pill,.hero__lead,.hero__actions,.hero__stats,.hero__visual,.scroll-hint{
  opacity:0; transform:translateY(28px);
}
.hero.is-live .hero__pill   {animation:fadeUp .9s .05s var(--e-out) forwards;}
.hero.is-live .hero__lead   {animation:fadeUp .9s .48s var(--e-out) forwards;}
.hero.is-live .hero__actions{animation:fadeUp .9s .60s var(--e-out) forwards;}
.hero.is-live .hero__stats  {animation:fadeUp .9s .72s var(--e-out) forwards;}
.hero.is-live .hero__visual {animation:fadeScale 1.25s .34s var(--e-out) forwards;}
.hero.is-live .scroll-hint  {animation:fadeUp .9s 1.15s var(--e-out) forwards;}

.hero__stats .stat{opacity:0; transform:translateY(18px);}
.hero.is-live .hero__stats .stat{animation:fadeUp .8s var(--e-out) forwards;}
.hero.is-live .hero__stats .stat:nth-child(1){animation-delay:.78s;}
.hero.is-live .hero__stats .stat:nth-child(2){animation-delay:.88s;}
.hero.is-live .hero__stats .stat:nth-child(3){animation-delay:.98s;}
.hero.is-live .hero__stats .stat:nth-child(4){animation-delay:1.08s;}

.float-card{opacity:0;}
.hero.is-live .float-card--a{animation:cardIn .8s .95s var(--e-spring) forwards, floaty 5.5s 1.75s var(--e-io) infinite;}
.hero.is-live .float-card--b{animation:cardIn .8s 1.10s var(--e-spring) forwards, floaty 6.6s 1.90s var(--e-io) infinite;}
.hero.is-live .float-card--c{animation:cardIn .8s 1.25s var(--e-spring) forwards, floaty 7.4s 2.05s var(--e-io) infinite;}

.marquee{opacity:0;}
.hero.is-live .marquee{animation:fadeUp .9s 1.3s var(--e-out) forwards;}

@keyframes fadeUp{
  from{opacity:0; transform:translateY(28px);}
  to  {opacity:1; transform:none;}
}
@keyframes fadeScale{
  from{opacity:0; transform:translateY(26px) scale(.94);}
  to  {opacity:1; transform:none;}
}
@keyframes cardIn{
  from{opacity:0; transform:translateY(22px) scale(.85);}
  to  {opacity:1; transform:none;}
}

@keyframes drift1{
  0%,100%{transform:translate3d(0,0,0) scale(1);}
  33%    {transform:translate3d(9vw,6vh,0) scale(1.14);}
  66%    {transform:translate3d(-4vw,11vh,0) scale(.92);}
}
@keyframes drift2{
  0%,100%{transform:translate3d(0,0,0) scale(1);}
  40%    {transform:translate3d(-10vw,-7vh,0) scale(1.18);}
  75%    {transform:translate3d(5vw,-3vh,0) scale(.9);}
}
@keyframes drift3{
  0%,100%{transform:translate3d(-50%,-50%,0) scale(1);}
  50%    {transform:translate3d(-38%,-64%,0) scale(1.25);}
}

@keyframes gradientPan{
  0%  {background-position:0% 50%;}
  100%{background-position:200% 50%;}
}

@keyframes spin{
  from{transform:rotate(0deg);}
  to  {transform:rotate(360deg);}
}
@keyframes spinBack{
  from{transform:rotate(0deg);}
  to  {transform:rotate(-360deg);}
}

@keyframes coreFloat{
  0%,100%{transform:translateY(0) scale(1);}
  50%    {transform:translateY(-11px) scale(1.02);}
}

@keyframes floaty{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%    {transform:translateY(-15px) rotate(-1.2deg);}
}

@keyframes breathe{
  0%,100%{transform:scale(1);}
  50%    {transform:scale(1.07);}
}

@keyframes pulseDot{
  0%,100%{box-shadow:0 0 0 3px rgba(36,80,228,.20); transform:scale(1);}
  50%    {box-shadow:0 0 0 6px rgba(36,80,228,.06); transform:scale(1.18);}
}

@keyframes livePing{
  0%  {box-shadow:0 0 0 0 rgba(124,243,160,.72);}
  70% {box-shadow:0 0 0 8px rgba(124,243,160,0);}
  100%{box-shadow:0 0 0 0 rgba(124,243,160,0);}
}

@keyframes scrollLine{
  0%  {transform:translateY(-100%);}
  60%,100%{transform:translateY(100%);}
}

@keyframes marquee{
  from{transform:translateX(0);}
  to  {transform:translateX(-50%);}
}

@keyframes ripple{
  to{transform:scale(2.6); opacity:0;}
}

@keyframes markPop{
  0%  {opacity:0; transform:translateY(16px) scale(.7) rotate(-14deg);}
  100%{opacity:1; transform:none;}
}
@keyframes letterUp{
  from{opacity:0; transform:translateY(18px) rotateX(-70deg);}
  to  {opacity:1; transform:none;}
}

.counting{font-variant-numeric:tabular-nums;}

@keyframes nudge{
  0%,100%{transform:translateX(0);}
  20%    {transform:translateX(-6px);}
  45%    {transform:translateX(5px);}
  70%    {transform:translateX(-3px);}
}

@keyframes drawRing{
  from{stroke-dashoffset:207;}
  to  {stroke-dashoffset:0;}
}
@keyframes drawCheck{
  from{stroke-dashoffset:42;}
  to  {stroke-dashoffset:0;}
}

