/* 基础样式重置 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    min-width: 320px; /* 最小宽度，确保在小屏幕上可用 */
}

/* CSS变量 - 基于自然摄影网站的设计风格 */
:root {
    /* 颜色变量 - 新配色方案 */
    --primary-color: #403f2b;        /* 深橄榄绿 - 主色 */
    --secondary-color: #43422e;      /* 深橄榄绿变体 - 次要色 */
    --accent-color: #f3f1c4;         /* 浅黄绿 - 强调色 */
    --text-primary: #403f2b;         /* 深橄榄绿 - 主要文字 */
    --text-secondary: #43422e;       /* 深橄榄绿变体 - 次要文字 */
    --text-light: #fefaf0;           /* 米白色 - 浅色文字 */
    --text-muted: #c4c1b4;           /* 灰褐色 - 弱化文字 */
    --background-light: #fefaf0;     /* 米白色 - 浅色背景 */
    --background-dark: #403f2b;      /* 深橄榄绿 - 深色背景 */
    --background-overlay: rgba(64, 63, 43, 0.8);  /* 深橄榄绿半透明 */
    --background-accent: #f5f3cd;    /* 浅黄色 - 强调背景 */
    --background-neutral: #f7f7f5;   /* 浅灰白 - 中性背景 */
    --border-color: #c4c1b4;         /* 灰褐色 - 边框 */
    --shadow-light: rgba(64, 63, 43, 0.1);   /* 浅阴影 */
    --shadow-medium: rgba(64, 63, 43, 0.2);  /* 中等阴影 */

    /* 字体变量 */
    --font-primary: 'Playfair Display', serif;
    --font-secondary: 'Inter', sans-serif;

    /* 尺寸变量 */
    --container-max-width: 1200px;
    --container-max-width-large: 1400px; /* 大屏幕最大宽度 */
    --section-padding: 100px 0;
    --border-radius: 12px;
    --transition: all 0.4s ease;
    --header-height: 80px;
}

/* 基础样式 */
body {
    font-family: var(--font-secondary);
    line-height: 1.7;
    color: var(--text-primary);
    background-color: var(--background-light);
    overflow-x: hidden;
    min-width: 320px; /* 最小宽度 */
    max-width: 100vw; /* 最大宽度不超过视口 */
}

/* 主页面容器 - 限制整体最大宽度 */
.page-wrapper {
    max-width: 1600px; /* 页面最大宽度 */
    margin: 0 auto;
    background-color: var(--background-light);
    box-shadow: 0 0 50px var(--shadow-light);
    position: relative;
}

.container {
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 30px;
}

/* 按钮样式 */
.btn {
    display: inline-block;
    padding: 16px 32px;
    text-decoration: none;
    border-radius: var(--border-radius);
    font-weight: 600;
    text-align: center;
    transition: var(--transition);
    border: 2px solid transparent;
    cursor: pointer;
    font-size: 16px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.btn-primary {
    background-color: var(--accent-color);
    color: var(--primary-color);
    border-color: var(--accent-color);
    box-shadow: 0 4px 15px rgba(243, 241, 196, 0.3);
}

.btn-primary:hover {
    background-color: var(--primary-color);
    color: var(--accent-color);
    border-color: var(--primary-color);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(243, 241, 196, 0.4);
}

/* 网站头部 */
/* 2025-09-25 13:10:00 +08:00 修改：导航栏背景颜色；修改人：AI助手；目标：将导航栏背景改为深棕色#403F2B；思路：替换背景色并调整透明度 */
/* 2025-10-19 修改：导航栏背景改为科技蓝；修改人：Augment Agent；目标：使用科技蓝色调；思路：替换为科技蓝色并保持透明度；旧：rgba(64, 63, 43, 0.95) */
/* 2025-10-19 修改：导航栏背景改为深蓝渐变；修改人：Augment Agent；目标：使用用户提供的深蓝渐变效果；思路：从深蓝#1a2332到较浅深蓝#2d4a6b的渐变；旧：rgba(52, 152, 219, 0.95) */
/* 2025-10-19 修改：左边深蓝色更加深邃；修改人：Augment Agent；目标：让左边颜色更深邃；思路：将左边颜色从#1a2332改为更深的#0f1419；旧：rgba(26, 35, 50, 0.95) */
/* 2025-10-19 修改：左边深蓝色稍微浅一点；修改人：Augment Agent；目标：让左边颜色稍微浅一点；思路：将左边颜色从#0f1419改为稍浅的#182030；旧：rgba(15, 20, 25, 0.95) */
/* 2025-10-19 修改：导航栏背景改为用户提供的深蓝渐变；修改人：Augment Agent；目标：使用用户提供的深蓝色渐变图片效果；思路：从深邃的深蓝到稍浅的深蓝渐变；旧：rgba(24, 32, 48, 0.95) 到 rgba(45, 74, 107, 0.95) */
/* 2025-10-19 修改：右边颜色调得更浅；修改人：Augment Agent；目标：让右边的颜色更浅一些；思路：将右边颜色从rgba(25, 35, 65, 0.95)调浅到rgba(35, 50, 85, 0.95)；旧：rgba(25, 35, 65, 0.95) */
/* 2025-10-19 修改：右边颜色再调浅；修改人：Augment Agent；目标：参考用户提供的附件颜色，右边再浅一些；思路：将右边颜色调为更浅的蓝色rgba(50, 70, 120, 0.95)；旧：rgba(35, 50, 85, 0.95) */
/* 2025-10-19 修改：导航条变半透明；修改人：Augment Agent；目标：将导航条变为半透明效果；思路：将透明度从0.95降低到0.6；旧：rgba透明度0.95 */
/* 2025-10-19 修改：调整为深蓝深邃的半透明；修改人：Augment Agent；目标：保持深蓝色调的半透明效果；思路：提高透明度到0.75，保持深蓝色调；旧：rgba透明度0.6 */
/* 2025-10-19 修改：深蓝色调再加深；修改人：Augment Agent；目标：让深蓝色调更加深邃；思路：将左边改为更深的深蓝色，右边也调深；旧：rgba(15, 20, 35, 0.75) 到 rgba(50, 70, 120, 0.75) */
/* 2025-10-19 修改：撤销半透明设计；修改人：Augment Agent；目标：回到之前的不透明版本；思路：将透明度从0.75恢复到0.95；旧：rgba透明度0.75 */
/* 2025-10-19 修改：使用用户附件的深蓝色；修改人：Augment Agent；目标：使用用户提供的深蓝色附件颜色；思路：参考附件的深邃蓝色调整渐变；旧：rgba(15, 20, 35, 0.95) 到 rgba(50, 70, 120, 0.95) */
/* 2025-10-19 修改：右边颜色再浅一点；修改人：Augment Agent；目标：让右边的颜色更浅一些；思路：将右边颜色从rgba(25, 35, 70, 0.95)调浅到rgba(35, 50, 90, 0.95)；旧：rgba(25, 35, 70, 0.95) */
/* 2025-10-19 修改：增加透明度；修改人：Augment Agent；目标：增加导航栏的透明度；思路：将透明度从0.95降低到0.85；旧：rgba透明度0.95 */
/* 2025-10-19 修改：撤销透明度修改；修改人：Augment Agent；目标：恢复到之前的透明度；思路：将透明度从0.85恢复到0.95；旧：rgba透明度0.85 */
.site-header {
    background: linear-gradient(135deg, rgba(12, 15, 30, 0.95) 0%, rgba(35, 50, 90, 0.95) 100%);
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 20px var(--shadow-light);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    height: var(--header-height);
}

.navbar {
    padding: 0;
    height: 100%;
}

.navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    padding: 0 0px; /* 增加左右内边距，让brand和按钮向两侧移动 */
}

.nav-right {
    display: flex;
    align-items: center;
    gap: 40px;
}

.nav-brand .logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--primary-color);
}

.logo-image {
    height: 40px;
    width: auto;
    object-fit: contain;
}

.logo-icon {
    font-size: 28px;
}

/* 2025-09-25 13:10:00 +08:00 修改：logo文字颜色；修改人：AI助手；目标：在深色背景下使用浅色文字；思路：改为浅色文字确保可读性 */
.logo-text {
    font-family: var(--font-primary);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1.2;
    white-space: nowrap;
    color: var(--text-light);
}

.nav-menu {
    display: flex;
    list-style: none;
    gap: 32px;
    margin: 0;
    padding: 0;
}

/* 2025-09-25 13:10:00 +08:00 修改：导航菜单文字颜色；修改人：AI助手；目标：在深色背景下使用浅色文字；思路：改为浅色文字确保可读性 */
.nav-menu a {
    text-decoration: none;
    color: var(--text-light);
    font-weight: 500;
    font-size: 15px;
    letter-spacing: 0.5px;
    transition: var(--transition);
    position: relative;
}

.nav-menu a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--accent-color);
    transition: var(--transition);
}

.nav-menu a:hover::after {
    width: 100%;
}

.nav-menu a:hover {
    color: var(--accent-color);
}

.nav-toggle {
    display: none;
    flex-direction: column;
    cursor: pointer;
    gap: 4px;
}

.nav-toggle span {
    width: 25px;
    height: 3px;
    background-color: var(--primary-color);
    transition: var(--transition);
    border-radius: 2px;
}

/* 语言切换按钮 */
.language-switcher {
    display: flex;
    align-items: center;
}

/* 2025-09-25 13:10:00 +08:00 修改：语言切换按钮样式；修改人：AI助手；目标：在深色背景下使用浅色边框和文字；思路：改为浅色样式确保可读性 */
.lang-btn {
    background: transparent;
    border: 2px solid var(--text-light);
    color: var(--text-light);
    padding: 8px 16px;
    border-radius: var(--border-radius);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
    min-width: 80px;
}

/* 2025-09-25 13:10:00 +08:00 修改：语言切换按钮悬停效果；修改人：AI助手；目标：在深色背景下使用协调的悬停效果；思路：使用浅色背景和深色文字 */
.lang-btn:hover {
    background: var(--text-light);
    color: var(--background-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px var(--shadow-light);
}

/* 主要内容区域 */
main {
    margin-top: var(--header-height);
}

/* Hero Section */
.hero-section {
    position: relative;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}

.hero-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 2025-08-31 修改: 背景改为视频，保留原背景图为注释
       原: background: url('../assets/heading.png') center/cover no-repeat;
       原: background-attachment: fixed; */
}

/* 2025-08-31 新增: 背景视频样式。铺满容器并置于最底层(z-index:0) */
.hero-video {
    position: absolute;
    /* 2025-08-31 强化调整: 轻放大+整体上移，目标：明显多展示下部内容。保留原值注释。 */
    top: -8%; /* 原: 0 */
    left: 0;
    width: 100%;
    height: 115%; /* 原: 100% */
    /* 2025-08-31 撤销: 恢复 cover 填充，目标：回到沉浸式铺满效果。
       之前尝试: contain + background-color(#000) 为避免裁切，现保留为注释记录。 */
    /* 曾用: object-fit: contain; */
    /* 曾用: background-color: #000; */
    object-fit: cover; /* 恢复为铺满，可能裁切边缘 */
    /* 2025-08-31 调整: 下移取景中心，减少上部留白，更多展示下部内容。
       思路: 通过 object-position 调整取景百分比，不裁切素材，不改导航高度。 */
    /* 2025-08-31 再次调整: 进一步上移取景，更多展示下部内容。原为 50% 45% */
    /* 2025-08-31 微调: 轻度上移取景，幅度小于上次。保留原值供回退。
       原: object-position: 50% 40%; */
    /* 2025-08-31 再次微调: 继续上移取景，从 30% → 25%，以更多展示下部内容。
       历史值: 45% → 40% → 38% → 35% → 30% → 25% */
    object-position: 50% 25%;
    z-index: 0;
}

/* 2025-10-01 20:10:00 +08:00 新增：Ken Burns 前进镜头动画背景层；修改人：Augment Agent；
   目标：让首页静态头图产生“镜头向前”运动效果；
   思路：在 hero-background 内添加绝对定位子层 .hero-bg-kenburns，使用 transform: scale 动画；
   说明：不影响上层 .hero-overlay 与 .hero-content 的叠层，保留历史视频实现为注释。 */
.hero-bg-kenburns {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    /* 旧值保留：background: url('../assets/头图 1.jpg') center/contain no-repeat; */
    /* 2025-10-01 20:30:00 +08:00 回退：恢复 cover 以铺满容器，避免边框露出；修改人：Augment Agent；目的：消除留白；思路：移除背景底色并恢复 cover。 */
    /* 旧值保留：background: url('../assets/头图 1.jpg') center/cover no-repeat; */
    /* 2025-10-01 20:42:00 +08:00 修改：下移取景，减少天空；修改人：Augment Agent；思路：调整 background-position 为 50% 55% */
    /* 旧值保留：background: url('../assets/头图 1.jpg') 50% 55%/cover no-repeat; */
    /* 2025-10-01 20:50:00 +08:00 修改：整体取景再下移一点（55% → 57%）；修改人：Augment Agent；目标：减少天空占比 */
    background: url('../assets/头图 1.jpg') 50% 57%/cover no-repeat;
    z-index: 0; /* 置于最底层，在 overlay(1) 与 content(2) 之下 */
    /* 旧值保留：transform-origin: 50% 50%; */
    /* 2025-10-01 20:42:00 +08:00 修改：整体取景下移；修改人：Augment Agent；目标：天空更少，画面重心略偏下 */
    /* 旧值保留：transform-origin: 50% 55%; */
    /* 2025-10-01 20:50:00 +08:00 修改：整体取景再下移一点；修改人：Augment Agent */
    transform-origin: 50% 57%;
    /* 2025-10-01 20:15:00 +08:00 修改：将动画时长由 20s 调整为 12s；修改人：Augment Agent；目标：提升镜头推进速度；思路：仅缩短动画周期，幅度与节奏不变。 */
    /* 旧值保留：animation: heroZoom 20s ease-in-out infinite alternate; */
    /* 2025-10-01 20:18:00 +08:00 修改：首镜头由“推”改为“拉”；修改人：Augment Agent；目标：第一轮先从近景拉远；思路：设置初始 transform: scale(1.12) 并改为 alternate-reverse。 */
    /* 旧值保留：transform: scale(1.12); */
    /* 2025-10-01 20:36:00 +08:00 修改：初始放大设置为 1.15（幅度 15%）；修改人：Augment Agent；目标：增强动感；思路：与关键帧最大值匹配，首轮 alternate-reverse 先拉后推。 */
    transform: scale(1.15);
    /* 旧值保留：animation: heroZoom 12s ease-in-out infinite alternate; */
    /* 2025-10-01 20:22:00 +08:00 修改：将动画时长由 12s 调整为 10s；修改人：Augment Agent；目标：进一步加快首镜头节奏；思路：仅缩短周期，幅度与节奏不变。 */
    /* 旧值保留：animation: heroZoom 12s ease-in-out infinite alternate-reverse; */
    /* 旧值保留：animation: heroZoom 10s ease-in-out infinite alternate-reverse; */
    /* 2025-10-01 20:36:00 +08:00 修改：将动画时长由 10s 调整为 8s；修改人：Augment Agent；目标：进一步提速；思路：仅缩短周期，幅度与关键帧不变。 */
    animation: heroZoom 8s ease-in-out infinite alternate-reverse;
    will-change: transform;
}

/* 关键帧：包含 2s 停顿与推镜时重心 55%（8s × 25% = 2s）
   2025-10-01 20:36:00 +08:00 修改；修改人：Augment Agent；目标：8s、幅度 15%、先拉后停 2s 再推、推时 transform-origin 50% 55% */
/* 旧实现保留：
@keyframes heroZoom {
    from { transform: scale(1); }
    to   { transform: scale(1.12); }
}
*/
@keyframes heroZoom {
    /* 0%~25%：保持拉到位（scale 1），实现 2s 停顿；重心居中 */
    /* 旧值保留：
    0%   { transform: scale(1); transform-origin: 50% 50%; }
    25%  { transform: scale(1); transform-origin: 50% 50%; }
    */
    /* 2025-10-01 20:42:00 +08:00 修改：停顿阶段也下移取景；修改人：Augment Agent */
    /* 旧值保留：0%   { transform: scale(1); transform-origin: 50% 55%; } */
    /* 2025-10-01 20:50:00 +08:00 修改：停顿阶段取景也下移；修改人：Augment Agent */
    0%   { transform: scale(1); transform-origin: 50% 57%; }
    /* 旧值保留：25%  { transform: scale(1); transform-origin: 50% 55%; } */
    /* 2025-10-01 20:50:00 +08:00 修改：停顿阶段取景也下移；修改人：Augment Agent */
    25%  { transform: scale(1); transform-origin: 50% 57%; }
    /* 25%~75%：从 1.00 推进至 1.15；75%~100%：在终点停 2 秒；推时重心 55% */
    /* 旧值保留：100% { transform: scale(1.15); transform-origin: 50% 55%; } */
    75%  { transform: scale(1.15); transform-origin: 50% 55%; }
    100% { transform: scale(1.15); transform-origin: 50% 55%; }
}

/* 无障碍：尊重系统“减少动态效果”设置 */
@media (prefers-reduced-motion: reduce) {
    .hero-bg-kenburns { animation: none; transform: none; }
}


/* 2025-08-31 调整: 叠层顺序。遮罩在视频之上，文字在最上 */
.hero-overlay { z-index: 1; }
/* .hero-content 已在样式中设置 z-index: 2 */

.hero-background::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image:
        radial-gradient(circle at 20% 80%, rgba(230, 126, 34, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(52, 73, 94, 0.1) 0%, transparent 50%);
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* 滚动加载动画 */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

.slide-in-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.slide-in-left.visible {
    opacity: 1;
    transform: translateX(0);
}

.slide-in-right {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.slide-in-right.visible {
    opacity: 1;
    transform: translateX(0);
}

.scale-in {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

.scale-in.visible {
    opacity: 1;
    transform: scale(1);
}

/* 延迟动画 */
.fade-in.delay-1 { transition-delay: 0.1s; }
.fade-in.delay-2 { transition-delay: 0.2s; }
.fade-in.delay-3 { transition-delay: 0.3s; }
.fade-in.delay-4 { transition-delay: 0.4s; }
.fade-in.delay-5 { transition-delay: 0.5s; }

.slide-in-left.delay-1 { transition-delay: 0.1s; }
.slide-in-left.delay-2 { transition-delay: 0.2s; }
.slide-in-left.delay-3 { transition-delay: 0.3s; }

.slide-in-right.delay-1 { transition-delay: 0.1s; }
.slide-in-right.delay-2 { transition-delay: 0.2s; }
.slide-in-right.delay-3 { transition-delay: 0.3s; }

.scale-in.delay-1 { transition-delay: 0.1s; }
.scale-in.delay-2 { transition-delay: 0.2s; }
.scale-in.delay-3 { transition-delay: 0.3s; }

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 2025-08-31 修改: 移除首页视频半透明蒙层，使视频更清晰。保留原背景为注释。
       原: background: var(--background-overlay); */
    background: transparent;
}

.hero-content {
    position: relative;
    z-index: 2;
    color: var(--text-light);
    max-width: 800px;
    padding: 0 20px;
}

/* 2025-08-31 增强可读性：加深阴影+轻描边（原样式保留为注释）
   原 .hero-title text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
   原 .hero-subtitle 无描边，仅轻阴影 */
.hero-title {
    /* 旧行保留：font-family: var(--font-primary); */
    /* 2025-10-01 21:02:00 +08:00 修改：首页主标题中文采用宋体栈，英文保留 Playfair；修改人：Augment Agent；目标：更优雅的杂志风；思路：将 Playfair 置前，中文回退到宋体家族。*/
    /* 旧行保留：font-family: 'Playfair Display','Songti SC','STSong','SimSun','Noto Serif SC', serif; */
    /* 2025-10-31 22:10 +08:00 修改：首页主标题改为仿宋（无则回退宋体），字号固定50px，白色字且无阴影无描边；修改人：Augment Agent；目标：按用户要求统一视觉；思路：仅在基础样式覆盖字体/字号/颜色，并显式关闭阴影与描边。*/
    font-family: 'FangSong','STFangsong','FangSong_GB2312','Songti SC','STSong','SimSun','Noto Serif SC', serif;
    /* 旧行保留：font-size: 4.5rem; */
    /* 2025-10-01 21:02:00 +08:00 修改：将首页主标题字号缩小至 50%；修改人：Augment Agent；目标：更克制的优雅；思路：按当前基础尺寸的一半设置。 */
    /* 旧行保留：font-size: 2.25rem; */
    /* 2025-10-01 21:10:00 +08:00 修改：将首页主标题字号调整为原始的 70%；修改人：Augment Agent；目标：提升清晰度与层次；思路：按原 4.5rem×0.7=3.15rem。 */
    /* 旧行保留：font-size: 3.15rem; */
    /* 2025-10-01 21:42:00 +08:00 修改：将首页主标题基础字号下调 10%；修改人：Augment Agent；目标：更克制、更聚焦；思路：在 70% 基础上再减 10%。*/
    /* 旧行保留：font-size: 2.84rem; */
    /* 2025-10-01 21:46:00 +08:00 回退：将首页主标题字号恢复到 70%；修改人：Augment Agent；目标：在视觉加长的同时维持更佳层次与权重；思路：保持断点比例一致。*/
    /* 旧行保留：font-size: 3.15rem; */
    /* 2025-10-31 22:10 +08:00 修改：统一字号为绝对值 50px；修改人：Augment Agent */
    font-size: 50px;
    /* 旧行保留：font-weight: 700; */
    /* 2025-10-01 21:18:00 +08:00 修改：标题字重调整为 600；修改人：Augment Agent；目标：在提高锐度的同时保持轻盈质感。 */
    font-weight: 600;
    margin-bottom: 1.5rem;
    line-height: 1.2;
    /* 旧行保留：letter-spacing: -1px; */
    /* 2025-10-01 21:10:00 +08:00 修改：增加字符间距以拉长整体 30% 的视觉长度；修改人：Augment Agent；目标：更瘦长、通透；思路：使用相对单位 em 便于随字号缩放。 */
    /* 旧行保留：letter-spacing: 0.30em; */
    /* 2025-10-01 21:18:00 +08:00 修改：缩小字距以减少字间空隙，同时通过 font-stretch 拉长整体视觉；修改人：Augment Agent */
    letter-spacing: 0.18em;
    /* 2025-10-01 21:18:00 +08:00 新增：字形宽度扩展以实现“更瘦长”但不模糊；说明：若某些系统字体不支持宽度轴，将被忽略；可与字距配合。 */
    /* 旧行保留：font-stretch: 115%; */
    /* 2025-10-01 21:24:00 +08:00 修改：进一步拉长字形至 125% 以增强瘦长感；修改人：Augment Agent；目标：加长且清晰；思路：优先使用字体宽度轴避免插值模糊。 */
    /* 旧行保留：font-stretch: 125%; */
    /* 2025-10-01 21:33:00 +08:00 修改：按方案A 将字形宽度轴降至 105%（更瘦形）；修改人：Augment Agent；目标：更细长但保持清晰；思路：保留 letter-spacing 0.18em 与 scaleX(1.02) 维持整体长度。 */
    font-stretch: 105%;
    /* 2025-09-01 18:05 +08:00 修改：识别文案中的换行符并渲染为换行；目标：英文主标题分两行（Timeless Wisdom, / Limitless Possibilities）；思路：white-space: pre-line 仅影响换行处理 */
    white-space: pre-line;

    /* 2025-10-01 21:28:00 +08:00 修改：尝试横向轻微放大以增加整体长度；修改人：Augment Agent；目标：在不显著牺牲清晰度的前提下进一步“加长”；思路：极小比例 scaleX 并保持居中缩放。 */
    /* 注意：transform 仅影响视觉，不改变布局测量值；如需回退，删除下两行即可。 */
    /* 旧行保留：transform: scaleX(1.02); */
    /* 2025-10-01 21:36:00 +08:00 修改：进一步加长至 scaleX(1.03)；修改人：Augment Agent；目标：在清晰度可控前提下提升长度；思路：极小比例横向缩放，保持 transform-origin 居中。 */
    /* 旧行保留：transform: scaleX(1.03); */
    /* 2025-10-01 21:42:00 +08:00 修改：标题整体长度再提升至 scaleX(1.04)；修改人：Augment Agent；目标：更瘦长但保持清晰。*/
    transform: scaleX(1.04);
    transform-origin: 50% 50%;
    will-change: transform;

    /* 颜色：新增白色（依据用户要求）；如背景过亮导致对比不足，可后续考虑底部轻渐变承托（需单独确认） */
    /* 2025-10-31 22:10 +08:00 新增：设置主标题颜色为白色；修改人：Augment Agent */
    color: #FFFFFF;

    /* 原阴影: 2px 2px 4px rgba(0, 0, 0, 0.3) */
    /* 旧行保留：text-shadow: 0 3px 8px rgba(0,0,0,.55), 0 0 14px rgba(0,0,0,.35); */
    /* 2025-10-01 21:10:00 +08:00 修改：降低阴影模糊与强度以提升边缘清晰度；修改人：Augment Agent */
    /* 旧行保留：text-shadow: 0 2px 4px rgba(0,0,0,.45), 0 0 8px rgba(0,0,0,.25); */
    /* 2025-10-01 21:18:00 +08:00 修改：进一步收紧阴影以提升边缘清晰度；修改人：Augment Agent */
    /* 旧行保留：text-shadow: 0 1px 3px rgba(0,0,0,.50), 0 0 4px rgba(0,0,0,.28); */
    /* 2025-10-31 22:10 +08:00 修改：按要求移除阴影；修改人：Augment Agent */
    /* 旧行保留：text-shadow: none !important; */
    /* 2025-10-31 22:48 +08:00 修改：恢复轻度阴影以提升清晰度；修改人：Augment Agent；目标：0 1px 2px rgba(0,0,0,.25)；思路：仅 .hero-title 应用，保持白色填充与无描边。*/
    /* 旧行保留：text-shadow: 0 1px 2px rgba(0,0,0,.25) !important; */
    /* 2025-10-31 22:56 +08:00 修改：增强阴影以显著提升可读性；修改人：Augment Agent；目标：0 2px 6px + 0 0 10px；思路：双层柔和阴影，避免发灰与晕边过厚。*/
    /* 旧行保留：text-shadow: 0 2px 6px rgba(0,0,0,.35), 0 0 10px rgba(0,0,0,.25) !important; */
    /* 2025-10-31 23:02 +08:00 修改：进一步增强标题阴影；修改人：Augment Agent；目标：更明显的可读性提升；思路：双层柔和阴影加大半径与强度，避免过厚边缘。*/
    text-shadow: 0 3px 10px rgba(0,0,0,.50), 0 0 14px rgba(0,0,0,.35) !important;

    /* 旧行保留：-webkit-text-stroke: 1px rgba(0,0,0,.35); 轻微描边，提升边缘清晰度 */
    /* 2025-10-01 21:10:00 +08:00 修改：细化描边以减少模糊；并启用字体渲染优化；修改人：Augment Agent */
    /* 旧行保留：-webkit-text-stroke: 0.5px rgba(0,0,0,.25); */
    /* 2025-10-01 21:18:00 +08:00 修改：黑边描边加至 0.75px 并略提透明度，增强锐度但不过厚；修改人：Augment Agent */
    /* 旧行保留：-webkit-text-stroke: 0.75px rgba(0,0,0,.30); */
    /* 2025-10-31 22:10 +08:00 修改：按要求移除黑边描边；修改人：Augment Agent */
    /* 旧行保留：-webkit-text-stroke: 0.75px rgba(0,0,0,.50) !important; */
    /* 旧行保留：text-stroke: 0.75px rgba(0,0,0,.50) !important; */
    /* 2025-10-31 22:42 +08:00 回退：撤销 0.75px 描边，恢复无描边；修改人：Augment Agent；原因：描边过重覆盖笔画；思路：仅恢复描边为 0，保留白色填充与无阴影。*/
    -webkit-text-stroke: 0 !important;
    text-stroke: 0 !important;

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.hero-subtitle {
    font-size: 1.4rem;
    margin-bottom: 3rem;
    opacity: 0.9;
    font-weight: 300;
    text-shadow: 0 2px 6px rgba(0,0,0,.5), 0 0 10px rgba(0,0,0,.3); /* 增强阴影 */
    letter-spacing: 0.5px;
}


/* 2025-09-01 17:52 +08:00 修改（桌面端专用）
   目标：
   1) 英文主标题中 “Limitless Possibilities” 两词保持同一行（配合文案 NBSP）
   2) 英文副标题在桌面端整句一行显示
   思路：
   - 不修改原基础样式；通过媒体查询在 ≥1024px 时覆盖局部规则
   - 放宽 .hero-content 的可用宽度，避免被 800px 挤压导致换行
   - 为 .hero-subtitle 添加 white-space: nowrap 以禁止桌面端换行；移动端保持自适应换行
*/
@media (min-width: 1024px) {
  .hero-content {
    /* 保留原 max-width: 800px，不直接改动；仅在桌面端放宽以容纳更长英文 */
    max-width: 95vw; /* 2025-09-01: 放宽容器宽度，减少换行概率 */
  }
  .hero-subtitle {
    white-space: nowrap; /* 2025-09-01: 桌面端副标题一行显示，移动端不受影响 */
  }
}

.hero-cta {
    margin-top: 2rem;
}

/* 关于山思 */
.about-section {
    padding: 120px 0;
    background-color: var(--background-light);
}

.about-intro {
    text-align: center;
    margin-bottom: 80px;
}

/* 2025-10-02 00:25:00 +08:00 修改：关于山思标题字号下调30%，与正文间距加倍；修改人：Augment Agent；目标：弱化标题权重、拉开层次；思路：仅改字号与下边距，保留其余样式，旧值以注释保留。 */
.about-intro h2 {
    /* 旧（方案B已注释）：
    font-family: 'Playfair Display','Songti SC','STSong','SimSun','Noto Serif SC', serif;
    font-size: 3.15rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    font-stretch: 105%;
    white-space: pre-line;
    transform: scaleX(1.04);
    transform-origin: 50% 50%;
    will-change: transform;
    text-shadow: 0 1px 3px rgba(0,0,0,.50), 0 0 4px rgba(0,0,0,.28);
    -webkit-text-stroke: 0.75px rgba(0,0,0,.30);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility; */

    /* 恢复基础并按本次需求调整 */
    font-family: var(--font-primary);
    /* 旧：font-size: 3.5rem; */
    /* 旧：font-size: 2.45rem; */
    font-size: 2.70rem;
    font-weight: 700;
    color: var(--primary-color);
    /* 旧：margin-bottom: 2rem; */
    /* 旧：margin-bottom: 4rem; */
    /* 旧：margin-bottom: 8rem; */
    margin-bottom: 7rem;
    /* 旧：letter-spacing: -1px; */
    /* 旧：letter-spacing: 1px; */
    letter-spacing: 2px;
}


/* 2025-08-31 调整：扩展关于山思文字区域宽度，使其与下方“核心技术”模块一致。

/* 2025-10-02 00:38:00 +08:00 修改：将关于山思首段（about-desc-1）设为宋体并字号下调10%；
   修改人：Augment Agent；目标：贴合中文长文阅读气质、降低视觉分量；
   思路：仅作用于第1段 p[data-lang="about-desc-1"]，不影响其他段落与模块。*/
.about-section .about-description p[data-lang="about-desc-1"] {
    /* 旧：继承正文字体（预计为 var(--font-secondary) 'Inter'） */
    font-family: 'Songti SC','STSong','SimSun','Noto Serif SC', serif; /* 中文宋体优先，英文字母退回衬线 */
    /* 旧：font-size: 1em（继承） → 下调10% 为 0.9em */
    /* 2025-10-02 00:45:00 +08:00 修改：将首段字号调整为 1em；修改人：Augment Agent；目标：与整体正文一致；思路：仅调字号，保留其余样式 */
    /* 旧：font-size: 0.92em; */
    font-size: 1em;
    /* 2025-10-02 00:48:00 +08:00 新增：首行缩进2em，符合中文排版习惯；修改人：Augment Agent */
    text-indent: 2em;
    /* 2025-10-02 00:51:00 +08:00 修复：段落左对齐以使首行缩进可见；修改人：Augment Agent */
    text-align: left;
}

   原: max-width: 1000px; */
.about-description {
    max-width: var(--container-max-width);
    margin: 0 auto;
}

.about-description p {
    font-size: 1.2rem;
    line-height: 1.8;
    color: var(--text-secondary);
    margin-bottom: 1.5rem;
    text-align: left;
}

/* 2025-10-02 00:55:00 +08:00 修改：复刻“关于山思”标题样式到“三大功能模块”标题；修改人：Augment Agent；目标：版式统一 */
.about-section h2[data-lang="about-modules-title"] {
  /* 旧（inline）：font-size: 3.5rem; letter-spacing: -1px; font-family: var(--font-primary); font-weight: 700; */
  font-family: var(--font-primary) !important;
  /* 2025-10-02 01:05:00 +08:00 修改：字号 2.70rem → 2.65rem；修改人：Augment Agent；目标：与主观观感对齐 */
  font-size: 2.65rem !important; /* 与 .about-intro h2 一致（桌面） */
  font-weight: 700 !important;
  letter-spacing: 2px !important; /* 与 .about-intro h2 一致 */
  /* 颜色与对齐保持 inline 原值：color: var(--primary-color); text-align: center; */
}

/* 2025-10-02 01:48:00 +08:00 修改：将“应用场景”标题参数对齐“关于山思”；修改人：Augment Agent；目标：版式统一；思路：仅设置字体/字号/字间距，其他保持不变 */
.services-section h2[data-lang="services-title"] {
  /* 旧（继承全局或默认） */
  font-family: var(--font-primary) !important;
  font-size: 2.70rem !important; /* 桌面与关于保持一致 */
  letter-spacing: 2px !important;
}


/* 2025-10-02 02:00:00 +08:00 修改：将“项目案例”标题参数对齐“关于山思”；修改人：Augment Agent；目标：版式统一；思路：仅设置字体/字号/字间距，其他保持不变 */
.projects-section h2[data-lang="projects-title"] {
  font-family: var(--font-primary) !important;
  font-size: 2.70rem !important;
  letter-spacing: 2px !important;
}

/* 2025-10-02 02:05:00 +08:00 修改：为“三大功能模块”段落内三处模块名称着墨绿色；修改人：Augment Agent；目标：与站点背景色系一致；思路：用 span.module-name 精确上色 */
.about-section .about-description p[data-lang="about-modules-desc"] .module-name {
  color: var(--primary-color);
}


/* 2025-10-02 02:18:00 +08:00 修改：将“三大功能模块”下三张图的说明标题改为墨绿色；修改人：Augment Agent；目标：与站点主色一致；思路：精确到 data-lang 键并使用 !important 覆盖默认样式 */
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-yolo-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-platform-title"]{
  color: var(--primary-color) !important;
}


/* 2025-10-02 00:55:00 +08:00 修改：复刻“关于山思”首段正文样式到模块说明段；修改人：Augment Agent；目标：阅读风格统一 */
.about-section .about-description p[data-lang="about-modules-desc"] {
  /* 旧：继承 .about-description p（font-size:1.2rem; line-height:1.8; letter-spacing:normal） */
  font-family: 'Songti SC','STSong','SimSun','Noto Serif SC', serif; /* 宋体优先 */
  font-size: 1em; /* 与首段一致 */
  line-height: 1.8; /* 与区域默认一致，明确声明 */
  letter-spacing: normal; /* 与首段一致（未人为加字距） */
  text-align: left; /* 与首段一致左对齐 */
  /* 2025-10-02 01:10:00 +08:00 新增：首段首行缩进2em；修改人：Augment Agent；目的：中文排版 */
  text-indent: 2em;
}


/* 2025-10-01 22:02:00 +08:00 新增：为“关于山思”介绍文字下的插图统一增强阴影；修改人：Augment Agent；
   目标：提升两张数字孪生保护地图像的立体感；思路：限定作用域到 about-section 的 about-description 下所有 img，使用 !important 覆盖内联 box-shadow。*/
/* 2025-10-01 22:20:00 +08:00 回退：撤销关于山思介绍图片的立体增强（方案A及强化）；修改人：Augment Agent；目标：恢复到仅使用内联轻度阴影的状态；思路：注释整个规则块。
旧规则保留起始：
.about-section .about-description img {
    /* 旧：box-shadow: 0 6px 24px rgba(0,0,0,.15); （该值来自内联样式，较轻） */
    /* 2025-10-01 22:08:00 +08:00 修改：采用“外部环境阴影 + 接触阴影 + 内高光”的立体方案A（此处为外阴影与内高光）；修改人：Augment Agent；目标：静态即具备扎实的厚度与边沿质感；思路：多层外阴影叠加并加入轻微内高光。 */
    /* 旧：box-shadow:
        0 18px 44px rgba(0,0,0,.30),    远处环境阴影
        0 6px 18px rgba(0,0,0,.18),     近处软阴影
        inset 0 1px 1px rgba(255,255,255,.35) !important; 轻内高光 */
    /* 2025-10-01 22:14:00 +08:00 修改：立体效果整体增强约20%；修改人：Augment Agent；目标：更强的体积感与边缘质感；思路：放大偏移与模糊半径并提高不透明度，内高光略增强。 */
    box-shadow:
        0 22px 53px rgba(0,0,0,.36),    /* 远处环境阴影（+约20%） */
        0 7px 22px rgba(0,0,0,.216),    /* 近处软阴影（+约20%） */
        inset 0 1px 2px rgba(255,255,255,.45) !important; /* 内高光更明显 */
    border-radius: 10px; /* 与现有内联圆角保持一致，避免边缘硬切 */
}
旧规则保留结束 */

/* 2025-10-01 22:08:00 +08:00 新增：关于山思介绍插图的“接触阴影”伪元素；修改人：Augment Agent；
   目标：模拟图片与页面之间的接触/投影，提升贴地的真实感；思路：在容器 .about-inline-image 底部绘制椭圆径向渐变并做轻度模糊。 */
/* 2025-10-01 22:20:00 +08:00 回退：撤销关于山思介绍插图容器的 position 设置（为接触阴影服务）；修改人：Augment Agent；
旧：.about-section .about-inline-image { position: relative; } */
/* 2025-10-01 22:20:00 +08:00 回退：撤销关于山思介绍插图的“接触阴影”伪元素；修改人：Augment Agent；
旧规则保留：
.about-section .about-inline-image::after {
    content: "";
    position: absolute;
    /* 旧：left: 6%; */ left: 5%;
    /* 旧：right: 6%; */ right: 5%;
    /* 旧：bottom: -12px; */ bottom: -10px;
    /* 旧：height: 22px; */ height: 26px;
    /* 旧：background: radial-gradient(50% 60% at 50% 50%, rgba(0,0,0,.28) 0%, rgba(0,0,0,.18) 40%, rgba(0,0,0,0) 70%); */
    background: radial-gradient(50% 60% at 50% 50%,
        rgba(0,0,0,.34) 0%, rgba(0,0,0,.22) 40%, rgba(0,0,0,0) 70%);
    /* 旧：filter: blur(4px); */ filter: blur(5px);
    pointer-events: none;
}
*/


/* 2025-10-19 修改：缩小三大功能模块尺寸和间距；修改人：Augment Agent；目标：模块变小，间距8px；思路：减小gap和整体尺寸；旧：gap: 16px */
.tech-showcase {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* 2025-08-31 调整：缩小卡片间距，使三张图彼此更靠近。原: gap: 30px; */
    /* 2025-08-31-2 微调：进一步缩小间距以提升可视面积。原: gap: 20px; */
    /* 2025-10-19 修改：间距调整为8px；修改人：Augment Agent；旧：gap: 16px */
    /* 2025-10-19 修改：背景模块间距调整为10px；修改人：Augment Agent；目标：文字背景模块间距10px；思路：调整gap值；旧：gap: 8px */
    /* 2025-10-19 修改：横向间距拉大到20px；修改人：Augment Agent；目标：让三个背景模块各自独立；思路：增大gap值实现横向分离；旧：gap: 10px */
    /* 2025-10-19 修改：卡片间距20px白色空隙；修改人：Augment Agent；目标：三个功能模块卡片之间20px白色间距；思路：gap控制卡片间距；旧：gap: 20px */
    gap: 20px;
    /* 2025-08-31 调整：限制整体宽度与上方文字等宽(1000px)，并居中对齐 */
    /* 2025-08-31-3 扩展：与上方 about-description、下方核心技术保持一致外缘对齐 */
    /* 2025-10-19 修改：缩小整体宽度；修改人：Augment Agent；目标：让模块变小；思路：减小max-width；旧：var(--container-max-width) */
    /* 2025-10-19 修改：进一步缩小容器宽度；修改人：Augment Agent；目标：让三个功能模块卡片整体更小；思路：减小max-width；旧：max-width: 800px */
    max-width: 600px;
    margin: 60px auto 0 auto; /* 原: margin-top: 60px; */
}

/* 2025-10-19 修改：移除高度限制避免重叠；修改人：Augment Agent；目标：通过容器宽度缩小卡片，避免图片文字重叠；思路：只通过容器宽度控制大小；旧：height: 180px */
.tech-item {
    position: relative;
    border-radius: var(--border-radius);
    overflow: hidden;
    cursor: pointer;
    transition: var(--transition);
    aspect-ratio: 1/1; /* 保持正方形比例 */
}

.tech-image {
    width: 100%;
    height: 100%;
    position: relative;
}

.tech-item .tech-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transition: var(--transition);
    /* 2025-08-31-2 微调：减小内边距以放大可视面积。原: padding: 10px; */
    padding: 6px;
    box-sizing: border-box;
}

/* 2025-10-01 21:55:00 +08:00 新增：为“关于山思”模块的三张卡片图片添加常驻阴影；修改人：Augment Agent；
   目标：提升立体感；思路：限定作用域在 about-section 下的 tech-showcase，避免影响其他版块。*/
/* 旧：.about-section .tech-showcase .tech-item .tech-image 未设置 box-shadow（无阴影） */
/* 2025-10-01 22:20:00 +08:00 回退：撤销为“三大功能模块”添加的常驻阴影；修改人：Augment Agent；目标：恢复改动前样式；思路：注释整段规则，保留以便需要时快速恢复。
旧规则保留：
.about-section .tech-showcase .tech-item .tech-image {
    box-shadow: 0 10px 30px rgba(0,0,0,.22), 0 2px 10px rgba(0,0,0,.12); /* 柔和立体阴影 */
    border-radius: var(--border-radius); /* 与卡片圆角一致，避免溢出 */
}
*/

/* 悬停时略微增强阴影以呼应整体 hover 动效 */
/* 2025-10-01 22:20:00 +08:00 回退：撤销 hover 阶段为“三大功能模块”图片增强的阴影；修改人：Augment Agent；
旧规则保留：
.about-section .tech-showcase .tech-item:hover .tech-image {
    box-shadow: 0 14px 36px rgba(0,0,0,.26), 0 6px 14px rgba(0,0,0,.14);
}
*/


/* 2025-10-02 00:05:00 +08:00 回退：取消“三大功能模块”图片 hover 放大；修改人：Augment Agent；目标：与参考版本一致，鼠标悬停不再放大图片；思路：注释该规则，保留以便随时恢复。
.tech-item:hover .tech-image img {
    transform: scale(1.1);
}
*/

.placeholder-image {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: var(--text-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    position: relative;
}

.placeholder-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 1;
}

.placeholder-image.ai-tech {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.placeholder-image.remote-sensing {
    background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
}

.placeholder-image.iot-devices {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.placeholder-image.digital-twin {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}

.tech-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    /* 2025-08-31 再次调整：进一步缩小蒙层面积，保持外缘与上方文字对齐。
       原: height: 45%; padding: 28px 20px 20px; */
    /* 2025-08-31-2 再次细化：继续缩小蒙层占比与内边距，突出图片主体 */
    height: 34%;
    /* 2025-10-02 02:26:00 +08:00 修改：方案A → 方案B（偏蓝的蓝绿，上浅下深）；修改人：Augment Agent；目的：根据你的偏好优化观感；思路：仅替换 background 渐变，保留旧A与更早黑色渐变为注释便于回退。
       旧A：background: linear-gradient(180deg, rgba(160, 224, 212, 0.10) 0%, rgba(64, 170, 160, 0.55) 55%, rgba(16, 84, 78, 0.90) 100%);
       更早黑色：background: linear-gradient(transparent, rgba(0, 0, 0, 0.72)); */
    /* 2025-10-02 02:30:00 +08:00 修改：方案B → 方案O1（橄榄绿，上浅下深）；修改人：Augment Agent；目的：与站点橄榄绿主色系更协调；思路：仅替换 background 渐变，保留旧B为注释。
       旧B：background: linear-gradient(180deg, rgba(163, 219, 255, 0.10) 0%, rgba(56, 149, 167, 0.55) 55%, rgba(21, 87, 95, 0.90) 100%); */
    /* 2025-10-02 02:33:00 +08:00 修改：方案O1 → 方案O2（更沉稳的橄榄绿，上浅下深）；修改人：Augment Agent；目的：进一步贴合你的偏好；思路：仅替换 background 渐变，保留旧O1为注释。
       旧O1：background: linear-gradient(180deg, rgba(223, 230, 199, 0.10) 0%, rgba(128, 141, 102, 0.55) 55%, rgba(64, 63, 43, 0.93) 100%); */
    /* 2025-10-02 02:37:00 +08:00 修改：方案O2 → 方案G1（偏亮翠绿，上浅下深）；修改人：Augment Agent；目标：提升翠绿感与活力；思路：仅替换 background 渐变，保留旧O2为注释。
       旧O2: background: linear-gradient(180deg, rgba(214, 222, 190, 0.08) 0%, rgba(102, 112, 74, 0.54) 55%, rgba(67, 66, 46, 0.96) 100%); */
    /* 2025-10-02 02:41:00 +08:00 修改：G1 → G2（更橄榄向的翠绿，上浅下深）；修改人：Augment Agent；目标：提升“橄榄色”观感并与站点主色协调；思路：仅替换 background 渐变，保留旧G1为注释。
       旧G1：background: linear-gradient(180deg, rgba(210, 246, 221, 0.10) 0%, rgba(46, 160, 125, 0.58) 55%, rgba(23, 90, 62, 0.96) 100%); */
    /* 2025-10-02 02:49:00 +08:00 修改：G2-L1 → G2-L2（再透明再浅一档）；修改人：Augment Agent；目标：进一步减轻视觉重量；思路：仅替换 background 渐变，保留旧G2-L1为注释。
       旧G2-L1：background: linear-gradient(180deg, rgba(234, 241, 210, 0.06) 0%, rgba(132, 158, 78, 0.45) 55%, rgba(67, 66, 46, 0.92) 100%); */
    /* 2025-10-02 02:52:00 +08:00 修改：G2-L2 → B1（浅天空蓝方向，上浅下深）；修改人：Augment Agent；目的：与图片背景接近且更轻盈；思路：仅替换 background 渐变，保留旧值为注释便于回退。
       旧G2-L2：background: linear-gradient(180deg, rgba(243, 247, 229, 0.04) 0%, rgba(146, 170, 88, 0.36) 55%, rgba(67, 66, 46, 0.88) 100%); */
    /* 2025-10-02 02:55:00 +08:00 修改：B1 → B2（浅青蓝方向，上浅下深）；修改人：Augment Agent；目标：更贴近图片背景的浅蓝；思路：仅替换 background 渐变，保留旧B1为注释便于回退。
       旧B1：background: linear-gradient(180deg, rgba(224, 240, 255, 0.06) 0%, rgba(120, 170, 220, 0.42) 55%, rgba(58, 92, 140, 0.88) 100%); */
    /* 2025-10-02 02:59:00 +08:00 修改：B2 → B2-Lite-1（更淡、更透明的浅蓝）；修改人：Augment Agent；目标：满足“颜色再淡一点”；思路：仅替换 background 渐变并保留旧B2为注释。
       旧B2：background: linear-gradient(180deg, rgba(220, 245, 248, 0.06) 0%, rgba(96, 176, 190, 0.40) 55%, rgba(42, 98, 120, 0.88) 100%); */
    /* 2025-10-02 03:02:00 +08:00 修改：B2-Lite-1 → B2-Lite-2（更淡的浅蓝）；修改人：Augment Agent；目标：进一步减轻；思路：仅替换 background，并保留旧值注释。
       旧B2-Lite-1：background: linear-gradient(180deg, rgba(220, 245, 248, 0.04) 0%, rgba(120, 190, 205, 0.32) 55%, rgba(58, 120, 140, 0.82) 100%); */
    /* 2025-10-02 03:56:00 +08:00 修改：M1 → M2（更淡一档的冷灰浅蓝）；修改人：Augment Agent；目的：按用户指令“切换 2”以预览方案 M2；思路：仅替换 background 渐变，保留旧M1为注释以便比对与回退。
       旧M1：background: linear-gradient(180deg, rgba(245,248,252,0.78) 0%, rgba(226,232,243,0.78) 55%, rgba(197,206,222,0.84) 100%); */
    /* 2025-10-19 修改：恢复浅灰蓝色渐变背景，文字始终显示；修改人：Augment Agent；目标：恢复原来的浅灰蓝色背景；思路：使用原来的浅色渐变，保持文字始终显示；旧：深色背景 */
    background: linear-gradient(180deg,
      rgba(248,250,253,0.70) 0%,
      rgba(232,238,248,0.72) 55%,
      rgba(206,216,232,0.80) 100%);
    color: var(--text-light);
    /* 2025-10-19 修改：缩小文字背景模块内边距；修改人：Augment Agent；目标：让文字背景更紧凑；思路：减小padding值；旧：padding: 18px 16px 16px */
    padding: 12px 10px 10px;
    transform: translateY(0);
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 2;
    backdrop-filter: blur(8px);
    border-radius: 0 0 var(--border-radius) var(--border-radius);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* 2025-10-19 修改：移除悬停显示效果；修改人：Augment Agent；目标：文字始终显示；思路：注释掉hover效果；旧：transform: translateY(0) */
/* .tech-item:hover .tech-overlay {
    transform: translateY(0);
} */

/* 2025-10-19 修改：移除卡片悬停上移效果；修改人：Augment Agent；目标：去掉特效；思路：注释掉hover效果；旧：transform: translateY(-5px) */
/* .tech-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px var(--shadow-medium);
} */

/* 2025-10-19 修改：标题文字始终显示；修改人：Augment Agent；目标：移除隐藏和动画效果；思路：设置opacity为1，移除transform；旧：opacity: 0, transform: translateY(10px) */
/* 2025-10-19 修改：缩小标题字体和间距；修改人：Augment Agent；目标：让文字模块更紧凑；思路：减小字体大小和边距；旧：font-size: 1.2rem, margin-bottom: 0.6rem */
.tech-overlay h3 {
    font-family: var(--font-primary);
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 0.4rem;
    color: var(--accent-color);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
    letter-spacing: 0.5px;
    transform: translateY(0);
    opacity: 1;
    transition: all 0.3s ease 0.1s;
    line-height: 1.3;
}

/* 2025-10-19 修改：段落文字始终显示；修改人：Augment Agent；目标：移除隐藏和动画效果；思路：设置opacity为1，移除transform；旧：opacity: 0, transform: translateY(15px) */
/* 2025-10-19 修改：缩小段落字体；修改人：Augment Agent；目标：让文字模块更紧凑；思路：减小字体大小；旧：font-size: 0.9rem */
.tech-overlay p {
    font-size: 0.8rem;
    line-height: 1.4;
    /* 2025-10-02 04:45:00 +08:00 撤销：恢复默认白色以回到清理前可显示状态；修改人：Augment Agent；原因：用户端出现页面空白，先快速回退；思路：恢复原行，稍后再谨慎优化。 */
    color: rgba(255, 255, 255, 0.9);
    font-weight: 400;
    transform: translateY(0);
    opacity: 1;
    transition: all 0.3s ease 0.2s;
    text-align: left;
    margin: 0;
}

/* 2025-10-19 修改：撤回间距调整；修改人：Augment Agent；目标：恢复色块间距200px；思路：撤回gap值；旧：gap 400px */
.tech-blocks-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 200px;
    max-width: 600px;
    margin: 10px auto 40px auto;
}

/* 2025-10-19 修改：再增加立体感；修改人：Augment Agent；目标：进一步增强立体感和深度效果；思路：更深阴影、更强边框、更多层次；旧：基础立体感 */
.tech-detail-block {
    width: 3.5cm;
    height: 1cm;
    background: linear-gradient(135deg, #9dc4e8 0%, #8db4d8 25%, #6a8aa8 75%, #3a5a7a 100%);
    border-radius: 8px;
    margin: 0 auto;
    box-shadow:
        0 8px 16px rgba(0, 0, 0, 0.3),
        0 4px 8px rgba(0, 0, 0, 0.2),
        0 2px 4px rgba(0, 0, 0, 0.15),
        0 1px 2px rgba(0, 0, 0, 0.1),
        inset 0 2px 0 rgba(255, 255, 255, 0.5),
        inset 0 -2px 0 rgba(0, 0, 0, 0.15),
        inset 2px 0 0 rgba(255, 255, 255, 0.2),
        inset -2px 0 0 rgba(0, 0, 0, 0.1);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-family: "SimSun", "宋体", serif;
    font-size: 12px;
    font-weight: normal;
    text-align: center;
    cursor: pointer;
    border: 2px solid rgba(255, 255, 255, 0.3);
    transition: all 0.3s ease;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.tech-detail-block:hover {
    transform: translateY(-3px);
    box-shadow:
        0 12px 24px rgba(0, 0, 0, 0.35),
        0 6px 12px rgba(0, 0, 0, 0.25),
        0 3px 6px rgba(0, 0, 0, 0.2),
        0 1px 3px rgba(0, 0, 0, 0.15),
        inset 0 2px 0 rgba(255, 255, 255, 0.6),
        inset 0 -2px 0 rgba(0, 0, 0, 0.2),
        inset 2px 0 0 rgba(255, 255, 255, 0.25),
        inset -2px 0 0 rgba(0, 0, 0, 0.15);
}

.tech-detail-block::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, transparent 100%);
    border-radius: 4px 4px 0 0;
    pointer-events: none;
}

/* 2025-10-19 修改：第一个色块再往左移4px；修改人：Augment Agent；目标：第一个色块再往左移4px；思路：调整translateX值；旧：translate(-145px, 10px) */
.tech-detail-block:nth-child(1) {
    transform: translate(-149px, 10px);
}

/* 2025-10-19 修改：第2个色块再往左移3px；修改人：Augment Agent；目标：第2个色块再往左移3px；思路：调整translateX值；旧：translate(-90px, 10px) */
.tech-detail-block:nth-child(2) {
    transform: translate(-93px, 10px);
}

/* 2025-10-19 修改：第3个色块再往左移10px；修改人：Augment Agent；目标：第3个色块再往左移10px；思路：调整translateX值；旧：translate(-30px, 10px) */
.tech-detail-block:nth-child(3) {
    transform: translate(-40px, 10px);
}
/* 2025-10-02 03:07:00 +08:00 修改：为“感知模块”说明段设置蓝色方案C1；修改人：Augment Agent；目的：按用户指令仅将该段落变为蓝色，字体大小不变；思路：使用更高优先级选择器并加 !important 覆盖原白色。
   目标段：index.html 内 <p data-lang="tech-flight-desc">... </p> */
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-flight-desc"] {
    /* 2025-10-02 03:10:00 +08:00 修改：C1 → C2（更深一档蓝色）；修改人：Augment Agent；目的：按用户指令“切换 2”；思路：仅替换颜色值并保留旧色为注释。
       旧：color: #3A7EA3 !important;  */
    color: #2F6C8F !important; /* C2 蓝色，更稳重、对比更强 */
/* 2025-10-02 03:14:00 +08:00 修改：将另外两段说明文案统一为蓝色C2；修改人：Augment Agent；目的：与第一段一致；思路：精确到 data-lang 键并以 !important 覆盖默认白色。*/
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-yolo-desc"],
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-platform-desc"]{
    color: #2F6C8F !important; /* C2 蓝色，与 tech-flight-desc 保持一致 */
}
/* 2025-10-02 03:18:00 +08:00 修改：将“感知模块”标题（h3）颜色与正文统一为蓝色C2；修改人：Augment Agent；目的：按用户指令统一颜色；思路：使用精确的 data-lang 选择器并加 !important 覆盖早前的墨绿色规则。*/
/* 2025-10-02 03:24:00 +08:00 修改：按指令将“感知模块”标题字体改为宋体，颜色统一为蓝色C2，并移除所有阴影与描边；修改人：Augment Agent；目的：提高蓝色可见性并与正文一致；思路：以精确 data-lang 选择器 + !important 覆盖字号不变。*/
/* 2025-10-02 04:45:00 +08:00 撤销：恢复至清理前状态；修改人：Augment Agent；原因：用户端出现页面空白，先快速回退；思路：移除本注释头以启用后续规则。*/
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"]{
    /* 字体改为宋体优先栈，字号沿用原规则不变 */
    font-family: "Songti SC", "SimSun", "STSong", serif !important;
    /* 颜色统一为与正文一致的 C2 */
    /* 2025-10-02 03:30:00 +08:00 修改：标题改为白色字；修改人：Augment Agent；目的：按用户指令仅更改颜色为白色；思路：保留宋体与无阴影/描边设置不变。旧：color: #2F6C8F !important; */
    color: #ffffff !important;
    /* 去掉阴影与描边，避免视觉混色影响对比 */
    text-shadow: none !important;
    -webkit-text-stroke: 0 !important;
    text-stroke: 0 !important;
}
/* 2025-10-02 04:45:00 +08:00 说明：上方撤销注释已恢复规则有效，保留此行作为撤销记录，无功能性注释结束符。 */


/* 2025-10-02 04:58:00 +08:00 紧急恢复：还原此处右花括号以保持与历史版本一致；修改人：Augment Agent。 */
}


/* 2025-10-19 修改：移除悬停时的文字显示效果；修改人：Augment Agent；目标：文字始终显示，不需要hover；思路：注释掉hover效果；旧：transform: translateY(0), opacity: 1 */
/* .tech-item:hover .tech-overlay h3,
.tech-item:hover .tech-overlay p {
    transform: translateY(0);
    opacity: 1;
} */

/* 2025-10-02 04:12:00 +08:00 修改：将三张卡片（感知模块、AI智能模块、数字底座模块）的标题与正文行内样式抽离为统一 CSS；修改人：Augment Agent；目的：消除重复、统一维护；思路：使用精确 data-lang 选择器并加 !important 覆盖早前规则（包括曾设置为白色的标题）。旧：对应标签上的行内 style。*/
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-yolo-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-platform-title"]{
  /* 字体：宋体优先栈（覆盖默认 var(--font-primary)） */
  font-family: "Songti SC","SimSun","STSong",serif !important;
  /* 颜色：统一为 C2 蓝，与正文一致 */
  color:#2F6C8F !important;
  /* 排版：双倍行距 */
  line-height:2 !important;
  /* 视觉：细黑描边 + 两层阴影，增强可读性 */
  -webkit-text-stroke:0.5px rgba(0,0,0,.35) !important;
  text-stroke:0.5px rgba(0,0,0,.35) !important;
  text-shadow:0 1px 2px rgba(0,0,0,.35),0 0 6px rgba(0,0,0,.25) !important;
  /* 位置：整体上移 10% */
  position:relative !important;
  top:-10% !important;
}

/* 正文段落：统一双倍行距与整体上移 10%（颜色已由既有规则统一为 C2 蓝） */
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-flight-desc"],
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-yolo-desc"],
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-platform-desc"]{
  line-height:2 !important;
  position:relative !important;
  top:-10% !important;
}

/* 小屏适配：上移比例更温和，避免过靠上 */
@media (max-width: 768px){
  .about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"],
  .about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-yolo-title"],
  .about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-platform-title"],
  .about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-flight-desc"],
  .about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-yolo-desc"],
  .about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-platform-desc"]{
    top:-8% !important;
  }
}
@media (max-width: 480px){
  .about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"],
  .about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-yolo-title"],
  .about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-platform-title"],
  .about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-flight-desc"],
  .about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-yolo-desc"],
  .about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-platform-desc"]{
    top:-6% !important;
  }
}

/* 核心技术 */
/* 2025-10-19 修改：恢复应用场景渐变蓝色背景；修改人：Augment Agent；目标：恢复正确的深蓝渐变背景；思路：恢复星空深蓝渐变背景；旧：错误的米白色背景 */
.services-section {
    padding: 120px 0;
    background: linear-gradient(180deg, #0a0f1a 0%, #1a2332 50%, #2d4a6b 100%);
    color: var(--text-light);
    position: relative;
    overflow: hidden;
}

/* 2025-10-19 修改：移除标题区域星空；修改人：Augment Agent；目标：让"应用场景"标题周围也没有星星；思路：移除标题区域星空效果；旧：标题区域星空背景 */
/* 星空背景效果已移除 - 保持纯净的深蓝渐变背景 */

/* 2025-10-19 新增：产品应用标题周围星星效果；修改人：Augment Agent；目标：在"产品应用"四个字周围添加几颗星星；思路：创建标题星星装饰效果 */
.title-with-stars {
    position: relative;
    display: inline-block;
}

.title-stars {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

/* 创建标题周围的星星 */
.title-stars::before {
    content: '';
    position: absolute;
    width: 3px;
    height: 3px;
    background: #ffffff;
    border-radius: 50%;
    /* 2025-10-27 08:58 +08:00 修改：为“应用场景/产品应用”标题周围增加星星（含最右上角一颗）；修改人：Augment Agent；目的：按用户指令“再加几颗，最右上角加一颗”；思路：在原有9颗的基础上扩展 box-shadow 列表，新增3颗，尽量靠右上布置，不改变尺寸与动画，保持风格一致；旧列表见下方注释。 */
    /* 旧列表：
        -515px -32px 0 0 #ffffff,
        -305px -10px 0 0 #add8e6,
        -350px 55px 0 0 rgba(255, 255, 255, 0.6),
        -365px 68px 0 1px rgba(135, 206, 235, 1.0),
        -280px 10px 0 0 #87ceeb,
        -80px 10px 0 0 #ffffff,
        280px -20px 0 0 #ffffff,
        320px 30px 0 0 #87ceeb,
        305px 40px 0 0 #add8e6
    */
    box-shadow:
        -515px -32px 0 0 #ffffff,
        -305px -10px 0 0 #add8e6,
        -350px 55px 0 0 rgba(255, 255, 255, 0.6),
        -365px 68px 0 1px rgba(135, 206, 235, 1.0),
        -280px 10px 0 0 #87ceeb,
        -80px 10px 0 0 #ffffff,
        280px -20px 0 0 #ffffff,
        320px 30px 0 0 #87ceeb,
        305px 40px 0 0 #add8e6,
        /* 新增三颗（含最右上角一颗） */
        /* 旧行：380px -60px 0 0 #ffffff, */
        /* 2025-10-27 09:08 +08:00 下移30px：-60px→-30px；修改人：Augment Agent；目的：用户要求“右上角两颗统一下移30px”；思路：仅更新Y坐标+30px */
        380px -30px 0 0 #ffffff,
        /* 旧行：360px -18px 0 0 rgba(255,255,255,0.85), */
        /* 2025-10-27 09:08 +08:00 下移30px：-18px→12px；修改人：Augment Agent；思路：仅更新Y坐标+30px */
        360px 12px 0 0 rgba(255,255,255,0.85),
        340px -5px 0 0 #add8e6,
        /* 2025-10-27 09:03 +08:00 新增：应用场景标题下方仅加1颗；修改人：Augment Agent；目的：严格按“加一颗就加一颗”；思路：在下方轻微位置补一颗，避免喧宾夺主；旧：无此项 */
        /* 2025-10-27 09:17 +08:00 新增：在该星星正下方 +20px 再加一颗；修改人：Augment Agent；目的：严格按“在你加的星星下方往下 20px 再加一颗”；思路：保留 X=20px 不变，Y 从 85px 增至 105px，亮度略降以形成层次 */
        20px 85px 0 0 rgba(255,255,255,0.9),
        /* 旧行：20px 105px 0 0 rgba(255,255,255,0.85); */
        /* 2025-10-27 09:22 +08:00 调整：右移30px、下移10px；修改人：Augment Agent；目的：按用户“新增加的1颗星往右30、往下10”；思路：更新 X+30→50px，Y+10→115px，仅改此一颗 */
        50px 115px 0 0 rgba(255,255,255,0.85),
        /* 2025-10-27 09:27 +08:00 新增：在该星星右侧 +100px 再加一颗；修改人：Augment Agent；目的：按用户指令“在这颗星星的右边 100px 处再加一颗星星”；思路：仅在同一Y=115px，X 从 50px 增至 150px；旧：无此项 */
        /* 旧行：150px 115px 0 0 rgba(255,255,255,0.85); */
        /* 2025-10-27 09:33 +08:00 新增：从该星右+200、下+50再加一颗；修改人：Augment Agent；目的：按用户指令“在新增的一颗星星右边200px，下方50px再增一颗”；思路：本行以逗号结尾，随后追加新星坐标(350,165) */
        150px 115px 0 0 rgba(255,255,255,0.85),
        /* 旧行：350px 165px 0 0 rgba(255,255,255,0.85); */
        /* 2025-10-27 09:40 +08:00 新增：在此星星右+100、下+50 再加一颗；修改人：Augment Agent；目的：按用户指令继续扩展；思路：将本行以逗号结尾并追加 450px 215px */
        350px 165px 0 0 rgba(255,255,255,0.85),
        /* 旧行：450px 215px 0 0 rgba(255,255,255,0.85); */
        /* 2025-10-27 09:44 +08:00 调整：上移60px：215px→155px；修改人：Augment Agent；目的：用户要求“往上60px”；思路：仅更新Y坐标-60px */
        /* 旧行：450px 155px 0 0 rgba(255,255,255,0.85); */
        /* 2025-10-27 09:49 +08:00 新增：在此星星右+100、上-150 再加一颗；修改人：Augment Agent；目的：按用户“在新增的星星往右100px，往上150px再加一颗”指令；思路：基于(450,155)计算新坐标(550,5)，保持亮度一致，仅追加一项 */
        450px 155px 0 0 rgba(255,255,255,0.85),
        /* 旧行：550px 5px 0 0 rgba(255,255,255,0.85); */
        /* 2025-10-27 09:52 +08:00 调整：提升亮度为纯白；修改人：Augment Agent；目的：让这颗更亮；思路：仅调整颜色为 #ffffff，不改坐标与半径 */
        /* 旧行：550px 5px 0 0 #ffffff; */
        /* 2025-10-27 09:56 +08:00 新增：左上角加一颗；修改人：Augment Agent；目的：按用户指令“左上角加一颗星星”；思路：在左上象限追加一项，坐标 (-520, -70)，纯白，更显眼 */
        550px 5px 0 0 #ffffff,
        /* 旧行：-520px -70px 0 0 #ffffff; */
        /* 2025-10-27 10:00 +08:00 新增：相对该左上角星 左移30px、下移200px 再加一颗；修改人：Augment Agent；目的：按用户指令；思路：(-520,-70)→(-550,130)，保持纯白亮度一致 */
        -520px -70px 0 0 #ffffff,
        /* 旧行：-550px 130px 0 0 #ffffff; */
        /* 2025-10-27 10:02 +08:00 调整：提升亮度，叠加轻微光晕；修改人：Augment Agent；目的：让该星更亮；思路：保留基础纯白点，并新增一层同位阴影（2px 模糊 + 1px 扩展，略带透明），仅影响该星 */
        -550px 130px 0 0 #ffffff,
        -550px 130px 2px 1px rgba(255,255,255,0.85);

    animation: titleStars 8s ease-in-out infinite;
}

/* 标题星星动画 */
@keyframes titleStars {
    0% {
        opacity: 0.8;
        transform: scale(1);
    }
    100% {
        opacity: 1;
        transform: scale(1.2);
    }
}

/* 星空动画 */
@keyframes starfield {
    0% { transform: translateY(0); }
    100% { transform: translateY(-200px); }
}

/* 2025-10-19 修改：应用场景标题区域恢复简洁样式；修改人：Augment Agent；目标：移除星空相关设置；思路：保持基本定位，移除overflow；旧：包含星空背景设置 */
.services-intro {
    text-align: center;
    margin-bottom: 80px;
    position: relative;
    z-index: 2;
}

.services-intro h2 {
    font-family: var(--font-primary);
    font-size: 3.5rem;
    font-weight: 700;
    color: var(--text-light);
    margin-bottom: 1rem;
    letter-spacing: -1px;
}

.services-intro p {
    font-size: 1.3rem;
    color: rgba(255, 255, 255, 0.8);
    max-width: 600px;
    margin: 0 auto;
}

/* 2025-10-19 修改：应用场景网格层级调整；修改人：Augment Agent；目标：确保卡片在星空背景之上；思路：添加相对定位和z-index；旧：无定位 */
.tech-grid {
    display: grid;
    grid-template-columns: 1fr;
    /* 2025-10-28 20:48 +08:00 调整：应用场景模块间距 gap 60px → 100px；修改人：Augment Agent；目的：按指令加大模块间距；思路：仅修改 gap 值，并保留旧行注释便于回退。 */
    /* 旧：gap: 60px; */
    gap: 100px;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* 2025-10-19 修改：tech-card背景改为深蓝渐变；修改人：Augment Agent；目标：使用用户提供的深蓝色渐变；思路：调整背景为深蓝渐变；旧：rgba(255, 255, 255, 0.05) */
.tech-card {
    display: grid;
    grid-template-columns: 400px 1fr;
    gap: 40px;
    align-items: center;
    background: linear-gradient(135deg, rgba(26, 35, 50, 0.8) 0%, rgba(45, 74, 107, 0.6) 100%);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius);
    padding: 40px;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
}

.tech-card:nth-child(even) {
    grid-template-columns: 1fr 400px;
}

.tech-card:nth-child(even) .tech-image {
    order: 2;
}

.tech-card:nth-child(even) .tech-content {
    order: 1;
}

.tech-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.05), transparent);
    transition: left 0.6s;
}

.tech-card:hover::before {
    left: 100%;
}

.tech-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.tech-image {
    width: 100%;
    height: 250px;
    border-radius: var(--border-radius);
    overflow: hidden;
    position: relative;
}

.tech-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition);
}

.tech-card:hover .tech-image img {
    transform: scale(1.05);
}

.tech-image .placeholder-image {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--text-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.placeholder-image.ai-recognition {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.placeholder-image.drone-network {
    background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
}

.placeholder-image.digital-twin-eco {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.placeholder-image.model-3d {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}

.placeholder-image.data-security {
    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
}

.tech-content h3 {
    font-family: var(--font-primary);
    font-size: 1.8rem;
    font-weight: 600;
    margin-bottom: 20px;
    color: var(--text-light);
}

.tech-content p {
    font-size: 1.1rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 1.5rem;
}

.tech-action {
    margin-top: 1.5rem;
}

/* 2025-09-25 12:00:00 +08:00 修改：调整视频布局样式；修改人：AI助手；目标：视频横跨照片和文字下方；思路：修改tech-card布局为三行结构，视频占据底部全宽 */

/* 带视频的技术卡片特殊布局 */
.tech-card-with-video {
    display: grid;
    grid-template-columns: 400px 1fr;
    grid-template-rows: auto auto;
    gap: 40px 40px;
    grid-template-areas:
        "image content"
        "video video";
}

.tech-card-with-video .tech-image {
    grid-area: image;
}

.tech-card-with-video .tech-content {
    grid-area: content;
}

.tech-card-with-video .tech-video {
    grid-area: video;
    margin-top: 0;
    width: 100%;
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    transition: var(--transition);
}

.tech-card-with-video .tech-video:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3);
}

.tech-video video {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--border-radius);
    background: #000;
}

/* 2025-10-05 03:50:00 +08:00 修改：移除视频控件面板的半透明蒙版背景；修改人：Augment Agent；目的：鼠标在视频上时不再出现半透明遮罩感；思路：保留旧规则为注释，覆盖为透明背景；旧规则如下：
.tech-video video::-webkit-media-controls-panel {
    background-color: rgba(0, 0, 0, 0.8);
}
旧规则结束 */
.tech-video video::-webkit-media-controls-panel {
    background-color: rgba(0, 0, 0, 0);
}

/* 确保奇偶行的布局也适用于带视频的卡片 */
.tech-card-with-video:nth-child(even) {
    grid-template-columns: 1fr 400px;
    grid-template-areas:
        "content image"
        "video video";
}

/* 2025-09-25 12:10:00 +08:00 修改：技术卡片按钮样式；修改人：AI助手；目标：美化按钮外观；思路：增加按钮尺寸和视觉效果 */
.tech-action {
    margin-top: 1.5rem;
}

.tech-action .btn {
    padding: 12px 24px;
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0.3px;
}

/* 2025-09-25 12:15:00 +08:00 修改：山思系统按钮特殊样式；修改人：AI助手；目标：增加按钮宽度和自适应；思路：增加内边距，使用自适应宽度 */
.system-btn {
    /* 2025-10-27 04:02 +08:00 切换：将系统按钮底色改为“克莱茵蓝”梯度；修改人：Augment Agent；目的：匹配用户提供的蓝色；思路：替换背景渐变色值为 IKB 近似（#0033CC→#002FA7），保留 !important；旧行如下： */
    /* 旧行：background: linear-gradient(135deg, #3498db, #2980b9) !important; */
    /* 2025-10-27 04:12 +08:00 调整：克莱茵蓝整体变淡；修改人：Augment Agent；目的：按用户反馈“淡一点”；思路：提高亮度与蓝度，保持同色系梯度；旧行如下： */
    /* 旧行：background: linear-gradient(135deg, #0033CC, #002FA7) !important; */
    /* 2025-10-27 04:20 +08:00 回退：按钮底色回到上一个克莱茵蓝梯度；修改人：Augment Agent；目的：按用户指令撤销“淡一点”的调整；思路：恢复为 #0033CC→#002FA7；旧行如下： */
    /* 旧行：background: linear-gradient(135deg, #2F5BFF, #1E4BFF) !important; */
    background: linear-gradient(135deg, #0033CC, #002FA7) !important;
    border: none !important;
    color: white !important;
    padding: 16px 36px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    /* 2025-10-27 04:02 +08:00 调整：阴影色随克莱茵蓝；修改人：Augment Agent；旧行如下： */
    /* 旧行：box-shadow: 0 4px 15px rgba(52, 152, 219, 0.3) !important; */
    /* 2025-10-27 04:12 +08:00 调整：随底色变淡，阴影蓝也变浅；旧行如下： */
    /* 旧行：box-shadow: 0 4px 15px rgba(0, 47, 167, 0.30) !important; */
    /* 2025-10-27 04:20 +08:00 回退：阴影色回到上一个克莱茵蓝；修改人：Augment Agent；旧行如下： */
    /* 旧行：box-shadow: 0 4px 15px rgba(47, 91, 255, 0.30) !important; */
    box-shadow: 0 4px 15px rgba(0, 47, 167, 0.30) !important;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    position: relative !important;
    overflow: hidden !important;
    min-width: auto !important;
    width: auto !important;
    white-space: nowrap !important;
}

.system-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.system-btn:hover::before {
    left: 100%;
}

.system-btn:hover {
    transform: translateY(-2px) !important;
    /* 2025-10-27 04:02 +08:00 调整：Hover 阴影色匹配克莱茵蓝；修改人：Augment Agent；旧行如下： */
    /* 旧行：box-shadow: 0 8px 25px rgba(52, 152, 219, 0.4) !important; */
    /* 2025-10-27 04:12 +08:00 调整：Hover 阴影蓝变浅；旧行如下： */
    /* 旧行：box-shadow: 0 8px 25px rgba(0, 47, 167, 0.45) !important; */
    /* 2025-10-27 04:20 +08:00 回退：Hover 阴影色回到上一个克莱茵蓝；修改人：Augment Agent；旧行如下： */
    /* 旧行：box-shadow: 0 8px 25px rgba(47, 91, 255, 0.45) !important; */
    box-shadow: 0 8px 25px rgba(0, 47, 167, 0.45) !important;
    /* 2025-10-27 04:02 +08:00 切换：Hover 态“克莱茵蓝”梯度；修改人：Augment Agent；思路：使用更亮的蓝(#1C3DFF)→#002FA7以体现悬停反馈；旧行如下： */
    /* 旧行：background: linear-gradient(135deg, #2980b9, #1f5f8b) !important; */
    /* 2025-10-27 04:12 +08:00 调整：Hover 态梯度也变淡；旧行如下： */
    /* 旧行：background: linear-gradient(135deg, #1C3DFF, #002FA7) !important; */
    /* 2025-10-27 04:20 +08:00 回退：Hover 态回到上一个克莱茵蓝梯度；修改人：Augment Agent；旧行如下： */
    /* 旧行：background: linear-gradient(135deg, #4D86FF, #2F5BFF) !important; */
    background: linear-gradient(135deg, #1C3DFF, #002FA7) !important;
}

.system-btn:active {
    transform: translateY(0) !important;
    /* 2025-10-27 04:02 +08:00 调整：Active 阴影色匹配克莱茵蓝；修改人：Augment Agent；旧行如下： */
    /* 旧行：box-shadow: 0 4px 15px rgba(52, 152, 219, 0.3) !important; */
    /* 2025-10-27 04:12 +08:00 调整：Active 阴影蓝变浅；旧行如下： */
    /* 旧行：box-shadow: 0 4px 15px rgba(0, 47, 167, 0.30) !important; */
    /* 2025-10-27 04:20 +08:00 回退：Active 阴影色回到上一个克莱茵蓝；修改人：Augment Agent；旧行如下： */
    /* 旧行：box-shadow: 0 4px 15px rgba(47, 91, 255, 0.30) !important; */
    box-shadow: 0 4px 15px rgba(0, 47, 167, 0.30) !important;
}

.system-btn i {
    font-size: 14px;
    transition: transform 0.3s ease;
}

.system-btn:hover i {
    transform: translateX(2px);
}

/* 2025-10-27 04:32 +08:00 删除：隐藏“色块”相关容器，避免在熊猫卡片下方出现任何色块；修改人：Augment Agent；目的：按用户指令移除色块；思路：对 tech-accent-bars / tech-divider-bars / tech-divider-gridA / tech-divider-gridB 统一强制隐藏，保留结构便于回退。 */
.tech-accent-bars,
.tech-divider-bars,
.tech-divider-gridA,
.tech-divider-gridB {
  display: none !important; /* 仅隐藏不删结构，避免破坏布局；如需彻底移除可再行注释HTML块 */
}

/* 项目案例 */
/* 2025-10-19 修改：项目案例背景改为半透明蓝色；修改人：Augment Agent；目标：将背景图片改为与主站色调一致的半透明蓝色；思路：使用rgba蓝色背景替换图片背景；旧：背景图片project.avif */
/* 2025-10-19 修改：恢复背景图片并使用深蓝渐变遮罩；修改人：Augment Agent；目标：保留山的影子并使用与导航栏一致的深蓝渐变；思路：恢复背景图片，遮罩层使用深蓝渐变；旧：纯色背景 */
.projects-section {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.projects-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('../assets/project.avif') center/cover no-repeat;
    background-attachment: fixed;
}

.projects-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(24, 32, 48, 0.7) 0%, rgba(45, 74, 107, 0.5) 100%);
    z-index: 1;
}

.projects-content {
    position: relative;
    z-index: 2;
    padding: 120px 0;
    text-align: center;
}

.projects-content h2 {
    font-family: var(--font-primary);
    font-size: 4rem;
    font-weight: 700;
    color: var(--accent-color);
    margin-bottom: 80px;
    letter-spacing: -1px;
    text-shadow: 2px 2px 4px var(--shadow-medium);
}

.projects-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px;
    max-width: 1000px; /* 2025-11-06 调整：项目案例容器变窄一点；修改人：Augment Agent；目的：让单卡更窄 */
    margin: 0 auto;
}

.project-item {
    background: rgba(254, 250, 240, 0.15);
    backdrop-filter: blur(15px);
    border: 1px solid var(--accent-color);
    border-radius: var(--border-radius);
    padding: 34px 20px; /* 2025-11-06 二次调整：案例卡片继续缩小约15%；修改人：Augment Agent；目的：进一步降低方框高度 */
    text-align: center;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 25px var(--shadow-light);
}

.project-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(243, 241, 196, 0.2), transparent);
    transition: left 0.8s;
}

.project-item:hover::before {
    left: 100%;
}

.project-item:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: 0 25px 50px var(--shadow-medium);
    border-color: var(--accent-color);
    background: rgba(254, 250, 240, 0.25);
}

/* 2025-10-05 04:02:00 +08:00 回退：撤销“项目案例数字缩小30%”的修改，恢复为先前尺寸；修改人：Augment Agent；原因：用户指令回到上一步；思路：还原宽高/行高为 80px、字号 2.5rem；保留刚才缩小方案为注释以便对比。
缩小方案（已撤销）：
.project-number { width:56px; height:56px; font-size:1.75rem; line-height:56px; }
回退结束 */
.project-number {
    display: inline-block;
    width: 56px; /* 2025-11-06 二次调整：64→56 继续缩小；修改人：Augment Agent */
    height: 56px; /* 同步 */
    background: linear-gradient(135deg, var(--accent-color), var(--background-accent));
    color: var(--primary-color);
    border-radius: 50%;
    font-size: 1.75rem; /* 2.0→1.75 */
    font-weight: 700;
    line-height: 56px; /* 64→56 */
    margin-bottom: 20px; /* 24→20 */
    position: relative;
    z-index: 1;
    box-shadow: 0 10px 20px var(--shadow-medium);
    border: 2px solid var(--accent-color);
}

.project-item h3 {
    font-family: var(--font-primary);
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--accent-color);
    margin-bottom: 20px;
    position: relative;
    z-index: 1;
}

.project-item p {
    font-size: 1.1rem;
    line-height: 1.7;
    color: var(--background-light);
    position: relative;
    z-index: 1;
}

/* 合作伙伴 */
.partners-section {
    padding: 100px 0;
    background-color: var(--background-neutral);
}

.partners-section h3 {
    text-align: center;
    font-family: var(--font-primary);
    font-size: 2.5rem;
    color: var(--text-secondary);
    margin-bottom: 60px;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
}

.partners-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
}

.partner-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    background-color: var(--background-light);
    border-radius: var(--border-radius);
    box-shadow: 0 4px 15px var(--shadow-light);
    transition: var(--transition);
    position: relative;
    overflow: hidden;
    padding: 15px;
}

.partner-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: var(--transition);
    filter: grayscale(20%) opacity(0.8);
}

.partner-logo:hover img {
    filter: grayscale(0%) opacity(1);
    transform: scale(1.05);
}

.partner-logo::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(52, 152, 219, 0.1), transparent);
    transition: left 0.6s;
}

.partner-logo:hover::before {
    left: 100%;
}

.partner-logo:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 8px 25px var(--shadow-medium);
    border: 2px solid rgba(52, 152, 219, 0.3);
}

.logo-placeholder {
    font-weight: 700;
    color: var(--text-secondary);
    font-size: 16px;
    letter-spacing: 1px;
    text-transform: uppercase;
    position: relative;
    z-index: 1;
}

/* 新闻动态 */
.news-section {
    padding: 120px 0;
    background-color: var(--background-light);
}

.news-header {
    text-align: center;
    margin-bottom: 80px;
}

.news-header h2 {
    font-family: var(--font-primary);
    font-size: 3.5rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 1rem;
    letter-spacing: -1px;
}

.news-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 900px;
    margin: 0 auto;
}

.news-item {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 30px;
    background: var(--background-light);
    border: 2px solid transparent;
    border-radius: var(--border-radius);
    padding: 30px;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
}

.news-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(52, 152, 219, 0.05), transparent);
    transition: left 0.6s;
}

.news-item:hover::before {
    left: 100%;
}

.news-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px var(--shadow-medium);
    border-color: rgba(52, 152, 219, 0.2);
}

.news-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: var(--text-light);
    border-radius: var(--border-radius);
    padding: 20px;
    text-align: center;
    position: relative;
    z-index: 1;
}

.news-date .month {
    font-size: 2rem;
    font-weight: 700;
    font-family: var(--font-primary);
    line-height: 1;
}

.news-date .year {
    font-size: 0.9rem;
    opacity: 0.8;
    margin-top: 5px;
}

.news-content {
    position: relative;
    z-index: 1;
}

.news-content h3 {
    font-family: var(--font-primary);
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 15px;
    line-height: 1.4;
}

.news-content p {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--text-secondary);
}

.news-footer {
    text-align: center;
    margin-top: 60px;
}

.btn-outline {
    background: transparent;
    color: var(--primary-color);
    border: 2px solid var(--primary-color);
    padding: 15px 40px;
    border-radius: var(--border-radius);
    font-weight: 600;
    text-decoration: none;
    transition: var(--transition);
    display: inline-block;
}

.btn-outline:hover {
    background: var(--primary-color);
    color: var(--accent-color);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px var(--shadow-light);
}

/* Montek.tech 联系部分 */
/* 2025-10-19 修改：联系部分背景改为半透明蓝色；修改人：Augment Agent；目标：将渐变背景改为与主站色调一致的半透明蓝色；思路：使用rgba蓝色背景替换渐变背景；旧：linear-gradient渐变 */
/* 2025-10-19 修改：联系部分背景改为深蓝渐变；修改人：Augment Agent；目标：使用与导航栏一致的深蓝渐变；思路：使用深蓝渐变替换纯色；旧：rgba纯色 */
/* 2025-10-19 修改：取消联系部分蓝色背景；修改人：Augment Agent；目标：恢复原来的渐变背景；思路：恢复原始的background-neutral到background-accent渐变；旧：深蓝渐变 */
.contact-section {
    padding: 120px 0;
    background: linear-gradient(135deg, var(--background-neutral) 0%, var(--background-accent) 100%);
    /* 旧：background: rgba(47, 108, 143, 0.8); */
    /* 旧：background: linear-gradient(135deg, rgba(24, 32, 48, 0.8) 0%, rgba(45, 74, 107, 0.6) 100%); */
}

.contact-header {
    text-align: center;
    margin-bottom: 80px;
}



.contact-header h2 {
    font-family: var(--font-primary);
    font-size: 4rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 1rem;
    letter-spacing: -2px;
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
}

/* 左列：联系信息 */
.contact-info-column {
    display: flex;
    flex-direction: column;
    gap: 50px;
    margin-top: 60px;
}

.contact-details .contact-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 30px;
    font-size: 1.1rem;
    color: var(--text-secondary);
}

.contact-icon {
    font-size: 1.5rem;
    width: 35px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--primary-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-icon i {
    font-size: 1.3rem;
}

.address-info p {
    margin: 0 0 10px 0;
    line-height: 1.6;
}

.address-info strong {
    color: var(--primary-color);
    font-weight: 600;
}

/* 社交媒体链接 */
/* 2025-10-19 修改：社交媒体图标整体往上移50px；修改人：Augment Agent；目标：将社交媒体图标往上移动50px；思路：调整margin-top；旧：margin-top: 20px */
/* 2025-10-19 修改：社交媒体图标再往上移50px；修改人：Augment Agent；目标：将社交媒体图标再往上移动50px；思路：调整margin-top为-80px；旧：margin-top: -30px */
/* 2025-10-19 修改：社交媒体图标往下移10px；修改人：Augment Agent；目标：将社交媒体图标往下移动10px；思路：调整margin-top为-70px；旧：margin-top: -80px */
/* 2025-10-19 修改：社交媒体与地址间距设为30px；修改人：Augment Agent；目标：让社交媒体与地址之间的行距为30px；思路：调整margin-top为30px；旧：margin-top: -70px */
/* 2025-10-19 修改：修正社交媒体间距计算错误；修改人：Augment Agent；目标：真正实现30px间距；思路：地址margin-bottom 30px + 社交媒体margin-top 0px = 30px；旧：margin-top: 30px导致60px */
/* 2025-10-19 修改：减少社交媒体与地址的视觉间距；修改人：Augment Agent；目标：将视觉间距减少到真正的30px；思路：使用负margin抵消部分间距；旧：margin-top: 0px */
/* 2025-10-19 修改：社交媒体标题往上移20px；修改人：Augment Agent；目标：将社交媒体标题往上移动20px；思路：调整margin-top为-40px；旧：margin-top: -20px */
/* 2025-10-19 修改：社交媒体标题往上4px往右2px；修改人：Augment Agent；目标：将社交媒体标题往上移4px往右移2px；思路：调整margin-top为-44px；旧：margin-top: -40px */
/* 2025-10-19 修改：社交媒体标题往上5px；修改人：Augment Agent；目标：将社交媒体标题往上移5px；思路：调整margin-top为-49px；旧：margin-top: -44px */
/* 2025-10-19 修改：社交媒体标题往上3px；修改人：Augment Agent；目标：将社交媒体标题往上移3px；思路：调整margin-top为-52px；旧：margin-top: -49px */
.social-media {
    margin-top: -52px;
}

/* 2025-10-19 修改：添加社交媒体山思logo样式；修改人：Augment Agent；目标：在社交媒体标题前添加山思logo.jpg；思路：使用flexbox布局，确保使用正确的assets/山思logo.jpg文件；旧：无山思logo */
/* 2025-10-19 修改：调整社交媒体header对齐；修改人：Augment Agent；目标：让山思logo与联系信息图标对齐，文字与联系信息文字对齐；思路：使用与contact-item相同的gap(20px)和对齐方式；旧：gap: 10px, margin-left: 57px */
/* 2025-10-19 修改：微调社交媒体header位置；修改人：Augment Agent；目标：将山思logo和社交媒体文字都往右移2px；思路：调整margin-left为2px；旧：margin-left: 0px */
/* 2025-10-19 修改：再次微调社交媒体header位置；修改人：Augment Agent；目标：将山思logo和社交媒体文字再往右移3px；思路：调整margin-left为5px；旧：margin-left: 2px */
/* 2025-10-19 修改：继续微调社交媒体header位置；修改人：Augment Agent；目标：将山思logo和社交媒体文字再往右移2px；思路：调整margin-left为7px；旧：margin-left: 5px */
.social-media-header {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-left: 7px;
    margin-bottom: 10px;
}

.social-shansi-logo {
    height: 24px;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}

/* 2025-10-19 修改：添加社交媒体标题样式；修改人：Augment Agent；目标：为"社交媒体"标题添加样式；思路：与联系信息保持一致的样式；旧：无标题样式 */
/* 2025-10-19 修改：社交媒体标题字体大小与地址保持一致；修改人：Augment Agent；目标：使用与联系信息相同的字体大小；思路：改为1.1rem与contact-item一致；旧：0.9rem */
/* 2025-10-19 修改：社交媒体标题与地址文字对齐；修改人：Augment Agent；目标：让"社交媒体"与"北京市"对齐；思路：添加左边距与图标宽度+gap一致；旧：无左边距 */
/* 2025-10-19 修改：社交媒体标题再往右移10px；修改人：Augment Agent；目标：将"社交媒体"标题再往右移动10px；思路：调整margin-left为43px；旧：margin-left: 33px */
/* 2025-10-19 修改：社交媒体标题再往右移10px；修改人：Augment Agent；目标：将"社交媒体"标题再往右移动10px；思路：调整margin-left为53px；旧：margin-left: 43px */
/* 2025-10-19 修改：社交媒体标题往右2px；修改人：Augment Agent；目标：将"社交媒体"标题往右移动2px；思路：调整margin-left为55px；旧：margin-left: 53px */
/* 2025-10-19 修改：社交媒体标题往右2px；修改人：Augment Agent；目标：将"社交媒体"标题往右移动2px；思路：调整margin-left为57px；旧：margin-left: 55px */
/* 2025-10-19 修改：调整社交媒体标题样式适配新的header结构；修改人：Augment Agent；目标：移除margin设置，由header容器控制位置；思路：简化样式，避免重复设置；旧：有margin设置 */
/* 2025-10-19 修改：单独调整社交媒体标题位置；修改人：Augment Agent；目标：将"社交媒体"四个字往右移2px往上移2px；思路：使用transform调整位置；旧：无独立位置调整 */
/* 2025-10-19 修改：社交媒体标题再往右移2px；修改人：Augment Agent；目标：将"社交媒体"四个字再往右移2px；思路：调整transform为translate(4px, -2px)；旧：translate(2px, -2px) */
.social-media-title {
    color: var(--text-secondary);
    font-size: 1.1rem;
    font-weight: 600;
    font-family: var(--font-primary);
    transform: translate(4px, -2px);
}

/* 2025-10-19 修改：调整社交媒体图标位置；修改人：Augment Agent；目标：将四个社交媒体图标整体往右移30px；思路：添加margin-left调整位置；旧：无位置调整 */
/* 2025-10-19 修改：微调社交媒体图标位置；修改人：Augment Agent；目标：将四个社交媒体图标再往右移5px往下移4px；思路：调整margin为35px和4px；旧：margin-left: 30px */
/* 2025-10-19 修改：继续微调社交媒体图标位置；修改人：Augment Agent；目标：将四个社交媒体图标再往下移5px往右移3px；思路：调整margin为38px和9px；旧：margin-left: 35px, margin-top: 4px */
/* 2025-10-19 修改：再次微调社交媒体图标位置；修改人：Augment Agent；目标：将四个社交媒体图标再往右移2px往下移5px；思路：调整margin为40px和14px；旧：margin-left: 38px, margin-top: 9px */
/* 2025-10-19 修改：最后微调社交媒体图标位置；修改人：Augment Agent；目标：将四个社交媒体图标再往右移2px往下移4px；思路：调整margin为42px和18px；旧：margin-left: 40px, margin-top: 14px */
/* 2025-10-19 修改：社交媒体图标往下移5px；修改人：Augment Agent；目标：将四个社交媒体图标往下移5px；思路：调整margin-top为23px；旧：margin-top: 18px */
.social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-left: 42px;
    margin-top: 23px;
}

.social-link {
    display: inline-block;
    padding: 12px 24px;
    background: var(--background-light);
    color: var(--text-secondary);
    text-decoration: none;
    border-radius: var(--border-radius);
    font-weight: 600;
    transition: var(--transition);
    border: 2px solid transparent;
}

.social-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px var(--shadow-medium);
}

.social-link.facebook:hover {
    background: #1877f2;
    color: white;
    border-color: #1877f2;
}

.social-link.instagram:hover {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    color: white;
}

.social-link.twitter:hover {
    background: #000000;
    color: white;
    border-color: #000000;
}

.social-link.tiktok:hover {
    background: #000000;
    color: white;
    border-color: #000000;
}

/* 2025-10-19 修改：添加中国社交媒体样式；修改人：Augment Agent；目标：为微信、微博、B站、小红书、抖音添加专属样式；思路：使用品牌色和图标样式；旧：无中国社交媒体样式 */
.social-link.wechat:hover {
    background: #07c160;
    color: white;
    border-color: #07c160;
}

.social-link.weibo:hover {
    background: #e6162d;
    color: white;
    border-color: #e6162d;
}

.social-link.bilibili:hover {
    background: #00a1d6;
    color: white;
    border-color: #00a1d6;
}

.social-link.xiaohongshu:hover {
    background: #ff2442;
    color: white;
    border-color: #ff2442;
}

/* 2025-10-19 修改：抖音悬停效果改为抖音品牌色；修改人：Augment Agent；目标：使用抖音的青色品牌色；思路：改为青色渐变效果；旧：黑色 */
.social-link.douyin:hover {
    background: linear-gradient(45deg, #25f4ee 0%, #fe2c55 100%);
    color: white;
    border-color: #25f4ee;
}

/* 中国社交媒体图标样式 */
/* 2025-10-19 修改：小红书logo改为完整文字；修改人：Augment Agent；目标：使用"小红书"三个字作为logo；思路：调整字体大小适应完整文字；旧：单字"小" */
/* 2025-10-19 修改：抖音logo改为音符符号；修改人：Augment Agent；目标：使用音符符号代表抖音；思路：使用♪符号并调整样式；旧：文字"抖" */
.bilibili-icon {
    font-weight: bold;
    font-size: 1.1rem;
    font-family: var(--font-primary);
}

/* 2025-10-19 修改：抖音logo改为d字母；修改人：Augment Agent；目标：使用用户提供的d字母logo；思路：使用d字母并调整样式；旧：音符符号 */
.douyin-icon {
    font-weight: bold;
    font-size: 1.4rem;
    font-family: Arial, sans-serif;
    font-style: italic;
}

.xiaohongshu-icon {
    font-weight: bold;
    font-size: 0.8rem;
    font-family: var(--font-primary);
    white-space: nowrap;
}

/* 右列：联系表单 */
.contact-form-column {
    background: var(--background-light);
    border-radius: var(--border-radius);
    padding: 50px;
    box-shadow: 0 10px 30px var(--shadow-light);
}

.form-wrapper h3 {
    font-family: var(--font-primary);
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 40px;
    text-align: center;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.form-group {
    display: flex;
    flex-direction: column;
}

.form-group input,
.form-group textarea {
    padding: 15px 20px;
    border: 2px solid #e9ecef;
    border-radius: var(--border-radius);
    font-size: 1rem;
    font-family: var(--font-secondary);
    background-color: var(--background-light);
    color: var(--text-secondary);
    transition: var(--transition);
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(64, 63, 43, 0.1);
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: #adb5bd;
    font-style: italic;
}

.contact-form .btn {
    align-self: center;
    padding: 18px 50px;
    font-size: 1.1rem;
    font-weight: 600;
    margin-top: 20px;
}



/* 网站底部 */
.site-footer {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: var(--text-light);
    padding: 80px 0 30px;
}

.footer-content {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 60px;
    margin-bottom: 50px;
}

.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.footer-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.footer-logo .logo-icon {
    font-size: 32px;
}

.footer-logo .logo-text {
    font-family: var(--font-primary);
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 1px;
}

.footer-brand p {
    font-size: 1.2rem;
    opacity: 0.9;
    font-style: italic;
}

.social-links {
    display: flex;
    gap: 15px;
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    text-decoration: none;
    font-size: 1.3rem;
    transition: var(--transition);
}

.social-link:hover {
    background: var(--accent-color);
    transform: translateY(-3px);
}

.footer-links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.footer-column h4 {
    font-family: var(--font-primary);
    font-size: 1.3rem;
    margin-bottom: 20px;
    color: var(--text-light);
}

.footer-column ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-column ul li {
    margin-bottom: 12px;
}

.footer-column a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: var(--transition);
    font-size: 15px;
}

.footer-column a:hover {
    color: var(--accent-color);
    padding-left: 5px;
}

.footer-bottom {
    text-align: center;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 14px;
    opacity: 0.8;
}

/* 超大屏幕优化 */
@media (min-width: 1600px) {
    .page-wrapper {
        box-shadow: 0 0 80px var(--shadow-medium);

    /* 2025-10-02 00:18:00 +08:00 回退：撤销超大屏 about-intro h2 强制 3.5rem；修改人：Augment Agent
       旧：.about-intro h2 { font-size: 3.5rem; } */

    }

    .container {
        max-width: var(--container-max-width-large);
    }

    /* 增大字体和间距 */
    .hero-title {
        /* 旧行保留：font-size: 5rem; */
        /* 2025-10-01 21:02:00 +08:00 修改：大屏断点标题缩小至 50%；修改人：Augment Agent */
        /* 旧行保留：font-size: 2.5rem; */
        /* 2025-10-01 21:10:00 +08:00 修改：大屏断点标题调整为原始 70%；修改人：Augment Agent */
        /* 旧行保留：font-size: 3.5rem; */
        /* 2025-10-01 21:42:00 +08:00 修改：大屏断点字号下调 10%；修改人：Augment Agent */
        /* 旧行保留：font-size: 3.15rem; */
        /* 2025-10-01 21:46:00 +08:00 回退：大屏断点标题字号恢复到 70%；修改人：Augment Agent */
        /* 旧行保留：font-size: 3.5rem; */
        /* 2025-10-31 22:10 +08:00 修改：统一断点字号为 50px；修改人：Augment Agent */
        font-size: 50px;
    }

    .hero-subtitle {
        font-size: 1.5rem;
    }

    .contact-header h2 {
        font-size: 5rem;
    }

    .news-header h2 {
        font-size: 4rem;
    }
}

/* 新闻弹窗样式 */
.news-modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(5px);
}

.news-modal-content {
    background-color: #fefaf0;
    margin: 5% auto;
    padding: 0;
    border-radius: 12px;
    width: 90%;
    max-width: 800px;
    max-height: 80vh;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(67, 66, 46, 0.3);
    animation: modalSlideIn 0.3s ease-out;
}

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.news-modal-header {
    padding: 24px 32px;
    border-bottom: 2px solid #f3f1c4;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(135deg, #403f2b 0%, #43422e 100%);
    color: #fefaf0;
}

.news-modal-header h2 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
}

.news-modal-close {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #fefaf0;
    padding: 4px;
    border-radius: 4px;
    transition: background-color 0.2s;
}

.news-modal-close:hover {
    background-color: rgba(254, 250, 240, 0.15);
}

.news-modal-body {
    padding: 32px;
    max-height: 60vh;
    overflow-y: auto;
    background-color: #f7f7f5;
}

.news-modal-grid {
    display: grid;
    gap: 24px;
}

.news-modal-item {
    padding: 24px;
    border: 1px solid #f3f1c4;
    border-radius: 8px;
    transition: all 0.3s ease;
    background: #fefaf0;
}

.news-modal-item:hover {
    box-shadow: 0 4px 12px rgba(67, 66, 46, 0.15);
    transform: translateY(-2px);
    border-color: #f5f3cd;
}

.news-modal-item-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

.news-modal-date {
    background: linear-gradient(135deg, #403f2b 0%, #43422e 100%);
    color: #fefaf0;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    white-space: nowrap;
}

.news-modal-item h3 {
    margin: 0 0 12px 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: #403f2b;
    line-height: 1.4;
}

.news-modal-item p {
    margin: 0;
    color: #c4c1b4;
    line-height: 1.6;
}

/* 修复英文&符号字体 - 全局设置 */
* {
    font-variant-ligatures: none;
}

/* 强制所有文本使用标准字体，避免装饰性&符号 */
body, h1, h2, h3, h4, h5, h6, p, span, div {
    font-feature-settings: "liga" 0, "dlig" 0;
}

/* 新闻弹窗响应式设计 */
@media (max-width: 768px) {
    .news-modal-content {
        margin: 10% auto;
        width: 95%;
        max-height: 85vh;
    }

    .news-modal-header {
        padding: 20px 24px;
    }

    .news-modal-header h2 {
        font-size: 1.25rem;
    }

    .news-modal-body {
        padding: 24px 20px;
    }

    .news-modal-item {
        padding: 20px;
    }

    .news-modal-item-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .news-modal-item h3 {
        font-size: 1.125rem;
    }
}

/* AI物种识别引擎详细页面样式 */
/* 2025-10-19 修改：感知模块二级页面背景色改为墨绿色；修改人：Augment Agent；目标：将感知模块详情页背景改为墨绿色；思路：使用深墨绿色替换原背景色；旧：var(--background-dark) */
/* 2025-10-19 修改：去掉上padding让视频与导航对齐；修改人：Augment Agent；目标：视频上边缘与导航栏下边线对齐，不留边框；思路：去掉上padding；旧：padding: 120px 0 80px */
.tech-detail-section {
    min-height: 100vh;
    position: relative;
    padding: 0 0 80px;
    background: #2d4a3a;
}

/* 2025-10-19 新增：AI模块专用渐变蓝色背景；修改人：Augment Agent；目标：为AI智能模块设置深蓝渐变背景；思路：参考附件颜色，只针对AI模块页面；旧：无专用背景 */
/* 2025-10-19 修改：调整AI模块蓝色亮度；修改人：Augment Agent；目标：按照新色卡调整为更明亮的蓝色；思路：使用更亮的蓝色渐变；旧：较深的蓝色渐变 */
/* 2025-10-19 修改：加深AI模块蓝色；修改人：Augment Agent；目标：加深蓝色背景使其更好看；思路：使用更深的蓝色渐变；旧：较浅的蓝色渐变 */
body:has(.ai-hero-video) .tech-detail-section {
    /* 2025-10-23 21:00 +08:00 修改：进一步加深AI模块蓝色；修改人：Augment Agent；目标：根据最新色卡继续加深整体深度与纯度，提升质感与沉浸感；旧值：background: linear-gradient(180deg, #0f1a3a 0%, #1a2d5a 50%, #2d4a7b 100%); */
    background: linear-gradient(180deg, #070c1a 0%, #0e1a3b 50%, #1a2f66 100%); /* 更深海军蓝渐变 */
}

/* 2025-10-23 21:50 +08:00 新增：感知模块专用“墨绿偏蓝”渐变背景；修改人：Augment Agent；
   目标：仅在感知模块二级页使用偏蓝墨绿色背景，不影响其他页面；
   思路：使用页面特征选择器 body:has(.perception-hero-video) 增加更高特异性规则覆盖 .tech-detail-section 默认背景；
   旧值保留：.tech-detail-section { background: #2d4a3a; } */
body:has(.perception-hero-video) .tech-detail-section {
    /* 2025-10-23 21:50 +08:00 新增：墨绿偏蓝 180° 渐变；从更深到略亮，增强层次感 */
    background: linear-gradient(180deg, #0b2324 0%, #123a43 50%, #1b4e59 100%);
}

/* 2025-10-24 10:28 +08:00 新增：数字底座模块专用“宇宙蓝星空渐变（上深下浅）”背景；修改人：Augment Agent；
   目标：仅在数字底座二级页面使用深邃宇宙蓝→星空蓝上深下浅渐变；不影响其他页面；
   思路：使用页面特征选择器 body:has(.digital-hero-video) 覆盖 .tech-detail-section 默认背景；与AI/感知页的专用规则并列；
   旧值保留：.tech-detail-section { background: #2d4a3a; } */
body:has(.digital-hero-video) .tech-detail-section {
    /* 顶部更深的宇宙蓝 → 中部海军蓝 → 底部略浅的星空蓝 */
    background: linear-gradient(180deg, #050a1a 0%, #0d1b3a 50%, #2a4f82 100%);
}



/* 2025-10-19 修改：感知模块背景改为视频背景；修改人：Augment Agent；目标：使用瀑布.mp4作为页面头图背景；思路：替换静态背景为视频背景；旧：墨绿色渐变背景 */
.tech-detail-video-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    z-index: 0;
}

.background-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
}

/* 2025-10-19 修改：调整覆盖层透明度以显示视频背景；修改人：Augment Agent；目标：让视频背景更清晰可见；思路：降低覆盖层透明度；旧：rgba(0, 0, 0, 0.3) */
.tech-detail-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
}

/* 2025-10-19 修改：调整内容层级确保在视频之上；修改人：Augment Agent；目标：确保内容显示在视频背景之上；思路：提高z-index层级；旧：z-index: 2 */
/* 2025-10-19 修改：感知模块文字往下移500px；修改人：Augment Agent；目标：将感知模块文字内容往下移500px；思路：增加margin-top；旧：margin: 0 auto */
/* 2025-10-19 修改：再往下移50px；修改人：Augment Agent；目标：将感知模块文字内容再往下移50px；思路：500px + 50px = 550px；旧：500px auto 0 */
/* 2025-10-19 修改：文字再往下移30px；修改人：Augment Agent；目标：将感知模块文字内容再往下移30px；思路：550px + 30px = 580px；旧：550px auto 0 */
/* 2025-10-19 修改：去掉背景视频后恢复正常margin；修改人：Augment Agent；目标：去掉背景视频后恢复正常的内容位置；思路：恢复正常margin；旧：580px auto 0 */
.tech-detail-content {
    position: relative;
    z-index: 10;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
}

/* 返回按钮 */
.back-navigation {
    margin-bottom: 40px;
}

.back-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--accent-color);
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition);
    padding: 10px 20px;
    border-radius: 25px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
}

.back-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateX(-5px);
}

/* 页面标题 */
.tech-detail-header {
    text-align: center;
    margin-bottom: 80px;
}

.tech-detail-header h1 {
    font-family: var(--font-primary);
    font-size: 4rem;
    font-weight: 700;
    color: var(--text-light);
    margin-bottom: 20px;
    letter-spacing: -1px;
}

.tech-detail-header p {
    font-size: 1.3rem;
    color: rgba(255, 255, 255, 0.8);
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.6;
}

/* 2025-10-19 新增：感知模块头图视频样式；修改人：Augment Agent；目标：为瀑布高清.mp4头图视频添加样式；思路：创建头图视频容器样式 */
/* 2025-10-19 修改：调整头图视频位置；修改人：Augment Agent；目标：将视频作为页面头图，调整边距；思路：减少上边距，增加下边距；旧：margin: 60px 0 80px */
/* 2025-10-19 修改：头图视频左右顶满页面；修改人：Augment Agent；目标：视频左右顶满页面，真正的头图样式；思路：去掉padding和margin限制；旧：padding: 0 20px */
/* 2025-10-19 修改：按照首页头图比例设置；修改人：Augment Agent；目标：完全按照首页头图设置，上边缘与导航对齐；思路：参考首页hero-section设置；旧：margin: 0 0 100px */
.perception-hero-video {
    position: relative;
    height: 100vh;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.hero-video-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
}

.perception-hero-video .hero-video {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100%;
    height: 115%;
    object-fit: cover;
    object-position: 50% 25%;
    z-index: 0;
    display: block;
}

/* 2025-10-19 新增：AI智能模块头图视频样式；修改人：Augment Agent；目标：为水.mp4头图视频添加样式；思路：完全按照感知模块标准设置 */
.ai-hero-video {
    position: relative;
    height: 100vh;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.ai-hero-video .hero-video {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100%;
    height: 115%;
    object-fit: cover;
    object-position: 50% 25%;
    z-index: 0;
    display: block;
}

/* 2025-10-19 新增：数字底座模块头图视频样式；修改人：Augment Agent；目标：为树.mp4头图视频添加样式；思路：完全按照感知模块和AI模块标准设置 */
.digital-hero-video {
    position: relative;
    height: 100vh;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.digital-hero-video .hero-video {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100%;
    height: 115%;
    object-fit: cover;
    object-position: 50% 25%;
    z-index: 0;
    display: block;
}

/* 2025-10-19 修复：去掉所有头图视频页面main的上边距；修改人：Augment Agent；目标：让头图视频与导航栏完全对齐，去掉黑色空隙；思路：为所有头图视频页面覆盖main的margin-top */
body:has(.perception-hero-video) main,
body:has(.ai-hero-video) main,
body:has(.digital-hero-video) main {
    margin-top: 0 !important;
}

/* 2025-10-19 新增：AI智能模块文字下移30px；修改人：Augment Agent；目标：将AI智能模块的文字内容整体往下移30px；思路：为AI模块的tech-detail-content添加上边距 */
/* 2025-10-19 新增：感知模块文字下移30px；修改人：Augment Agent；目标：将感知模块的文字内容整体往下移30px；思路：为感知模块的tech-detail-content添加上边距 */
/* 2025-10-19 新增：数字底座模块文字下移30px；修改人：Augment Agent；目标：将数字底座模块的文字内容整体往下移30px；思路：为数字底座模块的tech-detail-content添加上边距 */
body:has(.ai-hero-video) .tech-detail-content,
body:has(.perception-hero-video) .tech-detail-content,
body:has(.digital-hero-video) .tech-detail-content {
    margin-top: 30px;
}

/* 技术概览 */
.tech-overview {
    margin-bottom: 80px;
}

/* 2025-10-19 修改：将感知模块卡片改为上下排列；修改人：Augment Agent；目标：将两个卡片从左右排列改为上下排列；思路：将grid-template-columns改为1fr单列布局；旧：repeat(auto-fit, minmax(300px, 1fr)) */
.overview-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
}

/* 2025-10-19 修改：恢复overview-item原始样式；修改人：Augment Agent；目标：按照首页方式使用独立视频容器，恢复卡片原始样式；思路：删除为卡片内视频添加的样式修改；旧：为卡片内视频修改的复杂样式 */
.overview-item {
    text-align: center;
    padding: 40px 30px;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius);
    transition: var(--transition);
}

.overview-item:hover {
    transform: translateY(-10px);
    background: rgba(255, 255, 255, 0.1);
}

.overview-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    background: var(--accent-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--primary-color);
}

/* 2025-10-19 修改：添加无人机图标样式；修改人：Augment Agent；目标：为无人机示意图标添加合适的尺寸和样式；思路：设置图片大小适配圆形容器；旧：无无人机图标样式 */
/* 2025-10-19 修改：修正无人机图标背景色问题；修改人：Augment Agent；目标：去除无人机图标的白色背景，与底色保持一致；思路：使用mix-blend-mode和filter去除白色背景；旧：有白色背景 */
/* 2025-10-19 修改：修复无人机图标消失问题；修改人：Augment Agent；目标：恢复无人机图标显示；思路：移除过度的滤镜效果，只保留基本样式；旧：mix-blend-mode导致图标消失 */
/* 2025-10-19 修改：分离无人机图标和背景色；修改人：Augment Agent；目标：无人机图标显示深色，圆形背景保持浅色；思路：使用filter让图标变深色，背景保持原色；旧：图标背景混合 */
/* 2025-10-19 修改：取消无人机图标样式；修改人：Augment Agent；目标：由于无人机图标背景色问题无法解决，删除相关样式；思路：删除drone-icon样式；旧：有无人机图标样式 */

/* 2025-10-19 修改：添加卡片视频样式；修改人：Augment Agent；目标：为感知模块卡片添加起飞.mp4视频；思路：设置视频位置和样式；旧：无卡片视频 */
/* 2025-10-19 修改：将卡片视频移到文字下方；修改人：Augment Agent；目标：视频不与文字重叠，移到文字下方800px；思路：调整top位置为800px；旧：top: 0覆盖整个卡片 */
/* 2025-10-19 修改：调整视频展现尺寸；修改人：Augment Agent；目标：调整视频的展现宽度和高度比例；思路：恢复正常宽度，增加高度2倍；旧：width: 200%放大视频 */
.card-video {
    position: absolute;
    top: 800px;
    left: 0;
    width: 100%;
    height: 400px;
    object-fit: cover;
    z-index: 1;
    opacity: 1;
}

.overview-item h3 {
    font-family: var(--font-primary);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text-light);
    margin-bottom: 15px;
}

.overview-item p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
}

/* 技术特性 */
.tech-features {
    margin-bottom: 80px;
}

.tech-features h2 {
    font-family: var(--font-primary);
    font-size: 3rem;
    font-weight: 700;
    color: var(--text-light);
    text-align: center;
    margin-bottom: 60px;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
}

/* 2025-10-19 修改：feature-card背景改为深蓝渐变；修改人：Augment Agent；目标：使用用户提供的深蓝色渐变；思路：调整背景为深蓝渐变；旧：rgba(255, 255, 255, 0.05) */
.feature-card {
    padding: 30px;
    background: linear-gradient(135deg, rgba(26, 35, 50, 0.7) 0%, rgba(45, 74, 107, 0.5) 100%);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius);
    transition: var(--transition);
}

/* 2025-10-19 修改：feature-card悬停背景改为深蓝渐变；修改人：Augment Agent；目标：悬停时使用更亮的深蓝色渐变；思路：调整悬停背景；旧：rgba(255, 255, 255, 0.1) */
.feature-card:hover {
    transform: translateY(-5px);
    background: linear-gradient(135deg, rgba(26, 35, 50, 0.9) 0%, rgba(45, 74, 107, 0.7) 100%);
}

.feature-card h3 {
    font-family: var(--font-primary);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--accent-color);
    margin-bottom: 15px;
}

.feature-card p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
}

/* 纵向特性布局 */
.features-vertical {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 40px;
    padding: 40px;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius);
    transition: var(--transition);
}

.feature-item:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.1);
}

.feature-content {
    flex: 1;
}

.feature-content h3 {
    font-family: var(--font-primary);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--accent-color);
    margin-bottom: 20px;
}

.feature-content p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
    font-size: 1.1rem;
}

.feature-image {
    flex: 0 0 600px;
    height: 300px;
    border-radius: var(--border-radius);
    overflow: hidden;
    background: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
}

.feature-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: var(--border-radius);
}

/* 竖向图片特殊样式 */
.feature-image-vertical {
    flex: 0 0 600px;
    height: 300px;
    border-radius: var(--border-radius);
    overflow: hidden;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
}

.feature-image-vertical img {
    width: auto;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
}

/* 应用场景 */
.tech-applications {
    margin-bottom: 80px;
}

.tech-applications h2 {
    font-family: var(--font-primary);
    font-size: 3rem;
    font-weight: 700;
    color: var(--text-light);
    text-align: center;
    margin-bottom: 60px;
}

.applications-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.application-item {
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 30px;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius);
    transition: var(--transition);
}

.application-item:hover {
    transform: translateX(10px);
    background: rgba(255, 255, 255, 0.1);
}

.application-icon {
    width: 60px;
    height: 60px;
    background: var(--accent-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--primary-color);
    flex-shrink: 0;
}

.application-content h3 {
    font-family: var(--font-primary);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--text-light);
    margin-bottom: 10px;
}

.application-content p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
}

/* 技术优势 */
.tech-advantages {
    margin-bottom: 80px;
}

.tech-advantages h2 {
    font-family: var(--font-primary);
    font-size: 3rem;
    font-weight: 700;
    color: var(--text-light);
    text-align: center;
    margin-bottom: 60px;
}

.advantages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 40px;
}

.advantage-item {
    text-align: center;
    padding: 40px 30px;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius);
    transition: var(--transition);
}

.advantage-item:hover {
    transform: translateY(-10px);
    background: rgba(255, 255, 255, 0.1);
}

.advantage-number {
    font-family: var(--font-primary);
    font-size: 3rem;
    font-weight: 700;
    color: var(--accent-color);
    margin-bottom: 15px;
}

.advantage-item h3 {
    font-family: var(--font-primary);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--text-light);
    margin-bottom: 10px;
}

.advantage-item p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
}

/* 联系我们 */
.tech-contact {
    margin-bottom: 40px;
}

.contact-card {
    text-align: center;
    padding: 60px 40px;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius);
    max-width: 600px;
    margin: 0 auto;
}

.contact-card h2 {
    font-family: var(--font-primary);
    font-size: 2rem;
    font-weight: 600;
    color: var(--text-light);
    margin-bottom: 20px;
}

.contact-card p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
    margin-bottom: 30px;
}

/* 详细页面响应式设计 */
@media (max-width: 768px) {
    .tech-detail-header h1 {
        font-size: 2.5rem;
    }

    .tech-detail-header p {
        font-size: 1.1rem;
    }

    .overview-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .features-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    /* 纵向特性布局的移动端适配 */
    .feature-item {
        flex-direction: column;
        gap: 20px;
        padding: 30px 20px;
    }

    .feature-image {
        flex: none;
        width: 100%;
        height: calc(100vw / 2);
        max-height: 200px;
    }

    .feature-image-vertical {
        flex: none;
        width: 100%;
        height: calc(100vw / 2);
        max-height: 200px;
        background: transparent;
    }

    .application-item {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }

    .advantages-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .tech-features h2,
    .tech-applications h2,
    .tech-advantages h2 {
        font-size: 2rem;
    }
}

/* 响应式设计 */
@media (max-width: 1200px) {
    .container {
        padding: 0 20px;
    }

    .tech-showcase {
        grid-template-columns: repeat(3, 1fr);
        gap: 25px;
    }

    .tech-card {
        grid-template-columns: 1fr;
        gap: 20px;
        text-align: center;
    }

    .tech-card:nth-child(even) {
        grid-template-columns: 1fr;
    }

    .tech-card:nth-child(even) .tech-image,
    .tech-card:nth-child(even) .tech-content {
        order: unset;
    }

    .tech-image {
        height: 200px;
    }

    /* 2025-09-25 11:50:00 +08:00 新增：移动端视频样式；修改人：AI助手；目标：确保视频在移动端正常显示；思路：调整视频容器边距和阴影 */
    .tech-video {
        margin-top: 1rem;
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    }

    .projects-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .projects-content h2 {
        font-size: 2.5rem;
    }

    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(4, 1fr);
        gap: 30px;
    }

    .partners-section h3 {
        font-size: 2rem;
    }

    .news-item {
        grid-template-columns: 120px 1fr;
        gap: 20px;
        padding: 25px;
    }

    .news-header h2 {
        font-size: 2.5rem;
    }
}

@media (max-width: 768px) {
    .navbar .container {
        padding: 0 30px; /* 移动端减少左右内边距 */
    }

    .nav-right {
        gap: 20px;
    }

    .nav-menu {
        display: none;
    }

    .nav-toggle {
        display: flex;
    }

    .logo-image {
        height: 32px;
    }

    .logo-text {
        font-size: 20px;
        line-height: 1.2;
    }

    .lang-btn {
        padding: 6px 12px;
        font-size: 12px;


        min-width: 70px;
    }


    /* 2025-10-02 01:48:00 +08:00 修改：中屏同步“应用场景”标题字号为 1.90rem；修改人：Augment Agent */
    .services-section h2[data-lang="services-title"] {
        /* 旧：font-size: 2.70rem（桌面）； */ font-size: 1.90rem !important;
    }

    /* 2025-10-02 02:00:00 +08:00 修改：中屏同步“项目案例”标题字号为 1.90rem；修改人：Augment Agent */
    .projects-section h2[data-lang="projects-title"] {
        /* 旧：font-size: 2.70rem（桌面）； */ font-size: 1.90rem !important;
    }


    .hero-title {
        /* 旧行保留：font-size: 3rem; */

    /* 2025-10-02 02:00:00 +08:00 修改：中屏同步“项目案例”标题字号为 1.90rem；修改人：Augment Agent */
    .projects-section h2[data-lang="projects-title"] {
        /* 旧：font-size: 2.70rem（桌面）； */ font-size: 1.90rem !important;
    }

        /* 2025-10-01 21:02:00 +08:00 修改：中等断点标题缩小至 50%；修改人：Augment Agent */
        /* 旧行保留：font-size: 1.5rem; */

    /* 2025-10-02 00:55:00 +08:00 修改：中屏同步“三大功能模块”标题字号为 1.90rem；修改人：Augment Agent */
    .about-section h2[data-lang="about-modules-title"] {
        /* 旧：font-size: 2.70rem（桌面）； */ font-size: 1.90rem !important;
    }

        /* 2025-10-01 21:10:00 +08:00 修改：中等断点标题调整为原始 70%；修改人：Augment Agent */
        /* 旧行保留：font-size: 2.1rem; */
        /* 2025-10-01 21:42:00 +08:00 修改：中等断点字号下调 10%；修改人：Augment Agent */
        /* 旧行保留：font-size: 1.89rem; */
        /* 2025-10-01 21:46:00 +08:00 回退：中等断点标题字号恢复到 70%；修改人：Augment Agent */
        /* 旧行保留：font-size: 2.1rem; */
        /* 2025-10-31 22:10 +08:00 修改：统一断点字号为 50px；修改人：Augment Agent */
        font-size: 50px;
    }

    .hero-subtitle {
        font-size: 1.2rem;
    }

    /* 2025-10-02 00:25:00 +08:00 修改：中屏字号下调30%（2.5rem → 1.75rem）；修改人：Augment Agent */
    .about-intro h2 {
        /* 旧：font-size: 1.75rem; */ font-size: 1.90rem;
    }

    .tech-showcase {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .tech-card {
        grid-template-columns: 1fr;
        gap: 20px;
        text-align: center;
    }

    .tech-card:nth-child(even) {
        grid-template-columns: 1fr;
    }

    .tech-card:nth-child(even) .tech-image,
    .tech-card:nth-child(even) .tech-content {
        order: unset;
    }

    /* 2025-09-25 12:00:00 +08:00 新增：带视频卡片的移动端适配；修改人：AI助手；目标：移动端单列布局；思路：重置grid布局为单列，保持视频在底部 */
    .tech-card-with-video {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        gap: 20px;
        grid-template-areas:
            "image"
            "content"
            "video";
        text-align: center;
    }

    .tech-card-with-video:nth-child(even) {
        grid-template-columns: 1fr;
        grid-template-areas:
            "image"
            "content"
            "video";
    }

    .tech-image {
        height: 180px;
    }

    .projects-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .projects-content h2 {
        font-size: 2rem;
    }

    .project-item {
        padding: 32px 20px; /* 2025-11-06 二次调整(移动端)：案例卡片进一步缩小；修改人：Augment Agent */
    }

    .partners-grid {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(8, 1fr);
        gap: 20px;
    }

    .partners-section h3 {
        font-size: 1.8rem;
    }

    .partner-logo {
        height: 100px;
    }

    .news-item {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 20px;
        text-align: center;
    }

    .news-header h2 {
        font-size: 2rem;
    }

    .news-date {
        width: 120px;
        margin: 0 auto;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .contact-header h2 {
        font-size: 2.5rem;
    }



    .form-row {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .contact-form-column {
        padding: 40px 30px;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .contact-header h2 {
        font-size: 2rem;
    }



    .contact-form-column {
        padding: 30px 20px;
    }

    .social-links {
        justify-content: center;
    }

    .services-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .about-contact-grid {


        grid-template-columns: 1fr;
        gap: 50px;
    }

    .about-stats {
        grid-template-columns: 1fr;
        gap: 20px;
    }


    /* 2025-10-02 02:00:00 +08:00 修改：小屏同步“项目案例”标题字号为 1.54rem；修改人：Augment Agent */
    .projects-section h2[data-lang="projects-title"] {
        /* 旧：font-size: 1.90rem（中屏）/ 2.70rem（桌面）； */ font-size: 1.54rem !important;
    }


    /* 2025-10-02 01:48:00 +08:00 修改：小屏同步“应用场景”标题字号为 1.54rem；修改人：Augment Agent */
    .services-section h2[data-lang="services-title"] {
        /* 旧：font-size: 1.90rem（中屏）/ 2.70rem（桌面）； */ font-size: 1.54rem !important;
    }

    .contact-form-wrapper {
        position: static;
        padding: 30px 20px;
    }

    .footer-content {
        grid-template-columns: 1fr;
        gap: 40px;
    }


    /* 2025-10-02 00:55:00 +08:00 修改：小屏同步“三大功能模块”标题字号为 1.54rem；修改人：Augment Agent */
    .about-section h2[data-lang="about-modules-title"] {
        /* 旧：font-size: 1.90rem（中屏）/ 2.70rem（桌面）； */ font-size: 1.54rem !important;
    }

    .footer-links {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

@media (max-width: 480px) {
    .hero-title {
        /* 旧行保留：font-size: 2.2rem; */
        /* 2025-10-01 21:02:00 +08:00 修改：小屏断点标题缩小至 50%；修改人：Augment Agent */
        /* 旧行保留：font-size: 1.1rem; */
        /* 2025-10-01 21:10:00 +08:00 修改：小屏断点标题调整为原始 70%；修改人：Augment Agent */
        /* 旧行保留：font-size: 1.54rem; */
        /* 2025-10-01 21:42:00 +08:00 修改：小屏断点字号下调 10%；修改人：Augment Agent */
        /* 旧行保留：font-size: 1.39rem; */
        /* 2025-10-01 21:46:00 +08:00 回退：小屏断点标题字号恢复到 70%；修改人：Augment Agent */
        /* 旧行保留：font-size: 1.54rem; */
        /* 2025-10-31 22:10 +08:00 修改：统一断点字号为 50px；修改人：Augment Agent */
        font-size: 50px;
    }

    .hero-subtitle {
        font-size: 1rem;
    }

    /* 2025-10-02 00:25:00 +08:00 修改：小屏字号下调30%（2.0rem → 1.40rem）；修改人：Augment Agent */
    .about-intro h2 {
        /* 旧：font-size: 1.40rem; */ font-size: 1.54rem;
    }

    .about-content h2 {
        font-size: 2.2rem;
    }

    .service-card {
        padding: 30px 20px;
    }

    .contact-form h3 {
        font-size: 1.5rem;
    }

    .partners-grid {
        grid-template-columns: 1fr;
    }
}


/* 2025-10-02 00:08:00 +08:00 紧急修复：强制“三大功能模块”三列并排；修改人：Augment Agent；
   目标：与参考版本一致，避免在任何窗口宽度下变为竖排；
   思路：提高选择器优先级并使用 !important 覆盖小屏幕 media query 的单列规则。 */
/* 2025-10-19 修改：添加强制gap设置；修改人：Augment Agent；目标：确保卡片间20px白色空隙；思路：在强制规则中添加gap；旧：无gap设置 */
.about-section .tech-showcase {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
}

/* 2025-10-02 04:24:00 +08:00 兜底规则：强制第二张卡片正文为 C2 蓝色；修改人：Augment Agent；目的：解决用户端仍呈现白色的问题；思路：在文件末尾追加更靠后的同等选择器并加 !important，保证最终生效。*/
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-yolo-desc"]{
  color:#2F6C8F !important;
}

/* 2025-10-02 04:32:00 +08:00 兜底规则：强制第三张卡片正文为 C2 蓝色；修改人：Augment Agent；目的：与一号卡片颜色一致并解决白字覆盖；思路：在文件末尾追加更靠后的同等选择器并加 !important，确保最终生效。*/
.about-section .tech-showcase .tech-item .tech-overlay p[data-lang="tech-platform-desc"]{
  color:#2F6C8F !important;
}
/* 2025-10-02 04:58:00 +08:00 紧急恢复：默认可见；修改人：Augment Agent；目的：在无 hover 的设备上标题与正文也可见；思路：在文件末尾追加更靠后且带 !important 的可见性规则，仅影响三卡片 overlay 文本。*/
.about-section .tech-showcase .tech-item .tech-overlay h3,
.about-section .tech-showcase .tech-item .tech-overlay p{
  transform: translateY(0) !important;
  opacity: 1 !important;
}


/* 2025-10-02 05:05:00 +08:00 去阴影覆盖：三张卡片标题统一关闭阴影；修改人：Augment Agent；目的：按用户指令去除三张卡片标题阴影，保持颜色/描边/位置不变；思路：在文件末尾以更靠后的精确选择器组覆盖 text-shadow，保留可回退性。*/
/* 旧行为说明：更早的统一标题规则包含 text-shadow；此处不删除旧规则，仅通过更靠后的覆盖关闭阴影。 */
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-yolo-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-platform-title"]{
  /* 2025-10-02 05:05:00 +08:00 三卡片标题去阴影 */
  text-shadow: none !important;
}

/* 2025-10-02 05:02:00 +08:00 修改：仅移除“感知模块”标题阴影；修改人：Augment Agent；目的：按用户指令去除阴影，其他样式（颜色、描边、位置）保持不变；思路：在文件末尾以更高优先级的精确选择器覆盖 text-shadow，保留可回退性。*/
/* 旧行为说明：更早的统一规则里为标题设置了 text-shadow（蓝色标题+阴影+描边），此处不删除旧规则，仅通过更靠后的覆盖来“去阴影”。 */
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"]{
  /* 2025-10-02 05:02:00 +08:00 去阴影覆盖：将阴影关闭，仅影响“感知模块”标题 */
  text-shadow: none !important;
}

/* 2025-10-02 05:07:00 +08:00 修改：三张卡片标题字号统一缩小10%；修改人：Augment Agent；目的：按指令将“感知模块/AI智能模块/数字底座模块”标题统一小一档；思路：在文件末尾以更靠后的精确选择器组设置绝对字号 1.08rem（基于原 1.2rem 下调10%），并加 !important，确保三者一致且可回退。*/
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-yolo-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-platform-title"]{
  /* 原基准：.tech-overlay h3 { font-size: 1.2rem; } → 缩小10% = 1.08rem */
  font-size: 1.08rem !important;
}

/* 2025-10-02 05:10:00 +08:00 修改：三张卡片标题改为居中（仅标题，不影响正文）；修改人：Augment Agent；目的：按用户指令将“感知模块/AI智能模块/数字底座模块”标题文本居中；思路：在文件末尾以更靠后的精确选择器组设置 text-align:center 并加 !important，避免被早期规则覆盖，保留可回退性。*/
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-flight-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-yolo-title"],
.about-section .tech-showcase .tech-item .tech-overlay h3[data-lang="tech-platform-title"]{
  text-align: center !important; /* 居中对齐，仅作用于标题文本 */
}


/* 2025-10-28 11:20 +08:00 新增覆盖：HOMEPAGE-FIX-20251028-01；修改人：Augment Agent
   目的：修复“打开非满屏时图片叠加堆积”，固定首页关于山思“三大功能模块”图片位置；
   思路：限定到 .about-section .tech-showcase 的图片容器，设定 16/9 比例 + 最小高度 180px，
         避免父容器高度未定义时高度塌陷导致的挤压/叠加；不改动全局 .tech-image 规则，纯覆盖；
   影响范围：仅首页 about-section 的三张功能卡片，不影响其它页面与已定版模块；随时可删除回退。
   旧行为说明：全局 .tech-image 使用 height:100%（见上文），在父级高度未定义时可能出现叠加/挤压。 */
.about-section .tech-showcase .tech-image {
  /* 固定容器比例，确保稳定占位（局部显示亦可） */
  aspect-ratio: 16 / 9; /* 2025-10-28：HOMEPAGE-FIX-20251028-01 */
  /* 以内容自适应高度为主，提供最小高度兜底 */
  height: auto;        /* 2025-10-28：避免百分比高度在父高不定时塌陷 */
  min-height: 180px;   /* 2025-10-28：首页默认最小高度；如需更改告知具体像素 */
  /* 防止内部图片或覆盖元素外溢影响布局 */
  overflow: hidden;    /* 2025-10-28：防外溢叠加 */
}


/* 2025-10-28 11:35 +08:00 新增覆盖：DETAIL-FIX-20251028-01；修改人：Augment Agent
   目的：为三大二级页面（感知/AI/数字底座）在“非满屏窗口”下提供媒体容器稳定占位，避免图片/视频叠加堆积；
   思路：使用页面特征选择器 body:has(...) 精准限定作用域；
         1) 对二级页 .tech-detail-section 下的 .tech-video 统一提供 16/9 比例 + 最小高度 180px + overflow:hidden；
         2) 对 .overview-image / .feature-image 提供最小高度与溢出兜底，不改变其既有高度/纵横比/布局；
   影响范围：仅 perception-detail.html / ai-intelligence-detail.html / digital-platform-detail.html。
   回退方式：删除本覆盖块并提升 CSS 版本号即可恢复。*/
/* 二级页：视频容器稳定占位（16:9 + min-height） */
body:has(.perception-hero-video) .tech-detail-section .tech-video,
body:has(.ai-hero-video) .tech-detail-section .tech-video,
body:has(.digital-hero-video) .tech-detail-section .tech-video {
  aspect-ratio: 16 / 9;   /* 2025-10-28：DETAIL-FIX-20251028-01 */
  height: auto;           /* 避免百分比高度在父高不定时塌陷 */
  min-height: 180px;      /* 兜底高度，防叠加 */
  overflow: hidden;       /* 防止媒体外溢影响布局 */
}

/* 二级页：图片容器兜底（不改变既有高度/比例，只保底） */
body:has(.perception-hero-video) .tech-detail-section .overview-image,
body:has(.ai-hero-video) .tech-detail-section .overview-image,
body:has(.digital-hero-video) .tech-detail-section .overview-image {
  min-height: 180px;      /* 若原高度更大则不生效，仅提供兜底 */
  overflow: hidden;       /* 保证内部图片不外溢 */
}

/* 二级页：特性图片容器兜底（保持既有高度，不强行改比例） */
body:has(.perception-hero-video) .tech-detail-section .feature-image,
body:has(.ai-hero-video) .tech-detail-section .feature-image,
body:has(.digital-hero-video) .tech-detail-section .feature-image {
  overflow: hidden;       /* 防外溢；不改写 height 与 object-fit */
}


/* 2025-10-28 13:05 +08:00 新增覆盖：AI-SCENERY-BLEND-20251028-01；修改人：Augment Agent
   目的：AI 二级页蓝色背景与底部山景自然衔接；
   思路：在 .ai-scenery-section 顶部叠加从深蓝→透明的渐变层，pointer-events:none，z-index 高于 .projects-overlay；
   随时回退：删除本块并提升 CSS 版本号查询参数即可。*/
.ai-scenery-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  /* 半透明过渡高度：默认 22vh，可根据反馈在 16–28vh 间微调 */
  /* 2025-10-28 13:12 +08:00 调整：AI-SCENERY-BLEND-20251028-02；修改人：Augment Agent；目的：增强与上方蓝色背景的自然过渡可见度；思路：将过渡层高度由 22vh 调整为 200vh；旧行如下： */
  /* 旧：height: 22vh; */
  height: 200vh;
  background: linear-gradient(180deg,
    rgba(7, 12, 26, 0.90) 0%,      /* #070c1a 顶端深蓝，强一些以贴合上方背景 */
    rgba(14, 26, 59, 0.70) 45%,    /* #0e1a3b 中段逐步减弱 */
    rgba(26, 47, 102, 0.00) 100%   /* #1a2f66 底部完全透明，露出山景 */
  );
  pointer-events: none;             /* 不阻止用户交互（如将来此处有按钮） */
  z-index: 2;                       /* 盖在 .projects-overlay（z-index:1）之上 */
}


/* 2025-10-28 13:18 +08:00 新增覆盖：PERCEPTION-SCENERY-BLEND-20251028-01；修改人：Augment Agent
   目的：感知二级页蓝色背景与底部山景自然衔接；
   思路：在 .perception-scenery-section 顶部叠加从深蓝→透明的渐变层；颜色沿用该页统一的 AI 深蓝梯度；
   随时回退：删除本块并提升 CSS 版本号查询参数即可。*/
.perception-scenery-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  /* 过渡高度：与 AI 页保持一致，使用 200vh 以增强可见度；可按反馈微调 */
  height: 200vh;
  background: linear-gradient(180deg,
    rgba(7, 12, 26, 0.90) 0%,      /* #070c1a 顶端深蓝 */
    rgba(14, 26, 59, 0.70) 45%,    /* #0e1a3b 中段减弱 */
    rgba(26, 47, 102, 0.00) 100%   /* #1a2f66 底部透明，露出山景 */
  );
  pointer-events: none;
  z-index: 2; /* 高于 .projects-overlay (z-index:1) */
}

/* 2025-10-28 13:18 +08:00 新增覆盖：DIGITAL-SCENERY-BLEND-20251028-01；修改人：Augment Agent
   目的：数字底座二级页背景与底部山景自然衔接；
   思路：沿用数字页专属“宇宙蓝→星空蓝”色系，顶部更深、底部透明；
   参考：body:has(.digital-hero-video) .tech-detail-section 背景梯度(#050a1a→#0d1b3a→#2a4f82)；
   随时回退：删除本块并提升 CSS 版本号查询参数即可。*/
.digital-scenery-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 200vh; /* 同步使用 200vh 以保证过渡可见 */
  background: linear-gradient(180deg,
    rgba(5, 10, 26, 0.90) 0%,      /* #050a1a 顶部宇宙蓝（深） */
    rgba(13, 27, 58, 0.70) 45%,    /* #0d1b3a 中段海军蓝 */
    rgba(42, 79, 130, 0.00) 100%   /* #2a4f82 底部星空蓝→透明 */
  );
  pointer-events: none;
  z-index: 2;
}


/* 2025-10-28 13:26 +08:00 回退覆盖：SCENERY-BLEND-ROLLBACK-20251028-01；修改人：Augment Agent
   目的：撤销三个二级页面刚才新增的“蓝色背景→山景”渐变层，使页面回到未加过渡层的状态；
   思路：保留原规则以便随时恢复；通过更靠后的覆盖并使用 !important 禁用 ::before 伪元素的生成与样式（content:none + height:0 + background:none）。
   涉及页面：AI（.ai-scenery-section）、感知（.perception-scenery-section）、数字底座（.digital-scenery-section）。*/
.ai-scenery-section::before,
.perception-scenery-section::before,
.digital-scenery-section::before {
  /* 回退核心：不再生成伪元素，不再渲染任何渐变背景 */
  content: none !important;  /* 不生成 ::before */
  height: 0 !important;      /* 即便生成也不占高 */
  background: none !important;/* 清空背景 */
}


/* 2025-10-28 14:02 +08:00 局部覆盖：AI-PROJECTS-CENTER-20251028-01；修改人：Augment Agent
   目的：当 AI 二级页底部“项目案例”模块仅保留单卡片时，使卡片在容器中水平居中；
   思路：在 .ai-scenery-section 作用域内将 .projects-grid 调整为单列并限制容器最大宽度，配合 margin:0 auto 居中；
        保留全站默认三列规则不动，移动端媒体查询也可继续生效。旧行为参考：.projects-grid { grid-template-columns: repeat(3, 1fr); max-width: 1200px; }
*/
/* 旧：无该覆盖（默认三列） */
.ai-scenery-section .projects-grid {
  grid-template-columns: 1fr;   /* 单列布局 */
  /* 旧：max-width: 760px; 约一张卡片宽度 */
  /* 旧：max-width: 800px; 2025-10-28 14:08 +08:00 调整为 800px；修改人：Augment Agent */
  max-width: 850px;             /* 2025-10-28 14:33 +08:00 调整为 850px，按指令增加方框宽度；修改人：Augment Agent */
  margin: 0 auto;               /* 容器水平居中 */
}


/* 2025-10-28 AI-FOOTER-HIDE-20251028-01
   按指令：AI二级页底部取消蓝色条（隐藏全站Footer，仅在本页生效）。
   修改人：Augment Agent；目的：移除山景下方蓝色条；
   思路：使用 :has(.ai-hero-video) 页面特征选择器限定作用域，避免影响其他页面；
   旧：footer 在本页显示（显示底部版权区域）。
*/
body:has(.ai-hero-video) footer{
  display: none !important; /* 隐藏页脚，消除蓝色条 */
}


/* 2025-10-28 AI-SCENERY-SMOOTH-FADE-20251028-01
   按指令：AI二级页“蓝色背景”底部边线模糊并与下方透明底更自然过渡。
   修改人：Augment Agent；目的：柔化底部边缘，避免生硬收口；
   思路：对 .ai-scenery-section 使用 mask-image 在底部 16% 做渐隐；
         同时叠加一个仅底部的轻微模糊渐变 ::after 以进一步柔化。
*/
body:has(.ai-hero-video) .ai-scenery-section{
  position: relative; /* 确保 ::after 绝对定位基准 */
  /* 底部渐隐：最后 25% 渐变为透明，实现自然过渡（范围增大） */
  /* 旧：-webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 84%, rgba(0,0,0,0) 100%); */
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 75%, rgba(0,0,0,0) 100%); /* 2025-10-28 15:00 +08:00 调整：底部渐隐范围改为25%；修改人：Augment Agent */
          /* 旧：mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 84%, rgba(0,0,0,0) 100%); */
          mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 75%, rgba(0,0,0,0) 100%); /* 2025-10-28 15:00 +08:00 调整：底部渐隐范围改为25%；修改人：Augment Agent */
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
}

body:has(.ai-hero-video) .ai-scenery-section::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -12px; /* 略微下移，避免可见接缝 */
  height: 72px; /* 模糊带高度，控制柔化范围 */
  background: linear-gradient(to bottom, rgba(16,28,64,0.35) 0%, rgba(16,28,64,0) 100%);
  /* 旧：filter: blur(12px); 轻微模糊，提升过渡自然度 */
  filter: blur(30px); /* 2025-10-28 15:00 +08:00 调整：模糊强度从12px增至30px；修改人：Augment Agent */
  pointer-events: none;
  z-index: 2; /* 叠在 .projects-overlay(1) 之上，不遮挡主要内容 */
}

/* 2025-10-28 AI-SCENERY-SMOOTH-FADE-ROLLBACK-20251028-01
   按指令：取消所有底部的渐变（AI二级页）。
   修改人：Augment Agent；目的：停用底部 mask 渐隐与 ::after 模糊带；
   思路：保留旧实现，追加覆盖禁用，便于随时回退；仅在含 .ai-hero-video 的页面生效。 */
body:has(.ai-hero-video) .ai-scenery-section{
  -webkit-mask-image: none !important;
          mask-image: none !important;
  -webkit-mask-repeat: initial !important;
  -webkit-mask-size: initial !important;
}
body:has(.ai-hero-video) .ai-scenery-section::after{
  content: none !important;
  background: none !important;
  filter: none !important;
  height: 0 !important;
}


/* 2025-10-28 AI-SCENERY-TOP-FADE-20251028-01
   按指令：在“山景”和上方蓝色背景的交界处做自然过渡（顶端过渡）。
   修改人：Augment Agent；目的：柔化顶部边线；参数：过渡范围≈25%，模糊强度30px；
   思路：使用 ::before 顶部渐变叠加并加模糊，不使用 mask，避免产生空隙。
   作用域：仅 AI 二级页（body:has(.ai-hero-video)）。
*/
body:has(.ai-hero-video) .ai-scenery-section{
  position: relative; /* 确保伪元素定位基准 */
}
body:has(.ai-hero-video) .ai-scenery-section::before{
  content: "";
  position: absolute;
  left: 0; right: 0; top: 0; /* 顶部交界处 */
  /* 旧：height: 25%; 过渡范围 25% */
  /* 旧：height: 15%; 2025-10-28 15:12 +08:00 调整：过渡范围改为15%；修改人：Augment Agent */
  /* 旧：height: 5px; 2025-10-28 15:16 +08:00 改为5px边线；修改人：Augment Agent */
  height: 8px; /* 2025-10-28 15:30 +08:00 调整：改为8px以增强可见性；修改人：Augment Agent */
  /* 旧：background: linear-gradient(to bottom, rgba(16,28,64,0.35) 0%, rgba(16,28,64,0) 100%); 顶部渐隐 */
  /* 旧：background: rgba(0,0,0,0.35); 2025-10-28 15:16 顶部5px黑灰透明边 */
  /* 旧：background: rgba(20,22,30,0.45); 2025-10-28 15:22 调整为偏灰更实 */
  background: rgba(0,0,0,1); /* 2025-10-28 15:26 +08:00 调整：改为纯黑边 #000；修改人：Augment Agent */
  box-shadow: 0 2px 0 rgba(0,0,0,0.6); /* 2025-10-28 15:30 +08:00 新增：下压2px轻投影，增强界线可见性；修改人：Augment Agent */
  /* 旧：filter: blur(30px); 模糊强度 30px */
  /* 旧：filter: blur(20px); 2025-10-28 15:12 +08:00 调整；修改人：Augment Agent */
  filter: none; /* 2025-10-28 15:18 +08:00 撤销边界模糊：仅保留5px黑灰透明边；修改人：Augment Agent */
  pointer-events: none;
  /* 旧：z-index: 2; 置于 .projects-overlay(1) 之上，通常不覆盖居中内容 */
  z-index: 3; /* 2025-10-28 15:22 +08:00 调整：提升至3，确保5px边线可见；修改人：Augment Agent */
}
/* 2025-10-28 AI-SCENERY-TOP-BORDER-ROLLBACK-20251028-01
   目的：按指令回退“山景与上方蓝色背景交界处”的所有处理（细边/模糊/投影等），恢复为原始无边界效果；
   修改人：Augment Agent；思路：使用同选择器追加覆盖规则，强制禁用 ::before 效果，保留历史实现以便随时回退。 */
body:has(.ai-hero-video) .ai-scenery-section::before{
  content: none !important;
  background: none !important;
  height: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  z-index: auto !important;
}

/* 2025-10-28 PERCEPTION-PROJECTS-CENTER-20251028-01
   目的：复制 AI 二级页底部“单卡片居中”基线到感知二级页；
   修改人：Augment Agent；思路：仅局部覆盖 .projects-grid，使之单列并限制版心宽度，避免影响首页。 */
.perception-scenery-section .projects-grid{
  /* 单列布局，保持与 AI 页一致 */
  grid-template-columns: 1fr; /* 原：repeat(3, 1fr) */
  max-width: 850px; /* 版心宽度 */
  margin: 0 auto; /* 居中 */
}

/* 2025-10-28 DIGITAL-PROJECTS-CENTER-20251028-01
   目的：复制 AI 二级页底部“单卡片居中”基线到数字底座二级页；
   修改人：Augment Agent；思路：同上，仅限数字底座页底部山景块。 */
.digital-scenery-section .projects-grid{
  grid-template-columns: 1fr;
  max-width: 850px;
  margin: 0 auto;
}

/* 2025-10-28 PERCEPTION-FOOTER-HIDE-20251028-01
   目的：按 AI 页基线，隐藏感知二级页页脚蓝色条；
   修改人：Augment Agent；思路：使用页面特征选择器 :has(.perception-hero-video) 精准生效。 */
body:has(.perception-hero-video) footer{
  display: none !important;
}

/* 2025-10-28 DIGITAL-FOOTER-HIDE-20251028-01
   目的：按 AI 页基线，隐藏数字底座二级页页脚蓝色条；
   修改人：Augment Agent；思路：使用页面特征选择器 :has(.digital-hero-video) 精准生效。 */
body:has(.digital-hero-video) footer{
  display: none !important;
}

/* 2025-10-28 PERCEPTION-PROJECTS-CENTER-ALIGN-20251028-02
   目的：确保感知页底部单卡片在可视区域严格居中，避免视觉偏右；
   修改人：Augment Agent；思路：在 .projects-content 层使用网格居中对子元素，
         同时为 .projects-grid 显式给出 width:100% 以配合 max-width 与 margin 居中。 */
.perception-scenery-section .projects-content{
  /* 旧：未设置显式居中（继承 text-align:center） */
  display: grid; /* 网格容器以便 place-items 生效 */
  place-items: center; /* 水平+垂直居中，避免偏移 */
}
.perception-scenery-section .projects-grid{
  /* 旧：width: 100%; 配合 max-width:850px 与 margin:0 auto 更稳健 */
  width: auto; /* 2025-10-28 15:58 +08:00 调整：取消填满父级，确保 margin:0 auto 真正生效实现水平居中；修改人：Augment Agent */
  /* 旧：justify-items: center; 可能导致卡片缩小至内容宽度 */
  justify-items: stretch; /* 2025-10-28 16:02 +08:00 调整：保持卡片拉伸为单列宽度，避免视觉变窄；修改人：Augment Agent */
  justify-content: center; /* 2025-10-28 16:02 +08:00 新增：当容器存在富余宽度时，使网格轨道整体居中；修改人：Augment Agent */
}

/* 2025-10-28 DIGITAL-PROJECTS-CENTER-ALIGN-20251028-02
   目的：确保数字底座页底部单卡片在可视区域严格居中，避免视觉偏右；
   修改人：Augment Agent；思路：同上。 */
.digital-scenery-section .projects-content{
  /* 旧：未设置显式居中（继承 text-align:center） */
  display: grid; /* 网格容器以便 place-items 生效 */
  place-items: center; /* 水平+垂直居中，避免偏移 */
}
.digital-scenery-section .projects-grid{
  /* 旧：width: 100%; 配合 max-width:850px 与 margin:0 auto 更稳健 */
  width: auto; /* 2025-10-28 15:58 +08:00 调整：取消填满父级，确保 margin:0 auto 真正生效实现水平居中；修改人：Augment Agent */
  /* 旧：justify-items: center; 可能导致卡片缩小至内容宽度 */
  justify-items: stretch; /* 2025-10-28 16:02 +08:00 调整：保持卡片拉伸为单列宽度，避免视觉变窄；修改人：Augment Agent */
  justify-content: center; /* 2025-10-28 16:02 +08:00 新增：当容器存在富余宽度时，使网格轨道整体居中；修改人：Augment Agent */
}

/* 2025-10-28 PERCEPTION/DIGITAL-PROJECTS-CONTAINER-PADDING-ALIGN-20251028-01
   目的：清除底部山景区块内容器左右30px内边距对视觉居中的影响；
   修改人：Augment Agent；思路：仅在对应分区内将容器左右padding设为0，避免版心相对视口产生错觉偏移。*/
.perception-scenery-section .container,
.digital-scenery-section .container{
  /* 旧：padding: 0 30px;（继承全局 .container） */
  padding-left: 0;  /* 2025-10-28 16:04 +08:00 局部置0，确保视觉绝对居中 */
  padding-right: 0; /* 2025-10-28 16:04 +08:00 局部置0，确保视觉绝对居中 */
}

/* 2025-10-28 PERCEPTION/DIGITAL-PROJECTS-CENTER-FALLBACK-20251028-01
   目的：像素级兜底水平居中，避免任何由父级布局/滚动条/余量导致的视觉偏移；
   修改人：Augment Agent；思路：对 .projects-grid 采用 left:50% + translateX(-50%) 精确居中，并屏蔽 margin 自动居中以防二次偏移。*/
.perception-scenery-section .projects-grid{
  /* 旧：margin: 0 auto; 自动居中 */
  margin-left: 0 !important; /* 2025-10-28 16:10 +08:00 兜底：禁用自动居中，改用几何居中 */
  margin-right: 0 !important; /* 2025-10-28 16:10 +08:00 兜底：禁用自动居中，改用几何居中 */
  position: relative; /* 兜底：启用相对定位作为 transform 参考 */
  left: 50%; /* 兜底：将元素左边缘移动到父容器中心 */
  transform: translateX(-50%); /* 兜底：再左移自身半宽，达到绝对居中 */
}
.digital-scenery-section .projects-grid{
  /* 旧：margin: 0 auto; 自动居中 */
  margin-left: 0 !important; /* 2025-10-28 16:10 +08:00 同步兜底 */
  margin-right: 0 !important; /* 2025-10-28 16:10 +08:00 同步兜底 */
  position: relative; /* 兜底：启用相对定位作为 transform 参考 */
  left: 50%; /* 兜底：将元素左边缘移动到父容器中心 */
  transform: translateX(-50%); /* 兜底：再左移自身半宽，达到绝对居中 */
}

/* 2025-10-28 DIGITAL-PROJECTS-CENTER-OFFSET-300PX-20251028-01
   目的：将数字底座页底部“了解更多技术详情”容器框整体向左偏移 300px；
   修改人：Augment Agent；思路：在兜底几何居中的基础上，将 left 从 50% 调整为 calc(50% - 300px)，保持 translateX(-50%) 不变。*/
.digital-scenery-section .projects-grid{
  /* 旧：left: 50%; */
  /* 旧：left: calc(50% - 300px) !important; 2025-10-28 16:18 +08:00 偏移：整体左移 300px */
  /* 旧：left: calc(50% - 600px) !important; 2025-10-28 16:22 +08:00 偏移：再左移 300px（累计600px） */
  /* 旧：left: calc(50% - 480px) !important; 2025-10-28 16:26 +08:00 调整：右移 120px（由-600 → -480） */
  left: calc(50% - 500px) !important; /* 2025-10-28 16:29 +08:00 调整：左移 20px（由-480 → -500） */
  /* 保持：transform: translateX(-50%); 以中心为基准再偏移 */
}
/* 2025-10-28 PERCEPTION-PROJECT-CARD-CENTER-FALLBACK-20251028-01
   目的：感知页底部山景区块“单卡片”像素级兜底居中；
   修改人：Augment Agent；思路：在保留容器几何居中的同时，对项目卡片本身应用 left:50% + translateX(-50%)，确保绝对居中。*/
.perception-scenery-section .projects-grid > .project-item{
  /* 卡片级兜底居中 */
  left: 50% !important; /* 2025-10-28 16:36 +08:00 以父容器中心为参考 */
  transform: translateX(-50%) !important; /* 2025-10-28 16:36 +08:00 再左移半宽实现居中 */
}


/* 2025-10-28 PERCEPTION-PROJECTS-CENTER-OFFSET-600PX-20251028-01
   目的：将感知页底部“了解更多技术详情”容器框整体向左偏移 600px；
   修改人：Augment Agent；思路：在兜底几何居中的基础上，将 left 从 50% 调整为 calc(50% - 600px)，保持 translateX(-50%) 不变，像素级对齐。*/
.perception-scenery-section .projects-grid{
  /* 旧：left: 50%;（PERCEPTION-PROJECTS-CENTER-FALLBACK-20251028-01） */
  /* 旧：left: calc(50% - 600px) !important; 2025-10-28 16:42 +08:00 偏移：整体左移 600px */
  left: calc(50% - 510px) !important; /* 2025-10-28 16:55 +08:00 调整：右移 90px（由-600 → -510） */
  /* 保持：transform: translateX(-50%); 以中心为基准再偏移 */
}

/* 2025-10-28 PERCEPTION-PROJECT-CARD-CENTER-DISABLE-20251028-01
   目的：关闭此前“卡片级居中”以避免与容器偏移叠加造成错位；
   修改人：Augment Agent；思路：用更靠后的覆盖规则禁用 transform/left，交给容器偏移统一控制。*/
.perception-scenery-section .projects-grid > .project-item{
  /* 旧：left: 50% !important; transform: translateX(-50%) !important;（PERCEPTION-PROJECT-CARD-CENTER-FALLBACK-20251028-01） */
  left: auto !important; /* 2025-10-28 16:42 +08:00 禁用卡片级 left */
  transform: none !important; /* 2025-10-28 16:42 +08:00 禁用卡片级 transform */
}


/* 2025-10-28 17:46 +08:00 SECONDARY-H3-MARGIN-40-01
   目的：统一三个二级页面（AI/感知/数字底座）所有模块的标题上下间距为 40px；
   修改人：Augment Agent；思路：使用页面特征选择器 :has() 精准作用于二级页，在 .tech-detail-section 内对常见模块卡片标题批量覆盖；
   影响范围：.overview-item/.feature-card/.application-item/.advantage-content/.project-item 中的 h3；不影响 h2 和其他页面。
   旧：各处标题 margin-top/margin-bottom 不一致（如 15px / 20px / 40px / 70px）。 */
:is(body:has(.ai-hero-video), body:has(.perception-hero-video), body:has(.digital-hero-video)) .tech-detail-section :is(
  .overview-item h3,
  .feature-card h3,
  .application-item h3,
  .advantage-content h3,
  .project-item h3
){
  margin-top: 40px !important;  /* 统一：标题上边距 40px */
  margin-bottom: 40px !important; /* 统一：标题下边距 40px */
}


/* 2025-10-28 18:31 +08:00 DIGITAL-PROJECTS-CENTER-RESET-20251028-01
   目的：恢复数字底座页底部“了解更多技术详情”容器水平居中；
   原因：此前演示用偏移 left: calc(50% - 500px) 导致容器偏左；
   思路：保留兜底几何居中（left:50% + translateX(-50%)），仅将 left 恢复为 50%；不改 transform；
   回退：删除本覆盖块即可复原偏移。*/
.digital-scenery-section .projects-grid{
  left: 50% !important; /* 旧：left: calc(50% - 500px) !important; */
}


/* 2025-10-28 19:28 +08:00 DIGITAL-OVERVIEW-GAP-PLUS150-20251028-01
   目的：在先前基础上再增加 50px（合计 +150px）；
   修改人：Augment Agent；思路：将 gap 由 140px → 190px；移动端由 130px → 180px；
   回退：如需回退到 +100px，请改回 140/130；完整回退改回 40/30。*/
/* 旧块保留参考：gap: 140px / 130px （请见下行覆盖） */
body:has(.digital-hero-video) .tech-detail-section .tech-overview .overview-grid{
  gap: 190px !important; /* 旧：140px；本次 +50px（总 +150px） */
}

/* 移动端覆盖 */
@media (max-width: 768px){
  body:has(.digital-hero-video) .tech-detail-section .tech-overview .overview-grid{
    gap: 180px !important; /* 旧：130px；本次 +50px（总 +150px） */
  }
}


/* 2025-10-29 14:36 +08:00 优化(Stage1)：首屏外区块按需渲染以降低首屏工作量；修改人：Augment Agent；目标：提升首屏可交互速度；思路：为下折叠区添加 content-visibility:auto，并设置估算内在尺寸避免布局抖动。*/
.about-section,
.tech-section,
.projects-section{
  content-visibility: auto;
  contain-intrinsic-size: 1000px 800px; /* 预估尺寸，避免未渲染前高度塌陷 */
}

/* 2025-10-29 14:36 +08:00 移动端降压：禁用熊猫卡片在触摸设备上的 3D 倾斜；修改人：Augment Agent；目标：降低移动端渲染与重绘成本；思路：pointer:coarse 设备上去除 transform 动效（hover 无效）。*/
@media (pointer: coarse){
  #panda-card .tech-image{
    transform: none !important;
    transition: transform .18s ease, box-shadow .18s ease;
  }
}

/* 2025-10-29 14:36 +08:00 无障碍/性能：若用户偏好减少动态，则关闭 Ken Burns 等动画；修改人：Augment Agent；目标：尊重系统设置并进一步降耗。*/
@media (prefers-reduced-motion: reduce){
  .hero-bg-kenburns{ animation: none !important; transform: none !important; }
}


/* 2025-11-06 新增(B档)：英文首页“项目案例”卡片标题与说明缩小；修改人：Augment Agent；目的：英文页面首页文字变小，仅英文模式生效 */
body.lang-en .projects-section .project-item h3 { font-size: 1.5rem !important; }
body.lang-en .projects-section .project-item p  { font-size: 0.95rem !important; }
