/* Mindful 12 site motion (v2.3). Look, colors and easing taken from the members app welcome tour (/tour/): sage #6fa99b, ease cubic-bezier(.22,1,.36,1), 45ms word stagger, 24s drift, 5.5s per tour scene. Everything is off under prefers-reduced-motion. */
:root{--sage:#6fa99b;--sage-d:#4f8b7d;--tint:#e4f0ec;--ease:cubic-bezier(.22,1,.36,1)}
/* hover states */
.btn{transition:background .25s,border-color .25s,transform .35s var(--ease),box-shadow .35s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(15,42,92,.14)}
.btn:active{transform:translateY(0);box-shadow:none}
.card,.price,details,.player{transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}
.card:hover,.price:hover,.player:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,42,92,.09);border-color:#d6e4dd}
details:hover{border-color:#cfe0d8}
summary:after{transition:transform .35s var(--ease)}
details[open] .a{animation:m-up .5s var(--ease) both}
/* hero: slow drifting color like the tour background */
.hero{overflow:hidden;isolation:isolate}
.hero:after{content:"";position:absolute;inset:-25%;z-index:-1;pointer-events:none;background:radial-gradient(32% 30% at 78% 22%,rgba(111,169,155,.22) 0,transparent 70%),radial-gradient(36% 34% at 12% 86%,rgba(61,111,214,.12) 0,transparent 70%);animation:m-drift 24s ease-in-out infinite alternate}
.hero:before{z-index:-1}
@keyframes m-drift{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(-4%,3%) rotate(4deg)}}
/* decorative breathing orb (heroes). 10s cycle: 5s in, 5s out. No word labels. Reset Breath page uses audio only. */
.breathe{position:relative;width:var(--bs,220px);aspect-ratio:1;display:grid;place-items:center;pointer-events:none}
.breathe i{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.95),rgba(207,229,221,.85) 45%,rgba(111,169,155,.55));box-shadow:0 18px 50px rgba(15,42,92,.14);transform:scale(.62);animation:m-breathe 10s ease-in-out infinite}
.breathe i+i{background:none;box-shadow:none;border:1.5px solid rgba(111,169,155,.55);animation:m-ring 10s ease-in-out infinite}
.breathe i+i+i{border-color:rgba(15,42,92,.14);animation-delay:-.6s}
@keyframes m-breathe{0%,100%{transform:scale(.62)}50%{transform:scale(1)}}
@keyframes m-ring{0%,100%{transform:scale(.66);opacity:.2}50%{transform:scale(1.12);opacity:1}}
.hero-art,.about-art{position:relative;display:grid;place-items:center;padding:22px 0 4px}
.hero-art .breathe,.about-art .breathe{position:absolute;left:50%;top:50%;--bs:min(calc(var(--apw) * 1.75),94vw);transform:translate(-50%,-50%);z-index:0}
.dev{position:relative;z-index:1}
.about-art{--apw:min(220px,56vw)}
.hero-art .dev,.about-art .dev{--pw:var(--apw)}
.dev .wt-screen{background:#f8f6f1;padding-top:calc(var(--pw) * .115)}.dev .wt-screen img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
/* Home hero fits the first screen under the preview bar + sticky header (--top). Phone height follows the screen height (svh). */
.hero.hero-home{--top:122px;padding:26px 0 34px}
.hero-home .hero-art{--ph:clamp(250px,48svh,390px);--apw:calc(var(--ph) * 393 / 852)}
@media(min-width:1000px){
 .hero.hero-home{--top:102px;--hp:clamp(14px,3svh,40px);padding:0;min-height:calc(100svh - var(--top));display:flex;align-items:center}
 .hero-home>.wrap{width:100%;padding-top:var(--hp);padding-bottom:var(--hp)}
 .hero-home .hero-art{--ph:clamp(330px,calc(100svh - var(--top) - 2 * var(--hp) - 8px),620px)}
 .hero-art,.about-art{padding:0}
 .about-art{--apw:270px}
}
.wt-real{background:#f8f6f1;padding-top:calc(var(--pw) * .115)}.wt-real img{width:100%;height:auto;display:block}
.wt-sc.on .wt-real img{animation:m-real 5.5s ease-in-out forwards}
@keyframes m-real{0%,25%{transform:none}100%{transform:translateY(-6%)}}
.hero-orb{position:absolute;right:-70px;top:-40px;--bs:240px;opacity:.55;z-index:-1}
@media(min-width:1000px){.hero-orb{display:none}}
.pacer{display:flex;flex-direction:column;align-items:center;gap:14px;margin:8px auto 0;text-align:center}
.pacer p{margin:0;color:var(--muted);font-size:.9rem;max-width:26em}
/* Reset Breath: audio player only (Bob cut the worded circle, 19 Oct 2026). */
.rbp{gap:12px;margin:0 auto;width:100%;max-width:420px}
.rbp .player{width:100%;padding:12px 16px 10px;text-align:center;box-sizing:border-box}
.rbp .player strong{font:600 .9rem Poppins,sans-serif;color:var(--navy)}
.rbp .player audio{display:block;height:44px;margin-top:6px}
.rbp p{font-size:.88rem}
.rb-read{font-size:.88rem;color:var(--navy)}
.band .rbp p{color:#dfe6f2}.band .mt{margin-top:22px}
#listen,#read{scroll-margin-top:110px}
.hero.hero-rb{padding:30px 0 40px}
@media(max-width:999px){.hero-rb .split>*+*{margin-top:18px}.hero-rb h1{margin-bottom:.35em}.hero-rb .lead{margin-bottom:0}}
@media(min-width:1000px){.hero.hero-rb{padding:56px 0 64px}}
/* headline words rise in, like the tour copy */
.m-w{display:inline-block;opacity:0;transform:translateY(14px);animation:m-w .7s var(--ease) forwards}
@keyframes m-w{to{opacity:1;transform:none}}
.m-on .hero h1:not(.m-split){opacity:0;animation:m-show .01s 2s forwards}
.m-on .hero .eyebrow,.m-on .hero .lead,.m-on .hero .sub,.m-on .hero .btns,.m-on .hero .quote-line,.m-on .hero .hero-art,.m-on .hero .narrow>p:not([class]){opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s);animation:m-show .01s 2.5s forwards}
.m-on .hero .in{opacity:1;transform:none}
@keyframes m-show{to{opacity:1}}
/* scroll reveal (only when JS has run and motion is allowed) */
.m-on .rv{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.m-on .rv.in{opacity:1;transform:none}
.m-on .rv0{transition:none!important}
.m-on .card.rv.in:hover{transform:translateY(-3px)}
@keyframes m-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* timeline: line draws down, dots pop */
.tl{position:relative;border-left-color:transparent}
.tl:before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--line);transform-origin:top;transform:scaleY(1)}
.m-on .tl:before{transform:scaleY(0);transition:transform 1.8s var(--ease)}
.m-on .tl.in:before{transform:scaleY(1)}
.m-on .tl li:before{transform:scale(0);transition:transform .6s cubic-bezier(.22,1.6,.36,1) var(--d,0s),background .4s}
.m-on .tl li.in:before{transform:scale(1);background:#fff}
/* steps: numbered sequence with a soft sage pulse that travels 1 > 2 > 3 */
.steps .card:before{transition:transform .6s cubic-bezier(.22,1.6,.36,1) var(--d,0s)}
.m-on .steps .card.rv:before{transform:scale(.4)}
.m-on .steps .card.rv.in:before{transform:scale(1)}
.m-on .steps.in .card:before{animation:m-pulse 6s ease-in-out infinite;animation-delay:calc(var(--i,0)*2s + 1.2s)}
@keyframes m-pulse{0%,30%,100%{box-shadow:0 0 0 0 rgba(111,169,155,0)}10%{box-shadow:0 0 0 7px rgba(111,169,155,.45)}}
@media(min-width:1000px){
 .steps{position:relative}
 .steps:after{content:"";position:absolute;left:calc(16.66% - 20px);right:calc(16.66% - 20px);top:36px;height:2px;background:linear-gradient(90deg,var(--sage),rgba(111,169,155,.25));z-index:0;transform-origin:left;transform:scaleX(1);pointer-events:none;opacity:.6}
 .m-on .steps:after{transform:scaleX(0);transition:transform 1.6s var(--ease) .3s}
 .m-on .steps.in:after{transform:scaleX(1)}
 .steps .card{z-index:1}
}
/* calm band: very slow background drift */
.band{background-size:130% auto;animation:m-pan 40s ease-in-out infinite alternate}
@keyframes m-pan{from{background-position:0% 50%}to{background-position:100% 50%}}
/* app walkthrough (scenes ported from the members app tour) */
.wt{display:grid;gap:26px;align-items:center;justify-items:center}
@media(min-width:900px){.wt{grid-template-columns:auto minmax(0,460px);gap:72px;justify-content:center;justify-items:start}}
.wt-phone{--pw:min(250px,62vw);width:var(--pw);aspect-ratio:393/852;position:relative;container-type:inline-size;border-radius:calc(var(--pw) * .12);background:linear-gradient(160deg,#3a4254 0%,#1a1f2c 42%,#0e121c 78%,#222836 100%);padding:calc(var(--pw) * .028);box-shadow:0 36px 64px -18px rgba(15,42,92,.5),0 14px 28px rgba(15,42,92,.2),inset 0 0 0 1.2px #6a7388,inset 0 0 0 2.8px #0c1018;transform:perspective(1400px) rotateY(var(--ry,-5deg)) rotateX(2deg);transition:transform 1.35s var(--ease)}
.wt-screen{position:relative;width:100%;height:100%;border-radius:calc(var(--pw) * .095);overflow:hidden;background:#fff;isolation:isolate;font:400 4.6cqw/1.35 Poppins,sans-serif;color:var(--navy)}
.wt-island{position:absolute;top:calc(var(--pw) * .025);left:50%;transform:translateX(-50%);width:30%;height:calc(var(--pw) * .078);background:#05070c;border-radius:99px;z-index:9}
.wt-glare{position:absolute;inset:0;background:linear-gradient(118deg,rgba(255,255,255,.28) 0,rgba(255,255,255,.06) 26%,transparent 44%);pointer-events:none;z-index:8}
.wt-sc{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;z-index:1}
.wt-sc.on{opacity:1;z-index:2}
.wt-sc>div{position:absolute;inset:0}
.wt-lock{background:linear-gradient(165deg,#24406f 0%,#4f8b7d 70%,#8fbfb1 100%);color:#fff;display:flex;flex-direction:column;align-items:center;padding:20% 6% 0}
.wt-lock .dt{font-size:.95em;opacity:.9;font-weight:500}
.wt-lock .tm{font-size:4.4em;font-weight:500;line-height:1;margin:.12em 0 .8em;letter-spacing:-.02em}
.wt-nt{width:100%;background:rgba(255,255,255,.9);color:var(--navy);border-radius:1.1em;padding:.7em .8em;display:flex;gap:.6em;box-shadow:0 8px 24px rgba(0,0,0,.18);opacity:0;transform:translateY(-40px) scale(.95)}
.wt-nt img{width:2.6em;height:2.6em;border-radius:22%;flex-shrink:0}
.wt-nt .hd{display:flex;justify-content:space-between;font-size:.78em;color:#4a5d80}.wt-nt .hd b{font-weight:600}
.wt-nt .sj{font-weight:500;font-size:.92em;line-height:1.25}.wt-nt .pv{font-size:.8em;color:#4a5d80;line-height:1.3}
.wt-lock .sw{margin-top:auto;margin-bottom:9%;font-size:.8em;opacity:.85}
.wt-pl{background:linear-gradient(170deg,#f6faf8,#e4f0ec);padding:18% 8% 8%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5em}
.wt-pl .art{width:62%;aspect-ratio:1;border-radius:1.4em;margin-top:5%;background:radial-gradient(circle at 30% 30%,#cfe5dd,#6fa99b 55%,#0f2a5c);box-shadow:0 14px 34px rgba(15,42,92,.22);display:grid;place-items:center;color:#fff;font-weight:600;letter-spacing:.08em}
.wt-pl h4{font:600 1.2em/1.2 Poppins,sans-serif;color:var(--navy);margin:4% 0 0}.wt-pl small{color:#4a5d80}
.wt-pl .prog{width:100%;height:4px;background:#d9e3ea;border-radius:3px;overflow:hidden;margin-top:auto}.wt-pl .prog i{display:block;height:100%;width:0;background:var(--sage)}
.wt-pl .tms{width:100%;display:flex;justify-content:space-between;font-size:.75em;color:#4a5d80}
.wt-pl .pb{width:4.4em;height:4.4em;border-radius:50%;background:var(--navy);display:grid;place-items:center;margin-bottom:3%}
.wt-pl .pb svg{width:42%;fill:#fff;margin-left:6%}
.wt-nb{background:#fbf8f1;padding:18% 8% 8%;display:flex;flex-direction:column;gap:.6em}
.wt-k{text-align:center;font-size:.72em;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-d);font-weight:600}
.wt-nb h4{text-align:center;font:italic 500 1.3em/1.25 Lora,serif;color:var(--navy);margin:0 0 .3em}
.wt-nb .fld{background:#fff;border:1px solid #d9e3dc;border-radius:.8em;padding:.8em;min-height:5em}
.wt-nb .fld small{display:block;font-size:.72em;color:var(--sage-d);margin-bottom:.3em}
.wt-nb .fld span{display:inline-block;font:italic 500 1em/1.4 Lora,serif;color:var(--navy);white-space:nowrap;overflow:hidden;max-width:0;vertical-align:bottom}
.wt-nb .sv{align-self:center;margin-top:.4em;background:var(--navy);color:#fff;border-radius:99px;padding:.6em 1.6em;font-weight:500;font-size:.9em}
.wt-nb .eb{margin-top:1.2em;text-align:center;font-size:.78em;color:#4a5d80}
.wt-lib{background:#f8f6f1;padding:18% 8% 8%;display:flex;flex-direction:column;justify-content:center;gap:.7em}
.wt-lib .bk{background:#fff;border-radius:.9em;box-shadow:0 .5em 1.4em rgba(15,42,92,.1);overflow:hidden;opacity:0;transform:translateY(1em)}
.wt-lib .cv{padding:.9em .9em .8em;color:#fff}.wt-lib .cv small{display:block;font-size:.66em;letter-spacing:.14em;text-transform:uppercase;opacity:.85}.wt-lib .cv b{font:italic 500 1.08em/1.2 Lora,serif}
.wt-lib .y{background:linear-gradient(135deg,#18482d,#4f8b7d)}.wt-lib .m{background:linear-gradient(135deg,#0f2a5c,#3d6fd6)}.wt-lib .a{background:linear-gradient(135deg,#4f8b7d,#8fbfb1)}
.wt-lib .ft{display:flex;justify-content:space-between;padding:.5em .9em;font-size:.72em;color:#4a5d80}.wt-lib .ft em{font-style:normal;color:var(--sage-d);font-weight:600}
.wt-ch{background:linear-gradient(170deg,#f6faf8,#eaf1f5);padding:18% 7% 8%;display:flex;flex-direction:column;gap:.7em}
.wt-ch .hdr{display:flex;align-items:center;gap:.5em;font-weight:600}.wt-ch .hdr img{width:2em;height:2em;border-radius:50%}
.wt-ch .hdr small{display:block;font-weight:400;font-size:.72em;color:#4a5d80}
.wt-ch .pr{background:#fff;border:1px solid #d9e3dc;border-radius:.9em;padding:.9em;text-align:center}
.wt-ch .pr b{display:block;font:italic 500 1.12em/1.3 Lora,serif;margin-bottom:.6em}
.wt-ch .pr span{display:inline-block;background:var(--navy);color:#fff;border-radius:99px;padding:.55em 1.2em;font-size:.85em;font-weight:500}
.wt-ch .sh{height:.45em;border-radius:4px;background:linear-gradient(90deg,#e3eaee,#f4f7f8,#e3eaee);background-size:200% 100%}
.wt-ch .rw{background:#fff;border-radius:.8em;padding:.8em;display:flex;flex-direction:column;gap:.45em;opacity:0;transform:translateY(.8em)}
/* scene animations (only while the scene is on) */
.wt-sc.on .wt-nt{animation:m-drop .7s .6s cubic-bezier(.22,1.4,.36,1) forwards}
.wt-sc.on .pb{animation:m-pulse2 2s .4s ease-in-out 1}
.wt-sc.on .prog i{animation:m-fill 5s .8s linear forwards}
.wt-sc.on .fld span{animation:m-type 1.6s .7s steps(28) forwards}
.wt-sc.on .sv{animation:m-pulse2 2s 2.6s ease-in-out 1}
.wt-sc.on .bk{animation:m-drop .7s var(--d,0s) var(--ease) forwards}
.wt-sc.on .rw{animation:m-drop .7s var(--d,0s) var(--ease) forwards}
.wt-sc.on .sh{animation:m-sh 1.6s linear infinite}
.wt-sc.on .pr span{animation:m-pulse2 2s 1.2s ease-in-out infinite}
@keyframes m-drop{to{opacity:1;transform:none}}
@keyframes m-pulse2{50%{box-shadow:0 0 0 6px rgba(111,169,155,.55)}}
@keyframes m-fill{to{width:22%}}
@keyframes m-type{to{max-width:100%}}
@keyframes m-sh{to{background-position:-200% 0}}
.wt-cap{width:100%;max-width:440px}
.wt-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wt-steps li{margin:0}
.wt-steps button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;width:100%;padding:12px 14px;border-radius:12px;cursor:pointer;color:var(--muted);transition:background .4s,color .4s}
.wt-steps button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.wt-steps .n{width:30px;height:30px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font:600 .8rem/1 Poppins,sans-serif;color:var(--muted);transition:all .4s}
.wt-steps b{display:block;font:600 1.02rem/1.3 Lora,serif;color:var(--navy)}
.wt-steps small{display:block;font-size:.88rem;line-height:1.45;margin-top:2px}
.wt-steps .on button{background:#fff;color:var(--ink);box-shadow:0 6px 18px rgba(15,42,92,.06)}
section.white .wt-steps .on button{background:var(--cream)}
.wt-steps .on .n{background:var(--navy);border-color:var(--navy);color:#fff}
.wt-bar{display:block;height:2px;background:var(--line);border-radius:2px;margin-top:8px;overflow:hidden}
.wt-bar i{display:block;height:100%;width:0;background:var(--sage)}
.wt-steps .on .wt-bar i{animation:m-bar var(--wtd,5.5s) linear forwards}
.wt.paused .wt-steps .on .wt-bar i,.wt.static .wt-steps .on .wt-bar i{animation:none;width:100%}
@keyframes m-bar{to{width:100%}}
.wt-ctl{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:.85rem;color:var(--muted)}
.wt-pp{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font:600 .82rem/1 Poppins,sans-serif;color:var(--navy);cursor:pointer;min-height:40px}
.wt-pp:hover{border-color:var(--sage)}
@media(max-width:899px){.wt-steps small{display:none}.wt-steps .on small{display:block}}
/* motion off */
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
 .hero:after,.band{animation:none!important}
 .m-w{opacity:1;transform:none}
 .breathe i{animation:none!important;transform:scale(.8)}
 .breathe i+i{transform:scale(.95);opacity:.6}
 .btn:hover,.card:hover,.price:hover,.player:hover{transform:none}
 .wt-phone{transform:none}
 .wt-nt,.wt-lib .bk,.wt-ch .rw{opacity:1;transform:none;animation:none!important}
 .wt-nb .fld span{max-width:100%;animation:none!important}
 .wt-pl .prog i{width:22%;animation:none!important}
}
