:root {
  --background: #f7f8f3;
  --foreground: #102033;
  --navy: #10233f;
  --olive: #71824a;
  --olive-dark: #55663a;
  --line: rgba(16, 35, 63, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 0%, rgba(171, 190, 118, 0.25), transparent 28rem),
    radial-gradient(circle at 88% 10%, rgba(86, 123, 160, 0.16), transparent 28rem),
    linear-gradient(180deg, #fbfcf7 0%, #f5f7ef 46%, #ffffff 100%);
  color: var(--foreground);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
::selection { background: rgba(113, 130, 74, 0.22); }

.glass {
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 24px 70px rgba(16, 35, 63, 0.1);
  backdrop-filter: blur(18px);
}

.soft-grid {
  background-image:
    linear-gradient(rgba(16, 35, 63, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 35, 63, 0.055) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(circle at center, black 0%, transparent 72%);
  -webkit-mask-image: radial-gradient(circle at center, black 0%, transparent 72%);
}

/* Reveal-on-scroll */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s cubic-bezier(.22,1,.36,1), transform .65s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hero slider Ken Burns */
@keyframes kenburns {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}
.hero-slide.is-active .hero-slide__img {
  animation: kenburns 7s linear forwards;
}
.hero-slide {
  opacity: 0;
  transition: opacity 1.2s ease-out;
  pointer-events: none;
}
.hero-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

/* Lucide sizing */
.lucide { display: inline-block; vertical-align: middle; }

/* Navbar dropdown */
.has-dropdown:hover > .dropdown { display: block; }
.dropdown { display: none; }
.dropdown.is-open { display: block; }
