:root{
    --ink:        #171B23;
    --ink-raise:  #1E2430;
    --ink-line:   #2C3340;
    --paper:      #ECEFF4;
    --muted:      #8D97A8;
    --blue:       #427AE8;
    --blue-strong:#3466C9;
    --blue-link:  #7FA8EF;
    --green:      #4BB07A;
  
    --gutter: 24px;
    --maxw: 760px;
  }
  
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  
  body{
    margin:0;
    background: var(--ink);
    color: var(--paper);
    font-family: 'Archivo', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-size: 17px;
    line-height: 1.55;
    font-variation-settings: 'wdth' 100, 'wght' 400;
    -webkit-font-smoothing: antialiased;
  }
  
  .wrap{ width:100%; max-width: var(--maxw); margin:0 auto; padding-inline: var(--gutter); }
  
  a{ color: var(--blue-link); }
  a:focus-visible, button:focus-visible, input:focus-visible, .seg input:focus-visible + label{
    outline: 2px solid var(--blue-link);
    outline-offset: 3px;
    border-radius: 4px;
  }
  
  /* ---------- masthead ---------- */
  .masthead{ padding-block: 30px 0; }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand img{ width:56px; height:56px; display:block; }
  .brand .name{
    font-variation-settings:'wdth' 108,'wght' 700;
    font-size: 1.24rem; letter-spacing:-0.012em;
  }
  
  /* ---------- hero ---------- */
  /* padding-block, not the `padding` shorthand: the shorthand would zero the
     inline padding this element inherits from .wrap. */
  .hero{ padding-block: 86px 0; }
  
  h1{
    margin: 0 0 24px;
    font-size: clamp(2.7rem, 8vw, 4rem);
    font-variation-settings:'wdth' 113,'wght' 700;
    line-height: 1.0;
    letter-spacing: -0.028em;
  }
  
  .lede{
    margin: 0 0 40px;
    font-size: 1.18rem;
    color: var(--muted);
    max-width: 48ch;
  }
  .lede strong{ color: var(--paper); font-variation-settings:'wdth' 100,'wght' 600; }
  
  /* ---------- form ---------- */
  form{ max-width: 470px; }
  .seg{ display:flex; gap:8px; margin-bottom:12px; }
  .seg input{ position:absolute; opacity:0; width:1px; height:1px; }
  .seg label{
    flex:1; text-align:center; cursor:pointer;
    padding: 9px 10px;
    border:1px solid var(--ink-line);
    border-radius: 7px;
    color: var(--muted);
    font-size: .93rem;
    font-variation-settings:'wdth' 100,'wght' 500;
    transition: color .12s, border-color .12s, background-color .12s;
  }
  .seg input:checked + label{
    color: var(--paper);
    border-color: var(--blue);
    background: rgba(66,122,232,.13);
  }
  
  .row{ display:flex; gap:8px; }
  input[type=email]{
    flex:1; min-width:0;
    padding: 13px 14px;
    background: var(--ink-raise);
    border:1px solid var(--ink-line);
    border-radius:7px;
    color: var(--paper);
    font: inherit;
    font-size: 1rem;
  }
  input[type=email]::placeholder{ color:#6C7686; }
  
  button[type=submit]{
    padding: 13px 20px;
    background: var(--blue-strong);
    color:#fff;
    border:0; border-radius:7px;
    font: inherit; font-size: 1rem;
    font-variation-settings:'wdth' 100,'wght' 600;
    cursor:pointer;
    transition: background-color .12s;
  }
  button[type=submit]:hover{ background:#2D59B0; }
  button[type=submit][disabled]{ opacity:.6; cursor:default; }
  
  .fineprint{ margin: 12px 0 0; font-size:.86rem; color:var(--muted); max-width:44ch; }
  .formnote{ margin:12px 0 0; font-size:.95rem; min-height:1.4em; }
  .formnote.ok{ color: var(--green); }
  .formnote.bad{ color:#E8795F; }
  .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  
  /* ---------- the rule ---------- */
  .rule{
    margin: 72px 0 0;
    padding-left: 20px;
    border-left: 3px solid var(--blue);
    color: var(--muted);
    max-width: 56ch;
    font-size: 1rem;
  }
  .rule strong{
    color: var(--paper);
    font-variation-settings:'wdth' 104,'wght' 650;
  }
  
  /* ---------- footer ---------- */
  footer{
    margin-top: 96px;
    padding-block: 40px 60px;
    border-top:1px solid var(--ink-line);
    color:var(--muted);
    font-size:.92rem;
  }
  footer p{ margin:0 0 5px; }
  
  /* ---------- responsive ---------- */
  @media (max-width: 760px){
    .hero{ padding-block: 54px 0; }
    .rule{ margin-top: 56px; }
    footer{ margin-top: 72px; }
  }
  @media (max-width: 460px){
    .row{ flex-direction: column; }
    button[type=submit]{ width:100%; }
  }