@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&family=Share+Tech+Mono&display=swap');

:root{
  --ink:#192617;
  --ink-deep:#0c150e;
  --neon:#87ff71;
  --cyan:#01cdfe;
  --pink:#ff71ce;
  --purple:#b967ff;
  --card:#22351f;
  --card-2:#1b2b1c;
  --txt:#d9f7d2;
  --dim:#93b8a0;
  --line:rgba(135,255,113,.2);
  --r:28px;
  --mono:'Share Tech Mono','Fira Code',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

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

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

body{
  margin:0;
  min-height:100vh;
  font-family:var(--mono);
  font-size:17px;
  line-height:1.75;
  letter-spacing:.012em;
  color:var(--txt);
  background-color:var(--ink);
  background-image:
    radial-gradient(900px 520px at 88% -8%, rgba(1,205,254,.18), transparent 72%),
    radial-gradient(760px 460px at 4% 6%, rgba(255,113,206,.13), transparent 70%),
    radial-gradient(620px 380px at 50% 102%, rgba(185,103,255,.12), transparent 72%),
    linear-gradient(180deg,#101c11 0%,var(--ink) 42%,#0b1310 100%);
  background-attachment:fixed;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:9;
  pointer-events:none;
  opacity:.5;
  mix-blend-mode:screen;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px);
}

::selection{background:rgba(135,255,113,.35);color:#04120a}

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

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

/* ---------- 页头 ---------- */
.site-head{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.4rem .9rem;
  padding:.55rem clamp(.9rem,4vw,2.6rem);
  background:linear-gradient(180deg,rgba(12,21,14,.95),rgba(12,21,14,.68));
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(9px);
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:44px;
  padding:.4rem .5rem .4rem .1rem;
  color:var(--neon);
  text-decoration:none;
  font-size:1.05rem;
  letter-spacing:.06em;
  white-space:nowrap;
}

.brand-mark{
  display:inline-grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:9px;
  color:#08170c;
  background:linear-gradient(150deg,var(--neon),var(--cyan));
  font-size:.95rem;
  box-shadow:0 0 16px rgba(135,255,113,.6);
}

.brand-name{text-shadow:0 0 14px rgba(135,255,113,.55)}

.site-head nav{
  display:flex;
  align-items:center;
  gap:.35rem;
  flex:1 1 auto;
  min-width:0;
}

.site-head nav p{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.1rem;
  margin:0;
}

.site-head nav p a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.55rem .7rem;
  color:var(--dim);
  text-decoration:none;
  font-size:.92rem;
  letter-spacing:.04em;
  border-radius:12px;
  transition:color .2s,background .2s,text-shadow .2s;
}

.site-head nav p a:hover,
.site-head nav p a:focus-visible{
  color:var(--neon);
  background:rgba(135,255,113,.1);
  text-shadow:0 0 14px rgba(135,255,113,.85);
}

.nav-more{position:relative}

.nav-more summary{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  min-height:44px;
  padding:.55rem .7rem;
  cursor:pointer;
  list-style:none;
  color:var(--cyan);
  font-size:.92rem;
  border:1px solid rgba(1,205,254,.35);
  border-radius:12px;
  transition:background .2s,box-shadow .2s;
}

.nav-more summary::-webkit-details-marker{display:none}

.nav-more summary::after{
  content:"";
  width:6px;
  height:6px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}

.nav-more summary:hover{background:rgba(1,205,254,.12);box-shadow:0 0 18px rgba(1,205,254,.4)}

.nav-more[open] summary{background:rgba(1,205,254,.16)}

.nav-more .drop{
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  z-index:40;
  display:flex;
  flex-direction:column;
  min-width:190px;
  padding:.5rem;
  border-radius:20px;
  background:rgba(18,30,20,.97);
  box-shadow:0 0 0 1px rgba(1,205,254,.35),0 22px 48px rgba(0,0,0,.6);
  animation:drop .22s ease both;
}

.nav-more .drop a{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:.5rem .8rem;
  color:var(--txt);
  text-decoration:none;
  font-size:.9rem;
  border-radius:12px;
  transition:background .18s,color .18s,padding-left .18s;
}

.nav-more .drop a:hover{background:rgba(135,255,113,.12);color:var(--neon);padding-left:1.1rem}

.head-cta{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-left:auto;
  padding:.5rem 1.05rem;
  color:var(--pink);
  text-decoration:none;
  font-size:.9rem;
  letter-spacing:.14em;
  border-radius:999px;
  border:1px solid rgba(255,113,206,.5);
  background:rgba(255,113,206,.1);
  transition:box-shadow .22s,color .22s,background .22s;
}

.head-cta:hover{color:#fff;background:rgba(255,113,206,.24);box-shadow:0 0 24px rgba(255,113,206,.6)}

/* ---------- 首屏 ---------- */
.hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  align-items:center;
  gap:clamp(1rem,4vw,3rem);
  min-height:70vh;
  padding:clamp(2rem,7vw,4.5rem) clamp(.9rem,5vw,3.5rem) clamp(2.4rem,8vw,4.5rem);
  overflow:hidden;
}

.hero::after{
  content:"";
  position:absolute;
  left:-25%;
  right:-25%;
  bottom:-8vh;
  height:48vh;
  pointer-events:none;
  opacity:.5;
  transform:perspective(320px) rotateX(64deg);
  transform-origin:bottom center;
  background-image:
    repeating-linear-gradient(90deg,rgba(135,255,113,.3) 0 1px,transparent 1px 62px),
    repeating-linear-gradient(0deg,rgba(1,205,254,.24) 0 1px,transparent 1px 62px);
  mask-image:linear-gradient(180deg,transparent,#000 42%);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 42%);
}

.hero-copy{position:relative;z-index:2;min-width:0}

.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-bottom:1rem;
  padding:.35rem .85rem;
  border-radius:999px;
  font-size:.82rem;
  letter-spacing:.2em;
  color:var(--pink);
  background:rgba(255,113,206,.12);
  border:1px solid rgba(255,113,206,.45);
  box-shadow:0 0 22px rgba(255,113,206,.28);
  animation:float 7s ease-in-out infinite;
}

.hero-badge .dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--neon);
  box-shadow:0 0 10px var(--neon);
  animation:blink 2.4s steps(1) infinite;
}

h1{
  margin:0;
  font-size:clamp(2rem,6.4vw,4rem);
  line-height:1.16;
  letter-spacing:-.01em;
  color:#eaffef;
  text-shadow:0 0 20px rgba(135,255,113,.5),0 0 46px rgba(1,205,254,.3);
  animation:flicker 8s ease-in-out infinite;
  overflow-wrap:break-word;
}

.hero-lead{
  max-width:46ch;
  margin:1.1rem 0 0;
  color:var(--dim);
  font-size:1.02rem;
}

.hero-art{
  position:relative;
  z-index:1;
  margin:0;
  min-width:0;
}

.collage{
  position:relative;
  height:clamp(250px,42vh,410px);
}

.collage img{
  position:absolute;
  object-fit:cover;
  border-radius:var(--r);
  box-shadow:0 0 0 1px rgba(135,255,113,.45),0 0 34px rgba(1,205,254,.32),0 26px 60px rgba(0,0,0,.55);
  filter:saturate(1.1) hue-rotate(0deg);
}

.collage-a{
  top:0;
  left:0;
  width:76%;
  height:82%;
  transform:rotate(-4deg);
  animation:float 10s ease-in-out infinite;
}

.collage-b{
  right:0;
  bottom:0;
  width:60%;
  height:58%;
  transform:rotate(5deg);
  animation:float 12.5s ease-in-out infinite reverse;
}

.glow-orb{
  position:absolute;
  top:26%;
  left:32%;
  width:52%;
  aspect-ratio:1;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(135,255,113,.34),rgba(1,205,254,.16) 48%,transparent 70%);
  filter:blur(16px);
}

/* ---------- 正文区 ---------- */
.stage{
  display:grid;
  grid-template-columns:minmax(170px,238px) minmax(0,1fr);
  align-items:start;
  gap:clamp(1rem,3vw,2.4rem);
  padding:0 clamp(.9rem,5vw,3.5rem) clamp(1.6rem,5vw,3rem);
}

.side{
  position:sticky;
  top:92px;
  padding:1.15rem 1rem 1.3rem;
  border-radius:var(--r);
  background:linear-gradient(180deg,var(--card),var(--card-2));
  box-shadow:inset 0 0 0 1px rgba(135,255,113,.1),0 0 30px rgba(1,205,254,.12);
}

.side h2{
  margin:0;
  font-size:.95rem;
  letter-spacing:.24em;
  color:var(--neon);
  text-shadow:0 0 16px rgba(135,255,113,.7);
}

.side .subtitle{
  margin:.15rem 0 .85rem;
  font-size:.8rem;
  letter-spacing:.16em;
  color:var(--cyan);
  opacity:.85;
}

.index{
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:idx;
}

.index li{counter-increment:idx}

.index li:nth-child(n){
  animation:rise .45s ease both;
  animation-delay:calc(var(--i,0) * 55ms);
}

.index a{
  display:flex;
  align-items:baseline;
  gap:.55rem;
  min-height:40px;
  padding:.45rem .35rem;
  border-radius:11px;
  color:var(--txt);
  text-decoration:none;
  font-size:.9rem;
  line-height:1.5;
  transition:background .18s,color .18s,transform .18s;
}

.index a::before{
  content:counter(idx,decimal-leading-zero);
  color:var(--cyan);
  font-size:.72rem;
  letter-spacing:.1em;
}

.index a:hover,
.index a.is-on{
  background:rgba(135,255,113,.12);
  color:var(--neon);
  transform:translateX(3px);
}

.index a.is-on::before{color:var(--pink)}

.content{min-width:0}

.content div{
  padding:clamp(1.3rem,3vw,2.1rem) 0;
  border-top:1px dashed rgba(135,255,113,.16);
  scroll-margin-top:100px;
}

.content div:first-child{border-top:0;padding-top:0}

.content h2{
  margin:0 0 .85rem;
  font-size:clamp(1.3rem,3vw,1.85rem);
  line-height:1.35;
  color:#eaffef;
  text-shadow:0 0 18px rgba(1,205,254,.35);
  overflow-wrap:break-word;
}

.content h2::after{
  content:"";
  display:block;
  width:58px;
  height:2px;
  margin-top:.62rem;
  background:linear-gradient(90deg,var(--neon),var(--cyan),transparent);
  box-shadow:0 0 12px rgba(1,205,254,.65);
}

.content h3{
  margin:1.4rem 0 .5rem;
  font-size:1.1rem;
  color:var(--neon);
  letter-spacing:.04em;
}

.content p{margin:0 0 1rem;max-width:70ch}

.content a{
  color:var(--cyan);
  text-decoration:underline;
  text-underline-offset:3px;
  transition:text-shadow .18s;
}

.content a:hover{text-shadow:0 0 14px rgba(1,205,254,.9)}

.content strong{color:var(--neon)}

.content ul,
.content ol{padding-left:1.25rem;margin:0 0 1rem;max-width:70ch}

.content li{margin:.28rem 0}

.content blockquote{
  margin:1.2rem 0;
  padding:.85rem 1.1rem;
  border-radius:0 18px 18px 0;
  border-left:3px solid var(--pink);
  background:linear-gradient(90deg,rgba(255,113,206,.12),rgba(1,205,254,.06));
  color:#e6ffe2;
}

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

.content img{border-radius:18px;margin:.6rem 0}

.content table{
  width:100%;
  margin:1rem 0;
  border-collapse:collapse;
  font-size:.95rem;
}

.content th,
.content td{
  padding:.55rem .7rem;
  text-align:left;
  border-bottom:1px solid var(--line);
}

.content th{color:var(--neon);font-weight:400;letter-spacing:.06em}

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

.content code{
  padding:.1rem .35rem;
  border-radius:6px;
  background:rgba(1,205,254,.14);
  color:var(--cyan);
  font-size:.92em;
}

/* ---------- 页脚 ---------- */
.foot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.4rem 1.2rem;
  margin-top:1.5rem;
  padding:1.1rem clamp(.9rem,5vw,3.5rem) 1.9rem;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,transparent,rgba(1,205,254,.07));
}

.foot div{min-width:0}

.foot p{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.1rem .8rem;
  margin:0;
}

.foot a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.5rem .3rem;
  color:var(--dim);
  text-decoration:none;
  font-size:.88rem;
  transition:color .18s,text-shadow .18s;
}

.foot a:hover{color:var(--neon);text-shadow:0 0 14px rgba(135,255,113,.85)}

.cp{
  color:var(--dim);
  font-size:.82rem;
  letter-spacing:.14em;
}

.to-top{
  position:fixed;
  right:.9rem;
  bottom:.9rem;
  z-index:40;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.6rem 1rem;
  border-radius:999px;
  font-size:.78rem;
  letter-spacing:.16em;
  color:var(--cyan);
  text-decoration:none;
  background:rgba(1,205,254,.14);
  border:1px solid rgba(1,205,254,.45);
  backdrop-filter:blur(6px);
  transition:box-shadow .2s,background .2s;
}

.to-top:hover{background:rgba(1,205,254,.26);box-shadow:0 0 24px rgba(1,205,254,.6)}

/* ---------- 动效 ---------- */
@keyframes flicker{
  0%,100%{text-shadow:0 0 20px rgba(135,255,113,.5),0 0 46px rgba(1,205,254,.3)}
  46%{text-shadow:2px 0 0 rgba(255,113,206,.7),-2px 0 0 rgba(1,205,254,.7),0 0 26px rgba(135,255,113,.5)}
  54%{text-shadow:-2px 0 0 rgba(255,113,206,.6),2px 0 0 rgba(1,205,254,.6),0 0 26px rgba(135,255,113,.45)}
}

@keyframes float{
  0%,100%{translate:0 0}
  50%{translate:0 -8px}
}

@keyframes blink{
  0%,60%{opacity:1}
  61%,100%{opacity:.25}
}

@keyframes rise{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}

@keyframes drop{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:none}
}

/* ---------- 窄屏 ---------- */
@media (max-width:820px){
  .site-head{gap:.35rem .6rem}
  .site-head nav{order:3;flex:1 1 100%;overflow:visible}
  .site-head nav p{gap:0}
  .site-head nav p a{padding:.5rem .55rem;font-size:.88rem}
  .nav-more summary{padding:.5rem .6rem;font-size:.88rem}
  .nav-more .drop{left:0;right:auto}
  .head-cta{padding:.45rem .9rem;font-size:.85rem}

  .hero{
    grid-template-columns:1fr;
    min-height:0;
    padding-top:1.6rem;
    gap:1.6rem;
  }
  .hero::after{height:34vh;bottom:-10vh}
  .collage{height:clamp(220px,52vw,300px)}
  .collage-a{width:70%;height:80%}
  .collage-b{width:56%;height:56%}

  .stage{grid-template-columns:1fr;gap:1.4rem}
  .side{position:static}
  .index{columns:1}
  .content div{scroll-margin-top:88px}
}

@media (max-width:420px){
  body{font-size:16.5px}
  .brand{font-size:1rem}
  .to-top{font-size:.72rem;padding:.55rem .8rem}
}

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

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