/*
 * Layer contract
 * Site/app surfaces: --bg, --surface, --text, --line, --scrim-*, --shadow-*.
 * Reading surfaces: --reading-* for article, drawer, write and auth canvases.
 * Never introduce a third palette; write uses --reading-* directly.
 */
:root {
  --shell: 1180px;
  --header-height: 104px;
  --bg: #ffffff;
  --header-bg: #fbfaf7;
  --bg-soft: #f5f5f3;
  --surface: #ffffff;
  --text: #292929;
  --text-soft: #5c5c5c;
  --muted: #6b6b6b;
  --border-ink: rgba(41, 41, 41, 0.1);
  --border-ink-strong: rgba(41, 41, 41, 0.2);
  --line: var(--border-ink);
  --line-strong: var(--border-ink-strong);
  --accent: #ad5537;
  --accent-glow: #e39a7d;
  --accent-ink: #8d452b;
  --accent-soft: rgba(173, 85, 55, 0.11);
  --save-ok: #4d8f67;
  --link-hover: #4a6fa5;
  --link-underline: rgba(74, 111, 165, 0.32);
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue",
    Helvetica, Arial, "Open Sans", "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --font-reading: var(--font-ui);
  --font-display: var(--font-ui);
  --font-editorial: "Noto Serif SC", "Noto Serif CJK SC", "Source Han Serif SC",
    "Songti SC", "STSong", Georgia, "Times New Roman", "SimSun", serif;
  --font-mono: "SFMono-Regular", "Cascadia Code", "JetBrains Mono", Consolas,
    "Liberation Mono", monospace;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.16, 1.3, 0.3, 1);
  --ease-paper: cubic-bezier(0.22, 0.61, 0.36, 1);
  --motion-fast: 0.16s;
  --motion-base: 0.24s;
  --motion-slow: 0.32s;
  --motion-draft-in: 0.3s;
  --motion-paper-out: 0.22s;
  --motion-focus-out: 0.3s;
  --glass-surface: color-mix(in srgb, var(--surface) 84%, transparent);
  --glass-blur: 16px;
  --scrim-soft: rgba(20, 16, 12, 0.28);
  --scrim: rgba(20, 16, 12, 0.32);
  --scrim-strong: rgba(20, 16, 12, 0.42);
  --scrim-lightbox: rgba(12, 10, 8, 0.55);
  --shadow-popover: 0 12px 34px rgba(0, 0, 0, 0.1);
  --shadow-overlay: 0 24px 80px rgba(0, 0, 0, 0.16);
  --shadow-dialog: 0 28px 90px rgba(0, 0, 0, 0.2);
  --shadow-paper: 0 6px 18px rgba(20, 16, 12, 0.04);
  --shadow-focus: 0 6px 18px rgba(0, 0, 0, 0.09);
  --shadow-footer: 0 -10px 24px rgba(0, 0, 0, 0.035);
  --shadow-auth: 0 22px 55px rgba(24, 20, 16, 0.09), 0 1px 0 rgba(255, 255, 255, 0.65) inset;
  --on-accent: #ffffff;
  --verified-x: #1d9bf0;
  --verified-weibo: #f0a020;
  --verified-gold: #c79a3b;
  --gender-female: #a74f6b;
  --gender-male: #4f7295;
  --source-article-ink: #48617f;
  --source-article-bg: rgba(72, 97, 127, 0.12);
  --source-article-pill-bg: color-mix(in srgb, var(--source-article-ink) 18%, var(--surface));
  --source-moment-pill-bg: color-mix(in srgb, var(--accent-ink) 15%, var(--surface));
  --search-scrim: var(--scrim-strong);
  --halo-search-widget-base-font-family: var(--font-ui);
  --halo-search-widget-base-font-size: 14px;
  --halo-search-widget-base-rounded: 2px;
  --halo-search-widget-base-bg-color: var(--surface);
  --halo-search-widget-modal-bg-color: var(--surface);
  --halo-search-widget-content-color: var(--text);
  --halo-search-widget-muted-color: var(--muted);
  --halo-search-widget-primary-color: var(--accent);
  --halo-search-widget-hit-bg-color: transparent;
  --halo-search-widget-modal-layer-color: var(--search-scrim);
  --halo-search-widget-color-modal-layer: var(--search-scrim);
  --halo-search-widget-divider-color: var(--line);
  --halo-search-widget-color-form-divider: var(--line);
  --halo-search-widget-kbd-border-color: var(--line-strong);
  --halo-search-widget-kbd-shadow: none;
}

html[data-color-scheme="dark"] {
  --bg: #141312;
  --header-bg: #181614;
  --bg-soft: #1c1916;
  --surface: #24211e;
  --text: #e4ded5;
  --text-soft: #b8b0a5;
  --muted: #978e83;
  --border-ink: rgba(235, 226, 214, 0.09);
  --border-ink-strong: rgba(235, 226, 214, 0.18);
  --line: var(--border-ink);
  --line-strong: var(--border-ink-strong);
  --scrim-soft: rgba(8, 6, 4, 0.42);
  --scrim: rgba(8, 6, 4, 0.52);
  --scrim-strong: rgba(8, 6, 4, 0.62);
  --scrim-lightbox: rgba(5, 4, 3, 0.75);
  --shadow-popover: 0 14px 38px rgba(8, 6, 4, 0.42);
  --shadow-overlay: 0 26px 86px rgba(8, 6, 4, 0.5);
  --shadow-dialog: 0 30px 96px rgba(8, 6, 4, 0.55);
  --shadow-paper: 0 8px 24px rgba(8, 6, 4, 0.28);
  --shadow-focus: 0 6px 18px rgba(8, 6, 4, 0.36);
  --shadow-footer: 0 -10px 24px rgba(8, 6, 4, 0.28);
  --shadow-auth: 0 22px 55px rgba(8, 6, 4, 0.28), 0 1px 0 rgba(255, 246, 235, 0.04) inset;
  --paper-raised: #201d1a;
  --paper-border: rgba(235, 226, 214, 0.09);
  --paper-rim: inset 0 1px 0 rgba(255, 246, 235, 0.05);
  --paper-lift: 0 2px 8px rgba(8, 6, 4, 0.3), 0 18px 48px rgba(8, 6, 4, 0.24);
  --paper-shadow: var(--paper-rim), var(--paper-lift);
  --paper-popover: inset 0 1px 0 rgba(255, 246, 235, 0.045), 0 2px 6px rgba(8, 6, 4, 0.28), 0 12px 30px rgba(8, 6, 4, 0.22);
  --source-article-ink: #a8c2df;
  --source-article-bg: rgba(120, 156, 200, 0.16);
  --source-article-pill-bg: color-mix(in srgb, var(--source-article-ink) 18%, var(--surface));
  --source-moment-pill-bg: color-mix(in srgb, var(--accent-ink) 15%, var(--surface));
  --search-scrim: var(--scrim-strong);
  --halo-search-widget-base-bg-color: var(--surface);
  --halo-search-widget-modal-bg-color: var(--surface);
  --halo-search-widget-content-color: var(--text);
  --halo-search-widget-muted-color: var(--muted);
  --halo-search-widget-primary-color: var(--accent);
  --halo-search-widget-hit-bg-color: transparent;
  --halo-search-widget-modal-layer-color: var(--search-scrim);
  --halo-search-widget-color-modal-layer: var(--search-scrim);
  --halo-search-widget-divider-color: var(--line);
  --halo-search-widget-kbd-border-color: var(--line-strong);
  --gender-female: #e3a0b5;
  --gender-male: #9fc5e8;
  --accent: #d68a67;
  --accent-glow: #f0b69a;
  --accent-ink: #e8a17f;
  --accent-soft: rgba(214, 138, 103, 0.13);
  --save-ok: #82c99b;
  --link-hover: #8ab4f8;
  --link-underline: rgba(138, 180, 248, 0.32);
}

:root {
  --reading-bg: #fbfaf7;
  --reading-text: #292929;
  --reading-text-soft: #5c5c5c;
  --reading-muted: #6b6b6b;
  --reading-line: var(--border-ink);
  --reading-line-strong: var(--border-ink-strong);
  --reading-code-bg: #f3f2ef;
  --reading-quote-line: rgba(41, 41, 41, 0.18);
  --reading-underline: rgba(41, 41, 41, 0.22);
  --reading-selection: rgba(41, 41, 41, 0.12);
  --reading-measure: 760px;
  --reading-canvas: 1080px;
  --drawer-canvas: 1280px;
  --drawer-content: 872px;
  --prose-space-sm: 0.75em;
  --prose-space-md: 1.35em;
  --prose-space-lg: 2em;
  --prose-space-xl: 2.8em;
}

html[data-color-scheme="dark"] {
  --reading-bg: #191715;
  --reading-text: #e4ded5;
  --reading-text-soft: #b8b0a5;
  --reading-muted: #978e83;
  --reading-line: var(--border-ink);
  --reading-line-strong: var(--border-ink-strong);
  --reading-code-bg: #211e1b;
  --reading-quote-line: rgba(228, 222, 213, 0.18);
  --reading-underline: rgba(228, 222, 213, 0.22);
  --reading-selection: rgba(228, 222, 213, 0.16);
}
