/* Letterpress design tokens — generated from tokens.json. Themes: light, dark (default: light).
   Switch theme with <html data-theme="dark">. */
:root, [data-theme="light"] {
  --paper: #f3ede2;
  --paper-raised: #faf6ee;
  --paper-sunk: #e8e0d1;
  --rule: #d4c8b5;
  --rule-strong: #8a7c6b;
  --ink: #1e1a16;
  --ink-soft: #5b5148;
  --accent: var(--oxblood);
  --on-accent: #fbf6ec;
  --oxblood: #7a1f2c;
  --navy: #1f3352;
  --forest: #234a3a;
  --copper: #8a4f24;
  --shade: rgba(80, 58, 34, 0.34);
  --gleam: rgba(255, 255, 255, 0.85);
  --focus: #2b4c86;
  --scrim: rgba(30, 26, 22, 0.42);
  --impress-kiss: inset 0 1px 2px rgba(80, 58, 34, 0.22), 0 1px 0 rgba(255, 255, 255, 0.75);
  --impress: inset 0 2px 3px rgba(80, 58, 34, 0.3), inset 0 -1px 0 rgba(255, 255, 255, 0.5), 0 1px 0 rgba(255, 255, 255, 0.9);
  --impress-deep: inset 0 3px 6px rgba(80, 58, 34, 0.44), inset 0 1px 2px rgba(80, 58, 34, 0.3), 0 1px 0 rgba(255, 255, 255, 0.95);
  --emboss: inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -1px 0 rgba(80, 58, 34, 0.12), 0 1px 2px rgba(80, 58, 34, 0.22);
  --shadow-stock: 0 1px 1px rgba(60, 42, 22, 0.08), 0 10px 24px -14px rgba(60, 42, 22, 0.32);
  --shadow-lift: 0 2px 2px rgba(60, 42, 22, 0.08), 0 22px 40px -18px rgba(60, 42, 22, 0.38);
  --type-deboss: 0 1px 0 rgba(255, 255, 255, 0.8);
  color-scheme: light;
}
[data-theme="dark"] {
  --paper: #15130f;
  --paper-raised: #1d1a15;
  --paper-sunk: #0f0d0a;
  --rule: #3a332a;
  --rule-strong: #7a6c5c;
  --ink: #ece2d2;
  --ink-soft: #b2a493;
  --accent: var(--copper);
  --on-accent: #1a1511;
  --oxblood: #d4878c;
  --navy: #9db1d3;
  --forest: #93bda3;
  --copper: #d2945f;
  --shade: rgba(0, 0, 0, 0.72);
  --gleam: rgba(255, 232, 205, 0.11);
  --focus: #e7b58a;
  --scrim: rgba(5, 4, 3, 0.68);
  --impress-kiss: inset 0 1px 2px rgba(0, 0, 0, 0.6), 0 1px 0 rgba(255, 232, 205, 0.07);
  --impress: inset 0 2px 4px rgba(0, 0, 0, 0.8), inset 0 -1px 0 rgba(255, 232, 205, 0.05), 0 1px 0 rgba(255, 232, 205, 0.09);
  --impress-deep: inset 0 3px 7px rgba(0, 0, 0, 0.95), inset 0 1px 2px rgba(0, 0, 0, 0.7), 0 1px 0 rgba(255, 232, 205, 0.1);
  --emboss: inset 0 1px 0 rgba(255, 232, 205, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.6);
  --shadow-stock: 0 1px 1px rgba(0, 0, 0, 0.5), 0 12px 28px -14px rgba(0, 0, 0, 0.8);
  --shadow-lift: 0 2px 2px rgba(0, 0, 0, 0.5), 0 24px 44px -18px rgba(0, 0, 0, 0.9);
  --type-deboss: 0 1px 0 rgba(255, 232, 205, 0.08);
  color-scheme: dark;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --radius-none: 0px;
  --radius-plate: 3px;
  --radius-well: 6px;
  --radius-groove: 999px;
  --ease-platen: cubic-bezier(0.55, 0, 0.25, 1);
  --ease-release: cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-feed: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-lever: cubic-bezier(0.34, 1.32, 0.5, 1);
  --ease-roll: cubic-bezier(0.45, 0.05, 0.35, 1);
  --dur-kiss: 90ms;
  --dur-press: 160ms;
  --dur-lift: 260ms;
  --dur-lever: 360ms;
  --dur-feed: 640ms;
  --dur-impress: 900ms;
  --dur-roll: 1000ms;
  --font-display: "Abril Fatface", "Libre Caslon Text", Georgia, serif;
  --font-body: "Libre Caslon Text", Georgia, "Times New Roman", serif;
  --type-display-family: var(--font-display);
  --type-display-size: 64px;
  --type-display-line: 68px;
  --type-display-weight: 400;
  --type-display-tracking: -0.01em;
  --type-headline-family: var(--font-display);
  --type-headline-size: 40px;
  --type-headline-line: 46px;
  --type-headline-weight: 400;
  --type-title-family: var(--font-display);
  --type-title-size: 26px;
  --type-title-line: 32px;
  --type-title-weight: 400;
  --type-lede-family: var(--font-body);
  --type-lede-size: 20px;
  --type-lede-line: 30px;
  --type-lede-weight: 400;
  --type-body-family: var(--font-body);
  --type-body-size: 16px;
  --type-body-line: 26px;
  --type-body-weight: 400;
  --type-body-sm-family: var(--font-body);
  --type-body-sm-size: 14px;
  --type-body-sm-line: 22px;
  --type-body-sm-weight: 400;
  --type-label-family: var(--font-body);
  --type-label-size: 11px;
  --type-label-line: 14px;
  --type-label-weight: 700;
  --type-label-tracking: 0.18em;
  --type-caption-family: var(--font-body);
  --type-caption-size: 13px;
  --type-caption-line: 18px;
  --type-caption-weight: 400;
}
/* Type styles as utility classes (optional) */
.type-display { font-family: var(--type-display-family); font-size: var(--type-display-size); line-height: var(--type-display-line); font-weight: var(--type-display-weight); letter-spacing: var(--type-display-tracking); }
.type-headline { font-family: var(--type-headline-family); font-size: var(--type-headline-size); line-height: var(--type-headline-line); font-weight: var(--type-headline-weight); }
.type-title { font-family: var(--type-title-family); font-size: var(--type-title-size); line-height: var(--type-title-line); font-weight: var(--type-title-weight); }
.type-lede { font-family: var(--type-lede-family); font-size: var(--type-lede-size); line-height: var(--type-lede-line); font-weight: var(--type-lede-weight); }
.type-body { font-family: var(--type-body-family); font-size: var(--type-body-size); line-height: var(--type-body-line); font-weight: var(--type-body-weight); }
.type-body-sm { font-family: var(--type-body-sm-family); font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line); font-weight: var(--type-body-sm-weight); }
.type-label { font-family: var(--type-label-family); font-size: var(--type-label-size); line-height: var(--type-label-line); font-weight: var(--type-label-weight); letter-spacing: var(--type-label-tracking); }
.type-caption { font-family: var(--type-caption-family); font-size: var(--type-caption-size); line-height: var(--type-caption-line); font-weight: var(--type-caption-weight); }
