:root {
  --ink: #1c1917;
  --plum: #4a2c6a;
  --lime: #c6de3a;
  --amber: #e39b2b;
  --cream: #f7f4ee;
  --slate: #2a2e33;
}
html { scroll-behavior: smooth; }
body { font-family: "Segoe UI", system-ui, sans-serif; background: var(--cream); color: var(--ink); }
.nav-link { position: relative; }
.nav-link::after {
  content: "";
  position: absolute;
  left: 0; bottom: -4px;
  width: 0; height: 2px;
  background: var(--lime);
  transition: width .25s ease;
}
.nav-link:hover::after, .nav-link.active::after { width: 100%; }
.card-lift { transition: transform .25s ease, box-shadow .25s ease; }
.card-lift:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(28,25,23,.12); }
.hero-slide { animation: fade .6s ease; }
@keyframes fade { from { opacity: .4; } to { opacity: 1; } }
.mobile-panel { transform: translateX(100%); transition: transform .3s ease; }
.mobile-panel.open { transform: translateX(0); }
.map-frame { filter: saturate(.9) contrast(1.05); }
