:root{--bg:#000;--fg:#f5f5f7;--muted:#a1a1a6;--card:#1c1c1e;--line:#2c2c2e;--accent:#2997ff;--accent-2:#0a84ff;--ok:#30d158;--err:#ff6961;--teal:#21a1a8;--r:22px;
font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:12px;top:12px;background:var(--fg);color:#000;padding:8px 14px;border-radius:10px;z-index:9}
.wrap{max-width:980px;margin:0 auto;padding:0 20px}
.wrap-wide{max-width:1120px;margin:0 auto;padding:0 16px}
.narrow{max-width:640px}
h1,h2{letter-spacing:-.02em;line-height:1.1;margin:0 0 .5em}
h2{font-size:clamp(28px,6vw,44px);font-weight:700}
section{padding:72px 0}
.hero{text-align:center;padding:48px 0 24px;background:radial-gradient(120% 70% at 50% 0%,#0f2a2c 0%,#000 60%)}
.brand{margin:0 auto 12px;width:clamp(150px,40vw,220px)}
.tagline{font-size:clamp(34px,8.5vw,64px);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin:0 0 18px;background:linear-gradient(180deg,#fff 30%,#c7c7cc);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{font-size:clamp(18px,2.6vw,22px);color:var(--muted);max-width:680px;margin:0 auto 26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 26px;border-radius:999px;background:var(--accent-2);color:#fff;font:inherit;font-weight:600;text-decoration:none;border:0;cursor:pointer;transition:background .2s,transform .1s}
.btn:hover{background:#3d9bff}.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.6;cursor:progress}
.btn-block{width:100%;margin-top:8px}
.tesla{margin:44px auto 0}
.car-screen{border-radius:8px;padding:10px;background:linear-gradient(145deg,#2a2a2c,#0d0d0e);box-shadow:0 30px 80px -20px rgba(33,161,168,.35),0 0 0 1px #333 inset}
.car-screen img{border-radius:4px}
.join{background:#000}
.intro{color:var(--muted);font-size:19px}
.card{background:var(--card);border-radius:var(--r);padding:24px;border:1px solid var(--line)}
form.card{margin-top:28px}
.field{margin-bottom:16px}
.row{display:grid;gap:0 16px}
@media (min-width:600px){.row{grid-template-columns:1fr 1fr}}
label{display:block;font-weight:600;font-size:15px;margin-bottom:6px}
.opt{color:var(--muted);font-weight:400}
input[type=email],input[type=text]{width:100%;min-height:48px;padding:12px 14px;font:inherit;color:var(--fg);background:#000;border:1px solid #3a3a3c;border-radius:12px;transition:border-color .2s}
input:focus{border-color:var(--accent)}
input[aria-invalid=true]{border-color:var(--err)}
.field-err{color:var(--err);font-size:14px;margin:6px 0 0}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.cf-turnstile{min-height:65px;margin:4px 0 8px}
.note{color:var(--muted);font-size:14px}
.status{margin-top:14px;padding:12px 14px;border-radius:12px;font-size:15px}
.status.error{background:rgba(255,105,97,.12);color:#ffb3ae;border:1px solid rgba(255,105,97,.35)}
.success{margin-top:28px;text-align:center;color:var(--ok);padding:36px 24px}
.success p{color:var(--fg);font-size:21px;font-weight:600;margin:14px 0 0}
.success:focus{outline:none}
.devices{padding-top:24px}
.laptop{border-radius:6px;background:#1c1c1e;border:1px solid #3a3a3c;box-shadow:0 30px 70px -30px rgba(0,0,0,.9)}
.browser-bar{border-radius:5px 5px 0 0;height:28px;display:flex;align-items:center;gap:7px;padding:0 12px;background:#2c2c2e}
.browser-bar i{width:11px;height:11px;border-radius:50%;background:#ff5f57}.browser-bar i:nth-child(2){background:#febc2e}.browser-bar i:nth-child(3){background:#28c840}
.handhelds{display:grid;gap:28px;margin-top:28px;align-items:center}
@media (min-width:900px){.handhelds{grid-template-columns:1.25fr 1fr}}
.ipad{border-radius:8px;padding:12px;background:#111;border:1px solid #3a3a3c}
.ipad img{border-radius:4px}
.phones{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.iphone{border-radius:10px;padding:5px;background:#111;border:1px solid #3a3a3c}
.iphone img{border-radius:6px}
@media (min-width:600px){.iphone{padding:7px}}
.info .grid{display:grid;gap:20px}
@media (min-width:800px){.info .grid{grid-template-columns:1fr 1fr}}
.info h2{font-size:26px}
.info ul,.ways{padding-left:1.1em;margin:0}
.info li{margin-bottom:10px}
.info p{margin:0;color:var(--fg)}
.connect{padding-top:24px}
.ways{list-style:none;padding:0;display:grid;gap:14px}
.ways li{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px;color:#d1d1d6}
.ways strong{color:var(--fg)}
.landscape{margin:36px auto 0;max-width:800px}
.iphone-l{border-radius:10px;padding:8px;background:#111;border:1px solid #3a3a3c}
.iphone-l img{border-radius:6px}
.car{text-align:center;background:radial-gradient(100% 80% at 50% 100%,#0f2a2c 0%,#000 70%)}
.car p{color:#d1d1d6;font-size:19px}
.foot{border-top:1px solid var(--line);padding:32px 0 48px;color:var(--muted);font-size:14px;text-align:center}
.contact{font-size:16px}
.credits{max-width:720px;margin:12px auto 0;text-align:left}
.credits summary{cursor:pointer;text-align:center;color:var(--muted)}
.credits p{font-size:13px;line-height:1.55}
figure{margin:0}
.laptop img{border-radius:0 0 5px 5px}
img{object-fit:contain}
figcaption{margin:10px 0 0;font-size:13px;line-height:1.4;color:var(--muted);text-align:center;letter-spacing:.01em}
.tesla figcaption{margin-top:12px}
.form-note{margin:10px 0 0;font-size:13px;color:var(--muted);text-align:center}
.works-on{margin:0 auto 26px;color:var(--muted)}
.works-on-label{margin:0 0 10px;font-size:13px;letter-spacing:.02em}
.logos{list-style:none;margin:0 auto;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px 6px;max-width:360px}
@media (min-width:700px){.logos{max-width:none;gap:14px 18px}}
.logos li{width:78px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;line-height:1.2}
@media (min-width:700px){.logos li{width:64px}}
.logos svg{width:26px;height:26px;display:block}
.chips{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{font-size:13px;line-height:1.3;color:var(--muted);background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:999px;padding:5px 11px;white-space:nowrap}
.info .chips{padding:0;margin:16px 0 0}.info .chips li{margin:0}
.beta-note{margin-top:28px;text-align:center;padding:28px 24px}
.beta-note p{margin:0}
.beta-note-lead{font-size:21px;font-weight:600;color:var(--fg);margin-bottom:8px!important}
.beta-note p+p{color:var(--muted)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.flow{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0 auto 28px;color:var(--muted)}
.flow-step{display:flex;flex-direction:column;align-items:center;min-width:200px}
.flow-outline{width:112px;height:auto;display:block}
.flow-label{margin:8px 0 0;font-size:14px;line-height:1.3;color:var(--fg)}
.flow-arrow{width:40px;height:20px;transform:rotate(90deg);margin:4px 0;flex:none}
.info .works-on-item{list-style:none;margin:14px 0 8px -1.1em}
.info .works-on{margin:0}
.info .logos li{margin:0}
.info .works-on{text-align:center}.info .logos{gap:14px 4px}.info .logos li{width:68px}
.info .logos{padding:0;max-width:290px;margin:0 auto}
/* Diagram, left group (logo -> hand-drawn arrow -> Apple). Mobile sizes first, desktop below. */
.flow-left{display:flex;align-items:center;justify-content:center;padding:4px 0 0}
.flow-logo{width:150px;height:auto;display:block;flex:none}
.flow-doodle{width:58px;height:auto;display:block;flex:none;align-self:flex-start;margin:0 4px 0 -8px}
.flow-apple{color:#d1d1d6;display:block;flex:none}
.flow-apple svg{width:76px;height:76px;display:block}
.flow-outline{width:124px}
@media (min-width:700px){
  .flow{flex-direction:row;justify-content:center;align-items:flex-start;gap:28px}
  .flow-left{height:134px;padding:0}
  .flow-logo{width:200px}
  .flow-doodle{width:78px;margin:2px 8px 0 -10px}
  .flow-apple svg{width:96px;height:96px}
  .flow-outline{width:160px}
  .flow-arrow{transform:none;margin-top:57px}
}
/* Diagram on phones: one horizontal row (logo -> arrow -> Apple -> arrow -> browser), scaled with the viewport. */
@media (max-width:699px){
  .flow{flex-direction:row;align-items:flex-start;justify-content:center;gap:6px}
  .flow-step{min-width:0}
  .flow-label{font-size:12px;white-space:nowrap;margin-top:6px}
  .flow-left{height:calc(min(76px,19vw) * .8333);padding:0}
  .flow-logo{width:min(90px,23vw)}
  .flow-doodle{width:min(36px,9vw);margin:0 2px 0 -5px}
  .flow-apple svg{width:min(46px,11.5vw);height:min(46px,11.5vw)}
  .flow-outline{width:min(76px,19vw)}
  .flow-arrow{transform:none;width:20px;height:10px;margin:calc(min(76px,19vw) * .4167 - 5px) 0 0}
}
/* Diagram v5: smaller left group (logo ~115px on desktop) so it doesn't echo the big top logo. Overrides earlier sizes. */
@media (min-width:700px){
  .flow-left{height:93px}
  .flow-logo{width:115px}
  .flow-doodle{width:46px;margin:1px 5px 0 -6px}
  .flow-apple svg{width:60px;height:60px}
  .flow-outline{width:112px}
  .flow-arrow{margin-top:36px}
}
@media (max-width:699px){
  .flow-left{height:calc(min(56px,14.5vw) * .8333)}
  .flow-logo{width:min(60px,15.5vw)}
  .flow-doodle{width:min(26px,6.6vw);margin:0 1px 0 -3px}
  .flow-apple svg{width:min(32px,8.2vw);height:min(32px,8.2vw)}
  .flow-outline{width:min(56px,14.5vw)}
  .flow-arrow{margin-top:calc(min(56px,14.5vw) * .4167 - 5px)}
}
/* Diagram v6: no logo row under the browser; equal-width steps so labels share a baseline and the arrow sits dead center. */
@media (min-width:700px){.flow-step{flex:0 0 240px;min-width:0}}
@media (max-width:699px){.flow{width:100%;max-width:360px}.flow-step{flex:1 1 0;min-width:0}}
/* Layout v5: one idea + one visual per section. */
.hero{padding-bottom:64px}
section{padding:88px 0}
@media (max-width:699px){section{padding:64px 0}}
.sec-head{text-align:center;margin-bottom:36px}
.sub{color:var(--muted);font-size:clamp(18px,2.4vw,21px);line-height:1.4;margin:0 0 20px}
.sec-head .sub{margin:0 auto;max-width:620px}
.screens{padding-top:72px}
.split{display:grid;gap:36px;align-items:center}
.split-text h2{margin-bottom:.35em}
.plays{color:#d1d1d6;margin:0}
@media (min-width:900px){
  .split{grid-template-columns:1fr 1.2fr;gap:56px}
  .split.flip{grid-template-columns:1.2fr 1fr}
  .split.flip .split-visual{order:-1}
}
.library .chips{margin-top:18px}
.connect{padding-top:88px}
.connect .ways{margin-top:22px}
.connect .landscape{margin:0;max-width:none}
/* Tesla: edge-to-edge photo fading into the page, text over the fade. */
.car{position:relative;padding:0 0 88px;text-align:left;background:#000;overflow:hidden}
.car-photo{display:block;position:relative}
.car-photo img{width:100%;height:auto;display:block;border-radius:0}
.car-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.6) 55%,#000 100%);pointer-events:none}
.car-text{position:relative;margin-top:-56px}
.car-text h2{margin-bottom:.35em}
.car p{color:#d1d1d6;font-size:19px;max-width:560px;margin:0 0 14px}
.car-link{font-size:17px!important}
.car-link a{text-decoration:none;font-weight:600}
.car-link a:hover{text-decoration:underline}
@media (min-width:900px){.car-text{margin-top:-210px}}
@media (min-width:1600px){.car-text{margin-top:-300px}}
.need h2{font-size:clamp(28px,6vw,44px);margin-bottom:.5em}
.join{padding-bottom:96px}
.car-photo::before{content:"";position:absolute;inset:0 0 auto 0;height:14%;background:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 100%);pointer-events:none;z-index:1}
/* Tesla v3: screen ends at ~65% of the photo height; keep the blurb in the fade below it at every width. */
@media (min-width:900px){.car-text{margin-top:-14vw}}
@media (min-width:1600px){.car-text{margin-top:-14vw}}
/* Diagram v7: Apple logo -> arrow -> browser. Apple matches the browser icon's height; two-line labels. */
.flow-label{line-height:1.3}
@media (min-width:700px){.flow-apple svg{width:88px;height:88px}}
@media (max-width:699px){.flow-apple svg{width:calc(min(56px,14.5vw) * .86);height:calc(min(56px,14.5vw) * .86)}}

/* Spacing system (stacked layouts, <900px). One section rhythm, one set of inner gaps. Desktop (>=900px) keeps its own spacing. */
:root{--sec-gap:72px;--h-gap:14px;--body-gap:16px;--media-gap:28px;--cap-gap:8px;--fig-gap:24px}
@media (max-width:899px){
  section{padding:calc(var(--sec-gap) / 2) 0}
  .hero{padding-bottom:calc(var(--sec-gap) / 2)}
  .hero .wrap > p:last-child{margin-bottom:0}
  .screens,.connect{padding-top:calc(var(--sec-gap) / 2)}
  .join{padding-bottom:calc(var(--sec-gap) / 2)}
  .foot{padding-top:calc(var(--sec-gap) / 2)}
  section h2{margin:0 0 var(--h-gap)}
  .sub{margin:0}
  .sec-head{margin-bottom:var(--media-gap)}
  .split{gap:var(--media-gap)}
  .split-text > * + *:not(h2){margin-top:var(--body-gap)}
  .split-text > h2 + *{margin-top:0}
  .library .chips,.connect .ways{margin-top:var(--body-gap)}
  .split-text > h2 + .ways{margin-top:0}
  figcaption,.tesla figcaption{margin-top:var(--cap-gap)}
  .handhelds{gap:var(--fig-gap);margin-top:var(--fig-gap)}
  /* Tesla: photo flows straight into the blurb; no top padding, same bottom rhythm. */
  .car{padding:0 0 calc(var(--sec-gap) / 2)}
  .car-text p{margin:0}
  .car-text p + p{margin-top:var(--body-gap)}
  .intro{margin:0}
  .beta-note{margin-top:var(--media-gap)}
  .need .card{margin:0}
}
@media (max-width:899px){
  .split-text > h2,.car-text h2{margin-bottom:var(--h-gap)}
  .foot .contact{margin-top:0}
}
/* Diagram v7 balance: filled Apple reads heavier than the outlined browser, so it sits a touch smaller; groups pulled closer now the left side is narrow. */
@media (min-width:700px){.flow-apple svg{width:80px;height:80px}.flow-step{flex:0 0 180px}}
@media (max-width:699px){.flow-apple svg{width:calc(min(56px,14.5vw) * .8);height:calc(min(56px,14.5vw) * .8)}.flow{max-width:300px}}
/* Copy v6: "These are your files." strip, library points, folder stack, "Coming next" strip. */
.own .sec-head{margin-bottom:0}
.own .sub{color:#d1d1d6}
.points{list-style:none;margin:0;padding:0;display:grid;gap:12px;color:#d1d1d6}
.points li{margin:0}
.points strong,.next-list strong{color:var(--fg)}
.stack picture,.stack img{display:block;width:100%;height:auto}
.stack img{border-radius:0}
@media (min-width:900px){
  .library .split{grid-template-columns:1fr 1fr}
  .stack{max-width:460px;justify-self:end;width:100%}
  .points{margin-top:20px}
}
.next-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.next-list li{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px;color:#d1d1d6}
.next-list strong{display:block;margin-bottom:4px}
@media (min-width:900px){.next-list{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}}
@media (max-width:899px){
  .own{padding-bottom:calc(var(--sec-gap) / 2)}
  .split-text > .points{margin-top:var(--body-gap)}
  .next-list{margin:0}
  .next-list{gap:14px}
}
