.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px;will-change:transform,opacity}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translate3d(30px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:fadeIn .3s cubic-bezier(.4,0,.2,1) forwards;will-change:opacity,transform}.animate-fade-in-up{animation:fadeInUp .4s cubic-bezier(.4,0,.2,1) forwards;will-change:opacity,transform}.animate-slide-in-right{animation:slideInFromRight .3s cubic-bezier(.4,0,.2,1) forwards;will-change:opacity,transform}.animate-scale-in{animation:scaleIn .2s cubic-bezier(.4,0,.2,1) forwards;will-change:opacity,transform}.animate-delay-75{animation-delay:75ms}.animate-delay-100{animation-delay:.1s}.animate-delay-150{animation-delay:.15s}.animate-delay-200{animation-delay:.2s}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200px 100%;animation:shimmer 1.5s infinite;will-change:background-position}.dark .skeleton-shimmer{background:linear-gradient(90deg,#374151 25%,#4b5563,#374151 75%);background-size:200px 100%}.smooth-scroll{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.smooth-scroll::-webkit-scrollbar{width:6px;height:6px}.smooth-scroll::-webkit-scrollbar-track{background:transparent}.smooth-scroll::-webkit-scrollbar-thumb{background:#9ca3af80;border-radius:3px}.smooth-scroll::-webkit-scrollbar-thumb:hover{background:#9ca3afb3}.dark .smooth-scroll::-webkit-scrollbar-thumb{background:#4b556380}.dark .smooth-scroll::-webkit-scrollbar-thumb:hover{background:#4b5563b3}.layout-optimized{contain:layout style paint}.content-optimized{contain:content}.hover-lift{transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1);will-change:transform,box-shadow}.hover-lift:hover{transform:translateY(-2px) translateZ(0);box-shadow:0 4px 12px #00000026}.hover-scale{transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.hover-scale:hover{transform:scale(1.02) translateZ(0)}.focus-ring{transition:box-shadow .15s cubic-bezier(.4,0,.2,1)}.focus-ring:focus{outline:none;box-shadow:0 0 0 2px #3b82f680}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 2px #3b82f680}.transition-fast{transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-normal{transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-slow{transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transform-gpu{transform:translateZ(0)}.media-optimized{image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast}video.media-optimized{object-fit:cover;background-color:#000}.no-fouc{visibility:hidden}.no-fouc.loaded{visibility:visible;animation:fadeIn .3s ease-out}@media (prefers-contrast: high){.skeleton-shimmer{background:linear-gradient(90deg,#000 25%,#333,#000 75%)}.hover-lift:hover{box-shadow:0 4px 12px #000c}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skeleton-shimmer{animation:none;background:#e0e0e0}.dark .skeleton-shimmer{background:#4b5563}}@media print{.animate-fade-in,.animate-fade-in-up,.animate-slide-in-right,.animate-scale-in{animation:none!important}.gpu-accelerated,.hover-lift,.hover-scale{transform:none!important}}@container (width > 768px){.animate-stagger-desktop>*{animation-delay:calc(var(--stagger-delay, 0) * 50ms)}}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.will-change-auto,.animate-fade-in.animation-complete,.animate-fade-in-up.animation-complete,.animate-slide-in-right.animation-complete,.animate-scale-in.animation-complete{will-change:auto}@keyframes spin-optimized{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-optimized{animation:spin-optimized 1s linear infinite;will-change:transform}@keyframes pulse-optimized{0%,to{opacity:1}50%{opacity:.5}}.pulse-optimized{animation:pulse-optimized 2s cubic-bezier(.4,0,.6,1) infinite;will-change:opacity}.critical-content{font-display:swap;contain:layout style paint}.lazy-loading{opacity:0;transform:translateY(20px);transition:opacity .3s ease,transform .3s ease}.lazy-loading.loaded{opacity:1;transform:translateY(0)}
