/* ========== 樱境 Sakura Vault · Design Tokens ========== */
:root {
  --yixian-primary: #ff7eb3;
  --yixian-primary-2: #b388ff;
  --yixian-primary-grad: linear-gradient(135deg, #ff7eb3 0%, #b388ff 100%);
  --yixian-primary-soft: rgba(255,126,179,.12);
  --yixian-primary-glow: rgba(179,136,255,.35);

  --yixian-accent: #6ee7c7;
  --yixian-link: #60a5fa;
  --yixian-vip: #f6c544;
  --yixian-vip-grad: linear-gradient(135deg,#ffd56b,#f6a74b);

  --yixian-bg: #fafbff;
  --yixian-bg-soft: #f3f4fb;
  --yixian-bg-card: #ffffff;
  --yixian-bg-glass: rgba(255,255,255,.65);
  --yixian-border: #ececf3;
  --yixian-border-soft: #f3f3f9;
  --yixian-text: #1f2330;
  --yixian-text-soft: #5a6072;
  --yixian-text-mute: #9aa0b4;

  --yixian-success: #34d399;
  --yixian-warn: #fbbf24;
  --yixian-danger: #f87171;

  --yixian-font-sans: "Inter","Noto Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,-apple-system,sans-serif;
  --yixian-font-display: "Inter","Noto Sans SC","PingFang SC",system-ui,sans-serif;
  --yixian-font-mono: "JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;

  --yixian-fs-xs: 12px; --yixian-fs-sm: 13px; --yixian-fs-md: 14px;
  --yixian-fs-lg: 16px; --yixian-fs-xl: 20px; --yixian-fs-2xl: 24px;
  --yixian-fs-3xl: 32px; --yixian-fs-4xl: 44px;

  --yixian-sp-1: 4px; --yixian-sp-2: 8px; --yixian-sp-3: 12px;
  --yixian-sp-4: 16px; --yixian-sp-5: 20px; --yixian-sp-6: 24px;
  --yixian-sp-8: 32px; --yixian-sp-10: 40px; --yixian-sp-12: 56px; --yixian-sp-16: 80px;

  --yixian-r-xs: 6px; --yixian-r-sm: 10px; --yixian-r-md: 14px;
  --yixian-r-lg: 20px; --yixian-r-xl: 28px; --yixian-r-pill: 999px;

  --yixian-shadow-1: 0 1px 2px rgba(20,20,40,.04),0 2px 6px rgba(20,20,40,.04);
  --yixian-shadow-2: 0 4px 12px rgba(120,80,180,.08),0 12px 32px rgba(120,80,180,.10);
  --yixian-shadow-glow: 0 0 0 1px rgba(255,126,179,.18),0 12px 30px rgba(179,136,255,.20);

  --yixian-ease-out: cubic-bezier(.22,1,.36,1);
  --yixian-ease-soft: cubic-bezier(.4,0,.2,1);
  --yixian-ease-spring: cubic-bezier(.34,1.56,.64,1);
  --yixian-dur-1: 120ms; --yixian-dur-2: 220ms; --yixian-dur-3: 360ms; --yixian-dur-4: 600ms;

  --yixian-container: 1440px;
  --yixian-nav-h: 64px;

  --yixian-sidebar-w: 300px;
  --yixian-content-w: 760px;

  /* Legacy aliases for custom-nav.css */
  --yixian-star: #ff7eb3;
  --yixian-satellite: #b388ff;
  --yixian-star-h: 342.3; --yixian-star-s: 83.7; --yixian-star-l: 63.7;
  --yixian-sat-h: 258.1; --yixian-sat-s: 83.2; --yixian-sat-l: 63.9;

  --bg-primary: var(--yixian-bg);
  --bg-secondary: var(--yixian-bg-soft);
  --bg-card: var(--yixian-bg-card);
  --bg-overlay: rgba(0,0,0,.45);
  --text-primary: var(--yixian-text);
  --text-secondary: var(--yixian-text-soft);
  --text-tertiary: var(--yixian-text-mute);
  --text-muted: var(--yixian-text-mute);
  --color-muted: var(--yixian-text-mute);
  --border-color: var(--yixian-border);
  --border-color-light: var(--yixian-border-soft);
  --shadow-sm: var(--yixian-shadow-1);
  --shadow-md: var(--yixian-shadow-2);
  --shadow-lg: var(--yixian-shadow-2);
  --transition-fast: var(--yixian-dur-1) var(--yixian-ease-soft);
  --transition-base: var(--yixian-dur-2) var(--yixian-ease-soft);
  --transition-slow: var(--yixian-dur-3) var(--yixian-ease-soft);
  --border-radius: var(--yixian-r-lg);
  --border-radius-sm: var(--yixian-r-sm);
  --border-radius-lg: var(--yixian-r-xl);
  --border-radius-full: 9999px;
  --font-sans: var(--yixian-font-sans);
  --container-max: 1440px;
  --container-wide: 1440px;
  --cnav-height: 64px;

  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px;
  --space-10: 40px; --space-12: 48px;
}

[data-theme="dark"] {
  --yixian-bg: #0f1116;
  --yixian-bg-soft: #161922;
  --yixian-bg-card: #181b25;
  --yixian-bg-glass: rgba(24,27,37,.60);
  --yixian-border: #262a36;
  --yixian-border-soft: #1f222d;
  --yixian-text: #ecedf6;
  --yixian-text-soft: #b4b8c9;
  --yixian-text-mute: #7a809a;
  --yixian-shadow-1: 0 1px 2px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.3);
  --yixian-shadow-2: 0 4px 12px rgba(0,0,0,.5),0 12px 32px rgba(0,0,0,.45);
  --yixian-shadow-glow: 0 0 0 1px rgba(255,126,179,.30),0 12px 30px rgba(179,136,255,.30);
  --yixian-primary-soft: rgba(255,126,179,.18);

  --yixian-star: #ff9fc7;
  --yixian-satellite: #c4a0ff;
  --yixian-star-h: 342.3; --yixian-star-s: 83.7; --yixian-star-l: 70;
  --yixian-sat-h: 258.1; --yixian-sat-s: 83.2; --yixian-sat-l: 70;

  --bg-primary: var(--yixian-bg);
  --bg-secondary: var(--yixian-bg-soft);
  --bg-card: var(--yixian-bg-card);
  --text-primary: var(--yixian-text);
  --text-secondary: var(--yixian-text-soft);
  --text-tertiary: var(--yixian-text-mute);
  --text-muted: var(--yixian-text-mute);
  --color-muted: var(--yixian-text-mute);
  --border-color: var(--yixian-border);
  --border-color-light: var(--yixian-border-soft);
  --shadow-sm: var(--yixian-shadow-1);
  --shadow-md: var(--yixian-shadow-2);
  --shadow-lg: var(--yixian-shadow-2);
}

.is-theme-swap-freeze,
.is-theme-swap-freeze body,
.is-theme-swap-freeze .yixian-navbar,
.is-theme-swap-freeze .yixian-navbar *,
.is-theme-swap-freeze .yixian-footer,
.is-theme-swap-freeze .yixian-footer *,
.is-theme-swap-freeze .yixian-card,
.is-theme-swap-freeze .yixian-card *,
.is-theme-swap-freeze .yixian-btn,
.is-theme-swap-freeze .yixian-btn *,
.is-theme-swap-freeze .yixian-breadcrumb,
.is-theme-swap-freeze .yixian-breadcrumb *,
.is-theme-swap-freeze .yixian-comment,
.is-theme-swap-freeze .yixian-comment *,
.is-theme-swap-freeze .yixian-widget,
.is-theme-swap-freeze .yixian-widget *,
.is-theme-swap-freeze .yixian-post,
.is-theme-swap-freeze .yixian-post *,
.is-theme-swap-freeze .yixian-sidebar,
.is-theme-swap-freeze .yixian-sidebar *,
.is-theme-swap-freeze .yixian-search-panel,
.is-theme-swap-freeze .yixian-search-panel *,
.is-theme-swap-freeze .yixian-cookie-consent,
.is-theme-swap-freeze .yixian-cookie-consent *,
.is-theme-swap-freeze .yixian-back-to-top,
.is-theme-swap-freeze .yixian-toc,
.is-theme-swap-freeze .yixian-toc *,
.is-theme-swap-freeze .yixian-article-list,
.is-theme-swap-freeze .yixian-article-list *,
.is-theme-swap-freeze .yixian-hero,
.is-theme-swap-freeze .yixian-hero *,
.is-theme-swap-freeze .yixian-category-cards,
.is-theme-swap-freeze .yixian-category-cards *,
.is-theme-swap-freeze .yixian-divider,
.is-theme-swap-freeze .yixian-divider *,
.is-theme-swap-freeze .yixian-html-block,
.is-theme-swap-freeze .yixian-html-block *,
.is-theme-swap-freeze .yixian-link-list,
.is-theme-swap-freeze .yixian-link-list *,
.is-theme-swap-freeze .yixian-image-ad,
.is-theme-swap-freeze .yixian-image-ad *,
.is-theme-swap-freeze .yixian-tag-cloud,
.is-theme-swap-freeze .yixian-tag-cloud *,
.is-theme-swap-freeze .yixian-reading-progress,
.is-theme-swap-freeze .yixian-reading-progress *,
.is-theme-swap-freeze .yixian-load-more,
.is-theme-swap-freeze .yixian-load-more *,
.is-theme-swap-freeze .yixian-custom-layout,
.is-theme-swap-freeze .yixian-custom-layout *,
.is-theme-swap-freeze .yixian-custom-nav,
.is-theme-swap-freeze .yixian-custom-nav *,
.is-theme-swap-freeze .yixian-page-header,
.is-theme-swap-freeze .yixian-page-header *,
.is-theme-swap-freeze .yixian-archive-header,
.is-theme-swap-freeze .yixian-archive-header *,
.is-theme-swap-freeze .yixian-pagination,
.is-theme-swap-freeze .yixian-pagination *,
.is-theme-swap-freeze input,
.is-theme-swap-freeze textarea,
.is-theme-swap-freeze select,
.is-theme-swap-freeze button,
.is-theme-swap-freeze a {
  transition: none !important;
}
