/* Civic Viewpoint v2 — personal notebook (no Google Fonts; a11y contrast) */
:root{
  --paper:#faf7f2; --paper-2:#f3eee6; --ink:#1a1714; --ink-2:#2f2a25; --muted:#4a453e;
  --line:#e4ddd2; --line-2:#cfc6b8;
  --accent:#1f5c4d;
  --accent-ink:#163f35;
  --warm:#a84a1a;
  --link:#0d5470;
  --ok:#1f6b3a;
  --maxw:1120px; --aside:300px; --radius:10px;
  --serif:Georgia,"Palatino Linotype",Palatino,"Book Antiqua",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:var(--accent-ink)}
a.ilink{text-decoration-color:rgba(13,84,112,.35)}
img{max-width:100%;display:block}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{position:static;width:auto;height:auto;padding:8px 12px;background:#fff;z-index:99}

.topbar{background:var(--accent-ink);color:#f7f3ec;font-size:12.5px}
.topbar .wrap{max-width:var(--maxw);margin:0 auto;padding:8px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.topbar .tb-r{display:flex;gap:14px;color:#ebe4d8;flex-wrap:wrap}
.topbar b{color:#fff;font-weight:600}
.topbar .tb-link{color:#fff;font-weight:600;text-decoration:underline}

.masthead{border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fffdf9 0%,var(--paper) 100%)}
.masthead .wrap{max-width:var(--maxw);margin:0 auto;padding:18px 22px 0;display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap}
.brand{font-family:var(--serif);font-weight:700;font-size:30px;letter-spacing:-.015em;color:var(--ink);line-height:1}
.brand .dot{color:var(--warm)}
.byline-head{font-size:13.5px;color:var(--ink-2);max-width:28em;line-height:1.4}
.byline-head b{color:var(--ink)}
.tagline{font-size:12px;letter-spacing:.04em;color:var(--muted);margin-top:4px}
.nav{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.nav ul{display:flex;gap:0;flex-wrap:wrap;list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--line)}
.nav a{display:block;padding:10px 12px;color:var(--ink-2);font-size:13.5px;font-weight:600;border-bottom:2px solid transparent;text-decoration:none}
.nav a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.nav a.active{color:var(--accent-ink);border-bottom-color:var(--warm)}

.page{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.crumbs{padding:16px 0 4px;font-size:13px;color:var(--ink)}
.crumbs a{color:var(--ink);font-weight:600}
.crumbs span{margin:0 6px;color:var(--ink-2)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) var(--aside);gap:40px;align-items:start;padding:8px 0 56px}
.layout--single{grid-template-columns:1fr}
@media(max-width:900px){.layout{grid-template-columns:1fr;gap:28px}}

.kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--accent)}
.kicker .sq{width:9px;height:9px;background:var(--warm);border-radius:2px}
h1.title{font-family:var(--serif);font-weight:700;font-size:clamp(28px,4.4vw,42px);line-height:1.1;letter-spacing:-.015em;margin:10px 0 8px}
.deck{font-family:var(--serif);font-size:18.5px;line-height:1.5;color:var(--ink-2);font-weight:400;margin:0 0 14px;max-width:40em}

/* —— unique author card —— */
.author-card{display:flex;gap:14px;align-items:flex-start;margin:14px 0 16px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 0 rgba(28,25,22,.03)}
.author-card--compact{padding:12px 14px;margin:8px 0 12px}
.ac-mono{flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:linear-gradient(145deg,var(--accent-ink),var(--accent));color:#fff;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:16px;letter-spacing:.02em}
.author-card--compact .ac-mono{flex-basis:44px;width:44px;height:44px;font-size:14px}
.ac-k{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--warm);font-weight:700;margin-bottom:2px}
.ac-name{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--ink);text-decoration:none}
.ac-name:hover{color:var(--accent);text-decoration:underline}
.ac-role{margin:2px 0 0;font-size:13.5px;color:var(--ink-2)}
.ac-bio{margin:8px 0 0;font-size:14px;color:var(--ink-2);line-height:1.5;max-width:40em}
.ac-links{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px 8px;font-size:13px;color:var(--muted)}
.ac-links a{color:var(--link);font-weight:600}

.meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:0 0 14px;font-size:13.5px;color:var(--ink-2);border-bottom:1px solid var(--line);margin-bottom:6px}
.meta-dot{color:var(--muted)}
.badge-ok{color:var(--ok);font-weight:700}

.article{min-width:0}
.lead{font-size:18px;line-height:1.7;margin:18px 0 4px;color:var(--ink)}
.article h2,.h-like{font-family:var(--serif);font-weight:700;font-size:23px;letter-spacing:-.01em;margin:28px 0 8px;padding-left:12px;border-left:3px solid var(--accent);scroll-margin-top:20px}
.takeaways .h-like{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-2);border:0;padding:0;margin:0 0 8px;font-family:var(--sans)}
.article p{margin:0 0 14px}
.article h2+p{margin-top:0}

.takeaways{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:22px 0}
.takeaways ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.takeaways li{position:relative;padding-left:22px;font-size:15px;line-height:1.5;color:var(--ink)}
.takeaways li::before{content:"";position:absolute;left:2px;top:8px;width:8px;height:8px;background:var(--warm);border-radius:50%}

.callout{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:14px 16px;margin:22px 0}
.callout .flag{font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--accent-ink);background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px;line-height:1}
.callout .c-t{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink);margin-bottom:2px}
.callout p{margin:0;font-size:15px;color:var(--ink-2)}

.faq{margin:26px 0}
.faq h2{border:0;padding:0;margin-bottom:10px}
.faq details{border:1px solid var(--line);border-radius:10px;margin:0 0 8px;background:#fff;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:12px 44px 12px 16px;font-weight:600;font-size:15.5px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--accent)}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 16px 14px;color:var(--ink-2);font-size:15px}

.refs{margin:30px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.refs h2{font-family:var(--serif);font-size:20px;border:0;padding:0;margin:0 0 10px}
.refs ol{margin:0;padding-left:20px;display:grid;gap:8px}
.refs li{font-size:13.5px;color:var(--ink-2);line-height:1.45}
.refs li b{color:var(--ink)}
.refs .supp{color:var(--ink-2);opacity:.92}

.aside{position:sticky;top:16px;display:grid;gap:16px}
@media(max-width:900px){.aside{position:static}}
.infobox{border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden;background:#fff}
.infobox .ib-head{background:var(--paper-2);border-bottom:1px solid var(--line);padding:12px 14px}
.infobox .ib-head .t{font-family:var(--serif);font-weight:700;font-size:17px;line-height:1.2}
.infobox .ib-head .s{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:700;margin-top:3px}
.infobox dl{margin:0;padding:4px 14px 10px}
.infobox .row{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--paper-2)}
.infobox .row:last-child{border-bottom:0}
.infobox dt{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.infobox dd{margin:0;font-size:13.5px;color:var(--ink)}
.toc,.related{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:12px 14px}
.toc-h{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-2);font-weight:700}
.toc ol{margin:0;padding-left:16px;display:grid;gap:5px}
.toc a{color:var(--ink-2);font-size:13.5px}
.related .chips{display:flex;flex-wrap:wrap;gap:7px}
.related .chip{display:inline-block;padding:5px 10px;background:var(--paper-2);border:1px solid var(--line);border-radius:999px;font-size:12.5px;color:var(--ink-2);text-decoration:none}
.related .chip:hover{border-color:var(--accent);color:var(--accent)}

.hero-home{padding:36px 0 22px;border-bottom:1px solid var(--line)}
.hero-home .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--warm);font-weight:700;margin:0 0 8px}
.hero-home h1{font-family:var(--serif);font-weight:700;font-size:clamp(28px,4.6vw,44px);line-height:1.08;letter-spacing:-.02em;margin:0 0 10px;max-width:16em}
.hero-home p{font-family:var(--serif);font-size:18px;color:var(--ink-2);max-width:34em;margin:0}
.hero-home .stat{margin-top:14px;font-size:13px;color:var(--ink-2)}
.hero-home .stat b{color:var(--accent-ink)}
.sec-head{display:flex;align-items:center;gap:10px;margin:28px 0 12px}
.sec-head .sq{width:10px;height:10px;background:var(--warm);border-radius:2px}
.sec-head h2{font-family:var(--serif);font-size:21px;font-weight:700;margin:0}
.hubgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:4px 0 18px}
.hubcard{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:14px 16px}
.hubcard:hover{border-color:var(--accent)}
.hubcard h2{margin:0 0 2px;font-size:19px}
.hubcard h2 a{font-family:var(--serif);color:var(--ink);font-weight:700;text-decoration:none}
.hubcard h2 a:hover{color:var(--accent);text-decoration:underline}
.hubcard .cnt{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.hubcard ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}
.hubcard li a{font-size:13.5px;color:var(--ink-2)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.tcard{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 14px}
.tcard .tk{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:700}
.tcard-h{margin:4px 0 0;font-family:var(--serif);font-size:16px;line-height:1.25;font-weight:700}
.tcard-h a{color:var(--ink);text-decoration:none}
.tcard-h a:hover{color:var(--accent);text-decoration:underline}
.subchips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 12px}
.subchips a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--paper-2);border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--ink-2);text-decoration:none}
.subchips a:hover{border-color:var(--accent);color:var(--accent)}
.subchips a b{color:var(--muted);font-weight:600;font-size:11.5px}
.indexlist{columns:3;column-gap:30px;padding:4px 0 18px}
@media(max-width:820px){.indexlist{columns:2}}
@media(max-width:520px){.indexlist{columns:1}}
.indexlist a{display:block;padding:4px 0;font-size:14px;color:var(--link);break-inside:avoid;border-bottom:1px solid var(--paper-2)}
.hublead{font-family:var(--serif);font-size:17px;color:var(--ink-2);max-width:42em;margin:6px 0 8px;line-height:1.5}
.static-prose p{margin:0 0 14px;max-width:42em}
.static-prose a{font-weight:600}

.foot{border-top:1px solid var(--line);background:var(--paper-2);margin-top:18px}
.foot .wrap{max-width:var(--maxw);margin:0 auto;padding:24px 22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--ink-2)}
.foot b{font-family:var(--serif);color:var(--ink);font-weight:700}
.foot a{color:var(--link);font-weight:600}
