/**
 * 视觉方向：都市蓝金 · Moepix cyber glass
 * 主色：--accent #60a5fa | --accent-light #facc15 | --accent-dark #1d4ed8
 */
:root {
  --accent: #60a5fa;
  --accent-light: #facc15;
  --accent-dark: #1d4ed8;
  --accent-glow: rgba(96, 165, 250, 0.45);
  --accent-glow-soft: rgba(96, 165, 250, 0.28);
}
html { scroll-behavior: smooth; }
body { background: #05070d; font-feature-settings: 'tnum'; }
.glass { background: rgba(15,23,42,.55); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); }
.glass-strong { background: rgba(5,7,13,.8); backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px); }
.hairline { border: 1px solid rgba(255,255,255,.12); }
.hairline-strong { border: 1px solid rgba(255,255,255,.22); }
.edge-cut { clip-path: polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px); }
.edge-cut-sm { clip-path: polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px); }
.btn-shine { position: relative; overflow: hidden; isolation: isolate; }
.btn-shine::before { content:''; position:absolute; inset:0; background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%); transform:translateX(-120%); animation:shine 3.2s linear infinite; }
@keyframes shine { to { transform: translateX(120%); } }
.pulse-ring { animation:pulse-ring-accent 2.4s ease-in-out infinite; }
@keyframes pulse-ring-accent { 0%,100% { box-shadow:0 0 0 0 rgba(96,165,250,.55),0 0 30px rgba(96,165,250,.35); } 50% { box-shadow:0 0 0 10px rgba(96,165,250,0),0 0 60px rgba(96,165,250,.55); } }
.reveal { opacity:0; transform:translateY(16px); transition:opacity .8s ease, transform .8s ease; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.nav-link { position:relative; }
.nav-link::after { content:''; position:absolute; left:0; bottom:-6px; height:2px; width:0; background:linear-gradient(90deg,var(--accent),transparent); transition:width .3s ease; }
.nav-link:hover::after,.nav-link.is-active::after { width:100%; }
.grid-bg { background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:64px 64px; mask-image:radial-gradient(ellipse at top,black 30%,transparent 75%); -webkit-mask-image:radial-gradient(ellipse at top,black 30%,transparent 75%); }
.ticker { animation:ticker 28s linear infinite; }
@keyframes ticker { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.timeline-dot { width:14px; height:14px; border-radius:999px; background:var(--accent); box-shadow:0 0 0 4px rgba(96,165,250,.25),0 0 24px rgba(96,165,250,.55); }
.star,.toc-link.is-active { color:var(--accent); }
.toc-link::before { content:''; display:inline-block; width:6px; height:6px; margin-right:8px; background:rgba(255,255,255,.3); border-radius:999px; vertical-align:middle; }
.toc-link.is-active::before { background:var(--accent); }
.hero-scrim-radial { background:radial-gradient(ellipse 85% 75% at 18% 42%,rgba(5,7,13,.84) 0%,rgba(5,7,13,.45) 48%,transparent 72%); }
.hero-scrim-side { background:linear-gradient(105deg,rgba(5,7,13,.9) 0%,rgba(5,7,13,.62) 38%,rgba(5,7,13,.18) 68%,transparent 88%); }
.hero-title-panel { position:relative; display:inline-block; max-width:100%; padding:.15rem 0; }
.hero-title-panel::before { content:''; position:absolute; inset:-1.25rem -1.5rem -1.75rem -1.25rem; border-radius:4px; background:linear-gradient(135deg,rgba(5,7,13,.74),rgba(5,7,13,.48) 55%,rgba(5,7,13,.12)); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.06); box-shadow:0 24px 64px rgba(5,7,13,.55); pointer-events:none; z-index:-1; }
.hero-title-cn { color:#f8fafc; text-shadow:0 0 40px rgba(5,7,13,.95),0 4px 28px rgba(5,7,13,.85),0 2px 8px rgba(5,7,13,.9); }
.article-body h2 { margin-top:2.25rem; font-size:1.45rem; font-weight:800; color:#fff; }
.article-body p { margin-top:1rem; color:rgb(203 213 225); line-height:1.9; }
.article-body ul { margin-top:1rem; padding-left:1.25rem; list-style:disc; color:rgb(203 213 225); line-height:1.85; }
