/* Cerylex 2.0 design tokens - shared by every public page (and reusable by the console line).
   Named palette comes from the Dreamflow Bloom brief; neutrals are tuned for long reading. */
@font-face { font-family: "Fraunces"; src: url("../../../fonts/fraunces-latin.woff2") format("woff2"); font-weight: 300 800; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: "Fraunces"; src: url("../../../fonts/fraunces-latin-italic.woff2") format("woff2"); font-weight: 300 800; font-style: italic; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: "Instrument Sans"; src: url("../../../fonts/instrument-sans-latin.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: "Cinzel"; src: url("../../../fonts/cinzel-latin.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F; }
/* Noto Serif TC, subset at build time to the glyphs used by display text (see build.mjs). */
@font-face { font-family: "Cx Serif TC"; src: url("../../../fonts/cx-serif-tc.woff2") format("woff2"); font-weight: 500 900; font-style: normal; font-display: swap; }

:root {
  color-scheme: dark;
  /* palette */
  --ink-950: #06060d;
  --ink-900: #0a0a14;
  --ink-800: #10101d;   /* Midnight Ink */
  --ink-700: #171729;
  --ink-600: #20203a;
  --ink-500: #2d2d4d;
  --pink: #f35aad;      /* Bloom Pink */
  --violet: #8757fa;    /* Iris Violet */
  --cyan: #30d5ce;      /* Lagoon Cyan */
  --peach: #ffae72;     /* Peach Glow */
  --gold: #f1d678;      /* Solar Gold */
  --paper: #f6f2ea;
  /* semantic */
  --bg: var(--ink-800);
  --surface: rgba(23, 23, 41, 0.72);
  --surface-solid: var(--ink-700);
  --line: rgba(232, 226, 255, 0.13);
  --line-strong: rgba(232, 226, 255, 0.26);
  --text: #eeeaf4;
  --text-2: #bdb8cd;
  --text-3: #918ca6;
  --accent: var(--peach);
  --link: #ffc79b;
  --focus: var(--gold);
  --ok: #72e0b5;
  --warn: var(--gold);
  --err: #ff8795;
  --unknown: #918ca6;
  /* type */
  --font-display: "Fraunces", "Cx Serif TC", "Noto Serif TC", "Songti TC", "Source Han Serif TC", "PMingLiU", serif;
  --font-serif-tc: "Cx Serif TC", "Noto Serif TC", "Songti TC", "Source Han Serif TC", "PMingLiU", "Fraunces", serif;
  --font-sans: "Instrument Sans", "PingFang TC", "Microsoft JhengHei UI", "Microsoft JhengHei", "Noto Sans TC", "Noto Sans CJK TC", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "Cascadia Mono", "SF Mono", "Roboto Mono", Consolas, monospace;
  --font-cine: "Cinzel", "Cx Serif TC", "Noto Serif TC", "Songti TC", serif;
  --fs-00: 0.78rem;
  --fs-0: 0.875rem;
  --fs-1: 1rem;
  --fs-2: clamp(1.06rem, 0.98rem + 0.35vw, 1.22rem);
  --fs-3: clamp(1.3rem, 1.12rem + 0.8vw, 1.72rem);
  --fs-4: clamp(1.7rem, 1.3rem + 1.9vw, 2.75rem);
  --fs-5: clamp(2.15rem, 1.4rem + 3.6vw, 4.2rem);
  --fs-6: clamp(2.9rem, 1.1rem + 9vw, 8.2rem);
  --lh-tight: 1.08;
  --lh-head: 1.24;
  --lh-body: 1.85;       /* CJK body wants air */
  /* space (4px base) */
  --s-1: 0.25rem; --s-2: 0.5rem; --s-3: 0.75rem; --s-4: 1rem; --s-5: 1.5rem; --s-6: 2rem;
  --s-7: 3rem; --s-8: 4.5rem; --s-9: 7rem; --s-10: 10rem;
  --gutter: clamp(1.15rem, 4.6vw, 4.5rem);
  --w-text: 44rem;
  --w-content: 76rem;
  --w-wide: 90rem;
  --header-h: 4.5rem;
  /* shape + depth */
  --r-1: 6px; --r-2: 12px; --r-3: 22px; --r-pill: 999px;
  --shadow-1: 0 1px 0 rgba(255, 255, 255, 0.05) inset, 0 12px 32px -18px rgba(0, 0, 0, 0.8);
  --shadow-2: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 40px 80px -40px rgba(0, 0, 0, 0.9);
  /* motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --t-fast: 160ms;
  --t-med: 420ms;
  --t-slow: 900ms;
  /* transition state, written by js/bloom/enter-transition.js */
  --enter: 0;
  --ex: 50%;
  --ey: 100%;
}