/* /supporters/supporters.css - The supporters wall + opt-in form.
   Type law: Archivo (var(--display)) throughout, held light and tracked,
   matching the approved landing page. One serif accent only: Fraunces
   italic on the mission line. The light paper base stays; inner pages
   are lighter than the dark landing on purpose. */

*{box-sizing:border-box;margin:0;padding:0}
html,body{
  background:var(--cream);color:var(--ink);
  font-family:var(--display);font-weight:400;line-height:1.55;
  -webkit-font-smoothing:antialiased;min-height:100vh;
}
/* The wall stands on its own screen: the names fill the view, and the footer
   sits below the fold in its own place, not floating up under the names when
   there are only a few. Kai, 2026-07-22. */
body{display:flex;flex-direction:column;min-height:100vh}

.top-bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;padding:20px 28px;
  border-bottom:1px solid var(--hairline-l);
  background:var(--paper);
  position:sticky;top:0;z-index:5;
}
.top-bar a.brand{
  font:600 11px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;
}
.top-bar .crumbs{
  font:400 11px/1.4 var(--display);letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted-l);
}
.top-bar .crumbs a{color:var(--muted-l);text-decoration:none;border-bottom:1px dotted var(--muted-l)}

.hero{
  padding:56px 24px 28px;text-align:center;background:var(--paper);
  border-bottom:1px solid var(--hairline-l);
}
.hero .kicker{
  font:400 clamp(10.5px,1.2vw,12px)/1.6 var(--display);
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted-l);margin-bottom:12px;
  max-width:42ch;margin-left:auto;margin-right:auto;
}
.hero h1{
  font-family:var(--display);
  font-weight:250;font-stretch:110%;
  font-size:clamp(24px,3.2vw,38px);line-height:1.06;
  letter-spacing:.02em;color:var(--ink);
  max-width:20ch;margin:0 auto;
}
.hero .mission{
  margin-top:16px;font-family:var(--serif);font-style:italic;font-weight:350;
  font-size:18px;line-height:1.6;
  color:var(--muted-l);max-width:46ch;margin-left:auto;margin-right:auto;
}
.hero .join-cta{
  display:inline-flex;gap:12px;align-items:center;
  margin-top:24px;
  font:500 12px/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);background:var(--ink);
  border:1.5px solid var(--ink);border-radius:12px;
  padding:15px 24px;text-decoration:none;
}
.hero .join-cta:hover{background:var(--terra);border-color:var(--terra)}

.stat-row{
  display:flex;gap:36px;justify-content:center;flex-wrap:wrap;
  margin-top:28px;
}
.stat-row .stat{
  font:400 11px/1.7 var(--display);letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted-l);
}
.stat-row .stat b{
  display:block;font-family:var(--display);
  font-weight:250;font-stretch:108%;
  font-size:30px;line-height:1.15;letter-spacing:.02em;
  color:var(--ink);
}

.search-row{
  max-width:640px;margin:26px auto 0;padding:0 24px;
  display:flex;gap:10px;align-items:center;
}
.search-row input{
  flex:1;padding:14px 16px;
  font:400 15px/1.4 var(--display);letter-spacing:.02em;color:var(--ink);
  background:var(--paper);border:1.5px solid var(--hairline-l);
  border-radius:10px;
}
.search-row input::placeholder{color:var(--muted-l)}
.search-row input:focus{outline:none;border-color:var(--ink)}
.search-row .count{
  font:400 10.5px/1.6 var(--display);letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted-l);
}

.wall{
  max-width:1180px;margin:36px auto 88px;padding:0 24px;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:10px;
}
.tile{
  background:var(--paper);border:1px solid var(--hairline-l);
  border-radius:10px;padding:14px 16px;
  font:400 15px/1.35 var(--display);letter-spacing:.02em;color:var(--ink);
  display:flex;align-items:center;gap:12px;
  min-height:60px;
}
.tile .num{
  font:500 10.5px/1 var(--display);letter-spacing:.12em;
  color:var(--muted-l);
  min-width:34px;text-align:right;
}
.tile.founder{
  border:1.5px solid var(--patience);
  background:linear-gradient(180deg, var(--patience-tint) 0%, var(--paper) 55%);
}
.tile.founder .num{color:var(--patience)}
.tile.slot{
  border:1.2px dashed var(--hairline-l);background:transparent;
  color:var(--muted-l);font-style:italic;
}
.tile.slot .num{color:var(--muted-l)}

.foot-nav{
  max-width:1180px;margin:0 auto;padding:36px 24px 60px;
  display:flex;flex-wrap:wrap;gap:14px 22px;
  border-top:1px solid var(--hairline-l);
  font:400 10.5px/1.6 var(--display);letter-spacing:.2em;text-transform:uppercase;
}
.foot-nav a{color:var(--muted-l);text-decoration:none}
.foot-nav a:hover{color:var(--ink)}

/* Opt-in form (join.html) */
.form-wrap{
  max-width:520px;margin:44px auto;padding:0 24px 80px;
}
.form-wrap p.lede{font:400 16px/1.65 var(--display);letter-spacing:.01em;color:var(--ink);margin:16px 0 20px}
.form-wrap .field{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.form-wrap label{
  font:500 11px/1.4 var(--display);letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);
}
.form-wrap input[type="text"]{
  padding:14px 16px;
  font:400 15.5px/1.4 var(--display);letter-spacing:.02em;color:var(--ink);
  background:var(--paper);border:1.5px solid var(--hairline-l);
  border-radius:10px;
}
.form-wrap input[type="text"]::placeholder{color:var(--muted-l)}
.form-wrap input[type="text"]:focus{outline:none;border-color:var(--ink)}
.form-wrap .hint{font:400 13px/1.55 var(--display);letter-spacing:.01em;color:var(--muted-l)}
.form-wrap .champion{
  display:flex;align-items:flex-start;gap:12px;
  border:1px solid var(--hairline-l);border-radius:10px;
  padding:16px 18px;background:var(--paper);
  margin:16px 0 22px;
}
.form-wrap .champion input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  width:20px;height:20px;flex:0 0 20px;margin-top:2px;
  border:1.5px solid var(--ink);border-radius:4px;
  background:var(--paper);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
}
.form-wrap .champion input[type="checkbox"]:checked{background:var(--ink)}
.form-wrap .champion input[type="checkbox"]:checked::after{
  content:'';width:10px;height:5px;
  border-left:2px solid var(--paper);border-bottom:2px solid var(--paper);
  transform:rotate(-45deg) translate(1px,-1px);
}
.form-wrap .champion label{
  font:400 14px/1.55 var(--display);letter-spacing:.01em;text-transform:none;
  color:var(--ink);cursor:pointer;
}
.form-wrap .btn-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.form-wrap .cta{
  font:500 12px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;
  color:var(--paper);background:var(--ink);
  border:1.5px solid var(--ink);border-radius:12px;
  padding:15px 22px;cursor:pointer;
}
.form-wrap .cta[disabled]{opacity:.5;cursor:not-allowed}
.form-wrap a.skip{
  font:400 12.5px/1.5 var(--display);letter-spacing:.04em;
  color:var(--muted-l);text-decoration:none;
  border-bottom:1px dotted var(--muted-l);
}
.form-wrap a.skip:hover{color:var(--ink);border-color:var(--ink)}
.form-wrap .success{
  border-left:4px solid var(--touch);background:var(--touch-tint);
  padding:14px 18px;margin:14px 0 22px;border-radius:6px;
  font:400 14.5px/1.6 var(--display);letter-spacing:.01em;color:var(--ink);
}

@media (max-width:520px){
  .hero h1{font-size:28px}
  .hero .kicker{letter-spacing:.3em}
  .stat-row{gap:20px}
  .wall{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
}
