/* ============================================================
   wait, what. Design Tokens — CSS
   v2.0.0 · Generated from tokens.json · Do not edit by hand.
   Edit tokens.json and regenerate.
   ============================================================ */

:root {
  /* === COLOR · light mode (canonical) ============================ */
  --ww-paper:           #FCFCFA;     /* DEFAULT — slightly whiter, still warm; works for screen + document */
  --ww-paper-subtle:    #F4F4F0;

  /* Substrate variants — opt-in via :root[data-ww-paper="..."] */
  --ww-paper-bright:    #FCFCFA;     /* alias of default */
  --ww-paper-cream:     #FAFAF7;     /* original creamy paper — long-form print, archival memo */
  --ww-paper-warm:      #F5F4EE;     /* deeper paper — fund prospectus, archival print */
  --ww-paper-pure:      #FFFFFF;     /* true white — print substrate only, never on screen */
  --ww-ink:             #0A0A0A;
  --ww-ink-secondary:   #3A3A38;
  --ww-ink-muted:       #6E6E68;
  --ww-ink-subtle:      #A8A8A0;
  --ww-rule:            #D8D8D0;
  --ww-rule-strong:     #0A0A0A;
  /* Signals — semantic, not decorative. Each <2 % of surface, direct-labeled. */
  --ww-signal:          #D40000;     /* attention · exception · emphasis · single most important figure */
  --ww-signal-ink:      #A50000;     /* print-safe red */
  --ww-positive:        #1F7A3A;     /* confirmation · closed deal · positive delta · realised */
  --ww-positive-ink:    #155A2A;     /* print-safe green */

  /* === TYPOGRAPHY ============================================== */
  --ww-font-primary:    'Söhne', 'Inter Tight', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --ww-font-alt:        'ABC Diatype', 'Inter Tight', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --ww-font-mono:       'Söhne Mono', 'Berkeley Mono', 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, monospace;
  --ww-font-fallback:   'Inter Tight', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  /* Type scale — major third (1.250) on 16px base */
  --ww-text-xs:         0.750rem;   /* 12.0px — captions, folios */
  --ww-text-sm:         0.813rem;   /* 13.0px — labels, tags */
  --ww-text-base:       1.000rem;   /* 16.0px — body */
  --ww-text-md:         1.125rem;   /* 18.0px — lead, callout */
  --ww-text-lg:         1.250rem;   /* 20.0px — h4 */
  --ww-text-xl:         1.563rem;   /* 25.0px — h3 */
  --ww-text-2xl:        1.953rem;   /* 31.25px — h2 */
  --ww-text-3xl:        2.441rem;   /* 39.0px — h1 */
  --ww-text-4xl:        3.052rem;   /* 48.8px — hero */
  --ww-text-5xl:        3.815rem;   /* 61.0px — display */

  /* Weights — Söhne Buch / Kräftig / Halbfett */
  --ww-weight-regular:  400;
  --ww-weight-medium:   500;
  --ww-weight-semibold: 600;

  /* Leading */
  --ww-leading-tight:   1.10;
  --ww-leading-snug:    1.20;
  --ww-leading-heading: 1.25;
  --ww-leading-body:    1.55;
  --ww-leading-loose:   1.70;

  /* Tracking */
  --ww-track-display:    -0.020em;
  --ww-track-heading:    -0.012em;
  --ww-track-body:        0.000em;
  --ww-track-caption:     0.005em;
  --ww-track-label:       0.080em;
  --ww-track-label-wide:  0.140em;

  /* === GRID & SPACE ============================================ */
  --ww-baseline:         8px;
  --ww-content-max:      1200px;
  --ww-text-max:         720px;     /* ~66ch at 16px */
  --ww-text-narrow:      560px;     /* ~52ch */
  --ww-gutter:           24px;

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

  /* === RULES ================================================== */
  --ww-rule-hairline:    1px;
  --ww-rule-thin:        1px;
  --ww-rule-medium:      2px;
  --ww-rule-heavy:       4px;

  /* === MOTION ================================================= */
  --ww-duration-fast:    150ms;
  --ww-duration-base:    200ms;
  --ww-easing:           cubic-bezier(0.4, 0.0, 0.2, 1);
}

/* === SUBSTRATE VARIANTS — light mode opt-ins ================== */
:root[data-ww-paper="cream"]  { --ww-paper: var(--ww-paper-cream);  --ww-paper-subtle: #F2F2EE; }
:root[data-ww-paper="warm"]   { --ww-paper: var(--ww-paper-warm);   --ww-paper-subtle: #ECEBE4; }
:root[data-ww-paper="pure"]   { --ww-paper: var(--ww-paper-pure);   --ww-paper-subtle: #F4F4F2; }

/* === DARK MODE — web only, opt-in.
   Documents (PDF, PPTX, DOCX) and print are ALWAYS light.
   Auto-dark is OFF by default; require the .ww-auto-dark class
   on <html> to honour `prefers-color-scheme: dark`.  */
:root[data-ww-mode="dark"],
:root.ww-auto-dark[data-ww-mode="auto"] {
  --ww-paper:           #0A0A0A;
  --ww-paper-subtle:    #141413;
  --ww-ink:             #FAFAF7;
  --ww-ink-secondary:   #C8C8C0;
  --ww-ink-muted:       #8A8A82;
  --ww-ink-subtle:      #5A5A55;
  --ww-rule:            #2A2A28;
  --ww-rule-strong:     #FAFAF7;
  --ww-signal:          #FF3B3B;
  --ww-signal-ink:      #FF6B6B;
  --ww-positive:        #5BCC85;
  --ww-positive-ink:    #8BE0AA;
}
@media (prefers-color-scheme: dark) {
  :root.ww-auto-dark:not([data-ww-mode="light"]) {
    --ww-paper:           #0A0A0A;
    --ww-paper-subtle:    #141413;
    --ww-ink:             #FAFAF7;
    --ww-ink-secondary:   #C8C8C0;
    --ww-ink-muted:       #8A8A82;
    --ww-ink-subtle:      #5A5A55;
    --ww-rule:            #2A2A28;
    --ww-rule-strong:     #FAFAF7;
    --ww-signal:          #FF3B3B;
    --ww-signal-ink:      #FF6B6B;
    --ww-positive:        #5BCC85;
    --ww-positive-ink:    #8BE0AA;
  }
}

/* === BASELINE RESET ========================================== */
*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "ss01" 1;
  hanging-punctuation: first last;
}

body {
  margin: 0;
  font-family: var(--ww-font-primary);
  font-size: var(--ww-text-base);
  font-weight: var(--ww-weight-regular);
  line-height: var(--ww-leading-body);
  color: var(--ww-ink-secondary);
  background: var(--ww-paper);
}

/* === TYPE PRIMITIVES ========================================= */
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--ww-font-primary);
  color: var(--ww-ink);
  font-weight: var(--ww-weight-medium);
  line-height: var(--ww-leading-heading);
  letter-spacing: var(--ww-track-heading);
  text-wrap: balance;
}

h1 { font-size: var(--ww-text-3xl); letter-spacing: var(--ww-track-display); font-weight: var(--ww-weight-regular); }
h2 { font-size: var(--ww-text-2xl); }
h3 { font-size: var(--ww-text-xl); }
h4 { font-size: var(--ww-text-lg); font-weight: var(--ww-weight-semibold); }

p {
  margin: 0 0 var(--ww-space-3);
  max-width: var(--ww-text-max);
  text-wrap: pretty;
}

p.ww-lead {
  font-size: var(--ww-text-md);
  color: var(--ww-ink);
  max-width: var(--ww-text-narrow);
}

/* === SECTION PRIMITIVES ====================================== */
.ww-section-number {
  display: inline-block;
  font-size: var(--ww-text-sm);
  font-weight: var(--ww-weight-medium);
  letter-spacing: var(--ww-track-label-wide);
  text-transform: uppercase;
  color: var(--ww-signal);
  margin-bottom: var(--ww-space-4);
}

.ww-tag {
  display: inline-block;
  font-size: var(--ww-text-xs);
  font-weight: var(--ww-weight-medium);
  letter-spacing: var(--ww-track-label-wide);
  text-transform: uppercase;
  color: var(--ww-ink-muted);
}

.ww-rule {
  border: 0;
  border-top: var(--ww-rule-thin) solid var(--ww-rule);
  margin: var(--ww-space-6) 0 var(--ww-space-5);
}
.ww-rule--strong { border-top-color: var(--ww-rule-strong); }
.ww-rule--signal { border-top-color: var(--ww-signal); }

.ww-callout {
  border-left: var(--ww-rule-medium) solid var(--ww-signal);
  background: var(--ww-paper-subtle);
  padding: var(--ww-space-4);
  margin: var(--ww-space-5) 0;
  font-size: var(--ww-text-md);
  color: var(--ww-ink);
  font-weight: var(--ww-weight-regular);
  max-width: var(--ww-text-max);
}

/* CTA convention */
.ww-cta {
  display: inline-block;
  color: var(--ww-ink);
  text-decoration: none;
  font-weight: var(--ww-weight-medium);
  border-bottom: 1px solid var(--ww-ink);
  padding-bottom: 1px;
  transition: color var(--ww-duration-fast) var(--ww-easing),
              border-color var(--ww-duration-fast) var(--ww-easing);
}
.ww-cta::before { content: "→\00a0"; color: var(--ww-signal); }
.ww-cta:hover { color: var(--ww-signal); border-color: var(--ww-signal); }

/* Tables — horizontal rules only */
table.ww-table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--ww-space-5) 0;
  font-size: var(--ww-text-base);
}
table.ww-table th {
  text-align: left;
  font-size: var(--ww-text-sm);
  font-weight: var(--ww-weight-medium);
  letter-spacing: var(--ww-track-label);
  text-transform: uppercase;
  color: var(--ww-ink);
  padding: var(--ww-space-2) var(--ww-space-3) var(--ww-space-2) 0;
  border-bottom: var(--ww-rule-medium) solid var(--ww-ink);
}
table.ww-table td {
  padding: var(--ww-space-3) var(--ww-space-3) var(--ww-space-3) 0;
  border-bottom: var(--ww-rule-thin) solid var(--ww-rule);
  color: var(--ww-ink-secondary);
  vertical-align: top;
}
table.ww-table td strong { color: var(--ww-ink); font-weight: var(--ww-weight-medium); }

/* Stats — large numeral, small label */
.ww-stat__value {
  display: block;
  font-size: var(--ww-text-3xl);
  font-weight: var(--ww-weight-regular);
  line-height: var(--ww-leading-tight);
  color: var(--ww-ink);
  letter-spacing: var(--ww-track-display);
  font-variant-numeric: tabular-nums lining-nums;
}
.ww-stat__label {
  display: block;
  margin-top: var(--ww-space-1);
  font-size: var(--ww-text-xs);
  font-weight: var(--ww-weight-medium);
  letter-spacing: var(--ww-track-label);
  text-transform: uppercase;
  color: var(--ww-ink-muted);
}

/* Numerals throughout — tabular for tables and data */
.ww-num,
table.ww-table td,
.ww-stat__value { font-variant-numeric: tabular-nums lining-nums; }

/* Folio (page number / running head) */
.ww-folio {
  font-size: var(--ww-text-xs);
  font-weight: var(--ww-weight-medium);
  letter-spacing: var(--ww-track-label);
  color: var(--ww-signal);
}

/* Print-specific overrides */
@media print {
  :root {
    --ww-paper: #FFFFFF;          /* True white for print substrate */
    --ww-signal: #A50000;         /* Slightly darker for ink coverage */
  }
  body { font-size: 10pt; }
  .ww-section-number { color: var(--ww-signal-ink); }
  a.ww-cta { color: var(--ww-ink); border-color: var(--ww-ink); }
}
