@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}.fade-in-up{animation:fadeInUp 0.6s ease-out}.fade-in-down{animation:fadeInDown 0.6s ease-out}.fade-in-left{animation:fadeInLeft 0.6s ease-out}.fade-in-right{animation:fadeInRight 0.6s ease-out}.scale-in{animation:scaleIn 0.4s ease-out}.delay-100{animation-delay:0.1s}.delay-200{animation-delay:0.2s}.delay-300{animation-delay:0.3s}.delay-400{animation-delay:0.4s}.delay-500{animation-delay:0.5s}.card-hover{transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.btn-hover-scale{transition:transform 0.2s ease-in-out}.btn-hover-scale:hover{transform:scale(1.05)}.btn-hover-lift{transition:all 0.2s ease-in-out}.btn-hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06)}.link-underline{position:relative;text-decoration:none}.link-underline::after{content:'';position:absolute;width:0;height:2px;bottom:-2px;left:0;background-color:currentColor;transition:width 0.3s ease-in-out}.link-underline:hover::after{width:100%}.img-zoom-container{overflow:hidden}.img-zoom{transition:transform 0.4s cubic-bezier(0.4,0,0.2,1)}.img-zoom-container:hover .img-zoom{transform:scale(1.1)}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}*:focus{outline:2px solid transparent;outline-offset:2px}*:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:4px}.skip-to-content{position:absolute;top:-40px;left:0;background:#2563eb;color:white;padding:8px 16px;text-decoration:none;z-index:100;border-radius:0 0 4px 0}.skip-to-content:focus{top:0}.text-high-contrast{color:#111827}.bg-high-contrast{background-color:#111827;color:#ffffff}.badge-pulse{animation:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.7}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid rgba(0,0,0,0.1);border-left-color:#2563eb;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes shimmer{0%{background-position:-468px 0}100%{background-position:468px 0}}.skeleton{background:linear-gradient(to right,#f3f4f6 0%,#e5e7eb 50%,#f3f4f6 100%);background-size:800px 104px;animation:shimmer 1.5s infinite}.gradient-text{background:linear-gradient(135deg,#2563eb 0%,#16a34a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}a,button,input,textarea,select{transition:all 0.2s ease-in-out}.transition-transform{transition:transform 0.3s cubic-bezier(0.4,0,0.2,1)}.transition-colors{transition:background-color 0.2s,color 0.2s,border-color 0.2s}.transition-shadow{transition:box-shadow 0.3s cubic-bezier(0.4,0,0.2,1)}.container-custom{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width:640px){.container-custom{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:768px){.container-custom{max-width:768px}}@media (min-width:1024px){.container-custom{max-width:1024px}}@media (min-width:1280px){.container-custom{max-width:1280px}}.section-padding{padding-top:4rem;padding-bottom:4rem}@media (min-width:768px){.section-padding{padding-top:5rem;padding-bottom:5rem}}@media (min-width:1024px){.section-padding{padding-top:6rem;padding-bottom:6rem}}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease-out,transform 0.6s ease-out}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.critical-content{contain:layout style paint}@media (prefers-color-scheme:dark){.dark-mode-ready{}}@media print{.no-print{display:none !important}body{background:white;color:black}a[href]:after{content:" (" attr(href) ")"}}