/* ===== tokens ===== */
:root{
  /* LangChain 风深空科技感：深空 navy 底 + 冰蓝文字 + 发光天蓝强调 */
  --bg:#030710; --bg-2:#060D1C; --line:#14273D; --line-2:#2F4B68;
  --card:#081221; --card-2:#0B1729;
  --txt:#CCE9FF; --txt-2:#7E9CBF;
  --accent:#7FC8FF; --accent-2:#2E7CE6; --ice:#E5F4FF;
  --paper:#F2FAFF; --paper-txt:#041018; --paper-txt-2:#46627F; --paper-line:#C3DCEF;
  --grad:linear-gradient(120deg,#9FD4FF,#3B82F6);
  --glow:0 0 22px rgba(127,200,255,.45),0 0 80px rgba(46,124,230,.3);
  --r:12px; --r-s:8px;
  --font:"Microsoft YaHei","PingFang SC","HarmonyOS Sans SC","Segoe UI",system-ui,sans-serif;
  --mono:ui-monospace,"Cascadia Code","JetBrains Mono",Consolas,"Microsoft YaHei","PingFang SC",monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font:16px/1.8 var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden;color-scheme:dark}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img,svg{vertical-align:middle;max-width:100%}
::selection{background:rgba(127,200,255,.32);color:#F2FAFF}

.container{width:min(1160px,92%);margin-inline:auto}
.grad-text{color:var(--accent)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:.32em 1em;border:1px solid rgba(127,200,255,.28);border-radius:999px;font:12px/1.7 var(--mono);letter-spacing:.16em;color:var(--accent);background:rgba(127,200,255,.05)}
.pill::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);flex:none}

/* ===== header ===== */
.site-header{position:sticky;top:0;z-index:50;background:rgba(3,7,16,.78);border-bottom:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.nav{display:flex;align-items:center;justify-content:space-between;height:66px;gap:14px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:19px;letter-spacing:.06em;color:#F2FAFF}
.brand small{display:block;font:10px/1.3 var(--mono);font-weight:400;color:var(--txt-2);letter-spacing:.24em}
.nav-links{display:flex;gap:4px;margin-inline:auto}
.nav-links a{padding:8px 15px;border-radius:6px;font:14px/1.6 var(--mono);letter-spacing:.03em;color:var(--txt-2);transition:.2s}
.nav-links a:hover{color:var(--txt)}
.nav-links a.active{color:var(--accent)}
.nav-right{display:flex;align-items:center;gap:10px;flex:none}
.nav-toggle{display:none;background:none;border:0;color:var(--txt);cursor:pointer;padding:8px}

/* ===== hero 通用 ===== */
.hero{position:relative;overflow:hidden;padding:110px 0 70px;text-align:center}
.hero.sub{padding:96px 0 56px}
.hero h1{font-size:clamp(32px,5vw,62px);font-weight:300;line-height:1.28;letter-spacing:.015em;margin:22px 0 16px;color:var(--accent);text-shadow:var(--glow)}
.hero .lead{max-width:620px;margin:0 auto 34px;color:var(--txt-2);font-size:clamp(15px,1.4vw,17.5px)}
.hero.sub .lead{margin-bottom:0}
.hero-glow{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero-glow::before,.hero-glow::after{content:"";position:absolute;border-radius:50%;filter:blur(100px);opacity:.5;animation:drift 18s ease-in-out infinite alternate}
.hero-glow::before{width:560px;height:560px;left:6%;top:-180px;background:radial-gradient(circle,rgba(46,124,230,.30),transparent 65%)}
.hero-glow::after{width:480px;height:480px;right:2%;top:40px;background:radial-gradient(circle,rgba(127,200,255,.18),transparent 65%);animation-delay:-9s}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(60px,40px) scale(1.12)}}

/* ===== hero 汇聚曲线（首页签名元素）===== */
.hero-art{position:relative;margin-top:56px;height:clamp(220px,32vw,400px)}
.hero-art svg{position:absolute;inset:0;width:100%;height:100%}
.hero-art .labels{position:relative;z-index:2;display:flex;justify-content:space-between;padding:0 5%}
.hero-art .labels .pill{background:rgba(6,13,28,.85);backdrop-filter:blur(6px)}
.flow-line{animation:dashFlow 7s linear infinite}
@keyframes dashFlow{to{stroke-dashoffset:-100}}

/* ===== 按钮/区块/卡片 ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 24px;border-radius:6px;background:var(--ice);color:#030710;font:600 14px/1.6 var(--mono);letter-spacing:.04em;transition:.25s;border:0;cursor:pointer}
.btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 0 24px rgba(127,200,255,.35),0 8px 30px rgba(46,124,230,.25)}
.btn-ghost{background:transparent;border:1px solid var(--line-2);color:var(--txt)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(127,200,255,.05);box-shadow:0 0 20px rgba(127,200,255,.12)}
.btn-arrow::after{content:"↗";font-size:.95em}
.btn-nav{padding:8px 16px;font-size:13px}
.section{padding:96px 0}
.section.alt{background:var(--bg-2);border-block:1px solid var(--line)}
.section-head{border-top:1px solid var(--line);padding-top:22px;margin-bottom:48px}
.section-head h2{font-size:clamp(26px,3.4vw,42px);font-weight:300;letter-spacing:.01em;color:var(--accent);margin:16px 0 12px}
.section-head p{color:var(--txt-2);max-width:560px}
.grid-2,.grid-3,.grid-4{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.glass-card{background:linear-gradient(180deg,var(--card-2),var(--card));border:1px solid var(--line);border-radius:var(--r);padding:30px 26px;transition:.3s}
.glass-card:hover{border-color:rgba(127,200,255,.5);transform:translateY(-3px);box-shadow:0 0 0 1px rgba(127,200,255,.14),0 16px 44px rgba(3,7,16,.6),0 0 36px rgba(46,124,230,.14)}
.glass-card .icon{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:rgba(127,200,255,.08);border:1px solid rgba(127,200,255,.22);color:var(--accent);margin-bottom:18px}
.glass-card h3{font-size:18.5px;font-weight:600;color:var(--ice);margin-bottom:10px}
.glass-card p,.glass-card li{color:var(--txt-2);font-size:14.5px}
.glass-card ul li{padding-left:18px;position:relative;margin-top:8px}
.glass-card ul li::before{content:"";position:absolute;left:0;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px rgba(127,200,255,.8)}

/* ===== 浅色反转带（数据）===== */
.section.light{background:var(--paper);color:var(--paper-txt);border-block:1px solid #E2EFF9}
.section.light .stat{text-align:left;border-top:1px solid var(--paper-line);padding:22px 6px 8px}
.section.light .stat .num{color:var(--paper-txt)}
.section.light .stat p{color:var(--paper-txt-2)}
.section.light .grad-text{color:inherit}

/* ===== 首页组件 ===== */
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.stat .num{font-size:clamp(40px,4.6vw,64px);font-weight:300;line-height:1.2;letter-spacing:-.01em}
.stat .num small{font-size:.5em;font-weight:400;margin-left:2px}
.stat p{font:13px/1.7 var(--mono);letter-spacing:.1em;margin-top:6px;color:var(--txt-2)}
.stat{padding:20px 10px}
.step-no{display:block;font:300 30px/1.3 var(--mono);color:var(--accent);margin-bottom:10px;text-shadow:0 0 18px rgba(127,200,255,.5)}
.col-mid{grid-column:2}
@media (max-width:767px){.col-mid{grid-column:auto}}
[id]{scroll-margin-top:90px}
.cta-final .section-head{border-top:0;padding-top:0;text-align:center}
.cta-final .section-head p{margin-inline:auto}

/* ===== 产品页 ===== */
.prod-list{display:grid;gap:24px}
.prod{display:grid;grid-template-columns:1fr 1.6fr;gap:10px 36px;align-items:start;padding:36px 34px}
.prod h3{font-size:21px;margin:0 0 8px}
.prod .tag{color:var(--txt-2);font-size:14.5px}
.prod ul{margin-top:2px}
@media (max-width:767px){.prod{grid-template-columns:1fr;padding:28px 22px}}

/* ===== 页脚 ===== */
.site-footer{border-top:1px solid var(--line);background:#02050D;padding:66px 0 0;font-size:14px;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px;padding-bottom:40px}
.footer-grid>div{border-top:1px solid var(--line);padding-top:22px}
.footer-grid h4{font-size:16px;font-weight:400;color:var(--accent);margin-bottom:16px}
.footer-grid li{margin-top:10px}
.footer-grid a,.footer-grid p{color:var(--txt-2)}
.footer-grid li,.footer-grid li a{font:13px/1.8 var(--mono);letter-spacing:.02em}
.footer-grid a:hover{color:var(--accent)}
.footer-mark{font-size:clamp(64px,14.5vw,200px);font-weight:800;line-height:1.1;letter-spacing:.04em;text-align:center;white-space:nowrap;user-select:none;color:transparent;-webkit-text-stroke:1.5px #11213A;-webkit-mask-image:linear-gradient(#000 45%,rgba(0,0,0,.25));mask-image:linear-gradient(#000 45%,rgba(0,0,0,.25))}
@supports not (-webkit-text-stroke:1px #000){.footer-mark{color:#0A1526}}
.footer-bar{display:flex;justify-content:space-between;align-items:center;gap:10px 24px;flex-wrap:wrap;border-top:1px solid var(--line);padding:18px 0;color:var(--txt-2);font:12.5px/1.8 var(--mono)}
.footer-bar a{color:var(--txt-2)}
.footer-bar a:hover{color:var(--accent)}
.status{display:inline-flex;align-items:center;gap:9px}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:pulse 3s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
.placeholder{border-bottom:1px dashed rgba(127,200,255,.55)}
.qr{display:inline-block;background:#fff;padding:8px;border-radius:12px;line-height:0;border:1px solid var(--line-2)}
.qr img{width:164px;height:164px;filter:hue-rotate(195deg) saturate(.85)}
.qr.qr-s img{width:104px;height:104px}

/* ===== 动效 ===== */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* ===== 新闻/招聘 ===== */
.news-item{display:grid;grid-template-columns:120px 1fr;gap:8px 28px;align-items:center;padding:26px 30px}
.news-item .date{font:15px/1.6 var(--mono);letter-spacing:.08em;color:var(--accent);white-space:nowrap}
.news-item h3{font-size:17px;margin-bottom:4px}
.news-item p{margin:0}
.job-meta{display:flex;gap:8px;margin:4px 0 14px;flex-wrap:wrap}
.job-meta .pill{font-size:11px;letter-spacing:.08em}
.job-part{font:12px/1.7 var(--mono);color:var(--accent);margin:14px 0 2px;letter-spacing:.14em}
@media (max-width:767px){.news-item{grid-template-columns:1fr;padding:22px}}

/* ===== 时间轴（关于页） ===== */
.timeline{position:relative;max-width:760px;margin-inline:auto}
.timeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1.5px;background:linear-gradient(180deg,transparent,var(--line-2) 10%,var(--line-2) 90%,transparent);transform:translateX(-50%)}
.tl-item{position:relative;width:50%;padding:0 40px 44px}
.tl-item:nth-child(odd){left:0;text-align:right}
.tl-item:nth-child(even){left:50%}
.tl-item::before{content:"";position:absolute;top:6px;width:13px;height:13px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 12px rgba(127,200,255,.65)}
.tl-item:nth-child(odd)::before{right:-7px}
.tl-item:nth-child(even)::before{left:-7px}
.tl-item .year{font:300 21px/1.5 var(--mono);letter-spacing:.06em;color:var(--accent)}
.tl-item p{color:var(--txt-2);font-size:14.5px}

/* ===== 响应式 ===== */
@media (max-width:1199px){.grid-4{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:767px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:rgba(3,7,16,.97);border-bottom:1px solid var(--line);padding:14px 4%;display:none;margin:0}
  .nav-links.open{display:flex}
  .btn-nav{padding:7px 12px;font-size:12px}
  .hero{padding:70px 0 50px}
  .hero.sub{padding:64px 0 44px}
  .hero-art .labels{padding:0 2%}
  .hero-art .labels .pill{font-size:10px;letter-spacing:.06em;padding:.3em .7em;gap:5px}
  .section{padding:60px 0}
  .footer-grid{grid-template-columns:1fr}
  .footer-bar{justify-content:center;text-align:center}
  .timeline::before{left:8px}
  .tl-item{width:100%;left:0!important;text-align:left!important;padding:0 0 34px 34px}
  .tl-item::before{left:1px!important;right:auto!important}
}
