@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Orbitron:wght@700;900&display=swap');

:root{
  --ink:#192617;
  --ink2:#0e170f;
  --neon:#87ff71;
  --cyan:#01cdfe;
  --pink:#ff71ce;
  --violet:#b967ff;
  --text:#dcf7d6;
  --muted:#9dc199;
  --line:rgba(135,255,113,.22);
  --glass:rgba(135,255,113,.055);
  --r:28px;
  --bar-h:66px;
}

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

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

body{
  margin:0;
  padding:0 16px calc(var(--bar-h) + 30px);
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:17px;
  line-height:1.75;
  color:var(--text);
  background-color:var(--ink);
  background-image:
    radial-gradient(72% 42% at 50% 0,rgba(1,205,254,.17),transparent 70%),
    radial-gradient(58% 38% at 92% 6%,rgba(255,113,206,.14),transparent 70%),
    radial-gradient(60% 40% at 0 34%,rgba(185,103,255,.11),transparent 72%);
  background-attachment:fixed;
  overflow-x:hidden;
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:5;
  pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(3,14,5,.34) 0 1px,rgba(3,14,5,0) 1px 3px);
  opacity:.5;
}

h1,h2,h3,.brand-t,.cta-title,.rail-h{
  font-family:"Orbitron",system-ui,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-weight:900;
  line-height:1.3;
  letter-spacing:.02em;
  margin:0 0 .6em;
}

p{margin:0 0 1em}

a{color:var(--cyan);text-decoration:none}

img{max-width:100%}

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

/* ---- 底部固定栏 ---- */
.bar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:40;
  display:flex;
  align-items:center;
  gap:10px;
  height:var(--bar-h);
  padding:0 12px calc(env(safe-area-inset-bottom,0px) / 2);
  background:rgba(14,23,15,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--line);
  box-shadow:0 -10px 44px rgba(1,205,254,.18);
}

.brand{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:0 10px 0 0;
  color:var(--neon);
  flex:0 0 auto;
}

.brand .mark{width:26px;height:26px;border-radius:8px;object-fit:cover;border:1px solid var(--line)}

.brand-t{
  font-size:16px;
  letter-spacing:.06em;
  text-shadow:0 0 10px rgba(135,255,113,.85),0 0 26px rgba(1,205,254,.6);
  white-space:nowrap;
}

.search{flex:1 1 auto;min-width:0}

.search input{
  width:100%;
  height:42px;
  padding:0 14px;
  font:inherit;
  font-size:16px;
  color:var(--text);
  background:rgba(1,205,254,.09);
  border:1px solid rgba(1,205,254,.34);
  border-radius:999px;
  appearance:none;
}

.search input::placeholder{color:rgba(157,193,153,.85)}

.search input:focus{background:rgba(1,205,254,.16);border-color:var(--cyan)}

.burger{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:42px;
  padding:0 14px;
  font:inherit;
  font-size:16px;
  color:var(--neon);
  background:rgba(135,255,113,.1);
  border:1px solid var(--neon);
  border-radius:999px;
  cursor:pointer;
}

.burger-lines{
  width:16px;
  height:2px;
  background:currentColor;
  box-shadow:0 5px 0 currentColor,0 -5px 0 currentColor;
}

/* ---- 全屏遮罩菜单 ---- */
.menu{
  position:fixed;
  inset:0;
  z-index:60;
  display:grid;
  place-content:center;
  padding:76px 22px calc(var(--bar-h) + 24px);
  overflow:auto;
  background:
    radial-gradient(80% 55% at 50% 0,rgba(1,205,254,.24),transparent 70%),
    radial-gradient(70% 50% at 20% 100%,rgba(255,113,206,.18),transparent 70%),
    rgba(9,17,10,.96);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  opacity:0;
  visibility:hidden;
  transition:opacity .24s ease,visibility .24s ease;
}

.menu.open{opacity:1;visibility:visible}

.menu-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
  justify-items:center;
}

.menu-nav a{
  display:flex;
  align-items:center;
  min-height:50px;
  padding:10px 24px;
  font-size:19px;
  color:var(--text);
  border:1px solid transparent;
  border-radius:999px;
  text-align:center;
}

.menu-nav a:hover,
.menu-nav a:focus-visible{
  color:var(--neon);
  border-color:var(--line);
  background:var(--glass);
  text-shadow:0 0 14px var(--neon);
}

.menu-x{
  position:absolute;
  top:16px;
  right:16px;
  min-height:44px;
  padding:0 20px;
  font:inherit;
  font-size:16px;
  color:var(--pink);
  background:rgba(255,113,206,.12);
  border:1px solid var(--pink);
  border-radius:999px;
  cursor:pointer;
}

/* ---- 主体骨架 ---- */
.shell{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  gap:20px;
  align-items:start;
}

.rail{padding-top:16px}

.rail-h{
  font-size:16px;
  letter-spacing:.34em;
  color:var(--neon);
  margin:0 0 10px;
  text-shadow:0 0 14px rgba(135,255,113,.55);
}

.jump{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.jump a{
  display:flex;
  align-items:center;
  min-height:40px;
  padding:6px 12px;
  font-size:16px;
  color:var(--muted);
  border:1px solid transparent;
  border-radius:12px;
  border-left:2px solid rgba(135,255,113,.28);
}

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

.jump li.off{opacity:.3}

/* ---- 首屏拼贴 ---- */
.doc{min-width:0}

.hero{
  position:relative;
  min-height:70vh;
  margin-top:16px;
  padding:56px 16px;
  display:grid;
  place-items:center;
  text-align:center;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--r);
  background:
    linear-gradient(180deg,rgba(185,103,255,.34),rgba(255,113,206,.2) 40%,rgba(1,205,254,.24) 66%,rgba(25,38,23,.94) 100%);
}

.hero::after{
  content:"";
  position:absolute;
  left:-24%;
  right:-24%;
  bottom:-8%;
  height:46%;
  background-image:
    linear-gradient(rgba(135,255,113,.55) 1px,transparent 1px),
    linear-gradient(90deg,rgba(135,255,113,.42) 1px,transparent 1px);
  background-size:46px 34px;
  transform:perspective(340px) rotateX(64deg);
  transform-origin:bottom center;
  opacity:.55;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 42%);
  mask-image:linear-gradient(180deg,transparent,#000 42%);
}

.sun{
  position:absolute;
  top:-9%;
  width:min(62vw,340px);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,#ffe9a8,var(--pink) 46%,var(--violet) 72%,transparent 74%);
  filter:blur(6px) hue-rotate(0deg);
  opacity:.5;
  animation:hue 16s linear infinite;
}

@keyframes hue{to{filter:blur(6px) hue-rotate(360deg)}}

.collage{position:absolute;inset:0;z-index:1;pointer-events:none}

.collage img{
  position:absolute;
  width:36vw;
  max-width:210px;
  max-height:50%;
  object-fit:cover;
  border-radius:20px;
  border:1px solid rgba(214,255,205,.32);
  box-shadow:0 0 34px rgba(1,205,254,.4);
  opacity:.62;
}

.collage img:nth-child(1){top:5%;left:2%;transform:rotate(-7deg)}

.collage img:nth-child(2){bottom:7%;right:2%;transform:rotate(6deg)}

.hero-in{position:relative;z-index:2;max-width:22ch}

.title{
  margin:0;
  font-size:clamp(30px,8.4vw,64px);
  color:#f6fff2;
  text-shadow:
    0 0 6px rgba(135,255,113,.95),
    0 0 24px rgba(1,205,254,.8),
    3px 3px 0 rgba(185,103,255,.6);
  animation:glitch 7s infinite steps(1,end);
}

@keyframes glitch{
  0%,91%,100%{transform:none}
  92%{transform:translate(-2px,1px) skewX(-2deg)}
  95%{transform:translate(2px,-1px)}
  97%{transform:translate(-1px,0) skewX(1deg)}
}

.badge{
  position:absolute;
  z-index:2;
  padding:6px 12px;
  font-size:14px;
  letter-spacing:.08em;
  border-radius:999px;
}

.b1{
  top:-2.4em;
  left:-1.6em;
  color:var(--cyan);
  border:1px solid var(--cyan);
  background:rgba(1,205,254,.14);
  box-shadow:0 0 18px rgba(1,205,254,.4);
}

.b2{
  bottom:-2.2em;
  right:-1.4em;
  color:var(--pink);
  border:1px solid var(--pink);
  background:rgba(255,113,206,.14);
  box-shadow:0 0 18px rgba(255,113,206,.4);
}

/* ---- 正文分区 ---- */
.doc > section{
  position:relative;
  margin:24px 0;
  padding:26px 18px;
  border:1px solid var(--line);
  border-radius:var(--r);
  background:var(--glass);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:inset 0 1px 0 rgba(135,255,113,.14);
  scroll-margin-top:26px;
  scroll-margin-bottom:calc(var(--bar-h) + 26px);
}

.doc > section:nth-of-type(even){
  background:rgba(1,205,254,.055);
  border-color:rgba(1,205,254,.22);
}

.doc > section.hit{
  border-color:var(--neon);
  box-shadow:0 0 0 1px var(--neon),0 0 30px rgba(135,255,113,.3);
}

.doc h2{
  font-size:clamp(21px,4.8vw,30px);
  color:#f2fff0;
  padding-left:14px;
  border-left:4px solid var(--neon);
  text-shadow:0 0 16px rgba(135,255,113,.45);
}

.doc h3{
  font-size:19px;
  color:var(--cyan);
  text-shadow:0 0 12px rgba(1,205,254,.4);
}

.doc p{margin:0 0 1em}

.doc .subtitle,
.doc .subhead,
.doc .lead,
.doc .desc{
  color:var(--muted);
  font-size:16px;
}

.doc ul,.doc ol{padding-left:1.3em;margin:0 0 1em}

.doc li{margin:.35em 0}

.doc li::marker{color:var(--neon)}

.doc strong{color:#f4fff0}

.doc a{
  color:var(--cyan);
  text-decoration:underline;
  text-decoration-color:rgba(1,205,254,.45);
  text-underline-offset:3px;
}

.doc a:hover{color:var(--neon);text-decoration-color:var(--neon)}

.doc blockquote{
  margin:1.2em 0;
  padding:14px 18px;
  border-left:3px solid var(--pink);
  border-radius:0 18px 18px 0;
  background:rgba(255,113,206,.09);
}

.doc blockquote p:last-child{margin-bottom:0}

.doc img{
  height:auto;
  border-radius:18px;
  border:1px solid var(--line);
}

.doc figure{margin:1.1em 0}

.doc figcaption{font-size:15px;color:var(--muted)}

.doc code{
  padding:.1em .4em;
  font-size:.95em;
  border-radius:6px;
  background:rgba(1,205,254,.14);
}

.doc pre{
  overflow-x:auto;
  padding:14px;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(9,17,10,.7);
}

.doc pre code{padding:0;background:none}

.doc table{
  width:100%;
  border-collapse:collapse;
  font-size:16px;
  display:block;
  overflow-x:auto;
}

.doc th,.doc td{
  border:1px solid var(--line);
  padding:8px 10px;
  text-align:left;
}

.doc th{background:rgba(135,255,113,.1);color:var(--neon)}

.doc hr{
  border:0;
  height:1px;
  margin:1.6em 0;
  background:linear-gradient(90deg,transparent,var(--line),transparent);
}

/* ---- 页脚 ---- */
.foot{
  max-width:1180px;
  margin:34px auto 0;
  display:grid;
  gap:16px;
}

.foot section{
  padding:24px 18px;
  border-radius:var(--r);
}

.foot-cta{
  text-align:center;
  border:1px solid var(--line);
  background:linear-gradient(150deg,rgba(1,205,254,.16),rgba(185,103,255,.14) 48%,rgba(135,255,113,.1));
  box-shadow:inset 0 0 44px rgba(1,205,254,.16);
}

.cta-title{
  font-size:clamp(25px,7vw,46px);
  margin:0 0 .25em;
  color:#f6fff2;
  text-shadow:0 0 18px rgba(135,255,113,.85),0 0 44px rgba(255,113,206,.55);
}

.foot .subtitle{
  margin:0 auto 18px;
  max-width:52ch;
  font-size:16px;
  color:var(--muted);
}

.to-top{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:8px 24px;
  font-size:16px;
  color:var(--neon);
  border:1px solid var(--neon);
  border-radius:999px;
  background:rgba(135,255,113,.12);
}

.to-top:hover{background:var(--neon);color:var(--ink);text-shadow:none}

.foot-map{
  border:1px solid var(--line);
  background:var(--glass);
}

.foot-map dl{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  margin:0;
  padding:0;
  align-items:center;
}

.foot-map dt{
  font-size:14px;
  letter-spacing:.06em;
  color:var(--muted);
}

.foot-map dd{margin:0 10px 0 0}

.foot-map dd a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:42px;
  padding:6px 14px;
  font-size:16px;
  color:var(--text);
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(135,255,113,.07);
}

.foot-map dd a:hover,
.foot-map dd a:focus-visible{color:var(--neon);border-color:var(--neon)}

.foot-base{
  border-top:1px solid var(--line);
  border-radius:0;
  text-align:center;
  padding:16px 8px 4px;
}

.foot-base p{
  margin:0;
  font-size:15px;
  color:var(--muted);
  letter-spacing:.08em;
}

/* ---- 桌面 ---- */
@media (min-width:900px){
  body{padding:0 24px calc(var(--bar-h) + 36px)}

  .bar{padding:0 22px}

  .brand-t{font-size:17px}

  .search{max-width:340px;margin-left:auto}

  .shell{
    max-width:1160px;
    grid-template-columns:236px minmax(0,1fr);
    gap:34px;
  }

  .rail{
    position:sticky;
    top:24px;
    margin-top:18px;
    padding:20px 16px;
    border:1px solid var(--line);
    border-radius:var(--r);
    background:var(--glass);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    max-height:calc(100vh - var(--bar-h) - 60px);
    overflow:auto;
  }

  .jump{display:grid;gap:6px}

  .hero{min-height:70vh;padding:64px 32px}

  .hero-in{max-width:26ch}

  .collage img{width:19vw;max-width:250px;opacity:.85}

  .collage img:nth-child(1){top:9%;left:4%}

  .collage img:nth-child(2){bottom:10%;right:5%}

  .doc > section{padding:34px 34px}

  .foot-map dl{gap:10px 18px}
}

@media (min-width:1200px){
  .title{font-size:clamp(46px,5.4vw,70px)}
}

@media (max-width:420px){
  .burger-t{display:none}
  .burger{padding:0 16px}
  .hero{padding:48px 14px}
}

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

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