@import url('https://fonts.googleapis.com/css2?family=Lexend+Mega:wght@100..900&family=Public+Sans:wght@100..900&display=swap');

:root{
  --ink:#1c1726;
  --v1:#6514ff;
  --v2:#bf00ff;
  --paper:#f6f1ff;
  --soft:#ffffff;
  --pad:clamp(16px,4.6vw,56px);
  --sans:'Public Sans',system-ui,-apple-system,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
  --display:'Lexend Mega','Public Sans',system-ui,'PingFang SC','Microsoft YaHei',sans-serif;
}

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

html{
  scroll-behavior:smooth;
  scroll-padding-top:20px;
  scroll-padding-bottom:110px;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:400 17px/1.7 var(--sans);
  overflow-x:hidden;
}

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

a{color:var(--v1);text-decoration-thickness:2px;text-underline-offset:.22em}
a:hover{color:var(--v2)}
a:focus-visible,:focus-visible{outline:3px solid var(--v2);outline-offset:3px}

::selection{background:var(--v2);color:#fff}

/* ── 骨架 ── */
main{padding-bottom:24px}
main > .wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 var(--pad);
}

.stage{
  display:grid;
  grid-template-columns:minmax(0,1fr) 252px;
  gap:clamp(26px,4vw,52px);
  align-items:start;
}

.prose{min-width:0}

/* ── 头图 ── */
.hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:0 calc(var(--pad) * -1) clamp(26px,4vw,46px);
  padding:clamp(26px,6vw,54px) var(--pad) clamp(26px,5vw,44px);
  background:var(--v1);
  color:#fff;
  border-bottom:5px solid var(--ink);
}

.hero::before{
  content:'';
  position:absolute;
  inset:-40px 0 0;
  z-index:-1;
  opacity:.6;
  background-image:radial-gradient(rgba(255,255,255,.85) 1.6px,transparent 1.7px);
  background-size:22px 22px;
  transform:translate3d(0,var(--py,0),0);
  animation:drift 26s linear infinite;
}

@keyframes drift{
  to{background-position:220px 440px}
}

.hero-mark{
  display:inline-block;
  margin:0 0 18px;
  padding:5px 11px;
  background:var(--ink);
  color:#fff;
  font-family:var(--display);
  font-size:15px;
  font-weight:800;
  letter-spacing:.14em;
  line-height:1.5;
}

.hero h1{
  margin:0 0 18px;
  font-family:var(--display);
  font-size:clamp(34px,7.2vw,66px);
  font-weight:800;
  line-height:1.06;
  letter-spacing:-.025em;
  max-width:16ch;
}

.hero-lede{
  margin:0;
  max-width:56ch;
  font-size:clamp(17px,2.1vw,20px);
  line-height:1.62;
}

.hero-media{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  margin-top:clamp(22px,4vw,34px);
}

.hero-media .shot{
  width:100%;
  border:5px solid var(--ink);
  background:#fff;
}

/* ── 正文 ── */
.prose > section{
  padding:clamp(30px,5vw,52px) 0;
  border-top:3px solid rgba(28,23,38,.18);
  transition:opacity .28s ease,transform .28s ease;
}

.prose > section:first-of-type{border-top:0;padding-top:8px}

.prose > section:last-of-type{padding-bottom:8px}

.js .prose > section:not(.in){
  opacity:0;
  transform:translateY(20px);
}

.prose h2{
  margin:.24em 0 .58em;
  font-family:var(--display);
  font-size:clamp(26px,4.2vw,40px);
  font-weight:800;
  line-height:1.14;
  letter-spacing:-.02em;
}

.prose h3{
  margin:1.35em 0 .5em;
  font-family:var(--display);
  font-size:clamp(20px,2.6vw,26px);
  font-weight:700;
  line-height:1.28;
}

.prose small{
  display:inline-block;
  padding:4px 11px;
  background:var(--v2);
  color:#fff;
  font-family:var(--sans);
  font-size:15px;
  font-weight:700;
  letter-spacing:.12em;
  line-height:1.5;
}

.prose p{margin:0 0 1.15em;line-height:1.78}

.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.35em}
.prose li{margin:.45em 0;line-height:1.72}
.prose li::marker{color:var(--v2);font-weight:800}

.prose strong{font-weight:800;background:linear-gradient(transparent 64%,#dcc9ff 64%)}

.prose blockquote{
  margin:1.5em 0;
  padding:16px 20px;
  background:var(--soft);
  border:3px solid var(--ink);
  border-left:8px solid var(--v2);
}

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

.prose figure{margin:1.5em 0}
.prose figure img{border:4px solid var(--ink);width:100%}
.prose figcaption{font-size:15px;color:#514868;margin-top:.5em}

.prose table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:16px}
.prose th,.prose td{border:2px solid var(--ink);padding:10px 12px;text-align:left}
.prose th{background:var(--ink);color:#fff}

.prose code{
  font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;
  font-size:.95em;
  background:#efe6ff;
  padding:1px 5px;
}

/* ── 右栏 ── */
.rail{
  position:sticky;
  top:22px;
  padding:16px 16px 20px;
  background:var(--soft);
  border:3px solid var(--ink);
}

.rail small{
  display:inline-block;
  padding:3px 9px;
  background:var(--v2);
  color:#fff;
  font-size:14px;
  font-weight:700;
  letter-spacing:.14em;
}

.rail h2{
  margin:.42em 0 .7em;
  font-family:var(--display);
  font-size:20px;
  line-height:1.2;
}

.rail-list{list-style:none;margin:0;padding:0;display:grid;gap:3px}

.rail-list a{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:8px 10px;
  border-left:5px solid var(--v2);
  background:#f3ecff;
  color:var(--ink);
  font-weight:600;
  text-decoration:none;
  transition:background .2s ease,color .2s ease;
}

.rail-list a:hover{background:var(--v1);color:#fff}

/* ── 页脚 ── */
.foot{
  margin-top:clamp(40px,7vw,80px);
  padding:clamp(32px,6vw,58px) var(--pad) calc(140px + env(safe-area-inset-bottom));
  background:var(--ink);
  color:#fff;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(24px,4vw,46px);
}

.foot section{
  border-top:4px solid var(--v2);
  padding-top:14px;
  min-width:0;
}

.foot small{
  display:inline-block;
  color:#d6c6ff;
  font-size:14px;
  font-weight:700;
  letter-spacing:.16em;
}

.foot h2{
  margin:.4em 0 .5em;
  font-family:var(--display);
  font-size:clamp(19px,2.4vw,24px);
  line-height:1.22;
  word-break:break-word;
}

.foot-desc{margin:0;color:#cfc6e2;font-size:16px;line-height:1.7;max-width:42ch}

.foot a{color:#fff}
.foot a:hover{color:#d9a6ff}

.foot-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}

.foot-list a{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:6px 2px;
  text-decoration:none;
  border-bottom:2px solid rgba(255,255,255,.18);
  width:100%;
}

.colophon{
  grid-column:1 / -1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  border-top:2px solid rgba(255,255,255,.22);
  padding-top:16px;
  font-size:15px;
}

.copy{margin:0;color:#bcb0d0}

.ghost{margin:0;display:flex;gap:20px}
.ghost a{display:inline-flex;align-items:center;min-height:42px;padding:0 2px;text-decoration:none}

/* ── 底部导航 ── */
.dock{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:70;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
  padding:7px 10px calc(7px + env(safe-area-inset-bottom));
  background:var(--ink);
  border-top:4px solid var(--v1);
}

.dock-brand{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:0 8px;
  max-width:38vw;
  overflow:hidden;
  white-space:nowrap;
  font-family:var(--display);
  font-size:16px;
  font-weight:800;
  letter-spacing:-.02em;
  color:#fff;
  text-decoration:none;
}

.dock-brand:hover{color:#d9a6ff}

.dock-list{
  display:flex;
  gap:3px;
  list-style:none;
  margin:0;
  padding:0 2px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
}

.dock-list::-webkit-scrollbar{display:none}
.dock-list > li{flex:0 0 auto;scroll-snap-align:center;position:relative}

.dock-list a{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:0 12px;
  border:2px solid transparent;
  color:#fff;
  font-family:var(--display);
  font-size:16px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.dock-list a:hover,.dock-list a:focus-visible{
  background:var(--v1);
  border-color:var(--v2);
  color:#fff;
}

.dock-cta{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:0 14px;
  background:var(--v2);
  border:2px solid #fff;
  color:#fff;
  font-family:var(--display);
  font-size:16px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  transition:background .2s ease;
}

.dock-cta:hover{background:var(--v1);color:#fff}

.sub{
  position:absolute;
  bottom:calc(100% + 8px);
  left:0;
  display:none;
  gap:2px;
  min-width:168px;
  margin:0;
  padding:6px;
  list-style:none;
  background:var(--ink);
  border:3px solid var(--v2);
}

.has-sub:hover .sub,
.has-sub:focus-within .sub{display:grid}

.sub a{
  min-height:42px;
  border-color:transparent;
  font-weight:600;
}

/* ── 断点 ── */
@media (max-width:880px){
  .stage{grid-template-columns:minmax(0,1fr)}
  .rail{position:static;order:2;margin-top:8px}
}

@media (min-width:900px){
  .dock{padding-inline:22px}
  .dock-brand{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    max-width:none;
    z-index:1;
  }
  .dock-list{justify-content:center;padding-inline:clamp(150px,17vw,230px)}
  .dock-list > li:nth-child(4){margin-left:clamp(150px,17vw,230px)}
}

@media (max-width:620px){
  .foot{grid-template-columns:minmax(0,1fr)}
  .colophon{flex-direction:column;align-items:flex-start;gap:6px}
  .ghost{gap:18px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .prose > section:not(.in){opacity:1;transform:none}
  .hero::before{animation:none}
  .prose > section,.rail-list a,.dock-list a{transition:none}
}

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