/* ============================================================
   Plum St. Funding — PSC digital stationery (locked brand spec)
   Deliberate single-theme (dark) — every surface painted explicitly
   ============================================================ */
:root{
  --pine:#0B3D2E; --pine2:#0E4A38; --pine-deep:#08291E;
  --gold:#D4AF37; --gold-soft:#E6C766;
  --signal:#2BD17E; --signal-dim:#1F9C5D;
  --asphalt:#0F1014; --asphalt2:#16181F; --asphalt3:#1C1F27;
  --chalk:#F4F1E8; --muted:#A4ADAA;
  --btn-ink:#1A1505;
  --hair:rgba(255,255,255,.07);
  --gold-hair:rgba(212,175,55,.22);
  --risk:#E0895F;
  --radius:16px; --radius-btn:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--asphalt); color:var(--chalk);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Overpass','Inter',sans-serif;font-weight:800;letter-spacing:-0.01em;line-height:1.1;color:#fff;margin:0;text-wrap:balance}
h1{font-weight:900}
p{margin:0 0 1em}
a{color:var(--signal);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
img{max-width:100%;display:block}
.gold{color:var(--gold)}
.muted{color:var(--muted)}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

.kicker{
  font-family:'Overpass',sans-serif;font-weight:800;font-size:.66rem;
  letter-spacing:.24em;text-transform:uppercase;color:var(--gold);
  display:block;margin-bottom:.7rem;
}
.kicker.sig{color:var(--signal)}

/* ---------- demo ribbon ---------- */
.demo-ribbon{
  background:var(--pine-deep);border-bottom:1px solid var(--gold-hair);
  text-align:center;padding:7px 16px;
  font-family:'Overpass',sans-serif;font-weight:800;font-size:.64rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);
}

/* ---------- nav ---------- */
.nav{
  display:flex;align-items:center;gap:28px;padding:18px 0;
  border-bottom:1px solid var(--hair);
}
.lockup{display:flex;align-items:center;gap:11px;text-decoration:none}
.lockup:hover{text-decoration:none}
.lockup .mark{
  width:38px;height:38px;border-radius:10px;background:var(--pine);flex:none;
  display:flex;align-items:center;justify-content:center;
  font-family:'Overpass',sans-serif;font-weight:900;font-size:1.2rem;color:var(--gold);
}
.lockup .name{font-family:'Overpass',sans-serif;font-weight:900;font-size:.92rem;letter-spacing:.04em;color:#fff;line-height:1.05}
.lockup .name small{display:block;font-size:.54rem;letter-spacing:.3em;color:var(--gold);font-weight:800}
.nav .links{display:flex;gap:22px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav .links a{color:var(--chalk);font-size:.9rem;font-weight:500}
.nav .links a:hover{color:var(--gold-soft);text-decoration:none}
.nav .links a.backhome{color:var(--muted)}
.nav .links a.backhome:hover{color:var(--gold-soft);text-decoration:none}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;background:var(--gold);color:var(--btn-ink);
  font-family:'Overpass',sans-serif;font-weight:800;font-size:.9rem;
  padding:13px 26px;border-radius:var(--radius-btn);border:none;cursor:pointer;
  text-decoration:none;letter-spacing:.02em;
}
.btn:hover{background:var(--gold-soft);text-decoration:none}
.btn.ghost{background:transparent;border:1px solid var(--gold-hair);color:var(--gold)}
.btn.ghost:hover{border-color:var(--gold);background:rgba(212,175,55,.06)}
.btn.small{padding:8px 16px;font-size:.78rem}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ---------- cards & layout ---------- */
.card{background:var(--asphalt2);border:1px solid var(--hair);border-radius:var(--radius);padding:26px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
section{padding:72px 0}
.section-head{max-width:62ch;margin-bottom:34px}
.section-head h2{font-size:1.8rem;margin-bottom:.6rem}
.section-head p{color:var(--muted)}

/* ---------- chips / pills ---------- */
.pill{
  display:inline-flex;align-items:center;gap:6px;
  font-family:'Overpass',sans-serif;font-weight:800;font-size:.64rem;
  letter-spacing:.12em;text-transform:uppercase;
  padding:4px 11px;border-radius:999px;border:1px solid var(--hair);
  background:var(--asphalt3);color:var(--muted);white-space:nowrap;
}
.pill .dot{width:7px;height:7px;border-radius:50%;flex:none}
.pill.money{color:var(--gold-soft);border-color:var(--gold-hair)}
.pill.money .dot{background:var(--gold)}
.pill.dev{color:var(--signal)}
.pill.dev .dot{background:var(--signal)}
.pill.ok{color:var(--signal)}.pill.ok .dot{background:var(--signal)}
.pill.warn{color:var(--gold-soft);border-color:var(--gold-hair)}.pill.warn .dot{background:var(--gold)}
.pill.risk{color:var(--risk)}.pill.risk .dot{background:var(--risk)}

/* ---------- forms ---------- */
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%;background:var(--asphalt3);border:1px solid var(--hair);border-radius:10px;
  color:var(--chalk);font-family:'Inter',sans-serif;font-size:.95rem;padding:12px 14px;
}
input::placeholder,textarea::placeholder{color:#6b736f}
label{font-family:'Overpass',sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:block;margin:0 0 6px}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--gold-hair);padding:34px 0 44px;margin-top:40px}
footer.site .cols{display:flex;flex-wrap:wrap;gap:14px 36px;justify-content:space-between;align-items:flex-start}
footer.site .fine{font-size:.78rem;color:var(--muted);max-width:64ch;margin-top:16px}

/* ---------- tables ---------- */
.tablewrap{overflow-x:auto;border:1px solid var(--hair);border-radius:var(--radius);background:var(--asphalt2)}
table{border-collapse:collapse;width:100%;min-width:680px;font-size:.87rem}
thead th{
  font-family:'Overpass',sans-serif;font-weight:800;font-size:.65rem;letter-spacing:.14em;
  text-transform:uppercase;text-align:left;color:var(--muted);
  padding:12px 16px;border-bottom:1px solid var(--hair);background:var(--asphalt3);
}
tbody td{padding:12px 16px;border-top:1px solid var(--hair);vertical-align:middle}
tbody tr:hover{background:rgba(255,255,255,.02)}
.tabular{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:no-preference){
  .rise{animation:rise .5s ease both}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
