html{scroll-behavior:smooth}.safe-area-top{padding-top:env(safe-area-inset-top,0)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom,0)}body{transition:background-color .3s ease,color .3s ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#8080804d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#80808080}.dark ::-webkit-scrollbar-thumb{background:#fff3}.dark ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}img{opacity:1;transition:opacity .3s ease}img[data-loading=true]{opacity:0}:focus-visible{outline:2px solid rgba(99,102,241,.8);outline-offset:2px}@media(prefers-contrast:high){:focus-visible{outline:3px solid currentColor;outline-offset:3px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only:focus,.sr-only:focus-visible{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}button:active{transform:scale(.98)}.link-underline{position:relative}.link-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:currentColor;transition:width .3s ease}.link-underline:hover:after{width:100%}.modal-backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.aspect-ratio-box{position:relative;height:0;overflow:hidden}.aspect-ratio-box>*{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.card-hover{transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 40px #00000026}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .5s ease forwards}.animate-fadeInUp{animation:fadeInUp .5s ease forwards}.animate-fadeInDown{animation:fadeInDown .5s ease forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scaleIn{animation:scaleIn .3s ease forwards}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-slideInRight{animation:slideInRight .5s ease forwards}.animate-slideInLeft{animation:slideInLeft .5s ease forwards}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-slow{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.text-balance{text-wrap:balance}.responsive-image{width:100%;height:auto;display:block}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.image-shine{position:relative;overflow:hidden}.image-shine:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}.image-shine:hover:after{left:100%}.gradient-border{position:relative}.gradient-border:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;border-radius:inherit;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}@supports (padding: max(0px)){.safe-area-inset-bottom{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.safe-area-inset-top{padding-top:max(1rem,env(safe-area-inset-top))}}@keyframes moveBackground{0%{background-position:0% 0%}to{background-position:0% -1000%}}@media print{.no-print{display:none!important}body{background:#fff!important;color:#000!important}}
