:root { --bg:#f2efe9; --surface:#fbfaf6; --ink:#2b2a26; --muted:#6b675d; --line:#ddd6c8; --accent:#3f6b3a; --warn-bg:#f6ecd2; --radius:14px; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#1d211c; --surface:#262b24; --ink:#ece8dd; --muted:#a6a294; --line:#3a4036; --accent:#8fbf85; --warn-bg:#3a3522; }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin:0; background:var(--bg); color:var(--ink); line-height:1.75;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif; }
.wrap { width:min(100% - 32px, 860px); margin-inline:auto; }
a { color:var(--accent); }
h1,h2,h3 { line-height:1.3; }
h1 { font-size:clamp(1.7rem,4vw,2.3rem); margin:1.6rem 0 .8rem; }
h2 { font-size:1.3rem; margin:2rem 0 .6rem; }
h3 { font-size:1.05rem; margin:1.4rem 0 .4rem; }
.site-header { border-bottom:1px solid var(--line); background:var(--surface); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:60px; flex-wrap:wrap; }
.brand { display:inline-flex; align-items:center; gap:10px; font-weight:700; color:var(--ink); text-decoration:none; }
.brand img { border-radius:8px; }
.nav { display:flex; flex-wrap:wrap; }
.nav a { color:var(--ink); text-decoration:none; padding:6px 10px; border-radius:999px; }
.nav a[aria-current="page"] { color:var(--accent); background:color-mix(in srgb, var(--accent) 12%, transparent); }
main { padding-bottom:48px; }
.hero { text-align:center; padding:48px 0 24px; }
.hero-icon { border-radius:26px; }
.lead { font-size:1.1rem; color:var(--muted); }
.notice { background:var(--warn-bg); border-radius:var(--radius); padding:12px 16px; }
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin:24px 0; }
.cards article { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:4px 18px 14px; }
.cards h2 { margin-top:1rem; font-size:1.1rem; }
.muted { color:var(--muted); font-size:.9rem; }
.site-footer { border-top:1px solid var(--line); padding:20px 0 32px; }
