/* ============================================================
   violet.css — "Violet" 主题（隐藏）

   这就是原本的 Night 配色（紫色 #8B7FD9）。Night 改为钴蓝之后，
   这套配色被原样保留下来并改名为 violet。

   ⚠️ 它是**隐藏主题**：
     · 不在右上角切换按钮的循环里（见 base.html 的 THEME_CYCLE，只有 3 档）
     · 不参与时间自动切换（getTimeBasedTheme 只返回 morning / afternoon / night）
     · 但仍可通过 ?theme=violet 访问，并会像其它主题一样被记住

   取值与原先的 Night 逐字相同 —— 这不是重新配色，只是搬家 + 改名。
   字体、字号、字重、字距、圆角、间距、投影强度一律沿用 site.css 的基础规则。

   全部规则 scoped 在 html[data-theme="violet"] 下。多带一个 html 元素选择器
   是为了让特异性高过 site.css 里的 :root / [data-theme] 规则，并且压过
   index.html 的 extra_css —— 后者在两个样式表之后加载，靠源码顺序赢不了。

   未激活 violet 时，本文件对页面零影响。
   ============================================================ */

/* ===== 1. 配色令牌 =====
   结构与 site.css 里的 [data-theme="night"] 完全一致。
   ⚠️ hex 与 triplet 必须同步。 */
html[data-theme="violet"] {
    --primary: #8B7FD9;
    --primary-rgb: 139, 127, 217;
    --primary-light: #B4A7F0;
    --primary-dark: #6A5CB8;
    --bg-start: #1A1A2E;
    --bg-end: #16213E;
    --card-bg: rgba(30, 30, 60, 0.80);
    --card-border: rgba(var(--primary-rgb), 0.20);
    --shadow-sm: 0 8px 32px rgba(0, 0, 0, 0.30);
    --shadow-hover: 0 14px 44px rgba(var(--primary-rgb), 0.25);
    --text-primary: #E8E4F0;
    --text-secondary: #B8B0D0;
    --icon-gradient: linear-gradient(135deg, #B4A7F0, #8B7FD9);
    --footer-border: rgba(var(--primary-rgb), 0.10);
    --hero-glow: rgba(var(--primary-rgb), 0.13);
}

/* ===== 2. 颜色覆盖 =====
   site.css 里这一整组规则挂在 [data-theme="night"] 下，换成 violet 后不会命中，
   所以必须在这里整份重来一遍 —— 否则 violet 会悄悄退化成浅色的基础样式
   （这是最容易漏的一步：令牌块生效了，但悬停/滚动这些状态色没跟上）。 */
html[data-theme="violet"] .navbar.scrolled {
    background: rgba(20, 20, 40, 0.85);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.30);
}

html[data-theme="violet"] .blackhole .accretion-disk {
    box-shadow: 0 0 30px rgba(var(--primary-rgb), 0.4),
        0 0 80px rgba(var(--primary-rgb), 0.2);
}

html[data-theme="violet"] .blackhole .event-horizon::after {
    background: radial-gradient(
        circle at 30% 30%,
        rgba(var(--primary-rgb), 0.20) 0%,
        rgba(100, 80, 200, 0.10) 40%,
        transparent 70%
    );
}

html[data-theme="violet"] .blackhole .einstein-ring {
    border-color: rgba(var(--primary-rgb), 0.20);
    box-shadow: 0 0 20px rgba(var(--primary-rgb), 0.08),
        inset 0 0 20px rgba(var(--primary-rgb), 0.05);
}

html[data-theme="violet"] .nav-menu a:hover {
    background: rgba(var(--primary-rgb), 0.15);
}

html[data-theme="violet"] .nav-menu a.active {
    background: rgba(var(--primary-rgb), 0.15);
}

html[data-theme="violet"] .mode-toggle:hover {
    background: rgba(var(--primary-rgb), 0.15);
}

html[data-theme="violet"] .content-card:hover {
    border-color: rgba(var(--primary-rgb), 0.30);
}

html[data-theme="violet"] .content-card .card-tags span {
    background: rgba(var(--primary-rgb), 0.15);
}

html[data-theme="violet"] .back-top:hover {
    background: var(--primary);
    box-shadow: 0 4px 14px rgba(var(--primary-rgb), 0.25);
}

/* 首页快捷卡片 —— 基础规则在 index.html 的 extra_css 里写死了浅色 */
html[data-theme="violet"] .link-card:hover {
    background: rgba(40, 40, 80, 0.85);
    border-color: rgba(var(--primary-rgb), 0.30);
}
