/* ════════════════════════════════════════════════════════════════
   Catalyst Systems — Design System
   Drop-in tokens + base + components. Brand: "The Clearing".
   Fonts (load in <head>):
   Manrope (UI/body) + Fraunces (editorial display).
   ════════════════════════════════════════════════════════════════ */

:root{
  /* ── Color · core palette ── */
  --c-base:        #15171A;   /* near-black ground */
  --c-surface:     #1C2025;   /* raised panel */
  --c-surface-2:   #23282F;   /* raised panel, higher */
  --c-line:        rgba(124,135,145,.16);
  --c-line-strong: rgba(124,135,145,.30);

  --c-signal:      #EEF0F2;   /* primary text on dark */
  --c-muted:       #AEB6BD;   /* secondary text */
  --c-subtle:      #7C8791;   /* tertiary / captions (slate bright) */
  --c-slate:       #535C66;   /* slate field */
  --c-slate-deep:  #383F47;   /* slate, faint */

  --c-accent:      #E86A33;   /* terracotta — the warm point */
  --c-accent-ink:  #A8431A;   /* ember-ink — accent as text / on light */
  --c-accent-weak: rgba(232,106,51,.12);

  /* light surface (for light sections / on-light lockup) */
  --c-light:       #EEF0F2;
  --c-light-line:  rgba(21,23,26,.10);
  --c-on-light:    #15171A;

  /* semantic roles */
  --c-bg:        var(--c-base);
  --c-text:      var(--c-signal);
  --c-text-dim:  var(--c-muted);
  --c-link:      var(--c-accent);

  /* ── Type ── */
  --font-sans: 'Manrope', system-ui, sans-serif;
  --font-serif:'Fraunces', Georgia, serif;

  --fs-display: clamp(48px, 6vw, 84px);
  --fs-h1: clamp(40px, 4.4vw, 60px);
  --fs-h2: clamp(30px, 3vw, 40px);
  --fs-h3: 26px;
  --fs-h4: 20px;
  --fs-body: 18px;
  --fs-small: 15px;
  --fs-eyebrow: 13px;

  --lh-tight: 1.05;
  --lh-snug: 1.25;
  --lh-body: 1.6;

  /* ── Spacing (8pt-ish) ── */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px;
  --sp-9: 96px; --sp-10: 128px;

  /* ── Radius ── */
  --r-sm: 8px; --r-md: 12px; --r-lg: 18px; --r-card: 16px; --r-pill: 999px;

  /* ── Elevation ── */
  --shadow-1: 0 1px 2px rgba(0,0,0,.3);
  --shadow-2: 0 4px 18px rgba(0,0,0,.32);
  --shadow-3: 0 18px 48px rgba(0,0,0,.42);

  /* ── Motion & layout ── */
  --ease: cubic-bezier(.2,.7,.3,1);
  --t: 160ms var(--ease);
  --maxw: 1200px;
  --focus: 0 0 0 3px var(--c-accent-weak), 0 0 0 1.5px var(--c-accent);
}

/* ── Base ── */
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--c-bg); color:var(--c-text);
  font-family:var(--font-sans); font-size:var(--fs-body); line-height:var(--lh-body);
  font-weight:400; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection{background:var(--c-accent); color:var(--c-base);}

h1,h2,h3,h4{margin:0 0 .4em; color:var(--c-signal); letter-spacing:-.02em; line-height:var(--lh-snug);}
h1{font-size:var(--fs-h1); font-weight:700; letter-spacing:-.03em;}
h2{font-size:var(--fs-h2); font-weight:700; letter-spacing:-.025em;}
h3{font-size:var(--fs-h3); font-weight:600;}
h4{font-size:var(--fs-h4); font-weight:600;}
p{margin:0 0 1em; color:var(--c-text-dim); max-width:68ch;}
strong{color:var(--c-signal); font-weight:600;}
small{font-size:var(--fs-small);}

a{color:var(--c-link); text-decoration:none;}
a.link{color:var(--c-signal); text-decoration:underline; text-decoration-color:var(--c-line-strong);
  text-underline-offset:4px; transition:text-decoration-color var(--t), color var(--t);}
a.link:hover{color:var(--c-accent); text-decoration-color:var(--c-accent);}

/* ── Display & lead — editorial (Fraunces) ── */
.display{font-family:var(--font-serif); font-weight:400; font-size:var(--fs-display);
  line-height:var(--lh-tight); letter-spacing:-.015em; color:var(--c-signal); margin:0;}
.display em, .lead em{font-style:italic; color:var(--c-accent);}
.lead{font-family:var(--font-serif); font-weight:400; font-size:clamp(24px,2.6vw,34px);
  line-height:1.3; color:var(--c-muted); margin:0;}

.eyebrow{font-family:var(--font-sans); font-size:var(--fs-eyebrow); font-weight:700;
  letter-spacing:.28em; text-transform:uppercase; color:var(--c-accent);}

/* ── Layout helpers ── */
.container{max-width:var(--maxw); margin:0 auto; padding:0 var(--sp-6);}
.stack > * + *{margin-top:var(--sp-4);}
.cluster{display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center;}

/* ── Buttons ── */
.btn{
  --btn-bg:transparent; --btn-fg:var(--c-signal); --btn-bd:transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2);
  font-family:var(--font-sans); font-size:16px; font-weight:600; letter-spacing:-.01em;
  padding:13px 22px; border-radius:var(--r-pill); cursor:pointer; white-space:nowrap;
  background:var(--btn-bg); color:var(--btn-fg); border:1.5px solid var(--btn-bd);
  transition:background var(--t), border-color var(--t), color var(--t), transform var(--t);
}
.btn:active{transform:translateY(1px);}
.btn:focus-visible{outline:none; box-shadow:var(--focus);}
.btn--primary{--btn-bg:var(--c-accent); --btn-fg:#1a0f08; --btn-bd:var(--c-accent);}
.btn--primary:hover{--btn-bg:#f0824f; --btn-bd:#f0824f;}
.btn--secondary{--btn-bd:var(--c-line-strong); --btn-fg:var(--c-signal);}
.btn--secondary:hover{--btn-bd:var(--c-accent); --btn-fg:var(--c-accent);}
.btn--ghost{--btn-fg:var(--c-muted); padding-left:10px; padding-right:10px;}
.btn--ghost:hover{--btn-fg:var(--c-accent);}
.btn--lg{font-size:18px; padding:16px 28px;}
.btn[disabled]{opacity:.45; pointer-events:none;}

/* ── Badge / chip ── */
.badge{display:inline-flex; align-items:center; gap:var(--sp-2); font-size:13px; font-weight:600;
  letter-spacing:.04em; padding:5px 12px; border-radius:var(--r-pill);
  background:var(--c-accent-weak); color:var(--c-accent);}
.badge--outline{background:transparent; border:1px solid var(--c-line-strong); color:var(--c-subtle);}

/* ── Form fields ── */
.field{display:flex; flex-direction:column; gap:var(--sp-2);}
.field > label{font-size:14px; font-weight:600; color:var(--c-muted);}
.input{
  font-family:var(--font-sans); font-size:16px; color:var(--c-signal);
  background:var(--c-surface); border:1.5px solid var(--c-line); border-radius:var(--r-md);
  padding:13px 16px; transition:border-color var(--t), box-shadow var(--t); width:100%;
}
.input::placeholder{color:var(--c-subtle);}
.input:focus{outline:none; border-color:var(--c-accent); box-shadow:0 0 0 3px var(--c-accent-weak);}
.field .hint{font-size:13px; color:var(--c-subtle);}

/* ── Card ── */
.card{
  background:var(--c-surface); border:1px solid var(--c-line); border-radius:var(--r-card);
  padding:var(--sp-6); transition:transform var(--t), border-color var(--t), box-shadow var(--t);
}
.card--hover:hover{transform:translateY(-3px); border-color:var(--c-line-strong); box-shadow:var(--shadow-2);}
.card__eyebrow{margin-bottom:var(--sp-3);}

/* ── Divider ── */
.hr{height:1px; background:var(--c-line); border:0; margin:var(--sp-7) 0;}

/* ── Nav ── */
.nav{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-6);
  padding:var(--sp-4) 0;}
.nav__brand{display:flex; align-items:center;}
.nav__brand img{height:26px; display:block;}
.nav__links{display:flex; gap:var(--sp-6); list-style:none; margin:0; padding:0;}
.nav__links a{color:var(--c-muted); font-size:15px; font-weight:500; transition:color var(--t);}
.nav__links a:hover{color:var(--c-signal);}

/* ── Footer ── */
.footer{border-top:1px solid var(--c-line); padding:var(--sp-7) 0; color:var(--c-subtle);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--sp-4);
  font-size:14px;}

/* ── Light section ── */
.on-light{background:var(--c-light); color:var(--c-on-light);}
.on-light h1,.on-light h2,.on-light h3{color:var(--c-on-light);}
.on-light p{color:#41484e;}
.on-light .btn--secondary{--btn-fg:var(--c-on-light); --btn-bd:var(--c-light-line);}
