/* ============================================================
   SERENO — home v3 (base shared with v2)
   Mobile-first. Motion = transform/opacity only; everything is
   visible without JS (the .js class turns the reveal states on),
   and prefers-reduced-motion switches every loop off.
   ============================================================ */
:root{
  --ink:#13302d; --ink-2:#2f4b48; --ink-3:#5f7673;
  --teal:#2c7a7b; --teal-2:#3f9a98; --teal-3:#7fd1c7; --mint:#e6f2ef;
  --cream:#f6f3ec; --paper:#fffdf9; --sand:#f3ead9; --peach:#fbe9da;
  --coral:#e07a4f; --orange:#cf7a37; --blue:#4684ad; --rose:#c16f8c;
  --deep:#0d2826; --deep-2:#123532;
  --line:rgba(19,48,45,.10); --line-2:rgba(19,48,45,.16);
  --r-lg:28px; --r-md:20px; --r-sm:14px;
  --shadow:0 30px 60px -28px rgba(13,40,38,.35), 0 10px 22px -14px rgba(13,40,38,.22);
  --shadow-sm:0 12px 26px -16px rgba(13,40,38,.35);
  --ease:cubic-bezier(.22,1,.36,1);
  --pad:20px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px;overflow-x:clip}
body{margin:0;overflow-x:clip;font-family:'Plus Jakarta Sans',system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--cream);line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
sup.tm{font-size:.42em;vertical-align:super;margin-left:1px;font-weight:600;line-height:0}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--pad)}
.center{text-align:center}
.mono{font-variant-numeric:tabular-nums}

/* ---------- ambient background ---------- */
.aurora{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.aurora i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform}
.aurora i:nth-child(1){width:70vmax;height:70vmax;left:-25vmax;top:-30vmax;background:radial-gradient(circle,#cfe9e3 0%,transparent 65%);animation:drift1 26s ease-in-out infinite alternate}
.aurora i:nth-child(2){width:60vmax;height:60vmax;right:-28vmax;top:10vh;background:radial-gradient(circle,#fbe3cf 0%,transparent 65%);animation:drift2 32s ease-in-out infinite alternate}
.aurora i:nth-child(3){width:55vmax;height:55vmax;left:10vw;bottom:-35vmax;background:radial-gradient(circle,#dbe8f3 0%,transparent 65%);animation:drift1 38s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate3d(8vmax,6vmax,0) scale(1.08)}}
@keyframes drift2{to{transform:translate3d(-7vmax,8vmax,0) scale(1.12)}}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.06;background-image:url("../assets/grain.svg")}
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none}
.progress i{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--teal),var(--teal-3),var(--orange))}

/* ---------- type ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:14px}
.eyebrow.center{display:flex;justify-content:center;text-align:center}
.eyebrow.light{color:var(--teal-3)}
.eyebrow-pill{background:rgba(255,255,255,.7);border:1px solid var(--line);padding:8px 14px;border-radius:100px;letter-spacing:.06em;text-transform:none;font-size:13px;font-weight:600;color:var(--ink-2);backdrop-filter:blur(8px)}
.eyebrow-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(44,122,123,.5);animation:ping 2.4s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(44,122,123,.45)}70%{box-shadow:0 0 0 9px rgba(44,122,123,0)}100%{box-shadow:0 0 0 0 rgba(44,122,123,0)}}
.section{position:relative;padding:88px 0}
.section-title{font-size:clamp(30px,7.6vw,56px);line-height:1.06;letter-spacing:-.035em;font-weight:800;margin:0 auto 18px;max-width:17ch}
.section-title.center{text-align:center}
.section-title.light{color:#f4fbf9}
.lede{font-size:17.5px;color:var(--ink-2);max-width:52ch}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:100px;font-weight:700;font-size:15px;border:1px solid transparent;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s}
.btn svg{width:18px;height:18px}
.btn-dark{background:var(--ink);color:#fff;box-shadow:0 14px 28px -14px rgba(13,40,38,.7)}
.btn-dark:hover{transform:translateY(-2px);box-shadow:0 20px 34px -14px rgba(13,40,38,.75)}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{transform:translateY(-2px)}
.btn-ghost{background:rgba(255,255,255,.6);border-color:var(--line-2);color:var(--ink)}
.btn-ghost:hover{background:#fff;transform:translateY(-2px)}
.btn-arrow svg{transition:transform .35s var(--ease)}
.btn-arrow:hover svg{transform:translateX(4px)}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:10px 12px;transition:padding .4s var(--ease)}
.nav-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 12px;border-radius:100px;border:1px solid transparent;transition:background .4s,border-color .4s,box-shadow .4s,backdrop-filter .4s}
.nav.scrolled .nav-inner{background:rgba(255,253,249,.78);border-color:var(--line);box-shadow:0 10px 30px -18px rgba(13,40,38,.35);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.02em}
.brand img{width:36px;height:36px;border-radius:50%}
.nav-links{display:none;gap:28px;font-weight:600;font-size:15px;color:var(--ink-2)}
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-right{display:flex;align-items:center;gap:8px}
.nav-cta{display:none;padding:11px 18px;font-size:14px}
.lang{position:relative;display:none}
.lang-btn{display:flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:rgba(255,255,255,.6);border-radius:100px;padding:9px 12px;cursor:pointer;font-weight:700;font-size:13px}
.lang-btn svg{width:16px;height:16px}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:16px;padding:6px;box-shadow:var(--shadow);min-width:170px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .25s var(--ease)}
.lang.open .lang-menu{opacity:1;visibility:visible;transform:none}
.lang-menu button{display:flex;width:100%;gap:8px;padding:10px 12px;border:0;background:none;border-radius:10px;cursor:pointer;font-weight:600;text-align:left}
.lang-menu button:hover,.lang-menu button.active{background:var(--mint)}
.nav-burger{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-2);background:rgba(255,255,255,.7);display:grid;place-content:center;gap:6px;cursor:pointer}
.nav-burger span{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink);transition:transform .35s var(--ease)}
.nav.menu-open .nav-burger span:first-child{transform:translateY(4px) rotate(45deg)}
.nav.menu-open .nav-burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
.nav-mobile{max-width:1180px;margin:8px auto 0;background:rgba(255,253,249,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:24px;padding:10px;box-shadow:var(--shadow);display:grid;gap:2px;transform-origin:top;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transition:all .3s var(--ease)}
.nav.menu-open .nav-mobile{opacity:1;visibility:visible;transform:none}
.nav-mobile>a{padding:14px 14px;border-radius:14px;font-weight:700;font-size:17px}
.nav-mobile>a:active{background:var(--mint)}
.nav-mobile-langs{display:flex;gap:8px;padding:8px 8px 4px}
.nav-mobile-langs button{flex:1;border:1px solid var(--line-2);background:#fff;border-radius:100px;padding:10px;font-weight:700;cursor:pointer}
.nav-mobile-langs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ---------- hero ---------- */
.hero{position:relative;padding:104px 0 40px;min-height:100svh;overflow:hidden}
.hero-grid{display:grid;gap:34px}
.hero-copy{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center}
.hero-title{font-size:clamp(38px,10.6vw,84px);line-height:1.0;letter-spacing:-.045em;font-weight:800;margin:4px 0 18px;max-width:13ch}
.hero-title .word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.hero-title .word>span{display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease)}
.hero.lit .hero-title .word>span{transform:none}
.hero-title .accent>span{background:linear-gradient(100deg,var(--teal) 0%,var(--teal-2) 40%,var(--orange) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic;padding-right:.06em}
html:not(.js) .hero-title .word>span{transform:none}
.hero-sub{font-size:17.5px;color:var(--ink-2);max-width:40ch;margin:0 0 24px}
.stores{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.store{display:flex;align-items:center;gap:10px;padding:11px 18px 11px 15px;border-radius:16px;background:var(--ink);color:#fff;min-width:176px;box-shadow:0 14px 28px -16px rgba(13,40,38,.8);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.store:hover{transform:translateY(-3px);box-shadow:0 22px 34px -16px rgba(13,40,38,.85)}
.store svg{width:26px;height:26px;flex:0 0 auto}
.store span{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.store small{font-size:11px;opacity:.75}
.store b{font-size:17px;letter-spacing:-.01em}
.store--light{background:#fff;color:var(--ink)}
.tester{margin-top:22px;display:grid;gap:8px;text-align:left;max-width:440px;padding:16px 18px;border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(251,233,218,.85));border:1px solid rgba(207,122,55,.25);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease)}
.tester:hover{transform:translateY(-2px)}
.tester-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--orange)}
.tester-badge .pulse{width:8px;height:8px;border-radius:50%;background:var(--orange);animation:ping2 2s infinite}
@keyframes ping2{0%{box-shadow:0 0 0 0 rgba(207,122,55,.5)}70%{box-shadow:0 0 0 9px rgba(207,122,55,0)}100%{box-shadow:0 0 0 0 rgba(207,122,55,0)}}
.tester-text{font-size:14.5px;color:var(--ink-2)}
.tester-mail{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--teal);font-size:15px}
.tester-mail svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.tester:hover .tester-mail svg{transform:translateX(4px)}
/* live cards */
.live{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:18px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);font-size:13px;opacity:0;transform:translateY(16px) scale(.94);transition:opacity .7s var(--ease),transform .9s var(--ease)}
html:not(.js) .live{opacity:1;transform:none}
.hero.lit .live{opacity:1;transform:none}
.hero.lit .live--dose{transition-delay:.7s}
.hero.lit .live--weight{transition-delay:1s}
.hero.lit .live--timer{transition-delay:1.3s}
.hero.lit .live--report{transition-delay:1.6s}
.live-txt{display:flex;flex-direction:column;line-height:1.2}
.live-txt b{font-size:14px;letter-spacing:-.01em}
.live-txt small{font-size:11.5px;color:var(--ink-3);font-weight:600}
.live-ic{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;color:#fff}
.live-ic svg{width:19px;height:19px}
.ic-teal{background:var(--teal)} .ic-coral{background:var(--coral)} .ic-ink{background:var(--ink)}
.live--dose{left:-2%;top:16%}
.live--weight{right:-3%;top:34%;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}
.live--weight .spark{width:118px;height:38px}
.live--timer{left:0;bottom:22%}
.live--report{right:0;bottom:7%}
.rec{width:8px;height:8px;border-radius:50%;background:var(--coral);animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.2}}
.live .draw{stroke-dasharray:24;stroke-dashoffset:24}
.hero.lit .live .draw{animation:drawck .6s 1.2s var(--ease) forwards}
@keyframes drawck{to{stroke-dashoffset:0}}
.spark-line{stroke-dasharray:var(--len,320);stroke-dashoffset:var(--len,320)}
.is-in .spark-line,.hero.lit .live .spark-line{animation:drawline 1.8s .3s var(--ease) forwards}
.hero.lit .live .spark-line{animation-delay:1.3s}
@keyframes drawline{to{stroke-dashoffset:0}}
.spark-dot{opacity:0}
.hero.lit .spark-dot{animation:pop .5s 2.8s var(--ease) forwards}
@keyframes pop{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
.spark-dot{transform-box:fill-box;transform-origin:center}
.hero.lit .live--dose{animation:bob 6s 2s ease-in-out infinite}
.hero.lit .live--weight{animation:bob 7s 2.4s ease-in-out infinite}
.hero.lit .live--timer{animation:bob 6.5s 2.8s ease-in-out infinite}
.hero.lit .live--report{animation:bob 7.5s 3.2s ease-in-out infinite}
@keyframes bob{50%{translate:0 -8px}}
.scroll-cue{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:none;flex-direction:column;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.scroll-cue i{width:22px;height:34px;border:2px solid var(--line-2);border-radius:12px;position:relative}
.scroll-cue i::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:7px;border-radius:2px;background:var(--teal);transform:translateX(-50%);animation:wheel 1.8s infinite}
@keyframes wheel{0%{opacity:1;transform:translate(-50%,0)}80%{opacity:0;transform:translate(-50%,10px)}100%{opacity:0}}
/* ---------- marquee ---------- */
.marquee{position:relative;padding:22px 0;display:grid;gap:12px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-row{display:flex;gap:10px;width:max-content;animation:marq 60s linear infinite}
.marquee-row.rev{animation-direction:reverse;animation-duration:70s}
.marquee-row span{white-space:nowrap;padding:10px 16px;border-radius:100px;background:rgba(255,255,255,.7);border:1px solid var(--line);font-weight:700;font-size:14px;color:var(--ink-2)}
.marquee-row span:nth-child(3n){background:var(--mint);color:var(--teal)}
.marquee-row span:nth-child(4n){background:var(--peach);color:var(--orange)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .55s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0ms)}
.js .reveal.is-in{opacity:1;transform:none}

/* ---------- questions ---------- */
.questions{padding:96px 0 80px}
.qs{display:grid;gap:12px;margin:34px auto 26px;max-width:760px}
.q{margin:0;display:flex;align-items:baseline;gap:16px;padding:22px 22px;border-radius:var(--r-md);background:rgba(255,255,255,.72);border:1px solid var(--line);font-size:clamp(26px,7vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.q-n{font-size:13px;font-weight:800;color:var(--teal);letter-spacing:.1em;flex:0 0 auto}
.q:nth-child(2){margin-left:6%} .q:nth-child(3){margin-left:12%}
.q-answer{max-width:30ch;margin:10px auto 0;text-align:center;font-size:clamp(20px,5.2vw,28px);font-weight:700;letter-spacing:-.02em;color:var(--teal);line-height:1.25}
/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:34px}
.bcard{position:relative;border-radius:var(--r-md);padding:18px;background:rgba(255,255,255,.78);border:1px solid var(--line);overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.bcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.bcard h3{margin:12px 0 6px;font-size:16.5px;letter-spacing:-.02em;line-height:1.2}
.bcard p{margin:0;font-size:13.5px;color:var(--ink-3);line-height:1.45}
.bic{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--mint);color:var(--teal);transition:transform .45s var(--ease)}
.bcard:hover .bic{transform:rotate(-8deg) scale(1.08)}
.bic svg{width:21px;height:21px}
.b-wide{grid-column:1/-1}
.b-insight{background:linear-gradient(145deg,#fff,#eef7f4)}
.b-insight p{font-size:14.5px;max-width:52ch}
.bnote{margin-top:10px!important;font-size:12px!important;font-style:italic}
.b-chart{width:100%;height:80px;margin-top:10px}
.b-red .bic{background:#fde4dd;color:#c0392b}
.b-sand{background:linear-gradient(160deg,#fff,var(--sand))}
.b-sand .bic{background:#f4e6cc;color:#8a6d3b}
.b-mint{background:linear-gradient(160deg,#fff,var(--mint))}
.b-ink{background:var(--ink);border-color:var(--ink);grid-column:1/-1}
.b-ink h3{color:#fff} .b-ink p{color:#a9cfc8}
.b-ink .bic{background:rgba(255,255,255,.12);color:var(--teal-3)}

/* ---------- typographic line ---------- */
.typo{padding:60px 0}
.typo-line{margin:0;text-align:center;font-size:clamp(40px,12vw,104px);font-weight:800;letter-spacing:-.05em;line-height:.98}
.typo-line .w{display:inline-block;color:rgba(19,48,45,.14);transition:color .6s var(--ease)}
.typo-line .w.on{color:var(--ink)}
.typo-line .w.hl.on{background:linear-gradient(100deg,var(--teal),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}
html:not(.js) .typo-line .w{color:var(--ink)}

/* ---------- stories ---------- */
.stories-note{display:flex;justify-content:center;margin:0 auto;font-size:13px;font-weight:700;color:var(--ink-3);background:rgba(255,255,255,.7);border:1px dashed var(--line-2);border-radius:100px;padding:7px 14px;width:max-content;max-width:calc(100vw - 40px)}
.stories-marquee{overflow:hidden;padding:30px 0 10px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.stories-row{display:flex;gap:14px;width:max-content;animation:marq 70s linear infinite}
.stories-marquee:hover .stories-row,.stories-row.paused{animation-play-state:paused}
.story{width:290px;flex:0 0 auto;border-radius:var(--r-md);padding:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px}
.story-badge{align-self:flex-start;font-size:11.5px;font-weight:800;color:var(--a);background:color-mix(in srgb,var(--a) 12%,#fff);padding:5px 10px;border-radius:100px}
.story p{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.5;flex:1}
.story footer{display:flex;align-items:center;gap:10px}
.story footer i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:13px;color:#fff;background:var(--a)}
.story footer span{display:flex;flex-direction:column;line-height:1.2}
.story footer b{font-size:14px}
.story footer small{font-size:12px;color:var(--ink-3)}

/* ---------- pricing ---------- */
.billing{position:relative;display:flex;width:max-content;margin:26px auto 8px;padding:5px;border-radius:100px;background:rgba(255,255,255,.75);border:1px solid var(--line)}
.bill{position:relative;z-index:1;border:0;background:none;padding:10px 20px;font-weight:800;font-size:14px;border-radius:100px;cursor:pointer;color:var(--ink-3);transition:color .3s}
.bill.on{color:#fff}
.bill-pill{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;border-radius:100px;background:var(--ink);transition:transform .45s var(--ease),width .45s var(--ease)}
.trial-note{margin:6px 0 0;font-size:13px;font-weight:700;color:var(--orange);opacity:0;transition:opacity .3s}
.trial-note.show{opacity:1}
.price-grid{display:grid;gap:14px;margin-top:22px}
.pcard{position:relative;border-radius:var(--r-lg);padding:24px;background:rgba(255,255,255,.82);border:1px solid var(--line);display:flex;flex-direction:column}
.pcard h3{margin:0;font-size:20px}
.pcard .desc{margin:6px 0 14px;font-size:14px;color:var(--ink-3)}
.price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.price b{font-size:40px;letter-spacing:-.04em;line-height:1}
.price span{font-weight:700;color:var(--ink-3)}
.price .save{font-size:12px;font-weight:800;color:var(--orange);background:var(--peach);padding:4px 9px;border-radius:100px}
.price .save:empty{display:none}
.feats{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:9px;flex:1}
.feats li{position:relative;padding-left:26px;font-size:14.5px;color:var(--ink-2)}
.feats li::before{content:"";position:absolute;left:0;top:3px;width:17px;height:17px;border-radius:50%;background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c7a7b' stroke-width='3.2'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center/11px no-repeat}
.feats li:empty{display:none}
.pcard--feat{background:linear-gradient(160deg,#1a4744,var(--deep));color:#fff;border-color:transparent;box-shadow:0 40px 70px -40px rgba(13,40,38,.85)}
.pcard--feat .desc,.pcard--feat .price span,.pcard--feat .feats li{color:#bfdcd6}
.pcard--feat .feats li::before{background-color:rgba(255,255,255,.12);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237fd1c7' stroke-width='3.2'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E")}
.pcard-tag{position:absolute;top:18px;right:18px;font-size:11.5px;font-weight:800;color:var(--deep);background:var(--teal-3);padding:5px 10px;border-radius:100px}
.cmp{margin-top:22px;border-radius:var(--r-md);background:rgba(255,255,255,.7);border:1px solid var(--line);overflow:hidden}
.cmp summary{list-style:none;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:8px;padding:16px;font-weight:800}
.cmp summary::-webkit-details-marker{display:none}
.cmp summary svg{width:18px;height:18px;transition:transform .35s var(--ease)}
.cmp[open] summary svg{transform:rotate(180deg)}
.cmp-table{padding:0 12px 14px;font-size:13px;overflow-x:auto}
.cmp-row{display:grid;grid-template-columns:minmax(120px,1.6fr) repeat(3,minmax(54px,.6fr));align-items:center;border-top:1px solid var(--line);min-width:330px}
.cmp-row>div{padding:10px 6px}
.cmp-row>div:not(:first-child){text-align:center;font-weight:700}
.cmp-row.head>div{font-weight:800;font-size:13px;color:var(--ink)}
.cmp-row.head{border-top:0}
.cmp-row .plus{background:rgba(44,122,123,.06)}
.cmp-grp{padding:16px 6px 6px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);min-width:330px}
.ck{display:inline-block;width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c7a7b' stroke-width='3'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/contain no-repeat;vertical-align:middle}
.no{color:var(--ink-3);opacity:.6}

/* ---------- guide + faq ---------- */
.guide-card{display:grid;gap:20px;align-items:center;border-radius:var(--r-lg);padding:26px;margin-bottom:84px;background:linear-gradient(140deg,var(--teal),#1b5655);color:#fff;box-shadow:var(--shadow);overflow:hidden;position:relative;transition:transform .45s var(--ease)}
.guide-card:hover{transform:translateY(-4px)}
.guide-card h3{margin:0 0 8px;font-size:clamp(22px,5.6vw,30px);letter-spacing:-.03em;line-height:1.12}
.guide-card p{margin:0 0 18px;color:#d2ebe6;font-size:15px}
.guide-book{position:relative;width:120px;height:150px;margin:0 auto}
.guide-book span{position:absolute;inset:0;border-radius:6px 14px 14px 6px;background:#fff;box-shadow:0 14px 28px -12px rgba(0,0,0,.5);transform-origin:left center}
.guide-book span:nth-child(1){transform:rotate(-8deg) translateX(-6px);background:#cfe9e3}
.guide-book span:nth-child(2){transform:rotate(-3deg);background:#fbe3cf}
.guide-book span:nth-child(3){transform:rotate(3deg);background:#fff}
.guide-book b{position:absolute;inset:0;display:grid;place-items:center;font-size:46px;font-weight:800;color:var(--teal);transform:rotate(3deg)}
.guide-card:hover .guide-book span:nth-child(1){transform:rotate(-14deg) translateX(-12px)}
.guide-card:hover .guide-book span:nth-child(2){transform:rotate(-7deg) translateX(-4px)}
.guide-book span{transition:transform .5s var(--ease)}
.faq{max-width:780px;margin:30px auto 0;display:grid;gap:10px}
.faq-item{border-radius:var(--r-sm);background:rgba(255,255,255,.8);border:1px solid var(--line);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 18px;font-weight:800;font-size:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary i{position:relative;width:26px;height:26px;border-radius:50%;background:var(--mint);flex:0 0 auto}
.faq-item summary i::before,.faq-item summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:2px;background:var(--teal);border-radius:2px;transform:translate(-50%,-50%);transition:transform .35s var(--ease)}
.faq-item summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq-item p{margin:0;padding:0 18px 18px;color:var(--ink-2);font-size:15px}
.faq-contact{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:28px;text-align:center}
.faq-contact p{margin:0;color:var(--ink-3)}

/* ---------- final ---------- */
.final-card{position:relative;overflow:hidden;border-radius:36px;padding:40px 24px 0;background:radial-gradient(120% 90% at 0% 0%,#1f5856 0%,var(--deep) 60%);color:#fff;display:grid;gap:24px;text-align:center}
.final-glow{position:absolute;width:420px;height:420px;border-radius:50%;right:-120px;top:-140px;background:radial-gradient(circle,rgba(207,122,55,.35),transparent 65%);animation:breathe 8s ease-in-out infinite}
.final-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.final-card h2{margin:0 0 10px;font-size:clamp(30px,8vw,54px);letter-spacing:-.04em;line-height:1.04;max-width:14ch}
.final-card p{margin:0 0 22px;color:#bfdcd6;font-size:16.5px}
.final-device{position:relative;height:260px;overflow:hidden;display:flex;justify-content:center}
.device--sm{width:230px;margin-top:6px;transform:rotate(-6deg);animation:float 7s ease-in-out infinite}

/* ---------- footer ---------- */
.foot{padding:60px 0 34px}
.foot-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.foot-about{grid-column:1/-1}
.foot-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px}
.foot-brand img{width:34px;height:34px;border-radius:50%}
.foot p{color:var(--ink-3);font-size:14px;max-width:36ch}
.foot h4{margin:0 0 10px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-weight:600;font-size:14.5px}
.foot ul a{word-break:break-word}
.foot ul a:hover{color:var(--teal)}
.foot-bottom{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-3)}
.foot-id{display:block;margin-top:6px;font-size:12px}

/* ---------- report card (from v2) ---------- */
.rc-head{position:relative;padding:18px 20px 16px;background:linear-gradient(135deg,var(--teal),#1f5f5f);color:#fff}
.rc-head .t{display:flex;align-items:center;gap:8px;font-weight:800;font-size:17px}
.rc-head .t svg{width:20px;height:20px}
.rc-head .s{opacity:.85;font-size:13.5px;margin-top:4px}
.rc-period{position:absolute;right:16px;top:16px;font-size:11.5px;font-weight:700;background:rgba(255,255,255,.18);padding:5px 10px;border-radius:100px}
.rc-body{padding:6px 20px 18px}
.rc-group{padding:12px 0;border-bottom:1px solid var(--line)}
.rc-group:last-child{border-bottom:0}
.rc-glabel{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.rc-line{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:2px 0}
.rc-line .l{color:var(--ink-2)} .rc-line .v{font-weight:700}
.rc-line .v.ok{color:var(--teal)}
.rc-sub{font-size:12.5px;color:var(--teal);font-weight:700}
.rc-bar{height:7px;border-radius:7px;background:var(--mint);margin-top:8px;overflow:hidden}
.rc-spark{width:100%;height:30px;margin-top:6px}

/* ============================================================
   v3 — real 3D phone, scroll-driven sections
   ============================================================ */

/* ---------- 3D phone (built by js: plates = the body's thickness) ---------- */
.scene{position:relative;perspective:1500px;perspective-origin:50% 35%;display:grid;place-items:center}
.spin,.tilt,.float{position:relative;transform-style:preserve-3d}
.tilt{transform:rotateX(var(--rx,7deg)) rotateY(var(--ry,-22deg)) rotateZ(var(--rz,0deg));transition:transform .9s var(--ease)}
.float{animation:float3 7s ease-in-out infinite}
@keyframes float3{50%{transform:translate3d(0,-12px,0) rotateZ(.8deg)}}
.p3{--d:calc(var(--w) * .1);--R:calc(var(--w) * .16);--b:calc(var(--w) * .03);position:relative;width:var(--w);height:calc(var(--w) * 2.07);transform-style:preserve-3d}
.p3-plate{position:absolute;inset:0;border-radius:var(--R);background:hsl(172 15% var(--l));transform:translateZ(calc(var(--d) * var(--t)))}
.p3-key{position:absolute;width:calc(var(--w) * .03);border-radius:3px;background:hsl(172 12% var(--l));transform:translateZ(calc(var(--d) * var(--t)))}
.p3-front,.p3-back{position:absolute;inset:0;border-radius:var(--R);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.p3-front{transform:translateZ(calc(var(--d) / 2 + .6px));background:#0a1413;padding:var(--b);box-shadow:inset 0 0 0 calc(var(--w) * .007) #9dbcb6,inset 0 0 0 calc(var(--w) * .013) #33504c}
.p3-screen{position:relative;width:100%;height:100%;border-radius:calc(var(--R) - var(--b));overflow:hidden;background:#f4f6f4;transform:translateZ(0)}
.p3-screen>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}
.p3-island{position:absolute;z-index:6;top:calc(var(--w) * .052);left:50%;width:31%;height:calc(var(--w) * .088);transform:translateX(-50%);border-radius:99px;background:#040908}
.p3-glare{position:absolute;inset:0;z-index:7;border-radius:inherit;pointer-events:none;background:linear-gradient(112deg,rgba(255,255,255,0) 20%,rgba(255,255,255,.26) 34%,rgba(255,255,255,.06) 46%,rgba(255,255,255,0) 60%);background-size:260% 100%;background-position:var(--gx,40%) 0;transition:background-position .9s var(--ease)}
.p3-back{transform:rotateY(180deg) translateZ(calc(var(--d) / 2 + .6px));background:radial-gradient(130% 90% at 25% 8%,#4a928e 0%,#24605c 45%,#143b39 100%);box-shadow:inset 0 0 0 calc(var(--w) * .007) #9dbcb6}
.p3-back::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg,rgba(255,255,255,.18),rgba(255,255,255,0) 40%)}
.p3-cam{position:absolute;left:7%;top:3.4%;width:38%;aspect-ratio:1;border-radius:26%;background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(0,0,0,.18));box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 6px 12px rgba(0,0,0,.28)}
.p3-cam i{position:absolute;width:40%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 34%,#5b7fb0 0 10%,#101a2c 28%,#000 62%);box-shadow:0 0 0 calc(var(--w) * .01) #1b2d2b,0 0 0 calc(var(--w) * .014) rgba(255,255,255,.22)}
.p3-cam i:nth-child(1){left:7%;top:7%} .p3-cam i:nth-child(2){left:7%;top:53%} .p3-cam i:nth-child(3){left:53%;top:30%}
.p3-cam b{position:absolute;right:12%;top:10%;width:12%;aspect-ratio:1;border-radius:50%;background:#f7f0d8;opacity:.8}
.p3-logo{position:absolute;left:50%;top:52%;width:26%;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 8px 20px rgba(0,0,0,.25)}
.floor{position:absolute;left:50%;bottom:-2%;width:62%;height:34px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(13,40,38,.32),rgba(13,40,38,0));filter:blur(4px);animation:floor 7s ease-in-out infinite;pointer-events:none}
@keyframes floor{50%{transform:translateX(-50%) scale(.86);opacity:.7}}

/* cards that live in front of a phone, in 3D */
.orb{position:absolute;z-index:4;width:max-content;transform-style:preserve-3d}
.live{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.96);white-space:nowrap}
.ic-rose{background:var(--rose)}

/* ---------- hero ---------- */
.hero{padding:96px 0 24px}
.hero-grid{gap:0;grid-template-areas:"copy" "visual" "tester"}
.hero-copy{grid-area:copy}
.hero-visual{position:relative;grid-area:visual;--w:min(56vw,250px);height:calc(var(--w) * 2.07 + 90px);perspective:none;display:grid;place-items:center;margin-top:6px}
.tester{grid-area:tester;margin:6px auto 0}
.halo{width:min(96vw,560px)}
.p3--hero{--w:inherit}
.hero .spin{transform:rotateY(-200deg) translate3d(0,40px,0) scale(.8);transition:transform 2.4s cubic-bezier(.16,1,.3,1)}
.hero.lit .spin{transform:none}
html:not(.js) .hero .spin{transform:none}
.orb--dose{left:-20%;top:13%;transform:translateZ(70px)}
.orb--weight{right:-26%;top:35%;transform:translateZ(120px)}
.orb--timer{left:-22%;bottom:24%;transform:translateZ(95px)}
.orb--report{right:-16%;bottom:7%;transform:translateZ(60px)}
.hero.lit .orb--dose .live{transition-delay:1.3s}
.hero.lit .orb--weight .live{transition-delay:1.55s}
.hero.lit .orb--timer .live{transition-delay:1.8s}
.hero.lit .orb--report .live{transition-delay:2.05s}
.hero.lit .orb--dose .live{animation:bob 6s 2.6s ease-in-out infinite}
.hero.lit .orb--weight .live{animation:bob 7s 2.9s ease-in-out infinite}
.hero.lit .orb--timer .live{animation:bob 6.5s 3.2s ease-in-out infinite}
.hero.lit .orb--report .live{animation:bob 7.5s 3.5s ease-in-out infinite}
.hero.lit .live .draw{animation-delay:1.9s}
.hero.lit .live .spark-line{animation-delay:2s}
.hero.lit .spark-dot{animation-delay:3.4s}


/* ---------- questions: light up as you scroll ---------- */
.q{align-items:center}
.q.scrub>span:not(.q-n){color:rgba(19,48,45,.2);transition:color .6s var(--ease)}
.q.scrub{transition:background .6s var(--ease),box-shadow .6s var(--ease),transform .6s var(--ease)}
.q.scrub.on>span:not(.q-n){color:var(--ink)}
.q.scrub.on{background:#fff;box-shadow:var(--shadow-sm)}
.q-ck{margin-left:auto;width:36px;height:36px;flex:0 0 auto;border-radius:50%;background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c7a7b' stroke-width='3'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/18px no-repeat;transform:scale(0) rotate(-30deg);transition:transform .55s var(--ease) .15s}
.q.on .q-ck{transform:none}
.q-answer.scrub{opacity:.12;transform:translateY(12px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.q-answer.scrub.on{opacity:1;transform:none}
html:not(.js) .q.scrub>span{color:var(--ink)} html:not(.js) .q-answer.scrub{opacity:1}

/* ---------- story: sticky phone, screens change as you scroll ---------- */
.scr-sec{position:relative;padding-top:80px}
.story-head{margin-bottom:0}
.story-track{position:relative;height:500vh;height:500svh}
.story-stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:86px var(--pad) 22px;overflow:hidden;--c:#4684ad}
.story-glow{position:absolute;left:50%;top:58%;width:min(120vw,720px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,color-mix(in srgb,var(--c) 34%,transparent) 0%,transparent 62%);transition:background .9s var(--ease);pointer-events:none}
.story-copy{position:relative;height:124px;width:100%;max-width:560px;margin:0 auto;text-align:center}
.sstep{position:absolute;inset:0;margin:0;opacity:0;transform:translateY(28px);transition:opacity .45s var(--ease),transform .7s var(--ease);pointer-events:none}
.sstep.on{opacity:1;transform:none}
.sstep.past{transform:translateY(-28px)}
.sstep-n{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.16em;color:var(--c)}
.sstep h3{margin:2px 0 6px;font-size:clamp(30px,8vw,64px);line-height:1.02;letter-spacing:-.04em}
.sstep p{margin:0 auto;max-width:34ch;color:var(--ink-2);font-size:16px}
.story-visual{position:relative;display:grid;place-items:center;min-height:0}
.p3--story{--w:min(62vw,calc((100svh - 300px) * .47),320px)}
.p3--story .scr{opacity:0;transition:opacity .25s}
.p3--story .scr.on{opacity:1}
.orb--s{left:-24%;bottom:16%;transform:translateZ(100px)}
.scard{position:absolute;left:0;bottom:0;opacity:0;transform:translateY(16px) scale(.9);transition:opacity .4s var(--ease),transform .6s var(--ease)}
.scard.on{opacity:1;transform:none;transition-delay:.25s}
.story-rail{position:relative;display:flex;justify-content:center;gap:6px;padding-top:14px}
.story-rail i{position:relative;width:34px;height:4px;border-radius:4px;background:var(--line-2);overflow:hidden}
.story-rail i::after{content:"";position:absolute;inset:0;background:var(--c);transform:scaleX(var(--f,0));transform-origin:left}
.story-hint{position:absolute;left:50%;bottom:36px;transform:translateX(-50%);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);transition:opacity .4s;display:none}
.story-stage.start .story-hint{opacity:1}
.story-stage:not(.start) .story-hint{opacity:0}

/* ---------- report: the notes collect into the card as you scroll ---------- */
.report{position:relative;padding-top:80px}
.rep-track{position:relative;height:230vh;height:230svh}
.report-stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;place-items:center;--p:0;padding-top:40px}
.scraps{position:absolute;inset:0}
.scrap{--q:clamp(0,(var(--p) - .04 - var(--k) * .035) / .38,1);position:absolute;left:50%;top:52%;padding:9px 13px;border-radius:6px;font-weight:700;font-size:13px;white-space:nowrap;box-shadow:0 10px 18px -12px rgba(13,40,38,.5);transform:translate(-50%,-50%) translate(calc(var(--x) * clamp(1.9px,.55vw,8.5px) * (1 - var(--q))),calc(var(--y) * 7.2px * (1 - var(--q)))) rotate(calc(var(--r) * 1deg * (1 - var(--q)))) scale(calc(1 - var(--q) * .65));opacity:calc(1 - var(--q) * 1.1);animation:scrapb 6s ease-in-out infinite;animation-delay:calc(var(--k) * -.7s)}
@keyframes scrapb{50%{translate:0 -7px}}
.scrap.y{background:#fff3b8} .scrap.p{background:#ffd9e0} .scrap.g{background:#d6f1dc} .scrap.b{background:#d7e8fb}
.report-card{--c:clamp(0,(var(--p) - .28) / .26,1);position:relative;z-index:2;width:min(86vw,380px);border-radius:24px;background:#fff;box-shadow:0 40px 80px -36px rgba(13,40,38,.55),0 0 0 1px var(--line);overflow:hidden;opacity:var(--c);transform:perspective(900px) translateY(calc((1 - var(--c)) * 50px)) rotateX(calc((1 - var(--c)) * 28deg)) scale(calc(.82 + var(--c) * .18))}
.rc-group{--gq:clamp(0,(var(--p) - .46 - var(--g) * .06) / .14,1);opacity:var(--gq);transform:translateY(calc((1 - var(--gq)) * 12px))}
.rc-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--teal),var(--teal-3));border-radius:7px;transform-origin:left;transform:scaleX(calc(var(--w) * clamp(0,(var(--p) - .58) / .2,1)));transition:none}
.rc-line-path{stroke-dasharray:1;stroke-dashoffset:calc(1 - clamp(0,(var(--p) - .66) / .2,1))}
.rc-stamp{--s:clamp(0,(var(--p) - .84) / .08,1);position:absolute;right:16px;bottom:16px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:#fff;box-shadow:0 12px 24px -10px rgba(44,122,123,.8);opacity:var(--s);transform:scale(calc(.4 + var(--s) * .6)) rotate(calc((1 - var(--s)) * -40deg))}
.rc-stamp svg{width:26px;height:26px}
.rep-cta{padding:10px 0 40px}

/* ---------- family: two real phones ---------- */
.fam{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;max-width:560px;width:100%;margin:0 auto;padding-top:56px}
.fam-arc{position:absolute;left:24%;width:52%;top:6px;height:70px;overflow:visible}
.fam-arc path{fill:none;vector-effect:non-scaling-stroke}
.fam-arc-base{stroke:rgba(44,122,123,.35);stroke-width:2;stroke-dasharray:3 7}
.fam-arc-dot{stroke:var(--teal);stroke-width:7;stroke-linecap:round;stroke-dasharray:4 200;stroke-dashoffset:4;opacity:0}
.fam.go .fam-arc-dot{animation:arc .9s .15s cubic-bezier(.5,0,.3,1) forwards}
@keyframes arc{0%{opacity:1;stroke-dashoffset:4}90%{opacity:1}100%{opacity:0;stroke-dashoffset:-100}}
.fam-ph{display:flex;flex-direction:column;align-items:center;gap:14px}
.fam-who{font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);background:#fff;border:1px solid var(--line);padding:6px 12px;border-radius:100px;box-shadow:var(--shadow-sm)}
.p3--mini{--w:min(42vw,215px)}
.fam-ph--a .tilt{--rx:8deg;--ry:24deg}
.fam-ph--b .tilt{--rx:8deg;--ry:-24deg}
.fam .floor{bottom:-6%}
.ui{position:absolute;inset:0;background:linear-gradient(180deg,#f4f8f6,#e9f2ee);font-size:calc(var(--w) * .064);padding:calc(var(--w) * .2) .65em .7em;display:flex;flex-direction:column;gap:.55em;text-align:left;color:var(--ink)}
.ui-status{position:absolute;top:calc(var(--w) * .07);left:1.25em;right:1.25em;display:flex;justify-content:space-between;align-items:center;font-size:.72em}
.ui-status i{width:1.9em;height:.85em;border-radius:.25em;border:1.5px solid var(--ink);position:relative}
.ui-status i::after{content:"";position:absolute;inset:1.5px;right:35%;background:var(--ink);border-radius:1px}
.ui-head{display:flex;align-items:center;gap:.5em;margin-bottom:.1em}
.ui-head img{width:2.3em;height:2.3em;border-radius:50%;object-fit:cover}
.ui-head small{display:block;font-size:.68em;font-weight:700;color:var(--ink-3);line-height:1.1}
.ui-head b{font-size:1.15em;letter-spacing:-.02em;line-height:1.1}
.ui-card{position:relative;background:#fff;border-radius:.9em;padding:.65em;display:grid;gap:.5em;box-shadow:0 .5em 1.2em -.7em rgba(13,40,38,.45)}
.ui-card.later{grid-template-columns:auto 1fr auto;align-items:center;opacity:.75}
.ui-pill{width:1.8em;height:.62em;border-radius:1em;background:linear-gradient(90deg,var(--teal) 50%,#dcebe7 50%)}
.ui-dose b{display:block;font-size:.88em;line-height:1.2}
.ui-dose small{font-size:.72em;color:var(--ink-3);font-weight:600}
.ui-btn{position:relative;display:block;height:2.4em;border-radius:.75em;background:var(--ink);color:#fff;font-weight:800;font-size:.76em;overflow:hidden}
.ui-btn>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.35em;padding:0 .5em;text-align:center;line-height:1.1;transition:opacity .3s,transform .5s var(--ease)}
.ui-btn .b{background:var(--teal);opacity:0;transform:translateY(100%)}
.ui-btn svg{width:1.25em;height:1.25em;flex:0 0 auto}
.fam.go .ui-btn .a{opacity:0;transform:translateY(-60%)}
.fam.go .ui-btn .b{opacity:1;transform:none}
.fam.go .fam-ph--b .ui-btn>span{transition-delay:1.15s}
.ui-tag{font-size:.66em;font-weight:800;color:var(--ink-3);background:var(--cream);padding:.3em .6em;border-radius:1em}
.ui-tap{position:absolute;left:50%;bottom:.85em;width:3em;height:3em;margin:-1.5em 0 0 -1.5em;border-radius:50%;background:rgba(127,209,199,.7);transform:scale(0);opacity:0;pointer-events:none}
.fam.tap .ui-tap{animation:utap .65s var(--ease)}
@keyframes utap{0%{opacity:1;transform:scale(.2)}100%{opacity:0;transform:scale(1.7)}}
.ui-notif{position:absolute;z-index:5;left:.45em;right:.45em;top:calc(var(--w) * .2);display:flex;gap:.5em;align-items:center;padding:.6em .6em;border-radius:1.05em;background:rgba(19,48,45,.95);color:#fff;box-shadow:0 1em 2em -1em rgba(0,0,0,.6);transform:translateY(-180%) scale(.9);opacity:0;transition:transform .7s var(--ease),opacity .35s}
.ui-notif img{width:2em;height:2em;border-radius:.55em;flex:0 0 auto}
.ui-notif b{display:block;font-size:.8em;line-height:1.2}
.ui-notif small{display:block;font-size:.66em;opacity:.8;line-height:1.25}
.fam.go .ui-notif{transform:none;opacity:1;transition-delay:.9s}

/* ---------- bento: light that follows the pointer ---------- */
.bcard::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(280px circle at var(--mx,50%) var(--my,0%),rgba(127,209,199,.28),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.bcard:hover::before{opacity:1}
.b-ink::before{background:radial-gradient(280px circle at var(--mx,50%) var(--my,0%),rgba(127,209,199,.18),transparent 60%)}

/* ---------- final: a phone turning slowly ---------- */
.final-device{height:300px;overflow:hidden;display:flex;justify-content:center;align-items:flex-start;padding-top:20px}
.p3--final{--w:min(50vw,220px)}
.tilt--spin{animation:spinY 16s linear infinite;transition:none}
@keyframes spinY{from{transform:rotateX(8deg) rotateY(0deg)}to{transform:rotateX(8deg) rotateY(360deg)}}

/* ============================================================
   ≥ 720px
   ============================================================ */
@media (min-width:720px){
  :root{--pad:32px}
  .section{padding:120px 0}
  .bento{grid-template-columns:repeat(3,1fr);gap:14px}
  .b-wide{grid-column:span 2}
  .bcard{padding:22px}
  .price-grid{grid-template-columns:repeat(3,1fr);align-items:stretch}
  .pcard--feat{transform:translateY(-10px)}
  .guide-card{grid-template-columns:200px 1fr;padding:36px 40px}
  .foot-grid{grid-template-columns:2fr 1fr 1fr 1fr}
  .foot-about{grid-column:auto}
  .stories-note{font-size:13.5px}
  .hero-visual{--w:280px}
  .p3--mini{--w:220px}
  .story-hint{display:block}
}

/* ============================================================
   ≥ 1000px — desktop
   ============================================================ */
@media (min-width:1000px){
  .nav{padding:14px 24px}
  .nav-links,.nav-cta,.lang{display:flex}
  .nav-burger,.nav-mobile{display:none}
  .hero{padding:130px 0 50px;display:flex;align-items:center}
  .hero-grid{grid-template-columns:1.05fr .95fr;grid-template-areas:"copy visual" "tester visual";align-items:center;column-gap:40px;row-gap:0}
  .hero-copy{text-align:left;align-items:flex-start;align-self:end}
  .tester{align-self:start;margin:22px 0 0}
  .hero-title{font-size:clamp(46px,5.2vw,78px);max-width:12ch}
  .stores{justify-content:flex-start}
  .hero-visual{--w:300px;height:720px}
  .scroll-cue{display:flex}
  .questions .qs{margin-top:44px}
  .q{padding:26px 30px}
  .story-stage{grid-template-columns:1fr 1fr;grid-template-rows:1fr;align-items:center;padding:100px max(var(--pad),calc((100vw - 1180px) / 2 + var(--pad))) 40px;column-gap:40px}
  .story-copy{height:260px;text-align:left;margin:0;max-width:none}
  .sstep{display:flex;flex-direction:column;justify-content:center}
  .sstep h3{font-size:clamp(48px,5vw,76px)}
  .sstep p{margin:0;font-size:19px}
  .story-glow{left:72%;top:55%}
  .p3--story{--w:min(310px,calc((100vh - 170px) * .47))}
  .story-rail{position:absolute;left:max(var(--pad),calc((100vw - 1180px) / 2 + var(--pad)));bottom:60px;justify-content:flex-start}
  .story-hint{left:auto;right:max(var(--pad),calc((100vw - 1180px) / 2 + var(--pad)));transform:none;bottom:60px}
  .family-grid{grid-template-columns:1fr 1.1fr;gap:60px}
  .family-copy{text-align:left;align-items:flex-start}
  .family-copy .lede{margin:0}
  .p3--mini{--w:230px}
  .bento{grid-template-columns:repeat(4,1fr)}
  .b-wide{grid-column:span 2;grid-row:span 2}
  .b-chart{height:120px;margin-top:20px}
  .b-ink{grid-column:span 1}
  .final-card{grid-template-columns:1.2fr .8fr;text-align:left;padding:60px 60px 0;align-items:end}
  .final-copy{align-items:flex-start;padding-bottom:60px}
  .final-device{height:380px}
  .p3--final{--w:250px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
  .hero-title .word>span,.live{transform:none!important;opacity:1!important}
  .hero .spin{transform:none}
  .spark-line{stroke-dashoffset:0}
  .report-stage{--p:1!important}
}

/* cards inside an orb take their own size */
.orb .live{position:relative}
.orb .scard{position:absolute}
.floor{z-index:-1}
/* story: the phone turns a full circle at every chapter; the screen changes while you see its back */
#storySpin{transition:transform 1.25s cubic-bezier(.65,0,.25,1)}
.rc-wrap{position:relative;z-index:2}
.rc-wrap .rc-stamp{z-index:3;right:-10px;bottom:-20px;top:auto;width:56px;height:56px;border:4px solid var(--cream)}
/* family phones: the rest of the screen */
.ui-week{background:#fff;border-radius:.9em;padding:.6em .65em;display:grid;gap:.45em;box-shadow:0 .5em 1.2em -.7em rgba(13,40,38,.45)}
.ui-wl{display:flex;justify-content:space-between;align-items:baseline}
.ui-wl small{font-size:.68em;font-weight:700;color:var(--ink-3)}
.ui-wl b{font-size:.8em;color:var(--teal)}
.ui-dots{display:grid;grid-template-columns:repeat(7,1fr);gap:.28em}
.ui-dots i{aspect-ratio:1;border-radius:50%;background:var(--teal)}
.ui-dots i.miss{background:#e7ecea}
.ui-dots i.today{background:#e7ecea;box-shadow:inset 0 0 0 .14em var(--teal);transition:background .4s .2s}
.fam.go .ui-dots i.today{background:var(--teal)}
.fam.go .fam-ph--b .ui-dots i.today{transition-delay:1.3s}
.ui-tabs{margin:auto -.65em -.7em;padding:.65em 1em 1.1em;display:flex;justify-content:space-between;background:#fff;border-top:1px solid var(--line)}
.ui-tabs i{width:1.1em;height:1.1em;border-radius:.3em;background:#d5dfdc}
.ui-tabs i.on{background:var(--teal)}
.eyebrow-pill{max-width:100%;text-align:center}
@media (max-width:719px){.orb--s{left:-10%;bottom:10%}}

/* hero background: a heartbeat line and soft rings behind the phone */
.rings{position:absolute;left:50%;top:50%;width:calc(var(--w) * 1.5);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.rings i{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(44,122,123,.35);opacity:0;animation:ring 6s cubic-bezier(.2,.6,.3,1) infinite}
.rings i:nth-child(2){animation-delay:2s} .rings i:nth-child(3){animation-delay:4s}
@keyframes ring{0%{transform:scale(.5);opacity:0}15%{opacity:.9}100%{transform:scale(1.25);opacity:0}}
.ecg{position:absolute;left:-12%;width:124%;height:auto;top:50%;transform:translateY(-50%);pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.ecg path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.ecg-base{stroke:rgba(44,122,123,.16);stroke-width:3}
.ecg-run{stroke:var(--teal);stroke-width:4;stroke-dasharray:.22 .78;stroke-dashoffset:1;opacity:.75;animation:ecg 3.2s linear infinite;filter:drop-shadow(0 0 6px rgba(44,122,123,.55))}
@keyframes ecg{to{stroke-dashoffset:0}}
@media (min-width:1000px){.ecg{left:-25%;width:150%}}

/* conditions marquee: title and note */
.cond-head{padding-top:30px}
.cond-head .eyebrow{margin-bottom:4px}
.cond-note{max-width:62ch;margin:6px auto 0;color:var(--ink-3);font-size:15px}

/* testimonials: the photos are back */
.story{padding:0 0 20px;overflow:hidden}
.story>*:not(.story-img){margin-left:20px;margin-right:20px}
.story-img{height:170px;overflow:hidden;background:var(--mint)}
.story-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.story:hover .story-img img{transform:scale(1.05)}
.halo{position:absolute;width:min(92vw,520px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(127,209,199,.55),rgba(127,209,199,0) 62%);filter:blur(8px);animation:breathe 7s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.08);opacity:.85}}
.hero-visual .halo{width:min(96vw,560px)}

/* ---------- joy: four moments that slide sideways as you scroll ---------- */
.joy{overflow:hidden;padding-bottom:80px}
.joy-head .lede{margin:0 auto;text-align:center}
.joy-row{display:flex;gap:16px;width:max-content;padding:44px var(--pad) 30px;transform:translate3d(var(--jx,0px),0,0);will-change:transform}
.joy-card{margin:0;flex:0 0 auto;width:min(48vw,220px);transform:translateY(var(--dy,0px)) rotate(var(--rot,0deg))}
.joy-card:nth-child(odd){--rot:-1.8deg}
.joy-card:nth-child(even){--rot:1.8deg;--dy:22px}
.joy-ph{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--mint);box-shadow:var(--shadow);-webkit-clip-path:inset(100% 0 0 0 round 20px);clip-path:inset(100% 0 0 0 round 20px);transition:clip-path 1.2s var(--ease),-webkit-clip-path 1.2s var(--ease);transition-delay:calc(var(--i) * 140ms)}
.joy.is-on .joy-ph{-webkit-clip-path:inset(0 0 0 0 round 20px);clip-path:inset(0 0 0 0 round 20px)}
.joy-ph img{position:absolute;top:0;left:-10%;width:120%;max-width:none;height:100%;object-fit:cover;transform:translate3d(var(--jp,0px),0,0) scale(1.06)}
.joy-card figcaption{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:800;font-size:14.5px;letter-spacing:-.01em;opacity:0;transform:translateY(10px);transition:opacity .6s,transform .7s var(--ease);transition-delay:calc(var(--i) * 140ms + .5s)}
.joy-card figcaption::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--teal)}
.joy-card:nth-child(even) figcaption::before{background:var(--orange)}
.joy.is-on .joy-card figcaption{opacity:1;transform:none}
html:not(.js) .joy-ph{clip-path:none} html:not(.js) .joy-card figcaption{opacity:1;transform:none}

/* ---------- life stages: the line grows, the photos pop in ---------- */
.tl{position:relative;display:grid;gap:46px;margin:44px auto 0;max-width:560px;padding-left:38px}
.tl-line{position:absolute;left:12px;top:30px;bottom:40px;width:3px;border-radius:3px;background:var(--line-2);overflow:hidden}
.tl-line i{position:absolute;inset:0;background:linear-gradient(var(--teal),var(--teal-3),var(--orange));transform-origin:top;transform:scaleY(var(--lp,0))}
.tl-node{position:relative}
.tl-dot{position:absolute;left:-34px;top:34px;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--line-2);transition:background .4s,border-color .4s,box-shadow .5s}
.tl-node.on .tl-dot{background:var(--teal);border-color:var(--teal);box-shadow:0 0 0 7px rgba(44,122,123,.16)}
.tl-pair{display:flex;margin-bottom:14px}
.tl-ph{width:86px;height:86px;border-radius:50%;overflow:hidden;border:4px solid #fff;box-shadow:var(--shadow-sm);background:var(--mint);opacity:0;transform:scale(.5) rotate(-14deg);transition:transform .8s cubic-bezier(.34,1.56,.64,1),opacity .4s}
.tl-ph+.tl-ph{margin-left:-20px;transform:scale(.5) rotate(14deg);transition-delay:.14s}
.tl-ph img{width:100%;height:100%;object-fit:cover}
.tl-node.on .tl-ph{opacity:1;transform:none}
.tl-txt{opacity:.25;transform:translateY(12px);transition:opacity .6s,transform .7s var(--ease)}
.tl-node.on .tl-txt{opacity:1;transform:none}
.tl-txt h3{margin:0 0 6px;font-size:23px;letter-spacing:-.03em}
.tl-txt p{margin:0;color:var(--ink-2);font-size:15.5px;max-width:40ch}
html:not(.js) .tl-ph{opacity:1;transform:none} html:not(.js) .tl-txt{opacity:1;transform:none}
@media (min-width:1000px){
  .joy-card{width:250px}
  .tl{grid-template-columns:repeat(3,1fr);gap:40px;max-width:1040px;padding-left:0}
  .tl-line{left:16%;right:16%;top:142px;bottom:auto;width:auto;height:3px}
  .tl-line i{transform-origin:left;transform:scaleX(var(--lp,0))}
  .tl-node{display:flex;flex-direction:column;align-items:center;text-align:center}
  .tl-pair{margin-bottom:12px}
  .tl-ph{width:122px;height:122px}
  .tl-dot{position:relative;left:auto;top:auto;margin:0 0 22px}
  .tl-txt p{margin:0 auto}
}
@media (prefers-reduced-motion:reduce){
  .joy-ph{clip-path:none!important}.joy-card figcaption,.tl-ph,.tl-txt{opacity:1;transform:none}
  .tl-line i{transform:none}
}
/* joy: all four photos fully visible — 2×2 on phones, one row on computers */
.joy-row{display:grid;grid-template-columns:1fr 1fr;gap:16px 14px;width:auto;max-width:1180px;margin:0 auto;padding:36px var(--pad) 30px}
.joy-row .joy-card{width:auto}
@media (min-width:1000px){.joy-row{grid-template-columns:repeat(4,1fr);gap:22px}}
/* joy, compact: four small photos fanned like a hand of cards.
   They start stacked in the middle and open out when the section arrives. */
.joy{padding-bottom:60px}
.joy-row{display:flex;justify-content:center;align-items:flex-start;gap:0;padding:30px var(--pad) 26px;--cw:min(24vw,180px)}
.joy-row .joy-card{position:relative;width:var(--cw);flex:0 0 auto;margin-left:calc(var(--cw) * -.16);transform:translateX(var(--sx)) rotate(0deg);opacity:0;transition:transform 1.1s cubic-bezier(.34,1.3,.5,1),opacity .5s;transition-delay:calc(var(--i) * 90ms)}
.joy-row .joy-card:first-child{margin-left:0}
.joy-row .joy-card:nth-child(1){--sx:142%;--rot:-9deg;--dy:12px}
.joy-row .joy-card:nth-child(2){--sx:47%;--rot:-3deg;--dy:0px}
.joy-row .joy-card:nth-child(3){--sx:-47%;--rot:3deg;--dy:0px}
.joy-row .joy-card:nth-child(4){--sx:-142%;--rot:9deg;--dy:12px}
.joy.is-on .joy-row .joy-card{opacity:1;transform:translateY(var(--dy)) rotate(var(--rot))}
.joy-row .joy-card:hover{z-index:3;transform:translateY(-8px) rotate(0deg) scale(1.06);transition-delay:0s}
.joy-row .joy-ph{border-radius:16px;border:3px solid #fff;-webkit-clip-path:none;clip-path:none;box-shadow:0 18px 30px -16px rgba(13,40,38,.55)}
.joy-row .joy-card figcaption{position:absolute;left:3px;right:3px;bottom:3px;margin:0;padding:22px 8px 8px;border-radius:0 0 13px 13px;background:linear-gradient(transparent,rgba(13,40,38,.78));color:#fff;font-size:clamp(10px,2.7vw,13px);line-height:1.2;font-weight:700;opacity:1;transform:none}
.joy-row .joy-card figcaption::before{display:none}
html:not(.js) .joy-row .joy-card{opacity:1;transform:rotate(var(--rot))}
@media (prefers-reduced-motion:reduce){.joy-row .joy-card{opacity:1;transform:rotate(var(--rot))}}
/* joy: no overlap, so no caption is ever covered by the next photo */
.joy-row{--cw:min(20.5vw,190px);gap:clamp(6px,1.6vw,18px)}
.joy-row .joy-card,.joy-row .joy-card:first-child{margin-left:0}
.joy-row .joy-card:nth-child(1){--sx:156%;--rot:-6deg}
.joy-row .joy-card:nth-child(2){--sx:52%;--rot:-2deg}
.joy-row .joy-card:nth-child(3){--sx:-52%;--rot:2deg}
.joy-row .joy-card:nth-child(4){--sx:-156%;--rot:6deg}
.joy-row .joy-card figcaption{padding:26px 7px 7px;font-size:clamp(9.5px,2.5vw,13.5px);overflow-wrap:anywhere;text-shadow:0 1px 4px rgba(0,0,0,.35)}
/* hero: one quiet line that leads to the plans */
.plans-link{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;margin-top:16px;padding:9px 16px;border-radius:100px;background:rgba(255,255,255,.7);border:1px solid var(--line);font-size:14px;color:var(--ink-2);transition:background .3s,transform .35s var(--ease)}
.plans-link b{display:inline-flex;align-items:center;gap:5px;color:var(--teal);font-weight:800}
.plans-link svg{width:15px;height:15px;transition:transform .35s var(--ease)}
.plans-link:hover{background:#fff;transform:translateY(-2px)}
.plans-link:hover svg{transform:translateX(3px)}

/* ---------- every screen size (8 Oct check from 320px to 1920px) ---------- */
/* story: the text block is as tall as its longest chapter, the phone takes what is left */
.story-copy{display:grid;height:auto;min-height:0}
.sstep{position:relative;inset:auto;grid-area:1/1}
.story-visual{container-type:size}
@supports (width:1cqh){
  .p3--story{--w:min(62vw,44cqh,320px)}
}
@media (max-height:700px){
  .story-stage{padding-top:78px}
  .sstep h3{font-size:clamp(26px,7vw,40px)}
  .sstep p{font-size:14.5px}
}
/* report: the stage leaves room for the bar on top; shorter card on short screens */
.report-stage{padding:76px 0 12px}
@media (max-height:760px){
  .rc-head{padding:13px 16px 12px}
  .rc-head .t{font-size:15.5px}
  .rc-body{padding:2px 16px 10px}
  .rc-group{padding:7px 0}
  .rc-line{font-size:13px;padding:1px 0}
  .rc-glabel{margin-bottom:3px;font-size:10px}
  .rc-spark{height:22px;margin-top:3px}
  .rc-bar{margin-top:5px}
}
@media (max-height:620px){
  .rc-group:last-child{display:none}
  .rc-sub{display:none}
}
.story-visual{align-self:stretch;justify-self:stretch}
@supports (width:1cqh){
  @media (min-width:720px){.p3--story{--w:min(62vw,44cqh,400px)}}
  @media (min-width:1000px){.p3--story{--w:min(40vw,44cqh,340px)}}
}

/* ============================================================
   8 Oct, after going live — Ivan's changes
   ============================================================ */
/* the top bar stays at the top of the page: it does not follow the scroll */
.nav{position:absolute}
html{scroll-padding-top:16px}
.story-stage{padding-top:34px}
.report-stage{padding-top:24px}
@media (max-height:700px){.story-stage{padding-top:24px}}
@media (min-width:1000px){.story-stage{padding-top:50px}}

/* hero: store buttons and "see the plans" under the phone */
.hero-grid{grid-template-areas:"copy" "visual" "cta" "tester"}
.hero-copy .hero-sub{margin-bottom:0}
.hero-cta{grid-area:cta;display:flex;flex-direction:column;align-items:center;margin-top:4px}
.hero-cta .plans-link{margin-top:14px}
@media (min-width:1000px){
  .hero-grid{grid-template-areas:"copy visual" "cta visual" "tester visual"}
  .hero-copy .hero-sub{margin-bottom:24px}
  .hero-cta{align-items:flex-start;margin-top:0}
}

/* the three questions: one under the other, aligned */
.q:nth-child(2),.q:nth-child(3){margin-left:0}

/* joy photos: a tidy grid of landscape photos — 2×2 on phones, 4 in a row on computers */
.joy-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:980px;margin:0 auto;padding:28px var(--pad) 10px;--cw:auto}
.joy-row .joy-card,.joy-row .joy-card:first-child{width:auto;margin-left:0;--rot:0deg;--dy:0px}
.joy-row .joy-card{opacity:0;transform:translateY(24px) scale(.96);transition:opacity .6s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i) * 110ms)}
.joy.is-on .joy-row .joy-card{opacity:1;transform:none}
.joy-row .joy-card:hover{transform:translateY(-4px)}
.joy-row .joy-ph{aspect-ratio:4/3;border:0;border-radius:18px}
.joy-row .joy-ph img{left:0;width:100%;transform:scale(1.04);animation:kenburns 14s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -3s)}
@keyframes kenburns{to{transform:scale(1.14) translate3d(-2%,-1%,0)}}
.joy-row .joy-card figcaption{left:0;right:0;bottom:0;border-radius:0 0 18px 18px;padding:28px 12px 10px;font-size:13.5px}
@media (min-width:1000px){.joy-row{grid-template-columns:repeat(4,1fr);gap:18px}.joy-row .joy-card figcaption{font-size:14.5px}}
html:not(.js) .joy-row .joy-card{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.joy-row .joy-card{opacity:1;transform:none}}

/* smoother scrolling on phones: when the browser shows or hides its own bars
   the screen changes height. The soft background no longer resizes with it,
   no longer uses a heavy blur (the gradients are already soft), and stands
   still on touch screens. */
.aurora,.grain{bottom:auto;height:100vh;height:100lvh}
.aurora i{filter:none;will-change:auto}
@media (hover:none){.aurora i{animation:none}}

/* story chapters: the rail is made of buttons (tap a chapter) */
.story-rail{gap:4px}
.story-rail button{position:relative;width:36px;height:24px;border:0;padding:0;background:none;cursor:pointer}
.story-rail button::before,.story-rail button::after{content:"";position:absolute;left:0;right:0;top:10px;height:4px;border-radius:4px}
.story-rail button::before{background:var(--line-2)}
.story-rail button::after{background:var(--c);transform:scaleX(var(--f,0));transform-origin:left;transition:transform .5s var(--ease)}
.story-arrow,.story-swipe{display:none}
@keyframes nudge{50%{transform:translateX(5px)}}

/* phones and tablets: the chapters change by swiping the phone sideways
   (or with the arrows / the rail), not by scrolling down */
@media (max-width:999px){
  .story-track{height:auto}
  .story-stage{position:relative;height:auto;overflow:hidden;grid-template-rows:auto auto auto auto;padding:6px var(--pad) 26px;touch-action:pan-y;-webkit-user-select:none;user-select:none}
  .story-visual{height:clamp(330px,60svh,640px)}
  .story-hint{display:none!important}
  .story-arrow{display:grid;place-items:center;position:absolute;top:50%;z-index:6;width:44px;height:44px;margin-top:-22px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;transition:opacity .3s,transform .3s var(--ease)}
  .story-arrow:active{transform:scale(.92)}
  .story-arrow.prev{left:-4px} .story-arrow.next{right:-4px}
  .story-arrow svg{width:20px;height:20px}
  .story-arrow[disabled]{opacity:.25;pointer-events:none}
  .story-rail{padding-top:12px}
  .story-swipe{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:6px;font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);transition:opacity .4s}
  .story-swipe svg{width:18px;height:18px;animation:nudge 1.6s ease-in-out infinite}
  .story-stage.touched .story-swipe{opacity:0}
  #storyTilt{transition:transform .5s var(--ease)}
  #storyTilt.dragging{transition:none}
}

/* store buttons: both the same size, content centred */
.stores .store{width:214px;min-width:0;justify-content:center;padding-left:14px;padding-right:14px}
.stores{justify-content:center}
@media (min-width:1000px){.hero-cta .stores{justify-content:flex-start}}

/* seven chapters now (glucose curve and seizure timer added) */
@media (min-width:1000px){.story-track{height:700vh;height:700svh}}
.story-rail button{width:30px}
.ic-blue{background:#3f8fb0}
.scard--glu{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}
.scard--glu .spark{width:118px;height:34px}

/* hero cards further out, so they cover less of the phone (8 Oct) */
.orb--dose{left:-40%;top:2%}
.orb--weight{right:-44%;top:30%}
.orb--timer{left:-42%;bottom:30%}
.orb--report{right:-38%;bottom:4%}
@media (max-width:719px){
  .hero-visual{--w:min(50vw,230px)}
  .hero .orb{scale:.8}
  .orb--dose{left:-52%;top:4%}
  .orb--weight{right:-56%;top:31%}
  .orb--timer{left:-54%;bottom:32%}
  .orb--report{right:-52%;bottom:6%}
}
@media (max-width:719px){
  /* pinned to the screen edges (12px), whatever the phone width */
  .orb--dose,.orb--timer{transform-origin:left center;left:calc(-16px - (100vw - var(--w)) / 2)}
  .orb--weight,.orb--report{transform-origin:right center;right:calc(-12px - (100vw - var(--w)) / 2)}
}
@media (min-width:1000px) and (max-width:1279px){
  .orb--dose{left:-28%} .orb--weight{right:-30%} .orb--timer{left:-30%} .orb--report{right:-24%}
}
@media (min-width:720px) and (max-width:999px){
  .orb--dose{left:-46%} .orb--weight{right:-50%} .orb--timer{left:-48%} .orb--report{right:-44%}
}

/* ============================================================
   Lighter on phones (8 Oct): no live blurs, nothing animating off screen
   ============================================================ */
.halo{filter:none;animation:none;background:radial-gradient(circle at 50% 45%,rgba(127,209,199,.45),rgba(127,209,199,0) 62%)}
.floor{filter:none;animation:none;background:radial-gradient(closest-side,rgba(13,40,38,.26),rgba(13,40,38,0))}
.ecg-run{filter:none}
/* a section that is off screen stops all its animations */
.off,.off *,.off *::before,.off *::after{animation-play-state:paused!important}
@media (hover:none){
  /* frosted glass is one of the most expensive things a phone can draw */
  .eyebrow-pill,.nav.scrolled .nav-inner,.nav-mobile{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .eyebrow-pill{background:rgba(255,255,255,.92)}
  #cookie-banner{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important}
}
