/*
 * Geist and Geist Mono are self-hosted from @fontsource 5.2.6.
 * The font software is licensed under the SIL Open Font License 1.1;
 * see fonts/OFL.txt.
 */
@font-face {
  font-family: "Geist";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("fonts/geist-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Geist";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("fonts/geist-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Geist";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("fonts/geist-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Geist";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("fonts/geist-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Geist Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("fonts/geist-mono-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Geist Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("fonts/geist-mono-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  --page: #fafafa;
  --surface: #ffffff;
  --surface-subtle: #fcfcfc;
  --fill: #f5f5f5;
  --fill-strip: #f6f6f6;
  --fill-tag: #f2f2f2;
  --tile: #e8e8e8;
  --rule: #ebebeb;
  --divider: #ededed;
  --divider-crop: #efefef;
  --border-review: #eaeaea;
  --border-card: #e5e5e5;
  --border-feature: #e3e3e3;
  --border-pill: #e0e0e0;
  --border-check: #dadada;
  --border-input: #d9d9d9;
  --ink: #171717;
  --ink-review: #262626;
  --ink-body: #404040;
  --ink-secondary: #525252;
  --ink-tertiary: #737373;
  --ink-heading-gray: #8a8a8a;
  --icon: #8f8f8f;
  --star-empty: #e2e2e2;
  --on-ink: #ffffff;
  --bar-fill: #262626;
  --bar-track: #f2f2f2;
  --bar-1star: #d0402b;
  --ink-1star: #b42318;
  --marker: #ffe27a;
  --marker-mint: #cdebd9;
  --marker-peach: #ffd5c7;
  --mark-ink: #171715;
  --mark-paper: #f4efe5;
  --mark-green: #0f4f46;
  --font-sans: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-14: 14px;
  --space-16: 16px;
  --space-18: 18px;
  --space-22: 22px;
  --space-24: 24px;
  --space-28: 28px;
  --space-30: 30px;
  --space-32: 32px;
  --space-40: 40px;
  --space-48: 48px;
  --radius-xs: 9px;
  --radius-sm: 10px;
  --radius-md: 12px;
  --radius-lg: 14px;
  --radius-xl: 16px;
  --radius-2xl: 22px;
  --radius-pill: 999px;
  --shadow-crop: 0 10px 28px -16px rgba(0, 0, 0, 0.2);
  --shadow-read: 0 28px 70px -36px rgba(0, 0, 0, 0.25);
  --focus-ring: 0 0 0 2px #ffffff, 0 0 0 4px #171717;
  --control-xl: 56px;
  --control-lg: 52px;
  --control-md: 48px;
  --control-sm: 40px;
  --control-xs: 32px;
  --app-tile: 36px;
  --disc-size: 30px;
  --logo-size: 26px;
  --bar-height: 8px;
  --icon-stroke: 1.8;
  --frame-max: 1200px;
  --gutter: clamp(20px, 4vw, 48px);
  --gutter-header: clamp(16px, 3vw, 28px);
  --hero-pad-top: clamp(28px, 5vw, 60px);
  --hero-pad-bottom: clamp(36px, 4vw, 52px);
  --hero-text-offset: clamp(0px, 2vw, 22px);
  --section-pad-top: clamp(48px, 6vw, 80px);
  --section-pad-bottom: clamp(48px, 6vw, 72px);
  --cell-pad: clamp(20px, 3vw, 32px);
  --read-pad: clamp(22px, 3vw, 32px);
  --hero-text-basis: 500px;
  --hero-wall-basis: 440px;
  --wall-height: 620px;
  --wall-col: 220px;
  --step-min: 340px;
  --quote-min: 300px;
  --lede-max: 500px;
  --heading-max: 860px;
  --fs-display: clamp(38px, 4.3vw, 60px);
  --fs-display-long: clamp(36px, 3.8vw, 52px);
  --fs-heading: clamp(28px, 3vw, 40px);
  --fs-read-lede: clamp(18px, 1.6vw, 21px);

  /* Legacy aliases are retained for the hosted workspace stylesheet. */
  --paper: #f7f4ec;
  --well: #efe9da;
  --well-focus: #fbf9f3;
  --ink-soft: #3d3a34;
  --ink-faint: #6b675e;
  --pencil: #8a8578;
  --pen: #3a6b5c;
  --placeholder: #a9a396;
  --outline-soft: #b9b3a3;
  --error: #9b3a2e;
  --font-display: Georgia, "Iowan Old Style", "Palatino Linotype", serif;
  --font-hand: "Caveat", cursive;
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/*
 * workspace.html is an out-of-scope hosted prototype. It imports tokens.css
 * directly, so restore the two token names whose new design values differ.
 */
html:has(link[href*="workspace.css"]) {
  --ink: #1a1a18;
  --rule: #d9d3c4;
}
