@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-in-left{animation:slideInLeft .3s ease-out}.animate-slide-in-right{animation:slideInRight .3s ease-out}.animate-scale-in{animation:scaleIn .2s ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.skeleton{background:linear-gradient(90deg,var(--bg-primary) 0,var(--bg-secondary) 50%,var(--bg-primary) 100%);background-size:1000px 100%;animation:shimmer 2s infinite;border-radius:8px}a,button,input,select,textarea{transition:all .2s ease-in-out}a:hover,button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}a:active,button:active:not(:disabled){transform:translateY(0)}.card-hover{transition:all .3s ease-in-out}.card-hover:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12)}.stagger-item:first-child{animation-delay:.05s}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}.page-transition{animation:fadeIn .4s ease-out}.loading-spinner{width:40px;height:40px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.success-checkmark{stroke-dasharray:100;stroke-dashoffset:100;animation:checkmark .5s ease-out forwards}@keyframes slideInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.notification-enter{animation:slideInDown .3s ease-out}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--bg-primary:#f3f4f6;--bg-secondary:#fff;--text-primary:#1f2937;--text-secondary:#6b7280;--accent:#16a34a;--accent-hover:#15803d;--border:#e5e7eb;--card-shadow:0 1px 3px rgba(0,0,0,.1)}[data-theme=dark]{--bg-primary:#111827;--bg-secondary:#1f2937;--text-primary:#f9fafb;--text-secondary:#9ca3af;--accent:#22c55e;--accent-hover:#16a34a;--border:#374151;--card-shadow:0 1px 3px rgba(0,0,0,.3)}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}body{margin:0;padding:0;font-family:system-ui,-apple-system,sans-serif;background-color:var(--bg-primary);color:var(--text-primary)}@media (max-width:768px){.mobile-menu-btn{display:block!important}.desktop-nav{display:none!important}.mobile-nav{display:flex!important}}@media (min-width:769px){.mobile-menu-btn{display:none!important}.desktop-nav{display:flex!important}.mobile-nav{display:none!important}}.mobile-nav{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--bg-secondary);z-index:1000;flex-direction:column;padding:80px 24px 24px;gap:16px}.mobile-nav-item{padding:16px;background-color:var(--bg-primary);border-radius:8px;text-align:center;font-size:18px;font-weight:600;color:var(--text-primary);text-decoration:none;border:1px solid var(--border)}.mobile-nav-item:hover{background-color:var(--accent);color:#fff}