:root{--ground:#F3F5EF;--surface:#FFFFFF;--ink:#23241F;--muted:#5C6057;--line:#D6DACF;--soil:#6E4E33;--soil-soft:#E6DCCD;--d4:#2E6F73;--d4-soft:#E3F0F0;--focus:#2E6F73}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ground:#1B1D19;--surface:#24271F;--ink:#ECEDE6;--muted:#A8AC9F;--line:#3A3E35;--soil:#C79B6E;--soil-soft:#3A3127;--d4:#74B7BA;--d4-soft:#1F3334;--focus:#74B7BA}}
:root[data-theme="dark"]{--ground:#1B1D19;--surface:#24271F;--ink:#ECEDE6;--muted:#A8AC9F;--line:#3A3E35;--soil:#C79B6E;--soil-soft:#3A3127;--d4:#74B7BA;--d4-soft:#1F3334;--focus:#74B7BA}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:"Alegreya Sans","Segoe UI",system-ui,sans-serif;font-size:18px;line-height:1.5;-webkit-text-size-adjust:100%}
main{max-width:44rem;margin:0 auto;padding:2.25rem 16px 4rem}
h1,h2{font-family:"Alegreya",Georgia,serif;font-weight:700;line-height:1.15;margin:0}
h1{font-size:clamp(2rem,6vw,2.9rem);letter-spacing:-0.01em}
h2{font-size:1.35rem;margin:2.25rem 0 0.75rem}
p{margin:0 0 0.75rem}
a{color:var(--soil)}
a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.crumb{font-size:0.95rem;margin-bottom:1.25rem}
.lede{color:var(--muted);font-family:"Alegreya",Georgia,serif;font-style:italic;font-size:1.15rem}
.field{height:10px;margin:1.25rem 0 0.5rem;background:repeating-linear-gradient(180deg,var(--soil) 0 2px,var(--soil-soft) 2px 5px);border-radius:2px}
.list{list-style:none;margin:0;padding:0;display:grid;gap:0.75rem}
.card{display:block;padding:0.9rem 1rem;background:var(--surface);border:1.5px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink)}
.card:hover{border-color:var(--soil)}
.card-title{font-family:"Alegreya",Georgia,serif;font-weight:700;font-size:1.2rem}
.card-desc{color:var(--muted);font-size:0.98rem;margin:0.15rem 0 0}
.tag{display:inline-block;font-size:0.8rem;font-weight:700;padding:0.05rem 0.5rem;border-radius:999px;background:var(--d4-soft);color:var(--d4);margin-right:0.35rem;vertical-align:middle}
.empty{color:var(--muted);font-style:italic}
