/* ═══════════════════════════════════════════════════════════════
   岩午人工智能科技 · 官网共享主题层（theme.css）
   ── 双主题唯一色彩来源：所有页面只引用 var(--x)，禁止写死色值 ──
   层次：① 设计令牌（深/浅两套）→ ② 首帧过渡抑制（.ft-boot）→ ③ 基础底座
   加载：<link rel="stylesheet" href="static/shared/theme.css?v=20260914-4">
   注意：每次修改本文件须 bump 上方的 ?v= 参数（浏览器缓存静默旧版红线）。
   ═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   ① 设计令牌（双主题）—— 官网唯一色彩/圆角/阴影来源
   深色为默认（:root 兜底，等价原稿）；浅色经 data-theme 整块覆盖。
   组件层只允许引用 var(--x)，禁止写死色值。
   ═══════════════════════════════════════════════════════════════ */
:root, html[data-theme="dark"] {
  /* 底色分层（base < band < card < hover；浮层用 elevate/inset） */
  --bg-base: #0a0e1a;                    /* 原 --bg-primary */
  --bg-band: #111827;                    /* 整块背景带（原 --bg-secondary，界面预览） */
  --bg-card: #1a1f35;
  --bg-card-hover: #222845;
  --bg-inset: rgba(255, 255, 255, .03);  /* 卡内嵌小格 */
  --nav-bg: rgba(10, 14, 26, .85);
  /* 文本三级 */
  --text-1: #f1f5f9;                     /* 原 --text-primary */
  --text-2: #94a3b8;                     /* 原 --text-secondary */
  --text-3: #8a98b0;                     /* 原 --text-muted #64748b（3.42:1 @卡）→ 提亮：5.58:1 @卡 / 4.70:1 @骨架徽章底（门禁实抓 4.41 后修正） */
  /* 描边 */
  --border-1: #1e293b;                   /* 原 --border-color */
  --border-soft: rgba(255, 255, 255, .07);
  --border-nav: rgba(99, 102, 241, .1);
  --border-strong: rgba(99, 102, 241, .3);        /* hover 描边 */
  --border-accent-soft: rgba(99, 102, 241, .2);   /* 品牌浅描边（hero 徽章 / 下载卡） */
  --border-login: rgba(99, 102, 241, .4);
  /* 次级按钮（btn-secondary）三态 */
  --bg-btn2: rgba(255, 255, 255, .05);
  --bg-btn2-hover: rgba(255, 255, 255, .1);
  --border-btn2: rgba(255, 255, 255, .1);
  --border-btn2-hover: rgba(255, 255, 255, .2);
  /* 品牌 */
  --accent-1: #6366f1;
  --accent-2: #8b5cf6;
  --accent-3: #a78bfa;
  --accent-grad: linear-gradient(135deg, #6366f1, #8b5cf6, #a78bfa);  /* 原 --accent-gradient */
  --accent-soft: rgba(99, 102, 241, .1);
  --accent-soft-3: rgba(99, 102, 241, .25);
  /* 氛围光 / 阴影 */
  --glow: rgba(99, 102, 241, .15);
  --glow-strong: rgba(99, 102, 241, .3);
  --glow-btn: rgba(99, 102, 241, .4);
  --glow-ring: rgba(99, 102, 241, .3);
  --card-shadow: none;                              /* 深色以描边分层，不加投影 */
  --card-shadow-hover: 0 8px 32px var(--glow);
  --dropdown-shadow: 0 10px 40px rgba(0, 0, 0, .5);
  --nav-shadow: 0 10px 34px rgba(0, 0, 0, .42);
  /* 粒子氛围 */
  --particle: #8b5cf6;
  --particle-opacity: .3;
  /* 功能图标语义色（六色） */
  --ic-purple-fg: #a78bfa;  --ic-purple-bg: rgba(139, 92, 246, .15);
  --ic-blue-fg:   #60a5fa;  --ic-blue-bg:   rgba(59, 130, 246, .15);
  --ic-green-fg:  #4ade80;  --ic-green-bg:  rgba(34, 197, 94, .15);
  --ic-orange-fg: #fb923c;  --ic-orange-bg: rgba(249, 115, 22, .15);
  --ic-pink-fg:   #f472b6;  --ic-pink-bg:   rgba(236, 72, 153, .15);
  --ic-cyan-fg:   #22d3ee;  --ic-cyan-bg:   rgba(6, 182, 212, .15);
  /* 使用流程步号 */
  --step-bg: #0a0e1a;
  --step-shadow: none;
  /* 授权卡推荐态背景 */
  --popular-grad: linear-gradient(135deg, rgba(99, 102, 241, .08), rgba(139, 92, 246, .05));
  /* 界面预览微缩窗口（mock） */
  --mock-stage-bg: #0c1120;
  --mock-stage-1: rgba(99, 102, 241, .18);
  --mock-stage-2: rgba(139, 92, 246, .1);
  --mock-window: #161d33;
  --mock-block: rgba(255, 255, 255, .045);
  --mock-line: rgba(255, 255, 255, .1);
  --mock-shadow: 0 14px 34px rgba(0, 0, 0, .45);
  --mock-grad-a: linear-gradient(135deg, rgba(99, 102, 241, .38), rgba(139, 92, 246, .14));
  --mock-grad-b: linear-gradient(135deg, rgba(59, 130, 246, .34), rgba(99, 102, 241, .14));
  --mock-grad-c: linear-gradient(135deg, rgba(34, 197, 94, .3), rgba(6, 182, 212, .12));
  /* 语义色 / 几何 / 动效 */
  /* 语义色三件套：全部按「文本级」4.5:1 标定（卡片底 #1a1f35 实测 7.14 / 7.57 / 6.16 : 1） */
  --success: #22c55e; --warning: #f59e0b; --danger: #f87171;
  --radius: 16px; --radius-sm: 10px; --r-pill: 999px;
  --ease: cubic-bezier(.4, 0, .2, 1);
  --dur-fast: .15s; --dur: .24s;
  /* — 旧令牌别名（平滑迁移过渡；全量改名后可删） — */
  --bg-primary: var(--bg-base);
  --bg-secondary: var(--bg-band);
  --text-primary: var(--text-1);
  --text-secondary: var(--text-2);
  --text-muted: var(--text-3);
  --border-color: var(--border-1);
  --accent-gradient: var(--accent-grad);

  /* ═══ 词表 B（用户中心 / 弹窗）：与词表 A 同源同值，仅命名差异 ═══ */
  /* 底色：面板 / 浮层 / 输入框 / 骨架屏 */
  --bg-surface: var(--bg-band);                  /* 侧栏 · 面板底（等价 --bg-band） */
  --bg-elevate: #1d2742;                         /* 浮层：下拉菜单 / 弹窗 */
  --bg-input: #0b1020;                           /* 输入框 / 代码块底 */
  --bg-skeleton: rgba(255, 255, 255, .06);
  --skeleton-a: rgba(255, 255, 255, .05);
  --skeleton-b: rgba(255, 255, 255, .11);
  /* 品牌别名 */
  --accent: var(--accent-1);
  --accent-soft-2: rgba(99, 102, 241, .22);
  --border-accent: var(--border-strong);
  /* 语义色四件套：ok/warn/danger 直接复用已按 4.5:1 标定的词表 A 值（禁止另起一套色值） */
  --ok: var(--success);      --ok-soft: rgba(34, 197, 94, .14);
  --warn: var(--warning);    --warn-soft: rgba(245, 158, 11, .14);
  --danger-soft: rgba(248, 113, 113, .14);
  --info: #38bdf8;           --info-soft: rgba(56, 189, 248, .14);
  /* 焦点光环（⚠ 不复用 --glow —— 该名在词表 A 是「色值」，此处是完整 box-shadow 值） */
  --ring: 0 0 0 3px rgba(99, 102, 241, .22);
  --shadow-card: var(--card-shadow);
  --shadow-pop: var(--dropdown-shadow);
  /* 组件投影：品牌辉光三件套（徽章 / 主按钮两态）+ 推荐徽章渐变 */
  --shadow-badge: 0 4px 14px rgba(99, 102, 241, .35);
  --shadow-btn: 0 4px 16px rgba(99, 102, 241, .3);
  --shadow-btn-hover: 0 6px 24px rgba(99, 102, 241, .45);
  --badge-rec-grad: linear-gradient(135deg, #f59e0b, #f97316);
  /* 几何（用户中心用量）+ 时长的第四条 */
  --r-lg: 18px; --r-md: 13px; --r-sm: 9px;
  --dur-slow: .4s;
}
html[data-theme="light"] {
  --bg-base: #f5f6fa;
  --bg-band: #ffffff;
  --bg-card: #ffffff;
  --bg-card-hover: #fafbff;
  --bg-inset: rgba(13, 20, 37, .035);
  --nav-bg: rgba(255, 255, 255, .86);
  --text-1: #0d1425;
  --text-2: #4b5675;
  --text-3: #626c88;                     /* 相对深色档加深，实测 4.7~5.2:1（页底/卡/骨架徽章底，门禁实抓 4.52 后加余量） */
  --border-1: #e7eaf3;
  --border-soft: rgba(13, 20, 37, .07);
  --border-nav: rgba(13, 20, 37, .08);
  --border-strong: rgba(90, 91, 216, .32);
  --border-accent-soft: rgba(90, 91, 216, .2);
  --border-login: rgba(90, 91, 216, .35);
  --bg-btn2: rgba(13, 20, 37, .04);
  --bg-btn2-hover: rgba(13, 20, 37, .07);
  --border-btn2: rgba(13, 20, 37, .12);
  --border-btn2-hover: rgba(13, 20, 37, .22);
  --accent-1: #5a5bd8;
  --accent-2: #7c3aed;
  --accent-3: #5246c9;                   /* 浅色下加深：既是小字号正文，也用于 accent-soft-2 浅调底上的强调字（实测 4.97:1） */
  --accent-grad: linear-gradient(135deg, #5a5bd8, #7c3aed);
  --accent-soft: rgba(90, 91, 216, .1);
  --accent-soft-3: rgba(90, 91, 216, .26);
  --glow: rgba(90, 91, 216, .1);
  --glow-strong: rgba(90, 91, 216, .22);
  --glow-btn: rgba(90, 91, 216, .35);
  --glow-ring: rgba(90, 91, 216, .2);
  --card-shadow: 0 2px 14px rgba(13, 20, 37, .06);   /* 浅色以「描边 + 轻投影」分层 */
  --card-shadow-hover: 0 12px 34px rgba(13, 20, 37, .12);
  --dropdown-shadow: 0 18px 44px rgba(13, 20, 37, .16);
  --nav-shadow: 0 10px 30px rgba(13, 20, 37, .08);
  --particle: #5a5bd8;
  --particle-opacity: .22;
  --ic-purple-fg: #7c3aed;  --ic-purple-bg: rgba(124, 58, 237, .1);
  --ic-blue-fg:   #2563eb;  --ic-blue-bg:   rgba(37, 99, 235, .1);
  --ic-green-fg:  #059669;  --ic-green-bg:  rgba(5, 150, 105, .1);
  --ic-orange-fg: #ea580c;  --ic-orange-bg: rgba(234, 88, 12, .1);
  --ic-pink-fg:   #db2777;  --ic-pink-bg:   rgba(219, 39, 119, .1);
  --ic-cyan-fg:   #0891b2;  --ic-cyan-bg:   rgba(8, 145, 178, .1);
  --step-bg: #ffffff;
  --step-shadow: 0 2px 10px rgba(13, 20, 37, .08);
  --popular-grad: linear-gradient(135deg, rgba(90, 91, 216, .07), rgba(124, 58, 237, .05));
  --mock-stage-bg: #eef1f8;
  --mock-stage-1: rgba(90, 91, 216, .14);
  --mock-stage-2: rgba(124, 58, 237, .08);
  --mock-window: #ffffff;
  --mock-block: rgba(13, 20, 37, .05);
  --mock-line: rgba(13, 20, 37, .12);
  --mock-shadow: 0 14px 30px rgba(13, 20, 37, .12);
  --mock-grad-a: linear-gradient(135deg, rgba(90, 91, 216, .3), rgba(124, 58, 237, .12));
  --mock-grad-b: linear-gradient(135deg, rgba(37, 99, 235, .26), rgba(90, 91, 216, .12));
  --mock-grad-c: linear-gradient(135deg, rgba(5, 150, 105, .24), rgba(8, 145, 178, .1));
  /* ═══ 词表 B（用户中心 / 弹窗）：与词表 A 同源同值，仅命名差异 ═══ */
  --bg-surface: var(--bg-band);
  --bg-elevate: #ffffff;
  --bg-input: #f2f4fa;
  --bg-skeleton: rgba(13, 20, 37, .05);
  --skeleton-a: rgba(13, 20, 37, .045);
  --skeleton-b: rgba(13, 20, 37, .1);
  --accent: var(--accent-1);
  --accent-soft-2: rgba(90, 91, 216, .18);
  --border-accent: var(--border-strong);
  --ok: var(--success);      --ok-soft: rgba(7, 101, 70, .10);
  --warn: var(--warning);    --warn-soft: rgba(146, 64, 14, .10);
  --danger-soft: rgba(153, 27, 27, .09);
  --info: #075985;           --info-soft: rgba(7, 89, 133, .10);   /* 软底实测 6.00:1 */
  --ring: 0 0 0 3px rgba(90, 91, 216, .18);
  --shadow-card: var(--card-shadow);
  --shadow-pop: var(--dropdown-shadow);
  /* 组件投影：浅色下辉光减弱（避免白底泛紫糊），推荐徽章橙加深保白字对比度 */
  --shadow-badge: 0 4px 14px rgba(90, 91, 216, .28);
  --shadow-btn: 0 4px 16px rgba(90, 91, 216, .25);
  --shadow-btn-hover: 0 6px 24px rgba(90, 91, 216, .38);
  --badge-rec-grad: linear-gradient(135deg, #b45309, #c2410c);   /* 白字实测 5.0:1 */
  --r-lg: 18px; --r-md: 13px; --r-sm: 9px;
  --dur-slow: .4s;
  /* 语义色三件套：浅色下整体加深一档，标定基准是「同色 soft 浅调底」而非纯白底 ——
     notice/badge 的底是 rgba(同色,.10)，压在页底后比纯白更暗，按白底标的比值会虚高。
     实测（软底）：success 5.51 / warning 5.64 / danger 6.59 / info 6.00 : 1 */
  --success: #076546; --warning: #92400e; --danger: #991b1b;
  --radius: 16px; --radius-sm: 10px; --r-pill: 999px;
  --ease: cubic-bezier(.4, 0, .2, 1);
  --dur-fast: .15s; --dur: .24s;
}

/* ═══ ② 首帧过渡抑制（配合 <head> 内联 boot 的 .ft-boot） ═══ */
/* 初始主题应用期：抑制一切过渡（避免首帧/无头截图的中间态） */
html.ft-boot *, html.ft-boot *::before, html.ft-boot *::after { transition: none !important; }

/* ═══ ③ 基础底座（全站共享） ═══ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  background: var(--bg-base);
  color: var(--text-1);
  line-height: 1.6;
  overflow-x: hidden;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
section[id] { scroll-margin-top: 64px; }   /* 锚点跳转避开固定顶栏 */
.gradient-text {
  background: var(--accent-grad);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* 滚动显现（既有机制保留） */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
/* 动效关键帧（既有，保留） */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
@keyframes float { 0% { transform: translateY(100vh) rotate(0deg); opacity: 0; } 10% { opacity: .3; } 90% { opacity: .3; } 100% { transform: translateY(-100px) rotate(720deg); opacity: 0; } }
