:root,:host{--ease-out:cubic-bezier(.16,1,.3,1);--ease-reveal:cubic-bezier(.33,1,.68,1);--ease-fade:cubic-bezier(.4,0,.2,1);--ease-standard:cubic-bezier(.2,0,0,1);--ease-exit:cubic-bezier(.4,0,1,1);--dur-fast:150ms;--dur-base:300ms;--dur-reveal:800ms;--reveal-y:30px;--stagger:100ms;--marquee-dur:40s}
@property --grow-at{syntax:'<length>';inherits:false;initial-value:0px}
.growing{mask-image:linear-gradient(#000 calc(var(--grow-at) - min(80px,var(--grow-at) - var(--grow-from),var(--grow-to) - var(--grow-at))),transparent calc(var(--grow-at) + var(--grow-gap)))}
.rv{--d:calc(var(--i,0) * var(--stagger))}
@media (prefers-reduced-motion:no-preference){.lp-js .rv,:host(.lp-js) .rv:not(.in){opacity:0}}
.rv.in{opacity:1;animation:reveal-y var(--dur-reveal) var(--ease-reveal) var(--d) backwards,reveal-fade var(--dur-reveal) var(--ease-fade) var(--d) backwards}
.rv.in.first-view{animation-timing-function:var(--ease-out)}
.rv.in.instant{animation:none}
@keyframes reveal-y{from{transform:translateY(var(--reveal-y))}}
@keyframes reveal-fade{from{opacity:0}}
.arrive{--from:.3s;opacity:0;transform:translateY(var(--reveal-y));animation:arrive var(--dur-reveal) var(--ease-reveal) forwards;animation-delay:calc(var(--from) + var(--i,0) * var(--stagger))}
@keyframes arrive{to{opacity:1;transform:none}}
.fill-text{background-image:linear-gradient(90deg,var(--primary-main) 0 50%,var(--ink) 50% 100%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:fill-text var(--dur-reveal) var(--ease-reveal) var(--dur-reveal) forwards}
@keyframes fill-text{to{background-position:0 0}}
.marquee-track{display:flex;width:max-content;animation:marquee var(--marquee-dur) linear infinite}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes pop-in{0%{opacity:0;transform:translateY(16px)}100%{opacity:1;transform:none}}
.has-ind{position:relative;isolation:isolate}
.has-ind::before{content:"";position:absolute;left:var(--ind-x,0);top:var(--ind-y,0);z-index:-1;box-sizing:border-box;width:var(--ind-w,0);height:var(--ind-h,0);border:var(--ind-border,0);border-radius:var(--ind-r);background:var(--ind-bg);box-shadow:var(--ind-ring,none);transition:left var(--dur-base) var(--ease-standard),top var(--dur-base) var(--ease-standard),width var(--dur-base) var(--ease-standard),height var(--dur-base) var(--ease-standard)}
.has-ind.ind-still::before{transition:none}
.xf-box{position:relative}
.xf-ghost,.xf-pin{position:absolute!important;grid-area:auto!important;margin:0!important;box-sizing:border-box!important}
.xf-ghost{pointer-events:none}
.xf-ghost,.xf-ghost *{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.rv,.rv.in,.arrive{opacity:1;transform:none;animation:none}
.fill-text{animation:none;background-position:0 0}
.marquee-track{animation:none}
.has-ind::before{transition:none}}
