@font-face {
  font-family:Bricolage;
  src:url('/assets/fonts/bricolage-grotesque-variable.woff2') format('woff2');
  font-weight:100 900;
  font-display:swap;
}

:root {
  color-scheme:light;
  --ws-paper:#fff8e8;
  --ws-ink:#26382f;
  --ws-subtle:#5a675e;
  --ws-rule:#d4d3bd;
  --ws-disc:#ffcc64;
  --ws-fg:#fff2d9;
  --ws-accent:#ffca69;
  --ws-muted:#a6b2b3;
  --ws-soft:#243840;
  --ws-line:#56666a;
  --ws-trust-case-a:#7edbc9;
  --ws-trust-ink-a:#203b37;
  --ws-trust-case-b:#ffab87;
  --ws-trust-ink-b:#3d2c29;
  --body-size:19px;
  --supporting-size:16px;
  --section-space:84px;
  --heading-gap:22px;
  --cream:var(--ws-ink);
  --amber:var(--ws-ink);
  --amber-half:color-mix(in srgb,var(--ws-ink) 65%,var(--ws-paper));
  --faint:var(--ws-rule);
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  background:var(--ws-paper);
  color:var(--ws-ink);
  font:400 var(--body-size)/1.5 Bricolage,sans-serif;
}

button,input {
  font:inherit;
  color:inherit;
}

button,a,input {
  -webkit-tap-highlight-color:transparent;
}

button,a {
  touch-action:manipulation;
}

button {
  cursor:pointer;
}

a {
  color:inherit;
  text-underline-offset:5px;
  text-decoration-thickness:1px;
}

button:disabled {
  cursor:default;
  opacity:.6;
}

button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex="-1"]:focus-visible {
  outline:3px solid var(--ws-ink);
  outline-offset:5px;
}

/* Anchor navigation moves focus here, not to a page-sized interactive control. */
main[tabindex="-1"]:focus {
  outline:none;
}

button:hover:not(:disabled),a:hover {
  filter:brightness(.9);
}

[hidden] {
  display:none!important;
}

h1,h2,h3,p,figure {
  margin:0;
}

h1,h2,h3 {
  font-weight:700;
  line-height:1.04;
  letter-spacing:-.045em;
}

h1 {
  font-size:clamp(64px,6.5vw,86px);
  margin:0 0 27px;
}

h2 {
  font-size:clamp(38px,4.5vw,54px);
  margin-bottom:var(--heading-gap);
}

h3 {
  font-size:38px;
  margin-bottom:20px;
}

p {
  color:var(--ws-subtle);
}

.wrap {
  max-width:1216px;
  padding:0 56px;
  margin:auto;
}

.header {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  padding-top:34px;
}

.header nav {
  display:flex;
  gap:30px;
  padding-top:18px;
  font-size:15px;
  font-weight:600;
}

.header nav a {
  text-decoration:none;
}

.header nav a:hover {
  text-decoration:underline;
}

.wordmark {
  width:max-content;
  flex-shrink:0;
}

.wordmark a {
  display:block;
  width:max-content;
  text-decoration:none;
  font-family:Newsreader,serif;
  letter-spacing:-.05em;
  line-height:.85;
}

.wordmark small {
  display:block;
  font-size:27px;
  font-weight:600;
}

.wordmark strong {
  display:block;
  font-size:48px;
  font-weight:600;
  margin-top:5px;
}

.wordmark-signal {
  position:relative;
  display:grid;
  grid-template-columns:repeat(15,1fr);
  aspect-ratio:15/1;
  width:100%;
  padding:0;
  margin-top:13px;
  border:0;
  background:none;
  color:var(--ws-accent);
}

.wordmark-signal i {
  height:100%;
  border-radius:99px;
  background:currentColor;
  animation:wordmark-signal-latch 1ms steps(1,start) both;
  animation-delay:var(--signal-latch-delay,0ms);
}

.wordmark-signal::after {
  content:'';
  position:absolute;
  inset:-4px 0 -30px;
}

.wordmark-signal i:nth-child(1) {
  grid-column:1/4;
}

.wordmark-signal i:nth-child(2) {
  grid-column:5/6;
}

.wordmark-signal i:nth-child(3) {
  grid-column:7/10;
}

.wordmark-signal i:nth-child(4) {
  grid-column:11/12;
}

.wordmark-signal i:nth-child(5) {
  grid-column:13/16;
}

@keyframes wordmark-signal-latch {
  from { opacity:.2; }
  to { opacity:1; }
}

.hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:36px;
  align-items:center;
  padding:26px 0 38px;
  min-height:610px;
}

.eyebrow {
  font:500 12px/1.5 'IBM Plex Mono',monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ws-subtle);
  margin-bottom:20px;
}

.lede {
  font-size:21px;
  max-width:400px;
  margin-bottom:28px;
}

.action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  border-radius:11px;
  background:var(--ws-ink);
  color:var(--ws-paper);
  padding:15px 22px;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
  border:0;
  min-height:50px;
}

.stage {
  position:relative;
  min-height:400px;
  display:flex;
  align-items:center;
  justify-content:center;
  isolation:isolate;
}

.disc {
  position:absolute;
  inset:26px -6px 28px;
  background:color-mix(in srgb,var(--ws-disc) 38%,var(--ws-paper));
  border-radius:48% 52% 43% 57%;
  transform:rotate(-8deg);
  z-index:-1;
}

.device {
  --button-a-start:0.147321428571;
  --button-a-span:0.125000000000;
  --button-b-start:0.758928571429;
  --button-b-span:0.125000000000;
  position:relative;
  width:256px;
  flex:none;
  background:var(--ws-accent);
  border:4px solid color-mix(in srgb,var(--ws-accent) 82%,var(--ws-ink));
  border-radius:46px;
  padding:8px;
}

.screen {
  aspect-ratio:368/448;
  border-radius:34px;
  overflow:hidden;
  background:#000;
}

.screen svg {
  display:block;
  width:100%;
  height:100%;
  font-family:Bricolage,sans-serif;
}

.screen [data-screen-pattern][role="button"] {
  cursor:pointer;
}

.screen [data-screen-pattern]:focus-visible {
  outline:none;
}

.screen [data-screen-pattern]:focus-visible .signal-hit {
  stroke:var(--ws-fg);
  stroke-width:2px;
}

.device::before,.device::after {
  content:'';
  position:absolute;
  right:-10px;
  width:6px;
  height:calc((100% - 16px) * var(--button-a-span));
  border-radius:0 4px 4px 0;
  background:color-mix(in srgb,var(--ws-accent) 72%,var(--ws-ink));
  top:calc(8px + (100% - 16px) * var(--button-a-start));
}

.device::after {
  top:calc(8px + (100% - 16px) * var(--button-b-start));
  height:calc((100% - 16px) * var(--button-b-span));
}

.stage .device {
  transform:rotate(7deg);
}

.palettes {
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:0;
}

.palettes button {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:9px;
  background:none;
  border:0;
  padding:12px 10px;
  min-width:60px;
  min-height:64px;
  font-size:13px;
  color:var(--ws-subtle);
  border-radius:8px;
}

.palettes button>span {
  width:23px;
  height:23px;
  background:var(--swatch);
  border-radius:50%;
}

.palettes button[aria-pressed="true"] {
  color:var(--ws-ink);
}

.palettes button[aria-pressed="true"]>span {
  box-shadow:0 0 0 3px var(--ws-paper),0 0 0 4px var(--ws-ink);
}

.trust {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px 70px;
  border-top:1px solid var(--ws-rule);
}

.trust-intro { max-width:460px; }
.trust-details {
  display:grid;
  align-self:start;
  align-content:start;
  grid-template-columns:1fr;
  gap:24px;
  list-style:none;
  padding:0;
  margin:0;
}
.trust-details h3 { font-size:22px; letter-spacing:-.02em; margin:0 0 8px; }
.trust-illustration {
  --trust-source-width:256px;
  --trust-scale:.4375;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:6px;
  position:relative;
  isolation:isolate;
  max-width:320px;
  margin:26px auto 0;
}
.trust-blob {
  position:absolute;
  inset:-12px 0;
  background:color-mix(in srgb,var(--ws-disc) 25%,var(--ws-paper));
  border-radius:44% 56% 51% 49% / 55% 44% 56% 45%;
  transform:rotate(-6deg);
  z-index:-1;
}
.trust-device-frame {
  flex:none;
  position:relative;
  width:calc(var(--trust-source-width) * var(--trust-scale));
  height:calc(((var(--trust-source-width) - 24px) * 448 / 368 + 24px) * var(--trust-scale));
}
.trust-device-frame--a { transform:rotate(-8deg); }
.trust-device-frame--b { transform:rotate(9deg); }
.device.trust-device { position:absolute; inset:0 auto auto 0; width:var(--trust-source-width); transform:scale(var(--trust-scale)); transform-origin:top left; }
.trust-device--a { --ws-accent:var(--ws-trust-case-a); --ws-ink:var(--ws-trust-ink-a); }
.trust-device--b { --ws-accent:var(--ws-trust-case-b); --ws-ink:var(--ws-trust-ink-b); }
/* Filled silhouettes preserve the mockup's detached crescents without
   browser-dependent hairlines from partially painted rounded borders. */
.trust-radio { display:block; width:44px; height:44px; fill:var(--ws-ink); flex:none; transform:rotate(-90deg); }
.story-reference { font-size:var(--supporting-size); margin:16px 0 0; }

.section {
  padding:var(--section-space) 0;
  border-bottom:1px solid var(--ws-rule);
  scroll-margin-top:20px;
}

.section-intro {
  max-width:600px;
}

.section-intro>p:last-child {
  max-width:500px;
}

.story-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:start;
}

.scene-buttons {
  display:flex;
  order:1;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
}

.scene-buttons button {
  padding:11px 16px;
  border:1px solid var(--ws-rule);
  background:none;
  border-radius:24px;
  min-height:44px;
  font-size:15px;
}

.scene-buttons button[aria-pressed="true"] {
  background:var(--ws-ink);
  color:var(--ws-paper);
  border-color:var(--ws-ink);
}

.story-description {
  max-width:420px;
  margin-top:35px;
}

.story-description h3 {
  font-size:32px;
}

.story-replay {
  order:2;
  min-width:44px;
  min-height:44px;
  padding:8px 4px;
  border:0;
  background:none;
  color:var(--ws-subtle);
  font-size:var(--supporting-size);
  text-decoration:underline;
  text-underline-offset:5px;
  visibility:hidden;
}

.story-replay[data-ready="true"] { visibility:visible; }

.story-device-stage {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  justify-content:center;
  align-items:center;
}

.story-device {
  width:275px;
  transform:none;
}

.waitlist {
  margin:0;
  border:0;
}

.waitlist-form {
  display:flex;
  align-items:baseline;
  gap:15px;
  border-bottom:2px solid var(--ws-ink);
  padding-bottom:10px;
}

.waitlist-form:focus-within {
  border-color:var(--ws-ink);
}

.waitlist-form input {
  width:100%;
  min-width:0;
  border:0;
  background:none;
  outline:none;
  padding:10px 0;
  font-size:23px;
}

.waitlist-form input::placeholder {
  color:var(--ws-subtle);
  opacity:1;
}

.waitlist-form input:focus-visible {
  outline:none;
}

.waitlist-form:has(input:focus-visible) {
  outline:2px solid var(--ws-ink);
  outline-offset:8px;
  border-radius:4px;
}

.waitlist-form button {
  flex-shrink:0;
  min-height:44px;
  padding:10px 6px;
  background:none;
  border:0;
  font-size:16px;
  font-weight:650;
}

.waitlist-button__narrow {
  display:none;
}

.waitlist-status:empty {
  display:none;
}

.waitlist-status {
  color:var(--ws-ink);
  font-size:var(--supporting-size);
  margin-top:20px;
}

.waitlist-terms {
  margin-top:20px;
}

.waitlist-success p {
  max-width:740px;
}

.waitlist-address {
  color:var(--ws-ink);
  overflow-wrap:anywhere;
}

.local-note {
  font:11px/1.5 'IBM Plex Mono',monospace;
  margin-top:22px;
}

.turnstile-challenge {
  width:100%;
  height:0;
  overflow:hidden;
}

.turnstile-challenge[data-interactive] {
  height:auto;
  overflow:visible;
  margin-top:20px;
}

footer {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--ws-rule);
  padding:28px 0 38px;
  font-size:13px;
  color:var(--ws-subtle);
}

footer a {
  text-decoration:none;
}

.skip-link {
  position:fixed;
  top:10px;
  left:10px;
  transform:translateY(-200%);
  z-index:10;
  background:var(--ws-ink);
  color:var(--ws-paper);
  padding:14px;
}

.skip-link:focus {
  transform:none;
}

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

@media(max-width:1000px) {
  .wrap {
    padding-inline:32px;
  }
  .hero {
    gap:25px;
  }
  .header nav {
    gap:20px;
  }
  h1 {
    font-size:66px;
  }
  .device {
    width:235px;
  }
  .trust-illustration { --trust-source-width:235px; }
  .story-grid {
    gap:30px;
  }
  .story-device {
    width:250px;
  }
}

@media(max-width:700px) {
  :root {
    --body-size:18px;
    --section-space:58px;
  }
  .wrap {
    padding-inline:24px;
  }
  .header {
    padding-top:27px;
  }
  .wordmark small {
    font-size:21px;
  }
  .wordmark strong {
    font-size:36px;
  }
  .wordmark-signal {
    margin-top:10px;
  }
  .header nav {
    gap:16px;
    padding-top:9px;
    font-size:13px;
    flex-wrap:wrap;
    justify-content:flex-end;
    max-width:170px;
  }
  .header nav a {
    padding-block:8px;
  }
  .hero {
    grid-template-columns:1fr;
    padding-top:55px;
    gap:5px;
    min-height:0;
    padding-bottom:25px;
  }
  h1 {
    font-size:clamp(54px,10.3vw,72px);
    letter-spacing:-.05em;
  }
  .eyebrow {
    font-size:10px;
  }
  .lede {
    font-size:20px;
  }
  .hero-copy {
    max-width:480px;
  }
  .stage {
    min-height:370px;
    margin-top:20px;
  }
  .stage .device {
    width:225px;
    transform:rotate(5deg);
  }
  .trust-illustration {
    --trust-source-width:225px;
    margin-block:28px 12px;
  }
  .disc {
    inset:20px 18px 22px;
  }
  .palettes {
    margin-top:0;
    gap:10px;
  }
  .trust {
    grid-template-columns:1fr;
    gap:28px;
  }
  .trust-intro { max-width:none; }
  .trust-intro>h2, .trust-intro>p { max-width:460px; }
  .trust-details { grid-template-columns:1fr 1fr; gap:24px; }
  h3 {
    font-size:32px;
  }
  .story-grid {
    grid-template-columns:1fr;
    gap:10px;
  }
  .story-content>.section-intro {
    grid-row:1;
  }
  .scene-buttons {
    order:-1;
    margin-bottom:8px;
    gap:6px;
  }
  .story-content {
    display:contents;
  }
  .scene-buttons button {
    font-size:14px;
    padding-inline:14px;
  }
  .story-description {
    grid-row:3;
    margin-top:20px;
  }
  .story-description h3 {
    font-size:28px;
  }
  .story-reference { grid-row:4; margin-top:4px; }
  .story-device-stage {
    grid-row:2;
    margin-top:20px;
  }
  .story-device {
    width:250px;
  }
  .waitlist-form input {
    font-size:21px;
  }
  .waitlist-button__wide {
    display:none;
  }
  .waitlist-button__narrow {
    display:inline;
    font-size:26px;
  }
  .waitlist-form button {
    padding-inline:12px;
  }
  .waitlist-form button:has([data-waitlist-pending-label]:not([hidden])) {
    font-size:13px;
  }
  .local-note {
    font-size:10px;
  }
  footer {
    font-size:12px;
    gap:15px;
  }
  footer span {
    margin-left:auto;
  }
  footer>a:last-child {
    width:100%;
  }
}

@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}
