.pick{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;width:100%;text-align:left;background:var(--alt);border:2px solid transparent;border-radius:20px;padding:18px;margin:0 0 12px}.pick:hover{border-color:var(--blue)}
.pick .pt small{display:block;color:var(--ink2);font-size:13px}.pick .pt b{font-size:19px}.pick .pr2{font-size:24px;font-weight:700;color:var(--a)}
.hf{margin:18px 0}.hf label{display:block;font-size:14px;font-weight:600;color:var(--ink2);margin:0 0 6px}
.hf textarea,.hf input{width:100%;border:1px solid var(--line);border-radius:14px;padding:14px 16px;font-size:17px;background:#fff;font-family:inherit;resize:vertical}.hf textarea:focus,.hf input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,113,227,.15)}
.why{background:var(--alt);border-radius:18px;padding:16px 18px;font-size:15px;color:var(--ink2);line-height:1.45;margin:14px 0}.why b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.eopt{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:0 0 10px}.eopt b{display:block}.eopt span{color:var(--ink2);font-size:15px}.eopt[aria-pressed="true"]{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.15)}
.nav2{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:24px}
.plan{background:linear-gradient(135deg,#0071e3,#5e5ce6);color:#fff;border-radius:24px;padding:26px 24px;margin:0 0 16px}.plan .kick{color:rgba(255,255,255,.75);font-size:14px}.plan .pl1{font-size:23px;line-height:1.35;margin:6px 0 10px}.plan .pl2{font-size:17px;font-style:italic;margin:0 0 8px;color:rgba(255,255,255,.92)}.plan .pl3{font-size:14px;margin:4px 0 0;color:rgba(255,255,255,.8)}
.card.today .done{font-weight:600;color:#248a3d}.warn2{background:#fff4e5;border-radius:14px;padding:12px 14px;color:#8a4b00}.warn2 b{color:#b64400}
.ck .opt{font-size:17px;padding:16px 6px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin-bottom:14px}.stats b{display:block;font-size:40px;line-height:1;font-weight:700}.stats span{font-size:13px;color:var(--ink2)}
.grid30{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.grid30 i{aspect-ratio:1;border-radius:6px;background:#e8e8ed}.grid30 i.s2{background:#0071e3}.grid30 i.s1{background:#8ec5ff}.grid30 i.s0{background:#c7c7cc}.grid30 i.today{outline:2px solid var(--ink);outline-offset:1px}
.auto{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center}.auto h3{margin:0 0 4px}
.hud{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:8px;align-items:center;position:sticky;top:52px;z-index:5;background:rgba(255,255,255,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:10px 4px;margin:0 -4px}
.hud>div{text-align:center}.hud b{display:block;font-size:22px;line-height:1.1}.hud small{font-size:11px;color:var(--ink2)}
.hstreak{display:flex!important;align-items:center;justify-content:center;gap:6px}.hstreak b{font-size:28px;color:#f56300}.hstreak small{display:block;text-align:left}
.flame{width:26px;height:32px;display:inline-block;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 130'%3E%3Cdefs%3E%3ClinearGradient id='g1' x1='0' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23d94400'/%3E%3Cstop offset='.55' stop-color='%23ff7a1a'/%3E%3Cstop offset='1' stop-color='%23ffcf4d'/%3E%3C/linearGradient%3E%3ClinearGradient id='g2' x1='0' y1='1' x2='0' y2='0'%3E%3Cstop offset='0' stop-color='%23ff9d1f'/%3E%3Cstop offset='1' stop-color='%23fff3b0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g1)' d='M50 4C34 24 20 40 20 66c0 24 13 42 30 46 14 3 30-1 30-1s-16-8-16-24c0-10 8-16 8-30 0-10-6-18-6-18s6 14-2 24c-6 8-16 10-16-2 0-16 12-24 2-56Z'/%3E%3Cpath fill='url(%23g2)' d='M52 46c-6 10-10 18-10 28 0 12 8 20 16 21 9 1 16-6 16-16 0-9-6-14-6-14s2 8-4 11c-5 3-10 0-6-9 4-9-6-21-6-21Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;transform-origin:50% 92%}
@media (prefers-reduced-motion:no-preference){.flame{animation:flick 1.3s ease-in-out infinite alternate}}
@keyframes flick{0%{transform:scale(1,1) rotate(-2deg)}50%{transform:scale(.94,1.06) rotate(2deg)}100%{transform:scale(1.04,.96) rotate(-1deg)}}
.hstreak.cold .flame{filter:grayscale(1) brightness(1.15) opacity(.7);animation:none}.hstreak.cold b{color:var(--ink2)}
.hstreak.risk{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.07)}}
.lvl b{color:#5e5ce6}
.lbar{height:10px;border-radius:99px;background:#e8e8ed;overflow:hidden}.lbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#5e5ce6,#0071e3);transition:width .9s cubic-bezier(.2,.7,.2,1)}
.coach{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;background:linear-gradient(135deg,#f5f5f7,#eef4ff);border-radius:20px;padding:16px;margin:0 0 16px}.coach p{margin:0;font-size:16px;line-height:1.45}
.cav{width:40px;height:40px;border-radius:50%;background:conic-gradient(#0071e3,#5e5ce6,#f56300,#0071e3);display:grid;place-items:center;color:#fff;font-size:20px;animation:spin 8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.q2{font-weight:600;margin:16px 0 8px}
.energy{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.energy button{font-size:26px;padding:10px 0;border-radius:16px;border:1px solid var(--line);background:#fff;transition:transform .15s}.energy button[aria-pressed="true"]{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.2);transform:scale(1.08)}
.mc{display:grid;gap:8px}.mc button{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:#fff;font-size:16px}.mc em{font-style:normal;font-size:13px;font-weight:700;color:#34c759}.mc button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}.mc button[aria-pressed="true"] em{color:#fff}
.ck .opt[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.opts.five{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.opts.five .opt{font-size:13px;padding:12px 2px}
.card.rc{background:linear-gradient(135deg,#eafbef,#f5f5f7)}.card.rc .kick{color:#248a3d;font-weight:600}
.path{width:100%;height:auto;display:block;margin-top:10px}.path .trail{fill:none;stroke:#e8e8ed;stroke-width:10;stroke-linecap:round}
.node circle{fill:#e8e8ed;stroke:#fff;stroke-width:4}.node text{font-size:15px;font-weight:700;fill:#86868b}.node .nl{font-size:13px;font-weight:600;fill:#6e6e73}
.node.on circle{fill:#0071e3}.node.on text:first-of-type{fill:#fff}.node.next circle{fill:#fff;stroke:#0071e3;stroke-width:4;animation:npulse 1.6s ease-in-out infinite}.node.next text:first-of-type{fill:#0071e3}
@keyframes npulse{50%{stroke-width:9}}
.grid30.g28{grid-template-columns:repeat(7,1fr)}.grid30 i.fz{background:#bfe4ff;background-image:repeating-linear-gradient(45deg,transparent 0 4px,rgba(255,255,255,.7) 4px 6px)}
.trend{width:100%;height:auto}.tl{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 1.4s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}
.badges{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:600px){.badges{grid-template-columns:repeat(3,1fr)}}
.bdg{background:#fff;border-radius:16px;padding:12px;opacity:.5}.bdg i{font-style:normal;font-size:22px;color:#c7c7cc}.bdg b{display:block;font-size:15px}.bdg small{color:var(--ink2);font-size:12px}
.bdg.on{opacity:1;box-shadow:0 6px 20px rgba(245,99,0,.15)}.bdg.on i{color:#ffb300}
.cheers{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.cheers span{background:#fff4e5;border-radius:99px;padding:6px 12px;font-size:14px}
.sharepre{background:#f5f5f7;border-radius:14px;padding:14px;font-size:15px;white-space:pre-wrap;font-family:inherit}
.anim{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.anim:nth-of-type(2){animation-delay:.05s}.anim:nth-of-type(3){animation-delay:.1s}.anim:nth-of-type(4){animation-delay:.15s}@keyframes rise{from{opacity:0;transform:translateY(16px)}}
.confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}
.xpf{position:fixed;left:50%;top:42%;transform:translate(-50%,0);font-size:34px;font-weight:800;color:#34c759;z-index:61;pointer-events:none;animation:xpup 1.4s cubic-bezier(.2,.7,.2,1) forwards;text-shadow:0 4px 20px rgba(52,199,89,.35)}@keyframes xpup{0%{opacity:0;transform:translate(-50%,20px) scale(.6)}20%{opacity:1;transform:translate(-50%,0) scale(1.1)}100%{opacity:0;transform:translate(-50%,-90px) scale(1)}}
.gmodal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;z-index:59;animation:fade .25s}.gm{background:#fff;border-radius:28px;padding:32px 26px;max-width:340px;text-align:center;animation:pop .45s cubic-bezier(.2,1.4,.4,1)}.gm .big{font-size:64px}.gm h2{margin:6px 0}.gm p{color:var(--ink2)}
@keyframes fade{from{opacity:0}}@keyframes pop{from{transform:scale(.7);opacity:0}}
@media (prefers-reduced-motion:reduce){.flame,.cav,.node.next circle,.hstreak.risk,.anim,.tl{animation:none!important}.tl{stroke-dashoffset:0}}
.sq{font-size:.55em;font-weight:700;vertical-align:.7em;margin-left:.06em;color:var(--blue)}
.pick .whyc{display:block;font-style:normal;font-size:12px;color:#b25000;margin-top:3px}.pick .pr2{text-align:center;line-height:1}.pick .pr2 small{display:block;font-size:10px;font-weight:600;color:var(--ink2)}
.chip.stack{border-color:#5e5ce6;color:#5e5ce6;font-weight:600}
.hswitch{display:flex;gap:8px;overflow-x:auto;margin:0 0 12px}.hswitch button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 14px;font-weight:600}.hswitch button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.card.rep{background:#fff;box-shadow:0 10px 40px rgba(0,113,227,.12);border:1px solid #e3ecff}
.season{display:flex;justify-content:space-between;font-size:13px;font-weight:700;color:#5e5ce6;letter-spacing:.02em;text-transform:uppercase}
.sbar2{height:6px;border-radius:99px;background:#eef0ff;overflow:hidden;margin:8px 0 6px}.sbar2 i{display:block;height:100%;background:linear-gradient(90deg,#5e5ce6,#0071e3);border-radius:99px}
.sgoal{font-size:13px;color:var(--ink2);margin:0 0 16px}
.card.rep h2{font-size:clamp(28px,6vw,34px);margin:2px 0 8px}.rbody{font-size:19px;line-height:1.45;margin:0 0 12px}
.sci{background:var(--alt);border-radius:14px;padding:10px 14px;margin:6px 0 4px}.sci summary{font-weight:600;font-size:14px;cursor:pointer}.sci p{font-size:14px;color:var(--ink2);margin:8px 0 2px;line-height:1.45}
.plan.sm{padding:18px 20px}.plan.sm .pl1{font-size:18px}.plan.sm .pl2{font-size:15px}
.sq2{font-size:15px;margin:12px 0 6px}.sev{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.sev button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 0;font-weight:600}.sev button[aria-pressed="true"]{background:var(--blue);color:#fff;border-color:var(--blue)}
.opts.five .opt[aria-pressed="true"]{background:var(--blue);color:#fff;border-color:var(--blue)}
.lock{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;background:var(--alt);border-radius:14px;padding:12px}.lock span{font-size:24px}.lock small{display:block;color:var(--ink2);font-size:13px}

/* v4 tracker design */
.hero2{position:relative;overflow:hidden;border-radius:30px;padding:22px 20px 18px;margin:0 0 14px;color:#fff;background:#0b0b12;isolation:isolate}
.blob{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55;z-index:-1}
.blob.b1{width:260px;height:260px;background:#0071e3;top:-90px;left:-70px;animation:drift 14s ease-in-out infinite alternate}
.blob.b2{width:220px;height:220px;background:#5e5ce6;bottom:-110px;right:-40px;animation:drift 18s ease-in-out infinite alternate-reverse}
.blob.b3{width:160px;height:160px;background:#f56300;top:30%;right:28%;opacity:.28;animation:drift 22s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(40px,30px) scale(1.15)}}
.h2top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.chip2{background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border-radius:99px;padding:6px 12px;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.h2main{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin:14px 0 10px}
.h2streak{display:flex;align-items:center;gap:12px}.h2streak b{display:block;font-size:64px;line-height:.95;font-weight:800;letter-spacing:-.03em;background:linear-gradient(#ffd27a,#ff7a1a);-webkit-background-clip:text;background-clip:text;color:transparent}.h2streak small{display:block;font-size:14px;color:rgba(255,255,255,.75);margin-top:4px}
.flame.big{width:44px;height:56px}
.h2streak.cold .flame{filter:grayscale(1) brightness(.85) opacity(.75);animation:none}.h2streak.cold b{background:linear-gradient(#aeaeb2,#6e6e73);-webkit-background-clip:text;background-clip:text}
.h2streak.risk{animation:pulse 1.4s ease-in-out infinite}
.h2lvl{position:relative;width:110px;height:110px}.h2lvl svg{width:110px;height:110px;display:block}.lvin{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.lvin b{font-size:22px;font-weight:800}.lvin small{font-size:12px;color:rgba(255,255,255,.75)}
@media (prefers-reduced-motion:no-preference){.lvlarc{animation:ringin 1.4s cubic-bezier(.2,.7,.2,1) both}}@keyframes ringin{from{stroke-dashoffset:var(--c)}}
.week7{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:6px 0 14px}.week7>div{text-align:center}.week7 i{display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.1);font-style:normal;font-weight:800;font-size:14px}.week7 span{display:block;font-size:11px;color:rgba(255,255,255,.6);margin-top:4px}
.week7 .on i{background:linear-gradient(135deg,#2997ff,#5e5ce6);box-shadow:0 4px 14px rgba(41,151,255,.45)}.week7 .fz i{background:#bfe4ff;color:#0b0b12}.week7 .now i{outline:2px solid #fff;outline-offset:2px}
.h2foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;font-size:13px;color:rgba(255,255,255,.75)}.h2foot b{color:#fff}.hero2 .hq{color:#9ecbff;width:18px;height:18px;font-size:11px;margin-left:3px}
.sech{font-size:24px;margin:30px 0 12px;display:flex;align-items:baseline;justify-content:space-between}.sech small{font-size:14px;color:var(--ink2);font-weight:600}
.shelf{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.medal{flex:0 0 118px;scroll-snap-align:start;text-align:center;background:var(--alt);border-radius:22px;padding:16px 10px}.medal i{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 8px;border-radius:50%;background:#e8e8ed;font-style:normal;font-size:28px;filter:grayscale(1);opacity:.6}
.medal.on i{background:radial-gradient(circle at 30% 30%,#fff3c4,#ffb300);filter:none;opacity:1;box-shadow:0 8px 22px rgba(255,179,0,.35)}.medal b{display:block;font-size:14px}.medal small{display:block;font-size:11px;color:var(--ink2);line-height:1.3;margin-top:2px}.medal:not(.on) b{color:var(--ink2)}
.acc{background:var(--alt);border-radius:20px;margin:0 0 10px;overflow:hidden}.acc summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:700;font-size:17px;display:flex;align-items:center;gap:12px}.acc summary::-webkit-details-marker{display:none}.acc summary span{font-size:22px}.acc summary:after{content:"\203A";margin-left:auto;font-size:24px;color:var(--ink2);transition:transform .2s}.acc[open] summary:after{transform:rotate(90deg)}.accb{padding:0 20px 20px}
.coach{box-shadow:0 6px 24px rgba(94,92,230,.08)}
@media (prefers-reduced-motion:reduce){.blob,.h2streak.risk,.lvlarc{animation:none!important}}
.passbar{height:10px;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden}.passbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffd27a,#ff7a1a)}
.passes{display:grid;gap:10px}.pass{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--alt);border-radius:18px;padding:14px 16px;border:2px dashed #c7d8ff}.pass b{font-family:ui-monospace,Menlo,monospace;font-size:19px;letter-spacing:.06em}.pass small{display:block;color:var(--ink2);font-size:13px}.pass .btn{padding:10px 18px}
.pass.used{border-style:solid;border-color:transparent;opacity:.7}.pass.used span{font-size:22px;color:#34c759;font-weight:800}

/* v6 journal + tree */
.guard{background:#f2f0ff;border-radius:14px;padding:12px 14px;font-size:15px;margin:0 0 12px}.guard b{display:block;font-size:13px;color:#5e5ce6;margin-bottom:2px}
.jlog{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.xpt{font-size:12px;font-weight:700;color:#34c759;margin-left:6px}
.tagrow{display:flex;flex-wrap:wrap;gap:8px}.tagrow button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 12px;font-size:14px;cursor:pointer}.tagrow button i{font-style:normal}.tagrow button[aria-pressed="true"]{background:#eaf3ff;border-color:var(--blue);color:#0058b9;font-weight:600}
.noterow{display:flex;gap:8px;margin-top:10px}.noterow input{flex:1;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:15px;font-family:inherit}.noterow .btn{padding:10px 16px}
.tcard{background:linear-gradient(180deg,#f3fbf5,#fff 70%)}.tt{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.stagechip{font-size:12px;font-weight:700;border-radius:99px;padding:6px 10px;background:#fff;border:1px solid var(--line)}.stagechip.s2{background:#eaf3ff;border-color:#bcd8ff}.stagechip.s3{background:#fff4d6;border-color:#ffd680}.stagechip .hq{width:18px;height:18px;font-size:11px}
.rtree{width:100%;height:auto;display:block;margin:6px 0 0;border-radius:22px;background:#03030a;box-shadow:0 18px 50px rgba(8,6,30,.45)}
.rtree .star{fill:#fff;opacity:.7}
.rtree .beam{mix-blend-mode:screen;opacity:.75}
.rtree .fback circle{fill:#0a2a23;opacity:.92}
.rtree .core{mix-blend-mode:screen}
.rtree .ground{fill:url(#tgGround)}
.rtree .rootsd path{fill:none;stroke:#07070f;stroke-linecap:round}
.rtree .veins path,.rtree .veinglow path{fill:none;stroke:var(--rootc);stroke-linecap:round;stroke-width:1.1}
.rtree .veinglow path{stroke-width:3.2;opacity:.8}.rtree .veins path{stroke:#eafff4;stroke-width:.7;opacity:.9}
.rtree .veins path.hot{stroke:#fff;stroke-width:1.2}.rtree .veinglow path.hot{stroke-width:5}
.rtree .trunk .strand{fill:none;stroke:#0a0b1a;stroke-linecap:round;stroke-linejoin:round}.rtree .trunk .strandrim{fill:none;stroke:url(#tgRim);opacity:.45;stroke-linecap:round;mix-blend-mode:screen}.rtree .trunk .flare{fill:#07070f}
.rtree .limbs path{fill:none;stroke:#0a0b1a;stroke-linecap:round}
.rtree .rims path{fill:none;stroke:url(#tgRim);stroke-linecap:round;opacity:.28;mix-blend-mode:screen}
.rtree .ffront circle{fill:url(#tgLeaf)}
.rtree .spk circle{fill:#bfffe0;opacity:.28}
.rtree .mist ellipse{fill:var(--mistc);opacity:.18}
.rtree .pt{fill:var(--ptc);opacity:.75}
.rtree .rh{opacity:.65}.rtree .rh.leaf{fill:#6dff9e}.rtree .rh.light{fill:#9fe3ff}.rtree .rh.gold{fill:#ffd66b}.rtree .rh.bloom{fill:#ff7ad9}
.rtree .rp{cursor:pointer;stroke:#fff;stroke-width:.6}.rtree .rp.leaf{fill:#c8ffd9}.rtree .rp.light{fill:#e3f6ff}.rtree .rp.gold{fill:#fff1c4}.rtree .rp.bloom{fill:#ffd1f0}
.rtree .ping{fill:none;stroke:#fff;stroke-width:1.5}
.rtree .sprout{fill:var(--rootc)}.rtree .sproutleaf{fill:var(--rootc);opacity:.85}.rtree .tnote{font-size:13px;fill:#c9d4ff;font-style:italic;opacity:.85}
.rtree.s0{--rootc:#38f0c8;--mistc:#7fb6ff;--ptc:#9fd0ff}.rtree.s1{--rootc:#4dff9a;--mistc:#c79bff;--ptc:#e3c2ff}.rtree.s2{--rootc:#9dff5c;--mistc:#ffd58a;--ptc:#ffe6a8}
@media (prefers-reduced-motion:no-preference){
 .rtree .grow{animation:treeIn 1.2s ease both}
 .rtree .rp{animation:repFade .6s ease both}
 .rtree .beam{animation:beamPulse 6s ease-in-out infinite}
 .rtree .star{animation:starTwinkle 4s ease-in-out infinite}
 .rtree .pt{animation:ptTwinkle 5s ease-in-out infinite}
 .rtree .core{animation:corePulse 7s ease-in-out infinite}
 .rtree .ping{animation:pingFade 2.4s ease-out 3}
}
@keyframes treeIn{from{opacity:0}to{opacity:1}}
@keyframes repFade{from{opacity:0}to{opacity:1}}
@keyframes beamPulse{0%,100%{opacity:.75}50%{opacity:.35}}
@keyframes starTwinkle{50%{opacity:.2}}
@keyframes ptTwinkle{0%,100%{opacity:.8}50%{opacity:.15}}
@keyframes corePulse{0%,100%{opacity:1}50%{opacity:.82}}
@keyframes pingFade{0%{opacity:.9;stroke-width:2.5}100%{opacity:0;stroke-width:.5}}
.tlegend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink2);margin-top:4px}.tlegend i.k{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px;box-shadow:inset 0 -1px 1px rgba(0,0,0,.15)}
.k.leaf{background:linear-gradient(#8dffb0,#22c77a)}.k.bloom{background:radial-gradient(circle at 35% 30%,#ffb3e6,#ff4fc3)}.k.gold{background:linear-gradient(#ffe89a,#ffb300)}.k.root{background:#37e0c8}
.tday{font-size:14px;margin:8px 0 0;min-height:1em}
.card.story p{font-size:17px;line-height:1.5;margin:8px 0}.quotes blockquote{margin:10px 0 0;padding:10px 14px;border-left:3px solid #5e5ce6;background:#f5f5f7;border-radius:0 12px 12px 0;font-style:italic}
.card.unlock{background:linear-gradient(135deg,#1b1a4a,#0b0b12);color:#fff;text-align:center}.card.unlock h2{color:#fff;font-size:38px;margin:6px 0}.card.unlock p{color:rgba(255,255,255,.85)}.card.unlock .kick{color:#ffd166;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.card.unlock .btn{margin-top:12px}

/* v7 clear daily action */
.doit{background:linear-gradient(135deg,#0071e3,#5e5ce6);color:#fff;border-radius:22px;padding:20px 18px 16px;margin:4px 0 14px;box-shadow:0 12px 30px rgba(0,113,227,.25)}
.doit .dk{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.doit .dwhen{margin:10px 0 2px;font-size:15px;color:rgba(255,255,255,.85)}.doit .dwhat{margin:0 0 8px;font-size:23px;line-height:1.3;font-weight:700}
.doit .ddone{margin:0 0 14px;font-size:13px;color:rgba(255,255,255,.75)}
.doit .ck .opt{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff}.doit .ck .opt[aria-pressed="true"]{background:#fff;color:#0058b9;border-color:#fff}
.doit.done{background:linear-gradient(135deg,#1f9d55,#34c759)}.doit.done .ck .opt[aria-pressed="true"]{color:#1f7a44}
.focus{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.focus .fk{font-size:12px;font-weight:700;color:#5e5ce6;text-transform:uppercase;letter-spacing:.04em}.focus b{display:block;font-size:17px;margin:4px 0 2px}.focus p{font-size:15px;color:var(--ink2);line-height:1.45;margin:0 0 8px}

/* v8 game layer */
.cav2{display:block;width:46px;height:46px}.coach{grid-template-columns:46px 1fr;align-items:center}
.ro{display:block;animation:robob 2.8s ease-in-out infinite}.ro-cheer{animation:rojump .9s cubic-bezier(.3,1.6,.5,1) 2,robob 2.8s ease-in-out 1.8s infinite}.ro-worried{animation:roshake 2.4s ease-in-out infinite}
@keyframes robob{50%{transform:translateY(-3px)}}@keyframes rojump{40%{transform:translateY(-14px) scale(1.05,.95)}}@keyframes roshake{0%,80%,100%{transform:none}85%{transform:rotate(-6deg)}90%{transform:rotate(6deg)}95%{transform:rotate(-3deg)}}
.gemb{border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:99px;padding:4px 12px;font:600 13px Inter,sans-serif;cursor:pointer}.gemb b{color:#9fe8ff}
.card.quests{background:#fff;border:2px solid #eef0ff;padding:16px 18px}.quests .qh{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.quests .qh b{font-size:18px;display:block}.quests .qh small{color:var(--ink2);font-size:13px}
.chesti{font-size:34px;filter:grayscale(.6);opacity:.7;transition:all .3s}.chesti.open{filter:none;opacity:1;animation:rojump .9s cubic-bezier(.3,1.6,.5,1)}
.qrow{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:8px 0;font-size:15px}.qrow i{font-style:normal;width:30px;height:30px;border-radius:10px;background:#f2f2f7;display:grid;place-items:center;font-size:16px}.qrow em{font-style:normal;font-size:12px;font-weight:700;color:#0a84ff}
.qrow.done i{background:#34c759;color:#fff;font-weight:800}.qrow.done span{color:var(--ink2);text-decoration:line-through;text-decoration-color:rgba(0,0,0,.25)}
.qbar{height:10px;border-radius:99px;background:#eef0ff;overflow:hidden;margin-top:8px}.qbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffcc00,#ff9500);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.gover{position:fixed;inset:0;z-index:90;background:rgba(10,10,20,0);display:grid;place-items:center;padding:20px;transition:background .3s}.gover.on{background:rgba(10,10,20,.78)}
.gbox{position:relative;width:100%;max-width:380px;background:#fff;border-radius:30px;padding:26px 22px 20px;text-align:center;transform:scale(.8);opacity:0;transition:all .35s cubic-bezier(.2,1.4,.4,1)}.gover.on .gbox{transform:none;opacity:1}
.gbox .ro{margin:0 auto}.gtitle{font-size:30px;margin:8px 0 4px}.gsub{color:var(--ink2);margin:0 0 16px}
.gmute{position:absolute;top:14px;right:14px;border:0;background:#f2f2f7;border-radius:50%;width:36px;height:36px;font-size:16px;cursor:pointer}
.gstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}.gst{border-radius:16px;padding:10px 4px;border:2px solid}.gst small{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.gst b{display:block;font-size:22px;margin-top:2px}
.gst.xp{border-color:#ffcc00;background:#fff9db}.gst.xp small{color:#b38600}.gst.fire{border-color:#ff9500;background:#fff1e0}.gst.fire small{color:#c25e00}.gst.gem{border-color:#5ac8fa;background:#e6f7ff}.gst.gem small{color:#0a7bbd}
.gst.bump b{animation:rojump .8s cubic-bezier(.3,1.6,.5,1) .5s}
.gq{background:#f7f7fb;border-radius:18px;padding:12px 14px;text-align:left;margin:0 0 14px}.gqh{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}.gqh span{color:var(--ink2);font-weight:700}
.gqr{display:flex;gap:10px;align-items:center;font-size:14px;padding:4px 0}.gqr i{font-style:normal;width:24px;height:24px;border-radius:8px;background:#e9e9f0;display:grid;place-items:center;font-size:12px}.gqr.done i{background:#34c759;color:#fff}.gqr.done span{color:var(--ink2)}
.gextra{background:#f2f0ff;border-radius:14px;padding:10px 12px;margin:0 0 14px;font-size:15px}
.chest{font-size:96px;line-height:1;margin:6px 0}.chest .lid{display:inline-block;transition:transform .5s cubic-bezier(.3,1.6,.5,1)}.chest.open .lid{transform:scale(1.25) rotate(-8deg);filter:drop-shadow(0 0 22px rgba(255,204,0,.8))}
.sitem{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;text-align:left;background:#f7f7fb;border-radius:18px;padding:14px;margin:0 0 8px}.sitem .si{font-size:32px}.sitem small{display:block;color:var(--ink2);font-size:13px}.sitem .btn{padding:10px 14px;white-space:nowrap}.sitem .btn[disabled]{opacity:.45}
@media (prefers-reduced-motion:reduce){.ro,.chesti.open,.gst.bump b{animation:none!important}}

/* v9 friend streaks + league */
.fstreak,.league{padding:16px 18px}.fsh b,.lgh b{display:block;font-size:18px}.fsh small,.lgh small{color:var(--ink2);font-size:13px}
.fsr{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.fsr:first-of-type{border-top:0}
.fsf{display:flex;align-items:center;gap:4px;background:#fff1e0;border-radius:14px;padding:6px 8px;justify-content:center}.fsf b{font-size:20px;color:#e25b00}.fsf.cold{background:#f2f2f7}.fsf.cold b{color:#a1a1a8}.fsf.cold .flame{filter:grayscale(1) opacity(.7);animation:none}
.fsn b{display:block;font-size:16px}.fsn small{font-size:13px;color:var(--ink2)}.fsn .ok{color:#1f9d55;font-weight:700}.nudge{padding:8px 14px}.fsdone{font-size:24px}
.fsempty{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;margin-top:10px}.fsempty p{margin:0;font-size:15px}.fsempty .btn{grid-column:1/-1;justify-self:start}
.lgh{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.lgme{background:linear-gradient(135deg,#ffcc00,#ff9500);color:#1d1d1f;font-weight:800;border-radius:99px;padding:6px 12px}
.lgr{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border-radius:12px;font-size:15px}.lgr .lgk{text-align:center;font-weight:800;color:var(--ink2);font-size:15px}.lgr.top .lgk{font-size:20px}.lgr b{font-size:14px}
.lgr.me{background:#eaf3ff;box-shadow:inset 0 0 0 2px #0071e3}.lgopt{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink2);margin-top:10px}
