:root{
  --bg:#071018;--bg2:#0b1620;--panel:#0e1c27;--panel2:#102431;--text:#eaf3f8;--muted:#8fa6b5;
  --line:#203746;--accent:#72d4c7;--accent2:#b7f4ea;--danger:#ff7f83;--ok:#77d58b;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:linear-gradient(180deg,var(--bg),#09141d 60%,#071018);color:var(--text);line-height:1.65}
a{color:inherit;text-decoration:none}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:18px 6vw;background:rgba(7,16,24,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06)}.brand{font-weight:800;letter-spacing:.04em}.topbar nav{display:flex;gap:24px;font-size:14px;color:var(--muted)}.topbar nav a:hover,.topbar nav a.active{color:var(--text)}main{width:min(1180px,88vw);margin:0 auto}.hero{padding:96px 0 70px;max-width:900px}.eyebrow{font-size:12px;letter-spacing:.18em;color:var(--accent);font-weight:800}.hero h1,.detail-hero h1{font-size:clamp(42px,7vw,76px);line-height:1.04;margin:18px 0 20px;letter-spacing:-.04em}.hero p,.detail-hero p{font-size:18px;color:var(--muted);max-width:780px}.hero-actions{display:flex;gap:12px;margin:28px 0}.btn{display:inline-flex;align-items:center;padding:11px 18px;border-radius:10px;border:1px solid var(--line);background:#0c1b25;color:#d8e5ec}.btn.primary{background:var(--accent);color:#04201d;border-color:transparent;font-weight:800}.hero-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.mini-stat{padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:var(--muted)}.mini-stat b{color:var(--text);margin-right:6px}.section{padding:38px 0 48px}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:20px}.section h2,.panel h2{margin:8px 0;font-size:28px}.privacy-badge,.delay-note{font-size:13px;color:var(--accent2);padding:8px 12px;border:1px solid rgba(114,212,199,.24);border-radius:999px;background:rgba(114,212,199,.06)}.model-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.model-card,.panel,.note-card{border:1px solid var(--line);background:linear-gradient(180deg,rgba(18,39,52,.9),rgba(10,24,34,.94));border-radius:16px}.model-card{padding:20px;transition:.2s transform,.2s border-color}.model-card:hover{transform:translateY(-3px);border-color:#315264}.model-card .status{font-size:12px;color:var(--muted)}.model-card h3{font-size:24px;margin:8px 0 18px}.model-card .big{font-size:30px;font-weight:800;letter-spacing:-.03em}.model-card .row{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;padding-top:9px;margin-top:9px;border-top:1px solid rgba(255,255,255,.06)}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:16px 0 18px}.metric{padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}.metric .label{font-size:12px;color:var(--muted)}.metric .value{font-size:23px;font-weight:800;margin-top:5px}.panel{padding:22px}.chart-panel{overflow:hidden}.panel-title-row{display:flex;align-items:end;justify-content:space-between;gap:20px}.panel-title-row h3{font-size:22px;margin:0}.panel-title-row p{margin:4px 0 0;color:var(--muted);font-size:13px}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}svg{display:block;width:100%;height:auto;margin-top:12px}.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.clean-list{padding-left:20px;color:var(--muted)}.clean-list li{margin:9px 0}.seal-list{display:grid;gap:10px;margin-top:18px}.seal-item{display:flex;justify-content:space-between;gap:14px;padding:13px 14px;border-radius:10px;background:#0a1821;border:1px solid rgba(255,255,255,.05)}.seal-item code{font-size:12px;color:#8bb9ad}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.note-card{padding:20px}.note-card span{font-size:12px;color:var(--accent)}.note-card h3{margin:7px 0}.note-card p{color:var(--muted);font-size:14px}.detail-hero{padding:70px 0 28px}.detail-hero h1{font-size:58px}footer{width:min(1180px,88vw);margin:40px auto 0;padding:28px 0 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:13px}.footer-muted{text-align:right}.positive{color:var(--danger)}.negative{color:var(--ok)}
@media(max-width:900px){.model-grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(3,1fr)}.two-col,.notes-grid{grid-template-columns:1fr}.topbar nav{display:none}.hero{padding-top:64px}}
@media(max-width:560px){main{width:92vw}.model-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:44px}.hero-actions{flex-direction:column}.section-head{align-items:flex-start;flex-direction:column}.panel-title-row{align-items:flex-start;flex-direction:column}footer{flex-direction:column}.footer-muted{text-align:left}}
.demo-banner{margin:18px 0 0;padding:11px 14px;border:1px solid rgba(240,189,106,.3);background:rgba(240,189,106,.08);color:#f0bd6a;border-radius:10px;font-size:13px}.demo-banner[hidden]{display:none}

.muted-value,.panel-sub{color:var(--muted)}.empty-panel{grid-column:1/-1}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.month-cell{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(255,255,255,.02);display:flex;justify-content:space-between;gap:8px}.month-cell span{color:var(--muted);font-size:13px}@media(max-width:700px){.month-grid{grid-template-columns:repeat(2,1fr)}}

.local-preview-note{padding:9px 16px;text-align:center;background:#132b34;border-bottom:1px solid #244755;color:#9fc8d3;font-size:13px;letter-spacing:.02em}

.big-caption{margin-top:-6px;margin-bottom:8px;color:var(--muted);font-size:12px}

.model-card{
  position:relative;
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,255,255,.02) inset;
}
.model-card .model-accent-bar{
  height:4px;
  margin:-20px -20px 14px;
  background:var(--model-accent,#72d4c7);
  box-shadow:0 0 24px color-mix(in srgb, var(--model-accent,#72d4c7) 60%, transparent);
}
.model-card:hover{
  box-shadow:0 0 0 1px color-mix(in srgb, var(--model-accent,#72d4c7) 35%, var(--line)) inset, 0 10px 28px rgba(0,0,0,.18);
}
.status-dot{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:50%;
  margin-right:8px;
  vertical-align:middle;
  box-shadow:0 0 0 2px rgba(255,255,255,.04),0 0 12px rgba(255,255,255,.08);
}
.legend{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  font-size:13px;
  color:var(--text);
}
.legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(255,255,255,.02);
  color:#dbeaf1;
  transition:.15s ease;
}
.legend-item:hover,
.legend-item.active{
  border-color:color-mix(in srgb, var(--legend-color) 55%, #2a4250);
  background:color-mix(in srgb, var(--legend-color) 14%, rgba(255,255,255,.03));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--legend-color) 18%, transparent) inset;
}
.legend-swatch{
  width:14px;
  height:14px;
  border-radius:4px;
  background:var(--legend-color);
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset;
  flex:0 0 auto;
}
.legend-text{
  color:#eef7fb;
  font-weight:600;
}

body{overflow-x:hidden}
body > *{position:relative;z-index:1}
.fx-grid,.fx-glow,.fx-orbit{position:fixed;pointer-events:none;inset:0;z-index:0}
.fx-grid{
  background:
    linear-gradient(rgba(60,120,150,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(60,120,150,.08) 1px, transparent 1px);
  background-size:36px 36px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.46), transparent 78%);
}
.fx-glow{filter:blur(50px);opacity:.38;animation:floatGlow 18s ease-in-out infinite}
.glow-1{inset:auto auto 10% -8%;width:34vw;height:34vw;background:radial-gradient(circle, rgba(88,213,208,.30), transparent 65%)}
.glow-2{inset:8% -8% auto auto;width:36vw;height:36vw;background:radial-gradient(circle, rgba(143,211,107,.22), transparent 65%);animation-delay:-7s}
.fx-orbit{width:700px;height:700px;border-radius:50%;border:1px solid rgba(114,212,199,.08);left:50%;top:14%;transform:translateX(-50%);mask-image:linear-gradient(180deg, rgba(0,0,0,.6), transparent 76%)}
.orbit-1{animation:spinSlow 22s linear infinite}
.orbit-2{width:520px;height:520px;top:19%;border-color:rgba(158,169,255,.08);animation:spinSlow 14s linear infinite reverse}

.hero{position:relative;padding-right:min(420px,34vw)}
.hero-visual{position:absolute;right:0;top:34px;width:min(340px,30vw);height:min(340px,30vw);display:flex;align-items:center;justify-content:center}
.hero-ring,.hero-core{position:absolute;border-radius:50%}
.hero-ring{border:1px solid rgba(255,255,255,.12);box-shadow:0 0 40px rgba(88,213,208,.08), inset 0 0 24px rgba(255,255,255,.03)}
.ring-a{width:84%;height:84%;animation:spinSlow 18s linear infinite}
.ring-b{width:58%;height:58%;border-color:rgba(143,211,107,.20);animation:spinSlow 10s linear infinite reverse}
.hero-core{width:84px;height:84px;background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.88), rgba(88,213,208,.48) 38%, rgba(88,213,208,.06) 72%, transparent 74%);box-shadow:0 0 46px rgba(88,213,208,.28);animation:pulseGlow 4.8s ease-in-out infinite}

.btn.ghost{background:rgba(255,255,255,.03);color:#e9f4f9;border-color:rgba(255,255,255,.10)}
.section-sub{margin:6px 0 0;color:var(--muted);font-size:14px;max-width:740px}

.model-card{position:relative;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.02) inset;cursor:pointer}
.model-card .model-accent-bar{height:4px;margin:-20px -20px 14px;background:var(--model-accent,#72d4c7);box-shadow:0 0 24px color-mix(in srgb, var(--model-accent,#72d4c7) 60%, transparent)}
.model-card:hover{transform:translateY(-4px) rotateX(0.5deg);border-color:#315264;box-shadow:0 0 0 1px color-mix(in srgb, var(--model-accent,#72d4c7) 28%, var(--line)) inset,0 14px 32px rgba(0,0,0,.20)}
.model-card.is-selected{border-color:color-mix(in srgb, var(--model-accent,#72d4c7) 55%, #315264);box-shadow:0 0 0 1px color-mix(in srgb, var(--model-accent,#72d4c7) 45%, transparent) inset,0 12px 34px rgba(0,0,0,.20)}
.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 2px rgba(255,255,255,.04),0 0 12px rgba(255,255,255,.08)}
.card-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}
.card-select-btn{border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03);color:#eef7fb;padding:8px 12px;border-radius:10px;font-size:12px;cursor:pointer}
.card-detail-link{font-size:12px;color:var(--model-accent,#72d4c7);font-weight:700}

.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text)}
.legend-item{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.02);color:#dbeaf1;transition:.15s ease;cursor:pointer}
.legend-item:hover,.legend-item.active{border-color:color-mix(in srgb, var(--legend-color) 55%, #2a4250);background:color-mix(in srgb, var(--legend-color) 14%, rgba(255,255,255,.03));box-shadow:0 0 0 1px color-mix(in srgb, var(--legend-color) 18%, transparent) inset}
.legend-swatch{width:14px;height:14px;border-radius:4px;background:var(--legend-color);box-shadow:0 0 0 1px rgba(255,255,255,.12) inset;flex:0 0 auto}
.legend-text{color:#eef7fb;font-weight:600}

.detail-hero{--detail-accent:#72d4c7;position:relative;padding:70px 0 28px}
.detail-hero:before{content:"";position:absolute;left:-24px;top:32px;bottom:8px;width:4px;border-radius:999px;background:linear-gradient(180deg, var(--detail-accent), transparent);box-shadow:0 0 28px color-mix(in srgb, var(--detail-accent) 45%, transparent)}
.detail-nav-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.detail-model-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:#eaf4f9;font-size:13px}

@keyframes spinSlow{from{transform:translateX(-50%) rotate(0)}to{transform:translateX(-50%) rotate(360deg)}}
@keyframes floatGlow{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(3vw,-2vw,0)}}
@keyframes pulseGlow{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}

@media(max-width:960px){.hero{padding-right:0}.hero-visual{position:relative;right:auto;top:auto;width:220px;height:220px;margin:18px auto 0}}
@media(max-width:560px){.detail-nav-row{flex-direction:column;align-items:flex-start}.card-actions{flex-direction:column;align-items:stretch}.card-detail-link,.card-select-btn{text-align:center}}

.tech-canvas{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  opacity:.92;
  mix-blend-mode:screen;
}
body > .tech-canvas{z-index:0}
body > *:not(.tech-canvas):not(.tech-boot){position:relative;z-index:1}

.tech-boot{
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
  background:
    radial-gradient(circle at 50% 44%, rgba(20,77,91,.34), transparent 28%),
    linear-gradient(180deg,#040b11 0%,#07141d 100%);
  overflow:hidden;
  transition:opacity .55s ease,visibility .55s ease;
}
.tech-boot:before,.tech-boot:after{
  content:"";position:absolute;inset:-25%;
  background:
    linear-gradient(rgba(88,213,208,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(88,213,208,.055) 1px,transparent 1px);
  background-size:42px 42px;
  transform:perspective(650px) rotateX(65deg) translateY(16%);
  transform-origin:center;
  animation:bootGrid 7s linear infinite;
  mask-image:radial-gradient(circle,black 0 34%,transparent 70%);
}
.tech-boot:after{
  background-size:84px 84px;opacity:.42;animation-duration:13s;
}
.boot-shell{
  position:relative;width:min(720px,86vw);padding:120px 34px 34px;text-align:center;
  border:1px solid rgba(116,221,213,.14);border-radius:26px;
  background:linear-gradient(180deg,rgba(7,24,34,.62),rgba(5,16,24,.36));
  box-shadow:0 0 80px rgba(50,180,180,.10),inset 0 0 60px rgba(255,255,255,.018);
  backdrop-filter:blur(10px);
}
.boot-orbit,.boot-node{position:absolute;left:50%;top:64px;transform:translate(-50%,-50%);border-radius:50%}
.boot-orbit{border:1px solid rgba(114,212,199,.28);box-shadow:0 0 28px rgba(88,213,208,.08)}
.boot-orbit-a{width:126px;height:126px;animation:bootSpin 5.4s linear infinite}
.boot-orbit-b{width:88px;height:88px;border-color:rgba(158,169,255,.30);animation:bootSpin 3.4s linear infinite reverse}
.boot-orbit-a:before,.boot-orbit-b:before{
  content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#72d4c7;
  top:7px;left:50%;box-shadow:0 0 16px rgba(114,212,199,.75);
}
.boot-orbit-b:before{background:#9ea9ff;top:auto;bottom:5px}
.boot-node{
  width:34px;height:34px;
  background:radial-gradient(circle at 34% 34%,#fff,#72d4c7 38%,rgba(114,212,199,.12) 70%);
  box-shadow:0 0 32px rgba(114,212,199,.52);
  animation:bootPulse 1.8s ease-in-out infinite;
}
.boot-kicker{font-size:11px;letter-spacing:.18em;color:#72d4c7;font-weight:800}
.boot-title{font-size:clamp(28px,5vw,52px);font-weight:850;letter-spacing:-.035em;margin:10px 0 7px}
.boot-sub{font-size:13px;color:#86a7b5}
.boot-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#8fd36b;margin-right:7px;box-shadow:0 0 10px #8fd36b}
.boot-progress{height:3px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden;margin:28px auto 8px;max-width:420px}
.boot-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#58d5d0,#9ea9ff,#8fd36b);box-shadow:0 0 16px rgba(88,213,208,.48);transition:width .13s ease}
.boot-percent{font:11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:#7094a3}
.tech-boot.boot-out{opacity:0;visibility:hidden}
.tech-boot.boot-fast{opacity:0;visibility:hidden}

.hero-visual{transform:translate3d(var(--mx,0),var(--my,0),0);transition:transform .22s ease-out}
.fx-glow{transform:translate3d(var(--mx,0),var(--my,0),0)}
.panel,.model-card,.metric,.note-card{
  backdrop-filter:blur(10px);
}
.model-card.is-selected:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 15%,color-mix(in srgb,var(--model-accent) 10%,transparent) 50%,transparent 78%);
  transform:translateX(-120%);
  animation:selectedSweep 3.2s ease-in-out infinite;
}
.chart-line{filter:drop-shadow(0 0 3px rgba(255,255,255,.08))}
.end-label{filter:drop-shadow(0 0 5px rgba(0,0,0,.28))}
.topbar{box-shadow:0 8px 40px rgba(0,0,0,.12)}
.topbar nav a{position:relative}
.topbar nav a:after{
  content:"";position:absolute;left:50%;right:50%;bottom:-7px;height:1px;background:#72d4c7;
  transition:left .2s ease,right .2s ease;box-shadow:0 0 8px rgba(114,212,199,.5)
}
.topbar nav a:hover:after,.topbar nav a.active:after{left:0;right:0}

@keyframes bootGrid{from{transform:perspective(650px) rotateX(65deg) translateY(16%) translateX(0)}to{transform:perspective(650px) rotateX(65deg) translateY(16%) translateX(42px)}}
@keyframes bootSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes bootPulse{0%,100%{transform:translate(-50%,-50%) scale(.92);opacity:.78}50%{transform:translate(-50%,-50%) scale(1.08);opacity:1}}
@keyframes selectedSweep{0%,52%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
}

/* V1.3.0: 不再使用全屏启动遮罩，页面一打开就能看到内容 */
.tech-boot{display:none!important}

.hero-portal{
  min-height:min(720px,calc(100vh - 92px));
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
  gap:46px;
  align-items:center;
  padding:56px 0 68px;
}
.hero-copy{position:relative;z-index:2}
.hero-gradient-text{
  background:linear-gradient(90deg,#eaf3f8 0%,#72d4c7 38%,#9ea7ff 70%,#eaf3f8 100%);
  background-size:180% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:heroGradient 7s ease-in-out infinite;
}
.live-strip{
  margin-top:22px;
  display:flex;flex-wrap:wrap;gap:10px 14px;
  color:#718f9d;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
}
.live-strip span{display:inline-flex;align-items:center;gap:7px}
.live-pill{color:#b9eae4!important}
.live-pill i{
  width:7px;height:7px;border-radius:50%;background:#8fd36b;
  box-shadow:0 0 12px rgba(143,211,107,.8);animation:livePulse 1.7s ease-in-out infinite;
}

.portal-stage{
  --rx:0deg;--ry:0deg;--px:0px;--py:0px;
  position:relative;
  width:min(500px,100%);
  aspect-ratio:1/1;
  justify-self:end;
  border-radius:40px;
  transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));
  transition:transform .16s ease-out;
  background:
    radial-gradient(circle at 50% 50%,rgba(88,213,208,.07),transparent 36%),
    linear-gradient(180deg,rgba(13,35,47,.58),rgba(6,20,29,.30));
  border:1px solid rgba(112,197,205,.17);
  box-shadow:
    0 28px 80px rgba(0,0,0,.28),
    inset 0 0 70px rgba(114,212,199,.025),
    0 0 80px rgba(60,178,180,.05);
  overflow:hidden;
  isolation:isolate;
}
.portal-stage:before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(rgba(88,213,208,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(88,213,208,.045) 1px,transparent 1px);
  background-size:28px 28px;
  mask-image:radial-gradient(circle at center,#000 0 48%,transparent 78%);
}
.portal-stage:after{
  content:"";position:absolute;inset:-40% -20%;pointer-events:none;
  background:linear-gradient(110deg,transparent 43%,rgba(119,236,225,.11) 50%,transparent 57%);
  transform:translateX(-65%) rotate(7deg);
  animation:portalSweep 5.2s ease-in-out infinite;
}
.portal-hud{
  position:absolute;z-index:6;
  left:18px;right:18px;
  display:flex;justify-content:space-between;
  color:#6e9dab;font:10px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.08em;
}
.hud-top{top:16px}
.hud-bottom{bottom:16px;color:#93cfc9}
.portal-disc,.portal-scan,.portal-crosshair{position:absolute;left:50%;top:50%;border-radius:50%;pointer-events:none}
.portal-disc{transform:translate(-50%,-50%);border:1px solid rgba(114,212,199,.16)}
.disc-outer{width:76%;height:76%;animation:discSpin 28s linear infinite}
.disc-mid{width:55%;height:55%;border-style:dashed;border-color:rgba(158,169,255,.18);animation:discSpin 18s linear infinite reverse}
.disc-inner{width:32%;height:32%;border-color:rgba(143,211,107,.18);animation:discSpin 11s linear infinite}
.disc-outer:before,.disc-mid:before,.disc-inner:before{
  content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;margin-left:-4px;border-radius:50%;
  background:#72d4c7;box-shadow:0 0 16px rgba(114,212,199,.9);
}
.disc-mid:before{background:#9ea9ff;box-shadow:0 0 16px rgba(158,169,255,.9)}
.disc-inner:before{background:#8fd36b;box-shadow:0 0 16px rgba(143,211,107,.8)}
.portal-scan{
  width:38%;height:38%;transform-origin:center;
  transform:translate(-50%,-50%);
  background:conic-gradient(from 0deg,rgba(88,213,208,.20),rgba(88,213,208,0) 26%,transparent 100%);
  mask-image:radial-gradient(circle,transparent 0 22%,#000 24% 100%);
  animation:radarSpin 4.6s linear infinite;
}
.portal-crosshair{
  width:20px;height:20px;transform:translate(calc(-50% + var(--px)),calc(-50% + var(--py)));
  border:1px solid rgba(255,255,255,.23);
  transition:transform .16s ease-out;
}
.portal-crosshair:before,.portal-crosshair:after{content:"";position:absolute;background:rgba(114,212,199,.35)}
.portal-crosshair:before{left:50%;top:-22px;width:1px;height:64px}
.portal-crosshair:after{top:50%;left:-22px;width:64px;height:1px}

.portal-core{
  position:absolute;left:50%;top:50%;z-index:5;
  width:126px;height:126px;border-radius:50%;
  transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(circle at 36% 32%,rgba(255,255,255,.11),rgba(11,35,46,.94) 48%,rgba(4,14,21,.98));
  border:1px solid rgba(114,212,199,.26);
  box-shadow:0 0 45px rgba(88,213,208,.12),inset 0 0 36px rgba(88,213,208,.05);
}
.portal-core strong{font-size:30px;letter-spacing:.06em}
.portal-core small{color:#658a98;font:9px/1.2 ui-monospace,Consolas,monospace;letter-spacing:.12em}
.core-dot{
  width:8px;height:8px;border-radius:50%;background:#72d4c7;margin-bottom:6px;
  box-shadow:0 0 18px rgba(114,212,199,1);animation:livePulse 1.5s ease-in-out infinite;
}

.orbit-model-node{
  position:absolute;z-index:8;
  width:64px;height:64px;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--node-color) 38%,transparent);
  background:color-mix(in srgb,var(--node-color) 9%,rgba(5,18,27,.90));
  color:#edf7fa;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
  box-shadow:0 0 0 1px rgba(255,255,255,.015) inset;
}
.orbit-model-node b{font-size:20px;color:var(--node-color);line-height:1}
.orbit-model-node span{font:8px/1.2 ui-monospace,Consolas,monospace;color:#6d8996;margin-top:4px;letter-spacing:.10em}
.orbit-model-node:hover,.orbit-model-node.active{
  transform:scale(1.10);
  background:color-mix(in srgb,var(--node-color) 18%,rgba(5,18,27,.86));
  border-color:color-mix(in srgb,var(--node-color) 75%,white 0%);
  box-shadow:0 0 28px color-mix(in srgb,var(--node-color) 28%,transparent),inset 0 0 18px color-mix(in srgb,var(--node-color) 8%,transparent);
}
.node-a{left:50%;top:10%;margin-left:-32px}
.node-b{right:9%;top:34%}
.node-c{right:20%;bottom:11%}
.node-d{left:20%;bottom:11%}
.node-e{left:9%;top:34%}

.portal-readout{
  position:absolute;z-index:6;left:18px;bottom:42px;
  display:grid;grid-template-columns:auto 1fr;gap:3px 10px;
  color:#527987;font:8px/1.35 ui-monospace,Consolas,monospace;
}
.portal-readout b{font-weight:600;color:#769eaa;letter-spacing:.04em}

.portal-stage.pulse .portal-core{animation:coreImpact .72s cubic-bezier(.1,.8,.2,1)}
.portal-stage.pulse:before{animation:gridImpact .72s ease-out}

.interactive-field{z-index:0!important}
main,.topbar,.local-preview-note,footer{position:relative;z-index:2}

@keyframes heroGradient{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
@keyframes livePulse{0%,100%{opacity:.45;transform:scale(.82)}50%{opacity:1;transform:scale(1.15)}}
@keyframes portalSweep{0%,28%{transform:translateX(-75%) rotate(7deg)}70%,100%{transform:translateX(75%) rotate(7deg)}}
@keyframes discSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes radarSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes coreImpact{0%{transform:translate(-50%,-50%) scale(1)}45%{transform:translate(-50%,-50%) scale(1.14);box-shadow:0 0 75px rgba(88,213,208,.30)}100%{transform:translate(-50%,-50%) scale(1)}}
@keyframes gridImpact{0%{filter:brightness(1)}40%{filter:brightness(1.7)}100%{filter:brightness(1)}}

@media(max-width:980px){
  .hero-portal{grid-template-columns:1fr;min-height:auto;padding-top:54px}
  .portal-stage{justify-self:center;width:min(500px,92vw)}
}
@media(max-width:560px){
  .portal-readout{display:none}
  .orbit-model-node{width:54px;height:54px}
  .node-a{margin-left:-27px}
}

/* V1.3.1 — 顶部空白彻底移除 */
html,body{margin:0!important;padding:0!important;min-height:100%!important}
.fx-grid,.fx-glow,.fx-orbit,.tech-canvas,.interactive-field{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  margin:0!important;
  padding:0!important;
  pointer-events:none!important;
  z-index:0!important;
}
.fx-orbit{
  width:700px!important;
  height:700px!important;
  inset:auto!important;
  left:50%!important;
  top:14%!important;
}
.orbit-2{
  width:520px!important;
  height:520px!important;
  top:19%!important;
}
.local-preview-note{
  margin:0!important;
  min-height:0!important;
}
.topbar{
  margin:0!important;
}
main{
  margin-top:0!important;
}

/* 第一屏压紧：打开就能立刻看到文案 + 模型星图 */
.hero-portal{
  min-height:0!important;
  padding:34px 0 42px!important;
  gap:34px!important;
  align-items:center!important;
}
.hero-portal .hero-copy{
  padding-top:4px;
}
.hero-portal h1{
  margin-top:12px!important;
  margin-bottom:16px!important;
  font-size:clamp(44px,6vw,72px)!important;
}
.hero-portal p{
  margin-top:0!important;
  font-size:17px!important;
}
.hero-portal .hero-actions{
  margin:22px 0 18px!important;
}
.portal-stage{
  width:min(430px,100%)!important;
}
.live-strip{
  margin-top:16px!important;
}
.section:first-of-type{
  margin-top:0!important;
}

/* 桌面大屏也不要强行撑满一屏 */
@media(min-width:1400px){
  .hero-portal{
    padding-top:28px!important;
    padding-bottom:36px!important;
  }
  .portal-stage{width:410px!important}
}
@media(max-width:980px){
  .hero-portal{
    padding-top:28px!important;
    padding-bottom:34px!important;
  }
}


/* V1.4.2 曲线节点悬浮数据 */
.chart-point-hit{cursor:crosshair;outline:none}
.chart-point-dot{
  transition:r .12s ease,opacity .12s ease;
  filter:drop-shadow(0 0 5px rgba(255,255,255,.12));
}
.chart-tooltip{
  --tooltip-accent:#58d5d0;
  position:fixed;
  z-index:10000;
  min-width:168px;
  padding:11px 13px;
  border:1px solid color-mix(in srgb,var(--tooltip-accent) 58%,#274554);
  border-radius:12px;
  background:rgba(4,17,26,.94);
  box-shadow:0 14px 38px rgba(0,0,0,.34),0 0 22px color-mix(in srgb,var(--tooltip-accent) 12%,transparent);
  backdrop-filter:blur(12px);
  opacity:0;
  visibility:hidden;
  transform:translateY(5px) scale(.98);
  transition:opacity .11s ease,transform .11s ease,visibility .11s ease;
  pointer-events:none;
}
.chart-tooltip:before{
  content:"";
  position:absolute;
  left:0;top:11px;bottom:11px;
  width:2px;border-radius:999px;
  background:var(--tooltip-accent);
  box-shadow:0 0 11px var(--tooltip-accent);
}
.chart-tooltip.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.chart-tooltip-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:25px;
  color:#8eabb8;
  font-size:12px;
  white-space:nowrap;
}
.chart-tooltip-row b{
  color:#edf7fa;
  font-size:13px;
  font-weight:800;
}
.chart-tooltip-row b.positive{color:#ff6577}
.chart-tooltip-row b.negative{color:#67d58a}



/* V1.4.3 tooltip date */
.chart-tooltip-date{
  margin:-1px 0 7px;
  padding:0 0 7px;
  border-bottom:1px solid rgba(255,255,255,.07);
  color:#eef7fa;
  font:700 12px/1.25 ui-monospace,SFMono-Regular,Consolas,"Microsoft YaHei UI",sans-serif;
  letter-spacing:.03em;
}


/* V1.4.4 — 悬浮卡真正置顶 + 更美观的节点交互 */
body > .chart-tooltip,
.chart-tooltip{
  position:fixed!important;
  z-index:2147483646!important;
  pointer-events:none!important;
  margin:0!important;
  padding:13px 15px 12px 17px;
}

.chart-point-hit{
  cursor:pointer!important;
  outline:none!important;
}

.chart-point-halo{
  transform-box:fill-box;
  transform-origin:center;
  transition:opacity .13s ease,transform .13s ease;
  filter:drop-shadow(0 0 5px currentColor);
}
.chart-point-halo.active{
  animation:nodeHaloPulse 1.05s ease-in-out infinite;
}

.chart-point-dot{
  transition:r .13s cubic-bezier(.2,.8,.2,1),opacity .13s ease;
  filter:drop-shadow(0 0 6px rgba(255,255,255,.15));
}

.chart-tooltip{
  min-width:184px;
  border-radius:14px;
  background:
    linear-gradient(145deg,rgba(10,31,42,.97),rgba(4,16,24,.965));
  border:1px solid color-mix(in srgb,var(--tooltip-accent) 48%,#31505e);
  box-shadow:
    0 18px 44px rgba(0,0,0,.42),
    0 0 30px color-mix(in srgb,var(--tooltip-accent) 11%,transparent),
    inset 0 1px 0 rgba(255,255,255,.035);
}
.chart-tooltip:before{
  width:3px;
  left:0;
  top:12px;
  bottom:12px;
}
.chart-tooltip:after{
  content:"";
  position:absolute;
  right:12px;
  top:10px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--tooltip-accent);
  box-shadow:0 0 11px var(--tooltip-accent);
  opacity:.85;
}
.chart-tooltip-date{
  font-size:13px;
  letter-spacing:.045em;
  color:#f3f8fb;
  padding-right:18px;
}
.chart-tooltip-row{
  min-height:27px;
  font-size:12px;
}
.chart-tooltip-row b{
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
}

@keyframes nodeHaloPulse{
  0%,100%{transform:scale(.86);opacity:.48}
  50%{transform:scale(1.22);opacity:1}
}


/* ============================================================
   V1.5.0 finishing layer
   ============================================================ */
.status-stack{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.sync-status{
  font-size:12px;
  color:#a9c5ce;
  padding:8px 12px;
  border:1px solid rgba(143,211,107,.19);
  border-radius:999px;
  background:rgba(143,211,107,.045);
  white-space:nowrap;
}
.sync-dot{
  display:inline-block;
  width:7px;height:7px;
  margin-right:7px;
  border-radius:50%;
  background:#8fd36b;
  box-shadow:0 0 10px rgba(143,211,107,.65);
  animation:livePulse 1.8s ease-in-out infinite;
}

.chart-controls{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
}
.chart-mode-toggle{
  display:inline-flex;
  padding:3px;
  gap:3px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(4,16,24,.52);
}
.chart-mode-btn{
  border:0;
  border-radius:9px;
  padding:7px 11px;
  cursor:pointer;
  color:#819da9;
  background:transparent;
  font:700 11px/1.2 "Microsoft YaHei UI",system-ui,sans-serif;
  transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}
.chart-mode-btn:hover{color:#dcecef}
.chart-mode-btn.active{
  color:#eaf8f7;
  background:rgba(88,213,208,.12);
  box-shadow:inset 0 0 0 1px rgba(88,213,208,.25),0 0 16px rgba(88,213,208,.05);
}

.methodology-panel{
  position:relative;
  overflow:hidden;
}
.methodology-panel:after{
  content:"";
  position:absolute;
  width:260px;height:260px;
  right:-110px;top:-130px;
  border-radius:50%;
  border:1px solid rgba(114,212,199,.08);
  box-shadow:0 0 60px rgba(88,213,208,.04);
  pointer-events:none;
}
.method-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:16px;
}
.method-item{
  min-height:128px;
  padding:17px;
  border:1px solid rgba(255,255,255,.065);
  border-radius:13px;
  background:rgba(255,255,255,.018);
}
.method-item .method-kicker{
  color:#72d4c7;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}
.method-item h3{
  margin:6px 0 7px;
  font-size:16px;
}
.method-item p{
  margin:0;
  color:#8fa6b5;
  font-size:13px;
  line-height:1.65;
}
.method-mode{
  display:inline-flex;
  margin-top:9px;
  padding:5px 8px;
  border-radius:8px;
  color:#bde7e2;
  background:rgba(88,213,208,.07);
  border:1px solid rgba(88,213,208,.15);
  font-size:11px;
}

.public-disclaimer{
  color:#8fa6b5;
}
.public-disclaimer strong{
  color:#c9dce4;
  font-weight:700;
}

@media(max-width:900px){
  .method-grid{grid-template-columns:1fr 1fr}
  .status-stack{justify-content:flex-start}
  .chart-controls{align-items:flex-start}
}
@media(max-width:560px){
  .method-grid{grid-template-columns:1fr}
  .chart-mode-toggle{width:100%}
  .chart-mode-btn{flex:1}
}


/* ============================================================
   V1.6.0 production polish
   ============================================================ */
.version-timeline{
  position:relative;
  margin-top:18px;
  padding:0 0 0 20px;
}
.version-timeline:before{
  content:"";
  position:absolute;
  left:5px;top:8px;bottom:8px;
  width:1px;
  background:linear-gradient(rgba(88,213,208,.45),rgba(88,213,208,.06));
}
.version-entry{
  position:relative;
  padding:0 0 18px 18px;
}
.version-entry:last-child{padding-bottom:0}
.version-node{
  position:absolute;
  left:-19px;top:12px;
  width:9px;height:9px;border-radius:50%;
  background:#5e7f8c;
  box-shadow:0 0 0 4px rgba(94,127,140,.08);
}
.version-entry.current .version-node{
  background:#58d5d0;
  box-shadow:0 0 0 4px rgba(88,213,208,.10),0 0 16px rgba(88,213,208,.28);
}
.version-card{
  border:1px solid rgba(255,255,255,.065);
  border-radius:12px;
  padding:13px 15px;
  background:rgba(255,255,255,.018);
}
.version-top{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
}
.version-top b{font-size:15px;color:#eaf3f6}
.version-top span{
  color:#87a5b2;
  font-size:11px;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:999px;
}
.version-entry.current .version-top span{
  color:#a9e8e2;
  border-color:rgba(88,213,208,.18);
  background:rgba(88,213,208,.05);
}
.version-date{
  margin-top:6px;
  color:#76939f;
  font-size:12px;
}

.risk-panel{
  overflow:hidden;
}
.risk-title-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.risk-pill{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  color:#9edfb0;
  border:1px solid rgba(103,213,138,.18);
  background:rgba(103,213,138,.05);
  font-size:11px;
  font-weight:800;
}
#detailDrawdownChart{
  width:100%;
  height:auto;
  display:block;
  margin-top:8px;
}

.seo-note{
  color:#74909b;
  font-size:11px;
}

.error-page{
  min-height:70vh;
  display:grid;
  place-items:center;
  padding:60px 22px;
}
.error-card{
  width:min(720px,100%);
  text-align:center;
  padding:44px 30px;
  border:1px solid #1e3b48;
  border-radius:22px;
  background:linear-gradient(145deg,rgba(15,42,53,.88),rgba(5,18,26,.92));
  box-shadow:0 24px 80px rgba(0,0,0,.22);
}
.error-code{
  font-size:clamp(70px,13vw,150px);
  line-height:.88;
  letter-spacing:-.06em;
  font-weight:900;
  background:linear-gradient(90deg,#58d5d0,#9ea9ff);
  -webkit-background-clip:text;
  color:transparent;
}
.error-card h1{margin:18px 0 8px}
.error-card p{color:#89a6b2;line-height:1.7}


/* ============================================================
   V1.6.1 — card interaction + clean drawdown hover
   ============================================================ */
.model-card{cursor:pointer}
.model-card .card-actions{
  justify-content:flex-end;
}
.model-card .card-detail-link{
  position:relative;
  z-index:2;
}
.card-select-btn{display:none!important}

.drawdown-point-hit{
  cursor:pointer;
  outline:none;
}
.drawdown-point-dot{
  transition:opacity .12s ease, r .12s ease;
  filter:drop-shadow(0 0 6px rgba(103,213,138,.40));
}
.drawdown-point-halo{
  transform-box:fill-box;
  transform-origin:center;
}
.drawdown-point-halo.active{
  animation:nodeHaloPulse 1.05s ease-in-out infinite;
}



/* V1.6.2 — 模型矩阵：整张卡片进入详情 */
.model-card[role="link"]{
  cursor:pointer;
}
.model-card[role="link"]:focus-visible{
  outline:2px solid color-mix(in srgb,var(--model-accent) 72%,#ffffff);
  outline-offset:3px;
}
.model-card[role="link"]:hover{
  transform:translateY(-2px);
  box-shadow:
    0 18px 42px rgba(0,0,0,.18),
    0 0 24px color-mix(in srgb,var(--model-accent) 8%,transparent);
}

