:root{
  --red:#ff0000;
  --mag:#ff006e;
  --ink:#1a1a2e;
  --bg:#0a0a14;
  --panel:#12122a;
  --line:rgba(255,0,110,.36);
  --line2:rgba(255,255,255,.13);
  --txt:#ececf7;
  --dim:#adadcd;
  --r:28px;
  --pad:clamp(14px,4vw,30px);
  --font:"Atkinson Hyperlegible",-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Courier New",monospace;
}

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

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

body{
  margin:0;
  font-family:var(--font);
  font-size:17px;
  line-height:1.68;
  color:var(--txt);
  background-color:var(--bg);
  background-image:
    radial-gradient(880px 520px at 10% -10%,rgba(255,0,110,.26),transparent 62%),
    radial-gradient(760px 460px at 94% 2%,rgba(255,0,0,.2),transparent 60%),
    linear-gradient(180deg,#0a0a14 0%,#101024 52%,#08080f 100%);
  background-repeat:no-repeat;
}

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

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:69;
  pointer-events:none;
  background:radial-gradient(circle at 50% 45%,transparent 52%,rgba(4,4,12,.72) 100%);
}

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

a{color:#ffa8cc}

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

.skip{
  position:absolute;
  left:12px;
  top:-64px;
  z-index:90;
  padding:12px 18px;
  border-radius:999px;
  background:var(--mag);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  transition:top .18s ease;
}
.skip:focus{top:12px}

.shell{overflow-x:clip}

/* 顶部导航 */
.masthead{
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(9,9,20,.96),rgba(9,9,20,.74));
  backdrop-filter:blur(10px);
}

.nav-rail{
  max-width:1180px;
  margin:0 auto;
  padding:10px var(--pad);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
}

.nav-group{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  min-width:0;
}
.nav-right{justify-content:flex-end}

.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  font-family:var(--mono);
  font-size:16px;
  letter-spacing:.02em;
  color:var(--dim);
  text-decoration:none;
  transition:color .18s ease,border-color .18s ease,box-shadow .18s ease,text-shadow .18s ease;
}
.pill:hover,.pill:focus-visible{
  color:#fff;
  border-color:var(--red);
  text-shadow:0 0 9px rgba(255,0,110,.95);
  box-shadow:0 0 0 1px rgba(255,0,110,.4),0 0 18px rgba(255,0,110,.42);
}
.pill.is-cur{
  color:#fff;
  border-color:var(--red);
  background:rgba(255,0,110,.18);
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 18px;
  border:1px solid var(--red);
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-family:var(--mono);
  font-weight:700;
  font-size:18px;
  letter-spacing:.16em;
  white-space:nowrap;
  text-shadow:0 0 11px rgba(255,0,110,.95);
  box-shadow:inset 0 0 16px rgba(255,0,110,.32),0 0 20px rgba(255,0,110,.3);
}
.brand:hover .brand-word{animation:glitch .55s steps(2) 1}
.brand-mark{width:24px;height:24px;border-radius:6px}

@keyframes glitch{
  0%{transform:none}
  25%{transform:skewX(-7deg) translateX(-3px)}
  50%{transform:skewX(5deg) translateX(3px)}
  75%{transform:skewX(-3deg) translateX(-1px)}
  100%{transform:none}
}

/* 主体 */
main{
  max-width:1180px;
  margin:0 auto;
  padding:0 var(--pad);
}

.hero{
  display:grid;
  grid-template-columns:1.06fr .94fr;
  align-items:center;
  gap:clamp(22px,4vw,52px);
  min-height:70vh;
  padding:clamp(26px,6vw,62px) 0;
}

.hero-copy{text-align:center}

.eyebrow{
  margin:0 0 14px;
  font-family:var(--mono);
  font-size:16px;
  letter-spacing:.24em;
  color:var(--mag);
  text-transform:uppercase;
}

h1{
  margin:0 0 16px;
  font-size:clamp(2rem,4.7vw,3.35rem);
  line-height:1.17;
  letter-spacing:.01em;
  color:#fff;
  text-shadow:0 0 14px rgba(255,0,110,.72),0 0 34px rgba(255,0,0,.4);
}

.lead{
  margin:0 auto 18px;
  max-width:36ch;
  color:#d6d6ea;
  font-size:17px;
}

.chips{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin:0 0 22px;
  padding:0;
}
.chips li{
  padding:5px 13px;
  border:1px solid var(--line2);
  border-radius:999px;
  font-size:16px;
  color:#c8c8e2;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin:0;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:10px 22px;
  border-radius:999px;
  border:1px solid var(--mag);
  font:inherit;
  font-weight:700;
  text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.btn-primary{
  background:linear-gradient(100deg,var(--red),var(--mag));
  color:#fff;
  box-shadow:0 0 22px rgba(255,0,110,.5);
}
.btn-primary:hover{filter:brightness(1.12);transform:translateY(-2px)}
.btn-ghost{color:var(--txt);border-color:var(--line2)}
.btn-ghost:hover{border-color:var(--mag);box-shadow:0 0 16px rgba(255,0,110,.42);transform:translateY(-2px)}

/* 首屏右侧屏体 */
.hero-screen{
  position:relative;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.screen-frame{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  border:2px solid var(--mag);
  border-radius:var(--r);
  background:
    repeating-linear-gradient(180deg,rgba(255,0,110,.1) 0 2px,rgba(0,0,0,0) 2px 5px),
    linear-gradient(158deg,#1a1a2e,#0b0b18 62%);
  box-shadow:0 0 0 6px rgba(255,0,110,.08),0 0 36px rgba(255,0,110,.34);
}

.hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.pixel-field{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,0,0,.24) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,0,110,.24) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(circle at 50% 46%,#000 28%,transparent 78%);
  mask-image:radial-gradient(circle at 50% 46%,#000 28%,transparent 78%);
}

.screen-scan{
  position:absolute;
  left:0;
  right:0;
  height:26%;
  background:linear-gradient(180deg,rgba(255,0,110,0),rgba(255,0,110,.3),rgba(255,0,110,0));
  animation:sweep 5.6s linear infinite;
}
@keyframes sweep{
  0%{transform:translateY(-30%)}
  100%{transform:translateY(390%)}
}

.badge-float{
  position:absolute;
  top:-12px;
  right:12px;
  padding:6px 15px;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font-family:var(--mono);
  font-size:16px;
  letter-spacing:.06em;
  transform:rotate(-3deg);
  box-shadow:0 0 20px rgba(255,0,0,.65);
}

.hero-screen figcaption{
  font-family:var(--mono);
  font-size:16px;
  color:var(--dim);
  text-align:center;
}

/* 正文与侧栏 */
.body-grid{
  display:grid;
  grid-template-columns:272px minmax(0,1fr);
  align-items:start;
  gap:clamp(18px,3vw,36px);
  padding:clamp(22px,5vw,54px) 0;
}

.rail{
  position:sticky;
  top:86px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:var(--r);
  background:rgba(18,18,42,.66);
}

.rail-title{
  margin:0;
  font-size:19px;
  line-height:1.3;
  color:#fff;
  text-shadow:0 0 10px rgba(255,0,110,.6);
}

.rail-note{
  margin:14px 0 0;
  font-size:16px;
  line-height:1.6;
  color:var(--dim);
}

hr{
  border:0;
  height:2px;
  margin:12px 0 16px;
  background:linear-gradient(90deg,var(--red),var(--mag) 60%,transparent);
}

.toc{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:4px;
}
.toc a{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:4px 10px;
  border-radius:14px;
  color:var(--dim);
  font-size:16px;
  text-decoration:none;
  transition:background .18s ease,color .18s ease;
}
.toc a:hover,.toc a:focus-visible{background:rgba(255,0,110,.16);color:#fff}
.toc-num{
  font-family:var(--mono);
  font-size:16px;
  color:var(--mag);
}

.article article[id]{
  scroll-margin-top:100px;
  margin:0 0 clamp(16px,3vw,28px);
  padding:clamp(18px,3.4vw,34px);
  border:1px solid var(--line2);
  border-radius:var(--r);
  background:rgba(16,16,38,.58);
  transition:border-color .2s ease;
}
.article article[id]:hover{border-color:rgba(255,0,110,.45)}
.article article[id]:last-child{margin-bottom:0}

.article :where(h2,h3){
  color:#fff;
  line-height:1.3;
  text-shadow:0 0 12px rgba(255,0,110,.55);
  margin-top:0;
}
.article :where(h2){font-size:clamp(1.35rem,2.6vw,1.7rem)}
.article :where(h3){font-size:clamp(1.15rem,2.2vw,1.32rem)}
.article :where(p,li){color:#dadaec}
.article :where(ul,ol){padding-left:1.3em}
.article li{margin:.4em 0}
.article a{text-underline-offset:3px}
.article img{border-radius:18px;margin:1em 0}
.article blockquote{
  margin:1.2em 0;
  padding:12px 18px;
  border-left:3px solid var(--mag);
  background:rgba(255,0,110,.08);
  border-radius:0 16px 16px 0;
}
.article blockquote p{margin:.3em 0}
.article code{
  font-family:var(--mono);
  font-size:16px;
  padding:2px 6px;
  border-radius:8px;
  background:rgba(255,0,110,.16);
}

/* 收尾 */
.cta{
  margin:0 0 clamp(26px,5vw,54px);
  padding:clamp(20px,4vw,36px);
  border:1px dashed var(--mag);
  border-radius:var(--r);
  text-align:center;
  background:rgba(255,0,110,.06);
}
.cta h2{
  margin:0;
  font-size:clamp(1.3rem,2.6vw,1.66rem);
  color:#fff;
  text-shadow:0 0 12px rgba(255,0,110,.6);
}
.cta p{color:#d6d6ea;margin:.4em 0 1em}
.cta-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin:0;
}

/* 页脚 */
.foot{
  margin-top:clamp(20px,4vw,44px);
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,rgba(26,26,46,.9),#06060d);
}
.foot > article{
  max-width:1180px;
  margin:0 auto;
  padding-left:var(--pad);
  padding-right:var(--pad);
}

.foot-brand{
  padding-top:clamp(26px,5vw,48px);
  text-align:center;
}
.foot-word{
  margin:0;
  font-family:var(--mono);
  font-weight:700;
  font-size:clamp(2.3rem,10vw,5.6rem);
  line-height:1.02;
  letter-spacing:.14em;
  color:rgba(255,0,110,.2);
  -webkit-text-stroke:1.4px var(--mag);
  text-shadow:0 0 30px rgba(255,0,110,.35);
}
.foot-tag{
  margin:14px auto 0;
  max-width:46ch;
  color:var(--dim);
  font-size:16px;
}

.foot-cols{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.4fr;
  gap:clamp(18px,3vw,32px);
  padding-top:clamp(26px,4vw,44px);
  padding-bottom:clamp(22px,4vw,40px);
}
.foot-col p{margin:.5em 0 0;color:var(--dim);font-size:16px;line-height:1.62}
.foot-h{
  margin:0;
  font-size:17px;
  color:#fff;
  letter-spacing:.04em;
}
.foot-nav dl{margin:0}
.foot-nav dt{
  font-family:var(--mono);
  font-size:16px;
  letter-spacing:.08em;
  color:var(--mag);
  margin-bottom:6px;
}
.foot-nav dd{margin:0}
.foot-nav a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:2px 0;
  color:var(--dim);
  font-size:16px;
  text-decoration:none;
  transition:color .18s ease,text-shadow .18s ease;
}
.foot-nav a:hover,.foot-nav a:focus-visible{color:#fff;text-shadow:0 0 10px rgba(255,0,110,.9)}

.foot-base{
  border-top:1px solid var(--line2);
  padding-top:18px;
  padding-bottom:26px;
  text-align:center;
}
.foot-base p{margin:.25em 0;color:#c6c6de;font-size:16px}
.foot-fine{color:#9a9ab8}

/* 入场 */
html.js .hero-copy,
html.js .hero-screen,
html.js .article article[id],
html.js .cta,
html.js .foot-col{
  opacity:0;
  transform:translateY(16px);
}
html.js .is-in{
  opacity:1 !important;
  transform:none !important;
  transition:opacity .55s ease var(--sd,0ms),transform .55s ease var(--sd,0ms);
}

@media (max-width:900px){
  .nav-rail{grid-template-columns:1fr;gap:8px;padding-top:8px;padding-bottom:8px}
  .brand{order:-1;justify-self:center;font-size:17px;padding:6px 16px}
  .nav-group{justify-content:center}
  .nav-right{justify-content:center}
  .pill{min-height:40px;padding:4px 12px}

  .hero{grid-template-columns:1fr;min-height:0;padding-top:clamp(22px,7vw,36px)}
  .screen-frame{aspect-ratio:16/10}

  .body-grid{grid-template-columns:1fr}
  .rail{position:static}
  .toc{grid-template-columns:1fr 1fr}
  .article article[id]{scroll-margin-top:150px}

  .foot-cols{grid-template-columns:1fr 1fr}
  .foot-brand{text-align:center}
}

@media (max-width:520px){
  body{font-size:17px}
  .toc{grid-template-columns:1fr}
  .foot-cols{grid-template-columns:1fr}
  .hero-actions{gap:10px}
  .btn{width:100%}
  .cta-row .btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html.js .hero-copy,
  html.js .hero-screen,
  html.js .article article[id],
  html.js .cta,
  html.js .foot-col{opacity:1;transform:none}
}

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