body { font-family: 'Inter', system-ui, sans-serif; background:#F8FAFC; color:#0B1F3A; }
.hero-gradient { background: radial-gradient(120% 120% at 50% 0%, #12294D 0%, #0B1F3A 45%, #071429 100%); }
.brand-gradient { background: linear-gradient(135deg, #2563EB 0%, #10B981 100%); }
.text-gradient { background: linear-gradient(135deg, #2563EB 0%, #10B981 100%); -webkit-background-clip: text; background-clip:text; color: transparent; }
.glass { background: rgba(255,255,255,0.06); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,0.1); }
.glass-light { background: rgba(255,255,255,0.75); backdrop-filter: blur(16px); border: 1px solid rgba(11,31,58,0.06); }
.fade-up { animation: fadeUp .6s cubic-bezier(.16,1,.3,1) both; }
@keyframes fadeUp { from { opacity:0; transform: translateY(16px); } to { opacity:1; transform:none; } }
::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-thumb { background:#D7E0EB; border-radius:8px; }
input, select, textarea { outline:none; }
input:focus, select:focus, textarea:focus { box-shadow: 0 0 0 2px #2563EB55; border-color:#2563EB; }
.spinner { border: 2px solid #ffffff55; border-top-color:#fff; border-radius:50%; width:16px; height:16px; animation:spin .7s linear infinite; display:inline-block; }
.spinner-dark { border: 2px solid #2563EB33; border-top-color:#2563EB; border-radius:50%; width:24px; height:24px; animation:spin .7s linear infinite; display:inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes toastIn { from { opacity:0; transform: translateY(-8px);} to {opacity:1; transform:none;} }
.pulse-dot { position:relative; }
.pulse-dot::before { content:''; position:absolute; inset:0; border-radius:9999px; background:currentColor; animation:pulseRing 1.8s cubic-bezier(.4,0,.6,1) infinite; }
@keyframes pulseRing { 0% { transform:scale(1); opacity:.7; } 75%,100% { transform:scale(2.4); opacity:0; } }
.skeleton { background:linear-gradient(90deg,#EEF2F7 25%,#E3E9F2 37%,#EEF2F7 63%); background-size:400% 100%; animation:skeletonWave 1.4s ease infinite; border-radius:12px; }
@keyframes skeletonWave { 0% { background-position:100% 50%; } 100% { background-position:0 50%; } }
.card-hover { transition: transform .18s ease, box-shadow .18s ease; }
.card-hover:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(11,31,58,0.06), 0 16px 40px -12px rgba(11,31,58,0.18); }
.stagger > * { opacity:0; animation: fadeUp .5s cubic-bezier(.16,1,.3,1) both; }
.stagger > *:nth-child(1) { animation-delay: .02s; } .stagger > *:nth-child(2) { animation-delay: .08s; }
.stagger > *:nth-child(3) { animation-delay: .14s; } .stagger > *:nth-child(4) { animation-delay: .2s; }

/* ---------- Landing page additions ---------- */
.marquee-track { display:flex; width:max-content; animation: marquee 26s linear infinite; }
.marquee-wrap:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.dot-grid { background-image: radial-gradient(rgba(11,31,58,0.08) 1px, transparent 1px); background-size: 18px 18px; }
.avatar-ring { box-shadow: 0 0 0 3px #F8FAFC; }
.section-eyebrow { display:inline-flex; align-items:center; gap:.5rem; }
.section-eyebrow::before { content:''; width:18px; height:2px; background:currentColor; display:inline-block; border-radius:2px; }
.cta-band { background: radial-gradient(120% 160% at 100% 0%, rgba(37,99,235,0.55) 0%, transparent 55%), radial-gradient(120% 160% at 0% 100%, rgba(16,185,129,0.45) 0%, transparent 55%), #0B1F3A; }
.stat-number { min-height: 2.5rem; }
.skeleton-num { display:inline-block; width:64px; height:2rem; border-radius:8px; }
.ward-pill { border:1px solid rgba(11,31,58,0.08); background:#fff; }
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
  .fade-up, .stagger > * { animation: none !important; opacity:1 !important; transform:none !important; }
}
