/* ============================================================
   鲸致智能科技 · 设计系统
   原则：深色优先 / 钢青单强调色 / 4pt 栅格 / 圆角上限 6px / 48px 背景网格
   层级靠字重 · 字距 · 等宽字体表达，不靠颜色
   ============================================================ */

/* ---------- 设计令牌：默认深色主题 ---------- */
:root{
  /* 背景 4 层：L-1 沉 → L0 底 → L1 抬升 → L2 悬浮 */
  --bg-sunken:#070910;
  --bg:#0B0E14;
  --surface:#13171F;
  --surface-2:#1B2029;
  /* 描边 2 级 */
  --line:rgba(255,255,255,.10);          /* 装饰分隔 */
  --line-strong:rgba(255,255,255,.36);   /* 交互/状态边界，3.26:1 达标 */
  /* 文本 4 级 */
  --ink:#E9EDF4;
  --ink-2:#AEB8C9;
  --ink-3:#7E8899;
  --ink-4:#4E5766;    /* 仅用于禁用态与纯装饰，不承载正文 */
  /* 强调色（严格单色相） */
  --accent:#4A8FE7;
  --accent-hover:#63A1EF;
  --accent-active:#3F81D6;
  --accent-soft:rgba(74,143,231,.12);
  --on-accent:#0B0E14;
  /* 功能性状态色（仅错误态，非装饰） */
  --danger:#FF7A75;
  /* 其他 */
  --thumb-bg:#161B26;

  /* 字体栈 */
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono","JetBrains Mono",Consolas,monospace;

  /* 字阶：字号 / 字重 / 行高 / 字距 */
  --fs-display:clamp(38px,5.2vw,60px); --lh-display:1.08; --ls-display:-.025em; --fw-display:700;
  --fs-h1:clamp(28px,3.4vw,40px);      --lh-h1:1.20;      --ls-h1:-.018em;      --fw-h1:700;
  --fs-h2:26px;                        --lh-h2:1.26;      --ls-h2:-.012em;      --fw-h2:700;
  --fs-h3:22px;                        --lh-h3:1.32;      --ls-h3:-.006em;      --fw-h3:700;
  --fs-h4:18px;                        --lh-h4:1.40;      --ls-h4:-.002em;      --fw-h4:700;
  --fs-lg:17px;                        --lh-lg:1.72;      --ls-lg:0;            --fw-lg:400;
  --fs-md:15px;                        --lh-md:1.70;      --ls-md:0;            --fw-md:400;
  --fs-sm:13px;                        --lh-sm:1.60;      --ls-sm:.005em;       --fw-sm:400;
  --fs-meta:11.5px;                    --lh-meta:1.40;    --ls-meta:.12em;      --fw-meta:600;
  --fs-num:clamp(32px,3.2vw,44px);     --lh-num:1.00;     --ls-num:-.02em;      --fw-num:700;
  --fs-num-sm:26px;                    --lh-num-sm:1.00;  --ls-num-sm:-.02em;   --fw-num-sm:700;

  /* 间距：4pt 栅格 13 级 */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px;
  --sp-6:24px; --sp-7:32px; --sp-8:40px; --sp-9:48px; --sp-10:64px;
  --sp-11:80px; --sp-12:96px; --sp-13:128px;

  /* 圆角（上限 6px） */
  --r-xs:2px; --r-sm:3px; --r-md:4px; --r-lg:6px;

  /* 阴影 */
  --shadow-1:0 1px 2px rgba(0,0,0,.60);
  --shadow-2:0 4px 16px rgba(0,0,0,.55);
  --shadow-3:0 24px 64px rgba(0,0,0,.70);
  --shadow-edge:inset 0 1px 0 rgba(255,255,255,.06);

  /* 动效 */
  --dur-fast:120ms; --dur-micro:160ms; --dur-comp:280ms; --dur-page:480ms; --dur-count:1400ms;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-std:cubic-bezier(.4,0,.2,1);

  /* 网格 */
  --maxw:1280px; --gutter:24px; --gutter-sm:16px; --pad-x:32px;
  --sec-y:96px; --sec-y-tight:64px; --sec-head-gap:64px;

  /* 层级（只允许取这些值） */
  --z-behind:-1; --z-nav:100; --z-progress:200; --z-modal:300;

  color-scheme:dark;
}

/* ---------- 浅色主题覆盖（默认深色，仅显式声明才切浅色） ---------- */
[data-theme="light"]{
  --bg-sunken:#EAEEF3;
  --bg:#F4F6F9;
  --surface:#FFFFFF;
  --surface-2:#FFFFFF;
  --line:rgba(16,24,40,.12);
  --line-strong:rgba(16,24,40,.56);
  --ink:#0F141B;
  --ink-2:#46505F;
  --ink-3:#5E6875;
  --ink-4:#8A93A1;
  --accent:#2468BB;
  --accent-hover:#205CA6;
  --accent-active:#1B5090;
  --accent-soft:rgba(36,104,187,.08);
  --on-accent:#FFFFFF;
  --danger:#B4232A;
  --thumb-bg:#E7EBF1;
  --shadow-1:0 1px 2px rgba(16,24,40,.06);
  --shadow-2:0 4px 12px rgba(16,24,40,.08);
  --shadow-3:0 16px 40px rgba(16,24,40,.16);
  --shadow-edge:none;
  color-scheme:light;
}

/* ---------- 重置 ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* 注意：不设 scroll-behavior:smooth，统一由 main.js 的 scrollTo({behavior}) 控制，便于 reduced-motion 降级 */
html{-webkit-text-size-adjust:100%}
body{
    font-family:var(--sans);
    background:var(--bg);
    color:var(--ink);
    line-height:1.7;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    font-feature-settings:"kern","liga","calt","tnum";
    transition:background-color var(--dur-fast) var(--ease-std),
               color var(--dur-fast) var(--ease-std),
               border-color var(--dur-fast) var(--ease-std);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,textarea{font:inherit}
em{font-style:italic}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------- 背景网格：48px，深浅两模式都有 ---------- */
.ambient{
    position:fixed;inset:0;z-index:var(--z-behind);pointer-events:none;
    background-image:
        repeating-linear-gradient(to right, rgba(255,255,255,.035) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(to bottom, rgba(255,255,255,.035) 0 1px, transparent 1px 48px);
    -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 20%, #000, transparent 75%);
            mask-image:radial-gradient(ellipse 80% 60% at 50% 20%, #000, transparent 75%);
}
[data-theme="light"] .ambient{
    background-image:
        repeating-linear-gradient(to right, rgba(16,24,40,.035) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(to bottom, rgba(16,24,40,.035) 0 1px, transparent 1px 48px);
}

/* ---------- 容器与 12 栅格 ---------- */
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x)}
.grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gutter)}

/* ---------- 跳转链接（无障碍） ---------- */
.skip-link{
    position:absolute;left:var(--sp-4);top:var(--sp-4);z-index:calc(var(--z-modal) + 1);
    padding:var(--sp-3) var(--sp-5);background:var(--accent);color:var(--on-accent);
    border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:700;
    transform:translateY(-200%);transition:transform var(--dur-fast) var(--ease-std);
}
.skip-link:focus{transform:none}

/* ---------- 按钮：克制，非渐变 ---------- */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
    padding:var(--sp-3) var(--sp-6);font-weight:600;font-size:var(--fs-sm);
    transition:background-color var(--dur-micro) var(--ease-std),
               color var(--dur-micro) var(--ease-std),
               border-color var(--dur-micro) var(--ease-std),
               box-shadow var(--dur-micro) var(--ease-std),
               transform var(--dur-micro) var(--ease-std);
    white-space:nowrap;
}
.btn-primary{
    background:var(--ink);color:var(--bg);
    border-radius:var(--r-sm);
    box-shadow:var(--shadow-1);
}
.btn-primary:hover{
    background:var(--accent-hover);color:var(--on-accent);
    transform:translateY(-2px);
    box-shadow:var(--shadow-2);
}
.btn-primary:active{background:var(--accent-active);transform:none}
.btn-text{
    color:var(--ink-2);padding:var(--sp-3) 0;border-bottom:1px solid var(--line);
}
.btn-text:hover{color:var(--accent);border-color:var(--accent)}
.btn-block{width:100%;border-radius:var(--r-sm)}
/* 禁用态：去交互、降透明度、禁止位移（八态矩阵） */
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none;transform:none;box-shadow:none}
.btn-primary:disabled{background:var(--surface-2);color:var(--ink-3)}
/* 行内图标：箭头 / 关闭，统一 currentColor，不引入 emoji（八态矩阵·默认态） */
.has-arrow{display:inline-flex;align-items:center;gap:6px}
.i-arrow{width:14px;height:14px;flex-shrink:0;transition:transform var(--dur-fast) var(--ease-std)}
.has-arrow:hover .i-arrow{transform:translateX(3px)}
.i-x{width:18px;height:18px;flex-shrink:0}

/* ---------- 导航：细，有底部分隔线 ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);
    transition:background-color var(--dur-comp) var(--ease-std),
               border-color var(--dur-comp) var(--ease-std)}
.nav.scrolled{
    background:rgba(11,14,20,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line);
}
[data-theme="light"] .nav.scrolled{background:rgba(244,246,249,.82)}
.nav-inner{
    max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x);
    height:64px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);
}
.logo{display:flex;align-items:center;gap:var(--sp-3);color:var(--ink);font-weight:700;font-size:var(--fs-md)}
.logo-mark{display:flex;color:var(--accent);line-height:0}
.logo-text{display:flex;align-items:baseline;gap:var(--sp-2);line-height:1}
.logo-text em{font-style:normal;font-size:var(--fs-meta);letter-spacing:var(--ls-meta);color:var(--accent);font-weight:var(--fw-meta);font-family:var(--mono)}

.nav-menu{display:flex;align-items:center;gap:var(--sp-1)}
.nav-link{
    padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);color:var(--ink-2);
    transition:color var(--dur-micro) var(--ease-std);
    position:relative;
}
.nav-link::after{
    content:"";position:absolute;left:var(--sp-4);right:var(--sp-4);bottom:2px;height:2px;
    background:var(--accent);transform:scaleX(0);transform-origin:left center;
    transition:transform var(--dur-comp) var(--ease-out);
}
.nav-link:hover{color:var(--ink)}
.nav-link:hover::after{transform:scaleX(1)}
.nav-link.is-active{color:var(--ink)}
.nav-link.is-active::after{transform:scaleX(1)}
.nav-cta{
    display:inline-flex;align-items:center;gap:6px;
    background:transparent;border:1px solid var(--line-strong);color:var(--ink);margin-left:var(--sp-3);
    border-radius:var(--r-sm);
}
.nav-cta:hover{border-color:var(--line-strong);color:var(--ink)}
.nav-cta::after{display:none}

.nav-toggle{
    display:none;flex-direction:column;gap:5px;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:50%;padding:0;
}
.nav-toggle span{width:20px;height:1.5px;background:var(--ink);transition:transform var(--dur-comp) var(--ease-std)}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){transform:translateY(-6.5px) rotate(-45deg)}

/* 图标按钮：1:1 圆形，统一 36×36 */
.theme-toggle{
    display:flex;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:50%;
    border:1px solid var(--line-strong);background:transparent;color:var(--ink-2);
    transition:color var(--dur-micro) var(--ease-std),border-color var(--dur-micro) var(--ease-std);
    margin-left:var(--sp-2);
}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}
.theme-toggle svg{display:none}
/* 深色（默认）显示太阳，提示可切到浅色 */
.theme-toggle .icon-sun{display:block}
.theme-toggle .icon-moon{display:none}
/* 浅色 显示月亮，提示可切到深色 */
[data-theme="light"] .theme-toggle .icon-sun{display:none}
[data-theme="light"] .theme-toggle .icon-moon{display:block}
.search-toggle{
    display:flex;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:50%;
    border:1px solid var(--line-strong);background:transparent;color:var(--ink-2);
    transition:color var(--dur-micro) var(--ease-std),border-color var(--dur-micro) var(--ease-std);
    margin-left:var(--sp-2);cursor:pointer;
}
.search-toggle:hover{color:var(--accent);border-color:var(--accent)}

/* ============================================================
   Hero：7/5 不对称
   ============================================================ */
.hero{padding:var(--sp-13) 0 var(--sp-10);position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;opacity:0;transition:opacity var(--dur-page) var(--ease-std)}
.hero-bg.show{opacity:1}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,9,16,.78),rgba(11,14,20,.92));z-index:1}
[data-theme="light"] .hero-bg::after{background:linear-gradient(180deg,rgba(244,246,249,.72),rgba(244,246,249,.90))}
.hero-grid{position:relative;z-index:1;
    display:grid;grid-template-columns:1.8fr 1fr;gap:var(--sp-11);align-items:start;
    padding-bottom:var(--sp-9);border-bottom:1px solid var(--line);
}
.hero-kicker{
    display:flex;align-items:center;gap:var(--sp-3);
    font-size:var(--fs-meta);letter-spacing:var(--ls-meta);color:var(--ink-3);font-weight:var(--fw-meta);
    margin-bottom:var(--sp-6);font-family:var(--mono);
}
.kicker-rule{width:24px;height:1px;background:var(--line-strong);display:block}
.hero-kicker em{font-style:normal;color:var(--accent);font-weight:700}
.hero-title{
    font-size:var(--fs-display);font-weight:var(--fw-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);
    margin-bottom:var(--sp-6);color:var(--ink);
}
.hero-title em{
    font-family:var(--sans);font-style:normal;font-weight:700;
    letter-spacing:.01em;
    color:var(--accent);
    padding:0 2px;
}
.hero-lead{
    max-width:620px;font-size:var(--fs-lg);color:var(--ink-2);line-height:var(--lh-lg);margin-bottom:var(--sp-8);
}
.hero-actions{display:flex;align-items:center;gap:var(--sp-6);flex-wrap:wrap}
.hero-banner-cap{margin-bottom:var(--sp-6);font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-2);letter-spacing:.6px;line-height:1.6}

/* 数据栏：编辑式纵向，分隔线非卡片 */
.hero-aside{display:flex;flex-direction:column;gap:0;padding-top:var(--sp-2)}
.aside-item{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5) 0}
.aside-item b{
    font-size:var(--fs-num);font-weight:var(--fw-num);color:var(--ink);
    line-height:var(--lh-num);font-family:var(--mono);letter-spacing:var(--ls-num);
}
.aside-item span{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.6;max-width:240px}
.aside-rule{border:0;border-top:1px solid var(--line);margin:0}

/* hero 底部细节行 */
.hero-foot{
    display:flex;align-items:center;gap:var(--sp-5);position:relative;z-index:1;
    margin-top:var(--sp-8);font-size:var(--fs-meta);color:var(--ink-3);letter-spacing:var(--ls-meta);
    font-family:var(--mono);
}
.foot-line{flex:1;height:1px;background:var(--line)}
.foot-num{text-transform:uppercase}

/* ============================================================
   通用板块
   ============================================================ */
.section{padding:var(--sec-y) 0;position:relative}
.section-tight{padding:var(--sec-y-tight) 0}

/* 段落标题行：左标题 + 右说明，非居中 */
.sec-head-row{
    display:grid;grid-template-columns:1.2fr 1fr;gap:var(--sp-9);align-items:end;
    margin-bottom:var(--sec-head-gap);padding-bottom:var(--sp-6);border-bottom:1px solid var(--line);
}
.sec-index{
    display:block;font-size:var(--fs-meta);letter-spacing:var(--ls-meta);color:var(--ink-3);
    font-weight:var(--fw-meta);font-family:var(--mono);margin-bottom:var(--sp-4);
}
.sec-head-row h2,.split-head h2,.contact-title{
    font-size:var(--fs-h1);font-weight:var(--fw-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1);
}
.sec-head-note{color:var(--ink-2);font-size:var(--fs-md);line-height:var(--lh-md);padding-bottom:var(--sp-1)}

/* 关于：左右分栏 */
.split{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--sp-11);align-items:start}
.split-head h2{margin-bottom:0}
.split-body .lead{font-size:var(--fs-lg);color:var(--ink);line-height:1.9;margin-bottom:var(--sp-6)}
.split-body p{color:var(--ink-2);font-size:var(--fs-md);line-height:1.9;margin-bottom:var(--sp-7)}
.values{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-7)}
.value{
    font-size:var(--fs-md);color:var(--ink-2);padding-left:0;
    border-left:2px solid var(--line);padding:var(--sp-1) 0 var(--sp-1) var(--sp-5);
    transition:border-color var(--dur-comp) var(--ease-std);
}
.value:hover{border-color:var(--line-strong)}
.value strong{color:var(--ink);font-weight:700;margin-right:var(--sp-3);letter-spacing:.5px}

/* ============================================================
   服务：主次混排
   ============================================================ */
.svc-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.svc-major,.svc-minor{padding:var(--sp-9);background:var(--bg);position:relative;transition:background-color var(--dur-comp) var(--ease-std)}
.svc-major:hover,.svc-minor:hover{background:var(--surface)}

.svc-major-head,.svc-minor-head{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6)}
.svc-no{
    font-family:var(--mono);font-size:var(--fs-sm);font-weight:700;color:var(--ink-3);
    letter-spacing:1px;
}
.svc-tag{
    font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:var(--ls-meta);color:var(--ink-3);
    padding:var(--sp-1) var(--sp-2);border:1px solid var(--line-strong);border-radius:var(--r-sm);
}
.svc-major h3,.svc-minor h3{font-size:var(--fs-h3);font-weight:var(--fw-h3);margin-bottom:var(--sp-5);letter-spacing:var(--ls-h3)}
.svc-desc{color:var(--ink-2);font-size:var(--fs-md);line-height:var(--lh-md);margin-bottom:var(--sp-6);max-width:560px}
.svc-list{display:flex;flex-direction:column;gap:var(--sp-4)}
.svc-list li{
    display:flex;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--ink);
    padding-bottom:var(--sp-4);border-bottom:1px dashed var(--line);
}
.svc-list li:last-child{border-bottom:0;padding-bottom:0}
.svc-list li span{color:var(--ink-2)}
.svc-list-tight li em{
    font-family:var(--mono);font-style:normal;font-size:var(--fs-sm);color:var(--ink-3);font-weight:700;
    min-width:24px;
}
.svc-major[data-svc],.svc-minor[data-svc]{cursor:pointer}
.svc-more{display:inline-block;margin-top:var(--sp-6);font-family:var(--mono);font-size:var(--fs-sm);color:var(--accent);letter-spacing:.5px;opacity:.7;transition:opacity var(--dur-fast) var(--ease-std)}
.svc-major[data-svc]:hover .svc-more,.svc-minor[data-svc]:hover .svc-more{opacity:1}

/* ============================================================
   流程：横向编号，非卡片
   ============================================================ */
.process-track{
    display:grid;grid-template-columns:repeat(5,1fr);gap:0;
    border-top:1px solid var(--line);
}
.process-track li{
    padding:var(--sp-7) var(--sp-6) var(--sp-6);position:relative;
    border-right:1px solid var(--line);transition:background-color var(--dur-comp) var(--ease-std);
}
.process-track li:last-child{border-right:0}
.process-track li:hover{background:var(--surface)}
.process-track li em{
    display:block;font-family:var(--mono);font-style:normal;font-size:var(--fs-sm);
    font-weight:700;color:var(--ink-3);margin-bottom:var(--sp-5);letter-spacing:1px;
}
.process-track h4{font-size:var(--fs-h4);font-weight:var(--fw-h4);margin-bottom:var(--sp-3)}
.process-track p{font-size:var(--fs-sm);color:var(--ink-3);line-height:var(--lh-sm)}

/* ============================================================
   Bento 异形网格
   ============================================================ */
.filter-bar{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-self:end}
.chip{
    padding:7px var(--sp-4);font-size:var(--fs-sm);color:var(--ink-2);
    border:1px solid var(--line-strong);background:transparent;
    transition:color var(--dur-micro) var(--ease-std),
               background-color var(--dur-micro) var(--ease-std),
               border-color var(--dur-micro) var(--ease-std);
    border-radius:var(--r-sm);
}
.chip:hover{color:var(--ink);border-color:var(--ink-3)}
.chip.is-active{color:var(--bg);background:var(--ink);border-color:var(--ink)}

.bento{
    display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(180px,auto);
    gap:1px;background:var(--line);border:1px solid var(--line);
}
.bento-cell{
    grid-column:span 1;background:var(--bg);padding:var(--sp-7);
    display:flex;flex-direction:column;
    transition:background-color var(--dur-comp) var(--ease-std),
               transform var(--dur-comp) var(--ease-out),
               box-shadow var(--dur-comp) var(--ease-std);
    position:relative;
}
.bento-cell:hover{background:var(--surface);transform:translateY(-3px);box-shadow:var(--shadow-2),inset 0 0 0 1px var(--line-strong)}
.bento-wide{grid-column:span 2}
.bento-tall{grid-row:span 2}
.cell-no{
    font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-3);font-weight:600;
    letter-spacing:1px;margin-bottom:auto;
}
.bento-cell h4{font-size:var(--fs-h4);font-weight:var(--fw-h4);margin:var(--sp-5) 0 var(--sp-3);letter-spacing:var(--ls-h4)}
.bento-cell p{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.75;margin-bottom:var(--sp-5)}
.cell-tag{
    align-self:flex-start;font-size:var(--fs-meta);color:var(--ink-3);letter-spacing:.5px;
    padding-top:var(--sp-3);border-top:1px solid var(--line);width:100%;font-family:var(--mono);
}

/* ============================================================
   案例：交错叙事
   ============================================================ */
.case-list{display:flex;flex-direction:column;gap:0}
.case-row{
    display:grid;grid-template-columns:360px 1fr;gap:var(--sp-10);align-items:center;
    padding:var(--sp-9) 0;border-bottom:1px solid var(--line);
}
.case-row:first-child{padding-top:0}
.case-row-rev{grid-template-columns:1fr 360px}
.case-row-rev .case-thumb{order:2}
.case-thumb{
    height:260px;display:flex;align-items:center;justify-content:center;
    position:relative;overflow:hidden;border-radius:var(--r-sm);
    background:var(--thumb-bg);border:1px solid var(--line);
}
/* 缩略图占位：统一底色 + 48px 网格线，不用彩色渐变 */
.case-thumb::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:
        repeating-linear-gradient(to right, rgba(255,255,255,.04) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0 1px, transparent 1px 48px);
}
[data-theme="light"] .case-thumb::after{
    background-image:
        repeating-linear-gradient(to right, rgba(16,24,40,.04) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(to bottom, rgba(16,24,40,.04) 0 1px, transparent 1px 48px);
}
.case-thumb span{
    font-family:var(--mono);font-style:normal;font-size:clamp(56px,7vw,88px);font-weight:500;
    color:var(--ink-3);letter-spacing:-2px;position:relative;z-index:0;
}
.case-text{padding:var(--sp-2) 0}
.case-cat{
    font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:1px;color:var(--accent);
    font-weight:600;
}
.case-text h4{font-size:var(--fs-h3);font-weight:var(--fw-h3);margin:var(--sp-3) 0 var(--sp-4);letter-spacing:var(--ls-h3)}
.case-text p{font-size:var(--fs-md);color:var(--ink-2);line-height:var(--lh-md)}
.case-text strong{color:var(--ink);font-weight:700}
.case-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;transition:transform var(--dur-page) var(--ease-std)}
.case-row:hover .case-thumb img{transform:scale(1.04)}
.case-thumb.has-img::after{background-image:linear-gradient(to top,rgba(0,0,0,.35),transparent 55%)}
.case-thumb.has-img span{
    position:absolute;top:var(--sp-3);left:var(--sp-4);z-index:2;font-size:var(--fs-sm);font-style:normal;font-family:var(--mono);
    letter-spacing:.5px;background:rgba(0,0,0,.45);color:#fff;padding:3px var(--sp-3);border-radius:var(--r-sm);font-weight:600;
}
.case-more{
    margin-top:var(--sp-4);background:none;border:none;color:var(--accent);font-family:var(--mono);font-size:var(--fs-sm);
    letter-spacing:.5px;cursor:pointer;padding:0;transition:color var(--dur-fast) var(--ease-std);
}
.case-more:hover{color:var(--accent-hover)}

/* ============================================================
   新闻：日期主导编辑列表
   ============================================================ */
.news-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.news-item{
    display:grid;grid-template-columns:120px 1fr auto;gap:var(--sp-8);align-items:start;
    padding:var(--sp-7) 0;border-bottom:1px solid var(--line);transition:padding var(--dur-comp) var(--ease-std);
}
.news-item:hover{padding-left:var(--sp-3)}
.news-item time{display:flex;flex-direction:column;align-items:flex-start}
.news-item time b{
    font-family:var(--mono);font-style:normal;font-size:var(--fs-num);font-weight:var(--fw-num);
    color:var(--ink);line-height:var(--lh-num);letter-spacing:var(--ls-num);
}
.news-item time span{
    font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-3);letter-spacing:1px;margin-top:var(--sp-2);
}
.news-cat{
    display:inline-block;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:1px;
    color:var(--accent);font-weight:600;margin-bottom:var(--sp-3);
}
.news-content h4{font-size:var(--fs-h4);font-weight:var(--fw-h4);margin-bottom:var(--sp-3);line-height:var(--lh-h4)}
.news-content p{font-size:var(--fs-sm);color:var(--ink-3);line-height:var(--lh-sm);max-width:560px}
.news-link{
    font-size:var(--fs-sm);color:var(--ink-3);font-family:var(--mono);letter-spacing:.5px;
    align-self:center;transition:color var(--dur-micro) var(--ease-std);white-space:nowrap;
}
.news-link:hover{color:var(--accent)}

/* ============================================================
   联系：6/4 不对称
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-11);align-items:start}
.contact-narr .sec-index{margin-bottom:var(--sp-5)}
.contact-title{
    font-size:clamp(32px,4.5vw,46px);font-weight:700;line-height:1.15;letter-spacing:-.8px;
    margin-bottom:var(--sp-6);
}
.contact-lead{font-size:var(--fs-md);color:var(--ink-2);line-height:var(--lh-md);margin-bottom:var(--sp-8);max-width:380px}
.contact-dl{display:flex;flex-direction:column;gap:var(--sp-5)}
.contact-dl div{display:grid;grid-template-columns:64px 1fr;gap:var(--sp-6);align-items:baseline;padding-bottom:var(--sp-4);border-bottom:1px dashed var(--line)}
.contact-dl dt{font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-3);letter-spacing:1px;font-weight:600}
.contact-dl dd{font-size:var(--fs-md);color:var(--ink)}

.contact-form{
    padding:var(--sp-8);background:var(--surface);border:1px solid var(--line);
    border-radius:var(--r-md);
}
.field{margin-bottom:var(--sp-5)}
.field label{display:block;font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:var(--sp-3);font-weight:600;letter-spacing:.3px}
.field label i{color:var(--danger);font-style:normal}
.field input,.field textarea{
    width:100%;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-md);color:var(--ink);
    background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-sm);
    transition:border-color var(--dur-micro) var(--ease-std),box-shadow var(--dur-micro) var(--ease-std);resize:vertical;
}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-4)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field input:disabled,.field textarea:disabled{opacity:.55;cursor:not-allowed}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}
.form-note{margin-top:var(--sp-4);text-align:center;font-size:var(--fs-sm);font-weight:600}

/* ============================================================
   页脚
   ============================================================ */
.footer{border-top:1px solid var(--line);padding:var(--sp-9) 0 var(--sp-6)}
.footer-inner{display:grid;grid-template-columns:1.5fr 2fr;gap:var(--sp-10);margin-bottom:var(--sp-8)}
.footer-brand .logo{margin-bottom:var(--sp-5)}
.footer-brand p{color:var(--ink-3);font-size:var(--fs-sm);line-height:1.8}
.footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6)}
.footer-nav h5{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:var(--ls-meta);color:var(--ink-3);margin-bottom:var(--sp-4);font-weight:var(--fw-meta)}
.footer-nav a{display:block;font-size:var(--fs-sm);color:var(--ink-2);padding:5px 0;transition:color var(--dur-micro) var(--ease-std);position:relative}
.footer-nav a::after{content:"";position:absolute;left:0;bottom:3px;width:0;height:1px;background:var(--accent);transition:width var(--dur-comp) var(--ease-std)}
.footer-nav a:hover{color:var(--ink)}
.footer-nav a:hover::after{width:100%}
.footer-bottom{
    padding-top:var(--sp-6);border-top:1px solid var(--line);
    font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-3);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3);
}
.footer-legal{display:inline-flex;align-items:center;gap:var(--sp-2)}
.footer-legal a{color:var(--ink-3);text-decoration:none;transition:color var(--dur-fast) var(--ease-std)}
.footer-legal a:hover{color:var(--accent)}
.footer-legal .dot{opacity:.5}

/* ============================================================
   滚动揭示
   ============================================================ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity var(--dur-page) var(--ease-out),transform var(--dur-page) var(--ease-out);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:980px){
    .hero-grid{grid-template-columns:1fr;gap:var(--sp-9)}
    .hero-aside{flex-direction:row;flex-wrap:wrap;gap:0}
    .aside-item{flex:1 1 45%;min-width:200px}
    .aside-rule{display:none}
    .split{grid-template-columns:1fr;gap:var(--sp-8)}
    .sec-head-row{grid-template-columns:1fr;gap:var(--sp-6)}
    .filter-bar{justify-self:start}
    .svc-layout{grid-template-columns:1fr}
    .process-track{grid-template-columns:repeat(2,1fr)}
    .process-track li:nth-child(2n){border-right:0}
    .bento{grid-template-columns:repeat(2,1fr)}
    .bento-wide{grid-column:span 2}
    .bento-tall{grid-row:span 1}
    .case-row,.case-row-rev{grid-template-columns:1fr;gap:var(--sp-6)}
    .case-row-rev .case-thumb{order:0}
    .news-item{grid-template-columns:80px 1fr;gap:var(--sp-6)}
    .news-link{grid-column:2;justify-self:start;margin-top:var(--sp-2)}
    .contact-grid{grid-template-columns:1fr;gap:var(--sp-9)}
    .footer-inner{grid-template-columns:1fr;gap:var(--sp-7)}
}
@media (max-width:760px){
    .container{padding:0 var(--sp-5)}
    .nav-menu{
        position:fixed;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
        background:var(--surface-2);
        padding:var(--sp-4) var(--sp-5) var(--sp-6);border-bottom:1px solid var(--line);
        transform:translateY(-130%);transition:transform var(--dur-comp) var(--ease-std);visibility:hidden;
    }
    .nav-menu.open{transform:none;visibility:visible}
    .nav-link{padding:var(--sp-4) 0;border-bottom:1px solid var(--line);font-size:var(--fs-md)}
    .nav-link.is-active::after{display:none}
    .nav-cta{margin:var(--sp-4) 0 0;border-radius:var(--r-sm);padding:var(--sp-4);text-align:center}
    .nav-toggle{display:flex}
    .section{padding:var(--sec-y-tight) 0}
    .hero{padding:var(--sp-11) 0 var(--sp-9)}
    .hero-grid{gap:var(--sp-7);padding-bottom:var(--sp-7)}
    .hero-aside{flex-direction:column}
    .aside-item{flex:1 1 100%}
    .process-track{grid-template-columns:1fr}
    .process-track li{border-right:0;border-bottom:1px solid var(--line)}
    .bento{grid-template-columns:1fr}
    .bento-wide{grid-column:span 1}
    .footer-nav{grid-template-columns:1fr 1fr}
    .footer-bottom{flex-direction:column;gap:var(--sp-2)}
}
@media (prefers-reduced-motion:reduce){
    *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
    .reveal{opacity:1;transform:none}
    .scroll-progress{display:none}
    .hero-deco{display:none}
    .ambient{opacity:.6}
}

/* ============================================================
   案例 / 新闻 详情弹窗
   ============================================================ */
.detail-modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--sp-6)}
.detail-modal[hidden]{display:none}
.detail-mask{position:absolute;inset:0;background:rgba(4,7,14,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.detail-box{
    position:relative;z-index:1;max-width:720px;width:100%;max-height:86vh;overflow-y:auto;
    background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-lg);
    padding:var(--sp-8) var(--sp-9);box-shadow:var(--shadow-3);
}
.detail-close{
    position:absolute;top:var(--sp-4);right:var(--sp-4);width:36px;height:36px;border-radius:50%;
    border:1px solid var(--line-strong);background:transparent;color:var(--ink-2);font-size:20px;cursor:pointer;
    transition:color var(--dur-fast) var(--ease-std),border-color var(--dur-fast) var(--ease-std),transform var(--dur-micro) var(--ease-std);
}
.detail-close:hover{color:var(--ink);border-color:var(--ink-3);transform:rotate(90deg)}
.detail-meta{
    font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:1px;color:var(--accent);font-weight:600;margin-bottom:var(--sp-4);
}
.detail-title{font-size:var(--fs-h2);font-weight:var(--fw-h2);letter-spacing:var(--ls-h2);line-height:var(--lh-h2);margin-bottom:var(--sp-5)}
.detail-img{width:100%;border-radius:var(--r-lg);margin:var(--sp-1) 0 var(--sp-5);max-height:360px;object-fit:cover}
.detail-content{font-size:var(--fs-md);color:var(--ink-2);line-height:1.9}
.detail-content strong{color:var(--ink)}
.detail-metric{
    margin-top:var(--sp-5);padding:var(--sp-4) var(--sp-5);border-left:2px solid var(--accent);background:var(--accent-soft);
    border-radius:0 var(--r-md) var(--r-md) 0;font-size:var(--fs-md);color:var(--ink);font-weight:600;
}
@media (max-width:760px){
    .detail-box{padding:var(--sp-7) var(--sp-6)}
    .detail-title{font-size:var(--fs-h3)}
}

/* ============================================================
   加入：招聘 + 合作伙伴
   ============================================================ */
.join-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--sp-10);margin-top:var(--sp-9)}
.join-sub{font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:1px;color:var(--ink-3);margin-bottom:var(--sp-6);text-transform:uppercase}
.job-list{list-style:none;padding:0;margin:0}
.job-list li{padding:var(--sp-6) 0;border-bottom:1px dashed var(--line)}
.job-list li:last-child{border-bottom:0}
.job-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-2)}
.job-head h4{font-size:var(--fs-h4);font-weight:var(--fw-h4)}
.job-loc{font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap}
.job-list p{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.7;margin:0}
.job-note{margin-top:var(--sp-6);font-size:var(--fs-sm);color:var(--ink-3)}
.job-note a{color:var(--accent)}
.partner{background:var(--bg);padding:var(--sp-8);border-left:2px solid var(--line-strong)}
.partner-lead{font-size:var(--fs-md);line-height:1.8;color:var(--ink-2);margin-bottom:var(--sp-6)}
.partner-list{list-style:none;padding:0;margin:0 0 var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}
.partner-list li{font-size:var(--fs-sm);color:var(--ink-2)}
.partner-list li strong{display:inline-block;margin-right:var(--sp-3);color:var(--ink);font-family:var(--mono);font-size:var(--fs-sm);min-width:80px}
.partner-cta{font-size:var(--fs-md);color:var(--ink)}
.partner-cta a{color:var(--accent);font-weight:600}
@media (max-width:760px){
    .join-layout{grid-template-columns:1fr;gap:var(--sp-8)}
    .partner{padding:var(--sp-6)}
}

/* ============================================================
   站内搜索弹窗
   ============================================================ */
.search-modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-11) var(--sp-5)}
.search-modal[hidden]{display:none}
.search-mask{position:absolute;inset:0;background:rgba(4,7,14,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.search-box{
    position:relative;z-index:1;width:100%;max-width:640px;background:var(--bg);
    border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-3);
    overflow:hidden;
}
.search-input-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}
.search-input-row svg{color:var(--ink-3);flex-shrink:0}
.search-input-row input{flex:1;background:transparent;border:none;outline:none;color:var(--ink);font-size:var(--fs-md)}
.search-input-row input::placeholder{color:var(--ink-3)}
.search-close{width:32px;height:32px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink-2);font-size:18px;cursor:pointer;flex-shrink:0}
.search-close:hover{color:var(--ink);border-color:var(--ink-3)}
.search-results{max-height:60vh;overflow-y:auto;padding:var(--sp-2)}
.search-group{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:1px;color:var(--ink-3);padding:var(--sp-3) var(--sp-3) var(--sp-1)}
.search-item{display:block;width:100%;text-align:left;background:transparent;border:none;border-radius:var(--r-lg);padding:var(--sp-3);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-std)}
.search-item:hover,.search-item.is-active{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-strong)}
.search-item .si-cat{font-family:var(--mono);font-size:var(--fs-meta);color:var(--accent);letter-spacing:.5px}
.search-item b{display:block;font-size:var(--fs-md);color:var(--ink);margin:3px 0 var(--sp-1);font-weight:600}
.search-item p{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.search-empty{color:var(--ink-3);font-size:var(--fs-sm);padding:var(--sp-6) var(--sp-3);text-align:center}
@media (max-width:760px){
    .search-modal{padding:var(--sp-6) var(--sp-3)}
}

/* ============================================================
   404 错误页（全站唯一允许居中的页面）
   ============================================================ */
.error-page{
    min-height:100vh;display:flex;align-items:center;justify-content:center;
    padding:var(--sp-8) var(--sp-6);box-sizing:border-box;
}
.error-inner{max-width:520px;text-align:center}
.error-code{
    font-family:var(--mono);font-size:clamp(96px,18vw,168px);font-weight:700;
    line-height:1;letter-spacing:-.04em;color:var(--ink);
    margin-bottom:var(--sp-2);
}
.error-kicker{
    font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.24em;
    color:var(--ink-3);margin:0 0 var(--sp-5);
}
.error-title{
    font-family:var(--sans);font-size:var(--fs-h2);font-weight:var(--fw-h2);
    color:var(--ink);margin:0 0 var(--sp-4);letter-spacing:var(--ls-h2);
}
.error-desc{
    font-size:var(--fs-md);line-height:var(--lh-md);color:var(--ink-2);margin:0 0 var(--sp-7);
}
.error-cta{display:inline-block;padding:var(--sp-3) var(--sp-6);font-size:var(--fs-sm)}

/* API 降级占位 */
.degrade-note{
    grid-column:1/-1;padding:var(--sp-7) var(--sp-5);text-align:center;
    font-size:var(--fs-sm);color:var(--ink-3);line-height:1.7;
    border:1px dashed var(--line);border-radius:var(--r-md);
    background:color-mix(in srgb,var(--bg) 60%,transparent);
}

/* ============================================================
   滚动进度条 + hero 几何锚点
   ============================================================ */
.scroll-progress{
    position:fixed;top:0;left:0;height:2px;width:0;z-index:var(--z-progress);
    background:var(--accent);pointer-events:none;
}
.hero-deco{
    position:absolute;right:-8%;top:8%;width:680px;height:680px;
    z-index:0;opacity:.7;pointer-events:none;
    transition:opacity var(--dur-comp) var(--ease-std);
}
[data-theme="light"] .hero-deco{opacity:.5}
@media (max-width:980px){.hero-deco{display:none}}

/* ============================================================
   响应式补充（T05）：1200 / 480 断点 + 触控目标 + 高对比 / 强制色彩
   ============================================================ */
@media (max-width:1200px){
  :root{--sec-y:80px;--sec-head-gap:48px}
  .hero{padding:var(--sp-12) 0 var(--sp-9)}
}
/* 触控优先：≤980 时交互元素 ≥ 44×44，便于手指点击 */
@media (max-width:980px){
  .nav-link,.chip,.btn{padding-top:12px;padding-bottom:12px}
  .chip{padding-left:var(--sp-4);padding-right:var(--sp-4)}
  .search-close,.detail-close,.theme-toggle,.search-toggle{width:44px;height:44px}
  .field input,.field textarea{padding:var(--sp-4)}
}
@media (max-width:480px){
  :root{--pad-x:var(--sp-5);--sp-9:var(--sp-8);--sp-11:var(--sp-10)}
  .hero-title{font-size:clamp(30px,8.5vw,40px)}
  .bento{grid-template-columns:1fr}
  .process-track{grid-template-columns:1fr}
  .footer-nav{grid-template-columns:1fr 1fr}
  .hero-actions{gap:var(--sp-4)}
  .aside-item{flex:1 1 100%}
  .contact-dl div{grid-template-columns:56px 1fr;gap:var(--sp-4)}
}

/* 高对比模式增强：加粗分隔、提亮次级文本 */
@media (prefers-contrast:more){
  :root{
    --line:rgba(255,255,255,.32);
    --line-strong:rgba(255,255,255,.72);
    --ink-2:#D7DEEA;
    --ink-3:#AEB8C9;
  }
  [data-theme="light"]{
    --line:rgba(16,24,40,.32);
    --line-strong:rgba(16,24,40,.72);
    --ink-2:#2A323E;
    --ink-3:#3C4654;
  }
  .field input,.field textarea{border-color:var(--line-strong)}
  .value,.contact-dl div,.svc-list li,.job-list li{border-color:var(--line-strong)}
  a:hover{text-decoration:underline}
}
/* 强制色彩模式：用系统色，确保焦点与边界可见 */
@media (forced-colors:active){
  .skip-link,.btn,.chip,.search-close,.detail-close,.theme-toggle,.search-toggle{border:1px solid ButtonText}
  .field input,.field textarea{border:1px solid ButtonText}
  a:hover{outline:1px solid Highlight}
  :focus-visible{outline:2px solid Highlight;outline-offset:2px}
  .ambient{display:none}
}
