:root{
  --v:#8000ff;
  --m:#ff00ff;
  --ink:#0d0d0d;
  --panel:#161020;
  --txt:#ece7f6;
  --dim:#a99ec4;
  --line:rgba(128,0,255,.30);
  --cn:'Source Sans 3',"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --disp:'Bebas Neue',ui-monospace,"Courier New",monospace;
}

*{box-sizing:border-box}

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

body{
  margin:0;
  background:var(--ink);
  color:var(--txt);
  font-family:var(--cn);
  font-size:17px;
  line-height:1.7;
  overflow-x:clip;
  background-image:
    radial-gradient(80vw 50vh at 88% -8%,rgba(255,0,255,.13),transparent 65%),
    radial-gradient(70vw 44vh at -10% 12%,rgba(128,0,255,.16),transparent 62%);
  background-repeat:no-repeat;
}

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

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

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

a:hover,
a:focus-visible{color:#fff}

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

h1,h2,h3{
  font-weight:700;
  line-height:1.15;
  letter-spacing:.01em;
  margin:0 0 .5em;
}

h1{
  font-size:clamp(2.5rem,8.4vw,5.4rem);
  color:#fff;
  text-shadow:0 0 26px rgba(255,0,255,.55),0 0 6px rgba(128,0,255,.9);
  animation:jitter 8s ease-in-out infinite;
}

@keyframes jitter{
  0%,95%,100%{transform:none}
  96%{transform:translate(-3px,0) skewX(-5deg)}
  97%{transform:translate(3px,0) skewX(4deg)}
  98%{transform:translate(-1px,1px)}
}

/* 顶部 */
.topbar{
  position:sticky;
  top:0;
  z-index:80;
  background:rgba(13,13,13,.95);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(10px);
}

.ticker{
  margin:0;
  padding:.28rem clamp(1rem,4vw,2rem);
  font-size:16px;
  line-height:1.5;
  color:#0d0d0d;
  background:linear-gradient(90deg,var(--v),var(--m));
  letter-spacing:.04em;
  overflow:hidden;
  white-space:nowrap;
}

.tk-in{
  display:inline-block;
  text-overflow:ellipsis;
  overflow:hidden;
  max-width:100%;
  vertical-align:bottom;
}

.bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.4rem clamp(1rem,4vw,2rem);
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:44px;
  padding:.2rem .3rem;
  font-size:1.45rem;
  font-weight:700;
  color:#fff;
  letter-spacing:.06em;
  text-shadow:0 0 14px rgba(255,0,255,.6);
}

.brand .dot{
  width:.55rem;
  height:.55rem;
  background:var(--m);
  box-shadow:0 0 12px var(--m);
  border-radius:2px;
  animation:pulse 2.4s infinite;
}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

/* 菜单：details > summary + menu */
.navpop{
  position:relative;
  display:flex;
  justify-content:flex-end;
}

.navpop > summary{
  display:none;
  list-style:none;
  align-items:center;
  min-height:44px;
  padding:.4rem .9rem;
  font-size:17px;
  color:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  cursor:pointer;
  letter-spacing:.1em;
}

.navpop > summary::-webkit-details-marker{display:none}

.navpop > summary::after{
  content:"";
  width:.45rem;
  height:.45rem;
  margin-left:.55rem;
  background:var(--m);
  box-shadow:0 0 10px var(--m);
  border-radius:50%;
}

.menu{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.15rem;
  margin:0;
  padding:0;
  list-style:none;
}

.menu a{
  display:flex;
  align-items:center;
  gap:.4rem;
  min-height:44px;
  padding:.35rem .6rem;
  color:var(--txt);
  font-size:17px;
  border-radius:10px;
  transition:background .18s,color .18s,box-shadow .18s;
}

.menu a .n{
  font-family:var(--disp);
  font-size:1rem;
  letter-spacing:.08em;
  color:var(--m);
}

.menu a:hover,
.menu a:focus-visible{
  background:linear-gradient(120deg,rgba(128,0,255,.35),rgba(255,0,255,.3));
  color:#fff;
  box-shadow:0 0 18px rgba(255,0,255,.35) inset;
}

/* 主容器 */
.shell{
  width:100%;
  max-width:1180px;
  margin-inline:auto;
  padding-inline:clamp(1rem,4vw,2rem);
}

/* 首屏 */
.hero{
  position:relative;
  display:grid;
  grid-template-rows:1fr auto;
  gap:clamp(1.5rem,4vh,2.6rem);
  min-height:100vh;
  min-height:100svh;
  padding:clamp(2rem,9vh,5.5rem) 0 2.4rem;
  align-items:end;
  overflow:hidden;
}

.hero::before{
  content:"01";
  position:absolute;
  top:-.14em;
  right:-.04em;
  font-family:var(--disp);
  font-size:clamp(9rem,32vw,23rem);
  line-height:.8;
  color:rgba(128,0,255,.17);
  text-shadow:0 0 42px rgba(255,0,255,.22);
  pointer-events:none;
  z-index:0;
}

.hero-copy{
  position:relative;
  z-index:1;
  max-width:46rem;
  text-align:left;
}

.eyebrow{
  margin:0 0 .7rem;
  font-family:var(--disp);
  font-size:clamp(1.1rem,3vw,1.4rem);
  letter-spacing:.24em;
  color:var(--m);
}

.lede{
  margin:0 0 1.6rem;
  font-size:clamp(1.05rem,2.2vw,1.2rem);
  line-height:1.65;
  color:var(--dim);
  max-width:36em;
}

.go{margin:0}

.go a{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  min-height:48px;
  padding:.6rem 1.9rem;
  font-size:17px;
  font-weight:600;
  letter-spacing:.16em;
  color:#0d0d0d;
  background:linear-gradient(120deg,var(--m),var(--v));
  border-radius:10px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);
  transition:box-shadow .2s,transform .2s;
}

.go a:hover,
.go a:focus-visible{
  color:#0d0d0d;
  box-shadow:0 0 26px rgba(255,0,255,.65);
  transform:translateY(-2px);
}

.hero-fig{
  position:relative;
  z-index:1;
  margin:0;
  aspect-ratio:16/7;
  background:var(--panel);
  border:1px solid var(--line);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%);
  overflow:hidden;
}

.hero-fig .hero-img,
.hero-fig .hero-fallback{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-fallback{
  background:
    repeating-linear-gradient(90deg,rgba(255,0,255,.14) 0 2px,transparent 2px 12px),
    linear-gradient(140deg,rgba(128,0,255,.3),transparent 70%);
}

/* 正文区：aside 在左 */
.content-zone{
  display:grid;
  grid-template-columns:minmax(190px,250px) minmax(0,1fr);
  gap:clamp(1.6rem,4vw,3.2rem);
  align-items:start;
  padding-block:clamp(2rem,6vw,4rem);
}

.rail{
  position:sticky;
  top:8.4rem;
  padding:1.1rem 1rem;
  background:var(--panel);
  border-radius:10px;
  box-shadow:0 0 0 1px var(--line) inset;
}

.kick{
  display:block;
  font-family:var(--disp);
  font-size:1rem;
  letter-spacing:.3em;
  color:var(--m);
  margin-bottom:.15rem;
}

.rail-h{
  margin:0 0 .9rem;
  font-size:1.35rem;
  color:#fff;
}

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

.toc li{counter-increment:toc}

.toc a{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:42px;
  padding:.3rem .35rem;
  color:var(--dim);
  font-size:16px;
  border-radius:8px;
  border-left:2px solid transparent;
  transition:color .18s,border-color .18s,background .18s;
}

.toc a .n{
  font-family:var(--disp);
  font-size:.95rem;
  letter-spacing:.08em;
  color:var(--v);
}

.toc a:hover,
.toc a:focus-visible,
.toc a.on{
  color:#fff;
  border-left-color:var(--m);
  background:rgba(255,0,255,.09);
}

/* 正文排版 */
.prose{min-width:0;font-size:17px}

.prose article[id]{
  padding-top:clamp(1.6rem,4vw,2.6rem);
  margin-top:clamp(1.6rem,4vw,2.6rem);
  border-top:1px solid var(--line);
  scroll-margin-top:9rem;
}

.prose article[id]:first-child{
  padding-top:0;
  margin-top:0;
  border-top:0;
}

.prose h2{
  font-size:clamp(1.55rem,4vw,2.15rem);
  color:#fff;
  text-shadow:0 0 18px rgba(128,0,255,.6);
}

.prose h3{
  font-size:clamp(1.2rem,3vw,1.4rem);
  color:#fff;
  margin-top:1.6em;
}

.prose small{
  display:block;
  font-family:var(--disp);
  font-size:1rem;
  letter-spacing:.28em;
  color:var(--m);
  margin-bottom:.2rem;
}

.prose p{margin:0 0 1.1em;color:var(--txt)}

.prose ul,
.prose ol{padding-left:1.3em;margin:0 0 1.2em}

.prose li{margin-bottom:.45em}

.prose a{border-bottom:1px solid rgba(255,0,255,.45)}

.prose a:hover{border-bottom-color:#fff}

.prose strong{color:#fff}

.prose blockquote{
  margin:0 0 1.2em;
  padding:.9rem 1.1rem;
  background:var(--panel);
  border-left:3px solid var(--m);
  border-radius:0 10px 10px 0;
  color:var(--dim);
}

.prose img{
  border-radius:10px;
  margin:1rem 0;
}

/* 订阅 */
.sub{
  padding:clamp(2rem,5vw,3rem);
  margin-bottom:clamp(2rem,6vw,4rem);
  border-radius:10px;
  background:
    linear-gradient(130deg,rgba(128,0,255,.28),rgba(255,0,255,.16)),
    var(--panel);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%);
}

.sub-h{margin:0 0 1.1rem;font-size:clamp(1.5rem,4vw,2rem);color:#fff}

.sub-form{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
}

.sub-form input{
  flex:1 1 16rem;
  min-height:48px;
  padding:.6rem .9rem;
  font-family:inherit;
  font-size:17px;
  color:#fff;
  background:rgba(13,13,13,.72);
  border:1px solid var(--line);
  border-radius:10px;
}

.sub-form input::placeholder{color:#8e84a8}

.sub-form button{
  min-height:48px;
  padding:.6rem 1.9rem;
  font-family:inherit;
  font-size:17px;
  font-weight:600;
  letter-spacing:.16em;
  color:#0d0d0d;
  background:linear-gradient(120deg,var(--m),var(--v));
  border:0;
  border-radius:10px;
  cursor:pointer;
  transition:box-shadow .2s;
}

.sub-form button:hover{box-shadow:0 0 24px rgba(255,0,255,.6)}

/* 页脚：仅 p + small */
.foot{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:.8rem;
  padding:2.4rem clamp(1rem,4vw,2rem);
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,transparent,rgba(128,0,255,.12));
}

.foot p{
  margin:0;
  font-size:clamp(1.5rem,5vw,2.2rem);
  font-weight:700;
  letter-spacing:.1em;
  color:#fff;
  text-shadow:0 0 20px rgba(255,0,255,.5);
}

.foot small{color:var(--dim);font-size:16px;letter-spacing:.08em}

/* 移动端 */
@media (max-width:860px){
  .navpop > summary{display:inline-flex}

  .navpop > menu{
    display:none;
    position:absolute;
    top:calc(100% + .5rem);
    right:0;
    width:min(86vw,300px);
    flex-direction:column;
    align-items:stretch;
    padding:.5rem;
    background:#100c18;
    border:1px solid var(--line);
    border-radius:10px;
    box-shadow:0 14px 34px rgba(0,0,0,.7);
  }

  .navpop[open] > menu{display:flex}

  .menu a{min-height:44px}

  .content-zone{grid-template-columns:minmax(0,1fr)}

  .rail{position:static}

  .toc a{min-height:40px}

  .hero{min-height:auto;padding-top:2.4rem}

  .hero-fig{aspect-ratio:16/10}

  .prose article[id]{scroll-margin-top:7.5rem}
}

@media (max-width:420px){
  body{font-size:16px}
  .prose,.lede{font-size:16px}
  .brand{font-size:1.3rem}
  .sub{padding:1.3rem}
}

@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}
