:root{--bg:#f6f4ef;--fg:#1d1d1b;--card:#ffffff;--muted:#6b6a66;--accent:#5ba630}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}main{max-width:1080px;margin:0 auto;padding:24px 20px 64px}
.top{max-width:1080px;margin:0 auto;padding:22px 20px;display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.brand{font-weight:650;letter-spacing:.02em;text-decoration:none;color:var(--fg)}.top nav a{margin-left:18px;color:var(--muted);text-decoration:none}.top nav a:hover{color:var(--fg)}
.intro{max-width:620px;margin:8px 0 34px}.intro h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15;margin:0 0 10px}.intro p{color:var(--muted)}
h1{line-height:1.2}time{color:var(--muted);font-size:.9rem}.prose{max-width:640px}.small{color:var(--muted);font-size:.9rem}
.pn{display:flex;justify-content:space-between;margin-top:36px}code{font:0.9em ui-monospace,SFMono-Regular,Menlo,monospace}
footer{max-width:1080px;margin:0 auto;padding:24px 20px 40px;display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem;border-top:1px solid rgba(127,127,127,.15)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px}
.card{display:block;color:inherit;text-decoration:none;border-radius:14px;overflow:hidden;background:var(--card);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.card:hover{transform:translateY(-2px);transition:transform .15s}
.sw{height:150px}.meta{padding:12px 14px;display:grid;gap:2px}.meta span{color:var(--muted)}.meta time{font-size:.8rem;color:var(--muted)}
.hero{height:44vh;min-height:260px;border-radius:16px;margin-bottom:24px}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:12px}.chips li{display:flex;align-items:center;gap:8px}
.chips span{width:28px;height:28px;border-radius:50%;display:inline-block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
