/* =====================================================================
   VRÈ PARFÉ — Foundations
   Verdigris on Obsidian. Bronze as warmth. Three voices: serif, sans, mono.
   ===================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Forum&family=Cormorant+SC:wght@400;500;600&family=Spectral:wght@400;500;600&family=Manrope:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap");

:root {
  /* ─── Surface (Obsidian) ─────────────────────────────────────────── */
  --vp-obsidian-0:  #07090a;   /* Deepest — page background, void */
  --vp-obsidian-1:  #0c1011;   /* Panel base */
  --vp-obsidian-2:  #12171a;   /* Card */
  --vp-obsidian-3:  #1a2024;   /* Raised / hovered card */
  --vp-obsidian-4:  #222a2f;   /* Pressed / selected row */

  /* ─── Line work ──────────────────────────────────────────────────── */
  --vp-line:        #232c30;   /* Default border / divider */
  --vp-line-soft:   #1a2125;   /* Subtle inner divider */
  --vp-line-strong: #364148;   /* Header underline, focus outline */

  /* ─── Ink (text) ─────────────────────────────────────────────────── */
  --vp-ink:         #ecf0eb;   /* Primary text — warm porcelain */
  --vp-ink-2:       #a8b2ad;   /* Secondary text */
  --vp-ink-3:       #6c7570;   /* Muted / placeholder / label */
  --vp-ink-4:       #4a524e;   /* Disabled / faint */

  /* ─── Verdigris (oxidized copper green — the brand primary) ──────── */
  --vp-verdigris-50:  #e7f6ee;
  --vp-verdigris-100: #c8e9d8;
  --vp-verdigris-200: #97d5b7;
  --vp-verdigris-300: #6cbf99;
  --vp-verdigris-400: #4ec9a3;  /* ← brand primary, refined from #00ffa3 */
  --vp-verdigris-500: #3da888;
  --vp-verdigris-600: #2e8b6f;
  --vp-verdigris-700: #226e58;
  --vp-verdigris-800: #18503f;
  --vp-verdigris-900: #0e2f25;

  /* ─── Bronze (aged copper — premium / warmth / heritage) ─────────── */
  --vp-bronze-50:  #f6ede0;
  --vp-bronze-100: #ead4ad;
  --vp-bronze-200: #d9b478;
  --vp-bronze-300: #c89c52;
  --vp-bronze-400: #b07f3a;  /* ← brand accent */
  --vp-bronze-500: #8e6328;
  --vp-bronze-600: #6d4a1c;
  --vp-bronze-700: #4a3214;
  --vp-bronze-800: #2b1d0d;
  --vp-bronze-900: #1a1209;

  /* ─── Token semantics (REC / CO2 / H2O — desaturated, refined) ───── */
  --vp-rec:         #d4a84a;   /* Energy — warm gold (was #ffcc00 neon) */
  --vp-rec-bg:      #2a2010;
  --vp-co2:         var(--vp-verdigris-400);   /* Carbon — verdigris */
  --vp-co2-bg:      #11251d;
  --vp-h2o:         #6db6c4;   /* Water — refined teal (was #00eaff neon) */
  --vp-h2o-bg:      #112024;

  /* ─── Status ─────────────────────────────────────────────────────── */
  --vp-ok:          var(--vp-verdigris-400);
  --vp-ok-bg:       #11251d;
  --vp-warn:        #d49a4a;   /* Bronze-leaning warning */
  --vp-warn-bg:     #2a1e10;
  --vp-bad:         #c45a4e;   /* Refined red, not fire-engine */
  --vp-bad-bg:      #2a1311;
  --vp-info:        #6e9bc4;   /* Steel blue */
  --vp-info-bg:     #11192a;

  /* ─── Type — three voices ────────────────────────────────────────── */
  --vp-font-display: "Forum", "Cormorant SC", "Trajan Pro", "Spectral", Georgia, serif;
  --vp-font-sans:    "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --vp-font-mono:    "JetBrains Mono", "SF Mono", Consolas, "Courier New", monospace;

  /* ─── Scale (perfect fourth, slightly tightened) ─────────────────── */
  --vp-text-xs:   11px;
  --vp-text-sm:   12px;
  --vp-text-md:   13px;   /* body default */
  --vp-text-base: 14px;
  --vp-text-lg:   16px;
  --vp-text-xl:   20px;
  --vp-text-2xl:  26px;
  --vp-text-3xl:  34px;
  --vp-text-4xl:  46px;
  --vp-text-5xl:  64px;
  --vp-text-6xl:  88px;

  /* ─── Spacing (4px grid) ─────────────────────────────────────────── */
  --vp-space-0:  0;
  --vp-space-1:  4px;
  --vp-space-2:  8px;
  --vp-space-3:  12px;
  --vp-space-4:  16px;
  --vp-space-5:  20px;
  --vp-space-6:  24px;
  --vp-space-8:  32px;
  --vp-space-10: 40px;
  --vp-space-12: 48px;
  --vp-space-16: 64px;
  --vp-space-20: 80px;
  --vp-space-24: 96px;

  /* ─── Radii (intentionally restrained — engineering feel) ────────── */
  --vp-radius-xs: 2px;
  --vp-radius-sm: 4px;
  --vp-radius-md: 6px;
  --vp-radius-lg: 10px;
  --vp-radius-xl: 14px;
  --vp-radius-pill: 999px;

  /* ─── Elevation (subtle — we're on obsidian, not paper) ──────────── */
  --vp-shadow-sm: 0 1px 0 0 rgba(255,255,255,.02) inset, 0 1px 2px rgba(0,0,0,.4);
  --vp-shadow-md: 0 1px 0 0 rgba(255,255,255,.03) inset, 0 4px 16px rgba(0,0,0,.5);
  --vp-shadow-lg: 0 1px 0 0 rgba(255,255,255,.04) inset, 0 12px 40px rgba(0,0,0,.65);
  --vp-shadow-glow-verdigris: 0 0 0 1px rgba(78,201,163,.35), 0 0 24px -6px rgba(78,201,163,.45);
  --vp-shadow-glow-bronze:    0 0 0 1px rgba(176,127,58,.35), 0 0 24px -6px rgba(176,127,58,.4);
  --vp-shadow-focus: 0 0 0 1px var(--vp-obsidian-0), 0 0 0 3px rgba(78,201,163,.55);

  /* ─── Motion ─────────────────────────────────────────────────────── */
  --vp-ease:      cubic-bezier(.22,.61,.36,1);    /* default */
  --vp-ease-out:  cubic-bezier(.16,1,.3,1);       /* entrance */
  --vp-ease-in:   cubic-bezier(.7,0,.84,0);       /* exit */
  --vp-dur-1: 120ms;   /* hover */
  --vp-dur-2: 200ms;   /* press / toggle */
  --vp-dur-3: 320ms;   /* panel transition */
  --vp-dur-4: 600ms;   /* page-level */

  /* ─── Z-stack ────────────────────────────────────────────────────── */
  --vp-z-base:    1;
  --vp-z-sticky:  20;
  --vp-z-overlay: 100;
  --vp-z-modal:   200;
  --vp-z-toast:   300;
}

/* =====================================================================
   SEMANTIC ELEMENT STYLES
   Use these by default. Override with utility classes when needed.
   ===================================================================== */

body {
  background: var(--vp-obsidian-0);
  color: var(--vp-ink);
  font-family: var(--vp-font-sans);
  font-size: var(--vp-text-md);
  line-height: 1.5;
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ─── Display (serif — used for hero / wordmark / pull quotes) ─────── */
.vp-display,
h1.vp-display {
  font-family: var(--vp-font-display);
  font-weight: 500;
  font-size: var(--vp-text-5xl);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--vp-ink);
}
.vp-display-xl { font-size: var(--vp-text-6xl); line-height: 1; letter-spacing: -0.02em; }
.vp-display-italic { font-style: italic; }

/* ─── Headings (sans — used for product UI) ────────────────────────── */
h1, .vp-h1 { font-family: var(--vp-font-sans); font-weight: 600; font-size: var(--vp-text-3xl); line-height: 1.15; letter-spacing: -0.01em; margin: 0; }
h2, .vp-h2 { font-family: var(--vp-font-sans); font-weight: 600; font-size: var(--vp-text-2xl); line-height: 1.2;  letter-spacing: -0.005em; margin: 0; }
h3, .vp-h3 { font-family: var(--vp-font-sans); font-weight: 600; font-size: var(--vp-text-xl);  line-height: 1.3;  margin: 0; }
h4, .vp-h4 { font-family: var(--vp-font-sans); font-weight: 600; font-size: var(--vp-text-lg);  line-height: 1.35; margin: 0; }

/* ─── Body & labels ────────────────────────────────────────────────── */
p, .vp-p { font-size: var(--vp-text-md); line-height: 1.6; color: var(--vp-ink-2); margin: 0; text-wrap: pretty; }
.vp-lead { font-size: var(--vp-text-lg); line-height: 1.55; color: var(--vp-ink); }
.vp-small { font-size: var(--vp-text-sm); color: var(--vp-ink-2); }

/* The signature uppercase eyebrow — found across all three source UIs */
.vp-eyebrow,
.vp-label {
  font-family: var(--vp-font-sans);
  font-weight: 600;
  font-size: var(--vp-text-xs);
  line-height: 1.2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--vp-ink-3);
}

/* ─── Mono (data, IDs, addresses, hashes, telemetry) ───────────────── */
code, kbd, samp, pre, .vp-mono {
  font-family: var(--vp-font-mono);
  font-feature-settings: "calt", "ss02";
}
.vp-data       { font-family: var(--vp-font-mono); font-size: var(--vp-text-md); color: var(--vp-ink); }
.vp-data-lg    { font-family: var(--vp-font-mono); font-size: var(--vp-text-2xl); color: var(--vp-ink); font-weight: 500; letter-spacing: -0.01em; }
.vp-data-hero  { font-family: var(--vp-font-mono); font-size: var(--vp-text-5xl); color: var(--vp-verdigris-400); font-weight: 500; letter-spacing: -0.02em; line-height: 1; }
.vp-id         { font-family: var(--vp-font-mono); font-size: var(--vp-text-sm); color: var(--vp-ink-2); word-break: break-all; }

/* ─── Links ────────────────────────────────────────────────────────── */
a {
  color: var(--vp-verdigris-300);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in oklab, var(--vp-verdigris-400) 30%, transparent);
  transition: color var(--vp-dur-1) var(--vp-ease), border-color var(--vp-dur-1) var(--vp-ease);
}
a:hover { color: var(--vp-verdigris-200); border-bottom-color: var(--vp-verdigris-300); }

/* ─── Selection ────────────────────────────────────────────────────── */
::selection { background: color-mix(in oklab, var(--vp-verdigris-400) 35%, transparent); color: var(--vp-ink); }

/* ─── Scrollbar (subtle, on-brand) ─────────────────────────────────── */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--vp-line); border-radius: var(--vp-radius-pill); }
::-webkit-scrollbar-thumb:hover { background: var(--vp-line-strong); }

/* ─── Hairline decoration (used for section dividers) ──────────────── */
.vp-hairline {
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, transparent, var(--vp-line) 20%, var(--vp-line) 80%, transparent);
}
.vp-hairline-bronze {
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, transparent, var(--vp-bronze-500) 20%, var(--vp-bronze-400) 50%, var(--vp-bronze-500) 80%, transparent);
  opacity: .55;
}
