@font-face{font-family:"SD Display";src:url(fonts/display.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"SD Text";src:url(fonts/text.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --bg:#FFFFFF; --fg:#0A0A0A; --muted:#5A5F68; --line:#E4E5E8; --surface:#F4F4F6; --ring:#0A0A0A;
  --paper:#F2EFE8; --paper-line:#CFC9BC;
  --violet:#9945FF; --mint:#14F195; --grad:linear-gradient(45deg,#9945FF,#14F195);
  --display:"SD Display","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"SD Text","Helvetica Neue","Segoe UI",system-ui,sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --bg:#000000; --fg:#FFFFFF; --muted:#9AA0A8; --line:#1E1F23; --surface:#0E0F11; --ring:#FFFFFF; }
}
:root[data-theme="dark"]{ --bg:#000000; --fg:#FFFFFF; --muted:#9AA0A8; --line:#1E1F23; --surface:#0E0F11; --ring:#FFFFFF; }
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img,video,svg{max-width:100%}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:6px}
.wrap{width:min(1240px,100% - 48px);margin:0 auto}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.035em;margin:0;line-height:1.02}
h2{font-size:clamp(40px,5.6vw,84px)}
h3{font-size:24px;letter-spacing:-.02em;line-height:1.2}
p{margin:0}
.lede{font-size:clamp(18px,1.6vw,22px);color:var(--muted);max-width:34em}
.btn{display:inline-flex;align-items:center;gap:10px;font:600 16px/1 var(--body);padding:16px 22px;border-radius:999px;text-decoration:none;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:background .2s,border-color .2s}
.btn:hover{border-color:var(--fg)}
.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn.primary:hover{opacity:.88}

/* nav */
nav.top{position:fixed;top:0;left:0;right:0;z-index:40;padding-top:env(safe-area-inset-top,0px);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 72%,transparent);border-bottom:1px solid transparent;transition:border-color .3s}
nav.top.scrolled{border-bottom-color:var(--line)}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.navlinks{display:flex;gap:28px;font-size:15px;font-weight:500}
.navlinks a{text-decoration:none;color:var(--muted)}
.navlinks a:hover{color:var(--fg)}
@media (max-width:760px){.navlinks{display:none}}

/* the travelling dot */
#dot{position:fixed;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--grad);z-index:35;pointer-events:none;will-change:transform;box-shadow:0 0 40px rgba(120,90,255,.45)}
#dotglow{position:fixed;left:0;top:0;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(153,69,255,.16),rgba(20,241,149,.06) 45%,transparent 70%);will-change:transform}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:120px 0 80px;z-index:1}
.hero h1{font-size:clamp(60px,10.2vw,168px);letter-spacing:-.055em;line-height:.9;font-weight:800;max-width:10.5ch}
.slot{display:inline-block;width:.2em;height:.2em;border-radius:50%;vertical-align:baseline;margin-left:.04em}
.hero .lede{margin-top:34px}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.status{margin-top:56px;font-size:15px;color:var(--muted);display:flex;align-items:center;gap:10px}
.status i{width:8px;height:8px;border-radius:50%;background:var(--mint);display:inline-block;box-shadow:0 0 0 4px rgba(20,241,149,.15)}

/* problem (sticky scene) */
#problem{position:relative;height:280vh;z-index:1}
#problem .stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.pcopy{position:relative;height:2.2em;font-size:clamp(34px,4.6vw,68px)}
.pcopy h2{position:absolute;inset:0 auto auto 0;font-size:inherit;max-width:18ch;transition:opacity .5s,transform .5s}
.pcopy h2.off{opacity:0;transform:translateY(-18px)}
.scene{position:relative;margin-top:clamp(40px,8vh,90px);height:clamp(220px,34vh,340px)}
.scene svg.path{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.bubble{position:absolute;left:0;top:50%;transform:translateY(-50%);max-width:min(420px,52%);background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:20px 24px;font-size:clamp(15px,1.4vw,19px);font-weight:500}
.cloud{position:absolute;right:0;top:50%;transform:translateY(-50%);width:clamp(110px,16vw,220px);color:var(--muted)}
.phoneicon{position:absolute;left:0;top:50%;transform:translateY(-50%);width:clamp(70px,8vw,110px);opacity:0;color:var(--fg)}

/* try it */
section.block{position:relative;padding:clamp(90px,14vh,160px) 0;z-index:1}
.split{display:grid;grid-template-columns:1fr minmax(300px,420px);gap:clamp(40px,7vw,120px);align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.chip{font:500 15px/1 var(--body);padding:13px 18px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:border-color .2s,background .2s}
.chip:hover{border-color:var(--fg)}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.specs{margin-top:44px;display:grid;gap:0;border-top:1px solid var(--line);max-width:34em}
.specs div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:16px}
.specs span:first-child{color:var(--muted)}
.specs span:last-child{font-weight:600;text-align:right}

.phone{position:relative;width:100%;max-width:400px;aspect-ratio:9/19;margin:0 auto;border-radius:56px;background:#050506;border:2px solid #2A2B30;box-shadow:0 40px 120px -30px rgba(120,80,255,.35);overflow:hidden;color:#fff;font-family:var(--body)}
.phone .sb{display:flex;justify-content:space-between;align-items:center;padding:20px 30px 12px;font-size:14px;font-weight:600}
.phone .sb span:last-child{display:flex;align-items:center;gap:7px;color:#A8ADB6;font-weight:500;font-size:13px}
.phone .hd{display:flex;align-items:center;gap:12px;padding:12px 24px 16px;border-bottom:1px solid #1A1B1F}
.phone .av{width:30px;height:30px;border-radius:50%;flex:none}
.phone .hd b{display:block;font-family:var(--display);font-size:20px;letter-spacing:-.02em;line-height:1.1}
.phone .hd small{color:#7C818A;font-size:12px}
.phone .msgs{padding:18px 18px;display:flex;flex-direction:column;gap:12px;font-size:15px;line-height:1.45}
.m{max-width:84%;padding:13px 16px;border-radius:20px;opacity:0;transform:translateY(10px);transition:opacity .35s,transform .35s}
.m.show{opacity:1;transform:none}
.m.u{align-self:flex-end;background:#1C1C1F}
.m.a{align-self:flex-start;background:#111113;border:1px solid #222328;color:#E7E9EC;min-height:48px;white-space:pre-line}
.caret{display:inline-block;width:8px;height:15px;background:linear-gradient(#9945FF,#14F195);vertical-align:-2px;margin-left:2px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.meta{font-size:12px;color:#6F747D;align-self:flex-start;padding-left:4px;opacity:0;transition:opacity .3s}
.meta.show{opacity:1}

/* files */
.doc{position:relative;background:var(--paper);border-radius:22px;padding:34px 32px 30px;color:#14171C;box-shadow:0 30px 80px -40px rgba(0,0,0,.5);max-width:440px;margin:0 auto;width:100%}
.doc .t{height:16px;width:58%;background:#14171C;border-radius:4px;margin-bottom:10px}
.doc .pg{font-size:12px;color:#6F6A60;margin-bottom:22px}
.doc .ln{height:11px;border-radius:3px;background:var(--paper-line);margin-bottom:15px;transition:background .4s}
.doc .ln.hit{background:var(--grad)}
.doc .scan{position:absolute;left:0;right:0;height:5px;background:var(--grad);box-shadow:0 0 24px #14F195;opacity:0;top:70px}
.qa{margin-top:28px;display:grid;gap:10px}
.q{text-align:left;font:500 16px/1.4 var(--body);padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:border-color .2s,background .2s}
.q:hover{border-color:var(--fg)}
.q[aria-pressed="true"]{background:var(--surface);border-color:var(--fg)}
.answer{margin-top:22px;min-height:96px;padding:18px 20px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.answer p{font-size:17px}
.answer small{display:block;margin-top:8px;color:var(--muted);font-size:14px}

/* privacy */
#privacy{position:relative;padding:clamp(100px,16vh,180px) 0;z-index:1;text-align:center}
.bigring{position:relative;width:min(620px,86vw);aspect-ratio:1;margin:0 auto;display:grid;place-items:center}
.bigring .reveal{position:absolute;inset:0}
.bigring h2{position:relative;font-size:clamp(26px,3.6vw,50px);max-width:8.5ch}
.reveal{--rev:0deg;-webkit-mask-image:conic-gradient(from 90deg,#000 var(--rev),transparent calc(var(--rev) + .5deg));mask-image:conic-gradient(from 90deg,#000 var(--rev),transparent calc(var(--rev) + .5deg))}
.reveal img{width:100%;height:100%}
.brand-light{display:block}.brand-dark{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .brand-dark{display:block}:root:not([data-theme="light"]) .brand-light{display:none}}
:root[data-theme="dark"] .brand-dark{display:block}:root[data-theme="dark"] .brand-light{display:none}
.logo img{height:26px;width:auto}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,60px);margin-top:clamp(50px,8vh,90px);text-align:left}
.facts p{color:var(--muted);font-size:17px}
.facts h3{margin-bottom:10px}
@media (max-width:820px){.facts{grid-template-columns:1fr}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,56px);margin-top:56px;counter-reset:s}
.steps li{list-style:none;border-top:2px solid var(--fg);padding-top:22px}
.steps li::before{counter-increment:s;content:counter(s);font-family:var(--display);font-size:56px;font-weight:700;letter-spacing:-.04em;display:block;line-height:1;margin-bottom:18px}
.steps p{color:var(--muted);margin-top:8px;font-size:17px}
@media (max-width:820px){.steps{grid-template-columns:1fr}}
ol.steps{padding:0}

/* film */
.film{margin-top:48px;border-radius:28px;overflow:hidden;border:1px solid var(--line);background:#000;aspect-ratio:16/9}
.film video{display:block;width:100%;height:100%}

/* faq */
.faq{margin-top:48px;border-top:1px solid var(--line);max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:24px 44px 24px 0;font-family:var(--display);font-size:clamp(20px,2vw,26px);font-weight:600;letter-spacing:-.02em;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;border-radius:50%;border:2px solid var(--fg);transform:translateY(-50%);transition:background .25s,border-color .25s}
.faq details[open] summary::after{background:var(--grad);border-color:transparent}
.faq .ans{padding:0 0 26px;color:var(--muted);max-width:40em}

/* final */
.final{position:relative;padding:clamp(110px,18vh,200px) 0 90px;z-index:1}
.final .mark{position:relative;width:clamp(120px,14vw,180px);aspect-ratio:1;margin-bottom:40px}
.final h2{max-width:14ch}
.final .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
footer{position:relative;z-index:1;border-top:1px solid var(--line);padding:30px 0 40px;color:var(--muted);font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .m,.pcopy h2,.meta{transition:none}
  .caret{animation:none}
}
