@media (prefers-reduced-motion:no-preference){@keyframes text-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.text-shimmer{background-image:linear-gradient(90deg, currentColor 35%, color-mix(in oklch, currentColor 40%, transparent) 50%, currentColor 65%);-webkit-text-fill-color:transparent;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite text-shimmer}[dir=rtl] .text-shimmer{animation-direction:reverse}}.media-dots{background-image:radial-gradient(color-mix(in oklch, var(--foreground) 16%, transparent) 1.2px, transparent 1.4px);background-size:20px 20px;position:absolute;inset:0}.media-dots:nth-child(2){background-position:10px 0;animation-delay:-.8s}.media-dots:nth-child(3){background-position:0 10px;animation-delay:-1.6s}.media-dots:nth-child(4){background-position:10px 10px;animation-delay:-2.4s}.media-patch{background:radial-gradient(closest-side, transparent, var(--muted) 75%);position:absolute;inset:-30%}@media (prefers-reduced-motion:no-preference){@keyframes media-blink{0%,to{opacity:.15}50%{opacity:1}}@keyframes media-wander{0%,to{transform:translate(-20%,-10%)}33%{transform:translate(25%,15%)}66%{transform:translate(-5%,30%)}}.media-dots{animation-name:media-blink;animation-duration:3.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.media-patch{animation:14s cubic-bezier(.45,0,.55,1) infinite media-wander}}.grain-near{transform:translate3d(calc(var(--grain-x,0) * var(--grain-near,22px)), calc(var(--grain-y,0) * var(--grain-near,22px)), 0)}.grain-far{transform:translate3d(calc(var(--grain-x,0) * var(--grain-far,8px) * -1), calc(var(--grain-y,0) * var(--grain-far,8px) * -1), 0)}.grain-light{opacity:var(--grain-light,0);background:radial-gradient(var(--grain-light-size,380px) circle at var(--grain-light-x,50%) var(--grain-light-y,50%), #ffffff4d 0%, #fff0 70%)}.grain-film{mix-blend-mode:overlay;opacity:.5;background-image:url(/images/home/grain.webp);background-size:256px 256px}@media (prefers-reduced-motion:no-preference){@keyframes grain-wander{0%{transform:translate(0,0)scale(1)}33%{transform:translate(3%,-2%)scale(1.05)}66%{transform:translate(-2.5%,2.5%)scale(.97)}to{transform:translate(2%,1.5%)scale(1.03)}}.grain-patches{animation:24s cubic-bezier(.45,0,.55,1) infinite alternate grain-wander}.grain-patches[data-pace=quick]{animation-duration:20s}.grain-patches[data-pace=slow]{animation-duration:28s;animation-direction:alternate-reverse}.grain[data-resting] .grain-patches{animation-play-state:paused}}
