:root{--bg:#FDF8F2;--bg2:#F6EDE4;--ink:#3B1512;--card:#FFFCF7;--line:#E2C9C3;--acc:#7D2D27;--acc-ink:#FDF8F2;--gold:#7D2D27;--glow:rgba(125,45,39,.30);--muted:#8A5A55;--soft:#F3E3DD;--ta:#7D2D27;--tg:#9A4A42;--fs:1;
 --brand:'Cinzel Decorative',Georgia,serif;--head:'Cormorant Garamond',Georgia,serif;--ui:'Jost',system-ui,sans-serif}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#7D2D27;--bg2:#5F211D;--ink:#FDF8F2;--card:#6A241F;--line:#B98E88;--acc:#FDF8F2;--acc-ink:#7D2D27;--gold:#E8CFC9;--glow:rgba(253,248,242,.45);--muted:#EAD6D0;--soft:#8C3B34;--ta:#FDF8F2;--tg:#F3E1DC;color-scheme:dark}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#7D2D27;--bg2:#5F211D;--ink:#FDF8F2;--card:#6A241F;--line:#B98E88;--acc:#FDF8F2;--acc-ink:#7D2D27;--gold:#E8CFC9;--glow:rgba(253,248,242,.45);--muted:#EAD6D0;--soft:#8C3B34;--ta:#FDF8F2;--tg:#F3E1DC}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:calc(16px * var(--fs));-webkit-text-size-adjust:100%}
html.fit,html.fit body{height:100%;overflow:hidden;overscroll-behavior:none}
body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--head);font-weight:500}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
svg.i{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* brand lettering: no ligatures, so letters like "oo" never merge */
h1,.ttl,.dd .gn,.gd2>summary,.mc h2,.lead .t,.tile b,.ph,.jn,.jb .c,.jst b,.gdn b{font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0,"dlig" 0,"calt" 0}
.app{max-width:600px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:calc(10px + env(safe-area-inset-top)) 22px calc(26px + env(safe-area-inset-bottom))}
@media(min-width:900px){.app{max-width:680px}}
@media(min-width:700px){.app.home,.app.start{font-size:calc(min(var(--vh,100vh)/44,100vw/30,19px) * var(--k,1) * var(--fs));max-width:min(100%,34em)}}

/* top bar (inside pages) */
.bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;margin:0 -22px;padding:6px 22px;background:var(--bg)}
.icb{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);background:transparent;flex:none;text-decoration:none}
.icb:active{transform:scale(.95)}
.icb.ghost{border-color:transparent}
.bar .ttl{flex:1;text-align:center;font-family:var(--brand);font-weight:500;font-size:.9rem;letter-spacing:1.6px;color:var(--ta)}
.bar.plain .ttl{font-family:var(--head);font-size:1.2rem;letter-spacing:.4px}
.grp2{display:flex;gap:6px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 30px;border-radius:14px;background:var(--acc);color:var(--acc-ink);font-family:var(--ui);font-weight:500;font-size:.95rem;letter-spacing:.5px;text-decoration:none}
.btn.alt{background:transparent;color:var(--ta);border:1px solid var(--line)}
.btn:active{transform:scale(.98)}
.lnk{font-family:var(--ui);font-size:.84rem;color:var(--ta);text-decoration:underline}

/* ===== the landing page and the start page: one screen, sized in em ===== */
.app.home,.app.start{position:fixed;top:0;left:0;right:0;margin:0 auto;max-width:min(100%,36em);height:var(--vh,100dvh);min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;
 font-size:calc(min(var(--vh,100vh)/44,100vw/22.5,15.5px) * var(--k,1) * var(--fs));
 padding:calc(.45em + env(safe-area-inset-top)) 1.3em calc(.5em + env(safe-area-inset-bottom));justify-content:space-between}
.app.home::-webkit-scrollbar,.app.start::-webkit-scrollbar{display:none}
.app.home>*,.app.start>*{flex:none}
.app.home svg.i{width:1.3em;height:1.3em}
.hbar{display:flex;align-items:center;justify-content:space-between;gap:.5em}
.app.home .icb{width:2.6em;height:2.6em}
.app.home .grp2{gap:.45em}
.hero{text-align:center}
.om{font-family:'Noto Serif Devanagari',serif;line-height:1.15;color:var(--gold)}
.app.home .om{font-size:2.7em}
h1{margin:0;font-family:var(--brand);font-weight:500;letter-spacing:.12em;color:var(--ta)}
.app.home h1{font-size:1.5em}
.thought{margin:.3em auto 0;max-width:27em;font-style:italic;font-size:1em;line-height:1.3;color:var(--muted)}
.streak{margin:.35em 0 0;font-family:var(--ui);font-size:.62em;letter-spacing:.2em;text-transform:uppercase;color:var(--tg)}
.streak:empty{display:none}
.lead{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1em;padding:.55em .9em;border-radius:1.1em;background:var(--acc);color:var(--acc-ink);text-decoration:none}
.lead:active{transform:scale(.99)}
.lead .k{font-family:var(--ui);font-size:.56em;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.lead .t{font-family:var(--brand);font-weight:500;font-size:1em;letter-spacing:.05em}
.lead .s{font-family:var(--ui);font-size:.66em;opacity:.9}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.55em}
.tilew{position:relative;min-width:0}
.tilew.solo{grid-column:1/-1;justify-self:center;width:calc((100% - .55em)/2)}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:3.8em;padding:.3em .4em;border:1px solid var(--line);border-radius:1.05em;background:var(--card);text-decoration:none;color:var(--ink);text-align:center;box-shadow:inset 0 .15em 0 var(--gold)}
.tile:active{background:var(--soft);transform:scale(.985)}
.tilew.hl .tile{background:var(--soft);border-color:var(--gold)}
.tile .dv{font-family:'Noto Serif Devanagari',serif;font-weight:500;font-size:.66em;color:var(--tg);line-height:1.7}
.tile b{font-family:var(--brand);font-weight:500;font-size:.78em;letter-spacing:.07em;color:var(--ta);line-height:1.15}
.tile small{font-family:var(--ui);font-size:.6em;color:var(--muted)}
.qt{display:flex;justify-content:space-between;padding:0 .3em}
.qb{display:flex;flex-direction:column;align-items:center;gap:.35em;width:4.6em;font-family:var(--ui);font-size:.62em;letter-spacing:.05em;color:var(--muted);text-decoration:none}
.qb .ci{width:3.9em;height:3.9em;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ta)}
.qb .ci svg.i{width:1.8em!important;height:1.8em!important}
.qb:active .ci{transform:scale(.95)}
.btm{display:flex;gap:.5em}
.btm button{flex:1 1 0;min-width:0;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:.5em;height:2.7em;padding:0 .5em;background:var(--soft);line-height:1.1;white-space:nowrap;border-radius:1.05em;border:1px solid var(--gold);color:var(--ta);font-family:var(--ui);font-weight:500;font-size:.62em;letter-spacing:.09em;text-transform:uppercase}
.btm button:active{transform:scale(.98)}
.btm svg{width:1.6em!important;height:1.6em!important;flex:none;color:var(--gold)}
.btm .om2{position:relative;top:.22em;font-size:1.4em;line-height:1;color:var(--gold);font-family:'Noto Serif Devanagari',serif}
.foot{margin-top:auto;padding-top:1.4em;text-align:center;font-family:var(--ui);font-size:.66rem;letter-spacing:2px;line-height:1.9;color:var(--muted)}
.foot b{display:block;color:var(--tg);font-weight:500;letter-spacing:2.4px}
.foot .ver{display:block;margin-top:2px;font-size:.58rem;letter-spacing:1.4px;opacity:.8}
.app.home .foot,.app.start .foot{margin:0;padding:0;font-size:.56em;letter-spacing:.2em;line-height:1.7}
.app.home .foot .ver,.app.start .foot .ver{font-size:.9em;margin-top:0}
/* start */
.stp{margin:auto 0;text-align:center;padding:0 .3em}
.stp .om{font-size:3.4em;line-height:1}
.stp h1{margin:.2em 0 .7em;font-size:1.9em}
.stl{margin:0 auto .55em;max-width:21em;font-size:1.22em;line-height:1.4;color:var(--ink)}
.stl.stn{font-family:var(--ui);font-size:.78em;letter-spacing:.14em;text-transform:uppercase;color:var(--tg);margin-top:.9em}
.stb{margin-top:1.2em;min-width:8em;height:2.9em;padding:0 2.2em;border-radius:99px;background:var(--acc);color:var(--acc-ink);font-family:var(--ui);font-size:.82em;font-weight:500;letter-spacing:.28em;text-transform:uppercase}
.stb:active{transform:scale(.97)}
.app.start .foot{margin-top:auto}

/* ===== lists ===== */
.lede{margin:6px 0 14px;text-align:center;color:var(--muted);font-size:1.12rem}
.search{width:100%;display:block;font:400 1rem var(--ui);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:99px;padding:12px 18px;text-align:center}
.search::placeholder{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{padding:9px 15px;border:1px solid var(--gold);border-radius:99px;font-family:var(--ui);font-size:.8rem;color:var(--ta);text-decoration:none}
.chip:active{background:var(--soft)}
.it{border-bottom:1px solid var(--line)}
.it .r{display:flex;align-items:center}
.it .m{flex:1;min-width:0;display:block;padding:16px 4px;text-decoration:none;color:inherit}
.it .dv{display:block;font-family:'Noto Serif Devanagari',serif;font-weight:500;color:var(--tg);font-size:.92rem;line-height:1.6}
.it .en{display:block;font-weight:500;font-size:1.32rem;line-height:1.2}
.it .ac{display:flex;flex:none}
.act{width:44px;height:48px;display:grid;place-items:center;color:var(--muted)}
.act svg.i{width:20px;height:20px}
.star[aria-pressed="true"]{color:var(--gold)}
.star[aria-pressed="true"] svg{fill:currentColor}
.soon{margin-top:24px;text-align:center}
.soon span{display:inline-block;margin:4px 3px;padding:7px 14px;border:1px dashed var(--line);border-radius:14px;font-family:var(--ui);font-size:.78rem;color:var(--muted);line-height:1.4}
.soon span i{display:block;font-family:'Noto Serif Devanagari',serif;font-style:normal;font-size:.9rem;color:var(--tg)}
.soon b{display:block;font-family:var(--ui);font-weight:500;font-size:.66rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--tg);margin-bottom:6px}
.none{display:none;text-align:center;color:var(--muted);margin:26px 0;font-size:1.1rem}
.empty{text-align:center;color:var(--muted);margin:36px 10px;font-size:1.15rem;line-height:1.5}
.dd{border-bottom:1px solid var(--line)}
.dd>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 4px;cursor:pointer;-webkit-user-select:none;user-select:none}
.dd>summary::-webkit-details-marker{display:none}
.dd .gn{flex:1;font-family:var(--brand);font-weight:500;font-size:.98rem;letter-spacing:1.2px;color:var(--ta)}
.dd .gc{font-family:var(--ui);font-size:.74rem;color:var(--muted)}
.dd>summary svg{color:var(--gold);transition:transform .2s}
.dd[open]>summary svg{transform:rotate(90deg)}
.dd .body{padding:0 0 8px 10px;border-left:2px solid var(--line);margin:0 0 10px 6px}
.dd .it:last-child{border-bottom:0}
.flat{margin-top:6px}
/* controls */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:99px;overflow:hidden;background:var(--card)}
.seg button{padding:9px 15px;font-family:var(--ui);font-size:.82rem;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--acc);color:var(--acc-ink);font-weight:500}
.seg.wrap{flex-wrap:wrap;justify-content:center;max-width:100%}
.pane{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;margin-top:20px}
.lbl{font-family:var(--ui);font-size:.66rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--tg);margin:0 0 8px}
.note{margin:0;font-family:var(--ui);font-size:.78rem;line-height:1.6;color:var(--muted);max-width:420px}
.sc{margin-top:14px;padding:6px 14px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.sr{padding:12px 0;text-align:center}
.sr+.sr{border-top:1px solid var(--line)}
.sr .t{font-size:1.1rem;font-weight:500}
.sr .d{font-family:var(--ui);font-size:.74rem;color:var(--muted);margin:2px 0 8px}
.dng{border:1px solid var(--line);border-radius:12px;padding:10px 18px;font-family:var(--ui);font-size:.82rem;color:var(--ta)}
.grow{display:flex;gap:10px;justify-content:center;margin-top:12px;flex-wrap:wrap}.grow .btn{flex:1 1 130px;min-height:46px;padding:0 14px}
.badges{display:flex;gap:10px;margin-top:10px}.bdg{flex:1;text-align:center;padding:10px 4px;border:1px solid var(--line);border-radius:14px;opacity:.5;font-size:.72rem}.bdg b{display:block;font-size:1.1rem;color:var(--gold)}.bdg.on{opacity:1;border-color:var(--gold);background:var(--soft)}
/* breathe */
.shapew{position:relative;width:min(70vw,260px);aspect-ratio:1;display:grid;place-items:center;margin:6px 0}
.shapew.small{width:104px}
.shapew.sh-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.35rem;aspect-ratio:auto;width:auto;height:min(38vh,250px)}
.shapew.sh-bar.small{height:92px;width:auto}
.shapew.sh-bar .oc{position:static;display:block;inset:auto;font-size:2.6rem;line-height:1;height:2.6rem;pointer-events:none}
.shapew.sh-bar.small .oc{display:none}
.barb{position:relative;flex:1;min-height:60px;width:28px;border-radius:99px;border:2px solid var(--gold);background:transparent;overflow:hidden}
.barb i{position:absolute;inset:0;display:block;border-radius:99px;background:linear-gradient(0deg,var(--gold),var(--soft));transform-origin:50% 100%;transform:scaleY(.05);transition:transform 4s ease-in-out}
.shapew.small .barb{min-height:0;width:20px}.shapew.small .barb i{transform:scaleY(.6)}
.orb{width:100%;height:100%;border-radius:50%;border:2px solid var(--gold);background:radial-gradient(circle at 50% 40%,var(--soft),transparent 72%);transform:scale(.55);transition:transform 4s ease-in-out}
.shapew.small .orb{transform:scale(.85)}
.shapew svg{width:100%;height:100%;overflow:visible}
.shapew .trk{fill:none;stroke:var(--line);stroke-width:2.5}
.shapew.sh-box path{fill:none;stroke:var(--gold);stroke-width:4.5;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}
.shapew.sh-box.small path{stroke-dashoffset:0}
.shapew.sh-heart svg{height:auto}
.shapew.sh-heart #sf{fill:var(--gold);fill-opacity:.55;transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);transition:transform 4s ease-in-out}
.shapew.sh-heart.small #sf{transform:scaleY(.6)}
.shapew.sh-heart .trk{fill:var(--soft);fill-opacity:.5}
.shapew.sh-heart .ol{fill:none;stroke:var(--gold);stroke-width:2.6}
.oc{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--brand);font-weight:500;font-size:3.4rem;color:var(--ta);pointer-events:none;font-variant-ligatures:none}
.shapew.small .oc{display:none}
.ph{font-family:var(--brand);font-weight:500;font-size:1.35rem;letter-spacing:1.5px;color:var(--ta);min-height:1.6em}
.cd{font-family:var(--ui);font-size:.8rem;letter-spacing:1px;color:var(--muted)}
.cue{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.tg2{padding:9px 16px;border:1px solid var(--line);border-radius:99px;font-family:var(--ui);font-size:.8rem;color:var(--muted)}
.tg2[aria-pressed="true"]{background:var(--soft);color:var(--ta);border-color:var(--gold)}
@media(prefers-reduced-motion:reduce){.orb,.barb i,.shapew.sh-heart #sf{transition:none!important}}
/* japa */
.jb{position:relative;width:min(72vw,270px);aspect-ratio:1;border-radius:50%;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:manipulation}
.jb:active{transform:scale(.98)}
.jb svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.jb .c{position:relative;font-family:var(--brand);font-weight:500;font-size:3.6rem;color:var(--ta);line-height:1}
.jb .c small{display:block;margin-top:8px;font-family:var(--ui);font-weight:400;font-size:.72rem;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}
.jst{display:flex;gap:28px;justify-content:center;font-family:var(--ui)}
.jst div{text-align:center}.jst b{display:block;font-family:var(--brand);font-size:1.15rem;color:var(--ta)}
.jst span{font-size:.64rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
.jsets{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding:2px 2px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.jsets::-webkit-scrollbar{display:none}
.jsets button{flex:none;padding:9px 14px;border:1px solid var(--line);border-radius:99px;font-family:var(--ui);font-size:.82rem;color:var(--muted);white-space:nowrap}
.jsets button[aria-pressed="true"]{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}
.jsets button.add{border-style:dashed;color:var(--ta)}
.jn{font-family:var(--brand);font-weight:500;font-size:1rem;letter-spacing:1px;color:var(--ta);margin:0}
.jf{width:100%;max-width:420px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card);text-align:left;display:flex;flex-direction:column;gap:10px}
.jf label{font-family:var(--ui);font-size:.68rem;letter-spacing:1.6px;text-transform:uppercase;color:var(--tg)}
.jf input{width:100%;font:400 1.05rem var(--ui);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.jf .chips{margin-top:0}.jf .chip{background:none;cursor:pointer}
.jf .row2{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
/* reminder + guide */
.time{font:400 1.8rem var(--ui);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 18px;text-align:center}
.gd{margin-top:8px;text-align:center}
.gd p{margin:0;font-size:1.1rem;line-height:1.5}
.gd a{color:var(--ta)}
.gd .gsec{margin:22px 0 4px;font-family:var(--ui);font-size:.7rem;letter-spacing:2.4px;text-transform:uppercase;color:var(--tg)}
.gd2{border-bottom:1px solid var(--line);text-align:left}
.gd2>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:6px 4px;cursor:pointer;font-family:var(--brand);font-weight:500;font-size:.88rem;letter-spacing:1.2px;color:var(--ta)}
.gd2>summary::-webkit-details-marker{display:none}
.gd2>summary svg{width:22px;height:22px;flex:none;color:var(--gold);transition:transform .2s}
.gd2[open]>summary svg{transform:rotate(90deg)}
.gd2 .gdb{padding:0 4px 14px;text-align:left}
.gd2 .gdb p{font-size:1.08rem}
.pr dt{font-weight:500;margin-top:8px}.pr dd{margin:2px 0 0}
.gl{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.gl .btn{width:100%;padding:0 18px;text-align:center}
.gd a.btn{color:var(--acc-ink)}.gd a.btn.alt{color:var(--ta)}
/* gratitude journal */
.gnoteh{margin:4px auto 0;max-width:30ch;text-align:center;font-size:1.2rem;line-height:1.3;color:var(--ta)}
.gdn{display:flex;align-items:center;justify-content:center;gap:14px;margin:12px 0 0}
.gdn button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ta);font-size:1.4rem;line-height:1}
.gdn button:disabled{opacity:.3}
.gdn div{text-align:center;min-width:150px}.gdn b{display:block;font-family:var(--head);font-weight:500;font-size:1.15rem;color:var(--ta)}.gdn span{font-family:var(--ui);font-size:.7rem;color:var(--muted)}
.gprog{display:flex;flex-direction:column;align-items:center;gap:6px;margin:12px 0 10px}
.gpb2{width:100%;height:4px;border-radius:9px;background:var(--line);overflow:hidden}.gpb2 i{display:block;height:100%;background:var(--gold);border-radius:9px;transition:width .25s}
.gprog span{font-family:var(--ui);font-size:.68rem;letter-spacing:.8px;color:var(--muted)}
.gsec2{border:1px solid var(--line);border-radius:16px;background:var(--card);margin-top:10px}
.gsec2>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:54px;padding:6px 14px;cursor:pointer}
.gsec2>summary::-webkit-details-marker{display:none}
.gsec2 .gn{flex:1;font-family:var(--head);font-weight:500;font-size:1.28rem;color:var(--ta);font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0}
.gsec2 .gcnt{font-family:var(--ui);font-size:.72rem;letter-spacing:.6px;color:var(--tg);border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.gsec2>summary svg{color:var(--gold);transition:transform .2s}
.gsec2[open]>summary svg{transform:rotate(90deg)}
.gbody{padding:0 14px 14px;text-align:center}
.gsub{margin:0 auto 8px;max-width:34ch;font-family:var(--ui);font-size:.76rem;line-height:1.45;color:var(--muted)}
.gxt{display:block;width:100%;min-height:2.6em;margin:8px 0 0;padding:10px 13px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);font:500 1.05rem/1.4 var(--head);text-align:left;resize:none}
.gxt::placeholder{color:var(--muted);opacity:.7}
.gxt:focus{outline:2px solid var(--gold);outline-offset:1px}
.gadd{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 16px;border:1px dashed var(--line);border-radius:99px;font-family:var(--ui);font-size:.78rem;color:var(--ta)}
.gadd svg.i{width:16px;height:16px}
.gweekc{margin-top:16px;text-align:center}
.gtl{margin:0;font-family:var(--ui);font-size:.66rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--tg)}
.gwk{display:flex;gap:8px;justify-content:space-between;align-items:flex-end;height:90px;margin-top:8px}
.gwc{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;cursor:pointer}.gwc>span:last-child{font-family:var(--ui);font-size:.62rem;color:var(--muted)}.gwc.now>span:last-child{color:var(--tg);font-weight:500}
.gwb{flex:1;width:100%;display:flex;align-items:flex-end;background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden}.gwb i{display:block;width:100%;background:var(--gold);border-radius:4px 4px 0 0}
.gmore{margin-top:12px;text-align:center}.gmore>summary{display:inline-block;list-style:none;cursor:pointer;font-family:var(--ui);font-size:.74rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);padding:8px 14px}
.gmore>summary::-webkit-details-marker{display:none}
.skp{text-align:left;margin-top:6px}.skp div{padding:8px 4px;border-top:1px solid var(--line);font-size:1.02rem}.skp span{display:block;font-family:var(--ui);font-size:.68rem;color:var(--muted)}
.gj button{display:block;width:100%;text-align:left;padding:8px 4px;border:0;border-top:1px solid var(--line);background:transparent;font-size:1.02rem;color:var(--ink)}
.gj button.cur{color:var(--ta)}
.gj button span{display:block;font-family:var(--ui);font-size:.68rem;color:var(--muted)}
.gnote{margin:16px auto 0;text-align:center}
/* sankalpa */
.gx{position:relative;margin-top:14px;padding:18px 16px 14px;border:1px solid var(--line);border-radius:20px;background:var(--card);text-align:center}
.gx h2{margin:0;font-family:var(--head);font-weight:500;font-size:1.25rem;color:var(--ta)}
.skh{text-align:center;margin:2px 0 0}.skd{font-family:'Noto Serif Devanagari',serif;font-weight:500;font-size:1.5rem;color:var(--tg);line-height:1.2}.skh p{margin:2px auto 0;max-width:34ch;font-size:.95rem;line-height:1.45;color:var(--muted)}.skh p.skdate{font-family:var(--ui);font-size:.7rem;letter-spacing:1px;color:var(--tg);margin-top:4px}
.skc{background:var(--soft);border-color:var(--gold);margin-top:10px;padding:14px 14px 12px}.skq{margin:8px 0 12px;font-style:italic;font-size:1.4rem;line-height:1.35;color:var(--ta)}.skb{min-height:40px;padding:0 16px;font-size:.74rem;letter-spacing:1.2px}
.sks{margin-top:10px;padding:16px 14px 12px}.sks .gxt{margin-top:10px}
.skb2{margin-top:10px;min-height:44px;font-size:.8rem;letter-spacing:1.4px}
.gct{margin:8px 0 0;font-family:var(--ui);font-size:.7rem;letter-spacing:.8px;color:var(--tg);min-height:1em}
.skst{margin-top:12px;text-align:center}
.skdots{display:flex;justify-content:space-between;gap:6px;margin-top:10px}.skdot{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-family:var(--ui);font-size:.62rem;color:var(--muted)}.skdot i{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line)}.skdot.on i{background:var(--gold);border-color:var(--gold)}.skdot.now i{border-color:var(--gold)}
/* toasts, status, pop-ups */
.net{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:20;background:var(--ink);color:var(--bg);font-family:var(--ui);font-size:.72rem;letter-spacing:.5px;padding:6px 14px;border-radius:99px;display:none}
.upd{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;max-width:560px;margin:0 auto;display:none;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);color:var(--bg);font-family:var(--ui);font-size:.82rem;padding:10px 12px 10px 16px;border-radius:14px}
.upd button{background:var(--gold);color:#2A0505;border-radius:10px;padding:8px 14px;font-weight:500}
.toast{position:fixed;left:50%;bottom:calc(30px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:99px;font-family:var(--ui);font-size:.8rem;opacity:0;pointer-events:none;transition:opacity .25s;z-index:60;max-width:90vw;text-align:center}
.toast.show{opacity:1}
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:18px;font-size:16px}
.modal .mb{position:absolute;inset:0;background:rgba(40,8,6,.5);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
.modal .mc{position:relative;width:100%;max-width:400px;max-height:88vh;max-height:88dvh;overflow:auto;background:var(--bg);color:var(--ink);border:1px solid var(--gold);border-radius:20px;padding:26px 22px 22px;text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.mc h2{margin:0 0 12px;font-family:var(--brand);font-size:1.05rem;letter-spacing:1.4px;color:var(--ta)}
.mc p{margin:0 0 12px;line-height:1.55;font-size:1.05rem}
.mc p.q{font-style:italic;font-size:1.3rem;line-height:1.35;color:var(--ta)}
.mc p.sm{font-family:var(--ui);font-size:.78rem;letter-spacing:.4px;color:var(--muted);margin:10px 0 8px}
.mc p.by{margin:16px 0 0;font-family:var(--ui);font-size:.62rem;letter-spacing:2px;line-height:1.9;color:var(--muted)}
.mc p.by b{display:block;color:var(--tg);font-weight:500}
.mc .btn{display:flex;width:100%;padding:0 14px;margin:6px 0}
.mc .two{display:flex;gap:8px}.mc .two .btn{margin:0;min-height:46px;font-size:.82rem;padding:0 8px}
.mc .qr{display:block;margin:6px auto;width:min(200px,54vw);height:auto;background:#fff;border-radius:12px;padding:8px}
.mc .gxt{text-align:left}
.mc .shmsg{font-size:1.05rem;line-height:1.5;min-height:12em}
.mx{position:absolute;top:8px;right:8px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);color:var(--muted);display:grid;place-items:center;font-size:.95rem}
html.mo,html.mo body{overflow:hidden}
.mc .shmsg:lang(kn){font-family:'Noto Serif Kannada',serif;font-size:1rem;line-height:1.7}
.mc .shmsg,.mc .gxt,.sks .gxt{overflow:auto}
h1,.ttl,.tile b,.mc h2,.lead .t{font-kerning:none;letter-spacing:.07em}

/* ===== mild motion (all off for reduced-motion) ===== */
@keyframes omb{0%,100%{transform:scale(1);text-shadow:0 0 0 transparent}50%{transform:scale(1.045);text-shadow:0 0 .5em var(--glow)}}
@keyframes rise{from{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:none}}
@keyframes shine{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 .9em 0 var(--glow)}}
.app.home .om,.app.start .stp .om{display:inline-block;animation:omb 6s ease-in-out infinite;will-change:transform}
.btm .om2{display:inline-block;animation:omb 6s ease-in-out infinite}
.app.home .tiles>*,.app.home .lead,.app.home .qt,.app.home .btm{animation:rise .6s ease both}
.app.home .tiles>*:nth-child(1){animation-delay:.05s}.app.home .tiles>*:nth-child(2){animation-delay:.12s}.app.home .tiles>*:nth-child(3){animation-delay:.19s}
.app.home .tiles>*:nth-child(4){animation-delay:.26s}.app.home .tiles>*:nth-child(5){animation-delay:.33s}.app.home .tiles>*:nth-child(6){animation-delay:.4s}
.app.home .qt{animation-delay:.45s}.app.home .btm{animation-delay:.5s}
.app.home .tilew.hl .tile{animation:shine 7s ease-in-out 1s infinite;border-radius:inherit}
.stp>*{animation:rise .7s ease both}.stp>*:nth-child(2){animation-delay:.1s}.stp>*:nth-child(3){animation-delay:.2s}.stp>*:nth-child(4){animation-delay:.3s}.stp>*:nth-child(5){animation-delay:.4s}.stp>*:nth-child(6){animation-delay:.5s}
@media(prefers-reduced-motion:reduce){.app.home .om,.app.start .stp .om,.btm .om2,.app.home .tiles>*,.app.home .lead,.app.home .qt,.app.home .btm,.stp>*,.app.home .tilew.hl .tile{animation:none!important}}

/* Breathe and Japa: one screen, scaled to fit */
.app.one{position:fixed;top:0;left:0;right:0;margin:0 auto;height:var(--vh,100dvh);min-height:0;overflow:hidden;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
.app.one>*{flex:none}
.app.one .pane{zoom:var(--k,1);margin-top:6px;gap:12px}
.app.one .foot{font-size:.62rem;line-height:1.5;margin:0;padding:2px 0 0}

/* ===== V2.0.2 ===== */
.chip[aria-pressed="true"]{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}
/* progress rings */
svg.rg{display:block;width:100%;height:100%;transform:rotate(-90deg)}
svg.rg .rt{fill:none;stroke:var(--line);stroke-width:7}
svg.rg .rf{fill:none;stroke:var(--gold);stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.4,.1,.2,1)}
.rgw{position:relative;flex:none;width:5.4rem;height:5.4rem}
.rcn{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--ui)}
.rcn b{font-family:var(--brand);font-weight:500;font-size:1.15rem;color:var(--ta);line-height:1}
.rcn span{font-size:.58rem;letter-spacing:.06em;color:var(--muted);margin-top:.2rem}
.rgcard{display:flex;align-items:center;gap:14px;margin:12px 0;padding:12px 16px;border:1px solid var(--line);border-radius:20px;background:var(--card);transition:box-shadow .4s}
.rgcard .gmt{flex:1;text-align:left;display:flex;flex-direction:column;gap:3px}
.rgcard .gmt p{margin:0;font-family:var(--head);font-weight:500;font-size:1.12rem;line-height:1.25;color:var(--ta)}
.rgcard .gmt span{font-family:var(--ui);font-size:.7rem;color:var(--muted)}
.rgcard .gmt .gstk{color:var(--tg);font-weight:500}
.rgcard.full{animation:glowp 2.6s ease-in-out infinite;border-color:var(--gold)}
.rgcard.full .rcn b:after{content:" ✦"}
@keyframes glowp{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 1.1rem 0 var(--glow)}}
.gsec2.ok{border-color:var(--gold)}
.gsec2.ok .gcnt{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}
/* landing: prayer row and Why / Dakshina share one look */
.btm.pr button{height:auto;min-height:2.7em;white-space:normal;padding:.35em .6em;gap:.4em;text-align:left;line-height:1.15}
.btm.pr button span{flex:1;min-width:0;text-align:left}
.why2 p{margin:.55em 0;line-height:1.5}
.why2 .qq{font-family:var(--head);font-style:italic;font-size:1.08em;color:var(--ta)}
.why2 .sam,.mc .why2 .sam{margin-top:.9em;font-family:var(--ui);font-size:.8em;letter-spacing:.06em;color:var(--tg)}
/* prayers */
.pnote{margin:2px 0 8px;font-family:var(--ui);font-size:.74rem;color:var(--muted);text-align:center}
.pseg{margin:6px auto;justify-content:center}
.pseg button{padding:7px 12px;font-size:.78rem}
.pv{margin:8px 0;padding:10px 8px;border:1px solid var(--line);border-radius:14px;background:var(--card);text-align:center}
.pv p{margin:3px 0}
.pv[data-s="dev"]{font-family:'Noto Serif Devanagari',serif;font-size:1.08rem;line-height:1.7}
.pv[data-s="kn"]{font-family:'Noto Serif Kannada',serif;font-size:.98rem;line-height:1.85}
.pv[data-s="en"]{font-family:var(--head);font-style:italic;font-size:1.08rem;line-height:1.5;color:var(--muted)}
.pml .lbl,.prec .lbl{margin:6px 0 0;text-align:center}
.pm{margin:6px 0;font-size:.95rem;line-height:1.5;text-align:center}
.pm[lang="kn"]{font-family:'Noto Serif Kannada',serif;font-size:.88rem;line-height:1.8}
.ptap{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;margin-top:6px;padding:10px;border:1px solid var(--gold);border-radius:16px;background:var(--soft);color:var(--ta);transition:background .3s,transform .15s}
.ptap:active{transform:scale(.98)}
.ptap b{font-family:var(--brand);font-weight:500;font-size:1.3rem}
.ptap span{font-family:var(--ui);font-size:.74rem}
.ptap.ok{background:var(--acc);color:var(--acc-ink)}
/* Ho‘oponopono */
.hint{margin:10px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card);text-align:left;font-size:1.02rem;line-height:1.45}
.hint p{margin:0}
.hint .hph{margin-top:8px;font-family:var(--head);font-style:italic;color:var(--ta);text-align:center}
.hsec{text-align:left}
.hk{margin:8px 0 6px}
.hsl{display:flex;align-items:center;gap:12px;margin-top:10px}
.hsl input{flex:1;accent-color:var(--acc);height:28px}
.hsl b{min-width:1.6em;text-align:center;font-family:var(--brand);font-weight:500;font-size:1.3rem;color:var(--ta)}
.hsc{display:flex;justify-content:space-between;font-family:var(--ui);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.hrow>div{flex:1 1 130px}
.hgo{width:100%;margin-top:12px}
.hrun{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;margin-top:10px}
.hfor{margin:0;font-family:var(--ui);font-size:.82rem;color:var(--muted);max-width:92%}
.hbig{position:relative;width:min(64vw,15rem);aspect-ratio:1}
.hph2{position:absolute;inset:0;display:grid;place-items:center;padding:0 20%;font-family:var(--head);font-weight:500;font-size:1.7rem;line-height:1.15;color:var(--ta)}
.hph2.in{animation:rise .7s ease both}
.hdots{display:flex;gap:10px}
.hdots i{width:9px;height:9px;border-radius:50%;background:var(--line);transition:transform .3s,background .3s}
.hdots i.on{background:var(--gold);transform:scale(1.45)}
.hcnt{margin:0;font-family:var(--ui);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tg)}
.hbt{display:flex;gap:10px}
/* Guide: one screen */
.app.one>.gd{flex:1 1 0;min-height:0;display:flex;flex-direction:column;gap:.55rem;margin-top:.4rem;text-align:center}
.gtps{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}
.gtps .gsec{flex:0 0 100%;margin:.15rem 0 0;font-family:var(--ui);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tg)}
.gtp{padding:.32rem .7rem;border:1px solid var(--line);border-radius:99px;font-family:var(--ui);font-size:.74rem;color:var(--muted);white-space:nowrap;background:transparent}
.gtp[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
.gcard{flex:1 1 0;min-height:0;overflow-y:auto;border:1px solid var(--line);border-radius:16px;background:var(--card);padding:.7rem 1rem;text-align:left;-webkit-overflow-scrolling:touch}
.gcard h2{margin:0 0 .35rem;font-family:var(--brand);font-weight:500;font-size:.95rem;letter-spacing:.08em;color:var(--ta)}
.gcard p,.gcard li{font-size:1rem;line-height:1.45}
.gul{margin:.2rem 0;padding-left:1.1rem}
.gcard .pr{font-size:.95rem}
.app.one .gl{flex-direction:row;gap:.5rem;margin-top:0}
.app.one .gl .btn{min-height:44px;padding:0 .5rem;font-size:.7rem;line-height:1.2;flex:1}
/* motion */
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.app.enter>*{animation:rise .45s ease both}
.modal .mb{animation:fadein .25s ease both}
.modal .mc{animation:pop .32s cubic-bezier(.2,.8,.2,1) both}
.btn,.tile,.chip,.gtp,.ptap{transition:transform .15s,background .2s}
.gsec2>.gbody{animation:rise .3s ease both}
@media(prefers-reduced-motion:reduce){.app.enter>*,.modal .mb,.modal .mc,.gsec2>.gbody,.hph2.in,.rgcard.full{animation:none!important}}
.modal h2#mt{padding:0 2.2em}

/* ===== V2.0.3 ===== */
.bar .ttl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}
.bar .grp2{flex:none}
@keyframes swapin{from{opacity:.0;transform:translateY(3px)}to{opacity:1;transform:none}}
.mi.swap,.gpane.swap{animation:swapin .22s ease both}
.modal .mi{display:block}
/* prayer text: one line per verse line, scaled to fit */
.pv{overflow:hidden}
.pv p{white-space:nowrap;zoom:var(--pf,1)}
.pnote{line-height:1.45}
/* centred prayer buttons */
.btm.pr,.btm{display:grid;grid-template-columns:1fr 1fr;gap:.6em;justify-items:stretch;width:100%}
.btm.pr>button,.btm>button{display:flex;align-items:center;justify-content:center;text-align:center;gap:.5em;min-width:0;width:100%}
/* Guide: everything centred */
.gcard{text-align:center;display:flex;flex-direction:column;align-items:center}
.gcard h2,.gcard p,.gcard li,.gcard dt,.gcard dd{text-align:center}
.gcard dl.pr{width:100%;margin:0}
.gul{list-style:none;padding:0;margin:.2rem 0;width:100%}
.gul li{margin:.35rem 0}
.gcard>*{max-width:100%}
.gtps{justify-content:center}
/* Ho'oponopono: centred */
.app>.hint,.hint p,.hsec,.hsec *,.hrun,.hring .gmt,.hring .gmt p{text-align:center}
.hring{flex-direction:column;text-align:center}
.hring .gmt{align-items:center}
.hsec .chips{justify-content:center}
.hsec .hrow{justify-content:center;text-align:center}
.hsec .hrow>div{display:flex;flex-direction:column;align-items:center}
.hsl{justify-content:center}
.hsc{justify-content:space-between}
.hint{text-align:center;margin-left:auto;margin-right:auto}
/* Gratitude: one page */
.app.one>.gone{flex:1 1 0;min-height:0;display:flex;flex-direction:column;gap:.45rem;margin-top:.25rem}
.gone .gdn{margin:0;flex:none}
.gone .gdn button{width:34px;height:34px;font-size:1.2rem}
.gone .gdn b{font-size:1rem}
.gone .rgcard{flex:none;margin:0;padding:.4rem .8rem;gap:.8rem;border-radius:16px;align-items:center}
.gone .rgw{width:3.9rem;height:3.9rem}
.gone .rcn b{font-size:.95rem}
.gone .rcn span{font-size:.5rem}
.gone .rgcard .gmt{text-align:left}
.gone .rgcard .gmt p{font-size:1rem}
.gtabs{display:flex;gap:.3rem;flex:none}
.gtab{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:.3rem .1rem;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--muted);font-family:var(--ui);font-size:.66rem;line-height:1.15;transition:background .2s,color .2s,border-color .2s}
.gtab span{white-space:nowrap}
.gtab i{font-style:normal;font-size:.6rem;opacity:.85}
.gtab[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
.gtab.ok:not([aria-pressed="true"]){border-color:var(--gold);color:var(--ta)}
.gpane{flex:1 1 0;min-height:0;overflow-y:auto;border:1px solid var(--line);border-radius:16px;background:var(--card);padding:.5rem .75rem .6rem;text-align:center;-webkit-overflow-scrolling:touch}
.gpane h2{margin:0;font-family:var(--head);font-weight:500;font-size:1.15rem;color:var(--ta)}
.gpane .gsub{margin:0 0 .1rem;font-family:var(--ui);font-size:.7rem;color:var(--muted)}
.gpane .gxt{margin-top:.4rem;padding:.45rem .7rem;font-size:1rem}
.gpane .gadd{margin:.4rem auto 0}
.gwr{flex:none;display:flex;flex-direction:column;gap:.4rem}
.gwr .gwk{height:34px;margin:0;gap:6px}
.gwr .gwc>span:last-child{font-size:.52rem}
.gbt{display:flex;gap:.5rem}
.gbt .btn{flex:1;min-height:40px;font-size:.7rem;padding:0 .5rem}
.grow{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.app.one>.gone{flex:1 0 auto;zoom:var(--k,1)}
.gone .gdn div{display:flex;gap:.5em;align-items:baseline;min-width:0}
.gone .gdn div b{font-size:1rem}
.gpane{flex:1 1 auto;overflow:visible}
.gone .gdn button{width:30px;height:30px;font-size:1.1rem}
.gpane .gxt{min-height:2.1em;padding:.4rem .65rem;font-size:.95rem;line-height:1.3}
.gone .rgw{width:3.4rem;height:3.4rem}
.gone .rgcard{padding:.3rem .7rem}
.gone .gwk{margin-top:6px}
.mi #gweek .gwk{height:60px}
.app.one>.foot{margin-top:auto}
.btm.pr button span,.btm button span{flex:0 1 auto;text-align:center}
.btm.pr button{text-align:center;justify-content:center}
.btm button>span:not(.om2){margin-right:-.12em}

/* ===== V2.0.4 ===== */
.btm button>span:not(.om2){margin:0;padding-left:.09em;text-align:center}
.btm.pr button{padding:.35em .4em}
.subr{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 2px;flex:none}
.subr .icb{width:38px;height:38px}
.subr .icb svg{width:19px;height:19px}
.bar{min-height:50px}
.gone .rcn b{font-size:.8rem}
.gone .gmt p{text-align:center}
.gone .rgcard .gmt{text-align:center;align-items:center}
.gone .rgcard .gmt p,.gone .rgcard .gmt span{text-align:center}
.mi{zoom:var(--mz,1)}
.mc.nosc{overflow:hidden}
.gcard{justify-content:center;overflow:hidden}
.gcard h2{font-size:calc(.95rem*var(--gz,1))}
.gcard p,.gcard li{font-size:calc(1rem*var(--gz,1))}
.gcard .pr{font-size:calc(.95rem*var(--gz,1))}
.gcard .btn{margin-top:.5rem}
.subr{margin:2px 0 4px}
.gpane .gsub{padding:0;margin:0 auto .15rem;text-align:center;max-width:none}
/* Gratitude: the size and theme buttons share the date row, so the page stays one screen */
.app.gr .subr{position:relative;height:0;margin:0;z-index:3}
.app.gr .subr .icb{position:absolute;top:4px;width:36px;height:36px}
.app.gr .subr .icb:first-child{left:0}
.app.gr .subr .icb:last-child{right:0}
.app.gr .gdn{min-height:38px;margin-top:2px}
/* V2.0.4: circles overlay on breathe/japa; first row keeps clear of them */
.app.one.gr:not(.gone) .pane>:first-child{padding-inline:44px;box-sizing:border-box}
/* V2.0.5 */
html{background:var(--bg)}
.modal .mc{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,0) 38%),var(--card);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 2px 6px rgba(0,0,0,.18),0 20px 54px rgba(0,0,0,.42)}
.mc p,.mc h2,.mc h3,.mc li,.why2,.why2 p{text-align:center;text-wrap:balance}
.mc .ways{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.mc .ways h3{margin:0 0 6px;font-family:var(--brand);font-size:.86rem;letter-spacing:1.2px;color:var(--ta);font-weight:500}
.mc .ways p{font-size:.92rem;line-height:1.5;margin:0}
.btm.pr button svg{width:1.5em!important;height:1.5em!important}
/* V2.0.5 Guide: breathing room under the card */
.app.one>.gd{padding-bottom:.9rem;gap:.7rem}
.app.one .gl{margin-top:.1rem}
/* V2.0.5 Gratitude: boxes share the spare height; Add more is a quiet line */
.gpane{display:flex;flex-direction:column;justify-content:flex-start}
.gpane .gxt{flex:1 0 auto;display:block}
.gpane h2,.gpane .gsub{flex:none}
.gpane .gadd{flex:none;display:flex;align-items:center;justify-content:center;gap:.35em;width:100%;margin:.5rem 0 0;padding:.45rem 0 .1rem;background:none;border:0;border-top:1px dashed var(--line);border-radius:0;color:var(--tg);font-family:var(--ui);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.gpane .gadd svg{width:1em;height:1em}
/* V2.0.5 cards */
.cardit{border:1px solid var(--line);border-radius:16px;background:var(--card);margin:8px 0;padding:0;overflow:hidden}
.dd .cardit:last-child{border-bottom:1px solid var(--line)}
.cardit .m{padding:12px 4px 12px 14px;text-align:left}
.cardit .dv{font-size:.88rem;line-height:1.5}
.cardit .en{font-size:1.18rem}
.cardit .bl{display:block;margin-top:2px;font-family:var(--ui);font-size:.74rem;line-height:1.35;color:var(--muted)}
.cardit .mt{display:block;margin-top:5px;font-family:var(--ui);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tg)}
.cardit .mt em{font-style:normal;margin-right:.6em;padding:1px 7px;border-radius:99px;background:var(--acc);color:var(--acc-ink);letter-spacing:.1em}
.cardit .pg{display:block;height:3px;margin-top:8px;margin-right:10px;border-radius:3px;background:var(--soft);overflow:hidden}
.cardit .pg b{display:block;height:100%;background:var(--acc)}
.cardit.cur{border-color:var(--acc)}
.dd .body{padding:0 0 4px 0;border-left:0;margin:0 0 6px}
.lead2{margin:12px 0 0}
.kgrid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.3rem;flex:1 1 auto;align-content:start}
.kgrid .kc{position:relative;border:1px solid var(--line);border-radius:16px;background:var(--card);display:flex;flex-direction:column;justify-content:center;min-height:5.2rem}
.kgrid .kc:last-child:nth-child(odd){grid-column:1 / -1}
.kgrid .kc .m{display:block;padding:.7rem .9rem;text-align:center;text-decoration:none;color:inherit}
.kgrid .kc .dv{display:block;font-size:.8rem;line-height:1.4}
.kgrid .kc .en{display:block;font-size:1.1rem;line-height:1.2}
.kgrid .kc .star{position:absolute;top:2px;right:2px;transform:scale(.8)}
.app.one>.kgrid{zoom:var(--k,1)}
.app.one.gr>.lede{padding-inline:44px;box-sizing:border-box;margin:.35rem 0 .5rem}
.app.one>.kgrid{flex:1 1 0;min-height:0;grid-auto-rows:1fr;align-content:stretch;margin-bottom:.7rem}
.kgrid .kc .m{padding:.6rem 1.7rem}
.kgrid .kc .star{top:50%;right:.1rem;transform:translateY(-50%) scale(.75)}
.kgrid .kc:last-child:nth-child(odd) .m{padding-inline:2.4rem}
.kgrid .kc .m{flex:none;padding:.5rem .5rem}
.kgrid .kc .dv{padding:0 1.3rem}
.kgrid .kc .star{top:0;right:0;transform:scale(.7)}
.kgrid .kc:last-child:nth-child(odd) .m{padding-inline:.5rem}
/* V2.0.5 welcome + For elders */
.wdots{display:flex;gap:8px;justify-content:center;margin:6px 0 10px}
.wdots i{width:8px;height:8px;border-radius:50%;background:var(--line)}
.wdots i.on{background:var(--acc)}
html[data-eld]{--muted:var(--ink);--line:color-mix(in srgb,var(--ink) 42%,transparent)}
html[data-eld] .btn,html[data-eld] .seg button,html[data-eld] .qb{min-height:54px}
html[data-eld] .tile small,html[data-eld] .lede,html[data-eld] .bl{color:var(--ink)}
/* V2.1 japa log */
.jlsum{display:flex;justify-content:center;gap:1.2rem;margin:.2rem 0 .8rem}
.jlsum div{display:flex;flex-direction:column;align-items:center}
.jlsum b{font-family:var(--brand);font-weight:500;font-size:1.4rem;color:var(--ta)}
.jlsum span{font-family:var(--ui);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mc .jlist,.mc .jlist div{text-align:center}
.app.one.scr{overflow-y:auto;-webkit-overflow-scrolling:touch}
.app.one.scr>*{flex:none!important;min-height:auto}
.app.one.scr>.foot{margin-top:14px}
.app.one.scr .pane{zoom:1}
/* V2.3 About */
.abi{margin:0 0 .6em;line-height:1.6}
.abn{margin:.9em 0 .4em;font-size:.82em;color:var(--muted);line-height:1.5}
.abs{margin:.5em 0 0;font-family:var(--brand);letter-spacing:.14em;text-transform:uppercase;font-size:.68em;color:var(--ta)}
/* V2.3 Kids: smaller cards with room around them */
.app.one>.kgrid{flex:1 1 0;min-height:0;grid-auto-rows:auto;align-content:start;gap:.5rem;margin:.7rem .3rem 1rem;padding:0}
.kgrid .kc{min-height:4.3rem;border-radius:14px}
.kgrid .kc .dv{font-size:.72rem;line-height:1.35}
.kgrid .kc .en{font-size:.98rem;line-height:1.2}
.kgrid .kc .m{padding:.45rem .5rem}
.app.one.scr>.kgrid{margin-bottom:1.2rem}
/* V2.3 share on the prayer cards */
.mx.ms{right:auto;left:8px}
.mx.ms svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* V2.3 Gratitude: leaner, a ring that fits at 100%, colour fills as you write */
.gone .rgw{width:3.9rem;height:3.9rem;border-radius:50%;background:radial-gradient(circle,var(--soft) 0 60%,transparent 62%);transition:background .6s}
.gone .rcn b{font-size:.84rem;letter-spacing:-.02em;font-family:var(--ui);font-weight:600}
.gone .rcn span{font-size:.5rem}
.rgcard.full .rcn b:after{content:none}
.gone .rgcard.full .rgw{background:radial-gradient(circle,var(--acc) 0 62%,transparent 64%)}
.rgcard.full .rcn b,.rgcard.full .rcn span{color:var(--acc-ink)}
svg.rg .rf{stroke:var(--ta)}
.gpane,.app.one .gpane{flex:none!important;overflow:visible}
.gpane .gxt{flex:none!important;min-height:2.3em}
.gxt{transition:background .35s,border-color .35s}
.gxt.filled{background:var(--soft);border-color:var(--ta)}
.gtab{background-image:linear-gradient(0deg,var(--soft) var(--f,0%),transparent var(--f,0%));transition:background-size .3s}
.gtab[aria-pressed="true"]{background-image:none}
.gone>.gwr{margin-top:.5rem}
@media(max-width:360px){.gone .rgw{width:3.4rem;height:3.4rem}}
/* V2.3 Stotra Mala and Veda Mantras: group cards with a progress ring */
.ggrid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:14px 0 6px}
.gcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .6rem .85rem;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--ink);text-decoration:none;text-align:center;box-shadow:0 1px 0 rgba(255,255,255,.4) inset}
.gcard:active{transform:scale(.98)}
.gcard .rgw{width:4.4rem;height:4.4rem;background:radial-gradient(circle,var(--soft) 0 60%,transparent 62%);border-radius:50%}
.gcard .rcn b{font-family:var(--brand);font-weight:500;font-size:1.25rem;color:var(--ta);line-height:1}
.gcard .rcn span{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.15rem}
.gcard .gn{font-family:var(--brand);font-weight:500;font-size:1.02rem;letter-spacing:.04em;line-height:1.25;color:var(--ink);min-height:2.5em;display:flex;align-items:center;justify-content:center}
.gcard small{font-family:var(--ui);font-size:.68rem;letter-spacing:.06em;color:var(--tg)}
.gcard.full{border-color:var(--ta)}
.gcard.full .rgw{background:radial-gradient(circle,var(--acc) 0 62%,transparent 64%)}
.gcard.full .rcn b,.gcard.full .rcn span{color:var(--acc-ink)}
.ggrid .gcard:last-child:nth-child(odd){grid-column:1 / -1}
.sall{display:none;margin-top:10px}
.gbody{margin-top:10px}
.abs,.gcard .gn{font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0,"dlig" 0,"calt" 0}

/* palette */
:root{--bg:#FAF6EE;--bg2:#F2EADB;--card:#FFFDF8;--ink:#3A0606;--muted:#7A4A42;--line:#E3CFC8;--accent:#6A1010;--accent-ink:#FAF6EE;--accent-soft:#F0DED6;--acc:#6A1010;--acc-ink:#FAF6EE;--soft:#F0DED6;--gold:#6A1010;--glow:rgba(106,16,16,.28);--ta:#6A1010;--tg:#8A2A22}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#260404;--bg2:#1B0303;--card:#340707;--ink:#F6EEDF;--muted:#E2CFC8;--line:#6B2A26;--accent:#F6EEDF;--accent-ink:#2A0505;--accent-soft:#4A1111;--acc:#F6EEDF;--acc-ink:#2A0505;--soft:#4A1111;--gold:#E9D9CF;--glow:rgba(246,238,223,.35);--ta:#F6EEDF;--tg:#E9D9CF}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#260404;--bg2:#1B0303;--card:#340707;--ink:#F6EEDF;--muted:#E2CFC8;--line:#6B2A26;--accent:#F6EEDF;--accent-ink:#2A0505;--accent-soft:#4A1111;--acc:#F6EEDF;--acc-ink:#2A0505;--soft:#4A1111;--gold:#E9D9CF;--glow:rgba(246,238,223,.35);--ta:#F6EEDF;--tg:#E9D9CF}
