html, body { height: 100%; }
body { box-sizing: border-box; }
.gradient-hero {
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8a 50%, #1e3a5f 100%);
}
.gradient-overlay {
  background: linear-gradient(180deg, rgba(30,58,95,0.95) 0%, rgba(45,90,138,0.85) 100%);
}
.card-hover {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-hover:hover {
  transform: translateY(-8px);
  box-shadow: 0 25px 50px -12px rgba(30,58,95,0.25);
}
.stat-card {
  background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
}
.pattern-grid {
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.1) 1px, transparent 0);
  background-size: 40px 40px;
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up {
  animation: fadeInUp 0.8s ease-out forwards;
}
.animate-delay-100 { animation-delay: 0.1s; }
.animate-delay-200 { animation-delay: 0.2s; }
.animate-delay-300 { animation-delay: 0.3s; }
.animate-delay-400 { animation-delay: 0.4s; }


/* tailwindcss fix: Sometimes the CDN script shows a tiny flash of unstyled content */
[class^="tw-"], [class*=" tw-"] { display: none; }
.tw-loaded [class^="tw-"], .tw-loaded [class*=" tw-"] { display: revert; }


/* obfuscation of emails */
.obfsmail {
	display: none;
}
