@font-face{font-family:Fraunces;src:url('assets/fraunces.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{color-scheme:light;--paper:#f7f3eb;--ink:#30272b;--muted:#665b5e;--plum:#74465f;--sage:#405e51;--wash:#e7dce2;--sagewash:#dfe5da;--line:#d4cac9;--button:#503548;--button-text:#fff9f2}
:root[data-theme=dark]{color-scheme:dark;--paper:#211d20;--ink:#f6efe5;--muted:#c4b9bd;--plum:#d4a6bf;--sage:#aec9b6;--wash:#382b35;--sagewash:#2b3831;--line:#51434b;--button:#d4a6bf;--button-text:#261d23}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#211d20;--ink:#f6efe5;--muted:#c4b9bd;--plum:#d4a6bf;--sage:#aec9b6;--wash:#382b35;--sagewash:#2b3831;--line:#51434b;--button:#d4a6bf;--button-text:#261d23}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{text-decoration:underline}button,select{font:inherit}a,button,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--plum);outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3,.wordmark{font-family:Fraunces,Georgia,serif;font-weight:500;font-optical-sizing:auto;line-height:1.03;letter-spacing:-.055em}h1{font-size:clamp(72px,7.8vw,118px)}h2{font-size:clamp(56px,6.4vw,94px)}h1 span,h2 span{color:var(--plum)}h3{font-size:30px;letter-spacing:-.035em}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.header{display:flex;justify-content:space-between;align-items:center;min-height:112px;gap:24px}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none!important}.brand img{border-radius:9px}.wordmark{font-size:30px;letter-spacing:-.01em;font-weight:600}.dot{color:var(--plum)}nav{display:flex;align-items:center;gap:32px}nav a{font-size:13px;text-decoration:none;padding-block:12px}.nav-cta{border-bottom:1px solid var(--ink)}.chapter{position:relative;isolation:isolate;overflow:hidden}.hero-grid{min-height:785px;display:grid;grid-template-columns:1.25fr 1fr;gap:50px;align-items:center;padding-block:45px 85px}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin-bottom:34px;color:var(--plum)}.intro{font-size:23px;line-height:1.45;margin-top:30px;letter-spacing:-.025em}.description{max-width:355px;color:var(--muted);margin-top:20px;font-size:15px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:16px 24px;border-radius:4px;background:var(--button);color:var(--button-text);font-size:13px;font-weight:600;text-decoration:none;margin-top:30px;min-height:52px}.button:hover{filter:brightness(1.12);text-decoration:none}.text-link{display:block;width:fit-content;font-size:12px;margin-top:24px}.text-link span{margin-left:20px}.device-figure{justify-self:center;position:relative;width:286px;z-index:1}.phone{position:relative;border-radius:46px;padding:8px;background:#141314;border:2px solid #82797d;box-shadow:inset 0 0 0 2px #353035,0 25px 45px -22px #27132166,0 5px 9px #27132126}.phone img{display:block;width:100%;height:auto;border-radius:36px;background:#1c1917}.phone:before,.phone:after,.buttons:before,.buttons:after{content:'';position:absolute;background:#675f64;width:3px;border-radius:2px;left:-4px}.phone:before{height:21px;top:81px}.phone:after{height:39px;top:118px}.buttons:before{height:39px;top:167px}.buttons:after{height:59px;top:138px;left:auto;right:-4px}figcaption{font-size:10px;letter-spacing:.04em;color:var(--muted);text-align:center;margin-top:24px}.hero .device-figure{margin-left:40px;transform:translateY(24px)}.chapter-bottom{display:flex;justify-content:space-between;padding-bottom:28px;font-size:10px;letter-spacing:.08em;color:var(--muted)}.chapter-bottom span:last-child{font-size:9px;letter-spacing:.14em}.geometry{position:absolute;z-index:-1;pointer-events:none;animation:drift 10s ease-in-out -5s infinite alternate}.geometry i,.geometry b{display:block;position:absolute}.hero-geometry{width:800px;height:800px;right:-210px;top:40px}.hero-geometry i{height:800px;width:400px;right:0;background:var(--wash);border-radius:0 500px 500px 0}.hero-geometry b{height:490px;width:490px;border-radius:50%;background:var(--wash);opacity:.7;left:50px;top:160px}.split{display:grid;grid-template-columns:1fr 1fr;gap:140px;align-items:center;padding-block:125px}.kit-section{border-top:1px solid var(--line)}.section-copy{max-width:470px}.section-copy>p:not(.eyebrow):not(.intro){max-width:340px;color:var(--muted);margin-top:24px;font-size:15px}.section-copy .small-note{font-size:12px!important;border-top:1px solid var(--line);padding-top:20px;margin-top:32px!important}.kit-geometry{height:750px;width:650px;left:-180px;bottom:-150px}.kit-geometry i{inset:0;background:var(--sagewash);border-radius:350px 350px 0 0}.kit-geometry b{width:220px;height:220px;background:var(--paper);border-radius:50%;left:225px;top:200px}.list-section{border-top:1px solid var(--line)}.list-section h2 span{color:var(--sage)}.list-geometry{width:760px;height:760px;right:-240px;top:100px}.list-geometry i{width:760px;height:380px;border-radius:0 0 500px 500px;background:var(--sagewash);top:150px;transform:rotate(-90deg)}.list-geometry b{width:220px;height:220px;background:var(--wash);border-radius:50%;left:-15px;bottom:20px}.quiet{padding:110px 0 0;border-top:1px solid var(--line)}.quiet h2{max-width:900px}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:65px;margin-top:65px;padding-bottom:85px}.details h3{font-size:27px;margin-bottom:18px}.details p,.details a{font-size:14px;color:var(--muted)}.details a{display:inline-block;margin-top:16px;color:var(--plum)}.pricing{display:grid;grid-template-columns:1fr 1fr;gap:100px;border-top:1px solid var(--line);padding:55px 0 80px}.pricing .eyebrow{margin-bottom:18px}.pricing h3{font-size:36px}.pricing>p{font-size:14px;max-width:460px;color:var(--muted)}.pricing a{display:block;margin-top:15px}.closing{padding:110px 0 125px;background:var(--wash)}.closing h2{font-size:clamp(80px,10vw,144px)}.closing .eyebrow{color:var(--ink)}.download-content{margin-top:32px}.availability{font-size:12px;color:var(--muted);margin-top:8px}.closing-geometry{width:600px;height:600px;right:-50px;bottom:-230px}.closing-geometry i{width:300px;height:600px;border-radius:0 400px 400px 0;right:0;background:var(--plum);opacity:.16}.closing-geometry b{width:380px;height:380px;border-radius:50%;background:var(--paper);top:110px;left:15px}.footer{padding-block:40px;display:flex;align-items:center;flex-wrap:wrap;gap:30px}.footer>p{font-size:11px;color:var(--muted);flex:1}.footer nav{gap:24px}.preferences{display:flex;align-items:center;gap:12px;width:100%;border-top:1px solid var(--line);padding-top:20px;font-size:11px;color:var(--muted)}select,button{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:10px;min-height:44px}button{cursor:pointer}.skip{position:fixed;top:10px;left:10px;transform:translateY(-150%);z-index:10;background:var(--paper);padding:12px}.skip:focus{transform:none}/* Begin mid-cycle so the movement is visible immediately. Phones remain still. */
@keyframes drift{from{transform:translate(-16px,12px)}to{transform:translate(18px,-20px)}}
.geometry b{animation:counter-drift 8s ease-in-out -4s infinite alternate}
.kit-geometry{animation-duration:12s;animation-delay:-7s}
.list-geometry{animation-duration:11s;animation-delay:-3s}
.closing-geometry{animation-duration:13s;animation-delay:-6s}
@keyframes counter-drift{from{transform:translate(12px,-8px)}to{transform:translate(-14px,12px)}}
[data-motion=paused] .geometry,[data-motion=paused] .geometry b{animation-play-state:paused}
@media(min-width:1500px){.hero-grid{min-height:860px}.device-figure{width:310px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero-grid{gap:20px;grid-template-columns:1.2fr 1fr;min-height:730px}.hero .device-figure{margin-left:0}.device-figure{width:250px}h1{font-size:76px}h2{font-size:65px}.split{gap:60px;padding-block:100px}.details{gap:30px}.hero-geometry{right:-390px}.pricing{gap:45px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{min-height:90px;gap:12px}.header nav{gap:18px}.header nav a{font-size:11px}.header nav a:first-child{display:none}.wordmark{font-size:27px}.brand img{width:31px;height:31px}.hero-grid{grid-template-columns:1fr;gap:58px;padding-block:45px 48px}.hero-copy{max-width:480px}h1{font-size:clamp(52px,12vw,84px)}h2{font-size:clamp(49px,10vw,70px)}.eyebrow{font-size:10px;margin-bottom:26px}.intro{font-size:21px;margin-top:24px}.hero .device-figure{transform:none;margin-left:0}.device-figure{width:260px}.hero-geometry{top:510px;right:-410px}.chapter-bottom{gap:20px;font-size:9px}.chapter-bottom span:last-child{white-space:nowrap}.split{grid-template-columns:1fr;gap:55px;padding-block:76px}.kit-section .device-figure{order:2}.section-copy{max-width:480px}.kit-geometry{bottom:-220px;left:-260px}.list-geometry{top:auto;bottom:-30px;right:-460px}.quiet{padding-top:76px}.details{grid-template-columns:1fr;margin-top:45px;gap:30px;padding-bottom:50px}.details article{border-top:1px solid var(--line);padding-top:24px}.details p{max-width:420px}.pricing{grid-template-columns:1fr;gap:25px;padding-bottom:60px}.closing{padding-block:75px 100px}.closing h2{font-size:80px}.closing-geometry{right:-380px;bottom:-190px}.footer{gap:22px}.footer>p{flex-basis:60%}.footer nav{width:100%;gap:28px}.preferences{flex-wrap:wrap}.phone{border-radius:43px}.phone img{border-radius:33px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.geometry,.geometry b{animation:none}}

/* One switch changes both the page and the real app screenshots. */
.theme-shot{display:block}
.theme-toggle{display:flex;align-items:center;justify-content:center;gap:9px;margin:16px auto 0;padding:8px 16px;border-radius:999px;font-size:12px;background:var(--paper);border-color:var(--muted)}
.theme-toggle[aria-pressed=true]{background:var(--button);color:var(--button-text);border-color:var(--button)}
[hidden]{display:none!important}

/* Keep both screenshot layers mounted for a reversible crossfade. */
.theme-shot{display:grid}
.theme-shot img{grid-area:1 / 1;min-width:0;transition:opacity 420ms ease-in-out}
.theme-shot .shot-light{opacity:1}
.theme-shot .shot-dark{opacity:0;pointer-events:none}
:root[data-theme=dark] .shot-light{opacity:0}
:root[data-theme=dark] .shot-dark{opacity:1}
@media(prefers-color-scheme:dark){
  :root:not([data-theme=light]) .shot-light{opacity:0}
  :root:not([data-theme=light]) .shot-dark{opacity:1}
}
body,.chapter,.geometry i,.geometry b,h1 span,h2 span,.eyebrow,.dot,
.intro,.description,.section-copy p,.small-note,figcaption,.chapter-bottom,
.details p,.details a,.pricing,.pricing>p,.availability,.footer p,.preferences,
a,button,select{
  transition:background-color 420ms ease-in-out,color 420ms ease-in-out,border-color 420ms ease-in-out;
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important}
}

/* Bring the two hero lines together at laptop and desktop widths. */
@media(min-width:701px){.hero h1{line-height:.94}}

/* Give the large Fraunces headlines more space between letters. */
h1,h2{letter-spacing:-.025em}

.preview-controls{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:16px}
.preview-controls .theme-toggle{margin:0}
.preview-controls #motion{border:0;background:transparent;font-size:11px;color:var(--muted);padding:8px;min-height:44px}
