/* Portfolio A×B — tokens, compiled from design-system-ab/project/tokens.json. Black is the default theme. */
:root, [data-theme="black"] {
  --paper: #0d0d0d;
  --paper-raised: #161615;
  --sand: #1f1f1d;
  --ink: #edede8;
  --ink-muted: #8c8c86;
  --line-soft: #2e2e2b;
  --accent: #c8f031;
  --on-accent: #0d0d0d;
  --accent-text: #c8f031;
  --accent-tint: #2f3a0c;
  --focus: var(--accent-text);
}
[data-theme="white"] {
  --paper: #edede8;
  --paper-raised: #f6f6f2;
  --sand: #dcdcd5;
  --ink: #0d0d0d;
  --ink-muted: #5c5c57;
  --line-soft: #c4c4bd;
  --accent: #c8f031;
  --on-accent: #0d0d0d;
  --accent-text: #4d6400;
  --accent-tint: #e6f5b0;
  --focus: var(--accent-text);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 144px;
  --radius-0: 0px;
  --radius-pill: 999px;
  --radius-round: 50%;
  --grid-columns: 12;
  --grid-gutter: 24px;
  --page-margin: 48px;
  --page-margin-mobile: 20px;
  --page-max: 1600px;
  --measure: 38rem;
  --header-height: 64px;
  --ratio-landscape: 3 / 2;
  --ratio-classic: 4 / 3;
  --ratio-cinema: 16 / 9;
  --ratio-square: 1 / 1;
  --ratio-portrait: 4 / 5;
  --ratio-tall: 2 / 3;
  --ratio-poster: 1 / 1.414;
  --stroke-hairline: 1px;
  --stroke-rule: 2px;
  --stroke-focus: 2px;
  --font-display: "Archivo", "Arial Narrow", Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
}
.display-xl { font-family: var(--font-display); font-size: 160px; line-height: 0.86; font-weight: 800; letter-spacing: -0.04em; }
.display-l { font-family: var(--font-display); font-size: 112px; line-height: 0.88; font-weight: 800; letter-spacing: -0.035em; }
.display-m { font-family: var(--font-display); font-size: 64px; line-height: 0.92; font-weight: 800; letter-spacing: -0.03em; }
.h1 { font-family: var(--font-display); font-size: 56px; line-height: 58px; font-weight: 800; letter-spacing: -0.03em; }
.h2 { font-family: var(--font-display); font-size: 40px; line-height: 44px; font-weight: 800; letter-spacing: -0.025em; }
.h3 { font-family: var(--font-display); font-size: 28px; line-height: 34px; font-weight: 700; letter-spacing: -0.015em; }
.h4 { font-family: var(--font-display); font-size: 20px; line-height: 26px; font-weight: 700; letter-spacing: -0.01em; }
.counter-xl { font-family: var(--font-display); font-size: 160px; line-height: 0.86; font-weight: 200; letter-spacing: -0.02em; }
.counter-l { font-family: var(--font-display); font-size: 48px; line-height: 50px; font-weight: 200; letter-spacing: -0.01em; }
.quote { font-family: var(--font-display); font-size: 34px; line-height: 38px; font-weight: 300; letter-spacing: -0.01em; }
.body-l { font-family: var(--font-display); font-size: 21px; line-height: 31px; font-weight: 400; }
.body { font-family: var(--font-display); font-size: 17px; line-height: 27px; font-weight: 400; }
.body-s { font-family: var(--font-display); font-size: 15px; line-height: 23px; font-weight: 400; }
.meta { font-family: var(--font-mono); font-size: 13px; line-height: 18px; font-weight: 400; letter-spacing: 0.01em; }
.label { font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: 0.08em; }
.index { font-family: var(--font-mono); font-size: 13px; line-height: 18px; font-weight: 500; letter-spacing: 0.02em; }
.counter-xl, .counter-l, .quote { font-stretch: 62%; }
