
:root{--ink:#14221b;--muted:#5b6b62;--paper:#f6f3ec;--card:#fff;--pine:#1f4d3a;--pine-2:#2e6b50;--line:#e4ddd0;--code:#0f1a16;--accent:#c4a35a;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:17px/1.6 "Source Serif 4",Georgia,serif;background:var(--paper);color:var(--ink);}
a{color:var(--pine-2)}a:hover{color:var(--pine)}code,pre{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:.9em}
header{background:var(--pine);color:#f6f3ec;padding:1.1rem 0;}
header .wrap,footer .wrap,main.wrap{max-width:1040px;margin:0 auto;padding:0 1.25rem}
header .brand{display:flex;align-items:baseline;gap:.8rem;text-decoration:none;color:#f6f3ec}
header .brand strong{font-size:1.15rem;letter-spacing:.01em}header .brand span{opacity:.8;font-size:.92rem}
header nav{display:flex;gap:1.2rem;margin-top:.55rem}header nav a{color:#e6f0ea;text-decoration:none;font-size:.95rem}header nav a:hover{color:#fff;text-decoration:underline}
.hero{padding:2.6rem 0 1.6rem}.hero h1{font-size:clamp(2rem,4vw,2.8rem);line-height:1.15;margin:0 0 .6rem}
.hero p{font-size:1.15rem;color:var(--muted);max-width:40rem;margin:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:1.4rem 0 2rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.15rem;text-decoration:none;color:inherit;display:block;box-shadow:0 1px 0 rgba(20,34,27,.04)}
.card:hover{border-color:#c9d7cf;box-shadow:0 6px 20px rgba(20,34,27,.07)}
.card h2{margin:0 0 .35rem;font-size:1.15rem}.card p{margin:0;color:var(--muted);font-size:.98rem}
.badge{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;background:#e8f0eb;color:var(--pine);border-radius:999px;padding:.15rem .5rem;margin-bottom:.45rem}
.badge.new{background:#f3ead0;color:#6a5316}
main h1{font-size:2rem;margin:1.4rem 0 .4rem}main .lead{color:var(--muted);margin:0 0 1.2rem;font-size:1.12rem}
.meta{color:var(--muted);font-size:.95rem;margin:0 0 1.2rem}
.cta{display:inline-block;background:var(--pine);color:#f6f3ec;text-decoration:none;border-radius:999px;padding:.55rem 1rem;margin:.2rem .4rem .2rem 0}
.cta.sec{background:transparent;color:var(--pine);border:1px solid var(--pine)}
.cta:hover{background:var(--pine-2);color:#fff}
pre{background:var(--code);color:#e8f0ea;padding:1rem 1.1rem;border-radius:12px;overflow:auto;line-height:1.45}
h2{margin-top:2rem}h3{margin-top:1.3rem}
table{width:100%;border-collapse:collapse;margin:1rem 0 1.5rem;background:#fff;border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
th{background:#eef3ef;font-weight:600}code{background:#ece7dc;padding:.05rem .3rem;border-radius:4px}
pre code{background:none;padding:0;color:inherit}
footer{border-top:1px solid var(--line);padding:1.4rem 0 2.2rem;margin-top:3rem;color:var(--muted);font-size:.92rem}
footer a{color:var(--muted)}
.note{background:#fff;border-left:3px solid var(--accent);padding:.8rem 1rem;margin:1.2rem 0}
