/* ============================================================
   长果桑基因组网页 · 卡通科研风 × 新海诚配色
   ============================================================ */
:root{
  /* 新海诚天空色板 */
  --sky-top:#8fd0ec;
  --sky-mid:#bfe7f3;
  --sky-low:#ffe6d2;
  --sun:#ffd9a0;
  --orange:#ff9a76;
  --pink:#ffb6c1;
  --blue:#5ba3d0;
  --teal:#6fd6c4;
  --purple:#9d8df1;
  --night:#1b2a4a;
  --ink:#22324f;
  --ink-soft:#4a5b78;
  --cream:#fbf3e4;
  --card:#fffdf8;
  --shadow:0 18px 40px -18px rgba(27,42,74,.35);
  --shadow-soft:0 8px 24px -12px rgba(27,42,74,.28);
  --radius:22px;
  --radius-lg:30px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.75;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.nav-brand,.hero-title,.stat-num,.evo-num{font-family:"ZCOOL KuaiLe","Noto Sans SC",sans-serif;font-weight:400;letter-spacing:.5px}
a{color:inherit;text-decoration:none}
em{font-style:italic;color:var(--purple);font-weight:700}
strong{color:var(--orange);font-weight:700}

/* ===== 动态天空背景 ===== */
.sky{position:fixed;inset:0;z-index:-2;overflow:hidden}
.sky-gradient{
  position:absolute;inset:0;
  background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 45%,var(--sky-low) 100%);
}
.sun-glow{
  position:absolute;top:8%;right:12%;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,var(--sun) 0%,rgba(255,217,160,.5) 35%,rgba(255,217,160,0) 70%);
  filter:blur(4px);animation:pulse 9s ease-in-out infinite;
}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:1}}
.cloud{position:absolute;background:rgba(255,255,255,.85);border-radius:50%;filter:blur(2px);opacity:.85}
.cloud::before,.cloud::after{content:"";position:absolute;background:inherit;border-radius:50%}
.cloud-1{top:14%;left:-12%;width:160px;height:50px;animation:drift 60s linear infinite}
.cloud-1::before{width:90px;height:90px;top:-40px;left:24px}
.cloud-1::after{width:70px;height:70px;top:-26px;left:84px}
.cloud-2{top:30%;left:60%;width:200px;height:60px;animation:drift 80s linear infinite;opacity:.7}
.cloud-2::before{width:110px;height:110px;top:-50px;left:30px}
.cloud-2::after{width:80px;height:80px;top:-34px;left:110px}
.cloud-3{top:6%;left:38%;width:130px;height:42px;animation:drift 100s linear infinite;opacity:.6}
.cloud-3::before{width:70px;height:70px;top:-30px;left:20px}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(140vw)}}
.stars{position:absolute;inset:0;opacity:0;background-image:
  radial-gradient(1.5px 1.5px at 20% 30%,#fff 50%,transparent),
  radial-gradient(1.5px 1.5px at 70% 20%,#fff 50%,transparent),
  radial-gradient(1.5px 1.5px at 40% 60%,#fff 50%,transparent),
  radial-gradient(2px 2px at 85% 50%,#fff 50%,transparent),
  radial-gradient(1.5px 1.5px at 55% 15%,#fff 50%,transparent);
  background-size:100% 100%;transition:opacity .6s}
.hill{position:absolute;bottom:-2px;left:0;right:0;height:120px;
  background:linear-gradient(180deg,rgba(143,209,180,.0),rgba(120,180,150,.55));
  border-top-left-radius:60% 100%;border-top-right-radius:60% 100%;}

/* ===== 悬浮桑果精灵 ===== */
.mascot{position:fixed;right:18px;bottom:22px;z-index:20;animation:float 5s ease-in-out infinite;filter:drop-shadow(0 10px 14px rgba(27,42,74,.25))}
@keyframes float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-16px) rotate(3deg)}}

/* ===== 导航 ===== */
.nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;
  padding:12px 28px;backdrop-filter:blur(10px);background:rgba(251,243,228,.55);
  border-bottom:1px solid rgba(255,255,255,.5)}
.nav-brand{font-size:1.25rem;display:flex;align-items:center;gap:8px;color:var(--night)}
.nav-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--orange),var(--pink));box-shadow:0 0 0 4px rgba(255,154,118,.25)}
.nav-links{display:flex;gap:6px;list-style:none;flex-wrap:wrap}
.nav-links a{padding:6px 12px;border-radius:999px;font-size:.86rem;color:var(--ink-soft);transition:.25s}
.nav-links a:hover{background:rgba(255,255,255,.8);color:var(--night);transform:translateY(-1px)}

/* ===== 区块通用 ===== */
.section{max-width:1140px;margin:0 auto;padding:84px 24px}
.section-tint{background:rgba(255,255,255,.42);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);margin-top:30px;margin-bottom:30px}
.section-head{text-align:center;margin-bottom:46px}
.kicker{display:inline-block;font-family:"Noto Sans SC";font-weight:700;letter-spacing:2px;font-size:.78rem;
  color:#fff;background:linear-gradient(120deg,var(--blue),var(--purple));padding:4px 14px;border-radius:999px}
.section-head h2{font-size:clamp(1.8rem,4vw,2.8rem);margin:16px 0 8px;color:var(--night)}
.section-desc{color:var(--ink-soft);max-width:640px;margin:0 auto;font-size:1.02rem}

/* ===== Hero ===== */
.hero{min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:60px 24px;position:relative}
.hero-inner{max-width:840px;position:relative;z-index:2}
.hero-badge{display:inline-block;background:rgba(255,255,255,.8);color:var(--night);
  padding:8px 20px;border-radius:999px;font-weight:700;font-size:.9rem;box-shadow:var(--shadow-soft);
  border:1px solid rgba(255,255,255,.9)}
.hero-title{font-size:clamp(2.6rem,7vw,5rem);line-height:1.1;margin:22px 0 18px;color:var(--night);
  text-shadow:0 4px 0 rgba(255,255,255,.5)}
.hero-sub-en{display:block;font-size:.42em;color:var(--purple);letter-spacing:4px;margin-top:6px}
.hero-lead{font-size:clamp(1rem,2.2vw,1.22rem);color:var(--ink);margin-bottom:26px}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:34px}
.tag{background:rgba(255,255,255,.85);padding:8px 16px;border-radius:999px;font-weight:700;font-size:.92rem;
  box-shadow:var(--shadow-soft);border:2px solid rgba(255,255,255,.9)}
.hero-scroll{display:inline-block;color:var(--night);font-weight:700;animation:bob 2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
.hero-dna{position:absolute;right:4%;top:18%;height:60vh;opacity:.5;animation:float 6s ease-in-out infinite;z-index:1}

/* ===== 关于 TWCG ===== */
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.about-card,.about-ico{transition:.3s}
.about-card{background:var(--card);border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.7);position:relative;overflow:hidden}
.about-card::before{content:"";position:absolute;top:-30px;right:-30px;width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle,rgba(111,214,196,.4),transparent 70%)}
.about-ico{font-size:2.4rem;margin-bottom:10px}
.about-card h3{font-size:1.25rem;color:var(--night);margin-bottom:8px}
.about-card p{color:var(--ink-soft);font-size:.96rem}
.pedigree{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin-top:34px;
  background:rgba(255,255,255,.7);padding:22px;border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.pedigree-node{display:flex;flex-direction:column;align-items:center;background:var(--card);padding:12px 18px;
  border-radius:16px;box-shadow:var(--shadow-soft);min-width:120px}
.pedigree-node em{font-size:.9rem}
.pedigree-node small{color:var(--ink-soft);font-size:.78rem}
.pedigree-node.mom{border:2px solid var(--blue)}
.pedigree-node.dad{border:2px solid var(--purple)}
.pedigree-node.child{border:2px solid var(--orange);background:linear-gradient(135deg,#fff,#fff3ea)}
.pedigree-plus,.pedigree-arrow{font-size:1.6rem;font-weight:900;color:var(--night)}

/* ===== 基因组概览 统计卡 ===== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.stat-card{background:var(--card);border-radius:var(--radius);padding:26px 20px;text-align:center;
  box-shadow:var(--shadow);position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.7)}
.stat-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;
  background:linear-gradient(90deg,var(--orange),var(--pink),var(--blue))}
.stat-num{font-size:2.2rem;color:var(--night);line-height:1.1}
.stat-label{font-weight:700;margin-top:6px;color:var(--ink)}
.stat-sub{font-size:.8rem;color:var(--ink-soft);margin-top:2px}

/* ===== 三联单倍型卡 ===== */
.haplo-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.haplo-card{background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);
  border-top:6px solid var(--accent);position:relative}
.haplo-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.haplo-tag{font-family:"ZCOOL KuaiLe";font-size:1.5rem;color:var(--accent)}
.haplo-origin{font-size:.82rem;color:var(--ink-soft);background:rgba(27,42,74,.06);padding:4px 10px;border-radius:999px}
.haplo-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.haplo-list li{display:flex;flex-direction:column;background:rgba(27,42,74,.04);border-radius:14px;padding:10px}
.haplo-list b{font-size:1.15rem;color:var(--night)}
.haplo-list span{font-size:.76rem;color:var(--ink-soft)}

/* ===== 组装图表 ===== */
.assembly-figure{background:var(--card);border-radius:var(--radius);padding:28px;margin-top:26px;box-shadow:var(--shadow)}
.assembly-figure h3{color:var(--night);margin-bottom:18px;text-align:center}
.chart-row{display:flex;justify-content:center;align-items:flex-end;gap:34px;margin:18px 0;flex-wrap:wrap}
.bar-item{display:flex;flex-direction:column;align-items:center;width:84px}
.bar{width:46px;height:160px;background:linear-gradient(180deg,var(--c),color-mix(in srgb,var(--c) 60%,#fff));
  border-radius:12px 12px 4px 4px;display:flex;align-items:flex-start;justify-content:center;position:relative;
  transform:scaleY(0);transform-origin:bottom;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.bar span{margin-top:-22px;font-weight:700;color:var(--night);font-size:.82rem;white-space:nowrap}
.bar-cap{margin-top:8px;font-size:.78rem;color:var(--ink-soft);text-align:center}
.figure-note{font-size:.82rem;color:var(--ink-soft);text-align:center;margin-top:10px;font-style:italic}

/* ===== 进化 ===== */
.evo-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
.evo-tree{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.tree-svg{width:100%;height:auto}
.tree-label{font-size:11px;fill:var(--ink);font-family:"Noto Sans SC",sans-serif}
.tree-time{font-size:10px;fill:var(--purple);font-style:italic}
.evo-facts{display:grid;gap:16px}
.evo-fact{background:var(--card);border-radius:var(--radius);padding:18px 22px;box-shadow:var(--shadow-soft);
  border-left:5px solid var(--teal)}
.evo-num{font-family:"ZCOOL KuaiLe";font-size:1.8rem;color:var(--blue);line-height:1.1}
.evo-fact p{font-size:.95rem;color:var(--ink-soft)}

/* ===== 等位表达 ===== */
.allele-grid{display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:center}
.allele-pie{background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);text-align:center}
.donut{width:200px;height:200px;max-width:100%}
.donut-big{font-family:"ZCOOL KuaiLe";font-size:26px;fill:var(--night)}
.donut-small{font-size:11px;fill:var(--ink-soft)}
.legend{display:flex;flex-direction:column;gap:6px;margin-top:14px;font-size:.85rem;color:var(--ink-soft);align-items:flex-start}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:8px;vertical-align:middle}
.allele-points{display:grid;gap:16px}
.allele-point{background:var(--card);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-soft);border-left:5px solid var(--pink)}
.allele-point.highlight{border-left-color:var(--orange);background:linear-gradient(135deg,#fff,#fff3ea)}
.allele-point h3{color:var(--night);font-size:1.15rem;margin-bottom:6px}
.allele-point p{color:var(--ink-soft);font-size:.96rem}

/* ===== 抗病机制 ===== */
.resist-top{display:grid;grid-template-columns:1fr 1.2fr;gap:24px}
.fungus-card,.rga-card{background:var(--card);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.fungus-svg{width:96px;height:96px;display:block;margin:0 auto 10px}
.fungus-card h3{text-align:center;color:var(--night);font-size:1.1rem;margin-bottom:12px}
.fungus-card ul{list-style:none;display:grid;gap:8px}
.fungus-card li{font-size:.9rem;color:var(--ink-soft);padding-left:18px;position:relative}
.fungus-card li::before{content:"🍄";position:absolute;left:-2px;font-size:.8rem}
.fungus-card b{color:var(--night)}
.rga-card h3{color:var(--night);margin-bottom:16px}
.rga-bars{display:grid;gap:12px;margin-bottom:14px}
.rga-bar{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--ink-soft)}
.rga-bar b{color:var(--night);min-width:42px}
.rga-fill{height:14px;border-radius:999px;width:var(--w);background:var(--c);box-shadow:var(--shadow-soft);
  transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.rga-card p{font-size:.94rem;color:var(--ink-soft)}
.af3{background:linear-gradient(135deg,rgba(91,163,208,.12),rgba(157,141,241,.12));border-radius:var(--radius);
  padding:26px;margin-top:24px;box-shadow:var(--shadow-soft);text-align:center}
.af3 h3{color:var(--night);margin-bottom:18px}
.af3-nums{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px}
.af3-num{background:var(--card);border-radius:18px;padding:16px 22px;box-shadow:var(--shadow-soft);min-width:120px}
.af3-num b{display:block;font-family:"ZCOOL KuaiLe";font-size:2rem;color:var(--blue)}
.af3-num span{font-size:.8rem;color:var(--ink-soft)}
.af3-num.total b{color:var(--orange)}
.af3-plus,.af3-eq{font-size:1.6rem;font-weight:900;color:var(--night)}

/* ===== 团队 ===== */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.team-card{background:var(--card);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);border-top:5px solid var(--teal)}
.team-card h3{color:var(--night);margin-bottom:12px;font-size:1.2rem}
.authors{font-size:.92rem;color:var(--ink-soft);line-height:1.9}
.corr{margin-top:10px;font-size:.86rem;color:var(--purple);font-weight:700}
.affil{list-style:none;display:grid;gap:8px}
.affil li{font-size:.9rem;color:var(--ink-soft);padding-left:18px;position:relative}
.affil li::before{content:"📍";position:absolute;left:0}
.team-card p{font-size:.92rem;color:var(--ink-soft)}
.team-card code{background:rgba(27,42,74,.08);padding:2px 6px;border-radius:6px;font-size:.82rem}
.cite-note{text-align:center;margin-top:26px;font-size:.85rem;color:var(--ink-soft);font-style:italic}

/* ===== 页脚 ===== */
.footer{text-align:center;padding:40px 24px 60px;color:var(--ink-soft);font-size:.88rem}
.footer-sub{font-size:.78rem;opacity:.8;margin-top:4px}

/* ===== 滚动揭示动画 ===== */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* ===== 响应式 ===== */
@media(max-width:860px){
  .evo-grid,.allele-grid,.resist-top{grid-template-columns:1fr}
  .nav-links{display:none}
  .hero-dna{display:none}
  .allele-pie{max-width:320px;margin:0 auto}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .bar,.rga-fill{transform:none}
}
