/* Tokens + element resets + global typography */

:root {
  --bg: #F9F6F1;
  --bg2: #F1EDE4;
  --bg3: #E8E0D3;
  --ink: #18150F;
  --ink2: #2E2A22;
  --muted: #8A7F72;
  --gold: #B8762A;
  --gold2: #D4924A;
  --gold3: #F0C07A;
  --green: #3D5C34;
  --danger: #B03030;
  --border: rgba(24, 21, 15, 0.1);
  --shadow-card: 0 20px 60px rgba(24, 21, 15, 0.11);
  --shadow-button: 0 14px 36px rgba(184, 118, 42, 0.35);
  --radius-pill: 999px;
  --ease-luxe: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Outfit', sans-serif;
  background: var(--bg);
  color: var(--ink);
  overflow-x: hidden;   /* fallback for old browsers */
  overflow-x: clip;     /* modern: prevents h-scroll WITHOUT breaking position:sticky (iOS) */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; display: block; }
button { font: inherit; cursor: pointer; }
a { color: inherit; }

/* Page routing */
.page { display: none; min-height: 100vh; }
.page.active { display: block; }

/* Reveal-on-scroll */
.rv { opacity: 0; transform: translateY(36px) scale(.985); filter: blur(5px); transition: opacity .9s var(--ease-luxe), transform 1s var(--ease-luxe), filter .9s var(--ease-luxe); }
.rv.vis { opacity: 1; transform: none; filter: none; }
@media (prefers-reduced-motion: reduce) { .rv { filter: none; transform: none; } }
.d1 { transition-delay: .1s; } .d2 { transition-delay: .2s; } .d3 { transition-delay: .3s; }

/* Section headings */
.s-eye {
  font-size: .64rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); font-weight: 600;
  margin-bottom: 1.1rem;
  display: flex; align-items: center; gap: .7rem;
}
.s-eye::before { content: ''; width: 18px; height: 1px; background: var(--gold); }
.s-h2 {
  font-family: 'Cormorant', serif;
  font-size: clamp(1.9rem, 3.5vw, 3.3rem);
  font-weight: 300; line-height: 1.1; color: var(--ink);
  margin-bottom: 1.4rem;
}
.s-h2 em { font-style: italic; color: var(--gold); }

/* Animation keyframes */
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes lineIn { from { transform: translateY(110%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes fillBar { 0% { transform: translateX(-100%); } 100% { transform: translateX(0); } }
@keyframes mqAnim { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes scDown { 0% { top: -100%; } 100% { top: 100%; } }
@keyframes modalPop { from { opacity: 0; transform: scale(.96) translateY(14px); } to { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes floatPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
