/* ============================================================
   Tuond 新站 · 全站唯一样式表 assets/css/main.css
   Design System: Tuond Dark v1（由 design-system-expert 输出）
   Template: prototype-templates / web-prototype 系列
   零外部依赖：无 CDN、无外部字体、无图片资源（图标为 emoji / 内联 SVG）
   ============================================================ */

/* ---------- 1. Design Tokens（不得改动） ---------- */
:root{
  --bg-base:#0B1220;--bg-alt:#0F1729;--bg-card:#131C2E;--bg-card-hover:#16213A;--bg-input:#0D1526;
  --text-1:#E6EDF7;--text-2:#93A1B5;--text-3:#8DA0B8;--text-on-brand:#FFFFFF;
  --brand-300:#8FBAFF;--brand-400:#6BA0FF;--brand-500:#4F8CFF;--brand-600:#3A72E0;
  --cyan-400:#4DDCF2;--cyan-500:#22D3EE;
  --success:#34D399;--warning:#FBBF24;--danger:#F87171;--info:#4F8CFF;
  --grad-brand:linear-gradient(135deg,#4F8CFF 0%,#22D3EE 100%);
  --grad-text:linear-gradient(135deg,#6BA0FF 0%,#4DDCF2 100%);
  --grad-btn:linear-gradient(135deg,#3A72E0 0%,#0E7490 100%); /* 按钮专用渐变：白字两端对比度 ≥4.5:1 */
  --border-1:#22304A;--border-2:#2E3D5C;--border-3:#1A2438;
  --shadow-card:0 8px 24px rgba(2,8,20,.45);
  --shadow-card-hover:0 12px 32px rgba(2,8,20,.55),0 0 24px rgba(79,140,255,.18);
  --shadow-btn:0 4px 16px rgba(79,140,255,.35);
  --shadow-focus:0 0 0 3px rgba(79,140,255,.18);
  --glass-bg:rgba(11,18,32,.78);--glass-border:rgba(34,48,74,.6);--glass-blur:12px;
  --dur-fast:150ms;--dur-base:250ms;--dur-slow:400ms;--dur-reveal:600ms;
  --ease-out:cubic-bezier(.22,1,.36,1);--ease-inout:cubic-bezier(.4,0,.2,1);
  --r-xs:6px;--r-md:10px;--r-lg:14px;--r-xl:16px;--r-full:999px;
}

/* ---------- 2. Reset & Base ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg-base);color:var(--text-1);
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC","Segoe UI",sans-serif;
  font-size:clamp(.9375rem,.9rem + .25vw,1rem);font-weight:400;line-height:1.75;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  padding-top:64px; /* fixed nav 高度 */
}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}
input,textarea{font:inherit;color:inherit}
::selection{background:rgba(79,140,255,.35);color:var(--text-1)}
:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--r-xs)}

/* ---------- 3. Typography ---------- */
h1{font-size:clamp(2.25rem,1.5rem + 3vw,3.5rem);font-weight:700;line-height:1.2;letter-spacing:.01em}
h2{font-size:clamp(1.625rem,1.25rem + 1.8vw,2.25rem);font-weight:700;line-height:1.3}
h3{font-size:clamp(1.25rem,1.1rem + .8vw,1.5rem);font-weight:600;line-height:1.4}
h4{font-size:1.0625rem;font-weight:600;line-height:1.5}
p{color:var(--text-2)}
small,.small{font-size:.875rem}
.grad-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan-500)}
.lead{font-size:1.0625rem;color:var(--text-2)}
.muted{color:var(--text-3)}
[id]{scroll-margin-top:80px}

/* ---------- 4. Layout ---------- */
.container{max-width:1200px;margin:0 auto;padding:0 20px}
@media (min-width:768px){.container{padding:0 24px}}
.section{padding:64px 0;position:relative}
.section-alt{background:var(--bg-alt)}
.section-head{max-width:640px;margin-bottom:44px}
.section-head .eyebrow{display:block;margin-bottom:10px}
.section-head p{margin-top:12px}
.section-center .section-head{margin-left:auto;margin-right:auto;text-align:center}

/* 跳转链接（可访问性） */
.skip-link{position:absolute;left:16px;top:-48px;z-index:200;background:var(--bg-card);border:1px solid var(--border-2);border-radius:var(--r-md);padding:8px 16px;transition:top var(--dur-fast) var(--ease-out)}
.skip-link:focus{top:12px}

/* ---------- 5. Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--r-md);font-weight:600;font-size:.9375rem;line-height:1.4;border:1px solid transparent;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
.btn:active{transform:translateY(1px) scale(.98)}
.btn-primary{background:var(--grad-btn);color:var(--text-on-brand);box-shadow:var(--shadow-btn)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(79,140,255,.45)}
.btn-ghost{border-color:var(--border-2);color:var(--text-1);background:transparent}
.btn-ghost:hover{border-color:rgba(79,140,255,.55);background:rgba(79,140,255,.06);transform:translateY(-2px)}
.btn-lg{padding:14px 32px;font-size:1rem}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
@media (hover:none){.btn-primary:active,.btn-ghost:active{transform:scale(.97)}}

/* ---------- 6. Nav（fixed 64px，玻璃拟态） ---------- */
.site-nav{position:fixed;top:0;left:0;right:0;height:64px;z-index:100;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border-bottom:1px solid var(--glass-border)}
.nav-inner{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.0625rem;letter-spacing:.02em;color:var(--text-1)}
.logo-mark{width:30px;height:30px;border-radius:8px;background:var(--grad-brand);color:#06101F;font-weight:900;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px}
.logo-en{color:var(--text-3);font-weight:400;font-size:.8125rem;letter-spacing:.12em}
.nav-links{display:none;align-items:center;gap:32px;font-size:.9375rem}
.nav-links a{color:var(--text-2);transition:color var(--dur-fast) var(--ease-out);padding:6px 0}
.nav-links a:hover{color:var(--text-1)}
.nav-links a[aria-current="page"]{color:var(--cyan-500)}
.nav-cta{padding:9px 20px;font-size:.875rem}
/* 汉堡按钮 */
.nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;align-items:center;border:1px solid var(--border-1);border-radius:var(--r-md);background:rgba(19,28,46,.6)}
.nav-toggle .bar{display:block;width:18px;height:2px;border-radius:2px;background:var(--text-1);transition:transform var(--dur-base) var(--ease-inout),opacity var(--dur-base)}
.nav-toggle[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bar:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* 抽屉 */
.nav-drawer{position:fixed;top:64px;right:0;bottom:0;width:280px;z-index:98;background:var(--bg-card);border-left:1px solid var(--border-1);transform:translateX(100%);visibility:hidden;transition:transform var(--dur-base) var(--ease-inout),visibility 0s linear var(--dur-base);overflow-y:auto;padding:20px 24px 32px}
.nav-drawer.open{transform:translateX(0);visibility:visible;transition:transform var(--dur-base) var(--ease-inout),visibility 0s}
.nav-drawer a{display:block;padding:14px 4px;border-bottom:1px solid var(--border-3);font-size:.9375rem;color:var(--text-2)}
.nav-drawer a:active,.nav-drawer a[aria-current="page"]{color:var(--cyan-500)}
.nav-drawer .drawer-cta{margin-top:24px}
.nav-overlay{position:fixed;top:64px;left:0;right:0;bottom:0;z-index:97;background:rgba(5,10,20,.6);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-inout)}
.nav-overlay.show{opacity:1;pointer-events:auto}
body.drawer-open{overflow:hidden}
/* 断点切换 */
@media (min-width:1080px){
  .nav-links{display:flex}
  .nav-toggle,.nav-drawer,.nav-overlay{display:none}
}
@media (max-width:479px){.nav-cta{display:none}}

/* ---------- 7. 渐变光斑 ---------- */
.orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0}
.orb-blue{width:680px;height:680px;top:-220px;left:-180px;background:radial-gradient(circle,rgba(79,140,255,.28) 0%,transparent 65%);animation:orb-float 20s var(--ease-inout) infinite alternate}
.orb-cyan{width:560px;height:560px;bottom:-200px;right:-160px;background:radial-gradient(circle,rgba(34,211,238,.22) 0%,transparent 65%);animation:orb-float 20s var(--ease-inout) -10s infinite alternate-reverse}
@keyframes orb-float{from{transform:translate3d(0,0,0);opacity:.75}to{transform:translate3d(48px,-36px,0);opacity:1}}

/* ---------- 8. Hero（首页） ---------- */
.hero{position:relative;overflow:hidden;padding:72px 0 64px;text-align:center}
.hero .container{position:relative;z-index:1}
#particle-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:500;color:var(--cyan-400);border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.07);padding:5px 16px;border-radius:var(--r-full);letter-spacing:.06em;margin-bottom:24px}
.hero h1{max-width:760px;margin:0 auto}
.hero .lead{max-width:640px;margin:22px auto 34px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
@media (min-width:768px){
  .hero{text-align:left;padding:120px 0 96px}
  .hero h1{margin:0}
  .hero .lead{margin-left:0}
  .hero-cta{justify-content:flex-start}
}

/* 数据条 */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:56px}
@media (min-width:768px){.stats{grid-template-columns:repeat(4,1fr);margin-top:64px}}
.stat{background:var(--bg-card);border:1px solid var(--border-1);border-radius:var(--r-lg);padding:20px 22px}
.stat-num{display:block;font-size:1.875rem;font-weight:700;line-height:1.2;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.stat-label{display:block;margin-top:4px;color:var(--text-2);font-size:.875rem}

/* ---------- 9. 通用卡片 ---------- */
.card{position:relative;overflow:hidden;background:var(--bg-card);border:1px solid var(--border-1);border-radius:var(--r-xl);padding:28px;transition:transform var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.card-bar::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-brand)}
@media (hover:hover){
  .card:hover{transform:translateY(-4px);border-color:rgba(79,140,255,.55);box-shadow:var(--shadow-card-hover)}
}
.card:active{border-color:rgba(79,140,255,.55)}
.card-kicker{font-size:.75rem;font-weight:600;letter-spacing:.2em;color:var(--cyan-500)}
.card h3{margin:10px 0 4px}
.card .en{display:block;font-size:.8125rem;color:var(--text-3);letter-spacing:.04em;margin-bottom:14px}
.card p{font-size:.9375rem}
.check-list{margin-top:16px;display:grid;gap:8px}
.check-list li{position:relative;padding-left:22px;color:#B9C4D4;font-size:.875rem;line-height:1.6}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--cyan-500);font-weight:600}

/* 服务三卡网格 */
.grid-3{display:grid;gap:20px}
@media (min-width:768px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.grid-3{grid-template-columns:repeat(3,1fr)}}
.grid-2{display:grid;gap:24px}
@media (min-width:768px){.grid-2{grid-template-columns:repeat(2,1fr)}}

/* ---------- 10. Why（要点 + 迷你时间轴） ---------- */
.why-grid{display:grid;gap:48px;align-items:start}
@media (min-width:1080px){.why-grid{grid-template-columns:1.05fr .95fr;gap:56px}}
.points{display:grid;gap:18px;margin-top:24px}
.point{display:flex;gap:14px;align-items:flex-start}
.point-ico{flex:0 0 40px;height:40px;border-radius:var(--r-md);background:rgba(79,140,255,.12);border:1px solid rgba(79,140,255,.35);display:inline-flex;align-items:center;justify-content:center;font-size:1.05em}
.point b{display:block;font-size:.9375rem}
.point span{color:var(--text-2);font-size:.875rem}

/* 时间轴（含迷你版） */
.timeline{background:var(--bg-card);border:1px solid var(--border-1);border-radius:var(--r-xl);padding:26px 28px}
.tl-item{position:relative;display:flex;gap:16px;padding-bottom:22px}
.tl-item::before{content:"";position:absolute;left:5px;top:18px;bottom:2px;width:2px;background:var(--border-1)}
.tl-item:last-child{padding-bottom:0}
.tl-item:last-child::before{display:none}
.tl-dot{flex:0 0 12px;height:12px;border-radius:50%;background:var(--grad-brand);margin-top:7px}
.tl-item b{display:block;font-size:.9375rem}
.tl-item span{display:block;color:var(--text-2);font-size:.875rem}
.tl-cols{display:grid;gap:0}
@media (min-width:768px){.tl-cols{grid-template-columns:1fr 1fr;gap:0 56px}}

/* ---------- 11. 案例卡 ---------- */
.case-grid{display:grid;gap:18px}
@media (min-width:768px){.case-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.case-grid{grid-template-columns:repeat(3,1fr)}}
.case-card{padding:22px 22px 20px}
.case-year{display:inline-block;font-size:.75rem;font-weight:500;color:var(--cyan-400);border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.06);padding:1px 10px;border-radius:var(--r-full);margin-bottom:12px;letter-spacing:.05em}
.case-card b{display:block;font-size:1rem;margin-bottom:6px}
.case-card p{font-size:.875rem}
.case-featured{border-color:rgba(79,140,255,.45);background:linear-gradient(180deg,rgba(79,140,255,.08),var(--bg-card) 60%)}
.case-flag{display:inline-block;font-size:.75rem;color:var(--brand-300);border:1px solid rgba(79,140,255,.4);background:rgba(79,140,255,.08);padding:1px 10px;border-radius:var(--r-full);margin-left:6px;vertical-align:2px}
.case-note{margin-top:20px;color:var(--text-3);font-size:.875rem}
.case-result{display:block;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-1);color:var(--text-2);font-size:.875rem}
.case-result b{font-weight:600;color:var(--cyan-400)}

/* ---------- 12. TopFlow 渐变条（网格纹理） ---------- */
.topflow-strip{position:relative;overflow:hidden;border-radius:var(--r-xl);border:1px solid var(--border-1);padding:40px 32px;background:linear-gradient(120deg,rgba(79,140,255,.12),rgba(34,211,238,.06))}
.topflow-strip::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(143,186,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(143,186,255,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.topflow-strip>*{position:relative;z-index:1}
.topflow-inner{display:grid;gap:20px;align-items:center}
@media (min-width:768px){.topflow-inner{grid-template-columns:1fr auto;gap:32px}.topflow-strip{padding:44px 44px}}
.topflow-inner h3{margin-bottom:8px}
.topflow-inner p{max-width:680px;font-size:.9375rem}

/* ---------- 13. CTA ---------- */
.cta-box{text-align:center}
.cta-box h2{margin-bottom:12px}
.cta-box p{max-width:560px;margin:0 auto 28px}
.cta-mail{font-size:1.0625rem;letter-spacing:.02em}

/* ---------- 14. Page Hero（内页头） ---------- */
.page-hero{position:relative;overflow:hidden;padding:80px 0 48px}
.page-hero .container{position:relative;z-index:1}
.page-hero .eyebrow{display:block;margin-bottom:12px}
.page-hero p{max-width:680px;margin-top:16px;font-size:1.0625rem}
@media (min-width:768px){.page-hero{padding:104px 0 64px}}

/* ---------- 15. About ---------- */
.about-grid{display:grid;gap:40px;align-items:start}
@media (min-width:768px){.about-grid{grid-template-columns:1.15fr .85fr;gap:48px}}
.about-copy p{margin-bottom:16px;color:#B9C4D4}
.about-copy b{color:var(--text-1)}
.facts-card{background:var(--bg-card);border:1px solid var(--border-1);border-radius:var(--r-xl);padding:24px 26px}
.facts-card h3{font-size:1rem;color:var(--cyan-400);letter-spacing:.08em;margin-bottom:14px}
.fact{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed var(--border-1);font-size:.875rem}
.fact:last-child{border-bottom:none}
.fact span{color:var(--text-3)}
.fact b{font-weight:600;color:var(--text-1);text-align:right}

/* 价值观 */
.value-grid{display:grid;gap:18px}
@media (min-width:768px){.value-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.value-grid{grid-template-columns:repeat(4,1fr)}}
.value .ico,.value-grid .ico{font-size:1.5em;margin-bottom:12px;display:block}
.value b{display:block;margin-bottom:6px;font-size:1rem}
.value p{font-size:.875rem}

/* 联系我们 */
.contact-grid{display:grid;gap:40px;align-items:start}
@media (min-width:768px){.contact-grid{grid-template-columns:.9fr 1.1fr;gap:48px}}
.contact-list{display:grid;gap:14px}
.contact-item{display:flex;gap:14px;align-items:flex-start}
.contact-item b{display:block;font-size:.9375rem}
.contact-item span{color:var(--text-2);font-size:.875rem}
.legacy-note{margin-top:20px;color:var(--text-3);font-size:.8125rem}
.legacy-note a{color:#8FA2BA;border-bottom:1px dotted #4A5A72}
.demo-form{background:var(--bg-card);border:1px solid var(--border-1);border-radius:var(--r-xl);padding:26px 28px}
.demo-form h3{font-size:1.0625rem;margin-bottom:4px}
.demo-form .hint{color:var(--text-3);font-size:.8125rem;margin-bottom:18px}
.f-row{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:560px){.f-row{grid-template-columns:1fr 1fr}}
.f-group{margin-bottom:14px}
.f-group label{display:block;font-size:.8125rem;color:var(--text-2);margin-bottom:6px}
.f-group input,.f-group textarea{width:100%;background:var(--bg-input);border:1px solid var(--border-1);border-radius:var(--r-md);color:var(--text-1);padding:10px 14px;font-size:.9375rem;outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.f-group input:focus,.f-group textarea:focus{border-color:var(--brand-500);box-shadow:var(--shadow-focus)}
.f-group textarea{min-height:96px;resize:vertical}
.form-note{color:var(--text-3);font-size:.8125rem;margin-top:12px}

/* ---------- 16. Services ---------- */
.service-block{background:var(--bg-card);border:1px solid var(--border-1);border-radius:var(--r-xl);padding:32px 28px;position:relative;overflow:hidden}
@media (min-width:768px){.service-block{padding:44px 44px}}
.service-head{display:flex;gap:16px;align-items:center}
.service-ico{flex:0 0 52px;width:52px;height:52px;border-radius:var(--r-lg);background:rgba(79,140,255,.12);border:1px solid rgba(79,140,255,.35);display:inline-flex;align-items:center;justify-content:center;font-size:1.5rem}
.service-head .en{display:block;font-size:.8125rem;color:var(--text-3);letter-spacing:.04em;margin-bottom:0}
.service-body{display:grid;gap:24px;margin-top:28px}
@media (min-width:1080px){.service-body{grid-template-columns:1.1fr .9fr;gap:48px}}
.spec{display:grid}
.spec-row{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:11px 0;border-bottom:1px dashed var(--border-1);font-size:.9375rem}
.spec-row:last-child{border-bottom:none}
.spec-row dt{color:var(--cyan-400);font-weight:600;font-size:.8125rem;padding-top:2px}
.spec-row dd{color:var(--text-2)}
.spec-row dd b{color:var(--text-1);font-weight:600}

/* 合作流程步骤条 + SVG 数据流连线 */
.flow{position:relative}
.flow-track{display:none}
@media (min-width:1080px){
  .flow-track{display:block;position:absolute;top:21px;left:52px;right:52px;height:2px;overflow:visible}
}
.flow-steps{display:grid;gap:28px;position:relative;z-index:1}
@media (min-width:1080px){.flow-steps{grid-template-columns:repeat(4,1fr);gap:32px}}
.flow-step{position:relative}
@media (max-width:1079px){.flow-step{border-left:1px dashed var(--border-2);padding-left:18px}}
.flow-num{width:44px;height:44px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-2);display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--brand-300);position:relative;z-index:1;font-size:.9375rem}
.flow-step h4{margin:14px 0 6px}
.flow-step p{font-size:.875rem}
.flow-line{stroke-dasharray:6 10;stroke-width:2;fill:none;animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-64}}

/* FAQ（原生 details 折叠） */
.faq{display:grid;gap:12px}
.faq details{background:var(--bg-card);border:1px solid var(--border-1);border-radius:var(--r-lg);padding:0 20px;transition:border-color var(--dur-fast) var(--ease-out)}
.faq details[open]{border-color:rgba(79,140,255,.45)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;font-weight:600;font-size:.9375rem;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--cyan-500);font-size:1.25rem;line-height:1;transition:transform var(--dur-fast) var(--ease-out)}
.faq details[open] summary::after{content:"−"}
.faq .faq-a{padding:0 0 18px;color:var(--text-2);font-size:.9375rem}

/* ---------- 17. TopFlow 能力卡 / 沉淀模块 ---------- */
.cap-grid{display:grid;gap:18px}
@media (min-width:768px){.cap-grid{grid-template-columns:repeat(2,1fr)}}
.cap-ico{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--r-lg);background:rgba(79,140,255,.12);border:1px solid rgba(79,140,255,.35);font-size:1.375rem;margin-bottom:14px}
.modules-strip{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.modules-strip .eyebrow{margin-right:8px}
.module-chip{font-size:.8125rem;color:var(--text-2);border:1px solid var(--border-1);background:rgba(19,28,46,.6);padding:5px 14px;border-radius:var(--r-full)}
.closing-strip{position:relative;overflow:hidden;border-radius:var(--r-xl);border:1px solid rgba(79,140,255,.35);padding:44px 32px;text-align:center;background:linear-gradient(135deg,rgba(79,140,255,.16),rgba(34,211,238,.1))}
@media (min-width:768px){.closing-strip{padding:56px 48px}}
.closing-strip h2{max-width:760px;margin:0 auto}
.closing-strip p{max-width:560px;margin:14px auto 28px}

/* ---------- 18. 404 ---------- */
.error-section{position:relative;overflow:hidden;padding:96px 0 112px;text-align:center}
.error-section::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(143,186,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(143,186,255,.04) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.error-section .container{position:relative;z-index:1}
.error-code{display:block;font-size:clamp(5rem,16vw,9.5rem);font-weight:700;line-height:1;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.error-section h2{margin:20px 0 12px}
.error-section .lead{max-width:520px;margin:0 auto 32px}
.error-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- 19. Footer ---------- */
.site-footer{border-top:1px solid var(--border-1);background:var(--bg-base);padding:48px 0 32px}
.foot-grid{display:grid;gap:32px}
@media (min-width:768px){.foot-grid{grid-template-columns:1fr auto;align-items:start}}
.foot-slogan{color:var(--text-3);font-size:.875rem;margin-top:10px}
.foot-links{display:grid;gap:4px}
@media (min-width:768px){.foot-links{grid-template-columns:repeat(2,auto)}}
.foot-links a{display:inline-block;padding:4px 0;color:var(--text-2);font-size:.875rem;transition:color var(--dur-fast) var(--ease-out)}
.foot-links a:hover{color:var(--text-1)}
.foot-links a:active{color:var(--cyan-500)}
.foot-bottom{margin-top:32px;padding-top:20px;border-top:1px solid var(--border-3);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;color:var(--text-3);font-size:.8125rem}
.foot-bottom a{color:var(--text-3)}
.foot-bottom a:hover{color:var(--text-2)}

/* ---------- 20. Reveal 动效 ---------- */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.js .reveal.on{opacity:1;transform:none}

/* ---------- 21. prefers-reduced-motion 全局兜底 ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1!important;transform:none!important}
}
