@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap');

:root{
  --ink:#192617;
  --ink2:#22331d;
  --ink3:#101c0e;
  --neon:#87ff71;
  --sun:#ffce5c;
  --paper:#f4ffec;
  --muted:#c6e0bb;
  --line:rgba(135,255,113,.26);
  --ui:"Poppins","Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --tx:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

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

body{
  margin:0;
  background:var(--ink);
  color:#e7f6df;
  font:400 17px/1.8 var(--tx);
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:var(--sun)}
h1,h2,h3{font-family:var(--ui);line-height:1.2;margin:0 0 .6rem}

:focus-visible{
  outline:3px solid var(--sun);
  outline-offset:2px;
}

/* ---------- 顶部两行 ---------- */
.top{
  position:relative;
  z-index:30;
  background:var(--ink);
  border-bottom:3px solid var(--neon);
  padding:.5rem clamp(14px,4vw,44px) .25rem;
}
.top.stuck{box-shadow:0 6px 0 rgba(135,255,113,.32)}

.brand-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  text-decoration:none;
  color:var(--paper);
  font-family:var(--ui);
  font-weight:700;
  font-size:clamp(17px,4.2vw,22px);
  letter-spacing:.01em;
}
.brand-mark{
  width:28px;
  height:28px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  background:var(--neon);
  color:var(--ink);
  border-radius:6px;
  transform:rotate(-7deg);
  font-family:var(--ui);
  font-weight:700;
  font-size:14px;
  transition:transform .2s ease;
}
.brand:hover .brand-mark{transform:rotate(6deg) scale(1.06)}

.contact{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:.2rem 1rem;
  border-radius:10px;
  background:var(--sun);
  color:var(--ink);
  text-decoration:none;
  font-family:var(--ui);
  font-weight:600;
  font-size:16px;
  transition:transform .18s ease,box-shadow .18s ease;
}
.contact::before{
  content:"";
  width:10px;height:10px;
  border-radius:50%;
  background:var(--ink);
}
.contact:hover{transform:rotate(-2deg) translateY(-1px);box-shadow:0 4px 0 var(--neon)}

.menu ol{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:4px 6px;
  margin:0;
  padding:.15rem 0 .45rem;
}
.menu li{--i:0}
.menu a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:42px;
  padding:.3rem .68rem;
  border-radius:9px;
  color:#dcefd2;
  text-decoration:none;
  font-family:var(--ui);
  font-weight:500;
  font-size:16px;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
.menu .ico{
  width:10px;height:10px;
  flex:0 0 auto;
  background:var(--sun);
  clip-path:polygon(50% 0,100% 100%,0 100%);
  transition:transform .2s ease,background .16s ease;
}
.menu a:hover,
.menu a:focus-visible,
.menu a.on{background:var(--neon);color:var(--ink)}
.menu a:hover .ico,
.menu a.on .ico{background:var(--ink);transform:rotate(180deg)}

/* ---------- 首屏 ---------- */
.hero{
  position:relative;
  isolation:isolate;
  display:grid;
  place-items:center;
  overflow:hidden;
  min-height:100vh;
  min-height:100svh;
  background:
    repeating-linear-gradient(45deg,rgba(135,255,113,.05) 0 12px,transparent 12px 24px),
    radial-gradient(circle at 18% 26%,rgba(255,206,92,.22),transparent 52%),
    radial-gradient(circle at 82% 74%,rgba(135,255,113,.20),transparent 52%),
    var(--ink);
}
.hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.hero-veil{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(160deg,rgba(25,38,23,.60),rgba(25,38,23,.92) 72%);
}
.hero-veil::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle,rgba(135,255,113,.18) 1.5px,transparent 1.6px) 0 0/22px 22px;
  mix-blend-mode:screen;
}
.hero-in{
  position:relative;
  z-index:2;
  max-width:980px;
  padding:clamp(20px,6vw,48px);
  text-align:center;
}
.hero h1{
  margin:0 auto .9rem;
  max-width:20ch;
  font-size:clamp(30px,7.4vw,68px);
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--paper);
  overflow-wrap:anywhere;
  text-shadow:0 2px 0 rgba(25,38,23,.65);
}
.hero h1::after{
  content:"";
  display:block;
  width:86px;
  height:9px;
  margin:1.15rem auto 0;
  background:var(--sun);
  clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);
}
.hero-lede{
  margin:0 auto;
  max-width:48ch;
  color:#d9edcf;
  font-size:clamp(16px,2.2vw,19px);
}

/* ---------- 版心与栏位 ---------- */
.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 clamp(14px,4vw,40px);
}
.stage{
  display:grid;
  grid-template-columns:minmax(0,260px) minmax(0,1fr);
  gap:clamp(16px,3vw,42px);
  align-items:start;
  padding:clamp(28px,5vw,56px) 0 clamp(40px,7vw,80px);
}

.side{
  position:sticky;
  top:132px;
  background:var(--ink2);
  border-radius:10px;
  padding:1.1rem 1.1rem 1.3rem;
  overflow:hidden;
}
.eyebrow{
  display:block;
  font-family:var(--ui);
  font-weight:600;
  font-size:15px;
  letter-spacing:.16em;
  color:var(--sun);
  margin-bottom:.15rem;
}
.side-h{
  font-size:19px;
  color:var(--neon);
  margin:0;
  letter-spacing:.02em;
}
.side-list{
  list-style:none;
  margin:.55rem 0 0;
  padding:0;
  display:grid;
  gap:1px;
}
.side-list a{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:40px;
  padding:.1rem .15rem;
  color:#dcefd2;
  text-decoration:none;
  font-family:var(--ui);
  font-weight:500;
  font-size:16px;
  transition:color .15s ease,transform .15s ease;
}
.side-list a::before{
  content:"";
  width:8px;height:8px;
  flex:0 0 auto;
  background:var(--neon);
  transform:rotate(45deg);
}
.side-list a:hover{color:var(--neon);transform:translateX(3px)}
.side-shape{
  display:block;
  height:58px;
  margin-top:1rem;
  background:var(--sun);
  clip-path:polygon(0 100%,50% 0,100% 100%);
  mix-blend-mode:screen;
}

/* ---------- 正文 ---------- */
.prose{min-width:0}
.prose > section{
  padding:clamp(26px,4vw,44px) 0;
  border-top:3px dashed var(--line);
  scroll-margin-top:120px;
}
.prose > section:first-child{border-top:0;padding-top:0}
.prose > section:last-child{padding-bottom:0}

.prose h2{
  font-size:clamp(22px,3.6vw,33px);
  font-weight:700;
  color:var(--neon);
  letter-spacing:-.01em;
  margin:.1rem 0 .9rem;
}
.prose h3{font-size:20px;color:var(--paper);margin-top:1.4em}
.prose small{
  display:block;
  font-family:var(--ui);
  font-weight:600;
  font-size:15px;
  letter-spacing:.14em;
  color:var(--sun);
  margin-bottom:.2rem;
}
.prose p{margin:0 0 1.05em}
.prose strong{color:var(--sun)}
.prose a{
  color:var(--neon);
  text-decoration:underline;
  text-decoration-style:wavy;
  text-underline-offset:3px;
}
.prose a:hover{color:var(--sun)}
.prose ul,.prose ol{padding-left:1.35em;margin:0 0 1.1em}
.prose li{margin-bottom:.45em}
.prose li::marker{color:var(--neon)}
.prose blockquote{
  margin:1.4em 0;
  padding:1rem 1.2rem;
  background:var(--ink2);
  border-radius:10px;
  border-left:6px solid var(--sun);
}
.prose blockquote p:last-child{margin-bottom:0}
.prose img{border-radius:10px;margin:1.1em 0}
.prose hr{border:0;border-top:3px dashed var(--line);margin:2em 0}
.prose table{
  width:100%;
  border-collapse:collapse;
  margin:1.1em 0;
  font-size:16px;
}
.prose th,.prose td{
  padding:.55em .6em;
  text-align:left;
  vertical-align:top;
  border-bottom:1px dashed var(--line);
}
.prose th{color:var(--neon);font-family:var(--ui)}
.prose code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.95em;
  background:var(--ink2);
  padding:.1em .35em;
  border-radius:5px;
}

/* ---------- 页脚 ---------- */
.foot{
  background:var(--ink3);
  border-top:4px solid var(--neon);
  padding:clamp(26px,5vw,54px) clamp(14px,4vw,44px) 1.4rem;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(20px,4vw,48px);
}
.f-word{
  font-size:clamp(30px,7.2vw,64px);
  line-height:1;
  letter-spacing:-.03em;
  color:var(--neon);
  margin:.25rem 0 .8rem;
  overflow-wrap:anywhere;
}
.f-desc{
  margin:0;
  max-width:40ch;
  color:var(--muted);
  font-size:16px;
}
.f-h{font-size:19px;color:var(--paper);margin:0}
.f-list{
  list-style:none;
  margin:.55rem 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px 12px;
}
.f-list a{
  display:flex;
  align-items:center;
  min-height:40px;
  color:#d7ebcd;
  text-decoration:none;
  font-family:var(--ui);
  font-size:16px;
  border-bottom:1px dashed rgba(135,255,113,.16);
  transition:color .15s ease,padding-left .15s ease;
}
.f-list a:hover{color:var(--sun);padding-left:4px}
.f-end{
  grid-column:1/-1;
  margin-top:.6rem;
  padding-top:1rem;
  border-top:1px dashed rgba(135,255,113,.25);
  text-align:center;
}
.f-end p{margin:0;color:var(--muted);font-size:16px}

/* ---------- 动效 ---------- */
@keyframes rise{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}
@keyframes pop{
  from{opacity:0;transform:scale(.92) rotate(-3deg)}
  to{opacity:1;transform:none}
}

@media (prefers-reduced-motion:no-preference){
  .hero-in{animation:pop .7s ease both}
  .menu li{animation:rise .4s ease both;animation-delay:calc(var(--i,0) * 45ms)}
  .prose > section{animation:rise .5s ease both}
  .prose > section:nth-child(1){animation-delay:.02s}
  .prose > section:nth-child(2){animation-delay:.08s}
  .prose > section:nth-child(3){animation-delay:.14s}
  .prose > section:nth-child(4){animation-delay:.2s}
  .prose > section:nth-child(5){animation-delay:.26s}
  .prose > section:nth-child(6){animation-delay:.32s}
  .prose > section:nth-child(7){animation-delay:.38s}
  .prose > section:nth-child(n+8){animation-delay:.44s}
}

/* ---------- 断点 ---------- */
@media (min-width:900px){
  .top{position:sticky;top:0}
}

@media (max-width:900px){
  .stage{grid-template-columns:minmax(0,1fr)}
  .side{position:static}
  .side-shape{display:none}
  .prose > section{scroll-margin-top:60px}
}

@media (max-width:760px){
  .foot{grid-template-columns:minmax(0,1fr)}
  .f-list{grid-template-columns:minmax(0,1fr)}
  .hero{min-height:92vh;min-height:92svh}
  .hero h1{max-width:16ch}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none !important;transition:none !important}
}

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