/* Local Insights — Civic Ledger design system (tokens: design-tokens.json v2) */
:root{
  --ink:#1C1917; --ink-soft:#292524; --vermilion:#C2410C; --vermilion-deep:#9A3412;
  --forest:#2F5233; --paper:#F7F3EA; --surface:#FFFDF8; --rule:#D8D2C4; --stone:#57534E;
  --success:#166534; --success-bg:#EDF5EE; --warning:#92400E; --warning-bg:#FBF0DC; --error:#B91C1C; --info:#1D4ED8;
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --serif:Georgia,"Times New Roman",serif;
  --ui:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
  --container:1200px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;font-family:var(--serif);font-size:1.0625rem;line-height:1.65;color:var(--ink-soft);background:var(--paper);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);color:var(--ink);margin:0 0 .4em;line-height:1.1}
h1{font-size:clamp(2.2rem,4.5vw,3.5rem);font-weight:700}
h2{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:700}
h3{font-size:1.25rem;font-weight:700}
p{margin:0 0 1em}
a{color:var(--vermilion-deep);text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:2px solid var(--info);outline-offset:2px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.75rem 1.25rem;z-index:200;font-family:var(--ui);font-size:.9rem}
.skip-link:focus{left:0;color:var(--paper)}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}
.caption{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
.kicker{font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--vermilion-deep);margin:0 0 12px}
.rule-t{border-top:1px solid var(--rule)}
.rule-double{border-top:3px double var(--ink)}
.section{padding:72px 0}
@media(max-width:768px){.section{padding:52px 0}}
.center{text-align:center}
em{font-style:italic}

/* Buttons & links */
.btn{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.7rem 1.4rem;font-family:var(--ui);font-weight:600;font-size:.92rem;letter-spacing:.02em;text-decoration:none;border:1px solid var(--ink);cursor:pointer;transition:all 100ms ease}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:var(--vermilion-deep);border-color:var(--vermilion-deep);color:var(--paper)}
.btn-outline{background:transparent;color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--paper)}
.door{font-family:var(--ui);font-weight:600;font-size:.95rem;color:var(--vermilion-deep);text-decoration:none;display:inline-flex;gap:.4rem;align-items:center}
.door::after{content:"→";transition:transform 100ms ease}
.door:hover{color:var(--ink)}
.door:hover::after{transform:translateX(3px)}

/* Dateline */
.dateline{border-bottom:1px solid var(--rule);padding:10px 0;text-align:center}
.dateline p{margin:0;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}
.dateline a{color:var(--stone)}
.dateline a:hover{color:var(--vermilion-deep)}

/* Masthead */
.masthead{text-align:center;padding:36px 0 22px;border-bottom:3px double var(--ink)}
.masthead .wordmark{font-family:var(--display);font-weight:800;font-size:clamp(2.6rem,6.5vw,4.75rem);line-height:1;color:var(--ink);text-decoration:none;display:inline-block}
.masthead .tagline{font-style:italic;color:var(--stone);margin:8px 0 0;font-size:1.05rem}

/* Nav */
.main-nav{border-bottom:1px solid var(--ink);padding:12px 0}
.main-nav ul{display:flex;justify-content:center;gap:34px;list-style:none;margin:0;padding:0;align-items:center;flex-wrap:wrap}
.main-nav a{font-family:var(--ui);font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink-soft)}
.main-nav a:hover{color:var(--vermilion-deep)}
.main-nav a[aria-current="page"]{color:var(--vermilion-deep)}
.main-nav .btn{min-height:38px;padding:.45rem 1rem;font-size:.78rem;letter-spacing:.1em}

/* Hero */
.hero{padding:64px 0 56px;text-align:center;border-bottom:1px solid var(--rule)}
.hero h1{max-width:16em;margin:0 auto .35em}
.hero .sub{font-size:1.15rem;color:var(--stone);max-width:38em;margin:0 auto 28px}
.hero .doors{display:flex;gap:32px;justify-content:center;flex-wrap:wrap}

/* Featured */
.featured{padding:64px 0;border-bottom:1px solid var(--rule)}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media(max-width:900px){.feat-grid{grid-template-columns:1fr;gap:32px}}
.feat-label{display:inline-block;background:var(--vermilion);color:var(--paper);font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;margin-bottom:20px}
.feat-grid h2{font-size:clamp(2rem,3.6vw,3rem)}
.dek{font-size:1.1rem;color:var(--ink-soft)}
.stat-band{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:28px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
@media(max-width:640px){.stat-band{grid-template-columns:repeat(2,1fr)}}
.stat{padding:16px 14px 14px;border-left:1px solid var(--rule)}
.stat:first-child{border-left:0}
@media(max-width:640px){.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--rule)}}
.stat a,.stat .num{font-family:var(--display);font-weight:700;font-size:1.9rem;color:var(--vermilion);text-decoration:none;line-height:1.1;display:block}
.stat a:hover{color:var(--vermilion-deep)}
.stat .cap{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-top:5px;display:block;line-height:1.5}
.byline{font-family:var(--ui);font-size:.85rem;color:var(--stone);margin:0 0 22px}
.byline strong{color:var(--ink)}

/* Plate (illustrated FIG. cover) */
.plate{border:1px solid var(--ink);outline:1px solid var(--rule);outline-offset:5px;background:var(--ink);position:relative;overflow:hidden}
.plate-art{position:relative;display:block;width:100%}
.plate-art img{display:block;width:100%;height:auto;transition:transform 300ms cubic-bezier(.2,.7,.3,1);transform-origin:center}
.plate-card .plate{transition:outline-color 100ms ease}
.plate-card:hover .plate{outline-color:var(--ink)}
.plate-card:hover .plate-art img{transform:scale(1.03)}
.plate-fig,.plate-cap{position:absolute;z-index:2;font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;pointer-events:none}
.plate-fig{top:12px;left:14px;padding:4px 9px}
.plate-cap{left:50%;transform:translateX(-50%);bottom:11px;padding:4px 12px;white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis}
.plate-fig[data-tone="dark"],.plate-cap[data-tone="dark"]{color:#F0AB8A;background:rgba(28,25,23,.66)}
.plate-fig[data-tone="light"],.plate-cap[data-tone="light"]{color:#9A3412;background:rgba(247,243,234,.82)}
.plate-fig[data-tone="mid"],.plate-cap[data-tone="mid"]{color:#3D2E10;background:rgba(247,243,234,.66)}
@media (prefers-reduced-motion:reduce){.plate-art img{transition:none!important}.plate-card:hover .plate-art img{transform:none}}

/* Tools strip */
.tools{background:var(--surface);border-bottom:1px solid var(--rule)}
.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:36px}
@media(max-width:820px){.tool-grid{grid-template-columns:1fr}}
.tool-card{background:var(--surface);padding:26px 28px;display:block;text-decoration:none;transition:background 100ms ease;position:relative}
.tool-card:hover{background:var(--paper)}
.tool-card h3{font-family:var(--display);font-size:1.45rem;margin:6px 0 6px}
.tool-card h3 span{color:var(--ink)}
.tool-card p{font-size:.95rem;color:var(--stone);margin:0 0 12px}
.tool-card .go{font-family:var(--ui);font-weight:600;font-size:.85rem;color:var(--vermilion-deep)}
.stamp{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border:1px solid var(--rule);color:var(--stone)}
.stamp.ok{color:var(--forest);border-color:#BFCDBF}
.stamp.stale{color:var(--warning);border-color:#E4CFA6;background:var(--warning-bg)}
.tool-card-disabled{isolation:isolate;overflow:hidden;cursor:not-allowed;pointer-events:none;user-select:none}
.tool-card-disabled::before{content:"";position:absolute;inset:0;z-index:3;background:rgba(137,128,110,.52);backdrop-filter:grayscale(.7);-webkit-backdrop-filter:grayscale(.7)}
.tool-card-disabled::after{content:"Temporarily unavailable";position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-1deg);width:max-content;max-width:calc(100% - 40px);padding:8px 12px;border:1px solid rgba(62,56,46,.55);background:rgba(247,243,234,.86);color:#3f392f;font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-align:center;text-transform:uppercase;box-shadow:3px 3px 0 rgba(62,56,46,.18)}
@media(prefers-reduced-transparency:reduce){.tool-card-disabled::before{background:#989080;backdrop-filter:none;-webkit-backdrop-filter:none}}

/* Archive plates grid */
.plates-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 36px;margin-top:40px}
@media(max-width:820px){.plates-grid{grid-template-columns:1fr}}
.plate-card{display:block;text-decoration:none}
.plate-card .plate{transition:outline-color 100ms ease}
.plate-card:hover .plate{outline-color:var(--ink)}
.plate-meta{display:flex;justify-content:space-between;margin:16px 2px 8px;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--vermilion-deep)}
.plate-meta .date{color:var(--stone)}
.plate-card h3{font-size:1.6rem;margin:0 0 6px}
.plate-card h3 span{color:var(--ink)}
.plate-card:hover h3 span{color:var(--vermilion-deep)}
.plate-card .dek2{font-style:italic;color:var(--stone);font-size:.98rem;margin:0 0 8px}
.plate-tags{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}

/* Trust apparatus */
.trust h2{font-size:clamp(1.9rem,3.4vw,2.8rem);max-width:14em}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:44px}
@media(max-width:1000px){.trust-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.trust-grid{grid-template-columns:1fr}}
.trust-item{border-top:3px double var(--ink);padding-top:18px}
.trust-item .n{font-family:var(--display);font-size:1.5rem;color:var(--vermilion);font-weight:700}
.trust-item h3{font-family:var(--ui);font-size:1rem;font-weight:700;margin:8px 0 6px}
.trust-item p{font-family:var(--ui);font-size:.88rem;color:var(--stone);margin:0 0 10px}
.source-stamp{font-family:var(--mono);font-size:.7rem;color:var(--stone);border:1px solid var(--rule);background:var(--surface);padding:8px 10px;display:block;margin-top:10px;line-height:1.6}

/* Newsletter */
.ledger{text-align:center}
.ledger h2{font-size:clamp(2rem,3.6vw,3rem)}
.ledger .sub{font-style:italic;color:var(--stone);margin-bottom:28px}
.subscribe-form{display:flex;max-width:520px;margin:0 auto;border:1px solid var(--ink);background:var(--surface)}
@media(max-width:520px){.subscribe-form{flex-direction:column;border:0;gap:10px}.subscribe-form input,.subscribe-form button{border:1px solid var(--ink)!important;width:100%}}
.subscribe-form input{flex:1;border:0;padding:14px 16px;font-family:var(--ui);font-size:.95rem;background:transparent;color:var(--ink)}
.subscribe-form input:focus{outline:2px solid var(--info);outline-offset:-2px}
.subscribe-form button{border:0;border-left:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--ui);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;padding:0 26px;cursor:pointer;min-height:52px}
.subscribe-form button:hover{background:var(--vermilion-deep)}
.ledger .privacy-note{font-family:var(--ui);font-size:.8rem;color:var(--stone);margin-top:14px}
.form-msg{font-family:var(--ui);font-size:.9rem;margin-top:14px}
.form-msg.ok{color:var(--success)} .form-msg.err{color:var(--error)}

/* Footer */
.site-footer{background:var(--ink);color:#D6D3D1;margin-top:0;padding:64px 0 28px}
.site-footer .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
@media(max-width:900px){.site-footer .foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.site-footer .foot-grid{grid-template-columns:1fr}}
.site-footer .fbrand{font-family:var(--display);font-weight:800;font-size:1.6rem;color:var(--paper)}
.site-footer .fdesc{font-family:var(--ui);font-size:.85rem;color:#A8A29E;margin:10px 0 16px;max-width:30em}
.site-footer h4{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#A8A29E;margin:0 0 14px;font-weight:500}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.site-footer a{color:#D6D3D1;text-decoration:none;font-family:var(--ui);font-size:.88rem}
.site-footer a:hover{color:#F0AB8A;text-decoration:underline;text-underline-offset:3px}
.site-footer .fcontact{font-family:var(--ui);font-size:.82rem;color:#A8A29E}
.ledger-line{margin-top:48px;padding-top:20px;border-top:1px solid #44403C;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#78716C}

/* Page hero (interior) */
.page-hero{padding:56px 0 40px;border-bottom:1px solid var(--rule)}
.page-hero h1{margin-bottom:.25em}
.page-hero .lede{font-size:1.15rem;color:var(--stone);max-width:40em;margin:0}

/* Filters */
.filters{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0 8px;padding:20px;border:1px solid var(--rule);background:var(--surface)}
.filters label{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);display:block;margin-bottom:5px}
.filters .f{display:flex;flex-direction:column}
.filters select,.filters input{font-family:var(--ui);font-size:.9rem;padding:10px 12px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);min-width:170px}
.filters select:focus,.filters input:focus{outline:2px solid var(--info);outline-offset:1px}
.results-line{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin:14px 0 0}

/* Prose */
.prose{max-width:44em}
.prose h2{font-size:1.7rem;margin-top:1.8em}
.prose ul{padding-left:1.2em}
.prose li{margin-bottom:.5em}

/* Contact */
.contact-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);gap:52px;align-items:start}
.contact-form{display:grid;gap:18px;padding:28px;border:1px solid var(--rule);background:var(--surface)}
.contact-form .field{display:grid;gap:7px}
.contact-form label{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink);font:1rem/1.5 var(--ui);padding:12px 13px}
.contact-form textarea{min-height:190px;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--info);outline-offset:1px;border-color:var(--info)}
.contact-form .form-note{margin:0;color:var(--stone);font: .8rem/1.55 var(--ui)}
.contact-aside{border-top:3px double var(--ink);padding-top:20px}
.contact-aside h2{font-size:1.6rem}
.contact-aside p{color:var(--stone)}
@media(max-width:800px){.contact-wrap{grid-template-columns:1fr;gap:34px}.contact-form{padding:22px}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
}
