.landing{--dir:1;--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}[dir=rtl] .landing{--dir:-1}[dir=rtl] .landing :is(h1,h2,h3){letter-spacing:0}[dir=rtl] .landing h1{line-height:1.22}[dir=rtl] .landing h2{line-height:1.3}.landing-grid{pointer-events:none;--grid-ink:hsl(var(--border));--grid-x:74%;background-image:linear-gradient(var(--grid-ink) 1px, transparent 1px), linear-gradient(90deg, var(--grid-ink) 1px, transparent 1px);-webkit-mask-image:radial-gradient(ellipse 58% 72% at var(--grid-x) 46%, currentColor 18%, transparent 74%);-webkit-mask-image:radial-gradient(ellipse 58% 72% at var(--grid-x) 46%, currentColor 18%, transparent 74%);-webkit-mask-image:radial-gradient(ellipse 58% 72% at var(--grid-x) 46%, currentColor 18%, transparent 74%);mask-image:radial-gradient(ellipse 58% 72% at var(--grid-x) 46%, currentColor 18%, transparent 74%);background-size:56px 56px;position:absolute;inset:0}[dir=rtl] .landing-grid{--grid-x:26%}.landing-grid-deep{--grid-ink:hsl(var(--primary-deep-foreground) / .08);--grid-x:50%}.fan{gap:.75rem;display:grid;position:relative}.fan-card{position:relative}.fan-scan{overflow:hidden}@media (width>=640px){.fan{aspect-ratio:5/4;display:block}.fan-source,.fan-report{position:absolute;inset-inline-start:50%}.fan-source{z-index:1;width:46%;transform:translateX(calc(var(--dir) * -50%)) scale(.97);top:0}.fan-report{width:50%;top:30%}.fan-report-start{z-index:3;transform:translateX(calc(var(--dir) * -90%)) rotate(calc(var(--dir) * -4deg))}.fan-report-end{z-index:2;transform:translateX(calc(var(--dir) * -10%)) rotate(calc(var(--dir) * 4deg))}}.landing-fill{transform-origin:0}[dir=rtl] .landing-fill{transform-origin:100%}.landing-ring-svg{transform:rotate(-90deg)}[dir=rtl] .landing-ring-svg{transform:rotate(-90deg)scaleX(-1)}.landing-ring{stroke-dashoffset:var(--offset)}.landing-lift:hover,.landing-lift:focus-within{box-shadow:var(--shadow-lift);transform:translateY(-4px)}@media (prefers-reduced-motion:no-preference){.hero-in{animation:hero-in .9s var(--ease-out-quint) backwards;animation-delay:calc(var(--i,0) * 90ms)}@keyframes hero-in{0%{opacity:0;filter:blur(8px);transform:translateY(.45em)}}.fan-source,.fan-report{animation:hero-in .9s var(--ease-out-quint) backwards}.fan-source{animation-delay:.35s}.fan-report-start{animation-delay:.7s}.fan-report-end{animation-delay:.85s}@media (width>=640px){.fan-source{animation-name:fan-source-in;animation-duration:1s}.fan-report-start{animation-name:fan-start-in;animation-duration:1.2s;animation-delay:.9s}.fan-report-end{animation-name:fan-end-in;animation-duration:1.2s;animation-delay:1.02s}}@keyframes fan-source-in{0%{opacity:0;transform:translateX(calc(var(--dir) * -50%)) translateY(20px) scale(.93)}}@keyframes fan-start-in{0%{opacity:0;transform:translateX(calc(var(--dir) * -50%)) translateY(-8%) scale(.92) rotate(0deg)}}@keyframes fan-end-in{0%{opacity:0;transform:translateX(calc(var(--dir) * -50%)) translateY(-8%) scale(.92) rotate(0deg)}}.fan-scan:after{content:"";pointer-events:none;background:linear-gradient(to bottom, transparent, hsl(var(--accent) / .14), transparent);inset-inline:0;height:45%;animation:4.2s ease-in-out 2.4s infinite fan-scan;position:absolute;top:-45%}@keyframes fan-scan{to{transform:translateY(330%)}}.hero-ring .landing-ring{animation:ring-in 1.4s var(--ease-out-expo) 1.5s backwards}@keyframes ring-in{0%{stroke-dashoffset:var(--circ)}}.landing-js [data-reveal]:not([data-in]){opacity:0;will-change:opacity, transform, filter}.landing-js [data-reveal=up]:not([data-in]){filter:blur(6px);transform:translateY(20px)}.landing-js [data-reveal=start]:not([data-in]){transform:translateX(calc(var(--dir) * -36px));filter:blur(6px)}.landing-js [data-reveal=end]:not([data-in]){transform:translateX(calc(var(--dir) * 36px));filter:blur(6px)}.landing-js [data-reveal=scale]:not([data-in]){filter:blur(6px);transform:scale(.965)}.landing-js [data-reveal]{transition:opacity .8s var(--ease-out-quint), transform .8s var(--ease-out-quint), filter .8s var(--ease-out-quint);transition-delay:calc(var(--i,0) * 80ms)}.landing-fill{transition:transform 1.1s var(--ease-out-expo);transition-delay:calc(var(--i,0) * 90ms + .25s)}.landing-js [data-reveal]:not([data-in]) .landing-fill{transform:scaleX(0)}.landing-ring{transition:stroke-dashoffset 1.4s var(--ease-out-expo) .3s}.landing-js [data-reveal]:not([data-in]) .landing-ring{stroke-dashoffset:var(--circ)}.landing-lift{transition:transform .24s var(--ease-out-quint), box-shadow .24s var(--ease-out-quint)}}
