:root{--anim-duration: .6s;--anim-duration-fast: .45s;--anim-duration-slow: .95s;--anim-delay: 0ms;--anim-delay-short: .1s;--anim-delay-medium: .2s;--anim-delay-long: .4s;--anim-distance: 30px;--anim-distance-sm: 15px;--anim-distance-lg: 50px;--anim-scale-from-sm: .95;--anim-scale-from-md: .9;--anim-scale-from-lg: .8;--anim-scale-to: 1;--anim-rotate-sm: 5deg;--anim-rotate-md: 10deg;--anim-rotate-lg: 20deg;--anim-blur-sm: 5px;--anim-blur-md: 10px;--anim-blur-lg: 20px;--anim-ease: cubic-bezier(.16, 1, .3, 1);--ease-smooth: var(--anim-ease);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out-circ: cubic-bezier(.85, 0, .15, 1);--ease-spring: cubic-bezier(.68, -.55, .265, 1.55);--ease-pop: cubic-bezier(.34, 1.56, .64, 1);--ease-linear: linear;--ease-bounce: cubic-bezier(.68, -.6, .32, 1.6);--reveal-distance: 48px;--reveal-distance-sm: 24px;--reveal-distance-lg: 72px;--reveal-scale-from: .95;--reveal-scale-to: 1;--reveal-rotate-from: -1.5deg;--reveal-rotate-to: 0deg;--reveal-duration: .7s;--reveal-duration-fast: .45s;--reveal-duration-slow: .95s;--reveal-ease: cubic-bezier(.16, 1, .3, 1);--reveal-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--stagger-delay-1: .1s;--stagger-delay-2: .2s;--stagger-delay-3: .3s;--stagger-delay-4: .4s;--stagger-delay-5: .5s;--stagger-delay-6: .6s}[class*=anim-],[class*=scroll-reveal],.hero-reveal :global(*){will-change:auto;backface-visibility:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=anim-]:not(.anim-complete),[class*=scroll-reveal]:not(.revealed){will-change:transform,opacity}@media(prefers-reduced-motion:no-preference){[class*=anim-]{animation-fill-mode:both}[class*=anim-].anim-complete{will-change:auto}}.anim-gpu-layer{transform:translateZ(0);will-change:transform,opacity}.anim-no-gpu{will-change:auto!important;backface-visibility:visible!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[class*=anim-],[class*=scroll-reveal]{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}[class*=anim-],[class*=scroll-reveal]{will-change:auto!important}}[class*=anim-]:focus,[class*=scroll-reveal]:focus{outline:2px solid currentColor;outline-offset:2px}.anim-pause-on-focus:focus{animation-play-state:paused!important}.anim-ready{opacity:0}.anim-instant{opacity:1!important;transform:none!important;animation:none!important}.anim-paused{animation-play-state:paused!important}.anim-playing{animation-play-state:running!important}.anim-reset{animation:none!important}.anim-stagger-1{--anim-delay: var(--stagger-delay-1)}.anim-stagger-2{--anim-delay: var(--stagger-delay-2)}.anim-stagger-3{--anim-delay: var(--stagger-delay-3)}.anim-stagger-4{--anim-delay: var(--stagger-delay-4)}.anim-stagger-5{--anim-delay: var(--stagger-delay-5)}.anim-stagger-6{--anim-delay: var(--stagger-delay-6)}.anim-fast{--anim-duration: var(--anim-duration-fast)}.anim-slow{--anim-duration: var(--anim-duration-slow)}.anim-distance-sm{--anim-distance: var(--anim-distance-sm)}.anim-distance-lg{--anim-distance: var(--anim-distance-lg)}.anim-loop{animation-iteration-count:infinite!important}.anim-once{animation-iteration-count:1!important}.anim-reverse{animation-direction:reverse!important}.anim-alternate{animation-direction:alternate!important}@keyframes anim-fade-in{0%{opacity:0}to{opacity:1}}.anim-fade-in{animation:anim-fade-in var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-fade-up{0%{opacity:0;transform:translateY(var(--anim-distance))}to{opacity:1;transform:translateY(0)}}.anim-fade-up{animation:anim-fade-up var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-fade-down{0%{opacity:0;transform:translateY(calc(var(--anim-distance) * -1))}to{opacity:1;transform:translateY(0)}}.anim-fade-down{animation:anim-fade-down var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-fade-left{0%{opacity:0;transform:translate(var(--anim-distance))}to{opacity:1;transform:translate(0)}}.anim-fade-left{animation:anim-fade-left var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-fade-right{0%{opacity:0;transform:translate(calc(var(--anim-distance) * -1))}to{opacity:1;transform:translate(0)}}.anim-fade-right{animation:anim-fade-right var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-slide-left{0%{transform:translate(var(--anim-distance))}to{transform:translate(0)}}.anim-slide-left{animation:anim-slide-left var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-slide-right{0%{transform:translate(calc(var(--anim-distance) * -1))}to{transform:translate(0)}}.anim-slide-right{animation:anim-slide-right var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-slide-up{0%{transform:translateY(var(--anim-distance))}to{transform:translateY(0)}}.anim-slide-up{animation:anim-slide-up var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-slide-down{0%{transform:translateY(calc(var(--anim-distance) * -1))}to{transform:translateY(0)}}.anim-slide-down{animation:anim-slide-down var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-scale-up{0%{opacity:0;transform:scale(var(--anim-scale-from-md))}to{opacity:1;transform:scale(var(--anim-scale-to))}}.anim-scale-up{animation:anim-scale-up var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-scale-down{0%{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(var(--anim-scale-to))}}.anim-scale-down{animation:anim-scale-down var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-fade-scale-up{0%{opacity:0;transform:translateY(var(--anim-distance-sm)) scale(var(--anim-scale-from-sm))}to{opacity:1;transform:translateY(0) scale(var(--anim-scale-to))}}.anim-fade-scale-up{animation:anim-fade-scale-up var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-fade-scale-down{0%{opacity:0;transform:translateY(calc(var(--anim-distance-sm) * -1)) scale(var(--anim-scale-from-sm))}to{opacity:1;transform:translateY(0) scale(var(--anim-scale-to))}}.anim-fade-scale-down{animation:anim-fade-scale-down var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-rotate-in{0%{opacity:0;transform:rotate(calc(var(--anim-rotate-md) * -1)) scale(var(--anim-scale-from-sm))}to{opacity:1;transform:rotate(0) scale(var(--anim-scale-to))}}.anim-rotate-in{animation:anim-rotate-in var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-rotate-in-left{0%{opacity:0;transform:translate(calc(var(--anim-distance) * -1)) rotate(calc(var(--anim-rotate-md) * -1))}to{opacity:1;transform:translate(0) rotate(0)}}.anim-rotate-in-left{animation:anim-rotate-in-left var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-rotate-in-right{0%{opacity:0;transform:translate(var(--anim-distance)) rotate(var(--anim-rotate-md))}to{opacity:1;transform:translate(0) rotate(0)}}.anim-rotate-in-right{animation:anim-rotate-in-right var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-blur-in{0%{opacity:0;filter:blur(var(--anim-blur-md))}to{opacity:1;filter:blur(0)}}.anim-blur-in{animation:anim-blur-in var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-blur-fade-up{0%{opacity:0;transform:translateY(var(--anim-distance));filter:blur(var(--anim-blur-sm))}to{opacity:1;transform:translateY(0);filter:blur(0)}}.anim-blur-fade-up{animation:anim-blur-fade-up var(--anim-duration) var(--anim-ease) var(--anim-delay) both}@keyframes anim-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.anim-pop{animation:anim-pop var(--anim-duration) var(--ease-pop) var(--anim-delay) both}@keyframes anim-pop-overshoot{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.anim-pop-overshoot{animation:anim-pop-overshoot var(--anim-duration) var(--ease-spring) var(--anim-delay) both}@keyframes anim-bounce-in{0%{opacity:0;transform:translateY(calc(var(--anim-distance) * -2))}to{opacity:1;transform:translateY(0)}}.anim-bounce-in{animation:anim-bounce-in var(--anim-duration-slow) var(--ease-bounce) var(--anim-delay) both}@keyframes anim-flip-x{0%{opacity:0;transform:rotateX(90deg)}to{opacity:1;transform:rotateX(0)}}.anim-flip-x{animation:anim-flip-x var(--anim-duration) var(--anim-ease) var(--anim-delay) both;transform-style:preserve-3d}@keyframes anim-flip-y{0%{opacity:0;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}.anim-flip-y{animation:anim-flip-y var(--anim-duration) var(--anim-ease) var(--anim-delay) both;transform-style:preserve-3d}@keyframes anim-glitch{0%,to{transform:translate(0);opacity:1}20%{transform:translate(-2px,2px)}40%{transform:translate(2px,-2px)}60%{transform:translate(-2px,-2px)}80%{transform:translate(2px,2px)}}.anim-glitch{animation:anim-glitch .2s ease var(--anim-delay) 1}@keyframes anim-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.anim-shake{animation:anim-shake .5s ease var(--anim-delay) 1}@keyframes scroll-reveal-rise{0%{translate:var(--reveal-translate-start, 0 var(--_reveal-distance, var(--reveal-distance)));opacity:0}20%{opacity:0}40%{opacity:.18}60%{opacity:.45}80%{opacity:.72}to{translate:var(--reveal-translate-end, 0 0);opacity:1}}@keyframes scroll-reveal-scale{0%{translate:var(--reveal-translate-start, 0 var(--_reveal-distance, var(--reveal-distance)));scale:.95;opacity:0}20%{opacity:0}40%{opacity:.2}60%{opacity:.48}80%{opacity:.75}to{translate:var(--reveal-translate-end, 0 0);scale:1;opacity:1}}.scroll-reveal,.scroll-reveal-delayed,.scroll-reveal-scale,.animate-on-scroll,.animate-on-scroll-delayed,.reveal-tilt-scale{--reveal-distance-active: var(--_reveal-distance, var(--reveal-distance));--reveal-translate-start: var(--_reveal-translate-start, 0 var(--reveal-distance-active));--reveal-translate-end: var(--_reveal-translate-end, 0 0);--reveal-rotate-start: var(--_reveal-rotate-start, 0deg);--reveal-rotate-end: var(--_reveal-rotate-end, var(--reveal-rotate-start, 0deg));--reveal-scale-start: var(--_reveal-scale-start, 1);--reveal-scale-end: var(--_reveal-scale-end, 1);--reveal-opacity-from: 0;--reveal-opacity-to: 1;translate:var(--reveal-translate-start);rotate:var(--reveal-rotate-start);scale:var(--reveal-scale-start);opacity:var(--reveal-opacity-from, 0)}.scroll-reveal-scale,.reveal-tilt-scale{--_reveal-scale-start: var(--reveal-scale-from, .95);--_reveal-scale-end: var(--reveal-scale-to, 1);--_reveal-rotate-start: var(--reveal-rotate-from, -1.5deg);--_reveal-rotate-end: var(--reveal-rotate-to, 0deg)}@supports (animation-timeline: view()){.scroll-reveal,.animate-on-scroll{animation:scroll-reveal-rise linear both;animation-timeline:view();animation-range:entry 0% cover 70%}.scroll-reveal-delayed,.animate-on-scroll-delayed{animation:scroll-reveal-rise linear both;animation-timeline:view();animation-range:entry 8% cover 75%}.scroll-reveal-scale,.reveal-tilt-scale{animation:scroll-reveal-scale linear both;animation-timeline:view();animation-range:entry 0% cover 75%}}@supports not (animation-timeline: view()){.scroll-reveal,.animate-on-scroll,.scroll-reveal-delayed,.animate-on-scroll-delayed,.scroll-reveal-scale,.reveal-tilt-scale{animation:none!important}}.reveal-sm{--_reveal-distance: var(--reveal-distance-sm)}.reveal-lg{--_reveal-distance: var(--reveal-distance-lg)}.reveal-fast{--reveal-duration: var(--reveal-duration-fast);animation-range:entry 5% cover 25%!important}.reveal-slow{--reveal-duration: var(--reveal-duration-slow);animation-range:entry 5% cover 50%!important}.reveal-soft{--reveal-duration: 1.1s;--_reveal-distance: calc(var(--reveal-distance) * .85)}.reveal-smoother{--reveal-duration: 1.4s;--_reveal-distance: calc(var(--reveal-distance) * .75)}.reveal-once{animation-iteration-count:1!important;will-change:auto}.reveal-instant{--reveal-duration: 0ms;--_reveal-translate-start: 0 0;--_reveal-translate-end: 0 0;--_reveal-rotate-start: 0deg;--_reveal-rotate-end: 0deg;--_reveal-scale-start: 1;--_reveal-scale-end: 1;--reveal-opacity-from: 1;--reveal-opacity-to: 1;animation:none!important;translate:var(--reveal-translate-end, 0 0)!important;rotate:var(--reveal-rotate-end, 0deg)!important;scale:var(--reveal-scale-end, 1)!important;opacity:1!important}.is-revealed.reveal-once{animation:none!important;translate:var(--reveal-translate-end, 0 0)!important;rotate:var(--reveal-rotate-end, 0deg)!important;scale:var(--reveal-scale-end, 1)!important;opacity:1!important}@media(prefers-reduced-motion:reduce){.scroll-reveal,.scroll-reveal-delayed,.scroll-reveal-scale,.animate-on-scroll,.animate-on-scroll-delayed,.reveal-tilt-scale,.reveal-sm,.reveal-lg,.reveal-fast,.reveal-slow{animation:none!important;translate:var(--reveal-translate-end, 0 0)!important;rotate:var(--reveal-rotate-end, 0deg)!important;scale:var(--reveal-scale-end, 1)!important;opacity:1!important}}@keyframes bg-reveal{0%{opacity:0;transform:scale(1.12);filter:brightness(.55) contrast(1.15) saturate(.8)}45%{opacity:1}to{opacity:1;transform:scale(1.02);filter:brightness(.85) contrast(1.05) saturate(1)}}.anim-bg-reveal{animation:bg-reveal 1.6s var(--ease-lux, var(--ease-smooth)) both}@keyframes fade-slide-progressive{0%{opacity:0;transform:translateY(24px)}55%{opacity:.72}to{opacity:1;transform:translateY(0)}}.anim-fade-slide-progressive{animation:fade-slide-progressive .9s var(--ease-smooth) both}@keyframes clip-reveal{0%{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(22px)}25%{opacity:1}65%{clip-path:inset(0 0 0 0)}to{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0)}}.anim-clip-reveal{animation:clip-reveal 1.2s var(--ease-lux, var(--ease-smooth)) both}@supports not (clip-path: inset(0 0 0 0)){@keyframes clip-reveal{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}}@keyframes image-bounce-rotate{0%{opacity:0;transform:translateY(46px) rotate(-6deg) scale(.9);filter:brightness(.8) saturate(.9)}55%{opacity:1}72%{transform:translateY(-6px) rotate(4deg) scale(1.02)}to{opacity:1;transform:translateY(0) rotate(3deg) scale(1);filter:brightness(1) saturate(1)}}.anim-image-bounce-rotate{animation:image-bounce-rotate 1.1s var(--ease-smooth) both}@keyframes blur-reveal{0%{opacity:0;transform:translate(-50%,20px) scale(1.05)}55%{opacity:.42}to{opacity:var(--reveal-opacity, .72);transform:translate(-50%) scale(1)}}.anim-blur-reveal{animation:blur-reveal 1.6s var(--ease-smooth) both}@keyframes card-ambient-motion{0%,to{transform:rotate(var(--card-tilt-base, 0deg)) translateY(0) translateZ(0)}35%{transform:rotate(calc(var(--card-tilt-base, 0deg) + var(--card-tilt-oscillation, .65deg))) translateY(calc(var(--card-lift, 12px) * -1)) translateZ(0)}70%{transform:rotate(calc(var(--card-tilt-base, 0deg) - var(--card-tilt-oscillation, .65deg))) translateY(calc(var(--card-lift, 12px) * .5)) translateZ(0)}}.card-ambient{--card-tilt-base: 0deg;--card-tilt-oscillation: .65deg;--card-lift: 12px;--card-ambient-duration: 6.5s;--card-ambient-ease: cubic-bezier(.55, .05, .25, .95);--card-ambient-delay: .65s;transform:rotate(var(--card-tilt-base)) translateY(0) translateZ(0);transform-origin:center;animation:card-ambient-motion var(--card-ambient-duration) var(--card-ambient-ease) infinite;animation-delay:var(--card-ambient-delay);will-change:transform}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.anim-gradient-shift{background-size:200% 200%;animation:gradient-shift 3s ease infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.anim-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);background-size:200% 100%;animation:shimmer 2s linear infinite}
