
/* ============================================================
   字号比例体系（11 档梯度）：12.5 / 14 / 16.5 / 18 / 21 / 25 / 30 / 36 / 44 / 56 / 70
   规则：正文 18；卡片正文 18；说明标签 14-16.5；卡片标题 21；
        区块 H2 36-56；Hero 40-84；数字 38-70。新样式必须取档位值。
   ============================================================ */
/* ============================================================
   Smartwell · NOVA 深空科技主题 v3 (全栈版)
   ============================================================ */
:root{
  --bg:#070b10; --bg2:#0b1219; --card:#101821; --card2:#141f2b;
  --line:rgba(148,220,255,.10); --line2:rgba(148,220,255,.18);
  --text:#e8f2ee; --muted:#8ba3ab; --dim:#5f7680;
  --green:#34f5a1; --green2:#0fdf8f; --cyan:#37d6ff; --gold:#e8c15a; --red:#ff6d6d; --violet:#a78bfa;
  --grad:linear-gradient(120deg,#34f5a1,#37d6ff);
  --shadow:0 24px 60px rgba(0,0,0,.5);
  --radius:18px;
  --font:"Space Grotesk","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.75;overflow-x:hidden;font-size:18px;word-break:break-word}
::selection{background:rgba(52,245,161,.28)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-weight:700;line-height:1.3;letter-spacing:.01em;text-wrap:balance}
h1:lang(zh),h2:lang(zh),h3:lang(zh){letter-spacing:.02em}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.muted{color:var(--muted)} .small{font-size:14px}
p{text-wrap:pretty}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.glass{background:rgba(16,24,33,.66);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}

/* ---------- 预载 DNA ---------- */
#preloader{position:fixed;inset:0;z-index:999;background:var(--bg);display:flex;flex-direction:column;gap:22px;align-items:center;justify-content:center;transition:opacity .6s,visibility .6s}
#preloader.done{opacity:0;visibility:hidden}
.dna{display:flex;gap:7px;height:60px;align-items:center}
.dna i{width:5px;height:14px;border-radius:99px;background:var(--grad);animation:dnaJump 1.2s ease-in-out infinite}
.dna i:nth-child(odd){background:linear-gradient(120deg,#37d6ff,#a78bfa)}
.dna i:nth-child(2){animation-delay:.1s}.dna i:nth-child(3){animation-delay:.2s}.dna i:nth-child(4){animation-delay:.3s}
.dna i:nth-child(5){animation-delay:.4s}.dna i:nth-child(6){animation-delay:.5s}.dna i:nth-child(7){animation-delay:.6s}
.dna i:nth-child(8){animation-delay:.7s}.dna i:nth-child(9){animation-delay:.8s}.dna i:nth-child(10){animation-delay:.9s}
@keyframes dnaJump{0%,100%{transform:scaleY(1)}50%{transform:scaleY(3.4)}}
.pl-tag{font-size:14px;letter-spacing:.5em;color:var(--dim);text-indent:.5em}

/* ---------- 进度条 / 导航 ---------- */
#progressbar{position:fixed;top:0;left:0;height:2px;width:0;background:var(--grad);z-index:1002}
#nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;gap:26px;padding:0 30px;height:68px;transition:.35s;border-bottom:1px solid transparent}
#nav.scrolled{background:rgba(7,11,16,.82);backdrop-filter:blur(16px);border-bottom-color:var(--line);height:58px}
.logo{display:flex;align-items:center;gap:10px;font-size:17px;letter-spacing:.08em}
.logo-tick{font-size:10px;color:var(--green);letter-spacing:.14em;margin-left:2px}
.logo-mark{width:22px;height:22px;border-radius:6px;background:var(--grad);position:relative;flex:none}
.logo-mark::after{content:"";position:absolute;inset:5px;border-radius:3px;background:var(--bg)}
.navlinks{display:flex;gap:4px;margin-left:auto}
.navlinks>a,.navdrop>a{padding:8px 15px;font-size:16.5px;color:var(--muted);border-radius:9px;transition:.22s}
.navlinks>a:hover,.navdrop>a:hover,.navlinks>a.on{color:var(--text);background:rgba(148,220,255,.07)}
.navdrop{position:relative;display:flex}
.navdrop>a{display:flex;align-items:center;height:100%}
.dropmenu{position:absolute;top:calc(100% + 6px);left:0;min-width:230px;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:8px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s;box-shadow:var(--shadow)}
.navdrop:hover .dropmenu{opacity:1;visibility:visible;transform:translateY(0)}
.dropmenu a{display:block;padding:9px 13px;font-size:16.5px;color:var(--muted);border-radius:8px;white-space:nowrap}
.dropmenu a:hover{color:var(--text);background:rgba(148,220,255,.07)}
.dropmenu a.sub{padding-left:28px;font-size:14px;display:block}
.dropgroup{display:flex;flex-direction:column;border-top:1px dashed var(--line);margin:4px 0;padding-top:4px}
.nav-right{display:flex;align-items:center;gap:14px}
.lang-switch{display:flex;border:1px solid var(--line2);border-radius:99px;overflow:hidden}
.lang-switch button{background:none;border:none;color:var(--dim);font-size:14px;padding:5px 12px;cursor:pointer;font-family:var(--font);transition:.2s}
.lang-switch button.on{background:var(--grad);color:#04231a;font-weight:700}
.nav-cta{font-size:14px;padding:8px 18px;border-radius:99px;background:var(--grad);color:#04231a;font-weight:700;transition:.25s;white-space:nowrap}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(52,245,161,.35)}
#burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:4px}
#burger i{width:20px;height:2px;background:var(--text);transition:.3s}

/* ---------- 通用版块 ---------- */
section{position:relative}
.sec{padding:100px 0}
.sec-head{max-width:780px;margin-bottom:52px}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;letter-spacing:.26em;color:var(--green);text-transform:uppercase;margin-bottom:16px}
.kicker::before{content:"";width:26px;height:1px;background:var(--green)}
.sec-head h2{font-size:clamp(36px,4.6vw,56px);margin-bottom:16px}
.sec-head p{color:var(--muted);font-size:16px}
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:.35s;position:relative;overflow:hidden}
.card:hover{border-color:var(--line2);transform:translateY(-4px);box-shadow:var(--shadow)}
.card h3{font-size:21px;margin-bottom:11px}
.card p{color:var(--muted);font-size:18px}
.icon-chip{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:22px;background:rgba(52,245,161,.10);border:1px solid rgba(52,245,161,.25);margin-bottom:16px}
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
.glow-card{position:relative}
.glow-card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from var(--ang),transparent 0%,rgba(52,245,161,.8) 12%,rgba(55,214,255,.5) 22%,transparent 34%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spinAng 6s linear infinite;pointer-events:none;opacity:0;transition:.3s}
.glow-card:hover::before{opacity:1}
@keyframes spinAng{to{--ang:360deg}}
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 28px;border-radius:99px;font-size:16.5px;font-weight:700;cursor:pointer;border:none;font-family:var(--font);transition:.25s;position:relative;overflow:hidden}
.btn.primary{background:var(--grad);color:#04231a}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(52,245,161,.35)}
.btn.ghost{border:1px solid var(--line2);color:var(--text);background:transparent}
.btn.ghost:hover{border-color:var(--green);color:var(--green)}
.btn.sweep::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:.6s}
.btn.sweep:hover::after{left:130%}
.tagchip{display:inline-block;font-size:14px;padding:4px 12px;border-radius:99px;border:1px solid rgba(52,245,161,.35);color:var(--green);letter-spacing:.05em}
.tagchip.cy{border-color:rgba(55,214,255,.35);color:var(--cyan)}
.tagchip.gold{border-color:rgba(232,193,90,.4);color:var(--gold)}
.note-demo{font-size:14px;color:var(--dim);border:1px dashed var(--line2);border-radius:10px;padding:8px 14px;display:inline-flex;gap:8px;align-items:center}

/* ---------- HERO ---------- */
.hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding-top:68px}
.hero-canvas{position:absolute;inset:0;z-index:0}
.hero-canvas canvas,.brain-stage canvas{width:100%;height:100%;display:block}
.hero-inner{position:relative;z-index:2;padding:80px 0}
.hero h1{font-size:clamp(40px,6.2vw,84px);line-height:1.14;margin:18px 0 20px;max-width:920px;text-wrap:balance}
.hero .sub{color:var(--muted);font-size:clamp(19px,2.1vw,23px);max-width:660px;margin-bottom:34px}
.hero .word{display:inline-block}
.hero .word.acc{color:var(--green)}
.hero-badges{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px}
.stat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:64px}
.stat{border:1px solid var(--line);border-radius:16px;padding:22px 18px;background:rgba(16,24,33,.55);backdrop-filter:blur(8px);transition:.3s;text-align:center}
.stat:hover{border-color:rgba(52,245,161,.4);transform:translateY(-3px)}
.stat b{display:block;font-size:clamp(38px,4.8vw,70px);color:var(--green);font-weight:700;line-height:1.2;margin-bottom:4px}
.stat span{font-size:16.5px;color:var(--muted)}
.scroll-hint{position:absolute;bottom:64px;left:50%;transform:translateX(-50%);color:var(--dim);font-size:12.5px;letter-spacing:.3em;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}
.scroll-hint::after{content:"";width:1px;height:34px;background:linear-gradient(var(--green),transparent);animation:hintDrop 1.6s ease-in-out infinite}
@keyframes hintDrop{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}
/* 跑马灯：定位在 hero 之下，作为独立"快讯条" */
.ticker-wrap{position:relative;z-index:3;background:linear-gradient(90deg,rgba(16,24,33,.92),rgba(16,24,33,.65),rgba(16,24,33,.92));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;display:flex;align-items:center}
.ticker-label{flex:none;padding:0 26px;font-size:14px;letter-spacing:.22em;color:var(--green);border-right:1px solid var(--line2);white-space:nowrap}
.ticker-box{flex:1;overflow:hidden}
.ticker{display:flex;gap:0;white-space:nowrap;animation:tick 36s linear infinite;width:max-content;font-size:18px}
.ticker span{font-size:18px;color:var(--muted)}
.ticker b{color:var(--green);font-weight:700}
.ticker .dot{color:var(--dim);margin:0 26px}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- PIN 场景 ---------- */
.pin-shell{position:relative}
.pin-view{min-height:100vh;display:none;align-items:center;position:relative;overflow:hidden}
.pin-view.on{display:flex}
.pin-view .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;width:100%}
.pin-num{font-size:14px;color:var(--dim);letter-spacing:.24em;margin-bottom:14px}
.pin-view h2{font-size:clamp(30px,4vw,50px);margin-bottom:16px}
.pin-view p{color:var(--muted);font-size:18px}
.pin-visual{height:380px;border-radius:22px;border:1px solid var(--line2);position:relative;overflow:hidden;background:radial-gradient(120% 120% at 20% 10%,rgba(52,245,161,.12),transparent 50%),var(--card)}
.pin-visual canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.pin-dots{position:absolute;right:28px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:5}
.pin-dots button{width:10px;height:10px;border-radius:99px;border:1px solid var(--line2);background:transparent;cursor:pointer;transition:.3s}
.pin-dots button.on{background:var(--green);border-color:var(--green);box-shadow:0 0 12px rgba(52,245,161,.7)}

/* ---------- 产品线面板 ---------- */
.pline{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--card);display:grid;grid-template-columns:.9fr 1.1fr;min-height:360px;transition:.35s}
.pline:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.pline .pl-visual{position:relative;min-height:260px;background:radial-gradient(130% 130% at 70% 20%,rgba(55,214,255,.14),transparent 55%),#0a1118;overflow:hidden}
.pline .pl-body{padding:40px 42px}
.pline h3{font-size:25px;margin:10px 0 12px}
.pline p{color:var(--muted);font-size:15px}
.pl-kv{display:flex;gap:28px;margin-top:22px;flex-wrap:wrap}
.pl-kv div b{display:block;color:var(--green);font-size:21px}
.pl-kv div span{font-size:12.5px;color:var(--dim)}
.stage-canvas{position:absolute;inset:0;width:100%;height:100%}
.hud{position:absolute;left:16px;top:16px;font-family:ui-monospace,Consolas,monospace;font-size:14px;color:rgba(139,163,171,.85);letter-spacing:.05em;line-height:1.9;pointer-events:none}
.hud b{color:var(--green)}

/* ---------- 计数带 ---------- */
.counter-band{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.counter-band .cb{background:var(--bg2);padding:32px 20px;text-align:center}
.counter-band b{display:block;font-size:clamp(38px,4.8vw,70px);color:var(--green);font-weight:700;line-height:1.2}
.counter-band span{font-size:16.5px;color:var(--muted)}

/* ---------- 作物卡片 ---------- */
.crop-card{border:1px solid var(--line);border-radius:18px;padding:26px;background:var(--card);text-align:center;transition:.3s}
.crop-card:hover{transform:translateY(-5px);border-color:rgba(52,245,161,.4)}
.crop-icon{font-size:46px;margin-bottom:10px;filter:drop-shadow(0 6px 16px rgba(52,245,161,.25))}
.crop-card h4{font-size:21px;margin-bottom:12px}
.crop-stats{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.cs{font-size:14px;border:1px solid var(--line2);border-radius:8px;padding:4px 10px;color:var(--muted);white-space:nowrap}
.cs b{color:var(--green);font-size:18px}
.crop-extra{margin-top:12px;font-size:14px;color:var(--gold)}

/* ---------- 图表 ---------- */
.chart-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.chart-card h3{font-size:21px;margin-bottom:6px}
.chart-card .cap{font-size:14px;color:var(--dim);margin-bottom:22px}
.bars{display:flex;align-items:flex-end;gap:14px;height:220px;padding:0 4px}
.bars .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%;position:relative}
.bars i{width:100%;max-width:52px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#34f5a1,#0b8f5d);height:0;transition:height 1.1s cubic-bezier(.2,.7,.2,1)}
.bars .col:nth-child(even) i{background:linear-gradient(180deg,#37d6ff,#0a6f9e)}
.bars.grown i{height:var(--h)}
.bars .v{font-size:13px;color:var(--green);font-weight:600}.bars .v{display:inline-block}
.bars .y{font-size:14px;color:var(--dim);position:absolute;bottom:-22px;left:50%;transform:translateX(-50%)}
.bars{margin-bottom:24px}
.np{position:relative;margin-bottom:26px;display:flex;flex-direction:column;align-items:stretch}
.np .up i,.np .dn i{height:0;transition:height 1.1s cubic-bezier(.2,.7,.2,1)}
.np.grown .up i,.np.grown .dn i{height:var(--h)}
.np .zero{position:absolute;left:0;right:0;top:calc(50% - 1px);border-top:1px dashed rgba(232,193,90,.55)}
.np .zero::after{content:"0";position:absolute;right:-2px;top:-19px;font-size:12.5px;color:var(--gold)}
.np .col i{background:linear-gradient(180deg,#e8c15a,#8f6d1d)}
.np .col.dn i{background:linear-gradient(180deg,#ff8f6d,#a03a20)}
.np .up{display:flex;gap:14px;flex:1;align-items:flex-end}
.np .dn{display:flex;gap:14px;flex:1;align-items:flex-start}
.np-years{display:flex;gap:14px;margin-top:8px}
.np-years span{flex:1;text-align:center;font-size:14px;color:var(--dim)}
.np .up .col,.np .dn .col{height:100%}
.np .up i{transform-origin:bottom}
.np .dn i{transform-origin:top}
.np .dn .col{justify-content:flex-start}
.np .col{height:100%}
.np .up .col{justify-content:flex-end}
.svgline{width:100%;height:220px}
.svgline polyline{fill:none;stroke:url(#gradStroke);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.svgline .pt{fill:#0b1219;stroke:var(--green);stroke-width:3}
.chart-note{font-size:14px;color:var(--dim);margin-top:8px}

/* ---------- 时间线 / 里程碑 ---------- */
.tl{position:relative;padding-left:34px}
.tl::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--green),var(--cyan),transparent)}
.tl-item{position:relative;padding-bottom:30px}
.tl-item::before{content:"";position:absolute;left:-32px;top:7px;width:12px;height:12px;border-radius:99px;background:var(--bg);border:2.5px solid var(--green);box-shadow:0 0 10px rgba(52,245,161,.5)}
.tl-item.plan::before{border-color:var(--dim);box-shadow:none}
.tl-item.doing::before{border-color:var(--gold);box-shadow:0 0 10px rgba(232,193,90,.5)}
.tl-date{font-size:14px;color:var(--green);letter-spacing:.12em;margin-bottom:5px}
.tl-item h4{font-size:21px;margin-bottom:7px}
.tl-item p{color:var(--muted);font-size:18px}
.status-chip{font-size:10.5px;padding:3px 10px;border-radius:99px;margin-left:10px;vertical-align:2px}
.status-chip.done{background:rgba(52,245,161,.14);color:var(--green)}
.status-chip.doing{background:rgba(232,193,90,.14);color:var(--gold)}
.status-chip.plan{background:rgba(139,163,171,.14);color:var(--muted)}

/* ---------- 人物 / 资质 ---------- */
.person{border:1px solid var(--line);border-radius:18px;padding:26px;background:var(--card);transition:.3s}
.person:hover{transform:translateY(-4px);border-color:var(--line2)}
.person .ava{width:58px;height:58px;border-radius:16px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;color:#04231a;margin-bottom:16px}
.person h4{font-size:17px}
.person .role{font-size:16.5px;color:var(--green);margin:4px 0 10px}
.person p{font-size:16.5px;color:var(--muted)}
.person.academic{border-color:rgba(232,193,90,.35);background:linear-gradient(150deg,rgba(232,193,90,.07),var(--card) 55%)}
.person.academic .ava{background:linear-gradient(120deg,#e8c15a,#b9832f)}
.person.academic .role{color:var(--gold)}
.cred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.cred{border:1px solid var(--line);border-radius:13px;padding:14px 16px;font-size:16.5px;color:var(--muted);display:flex;gap:10px;align-items:flex-start;background:var(--card);transition:.25s}
.cred:hover{color:var(--text);border-color:rgba(52,245,161,.35)}
.cred i{font-style:normal;font-size:16px}

/* ---------- 表格 ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
table.tbl{width:100%;border-collapse:collapse;font-size:16.5px;min-width:720px}
.tbl th{text-align:left;padding:15px 18px;color:var(--dim);font-weight:500;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.tbl td{padding:15px 18px;border-bottom:1px solid var(--line);color:var(--muted);vertical-align:top}
.tbl tr:last-child td{border-bottom:none}
.tbl td.hl{color:var(--text)}
.tbl tr.us{background:linear-gradient(90deg,rgba(52,245,161,.08),transparent)}
.tbl tr.us td{color:var(--text)}

/* ---------- 新闻 ---------- */
.news-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card);transition:.3s;display:flex;flex-direction:column}
.news-card:hover{transform:translateY(-5px);border-color:rgba(52,245,161,.35)}
.news-cover{height:150px;background:radial-gradient(120% 120% at 30% 20%,rgba(52,245,161,.16),transparent 60%),#0a1118;display:flex;align-items:center;justify-content:center;font-size:36px}
.news-body{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.news-date{font-size:14px;color:var(--dim);letter-spacing:.1em}
.news-card h4{font-size:16.5px;line-height:1.5}
.news-card p{font-size:13.5px;color:var(--muted)}
.filterbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.filterbar button{background:none;border:1px solid var(--line2);color:var(--muted);border-radius:99px;padding:8px 20px;font-size:16.5px;cursor:pointer;font-family:var(--font);transition:.2s}
.filterbar button.on{background:var(--grad);color:#04231a;border-color:transparent;font-weight:700}
article.prose{max-width:820px;margin:0 auto}
article.prose h1{font-size:clamp(28px,3.4vw,44px);margin:14px 0 18px}
article.prose p{color:var(--muted);margin-bottom:16px;font-size:15px}
article.prose hr{border:none;border-top:1px solid var(--line);margin:30px 0}

/* ---------- 表单 ---------- */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:12.5px;color:var(--dim);letter-spacing:.06em}
.field input,.field select,.field textarea{background:var(--bg2);border:1px solid var(--line2);border-radius:11px;padding:12px 14px;color:var(--text);font-family:var(--font);font-size:16.5px;transition:.2s;outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(52,245,161,.12)}
.field textarea{min-height:120px;resize:vertical}
.seg{display:flex;border:1px solid var(--line2);border-radius:12px;overflow:hidden;grid-column:1/-1;flex-wrap:wrap}
.seg button{flex:1;min-width:120px;background:none;border:none;color:var(--muted);padding:12px;font-size:16.5px;cursor:pointer;font-family:var(--font);transition:.2s;border-right:1px solid var(--line)}
.seg button:last-child{border-right:none}
.seg button.on{background:rgba(52,245,161,.12);color:var(--green)}

/* ---------- AI 大脑页专属 ---------- */
.brain-stage{position:relative;height:520px;border-radius:26px;overflow:hidden;border:1px solid var(--line2);background:radial-gradient(100% 100% at 50% 0%,rgba(167,139,250,.10),transparent 55%),#080e15}
.brain-stage canvas{position:absolute;inset:0}
.brain-fallback{position:absolute;inset:0;display:none;align-items:center;justify-content:center}
.brain-tag{position:absolute;z-index:3;border:1px solid var(--line2);background:rgba(10,16,22,.82);backdrop-filter:blur(8px);border-radius:12px;padding:10px 16px;font-size:16.5px;animation:floaty 5s ease-in-out infinite}
.brain-tag b{color:var(--green)}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.loop-step{border:1px solid var(--line);border-radius:18px;padding:26px;background:var(--card);position:relative;transition:.3s}
.loop-step:hover{border-color:rgba(52,245,161,.4);transform:translateY(-4px)}
.loop-step .ls-num{position:absolute;top:-16px;left:22px;background:var(--grad);color:#04231a;font-weight:700;font-size:13px;border-radius:99px;padding:4px 15px}
.loop-step h4{margin:12px 0 8px;font-size:21px}
.loop-step p{font-size:13.5px;color:var(--muted)}
.loop-arrow{display:flex;align-items:center;justify-content:center;color:var(--green);font-size:24px;animation:pulseArrow 2s ease-in-out infinite}
@keyframes pulseArrow{0%,100%{opacity:.35;transform:translateX(0)}50%{opacity:1;transform:translateX(6px)}}
.dual-engine{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:stretch}
.engine-card{border:1px solid var(--line2);border-radius:20px;padding:30px;background:radial-gradient(120% 120% at 20% 0%,rgba(52,245,161,.09),transparent 55%),var(--card)}
.engine-card.right{background:radial-gradient(120% 120% at 80% 0%,rgba(55,214,255,.09),transparent 55%),var(--card)}
.engine-card h4{font-size:21px;margin-bottom:12px}
.engine-card li{list-style:none;font-size:13.5px;color:var(--muted);padding:7px 0 7px 22px;position:relative}
.engine-card li::before{content:"◈";position:absolute;left:0;color:var(--green)}
.engine-card.right li::before{color:var(--cyan)}
.engine-x{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--dim);font-size:12px}
.engine-x .ring{width:64px;height:64px;border-radius:99px;border:1px dashed var(--line2);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--green);animation:rotRing 14s linear infinite}
@keyframes rotRing{to{transform:rotate(360deg)}}
.decision-chips{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.decision-chips .dc{border:1px solid var(--line);border-radius:14px;padding:16px 10px;text-align:center;background:var(--card);transition:.25s}
.decision-chips .dc:hover{border-color:rgba(52,245,161,.4);transform:translateY(-3px)}
.decision-chips .dc i{font-style:normal;font-size:24px;display:block;margin-bottom:8px}
.decision-chips .dc span{font-size:12.3px;color:var(--muted)}
.arch-diagram{border:1px solid var(--line2);border-radius:22px;background:radial-gradient(90% 90% at 50% 50%,rgba(52,245,161,.06),transparent 60%),var(--card);padding:44px 30px;position:relative;overflow:hidden}
.arch-core{margin:0 auto;width:210px;padding:22px 26px;text-align:center;border-radius:20px;background:linear-gradient(140deg,rgba(52,245,161,.16),rgba(55,214,255,.10));border:1px solid rgba(52,245,161,.4);box-shadow:0 0 46px rgba(52,245,161,.22);position:relative;z-index:2}
.arch-core b{font-size:17px;display:block}
.arch-core span{font-size:14px;color:var(--muted)}
.arch-orbit{position:relative;height:340px;margin-top:8px}
.arch-node{position:absolute;width:172px;border:1px solid var(--line2);border-radius:15px;padding:13px 15px;background:rgba(16,24,33,.92);transition:.3s;z-index:2}
.arch-node:hover{border-color:var(--green);transform:scale(1.05)}
.arch-node b{font-size:13.5px;display:block}
.arch-node span{font-size:14px;color:var(--dim)}
.arch-node .nd-tag{position:absolute;top:-9px;right:10px;font-size:9.5px;background:var(--grad);color:#04231a;border-radius:99px;padding:2px 8px;font-weight:700}
.arch-node .nd-tag.rnd{background:linear-gradient(120deg,#e8c15a,#c98f2f);color:#221a05}
.arch-orbit svg{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.arch-orbit svg path{stroke:rgba(52,245,161,.28);stroke-width:1.4;fill:none;stroke-dasharray:5 6;animation:dashFlow 1.4s linear infinite}
@keyframes dashFlow{to{stroke-dashoffset:-22}}

/* ---------- 行业格局页 ---------- */
.peer-card{border:1px solid var(--line);border-radius:20px;padding:26px;background:var(--card);transition:.3s;position:relative}
.peer-card:hover{transform:translateY(-4px);border-color:var(--line2)}
.peer-card .pc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.peer-card h4{font-size:17px}
.peer-card .pc-route{font-size:14px;color:var(--dim);border:1px solid var(--line2);border-radius:99px;padding:3px 11px;white-space:nowrap}
.peer-card ul{margin:10px 0 0 0}
.peer-card li{list-style:none;font-size:16.5px;color:var(--muted);padding:5px 0 5px 18px;position:relative}
.peer-card li::before{content:"›";position:absolute;left:2px;color:var(--green)}
.quotamap{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.qm{border:1px dashed var(--line2);border-radius:16px;padding:20px;min-height:120px}
.qm h5{font-size:14px;color:var(--dim);letter-spacing:.1em;margin-bottom:10px}
.qm .qm-item{font-size:12.8px;color:var(--muted);padding:4px 0}
.qm.us{border:1px solid rgba(52,245,161,.5);background:radial-gradient(110% 110% at 50% 0%,rgba(52,245,161,.10),transparent 60%),var(--card)}
.qm.us h5{color:var(--green)}
.axis-x,.axis-y{font-size:14px;color:var(--dim);letter-spacing:.18em;text-transform:uppercase}

/* ---------- Yuntong 地图 / 机械臂 ---------- */
.map-stage{position:relative;height:430px;border-radius:22px;border:1px solid var(--line2);overflow:hidden;background:#08121a}
.map-stage canvas{position:absolute;inset:0;width:100%;height:100%}
.arm-stage{position:relative;height:430px;border-radius:22px;border:1px solid var(--line2);overflow:hidden;background:radial-gradient(120% 120% at 50% 100%,rgba(52,245,161,.10),transparent 60%),#080e15}
.arm-stage canvas{position:absolute;inset:0;width:100%;height:100%}
.kv-band{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.kv-band .kv{border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--card);text-align:center}
.kv-band b{display:block;font-size:clamp(30px,3.4vw,44px);color:var(--green)}
.kv-band span{font-size:12.3px;color:var(--muted)}

/* ---------- 农业场景插画与柔动效 ---------- */
.ag-hero{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.ag-hero svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:min(62%,520px)}
.sway{transform-origin:50% 100%;animation:sway 5s ease-in-out infinite alternate}
.sway.d2{animation-delay:.8s}.sway.d3{animation-delay:1.6s}.sway.d4{animation-delay:2.4s}
@keyframes sway{from{transform:rotate(-1.8deg)}to{transform:rotate(1.8deg)}}
.dataflow{stroke-dasharray:4 12;animation:dashMove 1.8s linear infinite}
@keyframes dashMove{to{stroke-dashoffset:-32}}
.pulse-dot{animation:pulseDot 2.6s ease-in-out infinite}
.pulse-dot.d2{animation-delay:.9s}.pulse-dot.d3{animation-delay:1.8s}
@keyframes pulseDot{0%,100%{opacity:.3}50%{opacity:1}}
.drip-drop{animation:dripFall 3s ease-in infinite}
.drip-drop.d2{animation-delay:1.4s}
@keyframes dripFall{0%{transform:translateY(0);opacity:0}12%{opacity:.95}100%{transform:translateY(52px);opacity:0}}
.sun-arc{animation:sunArc 14s ease-in-out infinite alternate}
@keyframes sunArc{from{transform:translate(0,0)}to{transform:translate(120px,-36px)}}
.crop-scene{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--card);transition:.35s;position:relative}
.crop-scene:hover{transform:translateY(-5px);border-color:rgba(52,245,161,.4);box-shadow:var(--shadow)}
.crop-scene .cs-vis{height:190px;position:relative;background:radial-gradient(130% 120% at 50% 100%,rgba(52,245,161,.13),transparent 60%),#0a1219;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.crop-scene .cs-body{padding:22px 24px}
.crop-scene .cs-body h4{font-size:21px;margin-bottom:6px}
.crop-scene .cs-body p{font-size:16.5px;color:var(--muted)}
.crop-scene .cs-tag{position:absolute;top:14px;left:14px;z-index:2}
.outcome-link{display:flex;align-items:center;gap:8px;font-size:12.8px;color:var(--gold);margin-top:10px}
.outcome-link i{font-style:normal}
.day-band{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.day-cell{border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--card);position:relative;overflow:hidden;transition:.3s}
.day-cell:hover{border-color:rgba(52,245,161,.4);transform:translateY(-3px)}
.day-cell .dc-time{font-size:14px;color:var(--green);letter-spacing:.14em;margin-bottom:10px}
.day-cell h4{font-size:16.5px;margin-bottom:7px}
.day-cell p{font-size:13.5px;color:var(--muted)}
.day-cell .dc-icon{position:absolute;right:14px;top:14px;font-size:26px;opacity:.8}
.gh-frame{border:1px solid var(--line2);border-radius:22px;overflow:hidden;position:relative;background:linear-gradient(180deg,#0a141d,#0d1a16)}
.gh-frame svg{display:block;width:100%;height:auto}
.gh-callout{position:absolute;font-size:14px;color:var(--muted);background:rgba(10,16,22,.85);border:1px solid var(--line2);border-radius:10px;padding:7px 12px;backdrop-filter:blur(6px);animation:floaty 6s ease-in-out infinite}
.gh-callout b{color:var(--green)}

/* ---------- 16:9 视频位 ---------- */
.video16x9{position:relative;width:100%;aspect-ratio:16/9;border-radius:22px;overflow:hidden;border:1px solid var(--line2);background:#080e15;box-shadow:var(--shadow)}
.video16x9 iframe,.video16x9 video{position:absolute;inset:0;width:100%;height:100%;border:none;background:#000}
.video16x9 .video-ph{position:absolute;inset:0;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;text-align:center;padding:30px;
  background:radial-gradient(110% 110% at 50% 0%,rgba(52,245,161,.07),transparent 55%),repeating-linear-gradient(45deg,rgba(148,220,255,.025) 0 18px,transparent 18px 36px)}
.video16x9 .video-ph p{max-width:520px;font-size:13.5px;color:var(--muted)}

/* ---------- 页脚 ---------- */
#footer{border-top:1px solid var(--line);background:var(--bg2);padding:64px 0 34px;margin-top:60px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;margin-bottom:44px}
.foot-col p{font-size:16.5px;color:var(--muted);margin:14px 0}
.foot-col a{display:block;font-size:13.5px;color:var(--muted);padding:5px 0;transition:.2s}
.foot-col a:hover{color:var(--green)}
.foot-col h4{font-size:13px;letter-spacing:.16em;color:var(--text);text-transform:uppercase;margin-bottom:12px}
.tsx-badge{display:inline-block;font-size:12.5px;letter-spacing:.14em;color:var(--gold);border:1px solid rgba(232,193,90,.4);border-radius:8px;padding:5px 12px}
.foot-note{border-top:1px solid var(--line);padding-top:24px}
.foot-note p{font-size:12.5px;color:var(--dim);margin-bottom:6px}
.admin-link{color:var(--dim);display:inline;padding:0 8px;border-left:1px solid var(--line)}
.admin-link:hover{color:var(--green)}

/* ---------- 响应式 ---------- */
@media(max-width:1080px){
  .navlinks{position:fixed;top:58px;right:0;left:0;background:rgba(7,11,16,.97);flex-direction:column;padding:18px 24px;gap:4px;display:none;backdrop-filter:blur(18px);border-bottom:1px solid var(--line);max-height:calc(100vh - 58px);overflow:auto}
  .navlinks.open{display:flex}
  #burger{display:flex}
  .dropmenu{position:static;opacity:1;visibility:visible;transform:none;background:none;border:none;box-shadow:none;padding-left:14px}
  .g4,.g5{grid-template-columns:repeat(2,1fr)}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .counter-band{grid-template-columns:repeat(3,1fr)}
  .pline{grid-template-columns:1fr}
  .pin-view .wrap{grid-template-columns:1fr}
  .pin-visual{height:280px}
  .cred-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .dual-engine{grid-template-columns:1fr}
  .engine-x{flex-direction:row}
  .decision-chips{grid-template-columns:repeat(3,1fr)}
  .arch-orbit{height:auto;display:flex;flex-direction:column;gap:14px;align-items:center}
  .arch-node{position:relative!important;width:min(320px,100%);left:auto!important;top:auto!important}
  .arch-orbit svg{display:none}
  .quotamap{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .sec{padding:64px 0}
  .g2,.g3{grid-template-columns:1fr}
  .g4,.g5{grid-template-columns:1fr 1fr}
  .kv-band{grid-template-columns:repeat(2,1fr)}
  .stat-row{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr}
  .counter-band{grid-template-columns:repeat(2,1fr)}
  .nav-cta{display:none}
}


/* ---------- 数字动效（Phase G）：到位脉冲 + 悬停放大 ---------- */
@keyframes numpop{0%{transform:scale(1)}38%{transform:scale(1.16);text-shadow:0 0 24px rgba(52,245,161,.8)}100%{transform:scale(1)}}
.count-pop{animation:numpop .75s cubic-bezier(.2,.8,.3,1) both;display:inline-block}
.stat b,.counter-band b,.kv-band b{transition:transform .3s cubic-bezier(.2,.8,.3,1),color .3s;transform-origin:left center}
.stat:hover b{transform:scale(1.06);color:var(--cyan)}
.counter-band:hover b{transform:scale(1.06);color:var(--cyan)}
.kv-band:hover b{transform:scale(1.06)}
.chart-card:hover .bars .v{color:var(--cyan)}


/* ---------- 互动演示：温室作业单元（Phase G） ---------- */
.lab-wrap{border:1px solid rgba(52,245,161,.28);border-radius:20px;overflow:hidden;background:linear-gradient(180deg,#080f14,#0a1712 60%,#0b1a13);box-shadow:0 24px 70px rgba(0,0,0,.45),0 0 0 1px rgba(52,245,161,.06) inset}
.lab-stage{position:relative;height:clamp(340px,44vw,520px)}
.lab-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair}
.lab-hud{position:absolute;left:14px;top:14px;right:14px;display:flex;gap:10px;flex-wrap:wrap;pointer-events:none;z-index:2}
.lh-chip{display:flex;align-items:center;gap:8px;background:rgba(8,14,20,.82);border:1px solid var(--line2);border-radius:11px;padding:7px 13px;backdrop-filter:blur(8px)}
.lh-chip .lh-k{font-size:12.5px;letter-spacing:.18em;color:var(--dim)}
.lh-chip b{font-size:14px;color:var(--green);font-weight:700}
.lh-chip.spec b{color:var(--cyan);font-weight:600;font-size:12.5px}
.lab-bar{display:flex;gap:12px;padding:16px 18px;border-top:1px solid var(--line);flex-wrap:wrap;background:rgba(6,12,9,.6)}
.task-btn{display:inline-flex;align-items:center;gap:9px;background:rgba(15,26,20,.7);border:1px solid var(--line2);color:var(--muted);border-radius:12px;padding:11px 20px;font-size:15px;font-family:var(--font);cursor:pointer;transition:.22s}
.task-btn svg{width:19px;height:19px;flex:none}
.task-btn:hover{border-color:rgba(52,245,161,.5);color:var(--text);transform:translateY(-1px)}
.task-btn.on{background:linear-gradient(92deg,rgba(52,245,161,.18),rgba(55,214,255,.10));border-color:rgba(52,245,161,.65);color:var(--green);font-weight:700;box-shadow:0 0 24px rgba(52,245,161,.18)}
.lab-hint{padding:12px 18px 16px;font-size:13px;color:var(--dim);border-top:1px dashed var(--line)}
@media (max-width:720px){.lab-bar{gap:8px}.task-btn{padding:9px 14px;font-size:13.5px}.lh-chip.spec{display:none}}


/* ---------- 线性图标（Phase H）---------- */
.icn{width:22px;height:22px;flex:none;display:inline-block;vertical-align:-4px}
.icon-chip .icn{width:26px;height:26px}
.cs-tag .icn{width:15px;height:15px;vertical-align:-2.5px}
.outcome-link i .icn{width:16px;height:16px}
.crop-icon .icn{width:30px;height:30px}
.news-cover .icn{width:30px;height:30px}
.dc-icon .icn{width:26px;height:26px}
.cred i .icn{width:17px;height:17px}
.sat-hero .icn{width:64px;height:64px}
.task-btn svg{width:19px;height:19px;flex:none}


/* ---------- 实景照片组件（Phase I）---------- */
.hero-photo{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(1.05)}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,10,8,.72) 0%,rgba(4,10,8,.45) 45%,rgba(4,10,8,.82) 100%)}
.hero .hero-photo~.wrap,.hero>.wrap{position:relative;z-index:2}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.photo-card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.28s}
.photo-card:hover{transform:translateY(-5px);border-color:rgba(52,245,161,.5);box-shadow:0 18px 46px rgba(0,0,0,.4)}
.pc-img{position:relative;height:210px;background-size:cover;background-position:center;transition:.4s}
.photo-card:hover .pc-img{transform:scale(1.045)}
.pc-chip{position:absolute;left:12px;top:12px;background:rgba(6,12,9,.78);border:1px solid rgba(52,245,161,.55);color:var(--green);font-family:ui-monospace,Consolas,monospace;font-size:12.5px;letter-spacing:.08em;border-radius:9px;padding:5px 11px;backdrop-filter:blur(6px)}
.pc-chip.gold{color:var(--gold);border-color:rgba(232,193,90,.55)}
.pc-chip.cy{color:var(--cyan);border-color:rgba(55,214,255,.55)}
.pc-chip.pu{color:#b48ce0;border-color:rgba(180,140,224,.55)}
.pc-data{position:absolute;right:12px;bottom:12px;background:rgba(6,12,9,.78);border:1px solid rgba(55,214,255,.4);color:#8fe3ff;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;border-radius:9px;padding:5px 11px;backdrop-filter:blur(6px)}
.pc-body{padding:18px 18px 20px}
.pc-body h3{font-size:21px;margin-bottom:8px}
.pc-body p{font-size:16.5px;color:var(--muted)}
@media (max-width:1080px){.photo-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.photo-grid{grid-template-columns:1fr}.pc-img{height:190px}}

/* ===================== Phase J：实景数据动效 / 数字-符号分级 / 图表修正 ===================== */
/* 数字大、符号单位小 */
.u{font-size:.52em;font-weight:700;font-style:normal;opacity:.92;margin:0 1px}
.unit{font-size:.5em;font-weight:700;opacity:.92;margin-left:3px}
.cs .u{font-size:.62em}
.pl-kv .u,.kv .u{font-size:.6em}
.pin-visual .u{font-size:.55em}

/* 实景数据动效组件（照片 + Ken Burns + 扫描线 + 数据标注） */
.photo-live{position:absolute;inset:0;overflow:hidden;background:#0a1219}
.photo-live .pl-bg{position:absolute;inset:-6%;background:center/cover no-repeat;animation:plkb 26s ease-in-out infinite alternate;will-change:transform}
.photo-live .pl-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,13,10,.30),rgba(5,13,10,.04) 42%,rgba(5,13,10,.58))}
.photo-live .pl-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(120,230,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,230,255,.05) 1px,transparent 1px);background-size:52px 52px;pointer-events:none}
.photo-live .pl-scan{position:absolute;top:0;bottom:0;width:130px;left:-16%;background:linear-gradient(90deg,transparent,rgba(55,214,255,.15),transparent);animation:plscan 7.5s linear infinite;pointer-events:none}
.pl-chip{position:absolute;z-index:2;display:flex;align-items:baseline;gap:8px;padding:7px 12px;border:1px solid rgba(120,230,255,.42);border-radius:10px;background:rgba(5,12,18,.60);backdrop-filter:blur(4px);animation:plchip .7s cubic-bezier(.2,.8,.3,1) both}
.pl-chip b{font-size:21px;line-height:1;color:#7ce8ff;font-weight:700;font-variant-numeric:tabular-nums}
.pl-chip b.tick{animation:pltick .5s}
.pl-chip span{font-size:10.5px;color:rgba(190,235,255,.85);letter-spacing:.09em}
.pl-tasks{position:absolute;left:16px;bottom:15px;display:flex;gap:8px;flex-wrap:wrap;z-index:2}
.pl-task{font-size:12px;padding:5px 12px;border-radius:99px;border:1px solid rgba(120,230,255,.35);color:rgba(205,242,255,.78);background:rgba(5,12,18,.5);transition:.45s}
.pl-task.on{background:linear-gradient(92deg,#34f5a1,#37d6ff);color:#04231a;font-weight:700;border-color:transparent;box-shadow:0 4px 18px rgba(52,245,161,.35)}
.pl-cap{position:absolute;right:14px;bottom:15px;z-index:2;font-size:10.5px;color:rgba(200,238,255,.62);background:rgba(5,12,18,.45);padding:4px 10px;border-radius:8px}
@keyframes plkb{from{transform:scale(1) translate(0,0)}to{transform:scale(1.09) translate(-1.6%,1.4%)}}
@keyframes plscan{from{left:-16%}to{left:104%}}
@keyframes plchip{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pltick{0%{color:#fff;text-shadow:0 0 12px rgba(124,232,255,.9)}100%{color:#7ce8ff}}

/* 净利润图：正负分色 + 小值可见 */
.np .up .col i{background:linear-gradient(180deg,#34f5a1,#0b8f5d)}
.np .dn .col i{background:linear-gradient(180deg,#a03a20,#ff8f6d)}
.np .dn .col .v{color:#ff8f6d}
.np.grown .up .col i,.np.grown .dn .col i{min-height:7px}

/* 折线图标签主题化 */
.svgline .tv{fill:var(--chart-val,#34f5a1);font-weight:600}
.svgline .ty{fill:var(--dim)}

/* 作物卡照片头（实景版启用） */
.crop-card{overflow:hidden}
.cc-img{height:118px;margin:-26px -26px 16px;background:center/cover;position:relative}
.cc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,18,25,.22))}

/* 实景作业集照片卡轻微动效 */
.photo-grid .pc-img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.photo-card:hover .pc-img{transform:scale(1.06)}
.photo-grid .pc-img{animation:plkb 34s ease-in-out infinite alternate}

/* Phase J 补丁：单位符号覆盖修正 + 标题层级 */
.stat b .unit,.counter-band b .unit,.kv b .unit{font-size:.5em}
.stat b .u,.counter-band b .u{font-size:.52em}

/* Phase J 补丁2：统计卡数字继承大字号（标签保持小字） */
.stat b span,.counter-band b span,.kv b span{font-size:inherit}
.stat b .unit,.counter-band b .unit,.kv b .unit{font-size:.5em}
.stat b .u,.counter-band b .u,.kv b .u{font-size:.52em}

/* ===== Phase K：数字稳定 / 断句 / 可读性 ===== */
.stat b,.counter-band b,.kv-band b,.kv b,.cb b{white-space:nowrap;font-variant-numeric:tabular-nums}
.u,.unit{white-space:nowrap}
.counter-band b .u,.counter-band b .unit{font-size:.42em}
.stat b .u,.stat b .unit,.kv b .u,.kv b .unit{font-size:.45em}
.counter-band:hover b,.stat:hover b,.kv-band:hover b{transform:none;color:var(--green)}
.count-pop{animation:none}
.photo-grid .pc-img{animation:none}
.pl-chip b.tick{animation:none}
.tl-date{white-space:nowrap}
.np-years span{white-space:nowrap}
.pl-scrim{background:linear-gradient(180deg,rgba(4,12,9,.58),rgba(4,12,9,.34) 45%,rgba(4,12,9,.80))}
.hero h1,.hero .kicker{text-shadow:0 2px 22px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.4)}
.hero .sub{text-shadow:0 1px 16px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.35)}

/* Phase K 补充：hero HUD 可读性 + 遮罩中段加深 */
.hero .hud{background:rgba(4,14,10,.55);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:10px 14px;backdrop-filter:blur(6px)}
.photo-live .pl-scrim{background:linear-gradient(180deg,rgba(4,12,9,.58),rgba(4,12,9,.34) 45%,rgba(4,12,9,.80))}
@media (min-width:901px){.sec-head h2{white-space:nowrap}}
@media (min-width:901px){.sec-head h2{white-space:nowrap;width:max-content;max-width:min(1160px,92vw);margin-left:auto;margin-right:auto}}

/* ===== Phase L：滚动提示 / 场景动画 / 双图层 / 任务可点 / 5列指标带 / 四大系统动图 ===== */
.pin-hint{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;z-index:7;color:rgba(226,240,233,.85);font-size:12.5px;letter-spacing:.18em;pointer-events:none;animation:pinHintFade 2.4s ease-in-out infinite}
.pin-hint b{color:var(--green);font-size:12px;letter-spacing:.3em}
.pin-hint .chev{width:20px;height:20px;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg);animation:pinChev 1.6s ease-in-out infinite}
@keyframes pinChev{0%,100%{transform:rotate(-45deg) translate(0,0);opacity:.45}50%{transform:rotate(-45deg) translate(5px,5px);opacity:1}}
@keyframes pinHintFade{0%,100%{opacity:.72}50%{opacity:1}}
.pin-view.on .pin-num{animation:pinUp .6s .05s cubic-bezier(.2,.8,.3,1) both}
.pin-view.on h2{animation:pinUp .6s .16s cubic-bezier(.2,.8,.3,1) both}
.pin-view.on p{animation:pinUp .6s .27s cubic-bezier(.2,.8,.3,1) both}
.pin-view.on .btn,.pin-view.on .note-demo{animation:pinUp .6s .38s cubic-bezier(.2,.8,.3,1) both}
.pin-view.on .pin-visual{animation:pinZoom .85s .12s cubic-bezier(.2,.8,.3,1) both}
@keyframes pinUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes pinZoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.pl-bg2{position:absolute;inset:-6%;background:center/cover no-repeat;opacity:0;transition:opacity .8s ease;animation:plkb 26s ease-in-out infinite alternate;pointer-events:none}
.pl-task{cursor:pointer;user-select:none}
.counter-band.cols-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1080px){.counter-band.cols-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.counter-band.cols-5{grid-template-columns:repeat(2,1fr)}}
/* 四大系统动图 */
.arch-stage{position:relative;height:560px}
.arch-svg{position:absolute;inset:0;width:100%;height:100%}
.ar-ring{fill:none;stroke:rgba(52,245,161,.30);stroke-width:1.2;stroke-dasharray:3 9;transform-origin:600px 280px;animation:arSpin 30s linear infinite}
.ar-ring.r2{stroke:rgba(55,214,255,.22);animation-duration:46s;animation-direction:reverse}
.ar-ring.r3{stroke:rgba(52,245,161,.12);animation-duration:72s}
.ar-pulse{fill:none;stroke:rgba(52,245,161,.5);stroke-width:1.5;transform-origin:600px 280px;animation:arPulse 2.8s ease-out infinite}
.ar-link{fill:none;stroke-width:1.6;stroke-dasharray:5 7;opacity:.6;animation:dashFlow 1.2s linear infinite}
.ar-dot{fill:#34f5a1;filter:drop-shadow(0 0 6px rgba(52,245,161,.9))}
.arch-core2{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:238px;text-align:center;padding:26px 22px;border-radius:20px;background:linear-gradient(150deg,rgba(8,20,15,.94),rgba(10,28,21,.88));border:1px solid rgba(52,245,161,.45);box-shadow:0 0 64px rgba(52,245,161,.22),inset 0 0 26px rgba(52,245,161,.08);animation:coreFloat 5s ease-in-out infinite;z-index:2}
.arch-core2 b{font-size:19px;display:block;color:#f2fffa}
.arch-core2 .ac-sub{font-size:12.5px;color:#9fd8bd;display:block;margin-top:6px}
.arch-tags{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.arch-node.an-tl{left:0;top:0}.arch-node.an-tr{right:0;top:0}.arch-node.an-bl{left:0;bottom:0}.arch-node.an-br{right:0;bottom:0}
.arch-node{width:186px}
@keyframes arSpin{to{transform:rotate(360deg)}}
@keyframes arPulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.45);opacity:0}}
@keyframes coreFloat{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 9px))}}
@media(max-width:900px){
 .arch-stage{height:auto;display:flex;flex-direction:column;gap:16px;align-items:center;padding:12px 0}
 .arch-svg{display:none}
 .arch-core2{position:relative;left:auto;top:auto;transform:none;animation:none;width:min(340px,100%)}
 .arch-node{position:relative!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;width:min(340px,100%)}
}

/* Phase L 深色版：页脚对比度提升 */
footer .foot-col.brand p{color:rgba(226,240,233,.88)}
footer .foot-col a{color:rgba(206,228,216,.8)}
footer .foot-col a:hover{color:var(--green)}
footer .logo b{color:#fff}
footer .tsx-badge{color:#ecc873}
.admin-link{color:rgba(206,228,216,.7)}

/* Phase L：图表标签可读性 */
.svgline .tv{paint-order:stroke;stroke:rgba(4,10,8,.9);stroke-width:4px;stroke-linejoin:round;font-size:13.5px}

/* ===== Phase M：确认清单施工（时间线单行/徽章/引擎/动效/图标） ===== */
.tl-oneline .tl-item{display:flex;align-items:baseline;gap:14px;padding:8px 0;flex-wrap:nowrap}
.tl-oneline .tl-date{margin-bottom:0;min-width:50px}
.tl-oneline .tl-item h4{margin-bottom:0;font-size:15px;white-space:nowrap}
.tl-oneline .tl-item p{margin-bottom:0;font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.cred i.cred-icn{display:inline-flex;width:38px;height:38px;border-radius:11px;align-items:center;justify-content:center;border:1px solid rgba(52,245,161,.35);background:rgba(52,245,161,.08);color:var(--green);flex:none}
.cred i.cred-icn .icn,.cred i.cred-icn svg{width:20px;height:20px}
.engine-wrap{display:flex;flex-direction:column;gap:26px}
.engine-duo{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:980px){.engine-duo{grid-template-columns:1fr}}
.kb-zoom{animation:kbzoom 36s ease-in-out infinite alternate}
@keyframes kbzoom{from{transform:scale(1)}to{transform:scale(1.09)}}
.caps-grid .icon-chip{width:64px;height:64px}
.caps-grid .icon-chip .icn,.caps-grid .icon-chip svg{width:30px;height:30px}
.news-cover{height:126px}
.news-cover .icn,.news-cover svg{width:46px;height:46px}
.crop-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;justify-content:center}
.hidden-q1{display:none}

/* ===== Phase N ===== */
.tbl td.hl{white-space:nowrap;max-width:300px}
.tbl td.hl .bi{display:inline-block;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.echart{width:100%}

/* Phase O */
a.sc-link{text-decoration:none;cursor:pointer}
a.sc-link:hover{border-color:rgba(52,245,161,.45);transform:translateY(-5px)}

/* Phase O2: 新闻正文富文本与配图 */
.news-body-rich p{margin:0 0 16px;line-height:1.85;font-size:16.5px;color:var(--text)}
.news-body-rich figure{margin:26px auto;max-width:760px}
.news-body-rich img{width:100%;border-radius:14px;border:1px solid var(--line)}
.news-body-rich figcaption{font-size:12.5px;color:var(--muted);margin-top:8px;text-align:center;line-height:1.6}
.news-cover img{width:100%;height:100%;object-fit:cover;display:block}

.news-body-rich h2{font-size:21px;margin:30px 0 12px;color:var(--text)}
.news-body-rich h3{font-size:18px;margin:24px 0 10px;color:var(--text)}
.news-body-rich ul,.news-body-rich ol{margin:0 0 16px;padding-left:26px}
.news-body-rich li{margin-bottom:6px;line-height:1.8}
.news-body-rich blockquote{border-left:3px solid var(--green);margin:18px 0;padding:8px 16px;background:rgba(52,245,161,.06);color:var(--muted);border-radius:0 10px 10px 0}
.news-body-rich strong{color:var(--text)}
.news-body-rich a{color:var(--green)}

/* Phase P: 客户 logo */
.logo{gap:10px}
.logo-img{height:34px;width:auto;display:block}
.logo .logo-tick2{font-size:10.5px;letter-spacing:.14em;color:var(--muted);border:1px solid var(--line2);border-radius:6px;padding:2px 7px;white-space:nowrap}
.foot-col.brand .logo-img.f{height:30px}
@media(max-width:640px){.logo-img{height:26px}.logo .logo-tick2{display:none}}


@media(max-width:1240px){}


/* ===== Phase R: line wrap + layout fixes ===== */
/* 1: prevent unnecessary heading wraps */
h1, h2, h3, h4 { text-wrap: balance; }
.kicker { text-wrap: nowrap; }

/* 2: hero stat spacing from ticker */
.hero .stat-row { margin-bottom: 50px; padding-bottom: 10px; }
.ticker-wrap { margin-top: 0; }

/* 4: hero sub text - prevent awkward wraps */
.hero .sub { max-width: 720px; text-wrap: pretty; overflow-wrap: break-word; }

/* 5: ensure consistent stat font sizes */

/* 8: yuntong results - no gaps, centered */
.counter-band.cols-4 { grid-template-columns: repeat(4,1fr); }

/* 9: footer exact match with top nav */
#nav .wrap, @media(max-width:1240px){ 
  #nav .wrap, }

/* 10: about timeline+stats stacked */
.about-stacked { display: flex; flex-direction: column; gap: 40px; }
.about-stacked .tl { width: 100%; }
.about-stacked .about-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; width: 100%; }
@media(max-width:768px){ .about-stacked .about-stats { grid-template-columns: repeat(2,1fr); } }

/* 7: crop chips consistent */

/* extra: prevent text clipping */
.sec-head h2 { overflow-wrap: break-word; }
.tbl td, .tbl th { overflow-wrap: break-word; }

/* Override Phase Q footer with cleaner approach */

/* ===== Phase R2: unified pl-kv + crop kicker + footer 1920 ===== */
/* Item 5: pl-kv all numbers same size */
.pl-kv > div > b {
  display: flex; align-items: baseline; gap: 2px;
  color: var(--green); font-weight: 700;
  font-size: clamp(20px,1.8vw,24px); line-height: 1.3;
  white-space: nowrap;
}
.pl-kv > div > b > span,
.pl-kv > div > b > i { font-size: inherit; font-weight: inherit; color: inherit; }
.pl-kv .u { font-size: .55em !important; opacity: .8; }
.pl-kv > div > span { font-size: 12px; color: var(--muted); }

/* Item 7: crop chips restore big numbers (match .cs style) */
.crop-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; justify-content: center; }
.crop-chips .cs {
  font-size: 14px; border: 1px solid var(--line2); border-radius: 8px;
  padding: 4px 10px; color: var(--muted); white-space: nowrap;
}
.crop-chips .cs b { color: var(--green); font-size: 18px; font-weight: 700; }

/* Item: footer - reduce side padding for 1920px */

/* Global: prevent unnecessary wraps at 1920 */
@media(min-width:1400px) {
  .hero .sub { max-width: 780px; }
  .sec-head h2 { max-width: 900px; }
  .pin-view p { max-width: 620px; }
  }

/* ===== Footer: exact nav alignment (padding:0 30px, full width) ===== */
footer .foot-grid, footer .foot-note {
  padding-left: 30px;
  padding-right: 30px;
  margin: 0;
  max-width: none;
  width: 100%;
  box-sizing: border-box;
}

/* ===== Fix pline text wrapping (AI brain card + all engine cards) ===== */
.pline .pl-body h3 {
  text-wrap: balance;
  font-size: clamp(20px, 1.8vw, 26px);
  overflow-wrap: break-word;
}
.pline .pl-body p {
  max-width: min(680px, 100%);
  text-wrap: pretty;
  overflow-wrap: break-word;
}
.pline .pl-body .pl-kv > div > b {
  white-space: nowrap;
}
.pline .pl-body .tagchip {
  white-space: nowrap;
}
@media(max-width:900px) {
  .pline .pl-body h3 { white-space: normal; }
  .pline .pl-body p { max-width: 100%; }
}

/* ===== EN text adaptation fixes ===== */
/* Smart wrapping: only wrap when needed, wrap evenly */
.pline .pl-body h3 { text-wrap: balance; }
.pline .pl-body p { text-wrap: pretty; max-width: min(680px, 100%); }
.sec-head h2 { text-wrap: balance; }

/* Prevent label text from wrapping */
.pl-kv > div > span { white-space: nowrap; }
.tagchip { white-space: nowrap; }
.counter-band .cb > span { white-space: normal; word-break: break-word; overflow-wrap: anywhere; } /* 仅标签可换行 */
.counter-band .cb b span { white-space: nowrap; overflow-wrap: normal; word-break: keep-all; } /* 数字永不内部断行 */

/* English: allow wider text containers */
@media(min-width:1400px) {
  .pline .pl-body p { max-width: min(700px, 100%); }
}


/* ===== Table display fix: competition table ===== */
.tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.tbl { table-layout: auto; width: 100%; }
.tbl td { word-break: break-word; overflow-wrap: break-word; max-width: 280px; }
.tbl th { white-space: nowrap; }
@media(max-width:900px) {
  .tbl td { max-width: 200px; font-size: 12.5px; }
  .tbl th { font-size: 10px; }
}

/* ===== Phase T: EN counter-band fit + table Smartwell wrap ===== */
/* Make unit letters in counter-band smaller to save horizontal space in EN */
.counter-band .cb b .u, .counter-band .cb b .unit { font-size: .38em !important; }
/* Ensure number itself stays large */
.counter-band .cb b { letter-spacing: -0.02em; }

/* Competition table: Smartwell column - allow wrapping, no truncation */
.tbl td.hl { white-space: normal !important; max-width: 250px; word-break: break-word; overflow-wrap: break-word; }
.tbl td.hl .bi { display: inline; white-space: normal; }

/* Phase S: 竞争格局表第一列不换行（仅 technology 页，中英文） */
body[data-page="technology"] .tbl th:first-child,
body[data-page="technology"] .tbl td:first-child { white-space: nowrap !important; }

/* Phase U: 首页 hero 品牌锁标（logo + INTELLIGENT AGRICULTURE / 智慧农业） */
.hero-brand{display:flex;align-items:center;gap:30px;margin:20px 0 6px}
.hero-brand .hero-logo{height:clamp(56px,6.5vw,92px);width:auto;filter:drop-shadow(0 6px 20px rgba(0,0,0,.4))}
.hero-brand .hero-brand-txt{border-left:2px solid rgba(52,245,161,.45);padding-left:30px}
.hero-brand .hb-en{font-size:clamp(24px,3.6vw,50px);font-weight:700;letter-spacing:.06em;line-height:1.04;color:var(--green)}
.hero-brand .hb-zh{font-size:clamp(32px,4.6vw,64px);font-weight:700;letter-spacing:.24em;line-height:1.05;color:var(--green)}
.hero-inner h1.hero-tagline{font-size:clamp(20px,2.5vw,30px);font-weight:600;color:var(--text);margin:22px 0 10px;letter-spacing:.01em;line-height:1.5}
@media (max-width:640px){
  .hero-brand{gap:14px;margin:16px 0 4px}
  .hero-brand .hero-logo{height:48px}
  .hero-brand .hero-brand-txt{border-left-width:1.5px;padding-left:16px}
  .hero-brand .hb-en{font-size:18px}
  .hero-brand .hb-zh{font-size:24px;letter-spacing:.2em}
  .hero-inner h1.hero-tagline{font-size:18px;margin:16px 0 8px}
}

/* Phase V: EN 适配微调 */
.stat b{white-space:nowrap}                                   /* 首页数据栏 数字+单位 不拆行 */
.kv-band b span,.kv-band b .u,.kv-band b .unit{color:inherit} /* brain 数字栏 % 与数字同色 */
@media (min-width:900px){
  .sec-head h2.wm-title{white-space:nowrap;font-size:clamp(24px,3.1vw,42px)} /* Specialized Crop Models × World Model 单行 */
}

/* Phase W: 数字+单位原子化（任何宽度不拆行） */
.numfix{display:inline-flex;align-items:baseline;white-space:nowrap}
.stat b{display:block;text-align:center;white-space:nowrap}
