/* The home page (index.html #landing): a product page in the style of a premium hardware/app site.
   A full-colour hero, a statement whose words light up as you scroll, chapters with giant headlines and card
   galleries of the app on iPhones, a "routine" panel, and downloads. Phone screens are drawn in HTML/CSS. */
.home{--text:#1D1D1F;--muted:#6E6E73;--line:#D2D2D7;--soft:#F5F5F7;--page:#fff;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter",system-ui,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;
  background:var(--page);color:var(--text);overflow-x:hidden;letter-spacing:-.011em}
html:not(.has-session) body{background:#fff;margin:0}
.home *{box-sizing:border-box}
.home a{color:inherit;text-decoration:none}
.wrap{width:100%;max-width:1060px;margin:0 auto;padding:0 22px}
.wrap.narrow{max-width:820px}

/* Bar: white text over the hero, then frosted white once you scroll */
.htop{position:fixed;top:0;left:0;right:0;z-index:30;color:#fff;transition:background .35s,color .35s,box-shadow .35s}
.htop.scrolled{color:var(--text);background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 .5px 0 rgba(0,0,0,.12)}
.htopin{display:flex;align-items:center;justify-content:space-between;height:52px}
.hbrand{display:inline-flex;align-items:center;gap:9px;font-size:19px;font-weight:600;letter-spacing:-.02em}
.hlogo{width:28px;height:28px;border-radius:8px;display:inline-grid;place-items:center;color:#fff;background:linear-gradient(180deg,#2A2A2D,#161617 55%,#0A0A0B);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.12)}
.hlogo.big{width:76px;height:76px;border-radius:21px;margin-bottom:18px;box-shadow:0 20px 40px -20px rgba(0,0,0,.55)}
.hnav{display:flex;align-items:center;gap:22px}
.lnk{font-size:13px;opacity:.85}
.lnk:hover{opacity:1}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 22px;border-radius:99px;background:#1D1D1F;color:#fff;font-size:17px;font-weight:500;white-space:nowrap;transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .2s}
.pill:hover{opacity:.86}.pill:active{transform:scale(.96)}
.pill.sm{min-height:30px;padding:0 14px;font-size:13px}
.htop:not(.scrolled) .pill.sm{background:#fff;color:#0A0A0C}
.pill.big{min-height:52px;padding:0 28px;font-size:17px}
.pill.light{background:#fff;color:#0A0A0C}
.pill.ghostl{background:rgba(255,255,255,.16);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
@media (max-width:640px){.hide-sm{display:none}.hnav{gap:14px}}

/* Hero: full-bleed colour with slowly drifting circles */
.heroin{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:90px 22px 60px}
.heroic{opacity:.95}
.heroname{margin-top:12px;font-size:clamp(24px,3vw,34px);font-weight:600;opacity:.9;letter-spacing:-.02em}
.hero h1{margin:26px 0 0;font-size:clamp(52px,9.4vw,124px);font-weight:700;line-height:1.02;letter-spacing:-.045em}
.herocta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:40px}

/* Statement: deep blue; words brighten as they scroll into place */
.words{margin:0 0 9vh;font-size:clamp(28px,4.2vw,48px);line-height:1.18;font-weight:600;letter-spacing:-.025em;text-align:center}
.words:last-child{margin-bottom:0}

/* Chapters */
.chap{padding:120px 0 40px;background:linear-gradient(180deg,var(--page) 0%,var(--tint) 40%,var(--tint) 100%)}
.chic{display:inline-grid;color:var(--ch)}
.chh{margin:18px 0 0;font-size:clamp(52px,8.6vw,108px);line-height:1.02;font-weight:700;letter-spacing:-.045em}
.chp{margin:34px 0 0;max-width:760px;font-size:clamp(20px,2.3vw,28px);line-height:1.32;font-weight:600;letter-spacing:-.02em}
.chp em{font-style:normal;color:var(--ch)}
.gal{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:64px max(22px,calc(50% - 508px)) 24px;scrollbar-width:none;outline:none}
.gal::-webkit-scrollbar{display:none}
.gcard{flex:none;width:min(420px,84vw);height:600px;position:relative;overflow:hidden;scroll-snap-align:center;border-radius:30px;background:#fff;display:flex;flex-direction:column;align-items:center;
  box-shadow:0 2px 12px rgba(0,0,0,.04);transition:transform .45s cubic-bezier(.32,.72,0,1)}
.gcard:hover{transform:scale(1.012)}
.gtx{padding:34px 34px 0;font-size:21px;line-height:1.3;font-weight:600;color:var(--muted);letter-spacing:-.02em;align-self:stretch}
.gtx b{color:var(--text);font-weight:600}
.gcard .ph{position:absolute;left:50%;top:186px;transform:translateX(-50%)}
.paddles{display:flex;justify-content:flex-end;gap:14px;padding-bottom:30px}
.pad{width:42px;height:42px;border:0;border-radius:50%;display:grid;place-items:center;background:rgba(210,210,215,.64);color:#1D1D1F;cursor:pointer;transition:opacity .2s,background .2s}
.pad:hover{background:rgba(210,210,215,.9)}.pad:disabled{opacity:.35;cursor:default}
.privacy{padding-bottom:120px}
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.splitph{display:flex;justify-content:center}
.splitph .ph{height:560px}

/* Routine */
.routine{padding:130px 0 60px}
.bigc{margin:0;text-align:center;font-size:clamp(40px,6vw,72px);line-height:1.05;font-weight:700;letter-spacing:-.04em}
.bigc .dim{color:var(--muted)}
.panel{margin-top:64px;border-radius:34px;background:var(--soft);display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center;padding:56px 56px 0;overflow:hidden;min-height:560px}
.panelph{align-self:end;display:flex;justify-content:center}
.panelph .ph{height:520px;border-bottom-left-radius:0;border-bottom-right-radius:0}
.paneltx{margin:0 0 56px;font-size:clamp(19px,2vw,24px);line-height:1.4;font-weight:600;color:var(--muted);letter-spacing:-.02em}
.paneltx b{color:var(--text);font-weight:600}

/* Downloads: three columns with rules */
.dlsec{padding:110px 0 40px}
.hdl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px;margin-top:70px}
.dl{text-align:center;display:flex;flex-direction:column;align-items:center}
.dl h3{margin:0;padding-bottom:22px;width:100%;border-bottom:1px solid var(--line);font-size:24px;font-weight:600;letter-spacing:-.02em}
.dl p{margin:20px 0 0;font-size:17px;line-height:1.45;color:var(--muted)}
.dl .pill{margin-top:24px;min-height:40px;padding:0 20px;font-size:15px;background:#0071E3}
.dl.mine h3{color:#0071E3}
.dl details{margin-top:14px;font-size:14px;color:var(--muted);max-width:300px}
.dl summary{cursor:pointer;color:#0066CC}
.closing{padding:130px 0 120px;text-align:center}
.closing .wrap{display:flex;flex-direction:column;align-items:center}
.closing p{margin:18px 0 30px;font-size:21px;color:var(--muted)}
.hfooter{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;padding-bottom:36px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.hfooter nav{display:flex;gap:18px}.hfooter a:hover{text-decoration:underline}

/* ── Phone mockups ── */
.ph{width:284px;height:584px;border-radius:50px;padding:11px;background:linear-gradient(145deg,#3A3A3C,#1C1C1E);box-shadow:0 30px 60px -30px rgba(0,0,0,.45),inset 0 0 0 1.5px rgba(255,255,255,.1)}
.phs{height:100%;border-radius:40px;background:#F2F2F7;color:#000;padding:12px 15px;overflow:hidden;font-size:12.5px;letter-spacing:-.01em}
.ph.dark .phs{background:#000;color:#fff}
.phst{display:flex;align-items:center;justify-content:space-between;height:22px;margin-bottom:14px;font-size:12px}
.phi{width:84px;height:24px;border-radius:99px;background:#000}
.phst i{width:21px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 1.2px currentColor;opacity:.8}
.eyb{font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.55}
.ttl{font-size:27px;font-weight:800;letter-spacing:-.03em;margin:2px 0 12px}
.ttl.sm{font-size:22px}.ttl.c{text-align:center;font-size:21px;line-height:1.15;margin:8px 0 14px}
.wk{display:flex;justify-content:space-between;margin-bottom:14px}
.wd{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px}
.wd i{font-style:normal;font-weight:600;opacity:.5}
.wd b{--p:0;position:relative;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#1C1C1E calc(var(--p) * 1%),rgba(120,120,128,.2) 0)}
.wd b::before{content:"";position:absolute;inset:3px;border-radius:50%;background:#F2F2F7}
.wd em{position:relative;font-style:normal;font-weight:700;font-size:8.5px}
.wd.on b::before{background:#1C1C1E}.wd.on em{color:#fff}
.wd.fut{opacity:.35}
.sum{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ring{position:relative;width:54px;height:54px;display:grid;place-items:center}
.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.ring circle{fill:none;stroke:rgba(120,120,128,.2);stroke-width:4}
.ring .ringfill{stroke:#1C1C1E;stroke-linecap:round;stroke-dasharray:0 100;animation:rfill 9s ease-in-out infinite}
.sum strong{font-size:25px;font-weight:800;margin-right:4px}
.sum small{opacity:.55}
.lab{font-size:14px;font-weight:700;margin-bottom:8px}
.grp{background:#fff;border-radius:14px;padding:4px 0;margin-bottom:10px}
.ph.dark .grp{background:#1C1C1E}
.grp.outline{box-shadow:0 0 0 2px #30B94D}
.sec{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.5;padding:8px 12px 3px}
.rw{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:13px}
.rw + .rw::before{content:"";position:absolute;top:0;left:42px;right:0;height:.5px;background:rgba(60,60,67,.14)}
.bx{width:20px;height:20px;border-radius:50%;flex:none;display:grid;place-items:center;color:transparent;box-shadow:inset 0 0 0 1.5px rgba(120,120,128,.45)}
.rw.on .bx{background:#1C1C1E;color:#fff;box-shadow:none}
.rw.on span:last-child{opacity:.45}
.rw[class*=" t"] .bx{animation:tick 9s ease-in-out infinite}
.rw[class*=" t"] span:last-child{animation:dim 9s ease-in-out infinite}
.t1 .bx,.t1 span:last-child{animation-delay:.6s!important}.t2 .bx,.t2 span:last-child{animation-delay:1.5s!important}.t3 .bx,.t3 span:last-child{animation-delay:2.4s!important}.t4 .bx,.t4 span:last-child{animation-delay:3.3s!important}.t5 .bx,.t5 span:last-child{animation-delay:4.2s!important}
@keyframes tick{0%,6%{background:transparent;color:transparent;box-shadow:inset 0 0 0 1.5px rgba(120,120,128,.45);transform:scale(1)}9%{transform:scale(1.2)}12%,80%{background:#1C1C1E;color:#fff;box-shadow:none;transform:scale(1)}88%,100%{background:transparent;color:transparent;box-shadow:inset 0 0 0 1.5px rgba(120,120,128,.45)}}
@keyframes dim{0%,8%,88%,100%{opacity:1}12%,80%{opacity:.45}}
@keyframes rfill{0%,6%{stroke-dasharray:0 100}52%,80%{stroke-dasharray:100 100}92%,100%{stroke-dasharray:0 100}}
@property --n{syntax:'<integer>';inherits:false;initial-value:0}
.cnt{--n:0;counter-reset:n var(--n)}
.cnt.pct{position:relative;font-size:12px;font-weight:700;animation:cpct 9s ease-in-out infinite}
.cnt.pct::after{content:counter(n) '%'}
.cnt.n5{animation:c5 9s ease-in-out infinite}
.cnt.n5::after{content:counter(n)}
@keyframes cpct{0%,6%{--n:0}52%,80%{--n:100}92%,100%{--n:0}}
@keyframes c5{0%,10%{--n:0}20%{--n:1}30%{--n:2}40%{--n:3}50%,80%{--n:5}92%,100%{--n:0}}
.bigring{position:relative;width:180px;height:180px;margin:26px auto 0;display:grid;place-items:center;text-align:center}
.bigring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.bigring circle{fill:none;stroke:rgba(120,120,128,.18);stroke-width:12}
.bigring .bigfill{stroke:#1C1C1E;stroke-linecap:round;stroke-dasharray:83 100}
.bigring b{display:block;font-size:34px;font-weight:800}.bigring small{opacity:.55}
.seg{display:flex;background:rgba(118,118,128,.12);border-radius:9px;padding:2px;margin-bottom:12px}
.seg span{flex:1;text-align:center;padding:5px;border-radius:7px;font-size:11.5px;font-weight:500}
.seg .on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:600}
.lb .lbr{display:flex;align-items:center;gap:9px;padding:10px 12px;position:relative}
.lb .lbr + .lbr::before{content:"";position:absolute;top:0;left:12px;right:0;height:.5px;background:rgba(60,60,67,.14)}
.rk{width:10px;font-size:11px;opacity:.5}
.av{--c:#999;--p:0;position:relative;width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--c);color:#fff;font-size:10px;font-weight:700}
.av::before{content:"";position:absolute;inset:-3.5px;border-radius:50%;background:conic-gradient(#1C1C1E calc(var(--p) * 1%),rgba(120,120,128,.2) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px))}
.nm{flex:1;font-size:13px;font-weight:500}
.bar{width:54px;height:5px;border-radius:9px;background:rgba(120,120,128,.18);overflow:hidden;display:block}
.bar i{display:block;height:100%;background:#1C1C1E;border-radius:9px}
.lbr b{width:36px;text-align:right;font-size:12.5px}
.post{background:#fff;border-radius:16px;overflow:hidden}
.pwho{display:flex;align-items:center;gap:10px;padding:12px}
.pwho span{display:flex;flex-direction:column}.pwho small{opacity:.55;font-size:11px}
.pimg{position:relative;height:300px;background:linear-gradient(160deg,#3D6A4E,#2E5A44 60%,#22463A)}
.sun{position:absolute;left:24%;top:22%;width:74px;height:74px;border-radius:50%;background:#F7D27A;box-shadow:0 0 60px 10px rgba(247,210,122,.4)}
.preact{display:flex;gap:8px;padding:10px 12px}
.preact span{padding:4px 10px;border-radius:99px;background:rgba(118,118,128,.12);font-size:12px}
.ban{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:-2px 0 14px;border-radius:18px;background:rgba(255,255,255,.85);box-shadow:0 10px 30px -12px rgba(0,0,0,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.ban span:last-child{display:flex;flex-direction:column;font-size:11.5px}.ban small{opacity:.7}
.banic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#2A2A2D,#0A0A0B)}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.kpis span{background:#fff;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.kpis small{font-size:10px;opacity:.55}.kpis b{font-size:22px;font-weight:800}.kpis b.s{font-size:14px}
.chart svg{display:block;width:100%;height:150px;padding:4px 0 8px}
.orbcard{position:relative;height:300px;border-radius:20px;overflow:hidden;background:radial-gradient(120% 90% at 50% 34%,#2B2353 0%,#0E0E10 58%,#08080A 100%);margin-bottom:12px}
.orb{position:absolute;left:50%;top:36%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;background:radial-gradient(circle at 36% 30%,#E0CCFF 0%,#A55EEA 62%,#5A2C8C 100%);box-shadow:0 0 60px 14px rgba(165,94,234,.45);animation:breathe 8s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(.9)}50%{transform:scale(1.08)}}
.orbtx{position:absolute;left:14px;bottom:14px;right:70px;display:flex;flex-direction:column;gap:4px}
.orbtx small{font-size:9px;letter-spacing:.08em;opacity:.8}.orbtx b{font-size:19px;line-height:1.1}
.play{position:absolute;right:14px;bottom:14px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#000;font-size:14px}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tiles span{height:74px;border-radius:14px;background:#1C1C1E;display:grid;place-items:end center;padding-bottom:10px;font-size:11px}
.bignum b{font-size:52px;font-weight:800;letter-spacing:-.03em;margin-right:6px}.bignum small{opacity:.55}
.book{display:flex;gap:12px;align-items:center;margin-top:14px;background:#fff;border-radius:16px;padding:12px}
.cover{width:72px;height:104px;border-radius:6px;background:linear-gradient(160deg,#3E5C47,#2B4433);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:8px;box-shadow:0 10px 20px -10px rgba(0,0,0,.5)}
.cover b{font-size:11px}.cover small{font-size:8px;opacity:.75}
.book > div{flex:1;display:flex;flex-direction:column;gap:4px}.book > div small{opacity:.55;font-size:11px}
.book .bar{width:100%;margin-top:6px}
.tg{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;position:relative;font-size:13px}
.tg + .tg::before{content:"";position:absolute;top:0;left:12px;right:0;height:.5px;background:rgba(60,60,67,.14)}
.sw{width:38px;height:23px;border-radius:99px;background:rgba(120,120,128,.24);position:relative;transition:background .3s}
.sw i{position:absolute;left:2px;top:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:left .3s}
.sw.on{background:#34C759}.sw.on i{left:17px}
.note{font-size:11px;opacity:.55;padding:2px 6px}
.sdots{display:flex;justify-content:center;gap:5px;margin:4px 0 6px}
.sdots i{width:6px;height:6px;border-radius:9px;background:rgba(255,255,255,.25)}
.sdots i.on{width:18px;background:#fff}
.ints{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.ints span{display:flex;align-items:center;gap:7px;height:44px;padding:0 10px;border-radius:12px;background:#1C1C1E;font-size:11.5px;font-weight:500}
.ints span svg{opacity:.6;flex:none}
.ints span.on{background:#fff;color:#000}.ints span.on svg{opacity:1}
.cta{margin-top:14px;height:42px;border-radius:12px;background:#fff;color:#000;display:grid;place-items:center;font-weight:600}

/* Reveal on scroll (index.html adds .anim and .in) */
.home.anim .reveal{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.32,.72,0,1),transform 1s cubic-bezier(.32,.72,0,1)}
.home.anim .reveal.in{opacity:1;transform:none}
.home.anim .gcard{opacity:0;transform:translateX(40px);transition:opacity .9s cubic-bezier(.32,.72,0,1),transform .9s cubic-bezier(.32,.72,0,1)}
.home.anim .gal.in .gcard{opacity:1;transform:none}
.home.anim .gal.in .gcard:nth-child(2){transition-delay:.1s}.home.anim .gal.in .gcard:nth-child(3){transition-delay:.2s}

@media (max-width:820px){
  .split,.panel{grid-template-columns:1fr}
  .panel{padding:40px 24px 0;gap:28px}
  .paneltx{order:-1;margin:0}
  .hdl{grid-template-columns:1fr;gap:48px}
  .chap{padding-top:90px}
  .gcard{height:560px}
  .gcard .ph{top:170px}
  .splitph .ph,.panelph .ph{height:480px}
}
@media (prefers-reduced-motion:reduce){.home *,.home *::before,.home *::after{animation:none !important;transition:none !important}.home.anim .reveal,.home.anim .gcard{opacity:1;transform:none}/* Pills keep their own text colour (the general link rule would otherwise win) */.words .w{color:var(--text)}}
.home a.pill{color:#fff}
.home a.pill.light,.home .htop:not(.scrolled) a.pill.sm{color:#0A0A0C}


/* ── Our own opening: near-black with the app's progress rings turning slowly, a faint neutral glow, and a silver headline ── */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;overflow:hidden;color:#fff;background:#08080B}
.aurora{position:absolute;inset:-20%;filter:blur(70px);opacity:.75}
.aurora i{position:absolute;width:46vmax;height:46vmax;border-radius:50%;mix-blend-mode:screen;animation:aur 26s ease-in-out infinite alternate}
.aurora i:nth-child(1){left:6%;top:8%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 62%)}
.aurora i:nth-child(2){right:4%;top:2%;background:radial-gradient(circle,rgba(200,200,210,.12),transparent 62%);animation-duration:31s;animation-delay:-8s}
.aurora i:nth-child(3){left:18%;bottom:-6%;background:radial-gradient(circle,rgba(255,255,255,.08),transparent 62%);animation-duration:28s;animation-delay:-14s}
.aurora i:nth-child(4){right:14%;bottom:0;background:radial-gradient(circle,rgba(180,180,190,.10),transparent 62%);animation-duration:34s;animation-delay:-4s}
@keyframes aur{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6vmax,-4vmax,0) scale(1.15)}100%{transform:translate3d(-4vmax,5vmax,0) scale(.95)}}
.herorings{position:absolute;left:50%;top:50%;width:min(118vmin,980px);height:min(118vmin,980px);transform:translate(-50%,-50%) rotate(-90deg);opacity:.9;pointer-events:none}
.hr{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:0 100;animation:hring 3.2s cubic-bezier(.32,.72,0,1) .3s forwards, hspin 60s linear infinite}
.hr.r1{stroke:rgba(255,255,255,.16);--to:78;transform-origin:300px 300px}
.hr.r2{stroke:rgba(255,255,255,.12);--to:62;transform-origin:300px 300px;animation-delay:.5s,0s;animation-duration:3.2s,80s}
.hr.r3{stroke:rgba(255,255,255,.09);--to:90;transform-origin:300px 300px;animation-delay:.7s,0s;animation-duration:3.2s,100s}
.hr.r1{animation-name:hring1,hspin}.hr.r2{animation-name:hring2,hspin}.hr.r3{animation-name:hring3,hspin}
@keyframes hring1{to{stroke-dasharray:78 100}}@keyframes hring2{to{stroke-dasharray:62 100}}@keyframes hring3{to{stroke-dasharray:90 100}}
@keyframes hspin{to{transform:rotate(360deg)}}
.heroin{padding-top:110px}
.heroic{color:#fff}
.grad{background:linear-gradient(100deg,#8E8E93 0%,#D1D1D6 30%,#FFFFFF 46%,#D1D1D6 62%,#8E8E93 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:gradmove 12s ease-in-out infinite alternate}
@keyframes gradmove{from{background-position:100% 0}to{background-position:0% 0}}
.herosub{margin:28px auto 0;max-width:620px;font-size:clamp(19px,2.1vw,24px);line-height:1.38;font-weight:500;color:rgba(255,255,255,.72);letter-spacing:-.015em}
.pill.ghostl{background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.scrollcue{position:absolute;left:50%;bottom:30px;width:26px;height:42px;margin-left:-13px;border-radius:99px;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45)}
.scrollcue span{position:absolute;left:50%;top:9px;width:4px;height:8px;margin-left:-2px;border-radius:9px;background:#fff;animation:cue 2s ease-in-out infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}80%,100%{opacity:0;transform:translateY(14px)}}
/* The opening fades up piece by piece on load */
.hreveal{opacity:0;transform:translateY(24px);animation:hin 1.1s cubic-bezier(.32,.72,0,1) forwards}
.heroin .hreveal:nth-child(1){animation-delay:.15s}.heroin .hreveal:nth-child(2){animation-delay:.3s}.heroin .hreveal:nth-child(3){animation-delay:.45s}.heroin .hreveal:nth-child(4){animation-delay:.65s}.heroin .hreveal:nth-child(5){animation-delay:.8s}
@keyframes hin{to{opacity:1;transform:none}}

/* ── The statement, on soft white: words turn from grey to ink as you scroll ── */
.statement{background:#FBFBFD;color:var(--text);padding:20vh 0}
.words .w{color:#C7C7CC;transition:color .4s ease}
.words .w.on{color:var(--text)}
.words b{font-weight:700}
.words b .w.on{color:#000}

/* ── New phone screens ── */
.seg span{font-size:10.5px}
.focus{display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:12px;margin-bottom:10px}
.fring{position:relative;width:74px;height:74px;display:grid;place-items:center;flex:none}
.fring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.fring circle{fill:none;stroke:rgba(120,120,128,.18);stroke-width:6}
.fring .ff{stroke:#FF453A;stroke-linecap:round;stroke-dasharray:62 100}
.fring b{position:relative;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.focus > div{display:flex;flex-direction:column;gap:3px;min-width:0}
.focus small{font-size:9px;font-weight:700;letter-spacing:.08em;color:#FF453A}
.focus > div > b{font-size:14px}
.fbtns{display:flex;gap:6px;margin-top:4px}.fbtns i{font-style:normal;font-size:10.5px;font-weight:600;padding:4px 10px;border-radius:99px;background:rgba(118,118,128,.12)}
.tag{margin-left:auto;font-size:10.5px;opacity:.5;white-space:nowrap}
.rn{min-width:0}
.sec.plain{padding:6px 4px 6px}
.lock{height:100%;margin:-12px -15px;padding:40px 16px;background:linear-gradient(180deg,#2B1B3D,#0D1B2A 60%,#08080B);color:#fff;text-align:center}
.ltime{font-size:64px;font-weight:600;letter-spacing:-.03em;line-height:1}.ldate{font-size:13px;opacity:.8;margin:6px 0 28px}
.live{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;border-radius:20px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.live > div{flex:1;display:flex;flex-direction:column;gap:3px}.live small{font-size:10px;opacity:.7}.live b{font-size:13px}
.lt{font-size:18px !important;font-variant-numeric:tabular-nums}
.lbar{height:4px;border-radius:9px;background:rgba(255,255,255,.2);overflow:hidden;display:block}.lbar i{display:block;width:62%;height:100%;background:#FF453A}
.banic.sm2{width:28px;height:28px;flex:none}
.gl{background:#fff;border-radius:16px;padding:12px;margin-bottom:10px;display:flex;flex-direction:column;gap:10px}
.glh{display:flex;justify-content:space-between;gap:10px}.glh > b{font-size:14px;line-height:1.2}
.glh span{display:flex;flex-direction:column;align-items:flex-end}.glh span b{font-size:22px;font-weight:800;line-height:1}.glh small{font-size:9.5px;opacity:.55}
.glp{display:flex;align-items:center;gap:10px}.glp > div{flex:1}
.glr{display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px}.glr small{opacity:.55}
.bar.w{width:100%}.gls{font-size:10.5px;opacity:.55}
.vb{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.vb i{height:118px;border-radius:14px;display:block}
.celeb{height:100%;margin:-12px -15px;padding:110px 22px 0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;background:radial-gradient(120% 70% at 50% 30%,#3A2A08,#08080B 70%)}
.cck{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#FBF0C4,#E3BD57 30%,#B8862B 55%,#F2D27C 78%);color:#2B1F05;box-shadow:0 0 50px 8px rgba(227,189,87,.35);margin-bottom:10px}
.celeb small{font-size:10px;letter-spacing:.1em;color:#E3BD57;font-weight:700}.celeb b{font-size:22px;line-height:1.15}.celeb p{margin:0;font-size:12.5px;opacity:.7}
.hc{display:flex;align-items:center;gap:6px;justify-content:center;font-size:11px;opacity:.6;margin-top:4px}.hc span{color:#FF375F}
.sleepc{background:#fff;border-radius:16px;padding:14px;margin-bottom:10px}
.sleepc small{font-size:9.5px;letter-spacing:.08em;opacity:.55;font-weight:600}.sleepc > b{display:block;font-size:30px;font-weight:800;margin:2px 0 10px}
.sbars{display:flex;align-items:flex-end;gap:7px;height:90px}.sbars i{flex:1;border-radius:6px;background:linear-gradient(180deg,#5E5CE6,#30B0C7)}
.sl{display:flex;justify-content:space-between;font-size:10px;opacity:.5;margin-top:6px}
.goldp .phs .bx{box-shadow:inset 0 0 0 1.5px rgba(184,134,43,.5)}
.goldp .phs .rw.on .bx{background:linear-gradient(135deg,#FBF0C4,#E3BD57 30%,#B8862B 55%,#F2D27C 78%);color:#2B1F05}
.eyb.gold{color:#8C6512;opacity:1}
.goldt{background:linear-gradient(100deg,#7E5A0E,#B8892B 35%,#E9C664 48%,#B8892B 61%,#7E5A0E);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradmove 6s ease-in-out infinite alternate}
.sw5{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}.sw5 i{width:26px;height:26px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 2px 6px rgba(0,0,0,.15)}
.ph.dark .wd b{background:conic-gradient(#fff calc(var(--p) * 1%),rgba(120,120,128,.3) 0)}.ph.dark .wd b::before{background:#000}
.ph.dark .wd.on b::before{background:#fff}.ph.dark .wd.on em{color:#000}
.ph.dark .rw.on .bx{background:#fff;color:#000}
.ph.dark .rw + .rw::before{background:rgba(84,84,88,.6)}

/* ── More to love: a grid of small tiles ── */
.more{padding:120px 0 40px}
.mgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:56px}
.mtile{background:var(--soft);border-radius:24px;padding:26px 22px;display:flex;flex-direction:column;gap:8px;transition:transform .45s cubic-bezier(.32,.72,0,1)}
.mtile:hover{transform:translateY(-4px)}
.micon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#fff;color:var(--text);margin-bottom:8px;box-shadow:0 4px 14px -8px rgba(0,0,0,.25)}
.mtile:nth-child(4n+1) .micon{color:#30B94D}.mtile:nth-child(4n+2) .micon{color:#0A84FF}.mtile:nth-child(4n+3) .micon{color:#FF8A00}.mtile:nth-child(4n+4) .micon{color:#A55EEA}
.mtile b{font-size:19px;font-weight:700;letter-spacing:-.02em}.mtile p{margin:0;font-size:15px;line-height:1.4;color:var(--muted)}
@media (max-width:980px){.mgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.mgrid{grid-template-columns:1fr 1fr;gap:10px}.mtile{padding:18px 16px;border-radius:20px}.mtile b{font-size:16px}.mtile p{font-size:13.5px}}

/* ── Fade-ins: every section's pieces rise in, one after another (index.html sets --d per item) ── */
.home.anim .reveal{opacity:0;transform:translateY(46px) scale(.985);transition:opacity 1.1s cubic-bezier(.32,.72,0,1) var(--d,0s),transform 1.1s cubic-bezier(.32,.72,0,1) var(--d,0s)}
.home.anim .reveal.in{opacity:1;transform:none}
.home.anim .gcard{opacity:0;transform:translateY(60px);transition:opacity 1s cubic-bezier(.32,.72,0,1),transform 1.1s cubic-bezier(.32,.72,0,1)}
.home.anim .gcard .ph{transform:translateX(-50%) translateY(60px);transition:transform 1.4s cubic-bezier(.32,.72,0,1) .15s}
.home.anim .gal.in .gcard{opacity:1;transform:none}
.home.anim .gal.in .gcard .ph{transform:translateX(-50%)}
.home.anim .gal.in .gcard:nth-child(2){transition-delay:.12s}.home.anim .gal.in .gcard:nth-child(3){transition-delay:.24s}
.home.anim .splitph.reveal .ph,.home.anim .panel.reveal .ph{transform:translateY(80px);transition:transform 1.4s cubic-bezier(.32,.72,0,1) .2s}
.home.anim .splitph.reveal.in .ph,.home.anim .panel.reveal.in .ph{transform:none}
.home.anim .statement .words{opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1s cubic-bezier(.32,.72,0,1)}
.home.anim .statement .words.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.hreveal{opacity:1;transform:none}.home.anim .statement .words{opacity:1;transform:none}.hr{stroke-dasharray:78 100}}
@media (max-height:880px){.scrollcue{display:none}}
