html:has(.landing-root){scroll-behavior:smooth}.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.js .reveal[data-on]{opacity:1;transform:none}.landing-aurora{position:absolute;inset:-10% -10% auto -10%;height:120%;pointer-events:none;overflow:hidden}.landing-aurora:before,.landing-aurora:after{content:"";position:absolute;border-radius:9999px;will-change:transform}.landing-aurora:before{width:70vmax;height:70vmax;left:40%;top:-25%;background:radial-gradient(closest-side,hsl(var(--secondary) / .3),transparent);animation:aurora-a 18s ease-in-out infinite alternate}.landing-aurora:after{width:55vmax;height:55vmax;left:-15%;top:15%;background:radial-gradient(closest-side,hsl(var(--accent) / .28),transparent);animation:aurora-b 22s ease-in-out infinite alternate}@keyframes aurora-a{to{transform:translate3d(-10%,8%,0) scale(1.08)}}@keyframes aurora-b{to{transform:translate3d(12%,-6%,0) scale(.94)}}.hero-underline{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s .5s cubic-bezier(.65,0,.35,1) forwards}@keyframes draw{to{stroke-dashoffset:0}}.landing-tap{animation:tap-in .35s cubic-bezier(.22,1,.36,1) both}@keyframes tap-in{0%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.landing-dot{animation:landing-dot 1s ease-in-out infinite}@keyframes landing-dot{0%,80%,to{transform:translateY(0);opacity:.45}40%{transform:translateY(-3px);opacity:1}}.landing-caret{animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.landing-check-ring,.landing-check-mark{fill:none;stroke:hsl(var(--primary));stroke-dasharray:1;stroke-dashoffset:1}.landing-check-ring{stroke-width:3;transform:rotate(-90deg);transform-origin:center}.landing-check-mark{stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.landing-check:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9999px;background:hsl(var(--primary) / .12);transform:scale(.6);opacity:0}.landing-check.is-on:before{animation:pop-in .7s .15s cubic-bezier(.22,1,.36,1) forwards}.landing-check.is-on .landing-check-ring{animation:draw .6s .1s cubic-bezier(.65,0,.35,1) forwards}.landing-check.is-on .landing-check-mark{animation:draw .45s .55s cubic-bezier(.65,0,.35,1) forwards}.landing-tab-fill{width:100%;transform:scaleX(0);transform-origin:left;animation-name:tab-fill;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes tab-fill{to{transform:scaleX(1)}}.landing-film-bar{transform:scaleX(clamp(0,calc(var(--film-p, 0) * var(--n) - var(--i)),1))}.landing-marquee{animation:marquee 36s linear infinite}@keyframes marquee{to{transform:translate3d(-50%,0,0)}}.landing-shine{position:relative;overflow:hidden;isolation:isolate}.landing-shine:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,hsl(0 0% 100% / .4) 50%,transparent 70%);transform:translate(-120%);animation:shine 5s 1.8s ease-in-out infinite}.landing-shine.landing-shine-dark:after{background:linear-gradient(110deg,transparent 30%,hsl(var(--primary) / .2) 50%,transparent 70%)}@keyframes shine{0%{transform:translate(-120%)}35%,to{transform:translate(120%)}}.landing-glow-border{border:2px solid transparent;background:linear-gradient(hsl(var(--background)),hsl(var(--background))) padding-box,conic-gradient(from var(--angle, 0deg),hsl(var(--primary)),hsl(var(--secondary)),hsl(var(--accent)),hsl(var(--primary))) border-box;animation:spin-angle 6s linear infinite}@property --angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes spin-angle{to{--angle: 360deg}}.landing-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:44px;background:transparent;cursor:pointer;touch-action:pan-y}.landing-range::-webkit-slider-runnable-track{height:6px;border-radius:9999px;background:linear-gradient(to right,hsl(var(--accent)) var(--fill, 50%),hsl(0 0% 100% / .15) var(--fill, 50%))}.landing-range::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-10px;border-radius:9999px;background:#fff;box-shadow:0 2px 10px #00000059,0 0 0 6px hsl(var(--accent) / .25)}.landing-range::-moz-range-track{height:6px;border-radius:9999px;background:#ffffff26}.landing-range::-moz-range-progress{height:6px;border-radius:9999px;background:hsl(var(--accent))}.landing-range::-moz-range-thumb{width:26px;height:26px;border:0;border-radius:9999px;background:#fff;box-shadow:0 2px 10px #00000059,0 0 0 6px hsl(var(--accent) / .25)}.landing-range:focus-visible{outline:2px solid hsl(var(--accent));outline-offset:4px;border-radius:8px}.feat-stamp{opacity:0;transform:scale(1.6) rotate(-12deg)}.feat[data-on] .feat-stamp{animation:stamp .5s .7s cubic-bezier(.22,1.4,.36,1) forwards}@keyframes stamp{to{opacity:1;transform:scale(1) rotate(-6deg)}}.feat[data-on] .feat-typing{animation:fade-out .25s 1.2s forwards}.feat-bubble{opacity:0;transform:translateY(6px) scale(.96);transform-origin:top left}.feat[data-on] .feat-bubble{animation:pop-in .45s 1.35s cubic-bezier(.22,1,.36,1) forwards}.feat-ticks{color:hsl(var(--muted-foreground))}.feat[data-on] .feat-ticks{animation:tick-color .3s 2.2s forwards}@keyframes tick-color{to{color:hsl(var(--primary))}}.feat-cursor{left:62%;top:110%;opacity:0}.feat[data-on] .feat-cursor{animation:cursor .9s .4s cubic-bezier(.22,1,.36,1) forwards}@keyframes cursor{0%{opacity:0;transform:translate(26px,26px)}to{opacity:1;transform:translate(-6px,-26px)}}.feat[data-on] .feat-link{animation:press .3s 1.35s ease-out}@keyframes press{50%{transform:scale(.94)}}.feat-toast{opacity:0;transform:translate(-50%,8px)}.feat[data-on] .feat-toast{animation:toast .45s 1.65s cubic-bezier(.22,1,.36,1) forwards}@keyframes toast{to{opacity:1;transform:translate(-50%)}}.feat-scan{animation:scan 2.2s ease-in-out infinite alternate}.feat:not([data-on]) .feat-scan{animation-play-state:paused}@keyframes scan{to{transform:translateY(92px)}}.feat-cancel{position:relative}.feat-cancel:after{content:"";position:absolute;left:12px;right:12px;top:50%;height:1px;background:hsl(var(--muted-foreground));transform:scaleX(0);transform-origin:left}.feat[data-on] .feat-cancel{animation:dim .4s .8s forwards}.feat[data-on] .feat-cancel:after{animation:strike .4s .8s forwards}@keyframes dim{to{opacity:.5}}@keyframes strike{to{transform:scaleX(1)}}.feat-fill{opacity:0;transform:translateY(10px)}.feat[data-on] .feat-fill{animation:pop-in .5s 1.3s cubic-bezier(.22,1,.36,1) forwards}.feat-seal svg{opacity:0}.feat[data-on] .feat-seal{animation:seal .35s cubic-bezier(.22,1.4,.36,1) forwards}.feat[data-on] .feat-seal svg{animation:fade-in .2s forwards;animation-delay:inherit}@keyframes seal{0%{transform:scale(.6)}to{transform:scale(1);background:hsl(var(--primary));border-style:solid;border-color:hsl(var(--primary))}}.feat-giftcard:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 35%,hsl(0 0% 100% / .35) 50%,transparent 65%);transform:translate(-120%)}.feat[data-on] .feat-giftcard{animation:float 3.5s ease-in-out infinite alternate}.feat[data-on] .feat-giftcard:after{animation:shine 3.5s .6s ease-in-out infinite}@keyframes float{to{transform:translateY(-6px) rotate(-2deg)}}.feat-star{fill:transparent}.feat[data-on] .feat-star{animation:star .35s cubic-bezier(.22,1.4,.36,1) both}@keyframes star{0%{transform:scale(.6)}to{transform:scale(1);fill:hsl(var(--primary))}}.feat-thanks{opacity:0}.feat[data-on] .feat-thanks{animation:fade-in .4s 1.3s forwards}.feat-swatch{background:var(--c1)}.feat[data-on] .feat-swatch{animation:swatch 6s .6s infinite}@keyframes swatch{0%,28%{background:var(--c1)}33%,61%{background:var(--c2)}66%,94%{background:var(--c3)}to{background:var(--c1)}}@keyframes pop-in{to{opacity:1;transform:none}}@keyframes fade-in{to{opacity:1}}@keyframes fade-out{to{opacity:0}}@media (prefers-reduced-motion: reduce){html:has(.landing-root){scroll-behavior:auto}.landing-root *,.landing-root *:before,.landing-root *:after{animation-duration:1ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0ms!important}.js .reveal{opacity:1;transform:none}}
