:root { --ink:#1f2a24; --muted:#5b6660; --accent:#2f6b4f; --bg:#fbfaf6; --card:#ffffff; --line:#e3e0d6; }
@media (prefers-color-scheme: dark) {
  :root { --ink:#e8ece9; --muted:#a3ada7; --accent:#7cc4a0; --bg:#141a17; --card:#1c2420; --line:#2c3631; }
}
* { box-sizing:border-box; }
body { margin:0; font:17px/1.6 system-ui, -apple-system, "Segoe UI", sans-serif; color:var(--ink); background:var(--bg); }
.wrap { max-width:760px; margin:0 auto; padding:0 16px; }
header { padding-top:48px; padding-bottom:24px; }
h1 { font-size:2rem; line-height:1.2; margin:0 0 8px; }
h2 { font-size:1.3rem; margin:32px 0 8px; }
h3 { margin:0 0 4px; font-size:1.05rem; }
.tag { color:var(--muted); margin:0 0 20px; }
a { color:var(--accent); }
.btn { display:inline-block; background:var(--accent); color:var(--bg); padding:12px 20px; border-radius:8px; text-decoration:none; font-weight:600; }
.btn-alt { background:transparent; color:var(--accent); border:2px solid var(--accent); margin-left:8px; }
.muted { color:var(--muted); margin:0 0 12px; }
.cards { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.cards li { background:var(--card); border:1px solid var(--line); border-radius:10px; }
.cards li a { display:block; padding:16px; color:inherit; text-decoration:none; min-height:100%; }
.cards li a:hover, .cards li a:focus-visible { border-color:var(--accent); outline:2px solid var(--accent); border-radius:10px; }
.cards p { margin:0 0 8px; color:var(--muted); font-size:.95rem; }
.cards .more { color:var(--accent); font-weight:600; font-size:.95rem; }
@media (max-width:480px) { .btn { display:block; text-align:center; margin:0 0 10px; } .btn-alt { margin-left:0; } }
footer { border-top:1px solid var(--line); margin-top:48px; padding-top:16px; padding-bottom:40px; color:var(--muted); font-size:.9rem; }
.legal h2 { font-size:1.1rem; }
.updated { color:var(--muted); }
