/* ============================================================
   One Zyme · Signal v1.0 · Colors & Type
   Source of truth: assets/onezyme-brand-guidelines-signal.pdf
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,wght@0,400..900;1,400..900&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  /* ─── PALETTE (Signal v1.0) ─────────────────────────────── */
  --oz-midnight:        #0A1628;   /* PRIMARY · authority */
  --oz-midnight-90:     rgba(10, 22, 40, 0.90);
  --oz-midnight-70:     rgba(10, 22, 40, 0.70);
  --oz-midnight-50:     rgba(10, 22, 40, 0.50);
  --oz-midnight-15:     rgba(10, 22, 40, 0.15);

  --oz-cyan:            #06B6D4;   /* ACCENT · the AI signal (≤15% of any surface) */
  --oz-cyan-soft:       rgba(6, 182, 212, 0.12);
  --oz-cyan-ring:       rgba(6, 182, 212, 0.35);

  --oz-bone:            #F4F0E6;   /* SURFACE */
  --oz-bone-deep:       #ECE7D9;
  --oz-bone-line:       #E0DACB;

  --oz-steel:           #2A4A6B;   /* SECONDARY */
  --oz-steel-soft:      rgba(42, 74, 107, 0.10);

  --oz-mist:            #DCE7F0;   /* COOL TINT · cards · dividers on light */
  --oz-mist-deep:       #C5D4E2;

  /* Inks (for body text against light surfaces) */
  --oz-ink-1:           var(--oz-midnight);
  --oz-ink-2:           #3D4654;
  --oz-ink-3:           #6E7787;
  --oz-ink-4:           #9AA3B0;

  /* Bone-on-dark inks */
  --oz-on-dark-1:       var(--oz-bone);
  --oz-on-dark-2:       rgba(244, 240, 230, 0.72);
  --oz-on-dark-3:       rgba(244, 240, 230, 0.48);
  --oz-on-dark-line:    rgba(244, 240, 230, 0.12);
  --oz-on-dark-line-2:  rgba(244, 240, 230, 0.20);

  /* Semantic */
  --oz-fg-1:            var(--oz-midnight);
  --oz-fg-2:            var(--oz-ink-2);
  --oz-fg-3:            var(--oz-ink-3);
  --oz-fg-mute:         var(--oz-ink-4);

  --oz-bg-1:            var(--oz-bone);
  --oz-bg-2:            #FBF9F3;             /* paper on bone */
  --oz-bg-deep:         var(--oz-midnight);

  --oz-border:          var(--oz-bone-line);
  --oz-border-strong:   var(--oz-midnight);

  --oz-link:            var(--oz-steel);
  --oz-link-hover:      var(--oz-midnight);

  --oz-accent:          var(--oz-cyan);
  --oz-accent-2:        var(--oz-steel);

  /* ─── TYPE ──────────────────────────────────────────────── */
  /* GT Sectra is licensed; Source Serif 4 is the substituted display until .woff2 are dropped in fonts/.  */
  --oz-font-display:    'GT Sectra', 'Tiempos Headline', 'Source Serif 4', 'Source Serif Pro', Georgia, serif;
  --oz-font-sans:       'Inter', 'GT America', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --oz-font-mono:       'JetBrains Mono', 'Söhne Mono', 'IBM Plex Mono', ui-monospace, SFMono-Regular, monospace;

  --oz-weight-regular:  400;
  --oz-weight-medium:   500;
  --oz-weight-semibold: 600;
  --oz-weight-bold:     700;

  --oz-tracking-tight:  -0.022em;
  --oz-tracking-snug:   -0.012em;
  --oz-tracking-normal: 0;
  --oz-tracking-caps:   0.12em;

  --oz-leading-tight:   1.05;
  --oz-leading-snug:    1.25;
  --oz-leading-normal:  1.5;
  --oz-leading-loose:   1.6;

  /* Type scale (px) */
  --oz-size-display-xl: 96px;
  --oz-size-display:    72px;
  --oz-size-h1:         56px;
  --oz-size-h2:         40px;
  --oz-size-h3:         28px;
  --oz-size-h4:         20px;
  --oz-size-body-lg:    19px;
  --oz-size-body:       16px;
  --oz-size-body-sm:    14px;
  --oz-size-caption:    13px;
  --oz-size-micro:      11px;

  /* ─── SPACE / RADII / MOTION ───────────────────────────── */
  --oz-radius-sm:       6px;
  --oz-radius-md:       10px;
  --oz-radius-lg:       16px;
  --oz-radius-xl:       24px;
  --oz-radius-pill:     9999px;

  --oz-space-1:         4px;
  --oz-space-2:         8px;
  --oz-space-3:         12px;
  --oz-space-4:         16px;
  --oz-space-5:         24px;
  --oz-space-6:         32px;
  --oz-space-7:         48px;
  --oz-space-8:         64px;
  --oz-space-9:         96px;
  --oz-space-10:        128px;

  /* Shadows are used sparingly. NEVER on the mark or signal tile (per guidelines). */
  --oz-shadow-card:     0 1px 0 var(--oz-bone-line), 0 8px 24px rgba(10, 22, 40, 0.06);
  --oz-shadow-lift:     0 18px 48px rgba(10, 22, 40, 0.12);

  --oz-ease:            cubic-bezier(0.22, 1, 0.36, 1); /* @kind other */
  --oz-dur-fast:        140ms;                          /* @kind other */
  --oz-dur-med:         220ms;                          /* @kind other */
  --oz-dur-slow:        420ms;                          /* @kind other */
}

/* ─── BASE TYPOGRAPHY ─────────────────────────────────────── */
html, body{
  font-family: var(--oz-font-sans);
  font-size: var(--oz-size-body);
  line-height: var(--oz-leading-normal);
  color: var(--oz-fg-1);
  background: var(--oz-bg-1);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.oz-display-xl, .oz-display{
  font-family: var(--oz-font-display);
  font-weight: var(--oz-weight-medium);
  letter-spacing: var(--oz-tracking-tight);
  line-height: var(--oz-leading-tight);
  color: var(--oz-fg-1);
  text-wrap: balance;
}
.oz-display-xl{ font-size: var(--oz-size-display-xl); }
.oz-display   { font-size: var(--oz-size-display); }

h1, .oz-h1{
  font-family: var(--oz-font-display);
  font-size: var(--oz-size-h1);
  line-height: var(--oz-leading-snug);
  letter-spacing: var(--oz-tracking-tight);
  font-weight: var(--oz-weight-medium);
  color: var(--oz-fg-1);
  text-wrap: balance;
}
h2, .oz-h2{
  font-family: var(--oz-font-display);
  font-size: var(--oz-size-h2);
  line-height: var(--oz-leading-snug);
  letter-spacing: var(--oz-tracking-tight);
  font-weight: var(--oz-weight-medium);
  color: var(--oz-fg-1);
  text-wrap: balance;
}
h3, .oz-h3{
  font-family: var(--oz-font-sans);
  font-size: var(--oz-size-h3);
  line-height: var(--oz-leading-snug);
  letter-spacing: var(--oz-tracking-snug);
  font-weight: var(--oz-weight-semibold);
  color: var(--oz-fg-1);
}

/* The 'Zyme' italic convention — emphasized brand setting */
.oz-italic-zyme em,
em.oz-italic-zyme{
  font-style: italic;
  font-weight: inherit;
}

/* Body */
p, .oz-body{
  font-size: var(--oz-size-body);
  line-height: var(--oz-leading-loose);
  color: var(--oz-fg-2);
}
.oz-body-lg{
  font-size: var(--oz-size-body-lg);
  line-height: var(--oz-leading-loose);
  color: var(--oz-fg-2);
}
.oz-caption{
  font-size: var(--oz-size-caption);
  color: var(--oz-fg-3);
}
.oz-eyebrow{
  font-size: var(--oz-size-micro);
  letter-spacing: var(--oz-tracking-caps);
  text-transform: uppercase;
  font-weight: var(--oz-weight-semibold);
  color: var(--oz-fg-3);
}
.oz-mono, code, kbd, samp{
  font-family: var(--oz-font-mono);
  font-variant-numeric: tabular-nums;
}

/* The "split" treatment for headlines like "See first. Move first." */
.oz-split > .oz-split-accent{ color: var(--oz-steel); }
