*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
}
body {
  background: #f9f8f5;
  color: #0a1d3c;
  font-family: "DM Sans", sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a {
  color: inherit;
  text-decoration: none;
}

[data-reveal] {
  opacity: 0;
  will-change: opacity, transform;
}
[data-reveal="up"] {
  transform: translateY(36px);
}
[data-reveal="left"] {
  transform: translateX(-36px);
}
[data-reveal="right"] {
  transform: translateX(36px);
}
[data-reveal="scale"] {
  transform: scale(0.93);
}

/* Hover utilities */
.hover-nav-link:hover {
  color: #edf2fa !important;
}
.hover-btn-outline:hover {
  background: rgba(47, 111, 203, 0.14) !important;
  border-color: #2f6fcb !important;
  color: #adc9f0 !important;
}
.hover-btn-primary:hover {
  background: #3a7fdb !important;
  box-shadow: 0 10px 36px rgba(47, 111, 203, 0.45) !important;
  transform: translateY(-2px) !important;
}
.hover-card:hover {
  background: #ede9e1 !important;
}
.hover-email:hover {
  color: #2f6fcb !important;
  border-color: #2f6fcb !important;
}
.hover-btn-dark:hover {
  background: #2f6fcb !important;
  border-color: #2f6fcb !important;
  box-shadow: 0 10px 32px rgba(47, 111, 203, 0.35) !important;
  transform: translateY(-2px) !important;
}
