/* Astrosalva Design System — generated from tokens.json */

:root, [data-theme="bone"] {
  --indigo: #1a1f3a;
  --indigo-ink: #11142a;
  --bone: #f4ede0;
  --bone-deep: #e8dec9;
  --coral: #e85d4e;
  --mute-on-bone: #3a3f5c;
  --mute-on-indigo: #e3dccf;
  --hairline-on-bone: rgba(26, 31, 58, 0.24);
  --hairline-on-indigo: rgba(244, 237, 224, 0.28);
  --bg: var(--bone);
  --white: #ffffff;
  --bg-alt: var(--indigo);
  --fg: var(--indigo-ink);
  --fg-alt: var(--bone);
  --fg-mute: var(--mute-on-bone);
  --rule: var(--hairline-on-bone);
  --accent: var(--coral);
}
[data-theme="indigo"] {
  --bg: var(--indigo);
  --fg: var(--bone);
  --fg-mute: var(--mute-on-indigo);
  --rule: var(--hairline-on-indigo);
}
[data-theme="white"] {
  --bg: var(--white);
  --fg: var(--indigo-ink);
  --fg-mute: var(--mute-on-bone);
  --rule: var(--hairline-on-bone);
}
:root {
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 128px;
  --radius-0: 0;
  --radius-1: 2px;
  --radius-2: 4px;
  --t-display: clamp(48px, 6.4vw, 96px);
  --t-h1: clamp(36px, 4.4vw, 64px);
  --t-h2: clamp(28px, 3.0vw, 44px);
  --t-h3: clamp(22px, 2.0vw, 28px);
  --t-lede: clamp(20px, 1.6vw, 24px);
  --t-body: 17px;
  --t-body-family: 19px;
  --t-small: 15px;
  --t-eyebrow: 12px;
  --t-page-num: 12px;
  --t-numeral: clamp(72px, 10vw, 168px);
  --t-numeral-sm: 36px;
  --slide-title-hero: 78px;
  --slide-title: 60px;
  --slide-stat: 72px;
  --slide-lede: 34px;
  --slide-card: 28px;
  --slide-body: 24px;
  --slide-body-min: 24px;
  --slide-eyebrow: 24px;
  --tracking-tight: -0.035em;
  --tracking-display: -0.018em;
  --tracking-body: -0.005em;
  --tracking-eyebrow: 0.14em;
  --leading-display: 1.04;
  --leading-headline: 1.12;
  --leading-body: 1.5;
  --leading-family: 1.55;
  --leading-tight: 1.18;
  --hairline: 1px;
  --rule-w: 1.5px;
  --slide-safe: 120px;
  --slide-w: 1920px;
  --slide-h: 1080px;
  --dur-fast: 140ms;
  --dur-base: 220ms;
  --dur-slow: 360ms;
  --dur-reach: 360ms;
  --ease-quiet: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --font-sans: 'Inter Tight', 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-display: 'Inter Tight', 'Inter Display', 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --font-numeral: 'JetBrains Mono NL', 'JetBrains Mono', ui-monospace, monospace;
}
.display { font-family: var(--font-display); font-size: 96px; line-height: 1.04; font-weight: 500; letter-spacing: -0.018em; }
.h1 { font-family: var(--font-display); font-size: 64px; line-height: 1.12; font-weight: 600; letter-spacing: -0.018em; }
.h2 { font-family: var(--font-display); font-size: 44px; line-height: 1.12; font-weight: 600; letter-spacing: -0.018em; }
.h3 { font-family: var(--font-display); font-size: 28px; line-height: 1.12; font-weight: 500; letter-spacing: -0.005em; }
.wordmark { font-family: var(--font-display); font-size: 44px; line-height: 1; font-weight: 400; letter-spacing: -0.035em; }
.lede { font-family: var(--font-sans); font-size: 24px; line-height: 1.18; font-weight: 400; letter-spacing: -0.005em; }
.body { font-family: var(--font-sans); font-size: 17px; line-height: 1.5; font-weight: 400; letter-spacing: -0.005em; }
.body-family { font-family: var(--font-sans); font-size: 19px; line-height: 1.55; font-weight: 400; letter-spacing: -0.005em; }
.small { font-family: var(--font-sans); font-size: 15px; font-weight: 400; }
.eyebrow { font-family: var(--font-mono); font-size: 12px; font-weight: 400; letter-spacing: 0.14em; }
.page-num { font-family: var(--font-mono); font-size: 12px; font-weight: 400; letter-spacing: 0.14em; }
.code { font-family: var(--font-mono); font-size: 0.92em; }
.numeral { font-family: var(--font-numeral); font-size: 168px; line-height: 0.92; font-weight: 300; letter-spacing: -0.04em; }
.numeral-sm { font-family: var(--font-numeral); font-size: 36px; line-height: 1; font-weight: 400; letter-spacing: -0.02em; }
.deck-title-hero { font-family: var(--font-display); font-size: 78px; }
.deck-title { font-family: var(--font-display); font-size: 60px; }
.deck-stat { font-family: var(--font-numeral); font-size: 72px; }
.deck-lede { font-family: var(--font-display); font-size: 34px; }
.deck-card { font-family: var(--font-display); font-size: 28px; }
.deck-body { font-family: var(--font-sans); font-size: 24px; }
.deck-eyebrow { font-family: var(--font-mono); font-size: 24px; letter-spacing: 0.14em; }
@font-face { font-family: 'Inter Tight'; src: url('fonts/InterTight-latin.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter Tight'; src: url('fonts/InterTight-Italic-latin.woff2') format('woff2'); font-weight: 100 900; font-style: italic; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('fonts/JetBrainsMono-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'JetBrains Mono NL'; src: url('fonts/JetBrainsMonoNL-Light.ttf') format('truetype'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'JetBrains Mono NL'; src: url('fonts/JetBrainsMonoNL-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
