/* design-system/css/prelaunch.css
   Pre-launch chrome: the greyed app links, the nav countdown chip, and the
   waitlist modal. Every rule is scoped under .prelaunch on <html>, which
   design-system/js/prelaunch.js adds only while its `active` flag is true.
   Flip that flag and none of this applies. Edit the flag, not these rules. */

/* ---- Locked app links -------------------------------------------------- */
/* prelaunch.js strips the href, so these are inert anchors. Styling only. */
.prelaunch a.is-locked {
  opacity: 0.42;
  cursor: not-allowed;
  filter: grayscale(1);
  pointer-events: none;
}
/* The nav pills keep their shape so the bar does not reflow when locked. */
.prelaunch .nav-login.is-locked,
.prelaunch .nav-cta.is-locked { pointer-events: auto; }

/* ---- Countdown banner -------------------------------------------------- */
/* Sits above the nav and pushes it down. Deliberately NOT sticky: it scrolls
   away and the nav then sticks to the top by itself, which is the conventional
   behaviour and keeps the 78px sticky offset the smooth-scroll assumes right.
   Charcoal + gold, so it costs no colour beyond the page's existing gold. */
.pl-bar { background: var(--charcoal); color: rgba(255,255,255,0.88); }
.pl-bar[hidden] { display: none; }
.pl-in {
  width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 32px;
  min-height: 44px; display: flex; align-items: center; justify-content: center;
  gap: 12px; flex-wrap: wrap; font-size: 13.5px; line-height: 1.4;
}
.pl-ic { flex-shrink: 0; display: flex; color: var(--gold); }
.pl-ic svg { width: 17px; height: 17px; fill: currentColor; }
.pl-t { font-weight: 600; }
.pl-t b { color: var(--gold); font-weight: 800; font-variant-numeric: tabular-nums; }

.pl-cta {
  border: none; background: none; padding: 0; cursor: pointer;
  font-family: inherit; font-size: 13.5px; font-weight: 800;
  color: #fff; text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: var(--gold); text-decoration-thickness: 2px;
  transition: color 0.14s;
}
.pl-cta:hover { color: var(--gold); }
.pl-cta:focus-visible { outline: 2.5px solid var(--gold); outline-offset: 3px; border-radius: 3px; }

/* ---- Waitlist modal ---------------------------------------------------- */
.wl-modal {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center; padding: 24px;
  background: rgba(26,28,32,0.55); backdrop-filter: blur(4px);
}
.wl-modal[hidden] { display: none; }
.wl-card {
  width: 100%; max-width: 460px; background: #fff;
  border-radius: 22px; box-shadow: var(--shadow-lg);
  padding: 34px 32px 26px; position: relative;
}
.wl-x {
  position: absolute; top: 14px; right: 14px;
  width: 32px; height: 32px; border-radius: 50%;
  border: none; background: var(--ink-050); color: var(--slate);
  font-size: 18px; line-height: 1; cursor: pointer;
  transition: background 0.14s, color 0.14s;
}
.wl-x:hover { background: var(--ink-100); color: var(--charcoal); }
.wl-x:focus-visible { outline: 2.5px solid var(--gold-600); outline-offset: 2px; }

.wl-ic {
  width: 44px; height: 44px; border-radius: 13px; margin-bottom: 16px;
  background: var(--charcoal); color: var(--gold);
  display: flex; align-items: center; justify-content: center;
}
.wl-ic svg { width: 24px; height: 24px; fill: currentColor; }

.wl-card h2 {
  font-family: var(--font-display); font-weight: 800; letter-spacing: -0.015em;
  font-size: 24px; line-height: 1.15; color: var(--charcoal);
}
.wl-card > p { font-size: 14.5px; line-height: 1.55; color: var(--slate); margin-top: 10px; }

.wl-card form { display: flex; gap: 9px; margin-top: 20px; flex-wrap: wrap; }
.wl-card input[type=email] {
  flex: 1; min-width: 180px; height: 46px;
  border-radius: 12px; border: 1.5px solid var(--ink-100); background: #fff;
  padding: 0 14px; font-family: inherit; font-size: 15px; font-weight: 600;
  color: var(--charcoal); outline: none;
  transition: border-color 0.13s, box-shadow 0.13s;
}
.wl-card input[type=email]:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-100); }
.wl-card form .btn { height: 46px; }

.wl-legal { font-size: 12px; line-height: 1.5; color: var(--coolgrey); margin-top: 14px; }
.wl-legal a { color: var(--gold-600); font-weight: 700; }
.wl-done { margin-top: 18px; font-size: 15px; font-weight: 800; color: var(--teal-700); }

/* Honeypot: reachable in the DOM for Netlify, never visible to a human. */
.wl-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 780px) {
  /* Let the sentence and the link stack rather than squeezing; the banner is
     allowed to be two lines on a phone. */
  .pl-in { padding: 8px 20px; font-size: 12.5px; gap: 6px 10px; }
  .pl-cta { font-size: 12.5px; }
  .wl-card { padding: 30px 22px 22px; }
  .wl-card form .btn { width: 100%; }
}
