:root{
  --ink:#14213D; --ink-soft:#4A5568; --kerb:#F3F5F8; --line:#D9DEE6; --white:#fff;
  --blue:#1673D9; --blue-deep:#0E4F99; --green:#12A150; --amber:#E8A317; --dusk:#1C2A44;
  --ease:cubic-bezier(.22,.8,.3,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--kerb);color:var(--ink);font-family:Figtree,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:18px;line-height:1.55}
a{color:var(--blue-deep)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}

header.top{position:sticky;top:0;z-index:5;background:rgba(243,245,248,.85);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;transition:padding .25s var(--ease)}
header.top.small .wrap{padding:10px 20px}
.brand{font-weight:800;font-size:22px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:10px}
.brand svg{width:28px;height:28px}
.area{font-size:15px;color:var(--ink-soft)}

.hero{padding:28px 0 8px;display:grid;gap:26px;align-items:center}
@media (min-width:860px){.hero{grid-template-columns:1fr 1fr;gap:48px;padding:56px 0 24px}}
.hero h1{font-size:clamp(36px,6.4vw,62px);line-height:1.02;letter-spacing:-.028em;font-weight:800;margin:0 0 16px;max-width:12ch}
.hero p.lede{font-size:clamp(19px,2.4vw,22px);margin:0 0 24px;max-width:34ch;color:var(--ink-soft)}
.street{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 24px 60px -24px rgba(20,33,61,.45)}
.cta{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;font-weight:700;padding:14px 22px;border-radius:12px;font-size:18px;border:0;cursor:pointer;transition:transform .15s var(--ease),background .15s}
.cta:hover{background:var(--blue-deep);transform:translateY(-1px)}
.cta:active{transform:translateY(0)}
.cta-note{display:block;margin-top:10px;font-size:15px;color:var(--ink-soft)}

section{padding:40px 0 8px}
@media (min-width:860px){section{padding:56px 0 8px}}
.two{display:grid;gap:28px}
@media (min-width:860px){.two{grid-template-columns:1fr 1fr;gap:56px}}
h2{font-size:clamp(24px,3vw,30px);letter-spacing:-.018em;margin:0 0 14px;font-weight:800}
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:14px}
@media (min-width:860px){.steps{grid-template-columns:repeat(3,1fr);gap:18px}}
.steps li{position:relative;padding:22px 20px 20px;border-radius:18px;background:#fff;border:1px solid var(--line);counter-increment:s;box-shadow:0 10px 30px -22px rgba(20,33,61,.35)}
.steps li::before{content:counter(s);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;font-size:18px;margin-bottom:12px}
.steps b{display:block;font-size:19px;margin-bottom:4px}
.stack{max-width:70ch}
.stack h2{margin-top:36px}
.stack h2:first-child{margin-top:0}
.promises{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.promises li{padding-left:30px;position:relative}
.promises li::before{content:"";position:absolute;left:0;top:9px;width:16px;height:16px;border-radius:50%;background:var(--green)}
.quiet{color:var(--ink-soft)}

/* beta form */
.beta{background:var(--dusk);color:#fff;border-radius:22px;padding:28px 22px;margin-top:48px}
@media (min-width:860px){.beta{padding:40px 44px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}}
.beta h2{color:#fff}
.beta p{color:#C7D0E0;margin:0 0 8px}
.form{display:grid;gap:12px}
.form label{display:grid;gap:6px;font-size:15px;font-weight:600;color:#C7D0E0}
.form input,.form select{font:inherit;padding:12px 14px;border-radius:10px;border:1px solid #3A4A6B;background:#22304D;color:#fff;width:100%}
.form input::placeholder{color:#7F8CA6}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .cta{width:100%;text-align:center}
.form .done{background:#12A150;color:#fff;border-radius:12px;padding:14px;font-weight:700}
.form .err{color:#FFB4A8;font-size:15px}
.seg{display:flex;background:#22304D;border:1px solid #3A4A6B;border-radius:10px;overflow:hidden}
.seg label{flex:1;display:block;text-align:center;padding:11px;cursor:pointer;font-weight:600;color:#C7D0E0}
.seg input{position:absolute;opacity:0;width:0;height:0}
.seg input:checked+span{display:block;margin:-11px;padding:11px;background:var(--blue);color:#fff;border-radius:8px}

footer{margin-top:40px;padding:26px 0 40px;border-top:1px solid var(--line);font-size:15px;color:var(--ink-soft)}
footer nav{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px}
footer a{color:var(--ink)}
.doc h1{font-size:clamp(30px,6vw,40px);letter-spacing:-.02em;margin:10px 0 4px}
.doc .updated{color:var(--ink-soft);margin:0 0 22px}
.doc h2{font-size:21px;margin:28px 0 8px}
.doc p{margin:0 0 12px;max-width:70ch}
.doc main{max-width:720px}

/* one orchestrated hero moment: the car leaves, the gap lights up, the alert arrives */
.car-leaving{transform-box:fill-box;transform-origin:12% 50%}
.car-arriving{transform-box:fill-box;transform-origin:88% 50%}
.car-arriving{opacity:0;transform:translate(-360px,52px)}
.gap,.gap-fill,.alert,.parked{opacity:0}
@media (prefers-reduced-motion:no-preference){
  .car-leaving{animation:leave 2.6s var(--ease) .6s forwards}
  .gap{animation:appear .5s ease 2.6s forwards, pulse 2.4s ease-in-out 3.2s 2, fadeout .5s ease 9s forwards}
  .gap-fill{animation:appear .5s ease 2.6s forwards, fadeout .5s ease 9s forwards}
  .alert{animation:rise .55s var(--ease) 3s forwards, fadeout .4s ease 9.2s forwards}
  .car-arriving{animation:arrive 3.6s var(--ease) 6s forwards}
  .parked{animation:rise .55s var(--ease) 9.7s forwards}
  .hero h1,.hero .lede,.hero .cta-wrap{animation:fadeup .7s var(--ease) both}
  .hero .lede{animation-delay:.1s}.hero .cta-wrap{animation-delay:.2s}
  @keyframes leave{0%{transform:translate(0,0) rotate(0);opacity:1}18%{transform:translate(-14px,0) rotate(0);opacity:1}48%{transform:translate(6px,10px) rotate(28deg);opacity:1}66%{transform:translate(70px,52px) rotate(8deg);opacity:1}76%{transform:translate(120px,56px) rotate(0);opacity:1}88%{opacity:1}100%{transform:translate(360px,56px) rotate(0);opacity:0}}
  @keyframes appear{to{opacity:1}}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
  @keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
  @keyframes pulse{0%,100%{opacity:.6}50%{opacity:1}}
  @keyframes fadeout{to{opacity:0}}
  @keyframes arrive{0%{opacity:0;transform:translate(-380px,56px) rotate(0)}6%{opacity:1}42%{transform:translate(70px,56px) rotate(0)}50%{transform:translate(70px,56px) rotate(0)}72%{transform:translate(30px,30px) rotate(-30deg)}88%{transform:translate(2px,4px) rotate(-6deg)}100%{opacity:1;transform:translate(0,0) rotate(0)}}
}
@media (prefers-reduced-motion:reduce){
  .car-leaving,.car-arriving,.parked{display:none}.gap,.gap-fill,.alert{opacity:1}
}
