@import url('https://fonts.googleapis.com/css2?family=Crimson+Text:wght@400;600;700&family=EB+Garamond:wght@400;500;600;700;800&display=swap');

:root{
  --navy:#001e3c;
  --navy-deep:#00162c;
  --navy-2:#032a4e;
  --mint:#99ffcc;
  --neon:#00ff41;
  --ink:#eafff6;
  --dim:#a8c8bf;
  --line:rgba(153,255,204,.22);
  --line-2:rgba(153,255,204,.4);
  --radius:18px;
  --serif:"EB Garamond","Crimson Text",Georgia,"Songti SC","SimSun",serif;
  --rail:214px;
  --bar:40px;
}

*{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  font-family:var(--serif);
  font-size:18px;
  line-height:1.7;
  color:var(--ink);
  background-color:var(--navy);
  background-image:
    radial-gradient(46rem 32rem at 8% -6%,rgba(0,255,65,.16),transparent 62%),
    radial-gradient(38rem 28rem at 104% 6%,rgba(153,255,204,.16),transparent 64%),
    linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%);
  background-attachment:fixed;
}

body::before{
  content:"";
  position:fixed;
  inset:-18% -12% auto -12%;
  height:78vh;
  z-index:0;
  pointer-events:none;
  filter:blur(22px);
  background:
    radial-gradient(28rem 20rem at 24% 26%,rgba(0,255,65,.18),transparent 70%),
    radial-gradient(24rem 18rem at 78% 8%,rgba(153,255,204,.2),transparent 72%);
  animation:breathe 18s ease-in-out infinite;
}

@keyframes breathe{
  0%,100%{transform:scale(1) translateY(0)}
  50%{transform:scale(1.09) translateY(-10px)}
}

a{color:var(--mint)}

a:focus-visible,
button:focus-visible{
  outline:2px solid var(--neon);
  outline-offset:3px;
  border-radius:6px;
}

img{max-width:100%;height:auto}

hr{
  border:0;
  height:3px;
  width:64px;
  margin:12px 0 20px;
  border-radius:3px;
  background:linear-gradient(90deg,var(--neon),var(--mint) 60%,transparent);
}

/* 顶部细条 */
.topbar{
  position:fixed;
  inset:0 0 auto 0;
  z-index:40;
  height:var(--bar);
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 18px;
  background:rgba(0,22,44,.92);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(8px);
}

.topbar-brand{
  margin:0;
  font-size:.86rem;
  letter-spacing:.34em;
  text-transform:none;
  color:var(--mint);
  white-space:nowrap;
}

.tick{
  flex:0 0 26px;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--neon));
}

.tick-b{background:linear-gradient(90deg,var(--mint),transparent);flex:1 1 auto}

/* 左侧竖排导航 */
.rail{
  position:fixed;
  top:var(--bar);
  left:0;
  bottom:0;
  width:var(--rail);
  z-index:30;
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:18px 14px 26px;
  border-right:1px solid var(--line);
  background:linear-gradient(180deg,rgba(0,30,60,.86),rgba(0,22,44,.94));
  backdrop-filter:blur(6px);
  overflow-y:auto;
}

.brandpin{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid var(--line-2);
  background:radial-gradient(circle at 34% 30%,rgba(0,255,65,.28),rgba(0,30,60,.9));
  text-decoration:none;
  transition:transform .35s ease,border-color .35s ease;
}

.brandpin:hover{transform:rotate(-8deg) scale(1.06);border-color:var(--neon)}

.mark{width:26px;height:26px;border-radius:50%;object-fit:cover;display:block}

.mark-fallback{
  width:16px;
  height:16px;
  border-radius:50%;
  background:radial-gradient(circle at 32% 30%,var(--mint),var(--neon) 55%,#0b7a3f);
  box-shadow:0 0 14px rgba(0,255,65,.55);
}

.sidenav{display:flex;flex-direction:column;min-height:0}

.navhead{
  margin:0;
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.28em;
  color:var(--dim);
}

.navhead + hr{width:38px;height:2px;margin:8px 0 14px}

.sidenav ul{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:nav;
}

.sidenav li{
  counter-increment:nav;
  opacity:0;
  animation:rise .62s cubic-bezier(.22,.7,.3,1) forwards;
  animation-delay:calc(var(--i) * 58ms + 120ms);
}

@keyframes rise{
  from{opacity:0;transform:translateX(-12px)}
  to{opacity:1;transform:none}
}

.sidenav a{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:9px 8px 9px 12px;
  color:var(--dim);
  text-decoration:none;
  font-size:1rem;
  line-height:1.35;
  border-left:2px solid transparent;
  transition:color .25s ease,background .25s ease,border-color .25s ease,transform .25s ease;
}

.sidenav a::before{
  content:counter(nav,decimal-leading-zero);
  flex:0 0 auto;
  font-size:.72rem;
  letter-spacing:.1em;
  color:rgba(153,255,204,.5);
  transition:color .25s ease;
}

.sidenav a:hover,
.sidenav a.on{
  color:var(--ink);
  border-left-color:var(--neon);
  background:linear-gradient(90deg,rgba(0,255,65,.16),transparent 88%);
  transform:translateX(4px);
}

.sidenav a:hover::before,
.sidenav a.on::before{color:var(--neon)}

/* 主体 */
main{
  position:relative;
  z-index:1;
  margin-left:var(--rail);
  padding:0 clamp(18px,4vw,62px);
}

main > article:not(.hero){
  max-width:70ch;
  margin:0 auto 26px;
  padding:clamp(20px,3vw,36px);
  border:1px solid var(--line);
  border-bottom:3px solid rgba(0,255,65,.55);
  border-radius:var(--radius);
  background:linear-gradient(158deg,rgba(153,255,204,.08),rgba(0,22,44,.42));
  scroll-margin-top:calc(var(--bar) + 22px);
}

main > article:not(.hero) h2{
  margin:0;
  font-size:clamp(1.4rem,2.6vw,1.82rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:.01em;
  color:#f3fffa;
}

main > article:not(.hero) h3{
  margin:24px 0 4px;
  font-size:1.16rem;
  color:var(--mint);
}

main > article:not(.hero) p{margin:0 0 14px}
main > article:not(.hero) p:last-child{margin-bottom:0}

main > article:not(.hero) ul,
main > article:not(.hero) ol{padding-left:1.2em;margin:0 0 14px}
main > article:not(.hero) li{margin:.35em 0}

main > article:not(.hero) a{
  color:var(--mint);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}

main > article:not(.hero) a:hover{color:var(--neon)}

main > article:not(.hero) strong{color:#f3fffa}

main figure{margin:1.2em 0}

main figure img{border-radius:14px}

/* 首屏 */
.hero{
  position:relative;
  display:grid;
  grid-template-columns:1.06fr .94fr;
  align-items:center;
  gap:clamp(20px,4vw,52px);
  min-height:100vh;
  padding:calc(var(--bar) + 46px) 0 96px;
  overflow:hidden;
}

.hero::after{
  content:"";
  position:absolute;
  left:-6%;
  right:-6%;
  bottom:0;
  height:64px;
  clip-path:polygon(0 68%,100% 0,100% 100%,0 100%);
  background:linear-gradient(90deg,rgba(0,255,65,.55),rgba(153,255,204,.28) 60%,rgba(0,255,65,.1));
  opacity:.6;
  pointer-events:none;
}

.hero-copy{
  position:relative;
  z-index:2;
  text-align:center;
}

.hero-copy h1{
  margin:0 auto;
  max-width:16ch;
  font-size:clamp(2rem,4.6vw,3.5rem);
  font-weight:700;
  line-height:1.14;
  letter-spacing:.005em;
  color:#f6fffb;
  text-shadow:0 0 32px rgba(0,255,65,.3);
}

.lede{
  margin:18px auto 0;
  max-width:34ch;
  font-size:1.05rem;
  line-height:1.7;
  color:var(--dim);
}

.hero-art{
  position:relative;
  margin:0;
  clip-path:polygon(8% 0,100% 4%,94% 96%,0 100%);
  filter:drop-shadow(0 14px 44px rgba(0,255,65,.25));
}

.blobsvg{
  display:block;
  width:100%;
  max-width:440px;
  margin:0 auto;
  height:auto;
}

.cell{transform-origin:50% 50%}

.cell-b{animation:pulse 11s ease-in-out infinite}
.cell-a{animation:pulse 15s ease-in-out infinite reverse}

@keyframes pulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.055)}
}

.spore{animation:pulse 8s ease-in-out infinite}
.spore-b{animation-delay:.8s}
.spore-c{animation-delay:1.6s}

/* 页脚 */
.foot{
  position:relative;
  z-index:1;
  margin-left:var(--rail);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px 26px;
  padding:26px clamp(18px,4vw,62px) 40px;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,rgba(0,22,44,.3),rgba(0,255,65,.07));
}

.fbrand{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.98rem;
  letter-spacing:.16em;
  color:var(--mint);
}

.fbrand .mark-fallback{width:12px;height:12px}

.fnav{
  display:flex;
  flex-wrap:wrap;
  gap:4px 2px;
  flex:1 1 260px;
}

.fnav a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:6px 9px;
  color:var(--dim);
  text-decoration:none;
  font-size:.95rem;
  border-bottom:2px solid transparent;
  transition:color .22s ease,border-color .22s ease;
}

.fnav a:hover{color:var(--ink);border-bottom-color:var(--neon)}

.fcta a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:9px 20px;
  border-radius:999px;
  border:1px solid var(--line-2);
  background:rgba(0,255,65,.14);
  color:#f4fffb;
  text-decoration:none;
  font-size:1rem;
  letter-spacing:.06em;
  transition:background .25s ease,transform .25s ease,border-color .25s ease;
}

.fcta a:hover{background:rgba(0,255,65,.3);border-color:var(--neon);transform:translateY(-2px)}

.fcopy{
  flex:1 1 100%;
  font-size:.86rem;
  letter-spacing:.06em;
  color:rgba(168,200,191,.8);
}

/* 回顶 */
.totop{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:50;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid var(--line-2);
  background:rgba(0,22,44,.9);
  color:var(--mint);
  font-size:1.1rem;
  line-height:1;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .28s ease,transform .28s ease,visibility .28s;
}

.totop.show{opacity:1;visibility:visible;transform:none}

.totop:hover{color:var(--neon);border-color:var(--neon)}

@media (max-width:900px){
  .topbar{position:static}
  .tick{flex:0 0 16px}
  .rail{
    position:static;
    width:auto;
    height:auto;
    flex-direction:row;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-right:0;
    border-bottom:1px solid var(--line);
    overflow:visible;
  }
  .brandpin{width:40px;height:40px;flex:0 0 auto}
  .sidenav{flex:1 1 auto;min-width:0}
  .navhead,.navhead + hr{display:none}
  .sidenav ul{
    display:flex;
    gap:6px;
    overflow-x:auto;
    padding-bottom:2px;
    scrollbar-width:thin;
  }
  .sidenav li{flex:0 0 auto;animation-delay:calc(var(--i) * 40ms)}
  .sidenav a{
    min-height:44px;
    padding:10px 12px;
    border-left:0;
    border-bottom:2px solid transparent;
    white-space:nowrap;
    font-size:.98rem;
  }
  .sidenav a:hover,
  .sidenav a.on{
    border-left-color:transparent;
    border-bottom-color:var(--neon);
    transform:none;
  }
  main,.foot{margin-left:0}
  .hero{
    grid-template-columns:1fr;
    min-height:0;
    padding:34px 0 76px;
    gap:26px;
  }
  .hero-art{order:2}
  .hero-copy h1{font-size:clamp(1.9rem,8.4vw,2.7rem);max-width:18ch}
  .lede{font-size:1rem;max-width:30ch}
  main > article:not(.hero){scroll-margin-top:16px}
  .fcopy{flex:1 1 100%}
}

@media (max-width:520px){
  body{font-size:17px}
  main{padding:0 14px}
  .foot{padding:22px 14px 34px}
  .blobsvg{max-width:300px}
  .fcta{flex:1 1 100%}
  .fcta a{width:100%;justify-content:center}
}

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

button[aria-expanded]{min-width:44px;min-height:44px}
