/* ============================================
   静水流深 - 个人主页 样式表
   ============================================ */

/* === CSS 变量 & 主题 === */
:root {
    --bg-primary: #fafafa;
    --text-primary: #48484f;   /* 柔和黑，原 #48484f 偏死黑 */
    --text-secondary: #555555;
    --text-tertiary: #888888;
    --accent: #c62828;
    --accent-hover: #e53935;
    --border: rgba(0, 0, 0, 0.08);
    --border-subtle: rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.1);
    --frost-bg: rgba(255, 255, 255, 0.6);
    --frost-border: rgba(255, 255, 255, 0.4);
    --nav-bg: rgba(255, 255, 255, 0.8);
    --tag-bg: rgba(198, 40, 40, 0.08);
    --tag-text: #c62828;
    --scrollbar-thumb: rgba(0, 0, 0, 0.15);
    --scrollbar-track: transparent;
    --journey-line: rgba(0, 0, 0, 0.1);
    --overlay-bg: rgba(0, 0, 0, 0.5);
    --popup-bg: rgba(255, 255, 255, 0.95);
    --page-overlay-color: rgba(255, 255, 255, 0.45);
    --page-overlay-color-light: rgba(255, 255, 255, 0.65);
}

[data-theme="dark"] {
    --bg-primary: #0d0d0d;
    --text-primary: #e0e0e0;
    --text-secondary: #999999;
    --text-tertiary: #666666;
    --accent: #ef5350;
    --accent-hover: #f44336;
    --border: rgba(255, 255, 255, 0.08);
    --border-subtle: rgba(255, 255, 255, 0.04);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.5);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);
    --frost-bg: rgba(20, 20, 20, 0.75);
    --frost-border: rgba(255, 255, 255, 0.06);
    --nav-bg: rgba(15, 15, 15, 0.85);
    --tag-bg: rgba(239, 83, 80, 0.12);
    --tag-text: #ef5350;
    --scrollbar-thumb: rgba(255, 255, 255, 0.15);
    --journey-line: rgba(255, 255, 255, 0.08);
    --overlay-bg: rgba(0, 0, 0, 0.7);
    --popup-bg: rgba(25, 25, 25, 0.95);
    --page-overlay-color: rgba(0, 0, 0, 0.5);
    --page-overlay-color-light: rgba(0, 0, 0, 0.65);
}

/* === 基础重置 === */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html {
    scroll-behavior: smooth; font-size: 16px; overflow-x: hidden;
    --nav-h: 53px;                 /* 标题栏实测高度 */
    scroll-padding-top: var(--nav-h);   /* 锚点跳转时预留标题栏 */
}

/* ==================== 按屏幕高度自适应 ====================
   站内尺寸几乎都用 rem，所以调整根字号即可整体等比收紧，
   字号 / 间距 / 内边距同步缩放，各页留白比例不会被破坏。 */
@media (max-height: 950px) { html { font-size: 15px; } }
@media (max-height: 860px) { html { font-size: 14px; } }
@media (max-height: 830px) { html { font-size: 13px; } }

body {
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    line-height: 1.6;
    transition: background-color 0.4s ease, color 0.4s ease;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* === 统一字体层级 === */
h3 { font-size: 2rem; font-weight: 700; letter-spacing: -0.02em; }
h4 { font-size: 1.5rem; font-weight: 600; letter-spacing: -0.01em; }
h5 { font-size: 1.15rem; font-weight: 600; }
p  { font-size: 1rem; font-weight: 400; line-height: 1.7; }
.section-title-red { color: var(--accent) !important; }
.intro-section-title { color: var(--accent) !important; }

a { color: var(--accent); text-decoration: none; transition: color 0.25s ease; }
a:hover { color: var(--accent-hover); }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--scrollbar-track); }
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 3px; }

/* ==================== 全局背景图/视频 ==================== */
#global-bg-video {
    position: fixed; inset: 0; z-index: -1;
    width: 100%; height: 100%; object-fit: cover;
    opacity: 0; pointer-events: none; transition: opacity 0.6s;
}
#global-bg-video.show { opacity: 1; }

#global-bg-img {
    position: fixed; inset: 0; z-index: -2;
    background: url('panal/home.jpg?v=812ebe4c') center/cover no-repeat;
}

.bg-arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    font-size: 2rem; color: rgba(255,255,255,0.6); cursor: pointer; z-index: 3;
    transition: all 0.3s; text-decoration: none;
    width: 40px; height: 60px; align-items: center; justify-content: center;
    background: rgba(0,0,0,0.15);
    /* 默认不显示：只有一个可用背景时左右切换没有意义，
       由 script.js 判定可用背景 >= 2 个后给 body 加 .has-bg-switch */
    display: none;
}
body.has-bg-switch .bg-arrow { display: flex; }
.bg-arrow:hover { color: #fff; background: rgba(0,0,0,0.3); }

.bg-arrow-left { left: 0; border-radius: 0 8px 8px 0; }
.bg-arrow-right { right: 0; border-radius: 8px 0 0 8px; }

/* ==================== 全页布局 ==================== */
.full-page {
    position: relative; width: 100%;
    min-height: calc(100dvh - var(--nav-h));   /* 整页高度含标题栏 */
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; overflow: hidden;
}

#page-home {
    justify-content: flex-start; padding-top: 12vh;   /* 背景是笔记本照片，居中会让文字压到屏幕上 */
    min-height: 100dvh;            /* 首页特殊：标题栏浮在页面之上，背景须铺满整屏 */
}

.page-content,
#headline-container,
#scroll-down-wrapper { position: relative; z-index: 2; }

.page-content {
    width: 100%; max-width: 900px;
    padding: 3rem 2rem;
    display: flex; flex-direction: column; align-items: center;
}

/* === 纯色背景页 === */
.page-solid { justify-content: center; }   /* 原为顶对齐，导致上下留白不均 */
.page-white { background: #ffffff; }
.page-gray { background: #f0f0f2; }
[data-theme="dark"] .page-white { background: #1e1e22; }
[data-theme="dark"] .page-gray { background: #25252a; }

#page-about { min-height: calc(100dvh - var(--nav-h)); }
#page-about .page-content { padding: 2.5rem 2rem; max-width: 1170px; align-items: stretch; }
#page-works { min-height: calc(100dvh - var(--nav-h)); }
#page-works .page-content { padding: 1rem 2rem 1rem; max-width: 80vw; }
#page-works .heading-underline-1 { margin-bottom: 0.8rem; }
.page-journey-fix { background: #f0f0f2; min-height: calc(100dvh - var(--nav-h)); justify-content: center !important; }
[data-theme="dark"] .page-journey-fix { background: #25252a; }
#page-journey .page-content { padding: 0; margin: auto !important; }

/* ==================== 导航栏 ==================== */
#nav-bar {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 2rem; height: 3.5rem; overflow: visible;
    background: transparent; transition: all 0.4s ease;
}

#nav-bar.scrolled {
    background: var(--nav-bg);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow-md);
}

/* ==================== 左上角 Logo：图标 + 名称 + 方框标签 ==================== */
#nav-logo-container {
    display: flex; align-items: center; gap: 0.5rem;
    cursor: pointer; text-decoration: none;
    color: #ffffff;                       /* 首屏在深色照片上 -> 全白 */
    transition: opacity 0.3s ease;
}
#nav-logo-container:hover { opacity: 0.82; }

/* 图标：白色剪影（透明底），浅色毛玻璃条上反相成黑色 */
.nav-logo-mark { height: 26px; width: auto; display: block; transition: filter 0.3s ease; }

.nav-logo-word {
    font-size: 1.05rem; font-weight: 700; letter-spacing: -0.01em;
    line-height: 1; white-space: nowrap;
}

.nav-logo-badge {
    display: inline-flex; align-items: center;
    padding: 2px 5px; border-radius: 4px;
    font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em;
    line-height: 1.3; white-space: nowrap;
    background: #ffffff; color: #17181c;
    transition: background 0.3s ease, color 0.3s ease;
}

/* 滚动到毛玻璃条上：文字跟随主题色，图标与标签做反相 */
#nav-bar.scrolled #nav-logo-container { color: var(--text-primary); }
[data-theme="light"] #nav-bar.scrolled .nav-logo-mark { filter: invert(1); }
[data-theme="light"] #nav-bar.scrolled .nav-logo-badge { background: #48484f; color: #ffffff; }
[data-theme="dark"] #nav-bar.scrolled .nav-logo-badge { background: #e6e6e6; color: #141414; }

#nav-link-container { display: flex; align-items: center; gap: 1.5rem; }

.nav-link {
    font-size: 1rem; color: rgba(255, 255, 255, 0.85) !important;
    cursor: pointer; position: relative; padding: 0.25rem 0;
    transition: color 0.25s ease !important;
    user-select: none; text-decoration: none; font-weight: 500;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.nav-link::after {
    content: ''; position: absolute; bottom: -2px; left: 0;
    width: 0; height: 2px; background: var(--accent);
    border-radius: 1px; transition: width 0.3s ease;
}

.nav-link:hover { color: #ffffff !important; }
.nav-link:hover::after { width: 100%; }
/* 导航选中态：仅「首页」这一项不显示（其余四项保留） */
.nav-link.active:not([data-target="page-home"]) { color: var(--accent) !important; text-shadow: none; }
.nav-link.active:not([data-target="page-home"])::after { width: 100%; }

#nav-bar.scrolled .nav-link { color: var(--text-secondary) !important; text-shadow: none; }
#nav-bar.scrolled .nav-link:hover { color: var(--text-primary) !important; }
#nav-bar.scrolled .nav-link.active:not([data-target="page-home"]) { color: var(--accent) !important; }

/* ==================== 主题切换：日/夜分段开关 ====================
   外观完全由 <html data-theme> 驱动，不需要 JS 改内容 */
.theme-toggle {
    display: inline-flex; align-items: center; gap: 2px;
    padding: 2px; margin-left: 0.25rem;
    border: 1px solid rgba(255, 255, 255, 0.38);
    border-radius: 999px;
    /* 毛玻璃：半透明底 + 背景模糊&提饱和 + 顶部高光 + 轻微外投影 + 表面光泽 */
    background-color: rgba(255, 255, 255, 0.22);
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0) 62%);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        inset 0 -1px 0 rgba(255, 255, 255, 0.10),
        0 2px 10px rgba(0, 0, 0, 0.12);
    cursor: pointer; font: inherit;
    transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.theme-toggle:hover {
    background-color: rgba(255, 255, 255, 0.34);
    border-color: rgba(255, 255, 255, 0.52);
}

.theme-toggle-opt {
    display: grid; place-items: center;
    width: 22px; height: 22px; border-radius: 50%;
    color: rgba(255, 255, 255, 0.62);
    transition: background 0.3s ease, color 0.3s ease,
                transform 0.3s ease, box-shadow 0.3s ease;
}
.theme-toggle-opt svg { width: 13px; height: 13px; display: block; }

/* 当前主题那一侧点亮，另一侧缩小变暗 */
[data-theme="light"] .theme-toggle-sun,
[data-theme="dark"] .theme-toggle-moon {
    background: #ffffff; color: #1d1d1f;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
}
[data-theme="light"] .theme-toggle-moon,
[data-theme="dark"] .theme-toggle-sun { transform: scale(0.82); }

/* 导航栏滚动后是毛玻璃条：换成中性灰底，浅色/深色下都看得清 */
#nav-bar.scrolled .theme-toggle {
    background-color: rgba(120, 120, 128, 0.16);
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 62%);
    border-color: rgba(120, 120, 128, 0.26);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 2px 10px rgba(0, 0, 0, 0.08);
}
#nav-bar.scrolled .theme-toggle-opt { color: var(--text-secondary); }
[data-theme="light"] #nav-bar.scrolled .theme-toggle-sun,
[data-theme="dark"] #nav-bar.scrolled .theme-toggle-moon { color: #1d1d1f; }

/* 移动端菜单里的主题行 */
.theme-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; padding: 0.75rem 0.5rem; border-radius: 0.5rem;
    font-size: 1.1rem; color: var(--text-secondary);
    cursor: pointer; user-select: none; transition: background 0.25s ease;
}
.theme-row:hover { background: var(--border-subtle); }
.theme-row .theme-toggle { margin-left: 0; background: rgba(120, 120, 128, 0.16); border-color: rgba(120, 120, 128, 0.24); }
.theme-row .theme-toggle-opt { color: var(--text-secondary); }
[data-theme="light"] .theme-row .theme-toggle-sun,
[data-theme="dark"] .theme-row .theme-toggle-moon { color: #1d1d1f; }

.btn-menu { display: none; font-size: 1.5rem; cursor: pointer; color: var(--text-primary); padding: 0.25rem 0.5rem; border-radius: 0.5rem; user-select: none; }
.btn-menu:hover { background: var(--border-subtle); }
#nav-menu-overlay { display: none; }

#nav-menu {
    position: fixed; top: 0; right: -100%; width: 280px; height: 100vh;
    background: var(--popup-bg);
    backdrop-filter: blur(30px) saturate(180%);
    -webkit-backdrop-filter: blur(30px) saturate(180%);
    z-index: 200; display: flex; flex-direction: column;
    padding: 1.5rem; gap: 1rem;
    transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    border-left: 1px solid var(--border);
}

#nav-menu.active { right: 0; }
#nav-menu .nav-link { font-size: 1.1rem; padding: 0.75rem 0.5rem; border-radius: 0.5rem; }
#nav-menu .nav-link:hover { background: var(--border-subtle); }
#nav-menu .dividing-line { height: 1px; background: var(--border); margin: 0.25rem 0; }
#nav-menu .btn-menu { align-self: flex-end; display: block; }

/* ==================== 首页 Hero ==================== */
#hero-content {
    position: relative; z-index: 2; text-align: center;
    display: flex; flex-direction: column; align-items: center;
    padding: 2rem;
}

.hero-subtitle {
    font-size: 1.5rem; color: rgba(255, 255, 255, 0.85);
    letter-spacing: 0.3em; margin-bottom: 0.5rem;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.hero-title {
    /* 原为衬线体，与全站无衬线不一致，已统一 */
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC",
                 "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    font-size: 4rem; font-weight: 800; color: #ffffff;
    letter-spacing: 0.02em; margin-bottom: 1rem;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); line-height: 1.1;
}

/* --- i 上的圆点：只让圆点闪，并且与字母严格对齐 -------------------------
   h1 是 font-weight: 800，浏览器实际渲染的是 Times New Roman Bold，
   下列数值都从该字体实测（1em = 4rem = 64px）：
     基线到行内盒顶部         = 0.8911em
     圆点中心在基线以上       = 0.6016em，直径 0.1500em
     圆点横向中心距字形原点   = 0.1430em
     圆点底部与竖笔顶部的空隙 = 0.4562em ~ 0.5266em（基线以上）
   字母拆成两层，两层都用同一个字形 'i' 画出来，所以永远对得上：
     ::before → 竖笔（裁掉顶部圆点区域），静止不闪
     ::after  → 红色圆点，圆心正好落在字形圆点的中心，只有它闪
   全部用 em，字号或缩放变化时整体等比跟随。
   ---------------------------------------------------------------------- */
.breathe-dot {
    position: relative;
    color: transparent;          /* 原生字形由下面两层重绘；文字仍是 i，可正常复制 */
}

.breathe-dot::before,
.breathe-dot::after {
    position: absolute;
    top: 0; left: 0;
    line-height: 1.1074em;       /* = 字体 ascent+descent，消除半行距偏移 */
    text-shadow: none;           /* 投影交给 span 的透明字形，避免被裁掉 */
}

/* 竖笔：只保留下半部分，静止 */
.breathe-dot::before {
    content: 'i';
    color: #ffffff;
    -webkit-clip-path: inset(0.40em 0 0 0);
    clip-path: inset(0.40em 0 0 0);
}

/* 红色圆点：圆心精确落在字形圆点的中心，只有它呼吸 */
.breathe-dot::after {
    content: '';
    top: 0.2895em;               /* 0.8911em − 0.6016em：圆心对准字形圆点 */
    left: 0.1430em;              /* 字形圆点的横向中心 */
    width: 0.1500em;
    height: 0.1500em;
    border-radius: 50%;
    --dot-color: #c62828;
    background: var(--dot-color);
    box-shadow: 0 0 6px var(--dot-color), 0 0 14px var(--dot-color);
    z-index: 10;
    transform: translate(-50%, -50%);
    animation: breathe 2s ease-in-out infinite;
}

[data-theme="dark"] .breathe-dot::after {
    --dot-color: #ef4444;
}

@keyframes breathe {
    0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.7); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.4);
             box-shadow: 0 0 10px var(--dot-color), 0 0 22px var(--dot-color); }
}

.hero-desc {
    font-size: 1.5rem; color: rgba(255, 255, 255, 0.8);
    margin-bottom: 2rem; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }

.hero-btn {
    display: inline-flex; align-items: center; gap: 0.7rem;
    padding: 0.42rem 0.55rem 0.42rem 1.6rem;   /* 右侧留给圆形箭头 */
    font-size: 1rem; font-weight: 600; border-radius: 2rem;
    letter-spacing: 0.04em; cursor: pointer;
    transition: all 0.3s ease; text-decoration: none;
}

/* 圆形箭头徽标（参考实心圆 + 粗箭头的图标风格） */
.btn-arrow {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.75rem; height: 1.75rem; border-radius: 50%;
    flex: 0 0 auto;
    transition: background-color 0.3s ease, color 0.3s ease,
                transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.btn-arrow svg { width: 0.95rem; height: 0.95rem; display: block; }

/* 主按钮：白圆 + 红箭头 */
.hero-btn-primary .btn-arrow { background: #ffffff; color: var(--accent); }
.hero-btn-primary:hover .btn-arrow { transform: translateX(3px); }

/* 描边按钮：半透明白圆 + 白箭头，悬停填白反色 */
.hero-btn-outline .btn-arrow { background: rgba(255, 255, 255, 0.18); color: #ffffff; }
.hero-btn-outline:hover .btn-arrow {
    background: #ffffff; color: #26262c; transform: translateX(3px);
}

.hero-btn-primary { background: var(--accent); color: #fff !important; border: 2px solid var(--accent); }
.hero-btn-primary:hover { background: #b71c1c; border-color: #b71c1c; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(198, 40, 40, 0.4); }

.hero-btn-outline { background: transparent; color: #fff !important; border: 2px solid rgba(255, 255, 255, 0.6); }
.hero-btn-outline:hover { background: rgba(255, 255, 255, 0.15); border-color: #fff; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); }

/* 左侧图标：固定悬浮，滚动到任何一页都可见 */
.hero-side-left {
    position: fixed; left: 2rem; top: 38%; transform: translateY(-50%);
    display: flex; flex-direction: column; gap: 1rem;
    z-index: 40;                 /* 在内容之上、顶部导航(z:100)之下 */
}
/* 亮底页面：切换为深色实底，保证白底上清晰可见 */
.hero-side-left.on-light .hero-icon-btn {
    background-color: rgba(32, 32, 38, 0.82);
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 62%);
    border-color: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.20),
        0 4px 16px rgba(0, 0, 0, 0.22);
}
.hero-side-left.on-light .hero-icon-btn:hover {
    background-color: rgba(20, 20, 26, 0.92);
}

/* 悬浮按钮加一点投影，压在深色/浅色内容上都能看清 */
.hero-side-left .hero-icon-btn {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.52),
        inset 0 -1px 0 rgba(255, 255, 255, 0.08),
        0 4px 18px rgba(0, 0, 0, 0.28);
}
/* 移动端缩小并贴近边缘，避免遮挡内容 */
@media (max-width: 768px) {
    .hero-side-left { left: 0.75rem; top: auto; bottom: 5.5rem; transform: none; }
    .hero-side-left .hero-icon-btn { width: 38px; height: 38px; }
}

.hero-icon-btn {
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%;
    /* 毛玻璃：与主题开关、个人页导航按钮同一套配方 */
    background-color: rgba(255, 255, 255, 0.14);
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0) 62%);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.34);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.52),
        inset 0 -1px 0 rgba(255, 255, 255, 0.08),
        0 2px 12px rgba(0, 0, 0, 0.18);
    color: rgba(255, 255, 255, 0.9);
    transition: transform 0.3s ease, background-color 0.3s ease,
                border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
    position: relative;
}

.hero-icon-spin::before {
    content: ''; position: absolute; inset: -6px; border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #c62828;
    animation: firecracker 3s linear infinite;
    pointer-events: none;
}

.hero-icon-btn:hover {
    background-color: rgba(255, 255, 255, 0.26);
    border-color: rgba(255, 255, 255, 0.62);
    color: #fff;
    transform: translateY(-3px) scale(1.06);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.68),
        0 8px 26px rgba(0, 0, 0, 0.30),
        0 0 0 4px rgba(255, 255, 255, 0.07);   /* 外侧一圈极淡柔光 */
}

.hero-icon-spin:hover::before {
    border-top-color: #ff4444;
    animation-duration: 1.5s;
}

@keyframes firecracker {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* 下拉按钮 */
#scroll-down-wrapper { position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%); }

#scroll-down-icon {
    display: flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.8); color: rgba(255, 255, 255, 0.9);
    cursor: pointer; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    background: rgba(255, 255, 255, 0.1); transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative; box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}

#scroll-down-icon::before,
#scroll-down-icon::after {
    content: ''; position: absolute; border-radius: 50%;
    border: 2px dashed rgba(255, 255, 255, 0.7); pointer-events: none;
}
#scroll-down-icon::before { inset: -4px; animation: wave-1 2s ease-out infinite; }
#scroll-down-icon::after { inset: -4px; animation: wave-2 2s ease-out infinite 0.6s; }

@keyframes wave-1 { 0% { inset: -4px; opacity: 0.8; } 100% { inset: -36px; opacity: 0; } }
@keyframes wave-2 { 0% { inset: -4px; opacity: 0.8; } 100% { inset: -36px; opacity: 0; } }

#scroll-down-icon:hover { border-color: var(--accent); color: #fff; background: var(--accent); transform: translateY(-4px); box-shadow: 0 8px 28px rgba(198, 40, 40, 0.5); }
#scroll-down-icon:hover::before, #scroll-down-icon:hover::after { border-color: var(--accent); animation: none; opacity: 0; }

/* ==================== 第二页：特性网格 ==================== */
.section-title-red { color: var(--accent) !important; }
.about-intro-desc {
    max-width: 100%; margin: 0 0 1rem;
    color: var(--text-secondary); text-align: left; text-indent: 0;
}
.about-intro-desc + .about-intro-desc {
    margin-bottom: 3rem;
}

.features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.5rem 2.5rem; width: 100%; }

.feature-item h4 {
    font-weight: 700; color: var(--text-primary);
    margin-bottom: 0.6rem; padding-left: 0;
    display: flex; align-items: center; gap: 0.5rem;
}

.feature-item h4::before {
    content: '\2713';
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; min-width: 36px;
    border-radius: 50%; border: 2px solid var(--accent);
    color: var(--accent); font-size: 1rem; font-weight: 700;
}

.feature-item p { color: var(--text-secondary); }

h3 { text-align: center; color: var(--text-primary); margin-bottom: 0.2rem; }

.heading-underline-1 { display: block; width: 40px; height: 2.5px; background: var(--accent); border-radius: 2px; margin: 0.4rem auto 1.5rem; opacity: 0.5; }

/* ==================== 第三页：功能卡片 ==================== */
.features-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; width: 100%; }

.feature-card {
    background: var(--frost-bg); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--frost-border); border-radius: 1rem; overflow: hidden;
    transition: all 0.3s ease;
}

/* 选中/悬停：硬红框 -> 多层发散的红色立体辉光 */
.feature-card:hover {
    transform: translateY(-4px);
    box-shadow:
        0 0 6px rgba(198, 40, 40, 0.42),
        0 0 16px rgba(198, 40, 40, 0.28),
        0 0 34px rgba(198, 40, 40, 0.16),
        0 0 58px rgba(198, 40, 40, 0.09),
        0 12px 26px rgba(0, 0, 0, 0.14);
}
[data-theme="dark"] .feature-card:hover {
    box-shadow:
        0 0 6px rgba(239, 68, 68, 0.52),
        0 0 16px rgba(239, 68, 68, 0.36),
        0 0 34px rgba(239, 68, 68, 0.20),
        0 0 58px rgba(239, 68, 68, 0.11),
        0 12px 26px rgba(0, 0, 0, 0.45);
}

.feature-card-img {
    aspect-ratio: 1.846 / 1;
    background: linear-gradient(135deg, #e0e0e0 0%, #f5f5f5 100%);
    overflow: hidden;
}
.feature-card-img img {
    width: 100%; height: 100%; object-fit: contain;
}
[data-theme="dark"] .feature-card-img { background: linear-gradient(135deg, #2a2a2e 0%, #48484f 100%); }

.feature-card-text { padding: 1.05rem 1.15rem 1.2rem; }
.feature-card-text h4 {
    font-weight: 700; color: var(--text-primary); font-size: 1.05rem;
    line-height: 1.5; margin-bottom: 0.5rem;
    border-left: 3px solid var(--accent); padding-left: 0.55rem;
}
.feature-card-text p { color: var(--text-secondary); line-height: 1.7; font-size: 1rem; }

/* ==================== 第四页：基本介绍（高级简约） ==================== */
.page-intro-fix { background: #ffffff; min-height: calc(100dvh - var(--nav-h)); display: flex !important; }
[data-theme="dark"] .page-intro-fix { background: #1e1e22; }
/* 「专业能力与软件对比」整页底背景框：白/浅灰斜分 + 沿分界线的红色细线 */
#page-intro .page-intro-new {
    width: 83.33vw;                             /* 与视频页大卡片（.video-layout）同宽 */
    max-width: none !important;
    padding: 2.25rem 2rem !important;
    align-items: stretch !important;
    margin: auto !important;
    position: relative;
    border-radius: 1.5rem;
    border: 1px solid rgba(0, 0, 0, 0.06);
    background-image:
        /* 上白下浅灰的对角分界 */
        linear-gradient(163deg,
            #ffffff 0%, #ffffff 30.1%,
            #f0f0f4 30.4%, #eaeaef 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 22px 48px -22px rgba(0, 0, 0, 0.20);
}
[data-theme="dark"] #page-intro .page-intro-new {
    border-color: rgba(255, 255, 255, 0.07);
    background-image:
        linear-gradient(163deg,
            #202027 0%, #202027 30.1%,
            #17171c 30.4%, #141419 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 22px 48px -22px rgba(0, 0, 0, 0.65);
}

.intro-header-sub { text-align: center; color: var(--text-tertiary); margin: 0 0 1rem; font-size: 1rem; }


.intro-header h3 { margin-bottom: 0.2rem; }
.intro-header .heading-underline-1 { margin: 0.3rem auto 0.5rem; }
#page-intro .heading-underline-1 { display: none; }   /* 该页标题下不要红横线 */

.intro-tags-bar {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem;
    margin: 1rem 0 1.2rem;
}
.intro-tags-bar span {
    padding: 0.4rem 1rem; font-weight: 500;
    background: #f5f5f7; color: #555; border-radius: 0.5rem;
    letter-spacing: 0.02em;
}
[data-theme="dark"] .intro-tags-bar span { background: #25252a; color: #999; }

/* ==================== 新版第四页：喜利得式红带 + 无卡片四栏 ==================== */
#page-intro {
    padding: 0 !important;
    justify-content: flex-start !important;
    flex-direction: column;
}

/* 顶部全宽红带（含斜纹） */
.intro-band {
    position: relative; width: 100%;
    padding: 7.5rem 2rem 2.25rem;  /* 红带高度：字号统一后压缩，避免溢出 */
    background: #c62828;
    text-align: center;
    overflow: hidden;
}
.intro-band::before {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: repeating-linear-gradient(115deg,
        rgba(255, 255, 255, 0.075) 0 90px, rgba(255, 255, 255, 0) 90px 300px);
}
/* 磨砂颗粒：噪点贴图叠加，柔光混合 */
.intro-band::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image: url('panal/noise.png?v=fcc11721');
    background-repeat: repeat;
    opacity: 0.22;
    mix-blend-mode: overlay;
}
.intro-band-kicker,
.intro-band-title,
.intro-band-sub { position: relative; z-index: 1; }
.intro-band-kicker {
    font-size: 1rem; letter-spacing: 0.14em; font-weight: 600;
    color: rgba(255, 255, 255, 0.88); margin-bottom: 0.5rem;
}
.intro-band-title {
    font-size: 2.7rem; font-weight: 800; color: #ffffff;
    letter-spacing: 0.04em; line-height: 1.15;
    margin: 0;
}
.intro-band-sub {
    margin-top: 0.8rem;
    font-size: 1rem; color: rgba(255, 255, 255, 0.88);
    letter-spacing: 0.02em;
}

/* 红带以下：内容直接铺开，无卡片 */
.intro-plain {
    position: relative;
    flex: 1; width: 100%;
    display: flex; flex-direction: column; justify-content: flex-start;
    gap: 1.5rem;
    padding: 2rem 2rem 2rem;
}
.intro-tags-plain {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem;
}
/* ==================== 统一的标签胶囊（专业能力页 + 个人中心共用） ==================== */
.intro-tags-plain span,
.personal-tags span {
    padding: 0.32rem 0.9rem; font-size: 1rem; font-weight: 500;
    background: #f0f0f2; color: #555;
    border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 999px;
    letter-spacing: 0.02em;
    transition: background-color 0.22s ease, border-color 0.22s ease, color 0.22s ease;
}
/* 悬停/选中：浅灰加深一点点 */
.intro-tags-plain span:hover,
.personal-tags span:hover {
    background: #e2e2e8; color: #333;
    border-color: rgba(0, 0, 0, 0.10);
}

.intro-columns {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 0; width: 100%;
    max-width: min(97vw, 1620px); margin: 0 auto;   /* 与参考图同宽比例 */
}
.intro-col {
    display: flex; flex-direction: column; align-items: center;
    text-align: center; padding: 0 0.7rem;
    position: relative;
    transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
}
/* 上下渐隐的分隔线，比一条实线精致 */
.intro-col + .intro-col::before {
    content: ''; position: absolute; left: 0; top: 6%; bottom: 6%; width: 1px;
    background: linear-gradient(180deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.10) 18%,
        rgba(0, 0, 0, 0.10) 82%,
        rgba(0, 0, 0, 0) 100%);
}
/* 悬浮：整栏上浮 + 图片投影放大 + 标题变红 */
.intro-col:hover { transform: translateY(-8px); }
.intro-col:hover .intro-col-img {
    box-shadow: 0 18px 34px -14px rgba(0, 0, 0, 0.42), 0 4px 12px -6px rgba(0, 0, 0, 0.20);
    transform: scale(1.035);
}
.intro-col:hover .intro-col-title { color: #c62828; }
.intro-col:first-child { border-left: 0; }
.intro-col-img {
    display: block; width: 100%; aspect-ratio: 3 / 2;   /* 参考图 445x300 的比例 */
    object-fit: cover; margin-bottom: 1.15rem;
    background: #f0f0f4;
    /* 四张照片来源不同，色调差异大；统一压饱和提对比，观感一致 */
    filter: saturate(0.78) contrast(1.04) brightness(1.02);
    transition: box-shadow 0.32s ease, transform 0.32s ease, filter 0.32s ease;
}
.intro-col:hover .intro-col-img { filter: saturate(0.92) contrast(1.04) brightness(1.03); }
.intro-col-kicker {
    font-size: 0.9rem; font-weight: 400; color: rgba(198, 40, 40, 0.88);   /* 品牌红，略淡 */
    line-height: 1.5; margin-bottom: 0.5rem;
    min-height: 2.4rem;   /* 固定高度：字号变小后四栏标题仍横向对齐 */
    display: flex; align-items: flex-end; justify-content: center;
    letter-spacing: 0.02em;
}
.intro-col-title {
    font-size: 1.3rem; font-weight: 700; color: var(--text-primary);
    letter-spacing: 0.02em; margin-bottom: 1.15rem;
    transition: color 0.3s ease;
}
.intro-col-list { list-style: none; width: 100%; text-align: left; }
.intro-col-list li {
    position: relative; padding-left: 1.25rem; margin-bottom: 0.62rem;
    font-size: 1rem; color: var(--text-tertiary); line-height: 1.7;
    letter-spacing: 0.01em;
}
.intro-col-list li:last-child { margin-bottom: 0; }
.intro-col-list li::before {
    content: ''; position: absolute; left: 0; top: 0.55em;
    width: 0.68rem; height: 0.85rem;
    /* 颜色跟随条目文字（--text-tertiary: #888888） */
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5.5 15.5 12 9 18.5'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* 深色主题 */
[data-theme="dark"] .intro-tags-plain span,
[data-theme="dark"] .personal-tags span {
    background: #2a2a2e; color: #9a9aa2; border-color: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .intro-tags-plain span:hover,
[data-theme="dark"] .personal-tags span:hover {
    background: #34343a; color: #c9c9d0; border-color: rgba(255, 255, 255, 0.12);
}
[data-theme="dark"] .intro-col + .intro-col::before {
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.12) 18%,
        rgba(255, 255, 255, 0.12) 82%,
        rgba(255, 255, 255, 0) 100%);
}
[data-theme="dark"] .intro-col-list li::before {
    /* 跟随深色主题 --text-tertiary: #666666 */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5.5 15.5 12 9 18.5'/%3E%3C/svg%3E");
}
[data-theme="dark"] .intro-col-icon { stroke: #d6d6dc; }
[data-theme="dark"] .intro-col-kicker { color: rgba(240, 88, 78, 0.92); }
[data-theme="dark"] .intro-col-list li::before { color: #d9d9dd; }

@media (max-width: 1100px) {
    .intro-columns { grid-template-columns: repeat(2, 1fr); row-gap: 2rem; }
    .intro-col:nth-child(3) { border-left: 0; }
}
@media (max-width: 620px) {
    .intro-band-title { font-size: 2rem; }
    .intro-columns { grid-template-columns: 1fr; row-gap: 1.75rem; }
    .intro-col { border-left: 0; }
}

/* ==================== 旧版专业能力卡片（已隐藏） ==================== */
.is-hidden { display: none !important; }   /* 通用隐藏类：旧版结构整体隐藏 */

/* ==================== 新版：参考喜利得「品牌价值」卡片 ==================== */
.value-band {
    position: relative; width: 100%;
    margin-top: 0.5rem;
    /* 红色带只铺到卡片图片区底边，往下透出页面底色 */
    background: linear-gradient(180deg, #c62828 0 13rem, rgba(198, 40, 40, 0) 13rem);
}
.value-band::before {                    /* 斜向条纹，仅覆盖红色区 */
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 13rem;
    pointer-events: none;
    background: repeating-linear-gradient(115deg,
        rgba(255, 255, 255, 0.07) 0 70px,
        rgba(255, 255, 255, 0) 70px 240px);
}
.value-row {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;                    /* 卡片缝隙露出红底 */
    width: 100%;
    padding: 3.75rem 1.25rem 0;     /* 左右内缩，红底包围卡片 */
    align-items: start;
}
.value-card {
    display: flex; flex-direction: column;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.value-card:hover {
    box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.28);
    transform: translateY(-2px);
}
.value-media {
    display: flex; align-items: center; justify-content: center;
    height: 7.5rem;
    background: linear-gradient(180deg, #f4f4f7 0%, #e9e9ee 100%);
    color: #2a2a30;
}
.value-icon {
    width: 3rem; height: 3rem;
    fill: none; stroke: currentColor; stroke-width: 1.4;
    stroke-linecap: round; stroke-linejoin: round;
}
.value-body {
    padding: 1.1rem 1rem 1.25rem;
    text-align: center;
    display: flex; flex-direction: column; align-items: center;
    flex: 1;
}
.value-kicker {
    font-size: 1rem; color: #c62828; font-weight: 600;
    line-height: 1.5; margin-bottom: 0.5rem;
}
.value-title {
    font-size: 1.22rem; font-weight: 700; color: var(--text-primary);
    letter-spacing: 0.01em; margin-bottom: auto;
}
.value-more {
    margin-top: 1.1rem;
    background: none; border: 0; cursor: pointer;
    font: inherit; font-size: 1rem; font-weight: 600;
    color: #c62828; display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.2rem 0.3rem;
}
.value-more::before { content: '›'; font-size: 1.1rem; line-height: 1; }
.value-more:hover { text-decoration: underline; }

.value-detail {
    max-height: 0; overflow: hidden;
    transition: max-height 0.35s ease;
    border-top: 1px solid transparent;
}
.value-card.open .value-detail {
    max-height: 16rem;
    border-top-color: rgba(0, 0, 0, 0.07);
}
.value-detail ul { list-style: none; padding: 0.85rem 1rem 1.1rem; }
.value-detail li {
    position: relative; padding-left: 1.35rem; margin-bottom: 0.45rem;
    font-size: 1rem; color: var(--text-secondary); line-height: 1.65;
    text-align: left;
}
.value-detail li:last-child { margin-bottom: 0; }
.value-detail li::before {
    content: '✓'; position: absolute; left: 0; top: 0;
    color: #35353a; font-weight: 700; font-size: 1rem;
}

/* 深色主题 */
[data-theme="dark"] .value-card { background: #202027; border-color: rgba(255, 255, 255, 0.08); }
[data-theme="dark"] .value-media {
    background: linear-gradient(180deg, #2b2b33 0%, #23232a 100%); color: #d8d8de;
}
[data-theme="dark"] .value-kicker,
[data-theme="dark"] .value-more { color: #ef5350; }
[data-theme="dark"] .value-detail li::before { color: #d9d9dd; }
[data-theme="dark"] .value-card.open .value-detail { border-top-color: rgba(255, 255, 255, 0.08); }

@media (max-width: 1100px) {
    .value-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
    .value-row { grid-template-columns: 1fr; }
}

/* ==================== 专业能力分组卡片 ==================== */
/* 两栏：左侧能力卡片组 + 右侧等高插画卡 */
.capability-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1rem; width: 100%;
    max-width: 1080px; margin: 0 auto;
    align-items: stretch;                 /* 左右两栏等高 */
}
.capability-groups {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 1rem; width: 100%;
}

/* 右侧插画卡：手绘黑白线稿 */
.capability-illustration {
    display: flex; align-items: center; justify-content: center;
    padding: 1.1rem 0.9rem;
    background: linear-gradient(180deg, #ffffff 0%, #fafafc 100%);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 1.1rem;
    color: #1f1f22;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 10px 30px -14px rgba(0, 0, 0, 0.18);
}
.flow-sketch { width: 100%; height: auto; max-height: 100%; }
.flow-sketch .flow-title {
    fill: currentColor; stroke: none;
    font-size: 15px; font-weight: 700; letter-spacing: 0.04em;
}
.flow-sketch .flow-label {
    fill: currentColor; stroke: none;
    font-size: 15px; letter-spacing: 0.05em;
}
.flow-sketch .flow-step-label circle { stroke-width: 1.4; opacity: 0.75; }
.flow-sketch .flow-num {
    fill: currentColor; stroke: none;
    font-family: "Helvetica Neue", Arial, sans-serif;
    font-size: 10.5px; font-weight: 700;
}
.flow-sketch .flow-caption {
    fill: currentColor; stroke: none;
    font-size: 12px; opacity: 0.65; letter-spacing: 0.08em;
}
.flow-sketch .flow-display {
    fill: currentColor; stroke: none;
    font-family: Consolas, "Courier New", ui-monospace, monospace;
    font-size: 13px; letter-spacing: 0.01em;
}
.flow-sketch .flow-doc-title {
    fill: currentColor; stroke: none;
    font-family: Consolas, "Courier New", ui-monospace, monospace;
    font-size: 11px; font-weight: 700; letter-spacing: 0.02em;
}
.flow-sketch .flow-tiny {
    fill: currentColor; stroke: none;
    font-family: "Segoe UI", "Microsoft YaHei", sans-serif;   /* 避免等宽字体的斜杠零 */
    font-size: 8.5px;
}
.flow-sketch text {
    font-family: "Kaiti SC", "STKaiti", KaiTi, "楷体", "Microsoft YaHei", sans-serif;
}
[data-theme="dark"] .capability-illustration {
    background: linear-gradient(180deg, #26262e 0%, #202027 100%);
    border-color: rgba(255, 255, 255, 0.08);
    color: #eaeaea;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 10px 30px -14px rgba(0, 0, 0, 0.6);
}
@media (max-width: 1100px) {
    .capability-layout { grid-template-columns: minmax(0, 1fr); }
    .capability-illustration { max-width: 340px; margin: 0 auto; }
}
.capability-group {
    position: relative;
    background: linear-gradient(180deg, #ffffff 0%, #fafafc 100%);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 1.1rem; padding: 1.5rem 1.6rem 1.6rem;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 10px 30px -14px rgba(0, 0, 0, 0.18);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.capability-group:hover {
    transform: translateY(-4px);
    border-color: rgba(198, 40, 40, 0.20);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 18px 40px -16px rgba(198, 40, 40, 0.24),
        0 8px 24px -12px rgba(0, 0, 0, 0.18);
}

/* 组标题行：衬线体序号 + 标题 */
.capability-head { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.45rem; }
.capability-icon {
    width: 1.15rem; height: 1.15rem; flex: none;
    fill: none; stroke: currentColor; stroke-width: 1.7;
    stroke-linecap: round; stroke-linejoin: round;
    opacity: 0.72;                       /* 小号黑白线性图标 */
}
.capability-group h4 {
    font-size: 1.12rem; font-weight: 700; color: var(--text-primary);
    letter-spacing: -0.01em; margin: 0;
}
.capability-desc {
    font-size: 1rem; color: var(--text-tertiary);
    line-height: 1.65; margin-bottom: 1.1rem;
}
/* 内嵌面板：像一块产品界面，能力行是界面里的条目 */
.capability-panel {
    position: relative; overflow: hidden;
    background: #f6f6f9;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 0.8rem;
    padding: 0.8rem 0.9rem;
}
.capability-group ul { list-style: none; position: relative; z-index: 1; }
.capability-group li {
    position: relative; padding-left: 1.85rem; margin-bottom: 0.55rem;
    font-size: 1rem; color: var(--text-secondary); line-height: 1.7;
}
.capability-group li:last-child { margin-bottom: 0; }

/* 动态：一道柔和高光自上而下扫过，四张卡错开时间 */
.capability-panel::after {
    content: ''; position: absolute; left: -10%; right: -10%; height: 46%;
    top: -46%; pointer-events: none; z-index: 0;
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.85) 50%,
        rgba(255, 255, 255, 0) 100%);
    animation: panelScan 5.5s ease-in-out infinite;
}
@keyframes panelScan {
    0%   { top: -46%; opacity: 0; }
    12%  { opacity: 1; }
    45%  { top: 100%; opacity: 0.9; }
    58%  { top: 100%; opacity: 0; }
    100% { top: -46%; opacity: 0; }
}
.capability-group:nth-child(2) .capability-panel::after { animation-delay: 1.4s; }
.capability-group:nth-child(3) .capability-panel::after { animation-delay: 2.8s; }
.capability-group:nth-child(4) .capability-panel::after { animation-delay: 4.2s; }
@media (prefers-reduced-motion: reduce) {
    .capability-panel::after { animation: none; opacity: 0; }
}
/* 条目勾：圆形浅红徽标 */
.capability-group li::before {
    content: '✓'; position: absolute; left: 0; top: 0.16em;
    width: 1.22rem; height: 1.22rem; border-radius: 50%;
    background: rgba(0, 0, 0, 0.055); color: #35353a;   /* 黑白样式 */
    font-size: 1rem; font-weight: 700; line-height: 1;
    display: flex; align-items: center; justify-content: center;
}

[data-theme="dark"] .capability-group {
    background: linear-gradient(180deg, #26262e 0%, #202027 100%);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 10px 30px -14px rgba(0, 0, 0, 0.6);
}
[data-theme="dark"] .capability-group:hover {
    border-color: rgba(239, 83, 80, 0.28);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 18px 40px -16px rgba(239, 83, 80, 0.28),
        0 8px 24px -12px rgba(0, 0, 0, 0.55);
}
[data-theme="dark"] .capability-group li::before {
    background: rgba(255, 255, 255, 0.09); color: #d9d9dd;
}
[data-theme="dark"] .capability-panel {
    background: #1b1b21; border-color: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .capability-panel::after {
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.06) 50%,
        rgba(255, 255, 255, 0) 100%);
}
@media (max-width: 768px) {
    .capability-groups { grid-template-columns: 1fr; }
}

.intro-compare-section {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; width: 100%;
}

.intro-compare-col {
    background: #fafafa; border-radius: 1rem; padding: 1.15rem;
    border: 1px solid rgba(0,0,0,0.05);
}
.intro-compare-hero {
    background: #fff; border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}
[data-theme="dark"] .intro-compare-col { background: #1e1e22; border-color: rgba(255,255,255,0.06); }
[data-theme="dark"] .intro-compare-hero { background: #23232a; box-shadow: 0 4px 20px rgba(0,0,0,0.3); }

.intro-compare-label {
    font-weight: 700; color: var(--text-primary); font-size: 1rem;
    margin-bottom: 0.7rem; text-align: center; letter-spacing: 0.02em;
}
.intro-compare-hero .intro-compare-label { color: var(--accent); }

.intro-feature-list { list-style: none; }
.intro-feature-list li {
    padding: 0.28rem 0 0.28rem 1.5rem; color: var(--text-secondary); font-size: 1rem;
    border-bottom: 1px solid rgba(0,0,0,0.04); position: relative;
}
.intro-feature-list li:last-child { border-bottom: none; }
.intro-feature-list li.has::before { content: '✓'; position: absolute; left: 0; color: #2e7d32; font-weight: 700; }
.intro-feature-list li.no::before { content: '—'; position: absolute; left: 0; color: #ccc; }
.intro-compare-hero .intro-feature-list li.has::before { color: var(--accent); }

@media (max-width: 768px) {
    .intro-compare-section { grid-template-columns: 1fr; }
}

/* ==================== 第五页：视频 ==================== */
.video-layout { display: flex; width: 80vw; height: calc(100dvh * 3 / 4); gap: 0; }

.video-player { flex: 3; display: flex; position: relative; }

/* 视频播放器：object-fit: contain 保证录屏画面不被裁切，
   两侧/上下留白用深色底衬住，圆角与右侧信息面板衔接 */
.video-player video {
    width: 100%; height: 100%; display: block;
    object-fit: contain; background: #0d0d0f;
    border-radius: 1rem 0 0 1rem;
}

/* 白色虚化遮罩：把原始画面糊掉，只留红色播放键 */
.video-cover {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; border-radius: 1rem 0 0 1rem;
    background: rgba(255, 255, 255, 0.84);
    backdrop-filter: blur(18px) saturate(120%);
    -webkit-backdrop-filter: blur(18px) saturate(120%);
    transition: opacity 0.35s ease;
}
.video-cover:hover .play-btn { transform: scale(1.08); box-shadow: 0 6px 24px rgba(198, 40, 40, 0.4); }
.video-cover.hide { opacity: 0; pointer-events: none; }
/* 深色主题下改用深色毛玻璃，避免整块发白刺眼 */
[data-theme="dark"] .video-cover { background: rgba(20, 20, 22, 0.78); }

.video-label {
    font-weight: 700; color: var(--accent);
    letter-spacing: 0.04em; margin-bottom: 0.75rem;
    width: 83.33vw;
}

.video-placeholder {
    width: 100%; height: 100%; background: linear-gradient(135deg, #e0e0e0 0%, #f0f0f0 100%);
    border-radius: 1rem 0 0 1rem; display: flex; align-items: center;
    justify-content: center; cursor: pointer;
}
[data-theme="dark"] .video-placeholder { background: linear-gradient(135deg, #2a2a2e 0%, #48484f 100%); }

.play-btn {
    width: 80px; height: 80px; background: var(--accent);
    display: flex; align-items: center; justify-content: center;
    transition: all 0.3s ease; cursor: pointer;
}
.play-btn:hover { background: #b71c1c; transform: scale(1.1); box-shadow: 0 6px 24px rgba(198, 40, 40, 0.4); }
.play-btn svg { margin-left: 3px; }

.video-info {
    flex: 1; display: flex; flex-direction: column; justify-content: space-between;
    align-items: flex-start; background: #e0e0e3; border-radius: 0 1rem 1rem 0;
    padding: 2rem; position: relative;
}
[data-theme="dark"] .video-info { background: #2a2a30; }

.video-info-top { flex: 1; }

/* 三级层次：序号 -> 标题 -> 副标题（背景色与面板一致，未改） */
.video-index {
    font-size: 1rem; font-weight: 700; color: var(--text-primary);
    letter-spacing: 0.08em; margin-bottom: 1.1rem;
}
.video-title {
    font-size: 1.5rem; font-weight: 700; color: var(--text-primary);
    line-height: 1.35; margin-bottom: 0.8rem; letter-spacing: 0.01em;
}
.video-desc {
    font-size: 1rem; color: var(--text-secondary); line-height: 1.8;
}

/* 切换按钮：跨在卡片下边界（一半在外），中间斜切 */
.video-nav {
    position: absolute; right: 2rem; bottom: 0;
    transform: translateY(50%);
    display: flex; align-items: stretch;
    background: var(--accent);
    z-index: 3;
}
.video-nav-btn {
    width: 44px; height: 42px; border: 0;
    font-size: 1.35rem; cursor: pointer; display: flex;
    align-items: center; justify-content: center;
    transition: opacity 0.25s ease; line-height: 1;
    background: var(--accent); color: #fff;
}
/* 左格白底，右边缘斜切，露出底下的红 —— 形成斜向分界 */
.video-nav-btn:first-child {
    background: #ffffff; color: var(--accent);
    clip-path: polygon(0 0, 100% 0, calc(100% - 13px) 100%, 0 100%);
}
.video-nav-btn:hover { opacity: 0.82; }

/* ==================== 第六页：使用页面 ==================== */
.page-usage-content { max-width: 83.33vw !important; padding: 5rem 2rem !important; }

.usage-layout { display: flex; gap: 4rem; width: 100%; align-items: flex-start; }

.usage-left { flex: 1; }
.usage-left h3 { font-size: 2rem; font-weight: 700; text-align: left; color: var(--text-primary); }

.usage-right { flex: 2; display: flex; flex-direction: column; gap: 2rem; }

.usage-block {
    background: var(--bg-alt); border: 1px solid var(--border);
    border-radius: 0.75rem; padding: 1.75rem 2rem;
}

.usage-block h4 {
    font-size: 1.4rem; font-weight: 700; color: var(--text-primary);
    margin-bottom: 0.75rem;
}

.usage-block p { font-size: 1rem; color: var(--text-secondary); line-height: 1.8; margin-bottom: 1rem; }

.usage-more {
    display: inline-block; padding: 0.5rem 1.25rem;
    font-size: 1rem; font-weight: 600; color: #fff !important;
    background: var(--accent); text-decoration: none;
}
.usage-more:hover { background: #a51d1d; }

@media (max-width: 768px) {
    .usage-layout { flex-direction: column; gap: 2rem; }
}

/* ==================== 页脚：个人网站单行底栏 ==================== */
footer {
    position: relative; z-index: 2;
    display: flex; align-items: center; justify-content: center;
    width: 100%; margin: 0; padding: 1.5rem 2rem;
    background: #2a2a2e; color: #9a9a9a;
    border-top: 1px solid var(--border);
    font-size: 1rem;
}

/* 磨砂颗粒：与介绍页红带同一套噪点贴图 */
footer::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image: url('panal/noise.png?v=fcc11721');
    background-repeat: repeat;
    opacity: 0.18;
    mix-blend-mode: overlay;
}

#copyright {
    position: relative; z-index: 1;      /* 文字保持在颗粒之上 */
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 0.5rem;
    margin: 0; padding: 0;
    font-size: 1rem; font-weight: 400; color: #9a9a9a;
}

#copyright a {
    color: #b0b0b0 !important; font-size: 1rem;
    cursor: pointer; transition: color 0.25s ease;
}
#copyright a:hover { color: var(--accent) !important; }

.footer-sep { color: #55555a; }

/* ==================== 弹窗 ==================== */
.overlay { position: fixed; inset: 0; background: var(--overlay-bg); z-index: 300; opacity: 0; pointer-events: none; transition: opacity 0.35s ease; }
.overlay.active { opacity: 1; pointer-events: auto; }

.popup {
    position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.92);
    z-index: 400; background: var(--popup-bg);
    backdrop-filter: blur(30px) saturate(180%); -webkit-backdrop-filter: blur(30px) saturate(180%);
    border: 1px solid var(--border); border-radius: 1.25rem;
    padding: 2rem; max-width: 560px; width: 90%; max-height: 80vh;
    overflow-y: auto; box-shadow: var(--shadow-lg);
    opacity: 0; pointer-events: none; transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.popup.active { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.popup-content h5 { font-size: 1.3rem; margin-bottom: 1.25rem; color: var(--text-primary); }
.popup-content p, .popup-content li { font-size: 1rem; color: var(--text-secondary); line-height: 1.8; margin-bottom: 0.5rem; }
.popup-content .red { color: #e53e3e; font-weight: 500; }
.popup-content .right-aligned { text-align: right; margin-top: 1rem; }
.popup-content .link { color: var(--accent); cursor: pointer; }





/* ==================== 响应式 ==================== */
@media (max-width: 900px) {
    .features-card-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    #nav-link-container { display: none; }
    .btn-menu { display: block; }
    #headline-container h1 { font-size: 2.5rem; }
    .page-content { padding: 4rem 1.25rem; }
    h3 { font-size: 1.6rem; }
    .features-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    footer { flex-direction: column; align-items: center; text-align: center; gap: 2rem; }
    .video-layout { flex-direction: column; width: 90vw; height: auto; }
    #page-intro .page-intro-new { width: 90vw; }
    .video-player video { height: 50vw; border-radius: 1rem 1rem 0 0; }
    .video-info { border-radius: 0 0 1rem 1rem; }
    
    .popup { padding: 1.5rem; width: 95%; }
}

@media (max-width: 600px) {
    .features-card-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    #headline-container h1 { font-size: 2rem; }
    #headline-container h2 { font-size: 1rem; }
    .tags-container span { font-size: 1rem; padding: 0.3rem 0.7rem; }
}

::selection { background: var(--accent); color: #fff; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 2px; }

@media print {
    #nav-bar, #nav-menu, #nav-menu-overlay, #scroll-down-wrapper, .overlay, .popup { display: none !important; }
    body { background: white; color: black; }
}



/* 页脚备案号链接：继承页脚文字色，不用默认蓝色 */
#copyright a.footer-beian {
    color: inherit; text-decoration: none;
    transition: opacity 0.25s ease;
}
#copyright a.footer-beian:hover { opacity: 0.7; text-decoration: underline; }

/* ==================== 质感增强层（追加覆盖，不改动上方既有规则） ==================== */

:root {
    /* 阴影层级：从"贴纸"变成"有厚度的物件" */
    --shadow-1: 0 1px 2px rgba(16, 16, 22, 0.04), 0 2px 8px rgba(16, 16, 22, 0.045);
    --shadow-2: 0 2px 4px rgba(16, 16, 22, 0.05), 0 14px 30px -12px rgba(16, 16, 22, 0.16);
    --shadow-3: 0 4px 10px rgba(16, 16, 22, 0.06), 0 26px 52px -18px rgba(16, 16, 22, 0.22);

    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 20px;

    --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
    --dur: 0.42s;
}

/* 数字与拉丁字母用等宽数字，标题字距略收，观感更"整" */
.intro-col-list li, .personal-card-text p, .feature-card-text p,
.video-desc, .video-index, .personal-intro-left p {
    font-variant-numeric: tabular-nums;
}

/* ---------- 第三页：功能亮点卡片 ---------- */
/* 只加「静止态」阴影，:hover 保持原有红色立体辉光不动 */
.feature-card {
    box-shadow: var(--shadow-1);
    transition: box-shadow var(--dur) var(--ease-out),
                transform var(--dur) var(--ease-out);
}
.feature-card img {
    /* 照片统一调色：压饱和、提对比，四张图不再各说各话 */
    filter: saturate(0.88) contrast(1.04);
    transition: filter var(--dur) var(--ease-out);
}

/* ---------- 第四页：能力四栏 ---------- */
.intro-col-img {
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-1);
    transition: box-shadow var(--dur) var(--ease-out),
                transform var(--dur) var(--ease-out),
                filter var(--dur) var(--ease-out);
}

/* ---------- 个人页：作品卡片 ---------- */
/* 同样只加静止态阴影；:hover 的红色辉光保持原样 */
.personal-card {
    box-shadow: var(--shadow-1);
    transition: box-shadow var(--dur) var(--ease-out);
}
.personal-card-img img {
    filter: saturate(0.92) contrast(1.03);
    transition: transform 0.6s var(--ease-out), filter var(--dur) var(--ease-out);
}
.personal-card:hover .personal-card-img img { transform: scale(1.04); }

/* ---------- 第五页：视频面板 ---------- */
.video-panel, .video-wrap, .video-player {
    border-radius: var(--radius-md);
}
.video-cover, .video-panel { box-shadow: var(--shadow-2); }



/* ---------- 顶部导航链接加粗 ---------- */
#nav-menu .nav-link { font-weight: 600; }

/* ---------- 悬停：去掉红色辉光，改为中性抬升 + 更深阴影 ---------- */
/* 位置在此处，用于覆盖上方原有的红色立体辉光；不带任何红色成分 */
.feature-card:hover,
.personal-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-3);
}
[data-theme="dark"] .feature-card:hover,
[data-theme="dark"] .personal-card:hover {
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.55), 0 30px 60px -20px rgba(0, 0, 0, 0.75);
}

/* ---------- 滚动渐入（JS 添加 .reveal，无 JS 时内容照常显示） ---------- */
html.js .reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
}
html.js .reveal.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    html.js .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
    .personal-card:hover .personal-card-img img { transform: none; }
}

/* 深色主题下的阴影改用黑色（默认已适配，这里只加轮廓微光避免卡片糊在背景里） */
[data-theme="dark"] .feature-card,
[data-theme="dark"] .personal-card {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5), 0 14px 30px -12px rgba(0, 0, 0, 0.6);
}

/* ==================== 高级跳转按钮：静止图标 / 悬停展开 ==================== */
/* 不加 overflow:hidden —— 否则图标外圈的红环会被裁掉；
   展开靠 label 自身的 max-width 收放实现 */
.hero-icon-btn {
    position: relative;
    display: inline-flex; align-items: center;
    width: auto; min-width: 46px;      /* 关键：旧规则写了 width:44px，必须显式改回 auto 才能展开 */
    height: 46px; padding: 0;
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.14);
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0) 62%);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.34);
    color: rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 6px 22px -8px rgba(0, 0, 0, 0.45);
    transition: box-shadow 0.5s var(--ease-out),
                background-color 0.4s ease, border-color 0.4s ease, color 0.4s ease,
                padding-right 0.55s var(--ease-out);
}

/* 图标位：固定 46×46，红环绕着它转 */
.hero-icon-btn .glyph {
    position: relative;
    width: 46px; height: 46px; flex: 0 0 46px;
    display: grid; place-items: center;
}
.hero-icon-btn .glyph::before {
    content: ''; position: absolute; inset: -5px;
    border-radius: 50%;
    border: 2px solid transparent; border-top-color: #c62828;
    animation: firecracker 3s linear infinite;
    pointer-events: none;
}

/* 文字：自身收放，父元素不裁切 */
.hero-icon-btn .label {
    max-width: 0; overflow: hidden; white-space: nowrap;
    font-size: 0.95rem; font-weight: 600; letter-spacing: 0.02em;
    opacity: 0; transform: translateX(-8px);
    transition: max-width 0.55s var(--ease-out),
                opacity 0.35s ease 0.08s,
                transform 0.5s var(--ease-out) 0.06s;
}
.hero-icon-btn .arrow {
    flex: 0 0 auto; display: grid; place-items: center;
    width: 0; opacity: 0; transform: translateX(-6px);
    transition: width 0.55s var(--ease-out),
                opacity 0.35s ease 0.12s,
                transform 0.5s var(--ease-out) 0.1s;
}

/* 展开态 */
.hero-icon-btn:hover { padding-right: 0.8rem; }
.hero-icon-btn:hover .label { max-width: 8rem; opacity: 1; transform: none; }
.hero-icon-btn:hover .arrow { width: 1.05rem; opacity: 1; transform: none; }
.hero-icon-btn:hover {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 16px 36px -12px rgba(0, 0, 0, 0.6);
}

/* 亮底页面下的深色版本（等比覆盖） */
.hero-side-left.on-light .hero-icon-btn {
    background-color: rgba(32, 32, 38, 0.82);
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 62%);
    border-color: rgba(255, 255, 255, 0.16);
    color: #ffffff;
}
.hero-side-left.on-light .hero-icon-btn:hover { background-color: rgba(20, 20, 26, 0.92); }

@media (prefers-reduced-motion: reduce) {
    .hero-icon-btn .glyph::before { animation: none; }
}

/* ==================== 导航左上角：品牌区（logo + 个人徽标链接） ==================== */
.nav-brand {
    display: inline-flex; align-items: center; gap: 0.5rem;
}

/* 「个人」徽标做成链接：保持原徽标外观，补上链接态与悬停反馈 */
a.nav-logo-badge {
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease,
                transform 0.3s var(--ease-out), box-shadow 0.3s ease;
}
a.nav-logo-badge:hover {
    transform: translateY(-1px) scale(1.05);
    box-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.4);
}
a.nav-logo-badge:active { transform: translateY(0) scale(0.98); }

/* ==================== 第二页：产品页（单屏三栏规格表） ==================== */
.pd-content { max-width: 1180px; padding: 2.2rem 2.4rem; }
.pd-page { width: 100%; }

/* 头部：小标 + 大标题 + 副标 */
.pd-head { margin-bottom: 1.6rem; }
.pd-kicker {
    font-size: 0.7rem; font-weight: 700; letter-spacing: 0.22em;
    text-transform: uppercase; color: rgba(198, 40, 40, 0.9);
    margin: 0 0 0.5rem;
}
.pd-title {
    font-size: 2.55rem; font-weight: 800; line-height: 1.12;
    letter-spacing: -0.022em; color: var(--text-primary);
    margin: 0 0 0.55rem;
}
.pd-sub {
    font-size: 1rem; line-height: 1.5; letter-spacing: 0.01em;
    color: var(--text-secondary); margin: 0;
}

/* 三栏：发丝线分隔 */
.pd-cols {
    display: grid; grid-template-columns: 1.15fr 1fr 1.05fr;
    gap: 0; border-top: 1px solid rgba(0, 0, 0, 0.10);
}
.pd-col {
    padding: 1.5rem 1.7rem 0 0;
    border-right: 1px solid rgba(0, 0, 0, 0.07);
}
.pd-col:last-child { border-right: 0; padding-right: 0; }
.pd-col + .pd-col { padding-left: 1.7rem; }

/* 小号距字标签 */
.pd-label {
    font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--text-tertiary);
    text-align: left;                 /* 站点全局 h3 居中，这里改回左对齐 */
    margin: 0 0 0.6rem;
}
.pd-col > .pd-label:not(:first-child) { margin-top: 1.5rem; }

.pd-text {
    font-size: 0.95rem; line-height: 1.78; letter-spacing: 0.004em;
    color: var(--text-secondary); margin: 0;
}

/* 设计输入：紧凑列表 */
.pd-inputs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.62rem; }
.pd-inputs li { display: grid; gap: 0.1rem; }
.pd-inputs b {
    font-size: 0.95rem; font-weight: 700; color: var(--text-primary);
    letter-spacing: 0.01em;
}
.pd-inputs span {
    font-size: 0.85rem; line-height: 1.62; color: var(--text-tertiary);
}

/* 分析与输出 */
.pd-mods { display: grid; gap: 0.85rem; }
.pd-mod h5 {
    font-size: 0.95rem; font-weight: 700; color: var(--text-primary);
    margin: 0 0 0.25rem; letter-spacing: 0.01em;
}
.pd-mod p {
    font-size: 0.85rem; line-height: 1.7; color: var(--text-tertiary);
    margin: 0;
}

/* 技术特性：标签 + 值 */
.pd-specs { display: grid; gap: 0.6rem; margin: 0; }
.pd-sp { display: grid; gap: 0.08rem; }
.pd-sp dt {
    font-size: 0.9rem; font-weight: 700; color: var(--text-primary);
}
.pd-sp dd {
    margin: 0; font-size: 0.85rem; line-height: 1.62; color: var(--text-tertiary);
}

/* 深色主题下的分隔线 */
[data-theme="dark"] .pd-cols { border-top-color: rgba(255, 255, 255, 0.14); }
[data-theme="dark"] .pd-col { border-right-color: rgba(255, 255, 255, 0.08); }

/* 窄屏：退回单列 */
@media (max-width: 900px) {
    .pd-cols { grid-template-columns: 1fr; }
    .pd-col { border-right: 0; padding: 1.4rem 0 0; }
    .pd-col + .pd-col { padding-left: 0; border-top: 1px solid rgba(0, 0, 0, 0.07); }
    .pd-title { font-size: 1.9rem; }
}


/* ---------- 第三页：加长文案的一屏布局 ---------- */
#page-works .page-content { padding: 0.7rem 2rem 0.7rem; }
/* 图片略扁一些，把纵向空间让给卡片之间的间隙 */
.feature-card-img { aspect-ratio: 2.3 / 1; }
/* 行间距 0.85rem 太挤，加大到 1.75rem；列间距同步放宽 */
#page-works .features-card-grid { gap: 1.75rem 1.1rem; }
/* 卡片内边距收紧一点，补偿行间距的增加 */
.feature-card-text { padding: 0.95rem 1.15rem 1.05rem; }

/* ==================== 第二页：第四页版式（当前已切回初版，样式休眠保留） ==================== */
/* 初版第二页使用 .page-solid 的居中布局，此处不再覆盖 justify-content */

/* 红带：直接复用 .intro-band 的斜纹与颗粒，这里只调高度节奏 */
.pd-band { padding: 6.75rem 2rem 2.25rem; }
.pd-band .intro-band-title { font-size: 2.4rem; }

/* 白面板：延续红带的斜纹底纹，与第四页同一套语言 */
.pd-plain {
    flex: 1; width: 100%;
    display: flex; flex-direction: column; justify-content: flex-start;
    padding: 2.4rem 2.4rem 1.8rem;
    background-color: #ffffff;
    background-image: repeating-linear-gradient(115deg,
        rgba(0, 0, 0, 0.05) 0 90px, rgba(0, 0, 0, 0) 90px 300px);
}
[data-theme="dark"] .pd-plain {
    background-color: #1b1b1f;
    background-image: repeating-linear-gradient(115deg,
        rgba(255, 255, 255, 0.035) 0 90px, rgba(255, 255, 255, 0) 90px 300px);
}

/* 三栏：上下渐隐的发丝线（与第四页一致） */
.pd-plain .pd-cols {
    border-top: 1px solid rgba(0, 0, 0, 0.10);
}
.pd-plain .pd-col {
    position: relative;
    border-right: 0;
    padding: 1.6rem 1.9rem 0 0;
}
.pd-plain .pd-col + .pd-col::before {
    content: ''; position: absolute; left: 0; top: 8%; bottom: 6%; width: 1px;
    background: linear-gradient(180deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.11) 16%,
        rgba(0, 0, 0, 0.11) 84%,
        rgba(0, 0, 0, 0) 100%);
}
.pd-plain .pd-col + .pd-col { padding-left: 1.9rem; }
[data-theme="dark"] .pd-plain .pd-cols { border-top-color: rgba(255, 255, 255, 0.14); }
[data-theme="dark"] .pd-plain .pd-col + .pd-col::before {
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.13) 16%,
        rgba(255, 255, 255, 0.13) 84%,
        rgba(255, 255, 255, 0) 100%);
}

/* 小节标改为品牌红（呼应第四页的红色副标） */
.pd-plain .pd-label {
    color: rgba(198, 40, 40, 0.88);
    letter-spacing: 0.16em;
}

@media (max-width: 900px) {
    .pd-band { padding: 5rem 1.5rem 1.6rem; }
    .pd-band .intro-band-title { font-size: 1.8rem; }
    .pd-plain { padding: 1.6rem 1.5rem; }
    .pd-plain .pd-col + .pd-col::before { display: none; }
}

/* ==================== 第四页：产品资料（通栏两列表格） ==================== */
#page-intro { justify-content: flex-start; }
.pd2-content {
    /* 宽度跟随视口，两侧各留 48px —— 固定 px 在宽屏上会空出大片留白 */
    max-width: none;
    width: calc(100% - 96px);
    margin: 0 auto;
    width: 100%;
    min-height: calc(100dvh - var(--nav-h));
    padding: 1.6rem 0 0;
    align-items: stretch; text-align: left;
    justify-content: flex-start;
}

.pd2-kicker {
    font-size: 0.7rem; font-weight: 700; letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--text-tertiary); margin: 0 0 0.45rem;
}
.pd2-title {
    font-size: 1.75rem; font-weight: 700; letter-spacing: 0.005em;
    color: var(--text-primary); text-align: left; margin: 0 0 0.9rem;
}

/* 表格 */
.pd2-table {
    width: 100%; flex: 1 1 auto;
    display: flex; flex-direction: column;      /* 纵向撑满整页 */
    border-top: 1px solid rgba(0, 0, 0, 0.13);
}
.pd2-row {
    display: grid;
    grid-template-columns: 13rem 1fr;    /* 左列功能名，右列说明 */
    gap: 1.8rem; align-items: start;
    flex: 1 1 auto;                              /* 每行平分剩余高度 */
    align-items: center;
    padding: 0.1rem 0;   /* 高度交给弹性分配，内边距只留最小呼吸 */
    border-bottom: 1px solid rgba(0, 0, 0, 0.075);
}
/* 极淡斑马纹（对齐参考图的交替底色） */
.pd2-row:nth-child(even) { background: rgba(0, 0, 0, 0.018); }

/* 表头行 */
.pd2-head {
    background: rgba(0, 0, 0, 0.035);
    border-bottom: 1px solid rgba(0, 0, 0, 0.13);
    padding-top: 0.15rem; padding-bottom: 0.15rem;
}
.pd2-head .pd2-key, .pd2-head .pd2-val {
    font-size: 1.15rem; font-weight: 700; letter-spacing: 0.06em;
    color: var(--text-primary);
}
/* 分组行 */
.pd2-group { background: rgba(0, 0, 0, 0.05); }
.pd2-group .pd2-key {
    font-size: 1.15rem; font-weight: 700; letter-spacing: 0.05em;
    color: var(--text-primary);
}

.pd2-key {
    font-size: 1rem; font-weight: 700; color: var(--text-primary);
    line-height: 1.45;
}
.pd2-val {
    font-size: 1rem; line-height: 1.5; color: var(--text-secondary);
}

/* 深色主题 */
[data-theme="dark"] .pd2-table { border-top-color: rgba(255, 255, 255, 0.16); }
[data-theme="dark"] .pd2-row { border-bottom-color: rgba(255, 255, 255, 0.09); }
[data-theme="dark"] .pd2-row:nth-child(even) { background: rgba(255, 255, 255, 0.022); }
[data-theme="dark"] .pd2-head { background: rgba(255, 255, 255, 0.05); border-bottom-color: rgba(255, 255, 255, 0.16); }
[data-theme="dark"] .pd2-group { background: rgba(255, 255, 255, 0.07); }

@media (max-width: 900px) {
    .pd2-content { padding: 2rem 1.4rem; }
    .pd2-row { grid-template-columns: 1fr; gap: 0.25rem; padding: 0.85rem 0.8rem; }
    .pd2-title { font-size: 1.4rem; }
}

/* 第四页内容容器：
   区块（.full-page）与内容都设了 min-height: calc(100dvh - nav)，
   两者叠加会把内容整体下推 30px，导致表格底部被 overflow:hidden 裁切。
   这里把内容高度减去该偏移量，使表格正好收在页内。 */
#page-intro .pd2-content {
    /* 宽度用「拉伸 + 左右外边距」控制，任何屏宽下边距都是 48px */
    align-self: stretch !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 10vw !important;        /* 左右各留整页宽度的 1/10 */
    /* 再减 30px：内容上移偏移 30px 之外，上下各留出约 30px 呼吸空间 */
    min-height: calc(100dvh - var(--nav-h) - 45px) !important;
    height: calc(100dvh - var(--nav-h) - 45px)
}

/* ==================== 后三页统一：左右各留整页宽度的 1/10 ====================
   用 80vw 固定内容宽度并居中，任何分辨率/窗口宽度下左右边距都严格相等。
   注：容器自身的内边距会吃掉宽度（导致边距不等于 10%），故一并清零。 */
#page-works .page-content,
#page-intro .pd2-content,
#page-journey .page-content {
    /* 用 80%（相对容器）而非 80vw：vw 含滚动条宽度，会导致左右差几像素 */
    width: 80% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    box-sizing: border-box !important;
}
/* 第三页：去掉左右内边距，网格才能顶到 10% 边界 */
#page-works .page-content { padding-left: 0 !important; padding-right: 0 !important; }
/* 第五页：视频布局与标签改为填满容器，避免各写各的宽度 */
#page-journey .page-content { padding: 0 !important; }
#page-journey .video-layout { width: 100% !important; }
#page-journey .video-label { display: block; width: 100%; }

/* ==================== 版权声明弹窗 ==================== */
.cr-content { text-align: left; max-height: 68vh; overflow-y: auto; }
.cr-meta {
    font-size: 0.78rem; letter-spacing: 0.06em; color: var(--text-tertiary);
    margin: 0.1rem 0 1.1rem; padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
[data-theme="dark"] .cr-meta { border-bottom-color: rgba(255, 255, 255, 0.12); }
.cr-h {
    font-size: 0.9rem; font-weight: 700; color: var(--text-primary);
    margin: 1.05rem 0 0.4rem; letter-spacing: 0.02em;
}
.cr-content p { font-size: 0.85rem; line-height: 1.8; color: var(--text-secondary); margin: 0; }
.cr-list { margin: 0.35rem 0 0; padding-left: 1.1rem; }
.cr-list li {
    font-size: 0.85rem; line-height: 1.75; color: var(--text-secondary);
    margin-bottom: 0.2rem;
}
.cr-sign {
    margin-top: 1.4rem !important; padding-top: 0.9rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    font-size: 0.85rem; font-weight: 700; color: var(--text-primary) !important;
    text-align: right;
}
[data-theme="dark"] .cr-sign { border-top-color: rgba(255, 255, 255, 0.12); }
.cr-date { font-weight: 400; color: var(--text-tertiary); }

/* 防复制轻提示 */
#cr-tip {
    position: fixed; left: 50%; bottom: 42px; transform: translate(-50%, 14px);
    background: rgba(28, 28, 32, 0.94); color: #fff;
    font-size: 0.85rem; letter-spacing: 0.02em;
    padding: 0.62rem 1.15rem; border-radius: 999px;
    box-shadow: 0 10px 30px -8px rgba(0, 0, 0, 0.5);
    opacity: 0; pointer-events: none; z-index: 9999;
    transition: opacity 0.28s ease, transform 0.28s var(--ease-out, ease);
}
#cr-tip.show { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 620px) { #cr-tip { font-size: 0.8rem; bottom: 28px; } }

/* ==================== 版权声明弹窗：加宽加大 ==================== */
.popup#popup-copyright {
    max-width: 820px;      /* 原 560px */
    width: 92%;
    padding: 2.6rem 2.8rem 2.2rem;
    max-height: 86vh;
}
/* 正文放大到弹窗基础字号（原 0.85rem 偏小） */
.cr-content p { font-size: 1rem; line-height: 1.85; }
.cr-list li { font-size: 0.98rem; line-height: 1.8; }
.cr-h { font-size: 1.02rem; margin: 1.25rem 0 0.45rem; }
.cr-meta { font-size: 0.85rem; margin-bottom: 1.25rem; padding-bottom: 0.85rem; }
.cr-sign { font-size: 1rem; margin-top: 1.6rem !important; padding-top: 1rem; }
.cr-content h5 { font-size: 1.5rem; margin-bottom: 0.4rem; }

/* 窄屏回落 */
@media (max-width: 720px) {
    .popup#popup-copyright { padding: 1.6rem 1.4rem; max-width: 94%; }
    .cr-content p, .cr-list li { font-size: 0.92rem; }
}
