/* ============================================================
   申翼 SHENWING · office 线 CSS 变量层（单线自包含）
   GENERATED by brand-kits/derive.py 自 tokens/shenwing-design-tokens.json。
   命名与 tokens/tokens.css 一致；仅含本线变量，已烘焙 --line-* 与 --focus-ring-color。
   勿手改；改令牌请改主令牌并重新派生。
   ============================================================ */
:root {
  /* 品牌锚点色 */
  --color-brand-red-office: #EE3A24;
  --color-brand-ink: #231815;
  --color-brand-paper: #F7F6F4;
  --color-brand-white: #FFFFFF;
  /* 中性阶 */
  --color-neutral-0: #FFFFFF;
  --color-neutral-50: #F7F6F4;
  --color-neutral-100: #ECEAE6;
  --color-neutral-200: #D8D5CF;
  --color-neutral-300: #BDB9B1;
  --color-neutral-400: #9A958C;
  --color-neutral-500: #6F6A62;
  --color-neutral-600: #4E4A44;
  --color-neutral-700: #34302B;
  --color-neutral-800: #2A2420;
  --color-neutral-900: #231815;
  /* 语义色 */
  --color-semantic-success: #3FB36B;
  --color-semantic-danger: #EE3A24;
  /* 间距 */
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;
  --space-64: 64px;
  --space-96: 96px;
  /* 圆角 */
  --radius-office-sm: 2px;
  --radius-office-md: 6px;
  --radius-pill: 999px;
  /* 阴影 */
  --elevation-office-flat: 0 1px 2px 0 rgba(35,24,21,0.06);
  --elevation-office-raised: 0 4px 12px 0 rgba(35,24,21,0.10);
  --elevation-office-overlay: 0 12px 32px 0 rgba(35,24,21,0.16);
  /* 字族 */
  --font-brand-signature: "斗鱼追光体", sans-serif;
  --font-office-display: "演示斜黑体", "Helvetica Neue", "Inter", sans-serif;
  --font-office-text: "思源黑体", "鸿蒙黑体", "Inter", "Noto Sans SC", sans-serif;
  --font-latin-office: "Helvetica Neue", "Inter", sans-serif;
  --font-mono: "SF Mono", "JetBrains Mono", monospace;
  /* 字重 / 字号 / 行高 / 字距 */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --weight-heavy: 900;
  --size-64: 64px;
  --size-48: 48px;
  --size-36: 36px;
  --size-28: 28px;
  --size-22: 22px;
  --size-18: 18px;
  --size-16: 16px;
  --size-14: 14px;
  --size-12: 12px;
  --leading-tight: 1.1;
  --leading-snug: 1.25;
  --leading-normal: 1.5;
  --leading-loose: 1.7;
  --tracking-heading: -0.02em;
  --tracking-caps: 0.12em;
  /* 电商字号底线 */
  --commerce-headline-min: 72px;
  --commerce-subhead-min: 40px;
  --commerce-bullet-min: 28px;
  --commerce-legal-min: 18px;
  /* 动效 */
  --duration-instant: 100ms;
  --duration-fast: 160ms;
  --duration-base: 240ms;
  --duration-slow: 360ms;
  --easing-office-standard: cubic-bezier(0.2, 0, 0, 1);
  --easing-linear: linear;
  /* 描边 / 焦点 / 触达 */
  --border-office-hairline: 1px;
  --border-selected: 2px;
  --focus-ring-width: 3px;
  --focus-ring-offset: 2px;
  --focus-ring-color: #EE3A24;
  --target-min: 44px;
  --target-comfort: 48px;
  --target-gap-min: 8px;
  /* 线别别名（本线已烘焙，无需 data-line） */
  --line-primary: var(--color-brand-red-office);
  --line-display: var(--font-office-display);
  --line-text: var(--font-office-text);
  --line-radius: var(--radius-office-md);
  --line-elevation: var(--elevation-office-flat);
  --line-easing: var(--easing-office-standard);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-base: 100ms; --duration-slow: 100ms;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 100ms !important;
    scroll-behavior: auto !important;
  }
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color, var(--color-brand-ink));
  outline-offset: var(--focus-ring-offset);
}
