:root {
  /* Mercato Notturno palette */
  --ink: #14110F;
  --ink-deep: #0B0908;
  --smoke: #2A2522;
  --smoke-soft: #1E1A18;
  --bone: #EDE3D1;
  --bone-soft: #C9BCA4;
  --bone-dim: #8C7F69;
  --terracotta: #B85A3A;
  --terracotta-glow: #D26E48;
  --saffron: #D9A24A;
  --line: rgba(237, 227, 209, 0.14);
  --line-strong: rgba(237, 227, 209, 0.28);

  /* Type families */
  --font-display: "Cormorant Garamond", "Cormorant", "EB Garamond", Georgia, serif;
  --font-body: "Synonym", "General Sans", "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Modular scale (1.25 minor third on mobile, 1.333 on desktop) */
  --fs-step--1: clamp(0.78rem, 0.76rem + 0.10vw, 0.84rem);
  --fs-step-0:  clamp(0.95rem, 0.90rem + 0.20vw, 1.05rem);
  --fs-step-1:  clamp(1.10rem, 1.02rem + 0.40vw, 1.30rem);
  --fs-step-2:  clamp(1.35rem, 1.22rem + 0.65vw, 1.70rem);
  --fs-step-3:  clamp(1.70rem, 1.45rem + 1.20vw, 2.40rem);
  --fs-step-4:  clamp(2.10rem, 1.60rem + 2.40vw, 3.60rem);
  --fs-step-5:  clamp(2.80rem, 1.90rem + 4.20vw, 5.80rem);
  --fs-step-6:  clamp(3.40rem, 2.10rem + 6.20vw, 8.20rem);

  /* Spacing scale */
  --space-1: 0.4rem;
  --space-2: 0.75rem;
  --space-3: 1.1rem;
  --space-4: 1.75rem;
  --space-5: 2.75rem;
  --space-6: 4.25rem;
  --space-7: 6.5rem;
  --space-8: 10rem;

  --radius-1: 2px;
  --radius-2: 4px;
  --radius-pill: 999px;

  --container: 1280px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);

  --ease-out-expo: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out-soft: cubic-bezier(0.65, 0, 0.35, 1);
}

html { background: var(--ink); color: var(--bone); }
body {
  font-family: var(--font-body);
  font-size: var(--fs-step-0);
  font-weight: 400;
  letter-spacing: 0.005em;
  background: var(--ink);
  color: var(--bone);
  overflow-x: hidden;
}

/* Display defaults */
.display, h1, h2 {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.02;
  color: var(--bone);
}
h3, .display-sm {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

/* Kicker (small uppercase eyebrow) */
.kicker {
  font-family: var(--font-body);
  font-size: var(--fs-step--1);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--saffron);
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
}
.kicker::before {
  content: "";
  width: 1.6rem;
  height: 1px;
  background: var(--saffron);
  opacity: 0.8;
}

/* Mono accents */
.mono {
  font-family: var(--font-mono);
  font-feature-settings: "tnum";
  letter-spacing: 0.02em;
}

/* Utility */
.container {
  width: min(100% - var(--gutter) * 2, var(--container));
  margin-inline: auto;
}

.wide {
  width: min(100% - var(--gutter), 1640px);
  margin-inline: auto;
}

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
