*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--esb-blue:#1B4F8A;--esb-mid:#2E75B6;--esb-light:#D5E8F4;--page-bg:#F0F4F8;--card-bg:#FFFFFF;--text-dark:#1A1A2E;--text-mid:#4A5568;--text-light:#718096;--green:#276749;--green-bg:#EBF5EF;--amber:#92400E;--amber-bg:#FEF3C7;--border:#E2E8F0;--shadow:0 2px 12px rgba(27,79,138,0.08),0 1px 3px rgba(0,0,0,0.06);--shadow-hover:0 8px 30px rgba(27,79,138,0.15),0 2px 8px rgba(0,0,0,0.08)}body{font-family:'Source Sans 3',sans-serif;background:var(--page-bg);color:var(--text-dark);padding:48px 24px;min-height:100vh}.page-note{max-width:760px;margin:0 auto 48px;background:#fff;border-left:4px solid var(--esb-mid);padding:16px 20px;border-radius:0 6px 6px 0;font-size:14px;color:var(--text-mid);line-height:1.6}.page-note strong{color:var(--esb-blue)}.section-header{max-width:760px;margin:0 auto 32px;text-align:center}.section-header h2{font-family:'Playfair Display',serif;font-size:28px;font-weight:700;color:var(--esb-blue);margin-bottom:8px}.section-header p{font-size:16px;color:var(--text-mid);font-weight:300}.card-grid{max-width:760px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.slate-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:24px 24px 20px;display:flex;flex-direction:column;gap:14px;transition:box-shadow 0.2s ease,transform 0.2s ease;cursor:default}.slate-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.state-name{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--esb-blue);line-height:1.2}.tranche-badge{flex-shrink:0;background:var(--esb-light);color:var(--esb-blue);font-size:11px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:4px 10px;border-radius:20px;white-space:nowrap;margin-top:3px}.tranche-badge.unlocked{background:var(--green-bg);color:var(--green)}.card-meta{font-size:14px;color:var(--text-mid);line-height:1.5;font-weight:300}.card-meta strong{color:var(--text-dark);font-weight:600}.progress-wrap{display:flex;flex-direction:column;gap:6px}.progress-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--text-light);font-weight:400}.progress-labels .raised{color:var(--green);font-weight:700;font-size:13px}.progress-labels .goal{color:var(--text-mid)}.progress-track{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--esb-mid),var(--esb-blue));border-radius:99px;transition:width 0.6s ease}.progress-fill.full{background:linear-gradient(90deg,#38a169,var(--green))}.unlock-note{font-size:12px;color:var(--text-light);font-style:italic}.unlock-note.ready{color:var(--green);font-style:normal;font-weight:600}.card-divider{height:1px;background:var(--border);border:none}.btn-donate{display:block;width:100%;background:var(--esb-blue);color:#fff;font-family:'Source Sans 3',sans-serif;font-size:15px;font-weight:700;letter-spacing:0.02em;border:none;border-radius:6px;padding:12px 20px;cursor:pointer;text-align:center;text-decoration:none;transition:background 0.15s ease,transform 0.1s ease}.btn-donate:hover{background:#163f72;transform:translateY(-1px)}.btn-donate:active{transform:translateY(0)}.slate-card.tranche-unlocked .btn-donate{background:var(--green)}.slate-card.tranche-unlocked .btn-donate:hover{background:#1e5237}.slate-card.coming-soon{opacity:0.65;pointer-events:none}.slate-card.coming-soon .btn-donate{background:var(--border);color:var(--text-light)}.below-cards{max-width:760px;margin:28px auto 0;text-align:center;font-size:14px;color:var(--text-mid);line-height:1.6}.below-cards a{color:var(--esb-mid);text-decoration:underline;font-weight:600}.design-note{max-width:760px;margin:40px auto 0;background:#fff8e1;border-left:4px solid #f6c94e;padding:14px 18px;border-radius:0 6px 6px 0;font-size:13px;color:#5a3e00;line-height:1.6}.design-note strong{display:block;margin-bottom:4px;font-size:13px}