/* ============================================================
   Base — 重置、字体、全局样式
   ============================================================ */

/* 中文字体使用系统字体栈（国内访问更快） */
:root{
  /* 衬线体：用于标题 */
  --serif: "Noto Serif SC", "Source Han Serif SC", "STSong", "SimSun", "Songti SC", serif;
  /* 无衬线体：用于正文 */
  --sans: "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "WenQuanYi Micro Hei", sans-serif;
  /* 等宽体：用于数字和代码 */
  --mono: "Space Mono", "SF Mono", "Monaco", "Inconsolata", "Fira Code", "Consolas", monospace;
}

*{box-sizing:border-box}
html,body{margin:0}

body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bg);
  background-image:
    radial-gradient(1200px 700px at 78% -8%, rgba(181,123,255,.22), transparent 60%),
    radial-gradient(900px 600px at 8% 110%, rgba(91,141,239,.18), transparent 55%),
    radial-gradient(2px 2px at 20% 30%, rgba(255,255,255,.7), transparent),
    radial-gradient(2px 2px at 67% 18%, rgba(255,255,255,.5), transparent),
    radial-gradient(1.5px 1.5px at 40% 70%, rgba(255,255,255,.55), transparent),
    radial-gradient(1.5px 1.5px at 85% 60%, rgba(255,255,255,.4), transparent),
    radial-gradient(2px 2px at 12% 80%, rgba(255,255,255,.45), transparent),
    radial-gradient(1.5px 1.5px at 92% 35%, rgba(255,255,255,.5), transparent);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.wrap{
  max-width:var(--max-w);
  margin:0 auto;
  padding:28px 20px 60px;
  flex:1;
}

a{color:var(--gold);text-decoration:none;transition:.2s}
a:hover{color:var(--ink);text-decoration:underline}

/* 辅助类 */
.visually-hidden{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

.text-gradient{
  background:var(--accent);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
