:root{--purple:#8B6AF6;--teal:#3AD1BD;--brown:#55413E;--muted:#8A7A77;--off:#F8F8F7;--line:#E7E2E0;--card:#fff;--bg:#fff;--text:#55413E}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1b1716;--card:#26201f;--text:#EFE8E6;--muted:#B5A8A5;--line:#3a3231;--off:#211c1b;--brown:#EFE8E6;--purple:#A68DFA}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.65 "Public Sans",system-ui,sans-serif}
a{color:var(--purple)}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}.narrow{max-width:760px}
.top{border-bottom:1px solid var(--line);background:var(--bg)}
.bar{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--muted);font-weight:500}
.brand img{display:block}
.visit{font-size:14px;text-decoration:none;color:var(--muted)}
.hero{background:var(--off);padding:56px 0 48px;text-align:center}
h1,h2.card-h,.card h2{font-family:"Playfair Display",Georgia,serif;font-weight:600;color:var(--brown)}
h1{font-size:clamp(28px,5vw,40px);line-height:1.2;margin:0 0 12px}
.hero p{color:var(--muted);margin:0 auto 24px;max-width:520px}
#q{width:100%;max-width:520px;padding:14px 18px;font:inherit;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text)}
#q:focus{outline:2px solid var(--purple);border-color:transparent}
.results{list-style:none;margin:8px auto 0;padding:0;max-width:520px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.results li a,.results .none{display:block;padding:12px 18px;text-decoration:none;color:var(--text)}
.results li+li{border-top:1px solid var(--line)}.results a:hover{background:var(--off)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:40px 16px 64px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;text-decoration:none;color:var(--text);transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--purple);transform:translateY(-2px)}
.card h2{margin:0 0 8px;font-size:22px}.card p{margin:0 0 12px;color:var(--muted);font-size:15px}
.count{font-size:13px;color:var(--purple);font-weight:600}
.crumbs{margin:32px 0 20px;font-size:14px;color:var(--muted)}.crumbs a{color:var(--muted)}
.lede{color:var(--muted);font-size:18px;margin:0 0 24px}
.list{list-style:none;padding:0;margin:24px 0 64px}
.list li+li{border-top:1px solid var(--line)}
.list a{display:block;padding:16px 4px;text-decoration:none;color:var(--text)}
.list a:hover strong{color:var(--purple)}.list span{display:block;color:var(--muted);font-size:15px}
.prose{padding-bottom:64px}
.prose h2{font-family:"Playfair Display",Georgia,serif;font-weight:600;color:var(--brown);font-size:26px;margin:40px 0 12px}
.prose h3{font-size:20px;margin:32px 0 8px}.prose h4{font-size:17px;margin:24px 0 8px}
.prose p{margin:0 0 16px}.prose ul,.prose ol{padding-left:24px;margin:0 0 16px}.prose li{margin:4px 0}
.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}
.table-wrap{overflow-x:auto;margin:0 0 20px}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
th{background:var(--off)}td p,th p{margin:0}
footer{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:14px}
footer a{color:var(--muted)}
