:root{
  --ink:#101d36;
  --ink-soft:#3a4661;
  --muted:#68718a;
  --paper:#fcfcfa;
  --panel:#f4f4f0;
  --line:#e3e3dc;
  --line-dark:#c9c9c0;
  --red:#d8232a;
  --teal:#0e6e5f;
  --teal-bg:#eaf3f0;
  --gold:#b98a1d;
  --gold-bg:#faf3e2;
  --amber-bg:#fbf0ea;
  --amber:#b05c2a;
  --display:'Libre Franklin',system-ui,sans-serif;
  --serif:'Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased}
::selection{background:var(--ink);color:var(--paper)}

/* ---------- masthead ---------- */
.masthead{border-bottom:3px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:50}
.mast-inner{max-width:1120px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:62px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{height:36px;width:auto;display:block}
.brand .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
nav.tabs{display:flex;gap:2px}
nav.tabs a{font-family:var(--display);font-weight:600;font-size:13.5px;letter-spacing:.01em;color:var(--muted);padding:8px 13px;border-radius:3px;text-decoration:none;transition:color .15s,background .15s}
nav.tabs a:hover{color:var(--ink)}
nav.tabs a.active{color:var(--paper);background:var(--ink)}
nav.tabs a:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.menu-btn{display:none;appearance:none;border:1px solid var(--line-dark);background:none;font-family:var(--display);font-weight:700;font-size:13px;padding:7px 14px;border-radius:3px;cursor:pointer;color:var(--ink)}

/* ---------- layout ---------- */
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
section.view{padding:52px 0 80px}
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
h1.hero-h{font-family:var(--display);font-weight:900;font-size:clamp(34px,5.2vw,58px);line-height:1.04;letter-spacing:-.025em;max-width:820px}
h2.section-h{font-family:var(--display);font-weight:800;font-size:clamp(24px,3.4vw,34px);letter-spacing:-.02em;line-height:1.1}
.lede{font-size:19px;line-height:1.65;color:var(--ink-soft);max-width:720px;margin-top:20px}
.rule{border:0;border-top:1px solid var(--line);margin:44px 0}

/* ---------- stat strip ---------- */
.stat-strip{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--ink);margin-top:48px}
.stat-strip .cell{padding:22px 20px;border-right:1px solid var(--line-dark)}
.stat-strip .cell:last-child{border-right:0}
.stat-strip .num{font-family:var(--display);font-weight:900;font-size:34px;letter-spacing:-.03em;line-height:1}
.stat-strip .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:9px;line-height:1.5}

/* ---------- headline win banner ---------- */
.banner{background:var(--ink);color:var(--paper);margin-top:56px;padding:36px 36px 32px;position:relative;overflow:hidden}
.banner .eyebrow{color:#f2c14e}
.banner h3{font-family:var(--display);font-weight:800;font-size:clamp(20px,2.6vw,27px);letter-spacing:-.015em;line-height:1.25;max-width:760px}
.banner p{color:#c4cbdc;margin-top:14px;max-width:740px;font-size:16px}
.banner .go{display:inline-block;margin-top:22px;font-family:var(--display);font-weight:700;font-size:13.5px;color:var(--paper);text-decoration:none;border:1px solid #55617f;padding:9px 18px;border-radius:3px;cursor:pointer;background:none;transition:background .15s}
.banner .go:hover{background:#222f4e}

/* ---------- ledger (advocacy wins) ---------- */
.theme-h{display:flex;align-items:baseline;gap:14px;margin:52px 0 6px}
.theme-h .t-num{font-family:var(--mono);font-size:12px;color:var(--red);letter-spacing:.08em}
.theme-h h3{font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.015em}
.theme-sub{color:var(--muted);font-size:15px;margin-bottom:8px;max-width:700px}
.ledger{border-top:2px solid var(--ink)}
.ledger .row{display:grid;grid-template-columns:190px 1fr;gap:28px;padding:22px 0;border-bottom:1px solid var(--line)}
.ledger .metric{font-family:var(--display);font-weight:900;font-size:27px;letter-spacing:-.025em;line-height:1.12;color:var(--teal)}
.ledger .metric small{display:block;font-family:var(--mono);font-weight:500;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-top:7px}
.ledger .what strong{font-family:var(--display);font-weight:700;font-size:16.5px;letter-spacing:-.005em;display:block;margin-bottom:5px}
.ledger .what p{color:var(--ink-soft);font-size:15.5px}
.ledger .src{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.05em;margin-top:8px}

/* ---------- generic tables ---------- */
table.data{width:100%;border-collapse:collapse;margin-top:18px}
table.data th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 14px 10px 0;border-bottom:2px solid var(--ink);font-weight:500}
table.data td{padding:13px 14px 13px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:15.5px}
table.data td.t-title{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:-.005em;width:46%}
table.data td.t-org{color:var(--ink-soft)}

/* ---------- status chips ---------- */
.chip{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;padding:4px 9px;border-radius:2px;white-space:nowrap}
.chip.done{background:var(--teal-bg);color:var(--teal)}
.chip.progress{background:var(--gold-bg);color:var(--gold)}
.chip.open{background:var(--amber-bg);color:var(--amber)}
.chip.idea{background:#eef0f4;color:var(--muted)}
.chip.kind{background:#eef0f4;color:var(--ink-soft)}
.chip.aipending{background:#eef0f4;color:var(--muted)}
.chip.aifailed{background:var(--amber-bg);color:var(--amber)}

/* ---------- filters ---------- */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 8px}
.filters a{display:inline-block;font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;padding:6px 13px;border-radius:20px;text-decoration:none;color:var(--ink-soft);border:1px solid var(--line-dark);transition:all .15s}
.filters a:hover{border-color:var(--ink)}
.filters a.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.search{display:flex;gap:10px;align-items:center;margin-top:18px;max-width:460px}
.search input{width:100%;padding:10px 13px;border:1px solid var(--line-dark);border-radius:3px;font-family:var(--serif);font-size:15px;background:#fff;color:var(--ink)}
.search input:focus{outline:2px solid var(--ink);outline-offset:-1px}

/* ---------- issue tracker ---------- */
.issue{border:1px solid var(--line);border-left:3px solid var(--line-dark);padding:22px 24px;margin-top:14px;background:#fff}
.issue.st-open{border-left-color:var(--amber)}
.issue.st-progress{border-left-color:var(--gold)}
.issue.st-done{border-left-color:var(--teal)}
.issue .i-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;flex-wrap:wrap}
.issue h4{font-family:var(--display);font-weight:700;font-size:16.5px;letter-spacing:-.005em}
.issue p{color:var(--ink-soft);font-size:15px;margin-top:9px}
.issue .i-meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.06em;margin-top:11px;text-transform:uppercase}

/* ---------- cards ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}
.card{border:1px solid var(--line);background:#fff;padding:26px 26px 24px}
.card h4{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.01em;margin-bottom:8px}
.card p{color:var(--ink-soft);font-size:15px}
.card .c-meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-top:14px}

/* ---------- ask list (forward asks) ---------- */
.ask{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.ask .a-num{font-family:var(--display);font-weight:900;font-size:24px;color:var(--line-dark);letter-spacing:-.02em}
.ask strong{font-family:var(--display);font-weight:700;font-size:16px;display:block;margin-bottom:4px}
.ask p{color:var(--ink-soft);font-size:15px}
.ask .hp{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:#fff;background:var(--red);padding:3px 7px;border-radius:2px;vertical-align:2px;margin-left:8px}

/* ---------- testimonials ---------- */
.quote{border-left:3px solid var(--teal);background:#fff;border:1px solid var(--line);border-left:3px solid var(--teal);padding:24px 28px;margin-top:16px}
.quote p{font-style:italic;font-size:16.5px;line-height:1.7;color:var(--ink)}
.quote .q-who{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:14px;font-style:normal}

/* ---------- feedback form ---------- */
.fb{margin-top:6px;max-width:760px}
.fb .f-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;margin-bottom:16px}
.fb label{font-family:var(--display);font-weight:600;font-size:13.5px;color:var(--ink-soft);display:block}
.fb input,.fb select,.fb textarea{width:100%;margin-top:6px;padding:11px 13px;border:1px solid var(--line-dark);border-radius:3px;background:#fff;font-family:var(--serif);font-size:15px;color:var(--ink)}
.fb input:focus,.fb select:focus,.fb textarea:focus{outline:2px solid var(--ink);outline-offset:-1px}
.fb textarea{resize:vertical}
.fb-submit{appearance:none;border:0;background:var(--ink);color:var(--paper);font-family:var(--display);font-weight:700;font-size:14.5px;padding:13px 26px;border-radius:3px;cursor:pointer;margin-top:18px;transition:background .15s}
.fb-submit:hover{background:#22304f}
.fb-submit:disabled{background:var(--muted);cursor:default}
.fb-status{font-family:var(--mono);font-size:12px;margin-left:14px;color:var(--teal)}
.fb-err{color:var(--red);font-size:14px;margin-top:12px}

/* ---------- docs ---------- */
.doc-row{display:grid;grid-template-columns:1fr 220px;gap:18px 28px;padding:15px 0;border-bottom:1px solid var(--line);align-items:baseline}
.doc-row .d-main a.d-title{font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink);text-decoration:none}
.doc-row .d-main a.d-title:hover{color:var(--teal)}
.doc-row .d-tags{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.04em}
.doc-row .d-org{font-size:13.5px;color:var(--muted)}
.doc-row .d-actions{display:flex;gap:14px;justify-content:flex-end;align-items:baseline}
.doc-row .d-actions a{color:var(--teal);font-family:var(--mono);font-size:12px;text-decoration:none}
.doc-row .d-actions a:hover{text-decoration:underline}
.doc-row .d-actions a.dl{color:var(--ink)}
.doc-empty{color:var(--muted);padding:20px 0;font-size:15px}

/* ---------- document detail ---------- */
.d-head{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-start}
.d-head h1{font-family:var(--display);font-weight:900;font-size:clamp(26px,3.6vw,40px);letter-spacing:-.02em;line-height:1.12;max-width:760px;margin-top:10px}
.d-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.btn{appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--display);font-weight:700;font-size:13.5px;padding:11px 20px;border-radius:3px;cursor:pointer;text-decoration:none;display:inline-block;text-align:center;transition:background .15s}
.btn:hover{background:#22304f}
.btn.ghost{background:none;color:var(--ink)}
.btn.ghost:hover{background:var(--panel)}
.btn:disabled{background:var(--muted);border-color:var(--muted);cursor:default}
.d-meta{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.05em;margin-top:14px}
.d-meta .tag-chip{display:inline-block;background:#eef0f4;color:var(--ink-soft);padding:2px 8px;border-radius:2px;margin-right:6px;font-size:10.5px}
.ai-banner{border:1px solid var(--line);border-left:3px solid var(--teal);background:#fff;padding:26px 28px;margin-top:36px}
.ai-banner .ai-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.ai-banner h3{font-family:var(--display);font-weight:800;font-size:17px;margin-bottom:10px}
.ai-banner p{color:var(--ink-soft);font-size:16px;line-height:1.65}
.ai-banner.pending{border-left-color:var(--gold)}
.ai-banner.pending .ai-label{color:var(--gold)}
.faq-item{border-bottom:1px solid var(--line);padding:18px 0}
.faq-item summary{font-family:var(--display);font-weight:700;font-size:15.5px;cursor:pointer;letter-spacing:-.005em;list-style:none;display:flex;gap:10px;align-items:baseline}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"+";font-family:var(--mono);color:var(--red);font-size:15px}
.faq-item[open] summary::before{content:"–"}
.faq-item p{color:var(--ink-soft);font-size:15.5px;margin-top:10px;max-width:780px}
.ask-box{margin-top:44px}
.ask-box textarea{width:100%;max-width:760px}
.qa-item{border:1px solid var(--line);background:#fff;padding:18px 22px;margin-top:14px}
.qa-item .q{font-family:var(--display);font-weight:700;font-size:15.5px}
.qa-item .q .chip{margin-left:10px}
.qa-item .a{color:var(--ink-soft);font-size:15.5px;margin-top:10px;line-height:1.65;white-space:pre-line}
.qa-item .qa-meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:12px;letter-spacing:.05em;text-transform:uppercase}

/* ---------- notice ---------- */
.notice{border:1px dashed var(--line-dark);padding:20px 24px;margin-top:24px;color:var(--muted);font-size:15px;background:var(--panel)}
.notice a{color:var(--teal)}

/* ---------- flash ---------- */
.flash{border:1px solid var(--teal);background:var(--teal-bg);color:var(--teal);padding:14px 20px;margin:24px 0 0;font-family:var(--display);font-weight:600;font-size:14.5px;border-radius:3px}

/* ---------- admin ---------- */
.admin-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:14px}
.admin-table th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:9px 12px 9px 0;border-bottom:2px solid var(--ink)}
.admin-table td{padding:11px 12px 11px 0;border-bottom:1px solid var(--line);vertical-align:top}
.admin-table td.mono{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.retry{appearance:none;border:1px solid var(--line-dark);background:none;font-family:var(--mono);font-size:10.5px;padding:4px 10px;border-radius:2px;cursor:pointer;color:var(--ink-soft)}
.retry:hover{border-color:var(--ink);color:var(--ink)}
.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}
.admin-grid .cell{border:1px solid var(--line);background:#fff;padding:18px}
.admin-grid .cell .num{font-family:var(--display);font-weight:900;font-size:28px}
.admin-grid .cell .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.login-card{max-width:380px;margin:80px auto;border:1px solid var(--line);background:#fff;padding:30px}
.login-card h1{font-family:var(--display);font-weight:800;font-size:20px;margin-bottom:6px}
.login-card p{font-size:14px;color:var(--muted);margin-bottom:18px}
.login-card input{width:100%;padding:11px 13px;border:1px solid var(--line-dark);border-radius:3px;font-family:var(--mono);font-size:14px}
.login-card .btn{width:100%;margin-top:16px;border:0}

/* ---------- footer ---------- */
footer{background:var(--ink);color:#c4cbdc;margin-top:40px}
.f-inner{max-width:1120px;margin:0 auto;padding:44px 24px 40px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
footer .wordmark{font-family:var(--display);font-weight:900;font-size:20px;color:#fff}
footer .wordmark .at{color:var(--red)}
footer p{font-size:14px;margin-top:10px;line-height:1.7}
footer h5{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#8b95ad;margin-bottom:12px}
footer a{color:#e8ebf2;text-decoration:none;font-size:14.5px}
footer a:hover{text-decoration:underline}
footer .f-item{margin-bottom:8px}
.f-bar{border-top:1px solid #2a3550;padding:16px 24px;font-family:var(--mono);font-size:11px;color:#8b95ad;text-align:center;letter-spacing:.05em}

/* ---------- responsive ---------- */
@media(max-width:920px){
  .stat-strip{grid-template-columns:repeat(2,1fr)}
  .stat-strip .cell{border-bottom:1px solid var(--line-dark)}
  .grid2{grid-template-columns:1fr}
  .f-inner{grid-template-columns:1fr}
  .admin-grid{grid-template-columns:repeat(2,1fr)}
  nav.tabs{display:none;position:absolute;top:62px;left:0;right:0;background:var(--paper);border-bottom:2px solid var(--ink);flex-direction:column;padding:10px 20px 16px}
  nav.tabs.open{display:flex}
  nav.tabs a{text-align:left;padding:11px 10px;font-size:15px}
  .menu-btn{display:block}
  .ledger .row{grid-template-columns:1fr;gap:8px}
  .doc-row{grid-template-columns:1fr;gap:4px}
  .doc-row .d-actions{justify-content:flex-start}
  table.data td.t-title{width:auto}
  .fb .f-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
