:root {
  --cream: #f6f1e9;
  --blush: #f1d7d2;
  --sage: #98a08e;
  --deep: #2f2a26;
  --gold: #c3a071;
  --warm: #efe6da;
  --stone: #e4ddd3;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Manrope", system-ui, sans-serif;
  color: var(--deep);
  background: radial-gradient(circle at top, #fbf8f3 0%, var(--cream) 45%, var(--warm) 100%);
}

h1, h2, h3, h4 {
  font-family: "Playfair Display", "Times New Roman", serif;
  letter-spacing: 0.01em;
}

p {
  line-height: 1.7;
}

::selection {
  background: var(--blush);
}

.nav-blur {
  background: rgba(246, 241, 233, 0.95);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(195, 160, 113, 0.15);
}

.hero-mask::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    rgba(24, 20, 18, 0.78) 0%,
    rgba(47, 42, 38, 0.48) 45%,
    rgba(47, 42, 38, 0.2) 100%
  );
  z-index: 10;
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 800ms ease, transform 800ms ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.section-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

.card-shadow {
  box-shadow: 0 28px 60px rgba(47, 42, 38, 0.12);
}

.glow-ring {
  box-shadow: 0 0 0 1px rgba(195, 160, 113, 0.4), 0 20px 50px rgba(47, 42, 38, 0.12);
}

.badge {
  letter-spacing: 0.2em;
}

.form-field {
  background: rgba(255, 255, 255, 0.7);
}

.footer-text {
  color: rgba(47, 42, 38, 0.7);
}

@media (max-width: 768px) {
  .hero-mask::after {
    background: linear-gradient(
      180deg,
      rgba(24, 20, 18, 0.78) 0%,
      rgba(47, 42, 38, 0.5) 60%,
      rgba(47, 42, 38, 0.25) 100%
    );
  }
}
