:root{
  --bg:#121212;
  --fg:#f0f0f0;
  --muted:rgba(240,240,240,.70);
  --line:rgba(240,240,240,.14);
  --edge:rgba(240,240,240,.18);
  --glass:rgba(18,18,18,.72);
  --glass2:rgba(18,18,18,.18);
}

*{box-sizing:border-box}

html,body{
  height:100%;
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

.wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px 16px;
}

.card{
  width:min(760px,100%);
  background:var(--glass);
  border:1px solid var(--edge);
  border-radius:18px;
  padding:36px 48px;
  box-shadow:0 18px 60px rgba(0,0,0,.55);
  backdrop-filter:blur(6px);
}

.header h1{
  font-family:"Playfair Display",serif;
  font-weight:600;
  letter-spacing:.06em;
  margin:0 0 8px;
  font-size:clamp(32px,4.2vw,46px);
}

.header h2{
  margin:0 0 18px;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  opacity:.72;
}

.blurb{
  max-width:58ch;
  line-height:1.6;
  margin:0 0 18px;
  font-size:16px;
}

.join{
  border-top:1px solid var(--line);
  padding-top:14px;
  margin-top:14px;
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  column-gap:18px;
  row-gap:12px;
}

.join-copy{
  max-width:60ch;
}

.status,.note{
  margin:0;
  line-height:1.35;
}

.status{
  font-size:14px;
}

.note{
  margin-top:4px;
  font-size:13px;
  color:var(--muted);
  text-wrap:pretty;
}

.join-form{
  margin:0;
}

.field{
  display:flex;
  align-items:center;
  gap:10px;
}

.field input{
  width:260px;
  height:36px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(240,240,240,.22);
  background:var(--glass2);
  color:var(--fg);
  font-size:14px;
  outline:none;
}

.field input:focus{
  border-color:rgba(240,240,240,.36);
}

.field button{
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid rgba(240,240,240,.22);
  background:var(--glass2);
  color:var(--fg);
  cursor:pointer;
}

.field button:hover{
  border-color:rgba(240,240,240,.36);
}

.footer{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  font-size:13px;
  opacity:.72;
}

.footer a{
  color:var(--fg);
  text-decoration:none;
  white-space:nowrap;
}

.footer a:hover{
  text-decoration:underline;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* mid-width: make the form feel intentional, not squeezed */
@media (max-width:860px){
  .card{
    padding:32px 28px;
  }
  .join{
    grid-template-columns: 1fr;
    align-items:start;
  }
  .field{
    width:100%;
  }
  .field input{
    width:min(520px, 100%);
  }
}

/* small: reduce dead space + keep everything tight */
@media (max-width:520px){
  .wrap{
    padding:18px 14px;
  }
  .card{
    padding:24px 18px;
  }
  .blurb{
    margin-bottom:16px;
  }
  .join{
    padding-top:12px;
    margin-top:12px;
  }
  .footer{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }
}
