:root{
  --neon:#87ff71;
  --sun:#ffce5c;
  --ink:#192617;
  --paper:#f2fbe9;
  --line:rgba(135,255,113,.34);
  --glass:rgba(255,255,255,.06);
}

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

html{scroll-behavior:smooth}

body{
  margin:0;
  overflow-x:hidden;
  background-color:var(--ink);
  background-image:
    radial-gradient(rgba(135,255,113,.13) 1px, transparent 1px),
    radial-gradient(rgba(255,206,92,.10) 1px, transparent 1px);
  background-size:26px 26px, 26px 26px;
  background-position:0 0, 13px 13px;
  color:#e8f4e0;
  font-family:Raleway,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

body.locked{overflow:hidden}

h1,h2,h3,.brand,.ftitle,.drawerNav a,.bigmark,.drawerBrand{
  font-family:Lora,Georgia,"Songti SC",serif;
}

/* ---------- 顶部两行 ---------- */
.top{
  position:relative;
  z-index:20;
  padding:16px clamp(16px,4vw,40px) 18px;
  border-bottom:1px dashed var(--line);
  background:linear-gradient(180deg, rgba(25,38,23,.96), rgba(25,38,23,.55));
}

.brandrow{display:flex;align-items:center}

.brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:46px;
  color:var(--paper);
  text-decoration:none;
  font-size:clamp(1.45rem,5.4vw,2rem);
  font-weight:700;
  letter-spacing:.02em;
}

.mark{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  flex:0 0 auto;
  border-radius:50% 10px 50% 10px;
  background:var(--neon);
  color:var(--ink);
  font-size:15px;
  line-height:1;
  transform:rotate(-8deg);
}

.geodots{
  background-image:radial-gradient(var(--ink) 1.7px, transparent 1.7px);
  background-size:7px 7px;
  background-position:2px 3px;
}

.menurow{display:flex;justify-content:flex-end;margin-top:8px}

.burger{
  font:inherit;
  font-size:16px;
  letter-spacing:.18em;
  min-height:44px;
  padding:11px 28px;
  border:0;
  border-radius:10px;
  background:var(--sun);
  color:var(--ink);
  cursor:pointer;
  clip-path:polygon(0 0,100% 0,95% 100%,5% 100%);
  transition:transform .18s ease, background .18s ease;
}

.burger:hover{transform:rotate(-2deg) scale(1.04);background:var(--neon)}
.burger:focus-visible{outline:3px solid var(--neon);outline-offset:3px}

/* ---------- 全屏遮罩菜单 ---------- */
.drawer{
  position:fixed;
  inset:0;
  z-index:80;
  padding:18px clamp(16px,5vw,44px) 44px;
  overflow-y:auto;
  background-color:var(--ink);
  background-image:repeating-linear-gradient(135deg, rgba(135,255,113,.10) 0 12px, rgba(255,206,92,.05) 12px 24px, transparent 24px 40px);
  transform:translateY(-102%);
  transition:transform .42s cubic-bezier(.62,.04,.32,1);
}

.drawer.open{transform:translateY(0)}

.drawerTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-bottom:14px;
  border-bottom:2px dotted var(--sun);
}

.drawerBrand{font-size:1.15rem;letter-spacing:.1em;color:var(--sun)}

.shut{
  font:inherit;
  font-size:16px;
  min-height:44px;
  padding:10px 24px;
  background:transparent;
  color:var(--neon);
  border:2px dashed var(--neon);
  border-radius:10px;
  cursor:pointer;
}

.shut:hover{background:rgba(135,255,113,.12)}

.drawerNav ul{list-style:none;margin:20px 0 0;padding:0}

.drawerNav a{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:54px;
  padding:10px 4px;
  color:var(--paper);
  text-decoration:none;
  font-size:clamp(1.3rem,4.6vw,2.05rem);
  font-weight:600;
  border-bottom:1px solid rgba(135,255,113,.18);
  transition:color .16s ease, transform .16s ease;
}

.drawerNav a:hover,.drawerNav a:focus-visible{color:var(--neon);transform:translateX(8px)}
.drawerNav .idx{font-family:Raleway,sans-serif;font-size:12px;letter-spacing:.16em;color:var(--sun)}

/* ---------- 骨架 ---------- */
.shell{
  display:block;
  max-width:1180px;
  margin:0 auto;
  padding:0 clamp(14px,3vw,28px);
}

@media (min-width:1024px){
  .shell{
    display:grid;
    grid-template-columns:186px minmax(0,1fr);
    gap:34px;
    align-items:start;
  }
}

.rail{display:none}

@media (min-width:1024px){
  .rail{display:block;position:sticky;top:22px;padding:16px 0}
}

.railcap{
  margin:0 0 10px;
  font-size:13px;
  letter-spacing:.3em;
  color:var(--sun);
}

.railNav ul{list-style:none;margin:0;padding:0;border-left:2px dotted var(--line)}

.railNav a{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  margin-left:-2px;
  padding:6px 10px;
  font-size:16px;
  line-height:1.4;
  color:#c6dbbb;
  text-decoration:none;
  border-left:2px solid transparent;
}

.railNav a:hover,.railNav a:focus-visible{
  color:var(--neon);
  border-left-color:var(--neon);
  background:rgba(135,255,113,.08);
}

.railNav .idx{font-size:12px;letter-spacing:.08em;color:var(--sun)}

/* ---------- Hero ---------- */
.hero{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:clamp(18px,4vh,36px);
  padding:clamp(26px,7vh,64px) 0 34px;
  text-align:center;
}

.heroText{display:flex;flex-direction:column;gap:18px}

.hero h1{
  margin:0;
  font-size:clamp(2rem,7vw,4.3rem);
  line-height:1.14;
  letter-spacing:-.01em;
  color:var(--paper);
  text-shadow:6px 6px 0 rgba(135,255,113,.2);
}

.lede{
  margin:0 auto;
  max-width:46ch;
  font-size:clamp(1rem,2.4vw,1.12rem);
  color:#cde2c1;
}

.heroMedia{width:100%;margin-top:auto}

.heroMedia img{
  display:block;
  width:100%;
  height:clamp(150px,36vh,360px);
  object-fit:cover;
  border:2px dashed var(--line);
  border-radius:10px;
  clip-path:polygon(0 7%,20% 0,100% 5%,100% 93%,74% 100%,0 95%);
}

/* ---------- 正文卡片 ---------- */
section{padding-bottom:8px}

section > article{scroll-margin-top:96px}

section > article.hero{scroll-margin-top:0}

section > article:not(.hero){
  position:relative;
  margin:0 0 26px;
  padding:clamp(20px,4vw,42px);
  border:1px dashed var(--line);
  border-radius:10px;
  background:var(--glass);
  -webkit-backdrop-filter:blur(10px) saturate(125%);
  backdrop-filter:blur(10px) saturate(125%);
  box-shadow:0 18px 40px rgba(0,0,0,.3);
}

section > article:not(.hero)::before{
  content:"";
  position:absolute;
  top:-9px;
  left:clamp(16px,4vw,38px);
  width:36px;
  height:18px;
  background:var(--sun);
  border-radius:2px;
  transform:rotate(-6deg);
  clip-path:polygon(0 42%,50% 0,100% 42%,100% 100%,0 100%);
}

section h2{
  margin:1.5em 0 .6em;
  font-size:clamp(1.35rem,3.6vw,1.95rem);
  line-height:1.26;
  color:var(--paper);
}

section h2:first-child{margin-top:0}

section h2 span{
  display:inline-block;
  padding:.06em .38em;
  border-radius:10px 3px 10px 3px;
  background:var(--neon);
  color:var(--ink);
  transform:rotate(-1.2deg);
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}

section h3{
  margin:1.4em 0 .5em;
  font-size:1.16rem;
  color:var(--sun);
}

section h3 span{display:inline-block;border-bottom:3px dotted var(--sun)}

section p{margin:0 0 1.05em;color:#dbead2}

section a{color:var(--sun);text-decoration:underline dotted;text-underline-offset:3px}
section a:hover{color:var(--neon)}
section strong{color:var(--neon)}
section time{color:var(--sun)}
section ul,section ol{margin:0 0 1.1em;padding-left:1.35em}
section li{margin:.35em 0}
section img{display:block;max-width:100%;height:auto;margin:1.2em 0;border-radius:10px}
section hr{border:0;border-top:2px dotted var(--line);margin:1.6em 0}

section blockquote{
  margin:1.2em 0;
  padding:12px 18px;
  border-left:4px solid var(--neon);
  border-radius:0 10px 10px 0;
  background:rgba(135,255,113,.08);
}

section table{width:100%;border-collapse:collapse;font-size:16px}
section th,section td{border:1px dashed var(--line);padding:8px 10px;text-align:left}
section code{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.92em;
  padding:.1em .35em;
  border-radius:4px;
  background:rgba(255,255,255,.1);
}

/* ---------- 页脚 ---------- */
.foot{
  margin-top:54px;
  padding:clamp(26px,5vw,52px) clamp(16px,4vw,40px) 32px;
  border-top:2px dotted var(--sun);
  background:linear-gradient(180deg, rgba(135,255,113,.07), rgba(25,38,23,0) 72%);
}

.fcols{display:grid;gap:24px;max-width:1180px;margin:0 auto}

@media (min-width:700px){
  .fcols{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
}

.ftitle{margin:0 0 10px;font-size:1.06rem}

.ftitle span{
  display:inline-block;
  padding:.1em .5em;
  border-radius:6px 2px 6px 2px;
  background:var(--sun);
  color:var(--ink);
  transform:rotate(-1.5deg);
}

.fcol dl{margin:0}

.fcol dd{margin:0;font-size:16px;line-height:1.55;color:#c6dbbb}

.fcol a{
  display:inline-block;
  min-height:40px;
  padding:8px 0;
  color:#c6dbbb;
  text-decoration:none;
}

.fcol a:hover,.fcol a:focus-visible{color:var(--neon)}

.bigmark{
  max-width:1180px;
  margin:34px auto 4px;
  font-size:clamp(2.2rem,11vw,5.8rem);
  font-weight:700;
  line-height:.95;
  letter-spacing:-.02em;
  color:transparent;
  -webkit-text-stroke:2px var(--neon);
  overflow-wrap:anywhere;
}

.copy{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  max-width:1180px;
  margin:0 auto;
  font-size:16px;
  color:#9db394;
}

.totop{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:8px 18px;
  border:1px dashed var(--line);
  border-radius:10px;
  color:var(--sun);
  text-decoration:none;
  font-size:16px;
}

.totop:hover{background:rgba(255,206,92,.12);color:var(--neon)}

/* ---------- 滚动显现 ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .burger,.drawer,.drawerNav a{transition:none}
}

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