:root{
  --bg:#ffffff; --fg:#1f2328; --fg2:#4b5563; --fg3:#6b7280;
  --line:#e5e7eb; --soft:#f6f8fa; --accent:#1d4ed8; --accent-soft:#eff6ff;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#16181d; --fg:#e6e8eb; --fg2:#b6bcc6; --fg3:#8b93a1;
    --line:#2a2e36; --soft:#1d2027; --accent:#7aa2ff; --accent-soft:#1b2333;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:16px; line-height:1.75;
}
.wrap{max-width:860px;margin:0 auto;padding:0 20px}

/* header */
.top{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;flex-wrap:wrap}
.logo{font-weight:700;font-size:18px;color:var(--fg);text-decoration:none;letter-spacing:.02em}
.top nav{display:flex;gap:18px;flex-wrap:wrap}
.top nav a{color:var(--fg2);text-decoration:none;font-size:14px}
.top nav a:hover{color:var(--accent)}

main{padding:32px 20px 56px}
@media(max-width:640px){ .top .wrap{height:auto;padding:10px 20px} .top nav{gap:14px;font-size:13px} main{padding:24px 20px 40px} }

/* typography */
h1{font-size:27px;line-height:1.4;margin:0 0 20px;letter-spacing:-.01em}
h2{font-size:20px;line-height:1.5;margin:38px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line)}
h3{font-size:17px;margin:26px 0 10px}
p{margin:14px 0}
ul,ol{padding-left:24px;margin:14px 0}
li{margin:6px 0}
a{color:var(--accent)}
a:hover{text-decoration:underline}
code{background:var(--soft);padding:2px 6px;border-radius:4px;font-size:.9em}
hr{border:0;border-top:1px solid var(--line);margin:32px 0}
blockquote{
  margin:18px 0;padding:12px 16px;background:var(--accent-soft);
  border-left:3px solid var(--accent);color:var(--fg);border-radius:0 6px 6px 0
}
blockquote p{margin:0}

/* table */
.tw{overflow-x:auto;margin:20px 0;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:15px;min-width:480px}
th,td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
th{background:var(--soft);font-weight:600;white-space:nowrap}
td{color:var(--fg2)}
tbody tr:nth-child(even){background:var(--soft)}

/* figure */
figure{margin:24px 0;text-align:center}
figure img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#fff}
figcaption{font-size:13px;color:var(--fg3);margin-top:8px}
article img{max-width:100%;height:auto}

/* home */
.hero{padding:16px 0 8px}
.hero h1{font-size:30px;margin-bottom:10px}
.hero p{color:var(--fg2);font-size:16px;margin:0}
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:28px 0 8px}
.tool{
  display:block;padding:20px;border:1px solid var(--line);border-radius:12px;
  text-decoration:none;color:var(--fg);background:var(--bg);transition:border-color .15s,transform .15s
}
.tool:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-2px)}
.tool h2{font-size:18px;margin:0 0 8px;border:0;padding:0}
.tool p{font-size:14px;color:var(--fg2);margin:0 0 12px;line-height:1.65}
.go{font-size:14px;color:var(--accent);font-weight:600}
.sec{font-size:17px;margin-top:40px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.card{
  display:block;padding:16px;border:1px solid var(--line);border-radius:10px;
  text-decoration:none;color:var(--fg);transition:border-color .15s
}
.card:hover{border-color:var(--accent);text-decoration:none}
.card h3{font-size:15px;margin:0 0 6px;line-height:1.5}
.card p{font-size:13px;color:var(--fg3);margin:0;line-height:1.6}

/* footer */
.bot{border-top:1px solid var(--line);padding:24px 0 40px;color:var(--fg3);font-size:13px}
.bot p{margin:6px 0}
.bot a{color:var(--fg2)}
.fine{font-size:12px;color:var(--fg3);line-height:1.7}
