﻿:root { --cream:#f7f6f2; --ink:#111; --ink-2:#555; --ink-3:#8a8a8a; --green:#7fae8a; --blue:#8aa6d6; --tan:#d9c49a; --red:#e59a9a; }
* { box-sizing:border-box; margin:0; padding:0; }
html,body { background:var(--cream); color:var(--ink); font-family:Inter,sans-serif; font-weight:300; }
a { color:inherit; text-decoration:none; }
canvas#stage { position:fixed; inset:0; width:100vw; height:100vh; z-index:0; }
#vignette { position:fixed; inset:0; z-index:1; pointer-events:none; background:radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.16) 100%); }
#grain { position:fixed; inset:-50%; z-index:1; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(6) infinite; will-change:transform; }
@keyframes grain { 0%{transform:translate(0,0)} 50%{transform:translate(-5%,3%)} 100%{transform:translate(3%,-4%)} }
nav { position:fixed; top:0; left:0; right:0; z-index:5; display:flex; justify-content:space-between; align-items:center;
      padding:20px 6vw; background:rgba(247,246,242,.96); border-bottom:1px solid rgba(0,0,0,.06); }
nav .brand { font-family:'JetBrains Mono',monospace; letter-spacing:.3em; font-size:13px; font-weight:500; }
nav .links { display:flex; gap:32px; align-items:center; font-size:15px; color:var(--ink-2); }
nav .links a:hover, nav .links a.on { color:var(--ink); }
nav .pill { border:1px solid rgba(0,0,0,.15); border-radius:999px; padding:9px 18px; color:var(--ink); font-size:14px; }
.mono { font-family:'JetBrains Mono',monospace; letter-spacing:.28em; font-size:12px; color:var(--ink-3); text-transform:uppercase; }
main { position:relative; z-index:2; }
section { min-height:160vh; display:flex; align-items:center; padding:0 7vw; position:relative; pointer-events:none; }
section.right { justify-content:flex-end; }
section.center { justify-content:center; text-align:center; }
section.flow { min-height:auto; padding:18vh 7vw; }
.copy { max-width:500px; background:rgba(247,246,242,.9); /* no backdrop blur: re-blurring the live 3D every frame drops frames */ padding:30px 32px; border-radius:24px; pointer-events:auto; }
.center .copy { max-width:780px; }
.wide .copy { max-width:1080px; width:100%; }
.hero-sec { min-height:100vh; align-items:flex-start; padding-top:21vh; }
.hero-sec .copy { background:none; backdrop-filter:none; }
h1 { font-weight:200; font-size:clamp(46px,6.4vw,100px); letter-spacing:-.04em; line-height:1.0; margin:22px 0 24px; }
h2 { font-weight:200; font-size:clamp(36px,4.2vw,62px); letter-spacing:-.03em; line-height:1.05; margin:16px 0 18px; }
h3 { font-weight:400; font-size:19px; letter-spacing:-.01em; margin-bottom:8px; }
p.lead { font-size:18px; line-height:1.62; color:var(--ink-2); }
ul.points { list-style:none; margin-top:22px; display:grid; gap:12px; text-align:left; }
ul.points li { font-size:15.5px; line-height:1.5; color:var(--ink-2); padding-left:22px; position:relative; }
ul.points li::before { content:''; position:absolute; left:0; top:8px; width:8px; height:8px; border-radius:50%; background:var(--dot, var(--ink)); }
.btns { display:flex; gap:12px; justify-content:center; margin-top:34px; flex-wrap:wrap; }
.copy:not(.c) .btns { justify-content:flex-start; }
.btn { display:inline-block; background:var(--ink); color:#fff; border-radius:999px; padding:15px 32px; font-weight:500; font-size:15px; }
.btn.ghost { background:transparent; color:var(--ink); border:1px solid rgba(0,0,0,.18); }
.fine { margin-top:18px; font-size:13px; color:var(--ink-3); line-height:1.6; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px; text-align:left; }
.grid.two { grid-template-columns:repeat(2,1fr); }
.tile { background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:18px; padding:24px; }
.tile p { font-size:14.5px; line-height:1.6; color:var(--ink-2); }
.tile.dark { background:#111; color:#fff; border-color:#111; }
.tile.dark p, .tile.dark li { color:#bbb; }
.tile .amt { font-size:44px; font-weight:200; letter-spacing:-.03em; margin:10px 0 6px; }
.tile .amt span { font-size:14px; color:var(--ink-3); }
.tile ul.points li { font-size:14px; }
.tile .btn { margin-top:22px; padding:12px 24px; font-size:14px; }
.tile.dark .btn { background:#fff; color:#111; }
.badge { display:inline-block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; border-radius:999px; padding:5px 10px; background:#fff; color:#111; margin-left:8px; vertical-align:middle; font-family:'JetBrains Mono',monospace; }
.stat { font-size:52px; font-weight:200; letter-spacing:-.03em; }
details { border-top:1px solid rgba(0,0,0,.1); padding:20px 0; text-align:left; }
details summary { cursor:pointer; font-size:17px; font-weight:400; list-style:none; }
details p { margin-top:12px; font-size:15.5px; line-height:1.6; color:var(--ink-2); }
footer { position:relative; z-index:2; background:var(--cream); border-top:1px solid rgba(0,0,0,.08); padding:36px 7vw 44px; }
footer .row { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; font-size:14px; color:var(--ink-2); }
footer .row div { display:flex; gap:26px; }
footer .disc { margin-top:20px; font-size:12.5px; line-height:1.6; color:var(--ink-3); max-width:900px; }
#loader { position:fixed; inset:0; z-index:9; background:var(--cream); display:flex; align-items:center; justify-content:center; transition:opacity .8s; }
#loader span { font-family:'JetBrains Mono',monospace; letter-spacing:.4em; font-size:13px; }
.fade { opacity:0; transform:translateY(40px); }
html.lenis, html.lenis body { height:auto; } .lenis.lenis-smooth { scroll-behavior:auto !important; } /* smooth wheel scrolling (smooth.js) */
a:focus-visible, summary:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media (max-width:900px){ .grid, .grid.two { grid-template-columns:1fr; } }
/* Waitlist form */
.waitlist-form { margin-top:30px; }
.wl-row { display:flex; gap:10px; align-items:center; }
.wl-row input[type=email] { flex:1; min-width:0; padding:14px 22px; border:1px solid rgba(0,0,0,.16); border-radius:999px; font-family:Inter,sans-serif; font-size:15px; font-weight:300; background:rgba(255,255,255,.8); color:var(--ink); }
.wl-row input[type=email]:focus { outline:2px solid var(--ink); outline-offset:2px; }
.wl-row input::placeholder { color:var(--ink-3); }
.wl-thanks { display:none; margin-top:14px; font-size:16px; font-weight:400; color:var(--ink); }
.wl-counters { display:flex; gap:44px; justify-content:center; margin-top:44px; padding-top:36px; border-top:1px solid rgba(0,0,0,.08); }
.wl-counter { text-align:center; }
.wl-counter .stat { font-size:52px; font-weight:200; letter-spacing:-.03em; display:block; }
/* App screenshot grid */
.app-shots { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px; }
.app-shots img { width:100%; border-radius:18px; border:1px solid rgba(0,0,0,.07); display:block; }
/* Roadmap columns */
.roadmap-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px; }
.roadmap-col { background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:18px; padding:24px; }
.roadmap-col h3 { font-size:14px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; font-family:'JetBrains Mono',monospace; margin-bottom:16px; color:var(--ink-3); }
.roadmap-col ul { list-style:none; display:grid; gap:10px; }
.roadmap-col ul li { font-size:14.5px; line-height:1.5; color:var(--ink-2); padding-left:20px; position:relative; }
.roadmap-col ul li::before { content:''; position:absolute; left:0; top:7px; width:7px; height:7px; border-radius:50%; background:var(--dot, var(--ink-3)); }

@media (max-width:760px){
  /* phones: plain scrolling page, each section leads with a still of its 3D scene (stills.js) */
  nav { position:sticky; padding:14px 20px; align-items:flex-start; gap:12px; }
  nav .brand { padding-top:10px; }
  nav .links { flex-wrap:wrap; justify-content:flex-end; gap:8px 16px; font-size:14px; }
  nav .pill { padding:8px 16px; }
  canvas#stage, #vignette, #grain { display:none; }
  main { padding-top:0; }
  section, section.flow, .hero-sec { display:block; min-height:0; padding:44px 20px 52px; text-align:left; pointer-events:auto; }
  section.center { text-align:center; }
  section + section { border-top:1px solid rgba(0,0,0,.07); }
  .copy, .center .copy, .wide .copy, .hero-sec .copy { max-width:none; width:auto; background:none; backdrop-filter:none; padding:0; border-radius:0; }
  .hero-sec { padding-top:28px; }
  img.shot { display:block; width:calc(100% + 40px); max-width:none; height:auto; margin:0 -20px 32px; } /* full-bleed */
  section .copy { transition:none; }
  .fade { opacity:1 !important; transform:none !important; }
  h1 { font-size:42px; margin:14px 0 16px; } h2 { font-size:32px; margin:10px 0 14px; }
  p.lead { font-size:16.5px; line-height:1.6; }
  .btns { justify-content:flex-start; margin-top:26px; } section.center .btns { justify-content:center; }
  .btn { padding:14px 26px; }
  .grid, .grid.two, .prices { grid-template-columns:1fr; }
  details summary { font-size:16px; }
  footer { padding:32px 20px 40px; } footer .row { flex-direction:column; align-items:flex-start; } footer .row div { flex-wrap:wrap; gap:14px 22px; }
  .wl-row { flex-direction:column; align-items:stretch; }
  .wl-counters { gap:24px; }
  .app-shots, .roadmap-grid { grid-template-columns:1fr; }
}