/* Hallmark · macrostructure: Marquee Hero · tone: elegant editorial luxury · anchor hue: forest-green 148
 * theme: custom (vibe: "quiet luxury studio, ivory & seed" · paper oklch(97.4% 0.006 88) light ·
 * accent oklch(45% 0.088 148) forest-green · Fraunces + Jost)
 * axes: paper-band light / display-style high-contrast-serif / accent-hue chromatic-green
 * Hallmark · pre-emit critique: P5 H5 E5 S4 R4 V5
 */

:root {
  /* ---- Surfaces (warm ivory paper) ---- */
  --color-paper: oklch(97.4% 0.006 88);
  --color-paper-2: oklch(95% 0.009 86);
  --color-paper-3: oklch(91.5% 0.012 84);
  --color-paper-card: oklch(99.2% 0.004 90);
  --color-paper-veil: oklch(97.4% 0.006 88 / 0.78);
  --color-paper-veil-strong: oklch(97.4% 0.006 88 / 0.97);

  /* ---- Ink (warm charcoal) ---- */
  --color-ink: oklch(23% 0.014 72);
  --color-ink-dim: oklch(45% 0.013 72);
  --color-ink-faint: oklch(53% 0.011 72);

  /* ---- Hairlines ---- */
  --color-line: oklch(23% 0.014 72 / 0.16);
  --color-line-soft: oklch(23% 0.014 72 / 0.085);

  /* ---- Accents ---- */
  --color-accent: oklch(45% 0.088 148);
  --color-accent-hover: oklch(38% 0.082 150);
  --color-accent-dim: oklch(45% 0.088 148 / 0.45);
  --color-accent-wash: oklch(45% 0.088 148 / 0.07);
  --color-accent-leaf: oklch(45% 0.088 148 / 0.10);
  --color-accent-ink: oklch(97.4% 0.006 88);
  --color-brass: oklch(51% 0.095 72);
  --color-brass-wash: oklch(51% 0.095 72 / 0.08);
  --color-focus: oklch(45% 0.088 148);

  /* ---- Light-surface primitives ----
   * Referenced by :root below AND by .contact-form, which restores a paper
   * island inside the inverted forest band. Keep these as the single source
   * of the light palette so both scopes stay in step. */
  --paper-l: oklch(97.4% 0.006 88);
  --paper-card-l: oklch(99.2% 0.004 90);
  --ink-l: oklch(23% 0.014 72);
  --ink-dim-l: oklch(45% 0.013 72);
  --ink-faint-l: oklch(53% 0.011 72);
  --line-l: oklch(23% 0.014 72 / 0.16);
  --line-soft-l: oklch(23% 0.014 72 / 0.085);
  --accent-l: oklch(45% 0.088 148);
  --accent-hover-l: oklch(38% 0.082 150);

  /* ---- Form surfaces & states ---- */
  --color-form-surface: var(--paper-card-l);
  --color-field: oklch(23% 0.014 72 / 0.035);
  --color-field-hover: oklch(23% 0.014 72 / 0.065);
  --color-field-border: oklch(23% 0.014 72 / 0.52);
  --color-ring: oklch(45% 0.088 148 / 0.22);
  --color-danger: oklch(50% 0.18 27);
  --color-danger-wash: oklch(50% 0.18 27 / 0.07);
  --field-l: oklch(23% 0.014 72 / 0.035);
  --field-hover-l: oklch(23% 0.014 72 / 0.065);
  --field-border-l: oklch(23% 0.014 72 / 0.52);
  --ring-l: oklch(45% 0.088 148 / 0.22);
  --danger-l: oklch(50% 0.18 27);
  --danger-wash-l: oklch(50% 0.18 27 / 0.07);
  --icon-chevron-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1L7 7L13 1' stroke='%235c584f' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  --icon-chevron-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1L7 7L13 1' stroke='%23d8ded2' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  --icon-chevron: var(--icon-chevron-dark);

  /* ---- Inverted bands (contact / footer) ---- */
  --color-forest: oklch(30% 0.055 152);
  --color-forest-2: oklch(25% 0.048 154);
  --color-forest-3: oklch(34.5% 0.052 152);
  --color-field-up: oklch(96.5% 0.010 90 / 0.07);
  --color-field-up-hover: oklch(96.5% 0.010 90 / 0.12);
  --color-field-up-border: oklch(96.5% 0.010 90 / 0.38);
  --color-ring-up: oklch(84% 0.115 138 / 0.28);
  --color-danger-up: oklch(78% 0.135 27);
  --color-danger-up-wash: oklch(78% 0.135 27 / 0.10);
  --color-charcoal: oklch(19% 0.012 74);
  --color-charcoal-2: oklch(24% 0.013 74);
  --color-ink-up: oklch(96.5% 0.010 90);
  --color-ink-up-dim: oklch(81% 0.014 92);
  --color-ink-up-faint: oklch(64% 0.013 92);
  --color-line-up: oklch(96.5% 0.010 90 / 0.20);
  --color-line-up-soft: oklch(96.5% 0.010 90 / 0.10);
  --color-accent-up: oklch(84% 0.115 138);

  /* ---- Gradients ---- */
  --grad-footmark: linear-gradient(180deg, oklch(96.5% 0.010 90 / 0.16), oklch(96.5% 0.010 90 / 0.02));
  --grad-rule: linear-gradient(90deg, var(--color-accent), oklch(45% 0.088 148 / 0));

  /* ---- Depth ---- */
  --shadow-sm: 0 2px 8px -3px oklch(23% 0.014 72 / 0.14);
  --shadow-soft: 0 18px 44px -26px oklch(23% 0.014 72 / 0.42), 0 2px 10px -6px oklch(23% 0.014 72 / 0.16);
  --shadow-lift: 0 34px 72px -30px oklch(23% 0.014 72 / 0.46), 0 4px 16px -8px oklch(23% 0.014 72 / 0.18);

  /* ---- Type ---- */
  --font-display: "Fraunces", "Georgia", serif;
  --font-body: "Jost", "Segoe UI", sans-serif;
  --text-xs: 0.8125rem;
  --text-sm: 0.9375rem;
  --text-body: 1.0625rem;
  --text-lg: 1.25rem;
  --text-xl: 1.625rem;
  --text-2xl: clamp(1.75rem, 3.2vw, 2.375rem);
  --text-3xl: clamp(2.25rem, 4.5vw, 3.5rem);
  --text-display: clamp(2.875rem, 8.4vw, 7.25rem);

  /* ---- Space (4pt scale) ---- */
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;
  --space-5xl: 8rem;

  /* ---- Motion ---- */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in: cubic-bezier(0.55, 0, 0.85, 0.4);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 180ms;
  --dur-med: 400ms;
  --dur-slow: 700ms;

  /* ---- Shape ---- */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --radius-pill: 999px;
  --rule-hairline: 1px solid var(--color-line);
  /* 2×0.8125rem padding + 1.5 line-height on --text-body + 2px border */
  --field-h: 3.375rem;
  --container: 1240px;
  --gutter: clamp(1.25rem, 5vw, 4rem);
}
