/* Waitlist pop-up (_includes/waitlist.njk) and cookie banner (below). Loaded on every page; uses the shared
   design tokens that article.css and the landing shell both define (--ink, --orange*, --f-*, --space-*). */
.wl{width:min(480px,calc(100vw - 2 * var(--space-2)));max-height:calc(100vh - 2 * var(--space-2));overflow:auto;
  margin:auto;padding:var(--space-5) var(--space-4) var(--space-4);border:0;border-radius:var(--radius-photo);
  background:var(--white);color:var(--ink);box-shadow:0 24px 64px rgba(20,20,20,.22),0 2px 8px rgba(20,20,20,.08)}
.wl::backdrop{background:rgba(20,20,20,.48)}
.wl-x-form{position:absolute;top:var(--space-1);right:var(--space-1);margin:0}
.wl-x{width:40px;height:40px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);font:400 28px/40px var(--f-ui);cursor:pointer}
.wl-x:hover{background:var(--canvas);color:var(--ink)}
.wl-x:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.wl-h{font-family:var(--f-head);font-weight:600;font-size:var(--fs-feature);line-height:var(--lh-feature);margin:0 0 var(--space-1);padding-right:var(--space-4)}
.wl-h:focus{outline:none}
.wl-lede{font-family:var(--f-ui);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink-2);margin:0}
.wl-form{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-3)}
.wl-label{font-family:var(--f-ui);font-weight:600;font-size:var(--fs-small);line-height:var(--lh-small);color:var(--ink)}
.wl-input{width:100%;font-family:var(--f-ui);font-size:var(--fs-body);line-height:var(--lh-body);padding:12px var(--space-2);
  border:1px solid var(--line-2);border-radius:var(--radius-card);background:var(--white);color:var(--ink)}
.wl-input:focus{outline:3px solid var(--orange);outline-offset:0;border-color:var(--orange-deep)}
.wl-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.wl-ts:empty{display:none}
.wl-submit{align-self:stretch;margin-top:var(--space-1);font-family:var(--f-ui);font-weight:600;font-size:var(--fs-body);line-height:var(--lh-body);
  color:var(--on-orange);padding:12px 32px;border-radius:999px;border:0;cursor:pointer;
  background:linear-gradient(180deg,var(--orange-top) 0%,var(--orange) 55%,var(--orange-deep) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 2px rgba(184,82,18,.18)}
.wl-submit:hover{filter:saturate(1.08)}
.wl-submit:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.wl-submit:disabled{cursor:progress;filter:saturate(.6)}
.wl-status{font-family:var(--f-ui);font-size:var(--fs-small);line-height:var(--lh-small);color:var(--orange-dark);margin:0}
.wl-promise{font-family:var(--f-ui);font-size:var(--fs-small);line-height:var(--lh-small);color:var(--ink-2);margin:var(--space-1) 0 0}
.wl-promise a{color:var(--orange-text)}
.wl-done .wl-lede{margin-bottom:var(--space-1)}
@media (max-width:480px){.wl{padding:var(--space-5) var(--space-3) var(--space-3)}}

/* Cookie banner (_includes/consent.njk, assets/site/consent.js). Small card at the bottom, not modal;
   Accept and Decline look the same so neither is nudged. */
.consent{position:fixed;left:var(--space-2);right:var(--space-2);bottom:var(--space-2);z-index:50;
  max-width:440px;margin:0 auto;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-card);
  background:var(--white);color:var(--ink);box-shadow:0 8px 24px rgba(20,20,20,.14);
  display:flex;flex-direction:column;gap:var(--space-1)}
.consent[hidden]{display:none}
.consent-text{font-family:var(--f-ui);font-size:var(--fs-small);line-height:var(--lh-small);color:var(--ink-2);margin:0}
.consent-text a{color:var(--orange-text)}
.consent-btns{display:flex;gap:var(--space-1)}
.consent-btn{flex:1 1 0;font-family:var(--f-ui);font-weight:600;font-size:var(--fs-small);line-height:var(--lh-small);
  padding:8px var(--space-2);border:1px solid var(--line-2);border-radius:999px;background:var(--white);color:var(--ink);cursor:pointer}
.consent-btn:hover{background:var(--canvas)}
.consent-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
