/* ============================================================
   BENEDICTUS — Design tokens
   Modes:   [data-theme="light" | "dark"]
   Variants:[data-variant="sober" | "luxe" | "editorial"]
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..700&family=Hanken+Grotesk:wght@300..800&family=Cormorant+Garamond:ital,wght@0,400..700;1,400..600&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* Brand constants (hue family is olive→gold) */
  --olive-950: #11160a;
  --olive-900: #1a210c;
  --olive-800: #283212;
  --olive-700: #38470f;
  --olive-600: #4d5d0e;
  --olive-500: #62731f;
  --olive-400: #84954a;
  --olive-300: #a9b878;
  --olive-200: #cdd9a8;
  --olive-100: #e6edcf;
  --olive-50:  #f4f7e6;

  --gold-600: #c98f3c;
  --gold-500: #e0a85c;
  --gold-400: #ecbe7e;
  --gold-300: #f3d3a4;
  --peach:    #f0c896;

  --cream:    #fbfcf3;
  --paper:    #f5f7e6;
  --ink:      #14180a;

  --pos: #4f7d2e;   /* positive / up */
  --pos-bg: rgba(79,125,46,.15);
  --neg: #c0532f;   /* negative / down */
  --neg-bg: rgba(192,83,47,.15);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------------- THEME : LIGHT ---------------- */
[data-theme="light"] {
  --bg:        var(--cream);
  --bg-alt:    var(--paper);
  --surface:   #ffffff;
  --surface-2: #f7f9ec;
  --border:    rgba(20,24,10,.10);
  --border-strong: rgba(20,24,10,.20);
  --text:      #1a210c;
  --text-muted:#5b6347;
  --text-faint:#8a906f;
  --primary:   var(--olive-600);
  --primary-hover: var(--olive-700);
  --on-primary:#fbfcf3;
  --accent:    var(--gold-600);
  --accent-soft: #f6e6cb;
  --halo:      radial-gradient(120% 120% at 80% 0%, #fcfdf2 0%, #eef3da 60%, #e6edcf 100%);
}

/* ---------------- THEME : DARK ---------------- */
[data-theme="dark"] {
  --bg:        var(--olive-950);
  --bg-alt:    #161c0c;
  --surface:   #1c230f;
  --surface-2: #232b13;
  --border:    rgba(236,242,219,.10);
  --border-strong: rgba(236,242,219,.20);
  --text:      #eef3da;
  --text-muted:#aeb78c;
  --text-faint:#7e865f;
  --primary:   #5d7016;
  --primary-hover: #6f841f;
  --on-primary:#f7fae6;
  --accent:    var(--gold-400);
  --accent-soft: rgba(236,190,126,.16);
  --halo:      radial-gradient(120% 120% at 80% 0%, #20280f 0%, #161c0a 55%, #0f1408 100%);
}

/* ---------------- VARIANT : SOBER ---------------- */
[data-variant="sober"] {
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Hanken Grotesk', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --display-weight: 500;
  --display-italic: 0;
  --display-track: -0.01em;
  --hero-size: clamp(2.6rem, 6vw, 5rem);
  --hero-leading: 1.05;
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 14px;
  --pill: 999px;
  --shadow: 0 1px 2px rgba(20,24,10,.04);
  --shadow-lg: 0 8px 30px rgba(20,24,10,.07);
  --card-border: 1px solid var(--border);
  --section-gap: clamp(4rem, 9vw, 8rem);
  --label-track: 0.18em;
  --accent-grad: var(--accent);
}

/* ---------------- VARIANT : LUXE ---------------- */
[data-variant="luxe"] {
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Hanken Grotesk', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --display-weight: 600;
  --display-italic: 0;
  --display-track: -0.015em;
  --hero-size: clamp(3rem, 7vw, 6rem);
  --hero-leading: 1.0;
  --radius-sm: 12px;
  --radius: 18px;
  --radius-lg: 28px;
  --pill: 999px;
  --shadow: 0 2px 10px rgba(20,24,10,.10);
  --shadow-lg: 0 30px 70px -20px rgba(20,24,10,.45), 0 0 0 1px var(--border);
  --card-border: 1px solid var(--border);
  --section-gap: clamp(5rem, 10vw, 10rem);
  --label-track: 0.22em;
  --accent-grad: linear-gradient(120deg, var(--gold-500), var(--peach));
}

/* ---------------- VARIANT : EDITORIAL ---------------- */
[data-variant="editorial"] {
  --font-display: 'Cormorant Garamond', 'Playfair Display', serif;
  --font-body: 'Hanken Grotesk', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --display-weight: 600;
  --display-italic: 1;
  --display-track: -0.02em;
  --hero-size: clamp(3.4rem, 9vw, 8rem);
  --hero-leading: 0.94;
  --radius-sm: 0px;
  --radius: 2px;
  --radius-lg: 3px;
  --pill: 2px;
  --shadow: none;
  --shadow-lg: none;
  --card-border: 1px solid var(--border-strong);
  --section-gap: clamp(4.5rem, 10vw, 9rem);
  --label-track: 0.32em;
  --accent-grad: var(--accent);
}

/* ---------------- base resets ---------------- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  transition: background .4s var(--ease), color .4s var(--ease);
}
.display {
  font-family: var(--font-display);
  font-weight: var(--display-weight);
  letter-spacing: var(--display-track);
  line-height: 1.08;
}
[data-variant="editorial"] .display { font-style: italic; }
.eyebrow {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: var(--label-track);
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 500;
}
.muted { color: var(--text-muted); }
.faint { color: var(--text-faint); }
::selection { background: var(--accent-soft); color: var(--text); }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, textarea { font-family: inherit; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 999px; }
::-webkit-scrollbar-track { background: transparent; }
