@font-face {
  font-family: "Manrope";
  src: url("./assets/fonts/manrope-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DM Sans";
  src: url("./assets/fonts/dm-sans-latin.woff2") format("woff2");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
:root {
  color-scheme: light;
  --sand: #fbf8f3;
  --paper: #fffdfa;
  --ink: #0b0e15;
  --ink-soft: #393d46;
  --muted: #62656c;
  --pool: #bfe7f5;
  --aqua: #62c4db;
  --deep: #1f6f86;
  --coral: #f7a8a3;
  --page-padding: clamp(24px, 4.1vw, 76px);
}
*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--sand); }
body { margin: 0; color: var(--ink); font-family: "DM Sans", sans-serif; -webkit-font-smoothing: antialiased; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--deep); outline-offset: 6px; }
::selection { background: var(--pool); color: var(--ink); }
svg { width: 24px; height: 24px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.scene { position: fixed; inset: 0; overflow: hidden; background: #c9e9f2; }
.scene__poster, .scene__video { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; object-position: center 56%; }
.scene__video { opacity: 0; transition: opacity 1200ms ease; }
.has-video .scene__video { opacity: 1; }
.scene__wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(251,248,243,.99) 0%, rgba(251,248,243,.96) 18%, rgba(251,248,243,.84) 32%, rgba(251,248,243,.28) 52%, rgba(251,248,243,0) 72%), linear-gradient(180deg, rgba(251,248,243,.28), transparent 22%, transparent 78%, rgba(251,248,243,.18)); }
.page-shell { position: relative; min-height: 100svh; display: flex; flex-direction: column; transition: filter 650ms ease, transform 850ms cubic-bezier(.22,1,.36,1), opacity 650ms ease; transform-origin: center; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 32px var(--page-padding); }
.wordmark { color: var(--ink); text-decoration: none; font-family: "Manrope", sans-serif; font-size: clamp(26px, 2.1vw, 34px); line-height: 1.3; letter-spacing: -.06em; white-space: nowrap; }
.wordmark span { font-weight: 400; }
.wordmark strong { font-weight: 800; }
.header-note { padding: 9px 0; color: var(--ink-soft); font-size: 12px; font-weight: 500; }
.hero { flex: 1; display: flex; align-items: center; padding: 20px var(--page-padding) 30px; }
.hero__content { width: min(600px, 52vw); padding-bottom: 8px; }
.eyebrow { margin: 0 0 28px; display: flex; align-items: center; gap: 10px; color: #4e6269; font-size: 10px; font-weight: 750; letter-spacing: .18em; line-height: 1.7; }
.status-dot { flex: 0 0 6px; width: 6px; height: 6px; background: var(--deep); border-radius: 50%; box-shadow: 0 0 0 5px rgb(98 196 219 / .13); }
h1, h2 { font-family: "Manrope", sans-serif; font-weight: 800; letter-spacing: -.065em; }
h1 { font-size: clamp(82px, 8.7vw, 138px); line-height: .98; margin: 0; }
.title-dot { color: var(--deep); }
.hero__description { font-size: clamp(19px, 1.65vw, 24px); font-weight: 400; line-height: 1.5; letter-spacing: -.02em; color: var(--ink-soft); margin: 28px 0 30px; }
.join-button { min-height: 56px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 30px; border: 1px solid var(--ink); border-radius: 14px; background: var(--ink); color: var(--paper); font-size: 14px; font-weight: 650; box-shadow: 0 8px 22px rgba(11,14,21,.08); transition: background 180ms ease, transform 300ms cubic-bezier(.22,1,.36,1), box-shadow 300ms ease; }
.join-button svg { width: 19px; height: 19px; transition: transform 300ms ease; }
.join-button:hover { transform: translateY(-2px); background: #20252d; box-shadow: 0 12px 28px rgba(11,14,21,.16); }
.join-button:hover svg { transform: translateX(3px); }
.join-button:active { transform: translateY(0) scale(.98); }
.hero__note { margin: 16px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.site-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px var(--page-padding) 27px; }
.footer-domain { color: var(--muted); font-size: 11px; letter-spacing: .01em; }
.footer-right { display: flex; gap: 18px; align-items: center; }
.footer-line { font-size: 11px; color: var(--ink-soft); }
.motion-button { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; padding: 0; color: var(--ink); border: 1px solid rgb(255 253 250 / .7); border-radius: 50%; background: rgb(255 253 250 / .63); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); transition: background 180ms ease; }
.motion-button:hover { background: rgb(255 253 250 / .92); }
.motion-button[hidden] { display: none; }
.motion-button svg { width: 17px; height: 17px; }
.play-icon { display: none; }
.motion-button.is-paused .play-icon { display: block; }
.motion-button.is-paused .pause-icon { display: none; }

/* The dialog has its own top-layer surface; the page recedes behind it. */
.waitlist-dialog { width: min(500px, calc(100vw - 36px)); max-height: calc(100svh - 36px); padding: 0; border: 0; margin: auto; overflow: visible; background: transparent; color: var(--ink); opacity: 0; transform: translateY(30px) scale(.94); filter: blur(12px); transition: opacity 450ms ease, transform 650ms cubic-bezier(.16,1,.3,1), filter 650ms ease; }
.waitlist-dialog.is-open { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
.waitlist-dialog::backdrop { background: rgb(31 51 58 / 0); backdrop-filter: blur(0); -webkit-backdrop-filter: blur(0); transition: background 650ms ease, backdrop-filter 650ms ease; }
.waitlist-dialog.is-open::backdrop { background: rgb(31 51 58 / .16); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.is-waitlist-open .page-shell { filter: blur(5px); transform: scale(.985); opacity: .64; }
body.is-waitlist-open { overflow: hidden; }
.glass-surface { position: relative; padding: 48px 38px 32px; overflow: hidden; border: 1px solid rgb(255 255 255 / .76); border-radius: 30px; background: linear-gradient(135deg, rgb(255 253 250 / .8), rgb(238 249 251 / .54)); backdrop-filter: blur(40px) saturate(130%); -webkit-backdrop-filter: blur(40px) saturate(130%); box-shadow: 0 32px 100px rgb(24 51 62 / .17), inset 0 1px 0 rgb(255 255 255 / .9), inset 0 -1px 0 rgb(255 255 255 / .42); }
.glass-surface::before { content: ""; pointer-events: none; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(ellipse at 5% 0%, rgb(255 255 255 / .62), transparent 55%); }
.glass-surface > * { position: relative; }
.close-button { position: absolute; top: 17px; right: 17px; width: 34px; height: 34px; padding: 0; display: grid; place-items: center; border: 1px solid rgb(255 255 255 / .7); border-radius: 50%; color: #566269; background: rgb(255 255 255 / .36); transition: background 160ms ease, transform 220ms ease; }
.close-button:hover { background: rgb(255 255 255 / .85); transform: rotate(90deg); }
.close-button svg { width: 17px; height: 17px; }
.dialog-eyebrow { margin: 0 0 24px; font-size: 9px; font-weight: 750; letter-spacing: .2em; color: var(--deep); }
h2 { margin: 0; font-size: clamp(42px, 5vw, 58px); line-height: 1.06; }
h2 span { color: var(--deep); }
#waitlist-description { margin: 20px 0 28px; color: #56616a; font-size: 15px; line-height: 1.6; }
.email-form { margin: 0; }
.email-field { display: flex; align-items: center; gap: 11px; min-height: 62px; padding: 7px 7px 7px 16px; background: rgb(255 253 250 / .64); border: 1px solid rgb(255 255 255 / .88); border-radius: 16px; box-shadow: inset 0 1px 4px rgb(54 83 90 / .025), 0 4px 12px rgb(29 54 61 / .03); transition: border-color 200ms ease, box-shadow 200ms ease; }
.email-field:focus-within { border-color: #8cbac8; box-shadow: 0 0 0 3px rgb(98 196 219 / .13); }
.email-icon { width: 19px; height: 19px; flex: 0 0 19px; color: #68818b; stroke-width: 1.4; }
.email-field input { min-width: 0; width: 100%; padding: 8px 0; border: 0; outline: none; background: transparent; border-radius: 0; color: var(--ink); font-size: 15px; caret-color: var(--deep); }
.email-field input::placeholder { color: #77858c; opacity: 1; }
.email-button { display: grid; place-items: center; width: 46px; height: 46px; flex: 0 0 46px; padding: 0; background: var(--ink); color: var(--paper); border: 0; border-radius: 11px; transition: transform 200ms ease, background 200ms ease; }
.email-button:hover { background: var(--deep); }
.email-button:active { transform: scale(.93); }
.email-button svg { width: 20px; height: 20px; }
.dialog-note { margin: 18px 0 0; font-size: 11px; line-height: 1.5; color: #69757b; }
.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; }
.noscript-note { position: fixed; bottom: 0; padding: 12px 24px; margin: 0; background: var(--paper); color: var(--ink); font-size: 13px; }

@media (min-width: 1600px) { .hero__content { padding-left: 3vw; } }
@media (max-width: 900px) {
  .page-shell { min-height: max(740px, 100svh); }
  .header-note { font-size: 10px; }
  .scene__poster, .scene__video { object-position: 57% 50%; }
  .scene__wash { background: linear-gradient(90deg, rgb(251 248 243 / .98), rgb(251 248 243 / .9) 28%, rgb(251 248 243 / .28) 65%, transparent); }
  h1 { font-size: clamp(82px, 11vw, 110px); }
}
@media (max-width: 600px) {
  .page-shell { min-height: max(720px, 100svh); }
  .site-header { padding-top: calc(23px + env(safe-area-inset-top)); padding-bottom: 18px; }
  .wordmark { font-size: 27px; }
  .header-note { display: none; }
  .scene__poster, .scene__video { object-position: 50% center; }
  .scene__wash { background: linear-gradient(180deg, rgb(251 248 243 / .97) 0%, rgb(251 248 243 / .89) 17%, rgb(251 248 243 / .7) 39%, rgb(251 248 243 / .15) 68%, rgb(251 248 243 / .27) 100%), linear-gradient(90deg, rgb(251 248 243 / .3), transparent); }
  .hero { align-items: flex-start; padding-top: 35px; padding-bottom: 184px; }
  .hero__content { width: 100%; padding-bottom: 0; }
  .eyebrow { font-size: 9px; margin-bottom: 23px; }
  h1 { font-size: clamp(81px, 21vw, 105px); line-height: .99; }
  .hero__description { font-size: 19px; margin: 24px 0; }
  .join-button { min-height: 54px; padding: 0 21px; gap: 28px; }
  .hero__note { font-size: 11px; max-width: 240px; }
  .site-footer { padding-top: 16px; padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
  .footer-line { display: none; }
  .glass-surface { padding: 42px 25px 29px; border-radius: 26px; }
  .waitlist-dialog { max-height: calc(100dvh - 30px); overflow-y: auto; border-radius: 26px; }
  h2 { font-size: 48px; }
  .email-field { padding-left: 13px; gap: 9px; }
  .email-field input { font-size: 16px; }
}
@media (max-height: 600px) and (min-width: 601px) {
  .page-shell { min-height: 600px; }
  .site-header { padding-top: 20px; padding-bottom: 14px; }
  .hero { padding-top: 12px; padding-bottom: 15px; }
  h1 { font-size: 82px; }
  .hero__description { margin: 20px 0; font-size: 19px; }
  .waitlist-dialog { overflow-y: auto; border-radius: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .is-waitlist-open .page-shell { transform: none; }
  .waitlist-dialog { transform: none; filter: none; }
}
