:root{--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-decelerate: cubic-bezier(0, 0, .2, 1);--ease-accelerate: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.25, .1, .25, 1);--dur-instant: .1s;--dur-fast: .15s;--dur-normal: .25s;--dur-slow: .4s;--dur-entrance: .5s}.gpu-accelerated{will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden;contain:layout style}.gpu-transform-only{will-change:transform;transform:translateZ(0);contain:layout}.interactive-hover{transition:transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-normal) var(--ease-standard)}.interactive-hover:hover{transform:translateY(-2px) scale(1.01)}.interactive-hover:active{transform:translateY(0) scale(.98)}.interactive-glow{transition:box-shadow var(--dur-normal) var(--ease-standard),border-color var(--dur-normal) var(--ease-standard)}.animate-enter-fade{animation:enter-fade var(--dur-entrance) var(--ease-decelerate) both;will-change:opacity}.animate-enter-slide-up{animation:enter-slide-up var(--dur-entrance) var(--ease-decelerate) both;will-change:transform,opacity;transform:translateZ(0)}.animate-enter-scale{animation:enter-scale var(--dur-slow) var(--ease-spring) both;will-change:transform,opacity;transform:translateZ(0)}@keyframes enter-fade{0%{opacity:0}to{opacity:1}}@keyframes enter-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes enter-scale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes modal-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modal-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(8px)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.animate-modal-in{animation:modal-in var(--dur-slow) var(--ease-spring) both;will-change:transform,opacity;transform:translateZ(0)}.animate-overlay-in{animation:overlay-in var(--dur-slow) var(--ease-standard) both;will-change:opacity}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.animate-shimmer{animation:shimmer 1.5s var(--ease-standard) infinite;will-change:transform;transform:translateZ(0)}.skeleton{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:200% 100%;animation:shimmer 1.5s var(--ease-standard) infinite;border-radius:.75rem;will-change:transform;transform:translateZ(0)}@keyframes island-pulse{0%,to{opacity:.6;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1)}}.animate-island-pulse{animation:island-pulse 2s var(--ease-smooth) infinite}@keyframes scale-in{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in var(--dur-slow) var(--ease-spring) both;will-change:transform,opacity;transform:translateZ(0)}@keyframes page-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes page-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}.page-enter{animation:page-enter var(--dur-entrance) var(--ease-decelerate) both;will-change:transform,opacity;transform:translateZ(0)}@keyframes view-fade-in{0%{opacity:0}to{opacity:1}}.view-fade-in{animation:view-fade-in var(--dur-slow) var(--ease-standard) both}.scroll-fade-in{opacity:0;transform:translateY(16px);transition:opacity var(--dur-normal) var(--ease-standard),transform var(--dur-normal) var(--ease-standard);will-change:transform,opacity}.scroll-fade-in.visible{opacity:1;transform:translateY(0)}.search-focus-ring{transition:box-shadow var(--dur-normal) var(--ease-standard),border-color var(--dur-normal) var(--ease-standard)}.card-hover{transition:transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-normal) var(--ease-standard),border-color var(--dur-normal) var(--ease-standard);will-change:transform;transform:translateZ(0)}.card-hover:hover{transform:translateY(-4px) translateZ(0);box-shadow:0 20px 40px -12px #0006,0 0 40px -10px #ff9ece4d}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.stagger-7{animation-delay:.35s}.stagger-8{animation-delay:.4s}.stagger-9{animation-delay:.45s}.stagger-10{animation-delay:.5s}@keyframes float-up{0%{opacity:0;transform:translateY(16px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.scroll-to-top{animation:float-up var(--dur-normal) var(--ease-spring) both;will-change:transform,opacity;transform:translateZ(0)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
