/* =========================================================
   AURORA · 极曜科技 官网样式
   暗色科技主题 / 玻璃拟态 / 霓虹渐变 / 网格与光晕
   ========================================================= */

/* ---------- 1. Reset & tokens ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: .01em;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

:root {
    --bg: #05060b;
    --bg-2: #080b14;
    --bg-3: #0b0f1b;
    --panel: rgba(255, 255, 255, .035);
    --panel-2: rgba(255, 255, 255, .06);
    --line: rgba(255, 255, 255, .09);
    --line-strong: rgba(255, 255, 255, .18);
    --text: #eef1fa;
    --text-2: #a9b1c7;
    --text-3: #6d7691;
    --c1: #3ef0d8;
    --c2: #5b8cff;
    --c3: #b06bff;
    --c4: #ffc76b;
    --lime: #c9f96e;
    --grad: linear-gradient(115deg, var(--c1) 0%, var(--c2) 52%, var(--c3) 100%);
    --grad-soft: linear-gradient(135deg, rgba(62, 240, 216, .18), rgba(91, 140, 255, .16) 50%, rgba(176, 107, 255, .18));
    --radius-lg: 26px;
    --radius: 18px;
    --radius-sm: 12px;
    --shell: 1240px;
    --sans: "Inter", "HarmonyOS Sans SC", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
    --mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    --ease: cubic-bezier(.16, 1, .3, 1);
    --header-h: 74px;
}

img, svg, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4, h5, p, figure, blockquote { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
::selection { background: rgba(91, 140, 255, .35); color: #fff; }

:focus-visible {
    outline: 2px solid var(--c2);
    outline-offset: 3px;
    border-radius: 6px;
}

/* ---------- 2. 背景特效层 ---------- */
.bg-fx {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.bg-grid {
    position: absolute;
    inset: -10% -10% 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px);
    background-size: 68px 68px;
    mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 10%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 10%, transparent 75%);
    opacity: .55;
}

.bg-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    opacity: .5;
}

.bg-glow--a {
    width: 46vw; height: 46vw;
    top: -14vw; left: -8vw;
    background: radial-gradient(circle, rgba(62, 240, 216, .32), transparent 65%);
}

.bg-glow--b {
    width: 52vw; height: 52vw;
    top: -6vw; right: -16vw;
    background: radial-gradient(circle, rgba(176, 107, 255, .3), transparent 65%);
}

.bg-glow--c {
    width: 60vw; height: 40vw;
    bottom: -22vw; left: 20vw;
    background: radial-gradient(circle, rgba(91, 140, 255, .2), transparent 68%);
}

.bg-noise {
    position: absolute;
    inset: 0;
    opacity: .045;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
}

.scroll-progress {
    position: fixed;
    top: 0; left: 0;
    height: 2px;
    width: 0;
    z-index: 120;
    background: var(--grad);
    box-shadow: 0 0 18px rgba(91, 140, 255, .8);
}

.cursor-glow {
    position: fixed;
    top: 0; left: 0;
    width: 460px; height: 460px;
    margin: -230px 0 0 -230px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(91, 140, 255, .13), transparent 62%);
    z-index: 1;
    pointer-events: none;
    opacity: 0;
    transition: opacity .5s ease;
    will-change: transform;
}

.skip-link {
    position: fixed;
    top: -60px; left: 16px;
    z-index: 200;
    padding: 10px 18px;
    background: var(--c2);
    color: #fff;
    border-radius: 10px;
    transition: top .2s;
}
.skip-link:focus { top: 12px; }

/* ---------- 3. 排版基础组件 ---------- */
.shell {
    width: 100%;
    max-width: var(--shell);
    margin: 0 auto;
    padding-inline: clamp(20px, 4vw, 40px);
    position: relative;
    z-index: 2;
}

.section { padding-block: clamp(64px, 9vw, 128px); position: relative; }
.section--tight { padding-block: clamp(48px, 6vw, 84px); }
.section--flush-top { padding-top: 0; }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--mono);
    font-size: 11.5px;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: var(--text-3);
    margin-bottom: 18px;
}

.eyebrow::before {
    content: "";
    width: 22px; height: 1px;
    background: linear-gradient(90deg, var(--c1), var(--c2));
    box-shadow: 0 0 10px rgba(91, 140, 255, .8);
}

.eyebrow--dot::before {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--c1);
    box-shadow: 0 0 12px var(--c1);
}

h1, .h1 {
    font-size: clamp(38px, 5.6vw, 68px);
    line-height: 1.06;
    letter-spacing: -.035em;
    font-weight: 640;
}

h2, .h2 {
    font-size: clamp(27px, 3.4vw, 44px);
    line-height: 1.16;
    letter-spacing: -.028em;
    font-weight: 620;
}

h3, .h3 {
    font-size: clamp(19px, 1.7vw, 23px);
    line-height: 1.35;
    letter-spacing: -.015em;
    font-weight: 600;
}

.lead {
    font-size: clamp(15.5px, 1.15vw, 18px);
    line-height: 1.8;
    color: var(--text-2);
    max-width: 62ch;
}

.muted { color: var(--text-2); }
.dim { color: var(--text-3); }
.mono { font-family: var(--mono); font-size: 12px; letter-spacing: .12em; }

.text-grad {
    background: var(--grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: clamp(36px, 5vw, 60px);
}

.section-head__main { max-width: 720px; }
.section-head__aside { flex-shrink: 0; padding-bottom: 6px; }

.rule {
    height: 1px;
    border: 0;
    background: linear-gradient(90deg, transparent, var(--line-strong), transparent);
    margin: 0;
}

/* ---------- 4. 按钮 / 标签 ---------- */
.btn {
    --btn-h: 48px;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    height: var(--btn-h);
    padding: 0 24px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 14.5px;
    font-weight: 560;
    letter-spacing: .01em;
    cursor: pointer;
    white-space: nowrap;
    transition: transform .35s var(--ease), box-shadow .35s var(--ease), background-color .3s, border-color .3s, color .3s;
}

.btn svg { width: 16px; height: 16px; flex-shrink: 0; }

.btn--primary {
    background: var(--grad);
    color: #06070d;
    font-weight: 620;
    box-shadow: 0 10px 30px -12px rgba(91, 140, 255, .9), inset 0 1px 0 rgba(255, 255, 255, .45);
}

.btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 42px -14px rgba(91, 140, 255, 1), inset 0 1px 0 rgba(255, 255, 255, .6);
}

.btn--ghost {
    background: rgba(255, 255, 255, .02);
    border-color: var(--line-strong);
    color: var(--text);
    backdrop-filter: blur(8px);
}

.btn--ghost:hover {
    border-color: rgba(91, 140, 255, .6);
    background: rgba(91, 140, 255, .1);
    transform: translateY(-2px);
}

.btn--sm { --btn-h: 40px; padding: 0 18px; font-size: 13.5px; }
.btn--lg { --btn-h: 54px; padding: 0 30px; font-size: 15.5px; }
.btn--block { width: 100%; }

.btn--play { gap: 12px; }
.btn--play .play-dot {
    display: grid;
    place-items: center;
    width: 26px; height: 26px;
    border-radius: 50%;
    background: rgba(62, 240, 216, .16);
    border: 1px solid rgba(62, 240, 216, .5);
    color: var(--c1);
}
.btn--play .play-dot svg { width: 9px; height: 9px; }

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--text);
    border-bottom: 1px solid var(--line-strong);
    padding-bottom: 3px;
    transition: color .3s, border-color .3s, gap .3s;
}
.text-link svg { width: 14px; height: 14px; transition: transform .35s var(--ease); }
.text-link:hover { color: var(--c1); border-color: var(--c1); }
.text-link:hover svg { transform: translateX(3px); }

.tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 26px;
    padding: 0 11px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .03);
    font-size: 11.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-family: var(--mono);
    color: var(--text-2);
}

.tag--live { color: var(--c1); border-color: rgba(62, 240, 216, .32); background: rgba(62, 240, 216, .08); }
.tag--live::before {
    content: "";
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--c1);
    box-shadow: 0 0 8px var(--c1);
    animation: pulse 2.2s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .35; transform: scale(.8); }
}

/* ---------- 5. 头部导航 ---------- */
.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    height: var(--header-h);
    display: flex;
    align-items: center;
    transition: background-color .4s, border-color .4s, backdrop-filter .4s, height .4s;
    border-bottom: 1px solid transparent;
}

.site-header.is-scrolled {
    background: rgba(5, 6, 11, .72);
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    border-bottom-color: var(--line);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
}

.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark { width: 30px; height: 30px; flex-shrink: 0; filter: drop-shadow(0 0 12px rgba(91, 140, 255, .5)); }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-text strong {
    font-size: 15px;
    letter-spacing: .26em;
    font-weight: 620;
}
.brand-text small {
    font-size: 10.5px;
    letter-spacing: .3em;
    color: var(--text-3);
    margin-top: 3px;
}

.main-nav { display: flex; align-items: center; }
.nav-list { display: flex; align-items: center; gap: 4px; }

.nav-link {
    position: relative;
    display: inline-block;
    padding: 9px 15px;
    font-size: 14px;
    color: var(--text-2);
    border-radius: 999px;
    transition: color .3s, background-color .3s;
}

.nav-link::after {
    content: "";
    position: absolute;
    left: 15px; right: 15px; bottom: 4px;
    height: 1px;
    background: var(--grad);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s var(--ease);
}

.nav-link:hover { color: var(--text); }
.nav-link:hover::after { transform: scaleX(1); }
.nav-link.is-active { color: var(--text); }
.nav-link.is-active::after { transform: scaleX(1); }

.header-actions { display: flex; align-items: center; gap: 16px; }

.header-mail {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .06em;
    color: var(--text-3);
    transition: color .3s;
}
.header-mail:hover { color: var(--c1); }

.nav-toggle {
    display: none;
    width: 42px; height: 42px;
    padding: 0;
    border-radius: 12px;
    border: 1px solid var(--line-strong);
    background: rgba(255, 255, 255, .04);
    cursor: pointer;
    position: relative;
}

.nav-toggle span {
    position: absolute;
    left: 12px;
    width: 18px; height: 1.5px;
    background: var(--text);
    transition: transform .35s var(--ease), opacity .3s;
}
.nav-toggle span:nth-child(1) { top: 17px; }
.nav-toggle span:nth-child(2) { top: 23px; width: 12px; }
body.nav-open .nav-toggle span:nth-child(1) { transform: translateY(3px) rotate(45deg); }
body.nav-open .nav-toggle span:nth-child(2) { transform: translateY(-3px) rotate(-45deg); width: 18px; }

.nav-foot { display: none; }

/* ---------- 6. 首页主视觉 ---------- */
.hero {
    position: relative;
    padding-top: calc(var(--header-h) + clamp(48px, 7vw, 92px));
    padding-bottom: clamp(48px, 7vw, 96px);
}

.hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
    gap: clamp(36px, 4.5vw, 64px);
    align-items: center;
}

.hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 6px 14px 6px 8px;
    margin-bottom: 28px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .03);
    font-size: 12.5px;
    color: var(--text-2);
    backdrop-filter: blur(10px);
    transition: border-color .3s, color .3s;
}
.hero__badge:hover { border-color: rgba(62, 240, 216, .4); color: var(--text); }
.hero__badge em {
    font-style: normal;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .16em;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(62, 240, 216, .14);
    color: var(--c1);
}
.hero__badge span { color: var(--text-3); }

.hero__title { margin-bottom: 26px; }
.hero__title .line { display: block; }
.hero__title .thin { font-weight: 300; color: var(--text-2); }
.hero__title .glow-word {
    position: relative;
    display: inline-block;
    background: var(--grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 0 26px rgba(91, 140, 255, .45));
}

.hero__desc { margin-bottom: 34px; max-width: 52ch; }

.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 40px; }

.hero__trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 22px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    color: var(--text-3);
}
.hero__trust strong { color: var(--text); font-weight: 600; font-size: 13.5px; }
.hero__trust .sep { width: 1px; height: 14px; background: var(--line-strong); }

/* 右侧 HUD 舞台 */
.hero-stage {
    position: relative;
    aspect-ratio: 1 / .92;
    border-radius: var(--radius-lg);
    border: 1px solid var(--line);
    background:
        radial-gradient(ellipse 70% 60% at 50% 42%, rgba(91, 140, 255, .16), transparent 70%),
        linear-gradient(160deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .012));
    overflow: hidden;
    box-shadow: 0 40px 90px -50px rgba(91, 140, 255, .85), inset 0 1px 0 rgba(255, 255, 255, .07);
    transform-style: preserve-3d;
    transition: transform .6s var(--ease);
}

.stage-canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .85; }

.stage-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: radial-gradient(circle at 50% 50%, #000 20%, transparent 78%);
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 20%, transparent 78%);
    opacity: .6;
}

.ring {
    position: absolute;
    top: 50%; left: 50%;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .1);
    transform: translate(-50%, -50%);
}

.ring::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: rgba(62, 240, 216, .85);
    border-right-color: rgba(91, 140, 255, .45);
    animation: spin 14s linear infinite;
}

.ring-a { width: 58%; aspect-ratio: 1; }
.ring-b { width: 80%; aspect-ratio: 1; border-style: dashed; opacity: .5; }
.ring-b::after { animation-duration: 26s; animation-direction: reverse; border-top-color: rgba(176, 107, 255, .75); }

@keyframes spin { to { transform: rotate(360deg); } }

.stage-core {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    display: grid;
    place-items: center;
    width: 31%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 30%, rgba(62, 240, 216, .28), rgba(91, 140, 255, .12) 45%, transparent 70%);
    border: 1px solid rgba(62, 240, 216, .28);
    box-shadow: 0 0 60px -10px rgba(62, 240, 216, .5), inset 0 0 40px rgba(91, 140, 255, .25);
    text-align: center;
}

.stage-core strong {
    display: block;
    font-family: var(--mono);
    font-size: clamp(11px, 1vw, 13px);
    letter-spacing: .22em;
    color: #dffcf6;
}
.stage-core small {
    display: block;
    font-family: var(--mono);
    font-size: 8.5px;
    letter-spacing: .2em;
    color: rgba(62, 240, 216, .8);
    margin-top: 5px;
}

.chip {
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 11px 15px;
    border-radius: 14px;
    border: 1px solid var(--line-strong);
    background: rgba(10, 14, 24, .72);
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 36px -22px #000;
    animation: float 7s ease-in-out infinite;
}

.chip span {
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--text-3);
}
.chip strong { font-size: 17px; font-weight: 620; letter-spacing: -.01em; }
.chip small { font-size: 10.5px; color: var(--c1); font-family: var(--mono); }

.chip-a { top: 11%; left: 5%; }
.chip-b { top: 20%; right: 4%; animation-delay: -2.4s; }
.chip-c { bottom: 13%; left: 8%; animation-delay: -4.2s; }
.chip-d { bottom: 9%; right: 7%; animation-delay: -1.2s; }

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-9px); }
}

.scan {
    position: absolute;
    left: 0; right: 0;
    height: 120px;
    background: linear-gradient(180deg, transparent, rgba(62, 240, 216, .12), transparent);
    animation: scan 6.5s linear infinite;
}

@keyframes scan {
    0% { top: -20%; opacity: 0; }
    15% { opacity: 1; }
    85% { opacity: 1; }
    100% { top: 105%; opacity: 0; }
}

.bracket {
    position: absolute;
    width: 18px; height: 18px;
    border: 1px solid rgba(62, 240, 216, .55);
}
.bracket-tl { top: 14px; left: 14px; border-right: 0; border-bottom: 0; }
.bracket-tr { top: 14px; right: 14px; border-left: 0; border-bottom: 0; }
.bracket-bl { bottom: 14px; left: 14px; border-right: 0; border-top: 0; }
.bracket-br { bottom: 14px; right: 14px; border-left: 0; border-top: 0; }

/* ---------- 7. 客户 LOGO 跑马灯 ---------- */
.logo-strip {
    position: relative;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding-block: 26px;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.logo-strip__track {
    display: flex;
    align-items: center;
    gap: 64px;
    width: max-content;
    animation: marquee 38s linear infinite;
}

.logo-strip:hover .logo-strip__track { animation-play-state: paused; }

.logo-item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    letter-spacing: .04em;
    color: rgba(233, 238, 250, .42);
    white-space: nowrap;
    transition: color .3s;
}
.logo-item svg { width: 18px; height: 18px; opacity: .55; }
.logo-item:hover { color: rgba(233, 238, 250, .9); }

@keyframes marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* ---------- 8. 通用卡片与滚动动效 ---------- */
.card {
    position: relative;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: linear-gradient(160deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .015));
    overflow: hidden;
    transition: border-color .4s, transform .5s var(--ease), background-color .4s;
}

.card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(91, 140, 255, .16), transparent 62%);
    opacity: 0;
    transition: opacity .45s;
    pointer-events: none;
}

.card:hover { border-color: rgba(120, 160, 255, .34); transform: translateY(-4px); }
.card:hover::before { opacity: 1; }

[data-reveal] {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .9s var(--ease), transform .9s var(--ease);
    transition-delay: var(--d, 0ms);
}

[data-reveal].is-in { opacity: 1; transform: none; }

/* ---------- 9. 核心能力 ---------- */
.cap-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.cap-card {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 30px 28px 32px;
    min-height: 280px;
}

.cap-card__top { display: flex; align-items: center; justify-content: space-between; }

.cap-index {
    font-family: var(--mono);
    font-size: 11.5px;
    letter-spacing: .18em;
    color: var(--text-3);
}

.cap-ico {
    display: grid;
    place-items: center;
    width: 44px; height: 44px;
    border-radius: 13px;
    border: 1px solid var(--line-strong);
    background: var(--grad-soft);
    color: var(--c1);
}
.cap-ico svg { width: 21px; height: 21px; }

.cap-card h3 { font-size: 19.5px; }
.cap-card p { font-size: 14px; line-height: 1.75; color: var(--text-2); }

.cap-card__link {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: var(--text-3);
    transition: color .3s, gap .3s;
}
.cap-card:hover .cap-card__link { color: var(--c1); gap: 11px; }
.cap-card__link svg { width: 13px; height: 13px; }

/* ---------- 10. 产品展示 ---------- */
.product-feature {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
    padding-block: clamp(30px, 4vw, 52px);
    border-top: 1px solid var(--line);
}

.product-feature:nth-child(even) .product-feature__media { order: 2; }
.product-feature__body { max-width: 560px; }
.product-feature__name {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.product-feature__name h3 { font-size: clamp(22px, 2.4vw, 30px); }
.product-feature__name span {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    color: var(--c1);
    text-transform: uppercase;
}
.product-feature__tagline {
    font-size: 15px;
    color: var(--text);
    margin-bottom: 14px;
    padding-left: 14px;
    border-left: 2px solid;
    border-image: var(--grad) 1;
}
.product-feature__desc { font-size: 14.5px; color: var(--text-2); margin-bottom: 24px; }

.feature-list { display: grid; gap: 12px; margin-bottom: 26px; }
.feature-list li {
    position: relative;
    padding-left: 26px;
    font-size: 13.8px;
    line-height: 1.65;
    color: var(--text-2);
}
.feature-list li::before {
    content: "";
    position: absolute;
    left: 0; top: 7px;
    width: 12px; height: 12px;
    border-radius: 4px;
    border: 1px solid rgba(62, 240, 216, .45);
    background: rgba(62, 240, 216, .1);
}
.feature-list li::after {
    content: "";
    position: absolute;
    left: 4px; top: 11px;
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--c1);
    box-shadow: 0 0 8px var(--c1);
}

.metrics-row {
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
    padding-top: 22px;
    border-top: 1px dashed var(--line);
}
.metric { display: flex; flex-direction: column; gap: 2px; }
.metric strong { font-size: 21px; font-weight: 620; letter-spacing: -.02em; }
.metric span { font-size: 11.5px; color: var(--text-3); font-family: var(--mono); letter-spacing: .08em; }

/* 产品视觉块 */
.product-visual {
    position: relative;
    border-radius: var(--radius-lg);
    border: 1px solid var(--line);
    aspect-ratio: 16 / 11;
    overflow: hidden;
    background:
        radial-gradient(ellipse 60% 70% at 30% 20%, rgba(62, 240, 216, .14), transparent 62%),
        radial-gradient(ellipse 60% 70% at 78% 84%, rgba(176, 107, 255, .18), transparent 62%),
        linear-gradient(155deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .01));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
}

.product-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
    background-size: 38px 38px;
    mask-image: radial-gradient(circle at 50% 50%, #000 25%, transparent 82%);
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 25%, transparent 82%);
}

.pv-orbit {
    position: absolute;
    top: 50%; left: 50%;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .1);
    transform: translate(-50%, -50%);
}
.pv-orbit:nth-child(1) { width: 44%; aspect-ratio: 1; border-color: rgba(62, 240, 216, .3); }
.pv-orbit:nth-child(2) { width: 68%; aspect-ratio: 1; border-style: dashed; opacity: .55; }
.pv-orbit:nth-child(3) { width: 92%; aspect-ratio: 1; opacity: .35; }

.pv-node {
    position: absolute;
    width: 9px; height: 9px;
    border-radius: 50%;
    background: var(--c1);
    box-shadow: 0 0 14px var(--c1);
}
.pv-node.n1 { top: 24%; left: 26%; }
.pv-node.n2 { top: 68%; left: 72%; background: var(--c3); box-shadow: 0 0 14px var(--c3); }
.pv-node.n3 { top: 34%; left: 76%; background: var(--c2); box-shadow: 0 0 14px var(--c2); }

.pv-label {
    position: absolute;
    bottom: 18px; left: 20px;
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .2em;
    color: var(--text-3);
    text-transform: uppercase;
}

.pv-bars {
    position: absolute;
    left: 20px; right: 20px;
    bottom: 48px;
    display: flex;
    align-items: flex-end;
    gap: 6px;
    height: 52px;
    opacity: .85;
}
.pv-bars i {
    flex: 1;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(180deg, rgba(62, 240, 216, .8), rgba(91, 140, 255, .12));
    animation: barPulse 3.4s ease-in-out infinite;
}
.pv-bars i:nth-child(2n) { animation-delay: .4s; }
.pv-bars i:nth-child(3n) { animation-delay: .9s; }
.pv-bars i:nth-child(4n) { animation-delay: 1.4s; }

@keyframes barPulse {
    0%, 100% { transform: scaleY(.55); opacity: .55; }
    50% { transform: scaleY(1); opacity: 1; }
}

/* ---------- 11. 数据成果 ---------- */
.stats-band {
    position: relative;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: linear-gradient(180deg, rgba(91, 140, 255, .07), transparent 70%);
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stat {
    padding: clamp(28px, 4vw, 46px) clamp(18px, 2.4vw, 30px);
    border-left: 1px solid var(--line);
}
.stat:first-child { border-left: 0; padding-left: 0; }

.stat__num {
    display: flex;
    align-items: baseline;
    gap: 4px;
    font-size: clamp(30px, 3.6vw, 46px);
    font-weight: 620;
    letter-spacing: -.04em;
    line-height: 1.1;
    margin-bottom: 8px;
    background: linear-gradient(180deg, #fff, #9fb4e0);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.stat__num small { font-size: .48em; font-weight: 500; letter-spacing: 0; }

.stat p { font-size: 13px; color: var(--text-3); line-height: 1.6; }
.stat b { display: block; font-size: 13.5px; font-weight: 560; color: var(--text-2); margin-bottom: 4px; }

/* ---------- 12. 案例 ---------- */
.case-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.case-card { display: flex; flex-direction: column; }

.case-card__art {
    position: relative;
    aspect-ratio: 16 / 9.6;
    overflow: hidden;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(ellipse 70% 80% at 22% 18%, rgba(62, 240, 216, .22), transparent 60%),
        radial-gradient(ellipse 70% 80% at 80% 82%, rgba(176, 107, 255, .24), transparent 62%),
        linear-gradient(150deg, #0e1526, #0a0d17);
}

.case-card__art::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 30px 30px;
    opacity: .55;
    mask-image: radial-gradient(circle at 50% 50%, #000, transparent 80%);
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000, transparent 80%);
}

.case-card__art svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.case-card__industry {
    position: absolute;
    top: 14px; left: 14px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(5, 6, 11, .68);
    border: 1px solid var(--line-strong);
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .14em;
    color: var(--text-2);
    backdrop-filter: blur(8px);
}

.case-card__body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.case-card__client { font-family: var(--mono); font-size: 10.5px; letter-spacing: .16em; color: var(--c1); text-transform: uppercase; }
.case-card h3 { font-size: 16.5px; line-height: 1.45; }
.case-card p { font-size: 13.2px; color: var(--text-2); line-height: 1.7; }

.case-card__metrics {
    display: flex;
    gap: 18px;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px dashed var(--line);
}
.case-card__metrics div { display: flex; flex-direction: column; }
.case-card__metrics strong { font-size: 15px; font-weight: 620; }
.case-card__metrics span { font-size: 10.5px; color: var(--text-3); }

/* 筛选器 */
.filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 34px;
}

.filter-btn {
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .02);
    font-size: 13px;
    color: var(--text-2);
    cursor: pointer;
    transition: all .3s var(--ease);
}
.filter-btn:hover { border-color: var(--line-strong); color: var(--text); }
.filter-btn.is-active {
    color: #06070d;
    background: var(--grad);
    border-color: transparent;
    font-weight: 580;
}

.is-hidden { display: none !important; }

/* 精选案例 */
.case-feature {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: clamp(24px, 3.4vw, 48px);
    padding: clamp(24px, 3.4vw, 40px);
    border-radius: var(--radius-lg);
    border: 1px solid var(--line);
    background: linear-gradient(140deg, rgba(91, 140, 255, .1), rgba(255, 255, 255, .015) 55%);
    align-items: center;
}

.case-feature__quote {
    font-size: clamp(16px, 1.6vw, 19px);
    line-height: 1.7;
    letter-spacing: -.01em;
}
.case-feature__quote::before {
    content: "“";
    display: block;
    font-size: 48px;
    line-height: .6;
    color: rgba(62, 240, 216, .5);
    margin-bottom: 10px;
    font-family: Georgia, serif;
}
.case-feature__by { margin-top: 18px; font-size: 12.5px; color: var(--text-3); font-family: var(--mono); letter-spacing: .06em; }

.case-feature__side { display: grid; gap: 18px; }
.case-feature__metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.case-feature__metrics div {
    padding: 16px 14px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--line);
    background: rgba(5, 6, 11, .4);
}
.case-feature__metrics strong { display: block; font-size: 21px; font-weight: 620; letter-spacing: -.02em; }
.case-feature__metrics span { font-size: 10.5px; color: var(--text-3); }

/* ---------- 13. 新闻 ---------- */
.news-feature {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 0;
    border-radius: var(--radius-lg);
    border: 1px solid var(--line);
    overflow: hidden;
    margin-bottom: 26px;
    background: linear-gradient(150deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .012));
    transition: border-color .4s, transform .5s var(--ease);
}
.news-feature:hover { border-color: rgba(120, 160, 255, .34); transform: translateY(-3px); }

.news-feature__art {
    position: relative;
    min-height: 300px;
    background:
        radial-gradient(ellipse 60% 70% at 26% 24%, rgba(62, 240, 216, .25), transparent 62%),
        radial-gradient(ellipse 60% 70% at 76% 78%, rgba(176, 107, 255, .3), transparent 62%),
        linear-gradient(150deg, #0d1424, #090c15);
    border-right: 1px solid var(--line);
    display: grid;
    place-items: center;
    overflow: hidden;
}
.news-feature__art::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: radial-gradient(circle at 50% 50%, #000, transparent 76%);
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000, transparent 76%);
}
.news-feature__art span {
    position: relative;
    z-index: 1;
    font-family: var(--mono);
    font-size: clamp(30px, 4vw, 52px);
    letter-spacing: .16em;
    color: rgba(255, 255, 255, .1);
    font-weight: 700;
}

.news-feature__body { padding: clamp(26px, 3vw, 40px); display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.news-feature__body h3 { font-size: clamp(19px, 2vw, 25px); line-height: 1.4; }
.news-feature__body p { font-size: 14px; color: var(--text-2); }
.news-meta { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: var(--text-3); }

.news-list { display: grid; }
.news-item {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr) 120px 30px;
    gap: 20px;
    align-items: center;
    padding: 24px 6px;
    border-top: 1px solid var(--line);
    transition: background-color .35s, padding-inline .35s, border-color .35s;
}
.news-item:last-child { border-bottom: 1px solid var(--line); }
.news-item:hover { background: rgba(255, 255, 255, .022); border-color: rgba(120, 160, 255, .28); padding-inline: 16px; }

.news-item__date { font-family: var(--mono); font-size: 12px; color: var(--text-3); letter-spacing: .06em; }
.news-item__main h3 { font-size: 16.5px; line-height: 1.5; transition: color .3s; }
.news-item__main p { font-size: 13px; color: var(--text-3); margin-top: 4px; }
.news-item:hover .news-item__main h3 { color: #fff; }
.news-item__cat { justify-self: end; }
.news-item__arrow {
    display: grid;
    place-items: center;
    width: 30px; height: 30px;
    border-radius: 50%;
    border: 1px solid var(--line);
    color: var(--text-3);
    transition: all .35s var(--ease);
}
.news-item:hover .news-item__arrow { color: #06070d; background: var(--c1); border-color: transparent; transform: rotate(-45deg); }
.news-item__arrow svg { width: 13px; height: 13px; }

/* ---------- 14. 关于 / 团队 / 历程 ---------- */
.vision {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(28px, 4vw, 60px);
    align-items: start;
}

.vision__text {
    font-size: clamp(21px, 2.4vw, 32px);
    line-height: 1.65;
    letter-spacing: -.02em;
    font-weight: 420;
}
.vision__text b { font-weight: 620; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 44px; }
.value-card { padding: 24px 22px; }
.value-card__no { font-family: var(--mono); font-size: 11px; letter-spacing: .2em; color: var(--c1); }
.value-card h4 { font-size: 16px; margin: 10px 0 8px; font-weight: 600; }
.value-card p { font-size: 13.2px; color: var(--text-2); line-height: 1.7; }

.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.member { padding: 26px 24px; display: flex; flex-direction: column; gap: 14px; }
.member__top { display: flex; align-items: center; gap: 14px; }

.member__avatar {
    display: grid;
    place-items: center;
    width: 52px; height: 52px;
    border-radius: 16px;
    font-family: var(--mono);
    font-size: 15px;
    letter-spacing: .06em;
    color: #05070d;
    font-weight: 700;
    background: var(--grad);
    box-shadow: 0 12px 26px -14px rgba(91, 140, 255, .9);
    flex-shrink: 0;
}
.member[data-accent="violet"] .member__avatar { background: linear-gradient(135deg, #b06bff, #5b8cff); }
.member[data-accent="lime"] .member__avatar { background: linear-gradient(135deg, #c9f96e, #3ef0d8); }
.member[data-accent="amber"] .member__avatar { background: linear-gradient(135deg, #ffc76b, #ff8a5b); }

.member h3 { font-size: 16.5px; }
.member__role { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; color: var(--text-3); margin-top: 3px; }
.member p { font-size: 13px; color: var(--text-2); line-height: 1.7; }

.timeline { margin-top: 12px; }
.tl-item {
    display: grid;
    grid-template-columns: 108px 34px minmax(0, 1fr);
    align-items: start;
    padding-bottom: 34px;
    position: relative;
}
.tl-item:last-child { padding-bottom: 0; }

.tl-year { font-family: var(--mono); font-size: 20px; letter-spacing: .04em; color: var(--text); padding-top: 2px; }

.tl-rail { position: relative; height: 100%; display: flex; justify-content: center; }
.tl-rail::before {
    content: "";
    position: absolute;
    top: 12px; bottom: -34px;
    width: 1px;
    background: linear-gradient(180deg, rgba(62, 240, 216, .55), var(--line));
}
.tl-item:last-child .tl-rail::before { display: none; }
.tl-dot {
    width: 9px; height: 9px;
    margin-top: 8px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--c1);
    box-shadow: 0 0 12px rgba(62, 240, 216, .7);
    position: relative;
    z-index: 1;
}

.tl-body h3 { font-size: 17px; margin-bottom: 6px; }
.tl-body p { font-size: 13.5px; color: var(--text-2); max-width: 62ch; }

/* ---------- 15. 步骤 / 表格 / FAQ ---------- */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; counter-reset: step; }
.step {
    position: relative;
    padding: 26px 22px;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .02);
    counter-increment: step;
}
.step::before {
    content: "0" counter(step);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    color: var(--c2);
    display: block;
    margin-bottom: 14px;
}
.step h4 { font-size: 15.5px; margin-bottom: 8px; font-weight: 600; }
.step p { font-size: 13px; color: var(--text-2); line-height: 1.7; }

.spec-wrap {
    border-radius: var(--radius);
    border: 1px solid var(--line);
    overflow-x: auto;
    background: rgba(255, 255, 255, .015);
}
.spec-table { width: 100%; border-collapse: collapse; min-width: 680px; }
.spec-table th, .spec-table td {
    padding: 16px 20px;
    text-align: left;
    font-size: 13.5px;
    border-bottom: 1px solid var(--line);
}
.spec-table thead th {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--text-3);
    font-weight: 400;
    background: rgba(255, 255, 255, .03);
}
.spec-table tbody tr:last-child td { border-bottom: 0; }
.spec-table tbody tr:hover { background: rgba(91, 140, 255, .06); }
.spec-table td:first-child { color: var(--text); font-weight: 520; }
.spec-table td { color: var(--text-2); }

.faq { display: grid; gap: 10px; }
.faq-item {
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .022);
    overflow: hidden;
    transition: border-color .3s, background-color .3s;
}
.faq-item[open] { border-color: rgba(120, 160, 255, .3); background: rgba(91, 140, 255, .06); }
.faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 19px 22px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 520;
    list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: "";
    width: 10px; height: 10px;
    border-right: 1.5px solid var(--text-2);
    border-bottom: 1.5px solid var(--text-2);
    transform: rotate(45deg);
    transition: transform .35s var(--ease);
    flex-shrink: 0;
    margin-right: 4px;
}
.faq-item[open] summary::after { transform: rotate(-135deg); }
.faq-body { padding: 0 22px 20px; font-size: 13.8px; color: var(--text-2); line-height: 1.8; }

/* ---------- 16. 内页头部 ---------- */
.page-hero {
    position: relative;
    padding-top: calc(var(--header-h) + clamp(56px, 8vw, 104px));
    padding-bottom: clamp(40px, 5vw, 64px);
    border-bottom: 1px solid var(--line);
    overflow: hidden;
}

.page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 70% at 78% 12%, rgba(176, 107, 255, .16), transparent 62%),
                radial-gradient(ellipse 50% 60% at 12% 0%, rgba(62, 240, 216, .13), transparent 62%);
    pointer-events: none;
}

.page-hero__meta { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.crumb { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .12em; color: var(--text-3); text-transform: uppercase; }
.crumb a { transition: color .3s; }
.crumb a:hover { color: var(--c1); }
.crumb span { opacity: .45; }

.page-hero h1 { max-width: 900px; margin-bottom: 18px; }
.page-hero .lead { max-width: 58ch; }

.page-hero__stats { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 38px; }
.page-hero__stats div { display: flex; flex-direction: column; }
.page-hero__stats strong { font-size: 26px; font-weight: 620; letter-spacing: -.03em; }
.page-hero__stats span { font-size: 11.5px; font-family: var(--mono); letter-spacing: .1em; color: var(--text-3); }

/* ---------- 17. CTA 横幅 ---------- */
.cta-band {
    position: relative;
    border-radius: var(--radius-lg);
    border: 1px solid var(--line);
    padding: clamp(36px, 5.6vw, 68px) clamp(24px, 4vw, 60px);
    overflow: hidden;
    background:
        radial-gradient(ellipse 60% 120% at 15% 20%, rgba(62, 240, 216, .18), transparent 60%),
        radial-gradient(ellipse 60% 120% at 85% 80%, rgba(176, 107, 255, .22), transparent 60%),
        linear-gradient(140deg, #0b1120, #070a12);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}

.cta-band::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
    background-size: 52px 52px;
    mask-image: radial-gradient(circle at 50% 50%, #000, transparent 78%);
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000, transparent 78%);
    opacity: .6;
}
.cta-band > * { position: relative; z-index: 1; }
.cta-band h2 { max-width: 16ch; margin-bottom: 12px; }
.cta-band p { color: var(--text-2); font-size: 14.5px; }
.cta-band__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- 18. 联系页 ---------- */
.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr);
    gap: clamp(26px, 3.6vw, 52px);
    align-items: start;
}

.info-list { display: grid; gap: 12px; margin-top: 28px; }
.info-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 22px;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .022);
    transition: border-color .3s, background-color .3s;
}
.info-card:hover { border-color: rgba(120, 160, 255, .3); background: rgba(91, 140, 255, .06); }
.info-card__ico {
    display: grid;
    place-items: center;
    width: 38px; height: 38px;
    border-radius: 11px;
    border: 1px solid var(--line-strong);
    color: var(--c1);
    background: rgba(62, 240, 216, .08);
    flex-shrink: 0;
}
.info-card__ico svg { width: 17px; height: 17px; }
.info-card h4 { font-size: 12px; font-family: var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; font-weight: 400; }
.info-card p, .info-card a { font-size: 14.5px; color: var(--text); }
.info-card a:hover { color: var(--c1); }

.form-card {
    position: relative;
    padding: clamp(24px, 3vw, 38px);
    border-radius: var(--radius-lg);
    border: 1px solid var(--line);
    background: linear-gradient(160deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .012));
    box-shadow: 0 40px 90px -60px rgba(91, 140, 255, .9), inset 0 1px 0 rgba(255, 255, 255, .07);
}

.form-card__head { margin-bottom: 26px; }
.form-card__head h2 { font-size: clamp(22px, 2.2vw, 28px); margin-bottom: 8px; }
.form-card__head p { font-size: 13.5px; color: var(--text-3); }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field--full { grid-column: 1 / -1; }

.field label {
    font-size: 12px;
    font-family: var(--mono);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--text-3);
}
.field label .req { color: var(--c1); margin-left: 2px; }

.field input, .field select, .field textarea {
    width: 100%;
    padding: 13px 15px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--line);
    background: rgba(5, 6, 11, .55);
    color: var(--text);
    font-family: inherit;
    font-size: 14px;
    transition: border-color .3s, box-shadow .3s, background-color .3s;
    appearance: none;
}

.field textarea { min-height: 118px; resize: vertical; line-height: 1.7; }

.field input::placeholder, .field textarea::placeholder { color: #4d566e; }

.field input:focus, .field select:focus, .field textarea:focus {
    outline: none;
    border-color: rgba(91, 140, 255, .65);
    background: rgba(91, 140, 255, .06);
    box-shadow: 0 0 0 3px rgba(91, 140, 255, .14);
}

.field select option { background: #0b0f1b; color: var(--text); }

.select-wrap { position: relative; }
.select-wrap::after {
    content: "";
    position: absolute;
    right: 16px; top: 50%;
    width: 7px; height: 7px;
    border-right: 1.5px solid var(--text-3);
    border-bottom: 1.5px solid var(--text-3);
    transform: translateY(-70%) rotate(45deg);
    pointer-events: none;
}

.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: rgba(255, 107, 107, .7); }
.field-error { font-size: 12px; color: #ff8080; }

.checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 12.5px;
    color: var(--text-3);
    line-height: 1.6;
    cursor: pointer;
}
.checkbox input {
    appearance: none;
    width: 16px; height: 16px;
    margin-top: 2px;
    border-radius: 5px;
    border: 1px solid var(--line-strong);
    background: rgba(5, 6, 11, .6);
    flex-shrink: 0;
    cursor: pointer;
    position: relative;
    transition: all .25s;
}
.checkbox input:checked { background: var(--grad); border-color: transparent; }
.checkbox input:checked::after {
    content: "";
    position: absolute;
    left: 5px; top: 2px;
    width: 4px; height: 8px;
    border-right: 1.5px solid #05070d;
    border-bottom: 1.5px solid #05070d;
    transform: rotate(40deg);
}
.checkbox a { color: var(--c2); text-decoration: underline; text-underline-offset: 2px; }

.form-foot { margin-top: 22px; display: grid; gap: 14px; }
.form-note { font-size: 11.5px; color: var(--text-3); text-align: center; }

.form-alert {
    display: flex;
    gap: 10px;
    padding: 12px 14px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    border: 1px solid;
    margin-bottom: 18px;
}
.form-alert--error { color: #ffb3b3; border-color: rgba(255, 107, 107, .35); background: rgba(255, 107, 107, .08); }
.form-alert--ok { color: #a9f5d0; border-color: rgba(62, 240, 216, .35); background: rgba(62, 240, 216, .08); }

.hp-field {
    position: absolute;
    left: -9999px;
    width: 1px; height: 1px;
    overflow: hidden;
    opacity: 0;
}

.form-success { text-align: center; padding: 40px 10px; display: none; }
.form-success.is-visible { display: block; }
.form-success__ico {
    width: 62px; height: 62px;
    margin: 0 auto 20px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(62, 240, 216, .12);
    border: 1px solid rgba(62, 240, 216, .4);
    color: var(--c1);
    box-shadow: 0 0 40px -10px rgba(62, 240, 216, .8);
}
.form-success__ico svg { width: 26px; height: 26px; }
.form-success h3 { font-size: 21px; margin-bottom: 10px; }
.form-success p { color: var(--text-2); font-size: 14px; }

/* 联系方式快捷条 */
.quick-contact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 40px; }
.quick-contact a {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .02);
    font-size: 13.5px;
    transition: all .3s var(--ease);
}
.quick-contact a span { font-size: 10.5px; font-family: var(--mono); letter-spacing: .12em; color: var(--text-3); text-transform: uppercase; }
.quick-contact a:hover { border-color: rgba(62, 240, 216, .4); transform: translateY(-3px); }

/* ---------- 19. 新闻详情 ---------- */
.article-hero { padding-top: calc(var(--header-h) + clamp(48px, 6vw, 80px)); }
.article-hero h1 { font-size: clamp(28px, 3.6vw, 46px); line-height: 1.25; max-width: 900px; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 22px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .08em; color: var(--text-3); }
.article-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--text-3); }

.article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: clamp(30px, 4vw, 60px);
    align-items: start;
    padding-block: clamp(40px, 5vw, 64px);
}

.prose { max-width: 72ch; }
.prose p { margin-bottom: 20px; font-size: 15.5px; line-height: 1.95; color: #c3cadb; }
.prose h3 { margin: 40px 0 16px; font-size: 20px; color: #fff; }
.prose h2 { margin: 46px 0 18px; font-size: 24px; }
.prose ul, .prose ol { margin: 0 0 22px; padding-left: 4px; display: grid; gap: 10px; }
.prose li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.85; color: #c3cadb; }
.prose li::before {
    content: "";
    position: absolute;
    left: 0; top: 11px;
    width: 6px; height: 6px;
    border-radius: 2px;
    background: var(--c1);
    box-shadow: 0 0 10px rgba(62, 240, 216, .8);
}
.prose blockquote {
    margin: 30px 0;
    padding: 18px 24px;
    border-left: 2px solid var(--c2);
    background: rgba(91, 140, 255, .07);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    color: var(--text);
    font-size: 16px;
}
.prose a { color: var(--c2); text-decoration: underline; text-underline-offset: 3px; }
.prose code { font-family: var(--mono); font-size: .9em; padding: 2px 6px; border-radius: 5px; background: rgba(255, 255, 255, .07); }

.article-aside { position: sticky; top: calc(var(--header-h) + 20px); display: grid; gap: 14px; }
.aside-card { padding: 22px; }
.aside-card h4 { font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); margin-bottom: 14px; font-weight: 400; }
.aside-card ul { display: grid; gap: 12px; }
.aside-card li a { font-size: 13.5px; color: var(--text-2); line-height: 1.5; transition: color .3s; display: block; }
.aside-card li a:hover { color: var(--c1); }
.aside-card li span { display: block; font-family: var(--mono); font-size: 10.5px; color: var(--text-3); margin-top: 3px; }

/* ---------- 20. 页脚 ---------- */
.site-footer {
    position: relative;
    margin-top: clamp(50px, 7vw, 90px);
    border-top: 1px solid var(--line);
    padding-top: clamp(44px, 5vw, 70px);
    overflow: hidden;
    background: linear-gradient(180deg, rgba(91, 140, 255, .05), transparent 40%);
}

.footer-top {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
    gap: clamp(30px, 4vw, 60px);
    padding-bottom: 44px;
}

.brand--footer { margin-bottom: 18px; }
.footer-slogan { font-size: 14px; color: var(--text-3); max-width: 34ch; line-height: 1.75; margin-bottom: 22px; }

.footer-socials { display: flex; flex-wrap: wrap; gap: 10px; }
.footer-socials a {
    padding: 6px 13px;
    border-radius: 999px;
    border: 1px solid var(--line);
    font-size: 12px;
    color: var(--text-3);
    transition: all .3s;
}
.footer-socials a:hover { color: var(--c1); border-color: rgba(62, 240, 216, .4); }

.footer-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.footer-col h4 { font-family: var(--mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); margin-bottom: 16px; font-weight: 400; }
.footer-col ul { display: grid; gap: 10px; }
.footer-col a, .footer-col li { font-size: 13.5px; color: var(--text-2); transition: color .3s; line-height: 1.6; }
.footer-col a:hover { color: var(--text); }

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 22px 0;
    border-top: 1px solid var(--line);
    font-size: 12px;
    color: var(--text-3);
}
.footer-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.footer-meta a:hover { color: var(--text-2); }

.footer-word {
    font-size: clamp(80px, 17vw, 240px);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: .8;
    text-align: center;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, .06);
    margin-top: 10px;
    margin-bottom: -3%;
    user-select: none;
    pointer-events: none;
}

/* ---------- 21. Toast / 404 ---------- */
.toast {
    position: fixed;
    left: 50%; bottom: 28px;
    transform: translate(-50%, 24px);
    padding: 13px 22px;
    border-radius: 999px;
    background: rgba(10, 14, 24, .92);
    border: 1px solid rgba(62, 240, 216, .35);
    color: var(--text);
    font-size: 13.5px;
    box-shadow: 0 20px 50px -20px #000;
    backdrop-filter: blur(14px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s, transform .35s var(--ease);
    z-index: 150;
    max-width: calc(100vw - 40px);
    text-align: center;
}
.toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

.notfound { padding-top: calc(var(--header-h) + 100px); padding-bottom: 100px; text-align: center; }
.notfound__code {
    font-family: var(--mono);
    font-size: clamp(70px, 14vw, 160px);
    line-height: 1;
    letter-spacing: -.04em;
    background: var(--grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    margin-bottom: 18px;
}

/* ---------- 22. 响应式 ---------- */
@media (max-width: 1180px) {
    .header-mail { display: none; }
}

@media (max-width: 1024px) {
    :root { --header-h: 66px; }

    .nav-toggle { display: block; }
    .header-cta { display: none; }

    .main-nav {
        position: fixed;
        inset: 0;
        z-index: 95;
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        gap: 28px;
        padding: 92px clamp(24px, 8vw, 60px) 48px;
        background: rgba(5, 6, 11, .94);
        backdrop-filter: blur(22px);
        -webkit-backdrop-filter: blur(22px);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-12px);
        transition: opacity .4s var(--ease), transform .4s var(--ease), visibility .4s;
        overflow-y: auto;
    }

    body.nav-open .main-nav { opacity: 1; visibility: visible; transform: none; }
    body.nav-open { overflow: hidden; }

    .nav-list { flex-direction: column; align-items: stretch; gap: 0; }
    .nav-link {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 17px 0;
        font-size: 24px;
        letter-spacing: -.02em;
        border-bottom: 1px solid var(--line);
        border-radius: 0;
        color: var(--text);
    }
    .nav-link::after { display: none; }
    .nav-link.is-active { color: var(--c1); }

    .nav-foot { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
    .nav-foot__meta { font-family: var(--mono); font-size: 12px; color: var(--text-3); line-height: 1.9; }

    .hero__inner, .vision, .contact-grid, .case-feature, .news-feature, .product-feature { grid-template-columns: 1fr; }
    .hero-stage { max-width: 560px; margin-inline: auto; width: 100%; }
    .hero { padding-top: calc(var(--header-h) + 40px); }
    .hero__trust { margin-top: 8px; }

    .product-feature:nth-child(even) .product-feature__media { order: 0; }
    .product-feature__body { max-width: none; }

    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .stat { border-left: 0; }
    .stat:nth-child(odd) { padding-left: 0; }
    .stat:nth-child(n+3) { border-top: 1px solid var(--line); }

    .cap-grid, .case-grid, .team-grid, .value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .steps { grid-template-columns: repeat(2, 1fr); }

    .footer-top { grid-template-columns: 1fr; }
    .article-layout { grid-template-columns: 1fr; }
    .article-aside { position: static; }

    .news-feature__art { min-height: 220px; border-right: 0; border-bottom: 1px solid var(--line); }
    .news-item { grid-template-columns: 92px minmax(0, 1fr) 30px; }
    .news-item__cat { display: none; }
}

@media (max-width: 760px) {
    body { font-size: 15.5px; }
    .section { padding-block: clamp(52px, 11vw, 72px); }

    .section-head { flex-direction: column; align-items: flex-start; gap: 18px; }

    .cap-grid, .case-grid, .team-grid, .value-grid { grid-template-columns: 1fr; }
    .steps { grid-template-columns: 1fr; }
    .stats-grid { grid-template-columns: 1fr 1fr; }
    .stat { padding: 24px 16px 24px 0; }
    .stat:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }

    .form-grid { grid-template-columns: 1fr; }
    .quick-contact { grid-template-columns: 1fr; }
    .footer-cols { grid-template-columns: 1fr 1fr; gap: 26px; }
    .footer-bottom { flex-direction: column; align-items: flex-start; }

    .hero__actions .btn { flex: 1 1 auto; }
    .hero__trust { gap: 10px 16px; font-size: 12px; }
    .hero-stage { aspect-ratio: 1 / 1; }
    .chip { padding: 9px 12px; }
    .chip strong { font-size: 15px; }
    .chip-a { top: 8%; left: 3%; }
    .chip-b { top: 15%; right: 2%; }
    .chip-c { bottom: 9%; left: 4%; }
    .chip-d { bottom: 6%; right: 4%; }

    .news-feature__body { padding: 24px 20px; }
    .news-item { gap: 12px; padding: 20px 2px; }
    .news-item__main p { display: none; }
    .news-item__date { font-size: 11px; }

    .case-feature__metrics { grid-template-columns: 1fr 1fr; }
    .tl-item { grid-template-columns: 62px 24px minmax(0, 1fr); gap: 10px; }
    .tl-year { font-size: 15px; }
    .page-hero__stats { gap: 24px; }
    .cta-band { flex-direction: column; align-items: flex-start; }
    .cta-band__actions { width: 100%; }
    .cta-band__actions .btn { flex: 1; }

    .footer-word { -webkit-text-stroke-width: .6px; }
}

@media (max-width: 420px) {
    .hero__badge { font-size: 11.5px; }
    .hero__badge span { display: none; }
    .chip span { font-size: 9px; }
    .stage-core small { font-size: 7.5px; }
}

/* 鼠标设备才启用光标光晕 */
@media (hover: hover) and (pointer: fine) {
    .cursor-glow { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
    [data-reveal] { opacity: 1; transform: none; }
    .scroll-progress { display: none; }
}
