@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f2f7;--surface:#fff;--line:#ddd8e6;--ink:#221b33;--ink-soft:#5b5470;--accent:#6b2a5a;--accent-ink:#fff;--accent-soft:#ebddea;--reported:#17695a;--reported-ink:#fff;--estimate:#8a5700;--estimate-soft:#fbf0d9;--font-display:"Bricolage Grotesque Variable", system-ui, sans-serif;--font-body:"Figtree Variable", system-ui, sans-serif;--radius-card:20px;--radius-pill:999px;--tab-height:68px;--well:var(--bg)}:root[data-theme=dark]{--bg:#17121f;--surface:#211a2c;--line:#3a3149;--ink:#f1edf7;--ink-soft:#b9b2c9;--accent:#e0a9d2;--accent-ink:#2a1226;--accent-soft:#3a2438;--reported:#6fd0bb;--reported-ink:#0c2a24;--estimate:#f0b95a;--estimate-soft:#33260f}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);margin:0;font-size:1rem;line-height:1.55}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;line-height:1.15}h1{font-size:2rem;font-weight:700}h2{font-size:1.25rem;font-weight:650}p{max-width:60ch;margin:0}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}.shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{padding:calc(env(safe-area-inset-top) + .9rem) 1rem .5rem;align-items:center;gap:.6rem;width:100%;max-width:560px;margin:0 auto;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.wave{color:var(--accent);flex:none}.screen{width:100%;max-width:560px;padding:1rem 1rem calc(var(--tab-height) + env(safe-area-inset-bottom) + 1.5rem);flex-direction:column;flex:1;gap:1.25rem;margin:0 auto;display:flex}.lede{color:var(--ink-soft);margin-top:.4rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.75rem;padding:1.1rem;display:flex}.key{gap:.9rem}.key-row{align-items:flex-start;gap:.75rem;display:flex}.key-row .tag{justify-content:center;width:8.5rem}.key-row p{color:var(--ink-soft);font-size:.95rem}.tag{border-radius:var(--radius-pill);white-space:nowrap;flex:none;align-items:center;min-height:28px;padding:0 .7rem;font-size:.85rem;font-weight:600;display:inline-flex}.tag-reported{background:var(--reported);color:var(--reported-ink)}.tag-estimate{background:var(--estimate-soft);color:var(--estimate);border:1.5px dashed var(--estimate)}.tag-suggestion{background:var(--accent-soft);color:var(--accent)}.tabbar{z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.tabbar ul{max-width:560px;height:var(--tab-height);grid-template-columns:repeat(5,1fr);margin:0 auto;padding:0;list-style:none;display:grid}.tab{height:100%;color:var(--ink-soft);-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.78rem;font-weight:600;text-decoration:none;display:flex;position:relative}.tab[aria-current=page]:before{content:"";background:var(--accent);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:28%;right:28%}@media (prefers-reduced-motion:no-preference){.tab{transition:color .15s}}.form{gap:1rem}.field{flex-direction:column;gap:.35rem;font-weight:600;display:flex}.field small{color:var(--ink-soft);font-weight:400}.field input{min-height:48px;font:inherit;color:var(--ink);background:var(--well);border:1.5px solid var(--line);border-radius:12px;padding:0 .9rem;font-weight:400}.field input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.check{color:var(--ink-soft);align-items:flex-start;gap:.75rem;font-size:.95rem;display:flex}.check input{width:24px;height:24px;accent-color:var(--accent);flex:none;margin:2px 0 0}.button{border-radius:var(--radius-pill);background:var(--accent);min-height:48px;color:var(--accent-ink);font:inherit;cursor:pointer;border:0;padding:0 1.2rem;font-weight:700}.button:disabled{opacity:.6;cursor:progress}.button-quiet{color:var(--ink);border:1.5px solid var(--line);background:0 0}.links{flex-wrap:wrap;gap:.25rem 1.25rem;display:flex}.link{cursor:pointer;min-height:44px;color:var(--accent);font:inherit;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.message{background:var(--accent-soft);color:var(--ink);border-radius:12px;padding:.7rem .9rem;font-size:.95rem}.message-error{background:var(--estimate-soft);color:var(--estimate);border:1.5px solid var(--estimate)}.button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}fieldset{border:0;min-width:0;margin:0;padding:0}.choice{display:block;position:relative}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice>span{border:1.5px solid var(--line);background:var(--well);border-radius:14px;flex-direction:column;justify-content:center;gap:2px;min-height:52px;padding:.6rem 1rem;font-weight:600;display:flex}.choice small{color:var(--ink-soft);font-weight:400}.choice input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.choice input:checked+span small{color:var(--ink-soft)}.choice input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.card-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.facts{grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0;display:grid}.facts dt{color:var(--ink-soft)}.facts dd{margin:0;font-weight:600}.form legend{margin-bottom:.4rem;padding:0;font-weight:600}.form legend small{color:var(--ink-soft);margin-left:.4rem;font-weight:400}.screen-onboarding{padding:calc(env(safe-area-inset-top) + 1rem) 1rem 0;min-height:100dvh}.onboarding{flex-direction:column;flex:1;gap:1.75rem;display:flex}.rhythm-progress{width:100%;height:auto;display:block;overflow:visible}.rhythm-progress path{fill:none;stroke-linecap:round;stroke-linejoin:round}.rhythm-track{stroke:var(--line);stroke-width:2.5px}.rhythm-done{stroke:var(--accent);stroke-width:3.2px}.ob-body{flex-direction:column;gap:1.5rem;display:flex}.ob-head{flex-direction:column;gap:.75rem;display:flex}.ob-title{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(2rem,8.5vw,2.6rem);font-weight:750;line-height:1.04}.ob-title-hero{letter-spacing:-.04em;font-size:clamp(2.7rem,13vw,3.8rem);font-weight:800}.ob-title:focus{outline:none}.ob-head .lede{margin:0;font-size:1.05rem}.ob-name input{font-size:1.15rem}.ob-list{flex-direction:column;gap:.6rem;display:flex}.ob-option,.ob-number{display:block;position:relative}.ob-option input,.ob-number input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.ob-option>span{background:var(--surface);border:1.5px solid var(--line);border-radius:18px;align-items:center;gap:.9rem;min-height:60px;padding:.75rem 1rem;font-size:1.05rem;font-weight:650;display:flex}.ob-option-text{flex-direction:column;flex:1;gap:2px;display:flex}.ob-option small{color:var(--ink-soft);font-size:.9rem;font-weight:400}.ob-tick{border:1.5px solid var(--line);color:#0000;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;display:grid}.ob-option input:checked+span{border-color:var(--accent);color:var(--accent-ink)}.ob-number input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.ob-option input:checked+span small{color:var(--accent-ink);opacity:.8}.ob-option input:checked+span .ob-tick{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--accent)}.ob-option input:focus-visible+span,.ob-number input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}.bars{color:inherit;flex:none}.bar-on{fill:currentColor}.bar-off{fill:currentColor;opacity:.22}.ob-numbers{grid-template-columns:repeat(6,1fr);gap:.5rem;display:grid}.ob-numbers:has(.ob-number-wide){grid-template-columns:repeat(4,1fr)}.ob-number>span{aspect-ratio:1;background:var(--surface);border:1.5px solid var(--line);font-family:var(--font-display);letter-spacing:-.03em;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;font-size:1.9rem;font-weight:700;display:flex}.ob-number-wide>span{aspect-ratio:4/5;font-size:2.2rem}.ob-number small{font-family:var(--font-body);letter-spacing:0;opacity:.75;font-size:.8rem;font-weight:600}.ob-week{background:var(--surface);border-radius:var(--radius-card);border:1px solid var(--line);margin:0;padding:1.1rem 1rem .9rem}.ob-week figcaption{color:var(--ink-soft);margin-top:.6rem;font-size:.9rem}.week-rhythm{width:100%;height:auto;display:block;overflow:visible}.week-line{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.week-dot{fill:var(--surface);stroke:var(--ink-soft);stroke-width:1.5px}.week-dot-on{fill:var(--accent);stroke:var(--surface);stroke-width:2.5px}.week-day{font-family:var(--font-body);fill:var(--ink-soft);font-size:12px;font-weight:600}.ob-kinds{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.ob-kinds li{align-items:flex-start;gap:.85rem;display:flex}.ob-kinds .tag{justify-content:center;width:8.5rem}.ob-kinds p{font-size:.95rem}.ob-promises{border-left:3px solid var(--accent);flex-direction:column;gap:.5rem;padding:.1rem 0 .1rem 1rem;display:flex}.ob-promises h2{font-size:1.05rem}.ob-promises ul{color:var(--ink-soft);flex-direction:column;gap:.35rem;margin:0;padding-left:1.1rem;display:flex}.ob-dates{flex-direction:column;gap:1rem;display:flex}.ob-summary{flex-direction:column;gap:.5rem;display:flex}.ob-summary dl{margin:0}.ob-summary-row{border-bottom:1px solid var(--line);grid-template-columns:7.5rem 1fr auto;align-items:center;gap:.75rem;padding:.35rem 0;display:grid}.ob-summary-row:last-child{border-bottom:0}.ob-summary-row dt{color:var(--ink-soft);font-size:.92rem}.ob-summary-row dd{margin:0;font-weight:600}.ob-actions{padding:1.25rem 0 calc(env(safe-area-inset-bottom) + 1rem);background:linear-gradient(to bottom, transparent, var(--bg) 35%);gap:.75rem;margin-top:auto;display:flex;position:sticky;bottom:0}.ob-next{flex:1;min-height:54px;font-size:1.05rem}.ob-back{flex:none;width:54px;min-height:54px;padding:0}.ob-option>span{background-image:linear-gradient(var(--accent), var(--accent));background-repeat:no-repeat;background-size:0% 100%}.ob-option input:checked+span{background-color:var(--surface);background-size:100% 100%}.ob-tick svg{transform:scale(0)}.ob-option input:checked+span .ob-tick svg{transform:scale(1)}.ob-hello{font-family:var(--font-display);color:var(--accent);letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.rhythm-head-dot{fill:var(--accent)}.rhythm-head-glow{fill:var(--accent);opacity:.25;transform-box:fill-box;transform-origin:50%}.onboarding{position:relative}.drift{z-index:-1;pointer-events:none;opacity:.1;width:200%;height:9rem;position:absolute;top:4.5rem;left:0}.drift path{fill:none;stroke:var(--accent);stroke-width:14px;stroke-linecap:round}.screen-onboarding{overflow-x:clip}.ob-finale{z-index:50;background:var(--accent);color:var(--accent-ink);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;padding:2rem 1.5rem;display:flex;position:fixed;inset:0}.ob-finale-wave{width:min(80vw,340px);height:auto;overflow:visible}.ob-finale-wave path{fill:none;stroke:currentColor;stroke-width:5px;stroke-linecap:round}.ob-finale-title{font-family:var(--font-display);letter-spacing:-.035em;text-wrap:balance;max-width:14ch;font-size:clamp(2.2rem,10vw,3.4rem);font-weight:800;line-height:1.04}.ob-finale-sub{opacity:.85;font-size:1.05rem}.ob-next:active,.ob-back:active{transform:scale(.97)}@media (prefers-reduced-motion:no-preference){.ob-go-forward .ob-head .lede,.ob-go-forward>:not(.ob-head){animation:.5s cubic-bezier(.2,.8,.2,1) .18s backwards ob-in-right}.ob-go-back .ob-head .lede,.ob-go-back>:not(.ob-head){animation:.5s cubic-bezier(.2,.8,.2,1) .18s backwards ob-in-left}.ob-title .w{animation:.6s cubic-bezier(.2,.9,.25,1.1) backwards word-up;animation-delay:calc(var(--i) * 55ms);display:inline-block}.ob-list>.ob-option,.ob-numbers>.ob-number,.ob-kinds>li,.ob-summary-row{animation:.45s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.22s + var(--i) * 60ms)}.ob-go-forward>.ob-list,.ob-go-back>.ob-list,.ob-go-forward>.ob-numbers,.ob-go-back>.ob-numbers{animation:none}.ob-option>span{transition:background-size .4s cubic-bezier(.65,0,.35,1),color .2s .1s,border-color .2s,transform .15s}.ob-option:active>span,.ob-number:active>span{transform:scale(.98)}.ob-tick svg{transition:transform .35s cubic-bezier(.3,1.6,.5,1) .12s}.ob-number>span{transition:background-color .2s,border-color .2s,color .2s,transform .15s}.ob-number input:checked+span{animation:.4s cubic-bezier(.3,1.6,.5,1) pop}.ob-hello{animation:.5s cubic-bezier(.2,.8,.2,1) ob-in-up}.rhythm-track{animation:.8s backwards fade-in}.rhythm-done{transition:stroke-dasharray .7s cubic-bezier(.65,0,.35,1);animation:.9s cubic-bezier(.65,0,.35,1) .1s backwards rhythm-in}.rhythm-head{transition:transform .7s cubic-bezier(.65,0,.35,1);animation:.4s .9s backwards fade-in}.rhythm-head-glow{animation:2.2s ease-in-out infinite glow}.drift{animation:16s linear infinite drift,1.2s backwards fade-in}.week-line{transition:d .5s cubic-bezier(.65,0,.35,1)}.week-dot{transition:cy .5s cubic-bezier(.65,0,.35,1),r .3s}.week-line-draw{stroke-dasharray:1;animation:1.4s cubic-bezier(.65,0,.35,1) .3s backwards week-draw}.week-rhythm-draw .week-dot{transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.3,1.6,.5,1) backwards pop-in;animation-delay:calc(.45s + var(--i) * .17s)}.ob-finale{animation:.6s cubic-bezier(.65,0,.35,1) backwards flood}.ob-finale-wave path{stroke-dasharray:1;animation:1.1s cubic-bezier(.65,0,.35,1) .35s backwards week-draw}.ob-finale-title .w{animation:.6s cubic-bezier(.2,.9,.25,1.1) backwards word-up;animation-delay:calc(.6s + var(--i) * 80ms);display:inline-block}.ob-finale-sub{animation:.5s 1.2s backwards ob-in-up}}@keyframes ob-in-right{0%{opacity:0;transform:translate(28px)}}@keyframes ob-in-left{0%{opacity:0;transform:translate(-28px)}}@keyframes ob-in-up{0%{opacity:0;transform:translateY(14px)}}@keyframes word-up{0%{opacity:0;transform:translateY(.45em)rotate(2deg)}}@keyframes pop{40%{transform:scale(1.1)}}@keyframes pop-in{0%{transform:scale(0)}}@keyframes fade-in{0%{opacity:0}}@keyframes rhythm-in{0%{stroke-dashoffset:1px}}@keyframes glow{50%{opacity:0;transform:scale(1.7)}}@keyframes drift{to{transform:translate(-50%)}}@keyframes week-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes flood{0%{clip-path:circle(0% at 50% 100%)}to{clip-path:circle(150% at 50% 100%)}}.screen{overflow-x:clip}.page{flex-direction:column;gap:1.25rem;display:flex}.page-head{flex-direction:column;gap:.35rem;display:flex}.display{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(2rem,8.5vw,2.5rem);font-weight:750;line-height:1.04}.display-hero{letter-spacing:-.04em;font-size:clamp(2.6rem,12vw,3.4rem);font-weight:800}.date{color:var(--accent);font-weight:650}.button{gap:.5rem}.button-big{min-height:56px;font-size:1.05rem}.button:active{transform:scale(.97)}.tabbar ul{position:relative}.tab-crest{pointer-events:none;justify-content:center;width:20%;height:10px;display:flex;position:absolute;top:0;left:0}.tab-crest path{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.tab[aria-current=page]:before{content:none}.tab[aria-current=page] svg{stroke-width:2.4px}.button-light{background:var(--accent-ink);color:var(--accent)}.report{flex-direction:column;gap:.55rem;margin:0;display:flex}details.key>summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:32px;list-style:none;display:flex}details.key>summary::-webkit-details-marker{display:none}details.key>summary:after{content:"+";color:var(--ink-soft);font-size:1.4rem;font-weight:500;line-height:1}details.key[open]>summary:after{content:"–"}.checkin{flex-direction:column;gap:1rem;display:flex}.question{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:.95rem 1rem .8rem}.question legend{float:left;width:100%;font-family:var(--font-display);margin-bottom:.6rem;padding:0;font-size:1.1rem;font-weight:700}.question legend small{font-family:var(--font-body);color:var(--ink-soft);margin-left:.4rem;font-size:.85rem;font-weight:400}.scale{clear:both;grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.scale-words{grid-template-columns:repeat(4,1fr)}.scale-option,.chip{display:block;position:relative}.scale-option input,.chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.scale-option>span{background-color:var(--well);border:1.5px solid var(--line);border-radius:14px;place-items:center;min-height:48px;font-size:1.05rem;font-weight:700;display:grid}.scale-words .scale-option>span{font-size:.9rem}.scale-option input:checked+span{background-color:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.scale-option input:focus-visible+span,.chip input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.scale-ends{color:var(--ink-soft);justify-content:space-between;margin-top:.4rem;font-size:.8rem;display:flex}.chips{clear:both;flex-wrap:wrap;gap:.45rem;display:flex}.chip>span{border-radius:var(--radius-pill);border:1.5px solid var(--line);background-color:var(--well);align-items:center;min-height:40px;padding:0 .95rem;font-size:.92rem;font-weight:600;display:inline-flex}.chip input:checked+span{background-color:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.saved{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.75rem .9rem;display:flex}.saved>span:not(.tag){flex:1;min-width:12rem}.drawn-check{flex:none}.drawn-check circle{fill:var(--reported)}.drawn-check path{fill:none;stroke:var(--reported-ink);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.skeleton{flex-direction:column;gap:.8rem;display:flex}.skeleton-row{border-radius:var(--radius-card);background-color:var(--surface);border:1px solid var(--line);height:72px}.skeleton-row:first-of-type{width:70%;height:44px}.profile-head{align-items:center;gap:1rem;display:flex}.avatar{background:var(--accent);width:68px;height:68px;color:var(--accent-ink);font-family:var(--font-display);box-shadow:0 0 0 4px var(--bg), 0 0 0 6px var(--accent-soft);border-radius:50%;flex:none;place-items:center;margin-left:6px;font-size:2rem;font-weight:800;display:grid}.profile-head .lede{overflow-wrap:anywhere;margin-top:.2rem}.setup-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.setup-list li{border-bottom:1px solid var(--line)}.setup-list li:last-child{border-bottom:0}.setup-row{color:var(--ink);border-radius:12px;grid-template-columns:34px 7.5rem 1fr 16px;align-items:center;gap:.6rem;padding:.55rem 0;text-decoration:none;display:grid}.setup-row:hover .setup-go{color:var(--accent)}.setup-go{color:var(--ink-soft)}.setup-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:11px;place-items:center;display:grid}.setup-term{color:var(--ink-soft);font-size:.92rem}.setup-value{font-weight:600}.auth-head{flex-direction:column;gap:.6rem;padding-top:.5rem;display:flex;position:relative}.auth-head .drift{top:.5rem}@media (prefers-reduced-motion:no-preference){.page-forward{animation:.45s cubic-bezier(.2,.8,.2,1) ob-in-right}.page-back{animation:.45s cubic-bezier(.2,.8,.2,1) ob-in-left}.display .w{animation:.6s cubic-bezier(.2,.9,.25,1.1) backwards word-up;animation-delay:calc(var(--i) * 55ms);display:inline-block}.page-head .lede,.page-head .date,.profile-head .lede{animation:.6s .25s backwards fade-in}.wave path{stroke-dasharray:1;animation:1.1s cubic-bezier(.65,0,.35,1) backwards week-draw}.tab-crest{transition:transform .45s cubic-bezier(.5,1.5,.5,1)}.tab svg{transition:transform .3s cubic-bezier(.3,1.6,.5,1)}.tab[aria-current=page] svg{transform:translateY(-2px)scale(1.08)}.setup-row{animation:.4s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.3s + var(--i) * 50ms)}.avatar{animation:.6s cubic-bezier(.3,1.6,.5,1) backwards pop-in}.scale-option>span,.chip>span{transition:background-color .2s,border-color .2s,color .2s,transform .15s}.scale-option input:checked+span,.chip input:checked+span{animation:.4s cubic-bezier(.3,1.6,.5,1) pop}.scale-option:active>span,.chip:active>span{transform:scale(.95)}.saved-now{animation:.4s cubic-bezier(.2,.8,.2,1) ob-in-up}.saved-now .drawn-check circle{transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.3,1.6,.5,1) backwards pop-in}.saved-now .drawn-check path{stroke-dasharray:1;animation:.45s ease-out .3s backwards week-draw}.skeleton-row{background-image:linear-gradient(100deg, transparent 30%, var(--bg) 50%, transparent 70%);background-size:220% 100%;animation:1.3s linear infinite shimmer}.auth-form{animation:.45s cubic-bezier(.2,.8,.2,1) .1s backwards ob-in-up}}@keyframes grow{0%{transform:scaleX(0)}}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.suggestion{background:var(--accent);color:var(--accent-ink);border-radius:28px;position:relative;overflow:hidden}.amp-wave{opacity:.16;width:200%;height:96px;position:absolute;top:0;left:0}.amp-wave path{fill:none;stroke:currentColor;stroke-width:5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.suggestion-body{flex-direction:column;align-items:flex-start;gap:.7rem;padding:1.4rem 1.25rem .5rem;display:flex;position:relative}.suggestion-body .tag{background:var(--accent-ink);color:var(--accent)}.suggestion h2{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(1.9rem,8vw,2.3rem);font-weight:780;line-height:1.04}.suggestion-body p{opacity:.92;font-size:1.05rem}.why-toggle{min-height:44px;color:inherit;font:inherit;cursor:pointer;text-underline-offset:4px;background:0 0;border:0;align-items:center;gap:.5rem;margin:.15rem 0 0 -.25rem;padding:0 .25rem;font-weight:700;text-decoration:underline;display:inline-flex}.why-toggle svg{transition:transform .3s}.why-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.why{grid-template-rows:0fr;display:grid;position:relative}.why-open{grid-template-rows:1fr}.why-inner{overflow:hidden}.reasons{flex-direction:column;gap:0;margin:0;padding:.35rem 1.25rem 1.3rem;list-style:none;display:flex}.reason{background:var(--surface);color:var(--ink);border-radius:16px;grid-template-columns:18px 1fr;gap:.8rem;margin-top:.5rem;margin-left:-.9rem;margin-right:-.9rem;padding:.85rem .9rem;display:grid;position:relative}.reason p{opacity:1;max-width:none;margin-top:.4rem;font-size:.97rem}.reason-node{border-radius:50%;width:14px;height:14px;margin-top:7px}.reason-reported .reason-node{background:var(--reported)}.reason-estimate .reason-node{border:2px dashed var(--estimate);background:var(--estimate-soft)}.reason-rule .reason-node{border:2px solid var(--accent)}.rule-chip{border-radius:var(--radius-pill);border:1.5px solid var(--ink-soft);min-height:28px;color:var(--ink);align-items:center;padding:0 .7rem;font-size:.85rem;font-weight:600;display:inline-flex}.suggestion .button-light{margin-top:.2rem}@media (prefers-reduced-motion:no-preference){.amp-wave{animation:22s linear infinite drift}.suggestion-rest .amp-wave{animation-duration:40s}.suggestion-progress .amp-wave{animation-duration:14s}.why{transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1)}.why-open .reason{animation:.45s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.12s + var(--i) * 90ms)}.suggestion h2{animation:.6s cubic-bezier(.2,.9,.25,1.1) .25s backwards word-up}}.session{background:var(--surface);border:1px solid var(--line);border-radius:28px;flex-direction:column;gap:.85rem;padding:1.2rem 1.1rem 1rem;display:flex}.session-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.session-meta{color:var(--ink-soft);font-size:.92rem;font-weight:600}.session h2{letter-spacing:-.03em;font-size:clamp(1.9rem,8vw,2.3rem);font-weight:780;line-height:1.04}.adapted{background:var(--accent-soft);border-radius:14px;max-width:none;padding:.7rem .9rem;font-size:.95rem}.adapted a{color:var(--accent);font-weight:700}.adapted-prompt{background:var(--well);border:1px dashed var(--line)}.effort,.session-rest,.session-foot{color:var(--ink-soft);font-size:.95rem}.session-foot{padding-top:.25rem;font-size:.85rem}.timebar{border:1.5px dashed var(--line);border-radius:12px;padding:4px}.timebar-fill{gap:3px;height:14px;display:flex}.timebar-part{background:var(--accent);border-radius:6px;min-width:6px}.timebar-warm{background:var(--accent-soft)}.moves{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.move{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline;gap:.1rem .75rem;padding:.75rem 0;display:grid}.move-pattern{color:var(--accent);grid-column:1;font-size:.8rem;font-weight:700}.move-name{font-family:var(--font-display);letter-spacing:-.01em;grid-column:1;font-size:1.12rem;font-weight:700}.move-rx{color:var(--ink-soft);white-space:nowrap;grid-area:1/2/span 2;align-self:center;font-weight:600}.move-rx b{color:var(--ink);font-size:1.15rem}.was{opacity:.55;margin-right:.35rem}.move-note{background:var(--accent-soft);border-radius:10px;grid-column:1/-1;margin-top:.3rem;padding:.4rem .7rem;font-size:.9rem}.week{flex-direction:column;gap:.85rem;display:flex}.plan-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.plan-item{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:0 1rem}.plan-item summary{cursor:pointer;align-items:center;gap:.6rem;min-height:52px;font-weight:650;list-style:none;display:flex}.plan-item summary::-webkit-details-marker{display:none}.plan-name{font-family:var(--font-display);flex:1;font-size:1.05rem}.plan-next{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:.15rem .6rem;font-size:.8rem;font-weight:700}.plan-min{color:var(--ink-soft);font-size:.9rem;font-weight:600}.plan-moves{flex-direction:column;gap:.5rem;margin:0;padding:0 0 .9rem;list-style:none;display:flex}.plan-moves li{align-items:baseline;gap:.5rem;display:flex}.plan-moves li>span{color:var(--accent);min-width:4.2rem;font-size:.78rem;font-weight:700}.plan-moves em{color:var(--ink-soft);white-space:nowrap;margin-left:auto;font-style:normal;font-weight:600}@media (prefers-reduced-motion:no-preference){.session{animation:.5s cubic-bezier(.2,.8,.2,1) .15s backwards ob-in-up}.timebar-part{transform-origin:0;animation:.6s cubic-bezier(.2,.8,.2,1) backwards grow;animation-delay:calc(.35s + var(--i) * 70ms)}.timebar-fill{transition:width .6s cubic-bezier(.65,0,.35,1)}.move{animation:.45s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.4s + var(--i) * 70ms)}.was{text-decoration:line-through;animation:.5s .9s backwards strike-in}.adapted:not(.adapted-prompt),.week{animation:.5s cubic-bezier(.2,.8,.2,1) .3s backwards ob-in-up}}.was{text-decoration:line-through}@keyframes strike-in{0%{opacity:1;text-decoration-color:#0000}}.session-start{width:100%;margin-top:.4rem;text-decoration:none}.rhythm-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.8rem;padding:1.1rem;display:flex}.rhythm-caption{color:var(--ink-soft);font-size:.9rem}.weekly{align-items:flex-end;gap:.5rem;height:120px;padding-top:6px;display:flex;position:relative}.weekly-col{flex:1;align-items:flex-end;height:100%;display:flex}.weekly-bar{background:var(--accent);opacity:.35;border-radius:99px 99px 6px 6px;width:100%;display:block}.weekly-now .weekly-bar{opacity:1}.weekly-goal{border-top:2px dashed var(--ink-soft);opacity:.5;pointer-events:none;position:absolute;left:0;right:0}.recent{flex-direction:column;margin:.2rem 0 0;padding:0;list-style:none;display:flex}.recent li{border-top:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.6rem;padding:.55rem 0;display:flex}.recent-day{color:var(--ink-soft);min-width:5.6rem;font-size:.9rem}.recent-name{flex:1;font-weight:650}.recent-sets{color:var(--ink-soft);font-size:.9rem}.recent-pain{border:1.5px solid var(--ink-soft);border-radius:99px;padding:.1rem .55rem;font-size:.78rem;font-weight:650}.screen-focus{padding:calc(env(safe-area-inset-top) + 1rem) 1rem 0;min-height:100dvh;overflow-x:clip}.logger{flex-direction:column;flex:1;gap:1.25rem;display:flex}.logger-top{flex-direction:column;gap:.4rem;display:flex}.leave-link,.leave{align-self:flex-end;min-height:36px;font-size:.92rem}.leave{color:var(--ink-soft);align-items:center;gap:1rem;display:flex}.logger-body{flex-direction:column;gap:1.1rem;display:flex}.logger-head{flex-direction:column;gap:.5rem;display:flex}.logger-count{color:var(--accent);font-size:.95rem;font-weight:700}.logger-target{color:var(--ink-soft)}.logger-target b{color:var(--ink)}.lasttime{align-items:flex-start;gap:.6rem;font-size:.92rem;display:flex}.lasttime>span:last-child{color:var(--ink-soft);flex:1}.logger-note{background:var(--accent-soft);border-radius:12px;max-width:none;padding:.55rem .8rem;font-size:.92rem}.sets{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.set{background:var(--surface);border:1.5px solid var(--line);border-radius:22px;flex-direction:column;gap:.8rem;padding:.9rem .9rem .8rem;display:flex}.set-done{border-color:var(--reported)}.set-head{justify-content:space-between;align-items:center;display:flex}.set-number{font-family:var(--font-display);font-size:1.15rem;font-weight:750}.set-check{border:2px solid var(--line);background:var(--well);width:50px;height:50px;color:var(--line);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid}.set-check[aria-pressed=true]{background:var(--reported);border-color:var(--reported);color:var(--reported-ink)}.set-check:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.set-fields{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.set-fields>:only-child{grid-column:1/-1}.stepper{background:var(--well);border:1.5px solid var(--line);border-radius:16px;align-items:stretch;display:flex;overflow:hidden}.stepper-btn{width:42px;color:var(--accent);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;min-height:52px;padding:0;display:grid}.stepper-btn:active{background:var(--accent-soft)}.stepper-btn:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.stepper-field{flex-direction:column;flex:1;justify-content:center;align-items:center;min-width:0;padding:.3rem 0 .2rem;display:flex}.stepper-field input{text-align:center;width:100%;color:var(--ink);font-family:var(--font-display);letter-spacing:-.02em;background:0 0;border:0;min-height:28px;padding:0;font-size:1.5rem;font-weight:750}.stepper-field input::placeholder{color:var(--ink-soft);opacity:.55;font-size:1.05rem;font-weight:600}.stepper-field input:focus-visible{outline:none}.stepper:focus-within{border-color:var(--accent)}.stepper-unit{color:var(--ink-soft);font-size:.75rem;font-weight:650;line-height:1}.effort-dots{flex-direction:column;gap:.35rem;display:flex}.effort-row{justify-content:space-between;gap:.4rem;display:flex}.effort-dot{flex:1;place-items:center;min-height:40px;display:grid;position:relative}.effort-dot input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.effort-dot span{width:calc(24px + var(--level) * 3px);height:calc(24px + var(--level) * 3px);border:2px solid var(--line);background:var(--well);border-radius:50%}.effort-dot:has(~.effort-dot input:checked) span{background:var(--accent-soft);border-color:var(--accent-soft)}.effort-dot input:checked+span{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.effort-dot input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}.effort-caption{text-align:center;color:var(--ink-soft);font-size:.85rem}.effort-caption b{color:var(--ink)}.add-set{align-self:flex-start}.pain-box{background:var(--surface);border:1.5px solid var(--line);border-radius:22px;flex-direction:column;gap:.7rem;padding:.9rem;display:flex}.pain-box legend{float:left;width:100%;font-family:var(--font-display);margin-bottom:.1rem;padding:0;font-size:1.1rem;font-weight:700}.pain-pills{clear:both;grid-template-columns:repeat(4,1fr);gap:.4rem;display:grid}.pain-pill{display:block;position:relative}.pain-pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pain-pill span{border:1.5px solid var(--line);background-color:var(--well);border-radius:14px;place-items:center;min-height:48px;font-size:.9rem;font-weight:650;display:grid}.pain-pill input:checked+span{background-color:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pain-pill input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.pain-advice{background:var(--accent-soft);border-radius:12px;max-width:none;padding:.6rem .8rem;font-size:.93rem}.logger-dock{background:linear-gradient(to bottom, transparent, var(--bg) 18px);flex-direction:column;gap:.6rem;margin-top:auto;padding-top:1rem;display:flex;position:sticky;bottom:0}.logger-actions{padding:0 0 calc(env(safe-area-inset-bottom) + 1rem);background:0 0;position:static}.rest{background:var(--surface);border:1.5px solid var(--line);border-radius:22px;align-items:center;gap:.8rem;padding:.6rem .8rem;display:flex;box-shadow:0 8px 24px #0000001f}.rest-ring{flex:none;width:56px;height:56px;transform:rotate(-90deg)}.rest-track{fill:none;stroke:var(--line);stroke-width:6px}.rest-progress{fill:none;stroke:var(--accent);stroke-width:6px;stroke-linecap:round}.rest-text{flex-direction:column;flex:1;line-height:1.2;display:flex}.rest-text b{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.35rem}.rest-text span{color:var(--ink-soft);font-size:.85rem}.rest-btn{border:1.5px solid var(--line);background:var(--well);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;padding:0 .9rem;font-weight:650}.rest-done{border-color:var(--reported)}.logged{z-index:50;background:var(--accent);color:var(--accent-ink);padding:2rem 1.25rem calc(env(safe-area-inset-bottom) + 1.5rem);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.logged .ob-finale-wave{width:min(70vw,300px)}.logged-title{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(2.4rem,11vw,3.6rem);font-weight:800;line-height:1}.logged-sub{opacity:.85;font-size:1.05rem}.logged-stats{justify-content:center;gap:.6rem;width:100%;max-width:420px;margin:.6rem 0;display:flex}.logged-stats>div{background:#ffffff24;border-radius:20px;flex:1;padding:.9rem .4rem}.logged-stats dt{opacity:.85;font-size:.85rem}.logged-stats dd{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:.1rem 0 0;font-size:2.1rem;font-weight:800}.logged-stats small{font-family:var(--font-body);font-size:.9rem;font-weight:600}.logged-pain{opacity:.95;max-width:34ch}.logged .ob-next{flex:none;width:100%;max-width:420px;margin-top:.5rem}@media (prefers-reduced-motion:no-preference){.rhythm-card{animation:.5s cubic-bezier(.2,.8,.2,1) .35s backwards ob-in-up}.weekly-bar{transform-origin:bottom;animation:.7s cubic-bezier(.2,.8,.2,1) backwards grow-up;animation-delay:calc(.5s + var(--i) * 70ms)}.recent li{animation:.4s .7s backwards ob-in-up}.logger-body{animation:.45s cubic-bezier(.2,.8,.2,1) ob-in-right}.logger-head .logger-target,.logger-head .lasttime,.logger-head .logger-note{animation:.5s .25s backwards fade-in}.set{animation:.45s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.2s + var(--i) * 80ms);transition:border-color .25s}.set-check{transition:background-color .2s,border-color .2s,color .2s,transform .15s}.set-check[aria-pressed=true]{animation:.45s cubic-bezier(.3,1.6,.5,1) pop}.set-check:active{transform:scale(.92)}.effort-dot span{transition:background-color .2s,border-color .2s,box-shadow .25s,transform .2s cubic-bezier(.3,1.6,.5,1)}.effort-dot input:checked+span{transform:scale(1.12)}.pain-pill span{transition:background-color .2s,border-color .2s,color .2s}.pain-advice{animation:.35s ob-in-up}.rest{animation:.4s cubic-bezier(.2,.9,.25,1.1) rise-in}.rest-progress{transition:stroke-dashoffset 1s linear}.rest-done .rest-ring{animation:.5s cubic-bezier(.3,1.6,.5,1) pop}.logged{animation:.6s cubic-bezier(.65,0,.35,1) backwards flood}.logged .ob-finale-wave path{stroke-dasharray:1;animation:1.1s cubic-bezier(.65,0,.35,1) .35s backwards week-draw}.logged-title .w{animation:.6s cubic-bezier(.2,.9,.25,1.1) backwards word-up;animation-delay:calc(.55s + var(--i) * 90ms);display:inline-block}.logged-sub{animation:.5s .9s backwards fade-in}.logged-stats>div{animation:.55s cubic-bezier(.3,1.6,.5,1) backwards pop-in;animation-delay:calc(.9s + var(--i) * .12s)}.logged-pain,.logged .ob-next{animation:.5s 1.5s backwards ob-in-up}}@keyframes grow-up{0%{transform:scaleY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)scale(.97)}}.cycle-ring{flex-direction:column;align-items:center;gap:.9rem;margin:0;display:flex}.cycle-ring-art{aspect-ratio:1;width:min(100%,300px);position:relative}.cycle-ring-art svg{width:100%;height:100%;display:block;overflow:visible}.ring-base{fill:none;stroke:var(--line);stroke-width:1.5px}.ring-arc{fill:none;stroke:var(--estimate);stroke-linecap:round;stroke-dasharray:9 7}.ring-arc-period{stroke-width:15px}.ring-arc-between{stroke-width:7px;opacity:.75}.ring-arc-before_period{stroke-width:11px;opacity:.9}.ring-legend line.ring-arc{stroke-dasharray:5 4}.ring-legend .ring-arc-period{stroke-width:6px}.ring-legend .ring-arc-between{stroke-width:3px}.ring-legend .ring-arc-before_period{stroke-width:5px}.ring-marker{fill:var(--estimate-soft);stroke:var(--estimate);stroke-width:3px;stroke-dasharray:4 3}.ring-sweep{transform-box:view-box;transform-origin:130px 130px;transform:rotate(var(--angle))}.ring-dot{fill:var(--reported)}.ring-dot-pain{stroke:var(--ink);stroke-width:2px}.cycle-ring-centre{flex-direction:column;justify-content:center;align-items:center;gap:.1rem;display:flex;position:absolute;inset:0}.cycle-day-label{color:var(--ink-soft);font-size:.95rem;font-weight:650}.cycle-ring-centre b{font-family:var(--font-display);letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:4.2rem;font-weight:800;line-height:.95}.cycle-day-of{color:var(--ink-soft);margin-bottom:.35rem;font-size:.95rem}.ring-legend{color:var(--ink-soft);flex-direction:column;gap:.35rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.ring-legend li{align-items:center;gap:.6rem;display:flex}.ring-legend-now{color:var(--ink);font-weight:650}.ring-legend svg{flex:none;overflow:visible}.cycle-card{gap:.6rem}.cycle-estimate{border:1.5px dashed var(--estimate)}.cycle-line{font-size:1.1rem;font-weight:600}.cycle-card .lede{margin-top:0;font-size:.95rem}.period-form{flex-direction:column;align-items:flex-start;gap:.7rem;display:flex}.period-form h2{font-size:1.1rem}.other-date{width:100%}.other-date summary{cursor:pointer;color:var(--accent);align-items:center;min-height:40px;font-weight:650;display:flex}.other-date[open]{flex-direction:column;gap:.7rem;display:flex}.other-date .field{margin-top:.4rem}.cycle-empty{align-items:flex-start;gap:.8rem;padding:1.25rem}.ghost-ring{width:96px;height:96px}.ghost-ring circle{fill:none;stroke:var(--line);stroke-width:6px;stroke-dasharray:10 8;stroke-linecap:round}.cycle-empty h2{font-size:1.4rem}@media (prefers-reduced-motion:no-preference){.ring-arc{animation:.8s backwards fade-in;animation-delay:calc(.1s + var(--i,0) * .15s)}.ring-sweep{animation:1.5s cubic-bezier(.4,0,.2,1) .3s backwards ring-sweep}.ring-dot{transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.3,1.6,.5,1) backwards pop-in;animation-delay:calc(.9s + var(--i,0) * 70ms)}.ring-marker{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out 1.8s infinite marker-breathe}.cycle-ring-centre{animation:.8s .3s backwards fade-in}.ring-legend{animation:.6s .8s backwards fade-in}.cycle-card,.cycle-empty{animation:.5s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.5s + var(--i,0) * .1s)}}@keyframes ring-sweep{0%{transform:rotate(0)}}@keyframes marker-breathe{50%{transform:scale(1.12)}}:root{--danger:#b42318;--danger-ink:#fff;--danger-soft:#fbe9e7}:root[data-theme=dark]{--danger:#ff8f80;--danger-ink:#3a0a05;--danger-soft:#3a1714}.your-data{flex-direction:column;gap:.7rem;display:flex}.your-data>.lede{margin-top:-.3rem}.data-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);grid-template-columns:40px 1fr auto;align-items:center;gap:.8rem;padding:.9rem 1rem;display:grid}.data-icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:13px;place-items:center;display:grid}.data-card-danger .data-icon{background:var(--danger-soft);color:var(--danger)}.data-text h3{font-family:var(--font-display);margin:0;font-size:1.05rem;font-weight:700}.data-text p{color:var(--ink-soft);font-size:.88rem}.data-card .button{min-height:44px;padding:0 1rem}.button-danger{background:var(--danger);color:var(--danger-ink)}.button-danger:disabled{opacity:.35;cursor:not-allowed}.button-danger-quiet{color:var(--danger);border:1.5px solid var(--danger);background:0 0}.sheet-backdrop{z-index:40;background:#140c1c8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:92dvh;color:var(--ink);padding:.6rem 1.25rem calc(env(safe-area-inset-bottom) + 1.25rem);border-radius:28px 28px 0 0;flex-direction:column;gap:.8rem;display:flex;overflow-y:auto}.sheet-handle{background:var(--line);border-radius:99px;align-self:center;width:44px;height:5px;margin-bottom:.4rem}.sheet h2{letter-spacing:-.03em;font-size:clamp(1.8rem,8vw,2.2rem);font-weight:780}.sheet h2:focus{outline:none}.sheet .lede{margin:0}.erase-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.erase-list li{align-items:center;gap:.6rem;font-weight:600;display:flex}.erase-list li:before{content:"";background:var(--danger);border-radius:50%;flex:none;width:8px;height:8px}.confirm-field input{font-family:var(--font-display);letter-spacing:.08em;font-size:1.1rem;font-weight:700}.confirm-field b{color:var(--danger);letter-spacing:.06em}.sheet-actions{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.3rem;display:grid}.farewell{z-index:60;text-align:center;background:var(--ink);color:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:1.1rem;padding:2rem 1.5rem;display:flex;position:fixed;inset:0}.farewell h2{letter-spacing:-.035em;max-width:14ch;font-size:clamp(2.2rem,10vw,3.2rem);font-weight:800;line-height:1.04}.farewell h2:focus{outline:none}.farewell p{opacity:.85;max-width:32ch}.farewell .button-light{background:var(--bg);color:var(--ink);min-width:10rem}.farewell-wave{width:min(70vw,280px);overflow:visible}.farewell-wave path{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round}.farewell-wave-shape{opacity:0}@media (prefers-reduced-motion:no-preference){.your-data{animation:.5s cubic-bezier(.2,.8,.2,1) .35s backwards ob-in-up}.sheet-backdrop{animation:.25s fade-in}.sheet{animation:.4s cubic-bezier(.2,.9,.25,1) sheet-up}.button-danger:not(:disabled){animation:.35s cubic-bezier(.3,1.6,.5,1) pop}.farewell{animation:.6s fade-in}.farewell-wave-shape{animation:1.6s .2s backwards wave-out}.farewell-wave-flat{stroke-dasharray:1;stroke-dashoffset:0;animation:.8s 1.4s backwards fade-in}.farewell h2 .w{animation:.6s cubic-bezier(.2,.9,.25,1.1) backwards word-up;animation-delay:calc(1.2s + var(--i) * 80ms);display:inline-block}.farewell p,.farewell .button{animation:.6s 1.8s backwards fade-in}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes wave-out{0%{opacity:1}60%{opacity:1;transform:scaleY(.15)}to{opacity:0;transform:scaleY(0)}}.farewell-wave-shape{transform-box:fill-box;transform-origin:50%}.ob-chips{flex-wrap:wrap;gap:.5rem;display:flex}.ob-chips legend{width:100%;margin-bottom:.6rem;font-weight:600}.ob-chips legend small{color:var(--ink-soft);margin-left:.4rem;font-weight:400}.ob-chips .chip>span{min-height:46px;padding:0 1.1rem;font-size:1rem}.ob-about{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.ob-about .field:first-child{grid-column:1/-1}.ob-wearables{color:var(--ink-soft);border:1px dashed var(--line);border-radius:16px;padding:.8rem 1rem;font-size:.9rem}.ob-wearables b{color:var(--ink)}@media (prefers-reduced-motion:no-preference){.ob-chips>.chip{animation:.4s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.2s + var(--i) * 40ms)}}.today-block{flex-direction:column;display:flex}.score-hero{background:var(--accent);color:var(--accent-ink);border-radius:28px;flex-direction:column;gap:.7rem;padding:1.2rem 1.25rem .6rem;display:flex;position:relative;overflow:hidden}.score-hero-empty{padding-bottom:1.25rem}.score-hero-empty h2{letter-spacing:-.025em;font-size:1.7rem;line-height:1.08}.score-empty-text{opacity:.88}.score-pulse{height:54px;margin:0 -1.25rem;position:relative;overflow:hidden}.amp-wave-inline{opacity:.55;width:200%;height:100%;position:absolute;top:0;left:0}.score-hero-empty .amp-wave-inline{opacity:.35}.score-hero>:not(.amp-wave){position:relative}.score-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.score-kicker{opacity:.85;font-size:.92rem;font-weight:650}.score-vs{background:#ffffff29;border-radius:99px;padding:.15rem .6rem;font-size:.82rem;font-weight:700}.score-main{align-items:center;gap:1rem;display:flex}.score-number{font-family:var(--font-display);letter-spacing:-.06em;font-variant-numeric:tabular-nums;font-size:clamp(4.2rem,22vw,5.6rem);font-weight:800;line-height:.9}.score-main h2{letter-spacing:-.02em;font-size:1.5rem}.score-main p{opacity:.88;font-size:.95rem}.score-hero .button-light{align-self:flex-start}.score-parts{background:var(--surface);color:var(--ink);border-radius:18px;flex-direction:column;gap:.6rem;margin:.2rem -.5rem .8rem;padding:.9rem;display:flex}.score-parts-head{justify-content:space-between;align-items:center;display:flex}.score-parts ul{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.score-parts li{grid-template-columns:7.5rem 1fr 2.5rem;align-items:center;gap:.6rem;font-size:.92rem;display:grid}.score-parts li b{text-align:right;font-variant-numeric:tabular-nums}.score-bar{background:var(--line);border-radius:99px;height:8px;overflow:hidden}.score-bar-fill{background:var(--reported);border-radius:99px;height:100%;display:block}.score-bar-minus{background:var(--ink-soft)}.score-note{color:var(--ink-soft);font-size:.82rem}.suggestion-plain{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.suggestion-plain .suggestion-body .tag{background:var(--accent-soft);color:var(--accent)}.suggestion-plain h2{font-size:1.6rem}.training-peek{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);color:var(--ink);justify-content:space-between;align-self:stretch;align-items:center;padding:1rem 1.1rem;text-decoration:none;display:flex}.training-peek small{color:var(--ink-soft);font-size:.85rem;display:block}.training-peek b{font-family:var(--font-display);font-size:1.2rem}.training-peek-min{color:var(--ink-soft);font-weight:600}.ask-button{border:1.5px solid var(--line);background:var(--surface);min-height:50px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;justify-content:center;align-items:center;gap:.5rem;font-weight:700;display:inline-flex}.ask-questions{flex-wrap:wrap;gap:.45rem;display:flex}.ask-q{border:1.5px solid var(--line);background:var(--well);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;padding:0 .9rem;font-size:.9rem;font-weight:600}.ask-q-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.ask-answer{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ask-answer .reason{border:1px solid var(--line);margin-left:0;margin-right:0}.ask-foot{color:var(--ink-soft);font-size:.82rem}.pattern-chip{border:1.5px solid var(--reported);min-height:28px;color:var(--reported);white-space:nowrap;border-radius:99px;align-items:center;padding:0 .7rem;font-size:.85rem;font-weight:600;display:inline-flex}.cycle-strip{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);color:var(--ink);align-items:center;gap:.8rem;padding:.7rem 1rem;text-decoration:none;display:flex}.mini-ring{flex:none;width:44px;height:44px;overflow:visible}.mini-ring>circle{fill:none;stroke:var(--estimate);stroke-width:4px;stroke-dasharray:5 4}.mini-ring-dot{fill:var(--estimate-soft);stroke:var(--estimate);stroke-width:2px}.cycle-strip-text{flex-direction:column;flex:1;line-height:1.25;display:flex}.cycle-strip-text span{color:var(--ink-soft);font-size:.88rem}.cycle-strip-chevron{color:var(--ink-soft)}.insight{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.45rem;padding:1.1rem;display:flex}.insight-kicker{color:var(--reported);font-size:.88rem;font-weight:700}.insight h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.3rem;line-height:1.15}.insight>p:not(.insight-kicker){color:var(--ink-soft)}.insight footer{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin-top:.2rem;font-size:.82rem;display:flex}.confidence{color:var(--ink);align-items:center;gap:.4rem;font-weight:700;display:inline-flex}.confidence-bars{align-items:flex-end;gap:2px;display:inline-flex}.confidence-bars span{background:var(--line);border-radius:2px;width:4px}.confidence-bars span:first-child{height:6px}.confidence-bars span:nth-child(2){height:9px}.confidence-bars span:nth-child(3){height:12px}.confidence-bars span.on{background:var(--reported)}.learning-steps{gap:.4rem;display:flex}.learning-steps span{background:var(--line);border-radius:99px;flex:1;height:8px}.learning-steps span.on{background:var(--reported)}@media (prefers-reduced-motion:no-preference){.today-block,.cycle-strip,.score-bar-fill{transform-origin:0;animation:.6s cubic-bezier(.2,.8,.2,1) backwards grow}.ask-answer .reason{animation:.4s backwards ob-in-up;animation-delay:calc(var(--i) * 80ms)}}.rhythm-curve{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.8rem;padding:1.1rem 1rem 1rem;display:flex}.segmented{background:var(--well);border-radius:14px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.seg{min-height:38px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:.92rem;font-weight:650}.seg-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.seg:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.curve-art{position:relative}.curve-svg{touch-action:pan-y;cursor:ew-resize;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.curve-area{fill:url(#curve-fill)}.curve-line{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.curve-usual line{stroke:var(--ink-soft);stroke-width:1.2px;stroke-dasharray:3 4;opacity:.7}.curve-usual text,.curve-tick{font-family:var(--font-body);fill:var(--ink-soft);font-size:10px;font-weight:600}.curve-est{stroke:var(--estimate);stroke-dasharray:5 4;stroke-linecap:round}.curve-est-period{stroke-width:7px}.curve-est-between{stroke-width:3px;opacity:.7}.curve-est-before_period{stroke-width:5px}.curve-today line{stroke:var(--estimate);stroke-width:1.5px;stroke-dasharray:2 3}.curve-sel line{stroke:var(--ink);stroke-width:1.5px}.curve-sel circle{fill:var(--surface);stroke:var(--accent);stroke-width:3px}.pp line{stroke:var(--reported);stroke-width:4px;stroke-linecap:round;opacity:.5}.pp-peak line{opacity:1}.pp-recovery line{opacity:.25}.pp text{font-family:var(--font-body);fill:var(--reported);font-size:10px;font-weight:700}.curve-learning{text-align:center;color:var(--ink-soft);background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:12px;padding:.6rem;font-size:.9rem;position:absolute;inset:30px 10px auto}.curve-slider input{width:100%;accent-color:var(--accent);min-height:28px}.curve-readout{background:var(--well);border-radius:16px;flex-direction:column;gap:.45rem;padding:.8rem .9rem;display:flex}.curve-readout-head{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.curve-readout-head>div{flex-direction:column;display:flex}.curve-readout-head b{font-family:var(--font-display);font-size:1.15rem}.curve-readout-head>div>span{color:var(--ink-soft);font-size:.88rem}.curve-readout dl{grid-template-columns:repeat(3,1fr);gap:.4rem;margin:0;display:grid}.curve-readout dl div{background:var(--surface);border-radius:12px;padding:.45rem .6rem}.curve-readout dt{color:var(--ink-soft);font-size:.78rem;font-weight:600}.curve-readout dd{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:0;font-size:1.25rem;font-weight:750}.curve-phase,.curve-symptoms,.curve-basis{color:var(--ink-soft);font-size:.88rem}.curve-phase b{color:var(--reported)}.twin-lines{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.twin-lines li{grid-template-columns:4rem 1fr 6.5rem;align-items:center;gap:.7rem;display:grid}.twin-name{font-weight:650}.twin-bar{background:var(--line);border-radius:99px;height:10px;position:relative}.twin-usual,.twin-today{border-radius:50%;width:14px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%)}.twin-usual{border:2.5px solid var(--reported);background:var(--surface)}.twin-today{background:var(--reported);width:12px;height:12px}.twin-verdict{text-align:right;font-size:.82rem;font-weight:700}.twin-above{color:var(--reported)}.twin-below{color:var(--ink)}.twin-as-usual{color:var(--ink-soft)}.twin-key{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.8rem;display:flex}.twin-key-today,.twin-key-usual{border-radius:50%;width:10px;height:10px;display:inline-block}.twin-key-today{background:var(--reported)}.twin-key-usual{border:2px solid var(--reported);margin-left:.6rem}.fp-stage{margin:0}.fp-list{grid-template-columns:1fr 1fr;gap:.5rem;margin:0;display:grid}.fp-list div{background:var(--well);border-radius:14px;padding:.6rem .75rem}.fp-list dt{color:var(--ink-soft);font-size:.78rem;font-weight:600}.fp-list dd{font-family:var(--font-display);flex-direction:column;margin:.1rem 0 0;font-size:1.05rem;font-weight:750;display:flex}.fp-list small{font-family:var(--font-body);color:var(--ink-soft);font-size:.78rem;font-weight:500}.history-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-list li{border-top:1px solid var(--line);grid-template-columns:6.6rem 1fr 4.4rem 36px;align-items:center;gap:.6rem;padding:.45rem 0;display:grid}.history-list li:first-child{border-top:0}.history-date{font-size:.92rem;font-weight:600}.history-bar{background:var(--well);border-radius:99px;height:8px;overflow:hidden}.history-bar span{background:var(--reported);border-radius:99px;height:100%;display:block}.history-bar .history-now{background:var(--line);width:12%!important}.history-len{color:var(--ink-soft);text-align:right;font-variant-numeric:tabular-nums;font-size:.88rem}.icon-button{width:36px;height:36px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid}@media (hover:hover){.icon-button:hover{background:var(--well);color:var(--ink)}}.icon-button:focus-visible{outline:3px solid var(--accent)}.planner .card-head .link{align-items:center;gap:.35rem;min-height:36px;display:inline-flex}.event{border-top:1px solid var(--line);flex-direction:column;gap:.55rem;padding-top:.8rem;display:flex}.event header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.event h3{font-family:var(--font-display);margin:0;font-size:1.2rem}.event header p{color:var(--ink-soft);font-size:.9rem}.event-cycle,.event-note{flex-wrap:wrap;align-items:center;gap:.4rem;max-width:none;font-size:.92rem;display:flex}.leadup{border-left:2px solid var(--line);flex-direction:column;gap:.55rem;margin:.2rem 0 0;padding:0 0 0 .9rem;list-style:none;display:flex}.leadup li{flex-direction:column;display:flex;position:relative}.leadup li:before{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:calc(-.9rem - 6px)}.leadup li:last-child:before{background:var(--accent)}.leadup span{color:var(--accent);font-size:.8rem;font-weight:700}.leadup p{font-size:.92rem}.event-form{flex-direction:column;gap:.8rem;display:flex}.period-form h3{font-family:var(--font-display);margin:0;font-size:1.15rem}.discoveries,.changes{flex-direction:column;gap:.75rem;display:flex}.change{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ink-soft);border-radius:16px;flex-direction:column;gap:.35rem;padding:.9rem 1rem;display:flex}.change h3{font-family:var(--font-display);margin:0;font-size:1.1rem}.change p{color:var(--ink-soft);font-size:.92rem}.toaster{left:0;right:0;bottom:calc(var(--tab-height) + env(safe-area-inset-bottom) + 12px);z-index:70;pointer-events:none;justify-content:center;padding:0 1rem;display:flex;position:fixed}.toast{pointer-events:auto;background:var(--ink);width:100%;max-width:520px;min-height:52px;color:var(--bg);border-radius:16px;align-items:center;gap:1rem;padding:.4rem .5rem .4rem 1.1rem;font-weight:600;display:flex;box-shadow:0 10px 30px #00000040}.toast span{flex:1}.toast-undo{min-height:40px;color:var(--accent-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:0 1rem;font-weight:800}.toast-undo:focus-visible{outline:3px solid var(--accent-soft)}@media (prefers-reduced-motion:no-preference){.rhythm-curve,.twin,.fingerprint,.history,.planner,.cycle-card{animation:.5s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.2s + var(--i,0) * 90ms)}.curve-shape .curve-line{stroke-dasharray:1;animation:1.2s cubic-bezier(.65,0,.35,1) backwards week-draw}.curve-shape .curve-area{animation:.9s .3s backwards fade-in}.curve-sel line,.curve-sel circle{transition:x1 .12s,x2 .12s,cx .12s,cy .12s}.pp line{animation:.6s .6s backwards fade-in}.seg{transition:background-color .2s,color .2s}.twin-today{animation:.5s cubic-bezier(.3,1.6,.5,1) .4s backwards pop-in}.history-list li,.leadup li{animation:.4s backwards ob-in-up;animation-delay:calc(.3s + var(--i,0) * 50ms)}.history-bar span{transform-origin:0;animation:.6s cubic-bezier(.2,.8,.2,1) .4s backwards grow}.toast{animation:.3s cubic-bezier(.2,.9,.25,1.1) rise-in}.change{animation:.5s backwards ob-in-up}}.model-hero{background:var(--ink);color:var(--bg);border-radius:28px;flex-direction:column;gap:.8rem;padding:1.25rem;display:flex}.model-kicker{opacity:.75;font-size:.92rem;font-weight:650}.model-hero h2{letter-spacing:-.03em;font-size:clamp(1.8rem,8vw,2.3rem);font-weight:780;line-height:1.04}.model-crests{width:100%;height:auto;overflow:visible}.crest{fill:none;stroke-width:3.5px;stroke-linecap:round}.crest-done{stroke:var(--accent-soft)}.crest-now{stroke:var(--accent-soft);stroke-dasharray:3 5;opacity:.8}.crest-todo{stroke:currentColor;opacity:.18}.model-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0;display:grid}.model-stats div{background:#ffffff12;border-radius:14px;padding:.6rem .7rem}.model-stats dt{opacity:.7;font-size:.78rem}.model-stats dd{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-size:1.6rem;font-weight:800}.model-note{opacity:.7;font-size:.85rem}:root[data-theme=dark] .model-hero{background:var(--surface);color:var(--ink);border:1px solid var(--line)}:root[data-theme=dark] .model-stats div{background:var(--well)}.section-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.disc-group{flex-direction:column;gap:.5rem;display:flex}.disc-group h3{font-family:var(--font-display);color:var(--ink-soft);align-items:center;gap:.45rem;margin:.3rem 0 0;font-size:1.05rem;display:flex}.disc-group ul{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.discovery{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.35rem;padding:1rem 1.05rem .6rem;display:flex}.discovery h4{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.2rem;line-height:1.15}.discovery>p{color:var(--ink-soft)}.discovery-foot{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.3rem 1rem;margin-top:.15rem;font-size:.82rem;display:flex}.discovery-how{min-height:40px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.88rem;font-weight:650}.discovery-method{color:var(--ink-soft);background:var(--well);border-radius:12px;max-width:none;margin-bottom:.4rem;padding:.6rem .75rem;font-size:.88rem}.replay-card{text-align:left;border-radius:var(--radius-card);background:var(--accent);width:100%;color:var(--accent-ink);font:inherit;cursor:pointer;border:0;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem;display:flex;position:relative;overflow:hidden}.replay-card-text{flex-direction:column;gap:.15rem;display:flex}.replay-card small{opacity:.8;font-weight:650}.replay-card b{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.45rem}.replay-card span span,.replay-card-text>span{opacity:.85;font-size:.92rem}.exmap-table{border-collapse:separate;border-spacing:4px;font-variant-numeric:tabular-nums;width:100%}.exmap-table th{color:var(--ink-soft);text-align:center;font-size:.78rem;font-weight:650}.exmap-table th[scope=row]{text-align:left;color:var(--ink);padding-right:.3rem;font-size:.92rem;font-weight:650}.exmap-table th[scope=row] small{color:var(--ink-soft);font-size:.75rem;font-weight:500;display:block}.exmap-table td{text-align:center;border-radius:10px;padding:.55rem .2rem;font-size:.9rem;font-weight:700}.exmap-up{background:color-mix(in srgb, var(--reported) calc(var(--s) * 55% + 8%), transparent)}.exmap-down{background:color-mix(in srgb, var(--ink-soft) calc(var(--s) * 35% + 6%), transparent)}.exmap-none{color:var(--ink-soft)}.exmap-best{outline:2.5px solid var(--reported);outline-offset:-2.5px}.exmap-key{color:var(--ink-soft);font-size:.8rem}.memory-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.memory-list li{background:var(--well);border-radius:16px;flex-direction:column;gap:.3rem;padding:.75rem .85rem;display:flex}.memory-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.memory-head b{font-family:var(--font-display)}.memory-head span:not(.tag){color:var(--ink-soft);white-space:nowrap;flex:1;font-size:.88rem}.memory-list p{font-size:.92rem}.memory-after{color:var(--ink-soft)}.respond-cols{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.respond-cols div{background:var(--well);border-radius:16px;flex-direction:column;gap:.15rem;padding:.8rem;display:flex}.respond-cols span{color:var(--ink-soft);font-size:.85rem;font-weight:600}.respond-cols b{font-family:var(--font-display);letter-spacing:-.03em;font-size:2rem;font-weight:800}.respond-cols small{color:var(--ink-soft);font-size:.8rem}.respond-cols em{color:var(--ink-soft);font-size:.75rem;font-style:normal}.respond-heavy{color:var(--ink-soft);font-size:.9rem}.experiment{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;padding-top:.8rem;display:flex}.experiment h3{font-family:var(--font-display);margin:0;font-size:1.1rem;line-height:1.2}.exp-bars{flex-direction:column;gap:.4rem;display:flex}.exp-bars>div{grid-template-columns:8.5rem 1fr 2rem;align-items:center;gap:.5rem;font-size:.88rem;display:grid}.exp-bars small{color:var(--ink-soft)}.exp-bar{background:var(--well);border-radius:99px;height:10px;overflow:hidden}.exp-bar span{background:var(--reported);border-radius:99px;height:100%;display:block}.exp-finding{max-width:none;font-size:.92rem}.exp-not-enough-data{color:var(--ink-soft)}.exp-try{color:var(--ink-soft);background:var(--well);border-radius:12px;max-width:none;padding:.55rem .75rem;font-size:.88rem}.exp-try b{color:var(--ink)}.replay{z-index:80;background:var(--accent);color:var(--accent-ink);padding:calc(env(safe-area-inset-top) + .8rem) 1.25rem calc(env(safe-area-inset-bottom) + 1rem);flex-direction:column;display:flex;position:fixed;inset:0}.replay-progress{gap:4px;display:flex}.replay-progress span{background:#ffffff40;border-radius:99px;flex:1;height:3px;position:relative;overflow:hidden}.replay-progress span.done{background:currentColor}.replay-progress span.now:after{content:"";background:currentColor;position:absolute;inset:0}.replay-close{top:calc(env(safe-area-inset-top) + 1.4rem);width:44px;height:44px;color:inherit;cursor:pointer;background:#ffffff1f;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;right:.9rem}.replay-stage{cursor:pointer;flex:1;align-items:center;display:flex}.replay-slide{flex-direction:column;gap:1rem;width:100%;display:flex}.replay-kicker{opacity:.8;font-weight:700}.replay-title{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(2.6rem,13vw,3.8rem);font-weight:800;line-height:1}.replay-wave{width:100%;max-width:360px;overflow:visible}.replay-wave path{fill:none;stroke:currentColor;stroke-width:5px;stroke-linecap:round}.replay-big{font-family:var(--font-display);letter-spacing:-.06em;font-variant-numeric:tabular-nums;align-items:baseline;gap:.6rem;font-size:clamp(5rem,28vw,7.5rem);font-weight:800;line-height:.9;display:flex}.replay-big .replay-unit{font-family:var(--font-body);letter-spacing:0;opacity:.85;font-size:1.2rem;font-weight:650}.replay-row{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.replay-row div{background:#ffffff1f;border-radius:18px;flex-direction:column;padding:.9rem;display:flex}.replay-row b{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:800}.replay-row .replay-label{opacity:.85;font-size:.9rem}.replay-line{max-width:26ch;font-size:1.25rem;font-weight:600;line-height:1.35}.replay-sub{opacity:.85}.replay-learned{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.replay-learned li{font-family:var(--font-display);letter-spacing:-.015em;border-left:3px solid;padding-left:1rem;font-size:1.35rem;font-weight:700;line-height:1.2}.replay-share{align-self:flex-start;margin-top:.5rem}.replay-nav{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.replay-nav .link{color:inherit}.replay-nav .link:disabled{opacity:.4}@media (prefers-reduced-motion:no-preference){.crest{stroke-dasharray:60;animation:.7s cubic-bezier(.65,0,.35,1) backwards crest-draw;animation-delay:calc(.2s + var(--i) * 90ms)}.crest-now{animation:none}.disc-group,.exmap,.memory,.respond,.experiments{animation:.5s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.2s + var(--i,0) * 80ms)}.exmap-table tbody tr{animation:.4s backwards ob-in-up;animation-delay:calc(.3s + var(--i) * 60ms)}.memory-list li{animation:.35s backwards ob-in-up;animation-delay:calc(var(--i) * 70ms)}.exp-bar span{transform-origin:0;animation:.7s cubic-bezier(.2,.8,.2,1) .3s backwards grow}.replay{animation:.6s cubic-bezier(.65,0,.35,1) backwards flood}.replay-slide{animation:.45s cubic-bezier(.2,.8,.2,1) ob-in-right}.replay-title .w{animation:.6s cubic-bezier(.2,.9,.25,1.1) backwards word-up;animation-delay:calc(.3s + var(--i) * 80ms);display:inline-block}.replay-wave path{stroke-dasharray:1;animation:1.2s cubic-bezier(.65,0,.35,1) .5s backwards week-draw}.replay-progress span.now:after{transform-origin:0;animation:6s linear grow}.replay-row div{animation:.5s cubic-bezier(.3,1.6,.5,1) .3s backwards pop-in}.replay-learned li{animation:.5s backwards ob-in-up}.replay-learned li:nth-child(2){animation-delay:.25s}.replay-learned li:nth-child(3){animation-delay:.5s}}@keyframes crest-draw{0%{stroke-dashoffset:60px}}.today-actions{grid-template-columns:1.45fr 1fr;gap:.5rem;display:grid}.today-actions .ask-button{white-space:nowrap;padding:0 .6rem;font-size:.9rem}.changed-banner{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;align-items:center;gap:.6rem;max-width:none;padding:.6rem .85rem;font-size:.92rem;display:flex}.changed-banner span:not(.tag){flex:1;min-width:10rem}.weather{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.8rem;padding:1.1rem .9rem .9rem 1rem;display:flex}.weather-grid{flex-direction:column;gap:.15rem;display:flex}.weather-row{grid-template-columns:4.6rem repeat(7,1fr);align-items:center;gap:2px;display:grid}.weather-head span{color:var(--ink-soft);flex-direction:column;align-items:center;padding-bottom:.25rem;font-size:.7rem;font-weight:700;line-height:1.15;display:flex}.weather-head small{font-variant-numeric:tabular-nums;font-size:.65rem;font-weight:500}.weather-label{font-size:.85rem;font-weight:650}.sky{height:36px;color:var(--ink-soft);border-radius:10px;place-items:center;display:grid}.sky-better{color:var(--estimate);background:var(--estimate-soft)}.sky-lower{color:var(--ink-soft)}.sky-usual{color:color-mix(in srgb, var(--estimate) 70%, var(--ink-soft))}.weather-today{background-color:color-mix(in srgb, var(--accent-soft) 60%, transparent);border-radius:10px}.weather-head .weather-today{color:var(--accent)}.sky-dot{background:var(--line);border-radius:50%;width:4px;height:4px}.weather-key{color:var(--ink-soft);font-size:.78rem;line-height:1.5}.weather-key svg{vertical-align:-2px}.debt{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.6rem;padding:1rem;display:flex}.debt-top{justify-content:space-between;align-items:center;display:flex}.debt-top h2{font-size:1.15rem}.debt-gauge{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.debt-gauge span{text-align:center;color:var(--ink-soft);background:var(--well);border-radius:10px;padding:.4rem 0;font-size:.78rem;font-weight:650}.debt-gauge span.on{background:var(--reported);color:var(--reported-ink)}.debt p{color:var(--ink-soft);max-width:none;font-size:.92rem}.debt p b{color:var(--ink)}.ahead{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.7rem;padding:1rem;display:flex}.ahead ul{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.ahead li{border-left:3px dashed var(--estimate);flex-direction:column;gap:.25rem;padding:.1rem 0 .1rem .8rem;display:flex}.ahead li div{flex-direction:column;display:flex}.ahead li b{font-family:var(--font-display);font-size:1.05rem}.ahead li span{color:var(--ink-soft);font-size:.85rem}.ahead li p{font-size:.92rem}.edit-today{border:1.5px dashed var(--line);min-height:44px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border-radius:99px;align-self:center;align-items:center;gap:.4rem;padding:0 1rem;font-size:.9rem;font-weight:650;display:inline-flex}.change-options{flex-direction:column;gap:.5rem;display:flex}.change-option{display:block;position:relative}.change-option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.change-option>span{border:1.5px solid var(--line);background:var(--well);border-radius:16px;flex-direction:column;gap:2px;padding:.75rem .95rem;display:flex}.change-option small{color:var(--ink-soft);font-size:.85rem}.change-option input:checked+span{border-color:var(--accent);background:var(--accent-soft)}.change-option input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.toggles{flex-direction:column;display:flex}.toggle{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;min-height:54px;font-weight:600;display:flex}.toggle:last-child{border-bottom:0}.toggle input{appearance:none;background:var(--line);cursor:pointer;border-radius:99px;flex:none;width:50px;height:30px;margin:0;position:relative}.toggle input:after{content:"";background:var(--surface);border-radius:50%;width:24px;height:24px;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle input:checked{background:var(--accent)}.toggle input:checked:after{left:23px}.toggle input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:no-preference){.weather,.debt,.ahead,.today-actions,.changed-banner{animation:.5s cubic-bezier(.2,.8,.2,1) backwards ob-in-up;animation-delay:calc(.25s + var(--i,0) * 80ms)}.weather-row{animation:.5s backwards fade-in;animation-delay:calc(.45s + var(--i) * 70ms)}.debt-gauge span.on{animation:.5s cubic-bezier(.3,1.6,.5,1) .5s backwards pop}.toggle input:after{transition:left .22s cubic-bezier(.3,1.4,.5,1)}.toggle input{transition:background-color .2s}}.showme{flex-direction:column;gap:.6rem;display:flex}.showme-toggle,.showme-chip{border:1.5px solid var(--accent);min-height:40px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:99px;align-self:flex-start;align-items:center;gap:.4rem;padding:0 .9rem;font-size:.9rem;font-weight:700;display:inline-flex}.showme-toggle[aria-expanded=true]{background:var(--accent);color:var(--accent-ink)}.showme-chip{border-width:1px;min-height:32px;padding:0 .7rem;font-size:.82rem}.move-show{grid-column:1/-1;margin-top:.35rem}.ghost{flex-direction:column;gap:.8rem;display:flex}.ghost-lens{grid-template-columns:repeat(4,1fr)}.ghost-lens .seg{font-size:.82rem}.ghost-stage{background:var(--well);border-radius:20px;flex-direction:column;gap:.5rem;padding:.6rem .6rem .8rem;display:flex;position:relative}.ghost-svg{touch-action:pan-y;cursor:ew-resize;-webkit-user-select:none;user-select:none;width:100%;max-height:260px;display:block}.gr-floor{stroke:var(--line);stroke-width:1.4px}.gr-bench{fill:var(--line)}.gr-limb{stroke:var(--ink);stroke-width:4.2px;stroke-linecap:round}.gr-neck{stroke-width:3.4px}.gr-far .gr-limb{opacity:.32}.gr-joint,.gr-head{fill:var(--ink)}.gr-ghost .gr-limb,.gr-ghost .gr-joint,.gr-ghost .gr-head{stroke:var(--ink-soft);fill:var(--ink-soft);opacity:.16}.gr-ghost .gr-limb{stroke-dasharray:2 3;stroke-width:2.4px;opacity:.35}.gr-ghost .gr-head{fill:none;stroke-width:1.2px;opacity:.35}.gr-plate{fill:var(--accent)}.gr-hub{fill:var(--accent-ink)}.gr-db,.gr-kb{fill:var(--accent)}.gr-band{fill:none;stroke:var(--reported);stroke-width:1.8px;stroke-dasharray:3 2}.gr-cable,.gr-bar{stroke:var(--ink-soft);stroke-width:1.4px}.ghost-muscles .gr-limb{opacity:.35}.ghost-muscles .gr-lit{opacity:1;stroke:var(--accent);stroke-width:6px;filter:drop-shadow(0 0 3px var(--accent-soft))}.ghost-muscles .gr-lit-dot{fill:var(--accent);filter:drop-shadow(0 0 4px var(--accent-soft))}.ghost-muscles .gr-far .gr-limb{opacity:.15}.gr-breath{fill:color-mix(in srgb, var(--reported) 18%, transparent);stroke:var(--reported);stroke-width:1px}.ghost-breathe{text-align:center;font-family:var(--font-display);color:var(--reported);font-size:1.3rem;font-weight:750}.ghost-muscles p,.ghost-muscles{font-size:.9rem}.ghost-stage .ghost-muscles{text-align:center;color:var(--ink-soft)}.ghost-stage .ghost-muscles b{color:var(--ink)}.ghost-tempo{flex-direction:column;gap:.4rem;display:flex}.ghost-tempo p{color:var(--ink-soft);text-align:center;max-width:none;font-size:.85rem}.tempo-bar{gap:3px;height:30px;display:flex;position:relative}.tempo-bar span{background:var(--surface);color:var(--ink-soft);border-radius:8px;place-items:center;min-width:2.6rem;font-size:.75rem;font-weight:700;display:grid}.tempo-bar i{background:var(--accent);border-radius:2px;width:3px;position:absolute;top:-3px;bottom:-3px;transform:translate(-1.5px)}.ghost-keys{grid-template-columns:44px repeat(4,1fr);align-items:center;gap:4px;display:grid}.ghost-key{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink-soft);font:inherit;cursor:pointer;border-radius:12px;font-size:.8rem;font-weight:700}.ghost-key-on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.ghost-play{border:1px solid var(--line);background:var(--surface);width:44px;height:40px}.ghost-cues{flex-direction:column;gap:.35rem;margin:0;padding-left:1.1rem;font-weight:600;display:flex}.ghost-cues li::marker{color:var(--accent)}.ghost-notes{flex-direction:column;gap:.5rem;margin:0;display:flex}.ghost-notes div{flex-direction:column;gap:.1rem;display:flex}.ghost-notes dt{color:var(--ink-soft);font-size:.8rem;font-weight:700}.ghost-notes dd{margin:0;font-size:.92rem}.ghost-mistake{background:var(--well);border-left:3px solid var(--ink-soft);border-radius:12px;padding:.55rem .75rem}@media (prefers-reduced-motion:no-preference){.ghost{animation:.35s cubic-bezier(.2,.8,.2,1) ob-in-up}.gr-breath{transition:r .6s}.ghost-key,.showme-toggle{transition:background-color .2s,color .2s}}.bb-total{text-align:center;color:var(--ink-soft);font-weight:650}.bb-total b{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:3.2rem;font-weight:800}.bb-svg{width:100%;height:auto;display:block;overflow:visible}.bb-shaft{fill:#9aa0a8}.bb-sleeve{fill:#c3c8cf}.bb-collar{fill:#7d838b}.bb-plate{cursor:pointer}.bb-plate rect{stroke:#00000040;stroke-width:.8px}.bb-red rect,.bb-pick.bb-red{fill:#d6453d;color:#fff;background:#d6453d}.bb-blue rect,.bb-pick.bb-blue{fill:#2f6fd6;color:#fff;background:#2f6fd6}.bb-yellow rect,.bb-pick.bb-yellow{fill:#e8c33a;color:#2b2100;background:#e8c33a}.bb-green rect,.bb-pick.bb-green{fill:#3c9a5f;color:#fff;background:#3c9a5f}.bb-white rect,.bb-pick.bb-white{fill:#f4f4f2;color:#222;background:#f4f4f2}.bb-black rect,.bb-pick.bb-black{fill:#232323;color:#fff;background:#232323}.bb-silver rect,.bb-pick.bb-silver{fill:#b8bcc4;color:#222;background:#b8bcc4}.bb-hint{color:var(--ink-soft);text-align:center;max-width:none;font-size:.85rem}.bb-plates{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.bb-pick{min-height:52px;font:inherit;cursor:pointer;border:0;border-radius:12px;font-size:.85rem;font-weight:800;box-shadow:inset 0 -3px #0000002e}.bb-pick:active{transform:scale(.94)}.bb-pick.bb-white{box-shadow:inset 0 0 0 1px #ccc,inset 0 -3px #0000001f}.bb-row{align-items:center;gap:.5rem;display:flex}.bb-bars{flex:1}.logger-toolbar{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.logger-toolbar .link{align-items:center;gap:.35rem;min-height:36px;font-size:.92rem;display:inline-flex}.logger-caution{background:var(--estimate-soft);color:var(--ink);border-radius:14px;max-width:none;padding:.6rem .85rem;font-size:.9rem}.logger-tools{flex-direction:column;gap:.6rem;display:flex}.logger-tool-buttons{flex-wrap:wrap;gap:.4rem;display:flex}.tool-chip{border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;align-items:center;gap:.35rem;padding:0 .8rem;font-size:.85rem;font-weight:650;display:inline-flex}.set-head-actions{align-items:center;gap:.3rem;display:flex}.set-plates{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.plates-button{border:1px dashed var(--accent);min-height:34px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:.35rem;padding:0 .75rem;font-size:.82rem;font-weight:700;display:inline-flex}.plates-text{color:var(--ink-soft);font-size:.8rem}.autoreg{background:var(--surface);border:1.5px solid var(--accent);border-radius:18px;flex-direction:column;gap:.5rem;padding:.85rem .95rem;display:flex}.autoreg p{max-width:none;font-size:.95rem}.autoreg-stop{border-color:var(--ink-soft)}.autoreg .tag{align-self:flex-start}.autoreg-actions{align-items:center;gap:.8rem;display:flex}.autoreg-actions .button{min-height:40px;padding:0 1rem}.overview{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.overview-row{background:var(--well);border:1.5px solid #0000;border-radius:14px;grid-template-columns:36px 1fr auto;align-items:center;gap:.4rem;padding:.35rem .4rem;display:grid}.overview-now{border-color:var(--accent)}.overview-dragging{opacity:.6;box-shadow:0 8px 20px #00000026}.overview-handle{width:36px;height:44px;color:var(--ink-soft);cursor:grab;touch-action:none;background:0 0;border:0;place-items:center;display:grid}.overview-main{text-align:left;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;padding:.3rem 0;display:flex}.overview-main span{color:var(--ink-soft);font-size:.82rem}.overview-arrows{display:flex}.overview-arrows .icon-button:disabled{opacity:.3}.swaps{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.swaps li{background:var(--well);border-radius:16px;align-items:center;gap:.5rem;padding:.4rem .5rem .4rem 0;display:flex}.swap-main{text-align:left;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:.1rem;padding:.5rem .8rem;display:flex}.swap-label{color:var(--accent);font-size:.75rem;font-weight:800}.swap-main b{font-family:var(--font-display);font-size:1.05rem}.swap-why{color:var(--ink-soft);font-size:.82rem}.recent-actions{align-items:center;gap:.2rem;margin-left:auto;display:flex}.units-seg{grid-template-columns:1fr 1fr}@media (prefers-reduced-motion:no-preference){.bb-slide-r rect{transform-box:fill-box;animation:.35s cubic-bezier(.2,.9,.25,1.05) backwards plate-in-r}.bb-slide-l rect{transform-box:fill-box;animation:.35s cubic-bezier(.2,.9,.25,1.05) backwards plate-in-l}.bb-total b{transition:color .2s}.autoreg{animation:.35s cubic-bezier(.2,.8,.2,1) ob-in-up}.overview-row{transition:transform .15s}}@keyframes plate-in-r{0%{opacity:0;transform:translate(40px)}}@keyframes plate-in-l{0%{opacity:0;transform:translate(-40px)}}.train-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.train-bar .tool-chip{text-decoration:none}.where{grid-template-columns:1fr 1fr;min-width:13rem}.lib-search{background:var(--surface);border:1.5px solid var(--line);min-height:52px;color:var(--ink-soft);border-radius:16px;align-items:center;gap:.6rem;padding:0 1rem;display:flex}.lib-search:focus-within{border-color:var(--accent)}.lib-search input{font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1;min-height:48px;font-size:1.05rem}.lib-filters{scrollbar-width:none;gap:.4rem;margin:0 -1rem;padding-bottom:.2rem;padding-left:1rem;padding-right:1rem;display:flex;overflow-x:auto}.lib-filters::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:99px;flex:none;align-items:center;padding:0 .9rem;font-size:.86rem;font-weight:600;text-decoration:none;display:inline-flex}.filter-on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.filter-select{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;border-radius:99px;flex:none;padding:0 .7rem;font-size:.86rem;font-weight:600}.lib-section{flex-direction:column;gap:.5rem;display:flex}.lib-section h2{font-size:1.15rem}.lib-group h3{font-family:var(--font-display);align-items:baseline;gap:.5rem;margin:.6rem 0 .4rem;font-size:1rem;display:flex}.lib-group h3 small{font-family:var(--font-body);color:var(--ink-soft);font-size:.8rem;font-weight:500}.lib-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.lib-row{border-top:1px solid var(--line);grid-template-columns:1fr auto 40px;align-items:center;gap:.5rem;padding-right:.3rem;display:grid}.lib-row:first-child{border-top:0}.lib-main{color:var(--ink);flex-direction:column;min-width:0;padding:.7rem 0 .7rem 1rem;text-decoration:none;display:flex}.lib-main b{font-weight:650}.lib-main span{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.difficulty{gap:2px;display:inline-flex}.difficulty span{background:var(--line);border-radius:2px;width:5px;height:12px}.difficulty span.on{background:var(--accent)}.star{color:var(--ink-soft)}.star-on{color:var(--estimate)}.star-on svg{fill:currentColor}.field select{min-height:48px;font:inherit;color:var(--ink);background:var(--well);border:1.5px solid var(--line);border-radius:12px;padding:0 .8rem}.field-legend{width:100%;margin-bottom:.4rem;font-weight:600}.back-link{min-height:36px;color:var(--accent);align-self:flex-start;align-items:center;gap:.2rem;font-weight:650;text-decoration:none;display:inline-flex}.ex-head{gap:.6rem}.ex-tags{flex-wrap:wrap;gap:.35rem;display:flex}.ex-tags span{background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:.2rem .65rem;font-size:.8rem;font-weight:650}.star-button{align-self:flex-start;min-height:40px}.star-button.star-on{background:var(--estimate-soft);color:var(--estimate)}.pb-tiles{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0;display:grid}.pb-tiles div{background:var(--well);border-radius:14px;padding:.6rem .7rem}.pb-tiles dt{color:var(--ink-soft);font-size:.75rem;font-weight:650}.pb-tiles dd{font-family:var(--font-display);letter-spacing:-.02em;flex-direction:column;margin:.1rem 0 0;font-size:1.2rem;font-weight:800;display:flex}.pb-tiles small{font-family:var(--font-body);color:var(--ink-soft);font-size:.75rem;font-weight:500}.trend{margin:0}.trend svg{width:100%;height:auto;display:block;overflow:visible}.trend-line{fill:none;stroke:var(--reported);stroke-width:3px;stroke-linecap:round}.trend-dot{fill:var(--surface);stroke:var(--reported);stroke-width:3px}.trend figcaption{color:var(--ink-soft);margin-top:.3rem;font-size:.82rem}.ex-sessions{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ex-sessions li{border-top:1px solid var(--line);grid-template-columns:4.5rem 1fr auto;gap:.5rem;padding:.45rem 0;font-size:.9rem;display:grid}.ex-sessions li span:first-child{color:var(--ink-soft)}.ex-related h3{color:var(--ink-soft);font-size:.85rem;font-family:var(--font-body);margin:.3rem 0 0;font-weight:650}.rel-chips{flex-wrap:wrap;gap:.4rem;display:flex}@media (prefers-reduced-motion:no-preference){.lib-row{animation:.35s backwards fade-in;animation-delay:calc(var(--i) * 25ms)}.trend-line{stroke-dasharray:1;animation:1.2s cubic-bezier(.65,0,.35,1) .2s backwards week-draw}.star svg{transition:transform .25s cubic-bezier(.3,1.6,.5,1),fill .2s}.star-on svg{transform:scale(1.15)}}.planner-week{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.75rem;padding:1.1rem 1rem 1rem;display:flex}.week-days{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.week-day{background:var(--well);border-radius:14px;grid-template-columns:4.4rem 1fr auto auto;align-items:center;gap:.5rem;padding:.5rem .4rem .5rem .75rem;display:grid}.week-day-train{background:color-mix(in srgb, var(--accent-soft) 70%, var(--bg))}.week-day-busy{opacity:.7}.wd-label{color:var(--ink-soft);font-size:.85rem;font-weight:700}.wd-main{flex-direction:column;min-width:0;display:flex}.wd-main b{font-family:var(--font-display);font-size:1rem}.wd-main small{color:var(--ink-soft);font-size:.78rem}.wd-rest{color:var(--ink-soft);font-size:.9rem}.wd-up{color:var(--estimate);font-size:.75rem}.busy-chip{border:1px dashed var(--line);min-height:32px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border-radius:99px;padding:0 .7rem;font-size:.75rem;font-weight:700}.busy-on{border-style:solid;border-color:var(--ink-soft);background:var(--surface);color:var(--ink)}.pb-window{background:var(--well);border-radius:14px;flex-wrap:wrap;align-items:center;gap:.6rem;max-width:none;padding:.7rem .85rem;font-size:.9rem;display:flex}.pb-window svg{color:var(--estimate);flex:none}.pb-window span:not(.tag){flex:1;min-width:12rem}@media (prefers-reduced-motion:no-preference){.planner-week{animation:.5s cubic-bezier(.2,.8,.2,1) .3s backwards ob-in-up}.week-day{animation:.35s backwards ob-in-up;animation-delay:calc(.35s + var(--i) * 45ms)}}.topbar-actions{gap:.2rem;margin-left:auto;display:flex}.offline-banner{background:var(--surface);border:1px dashed var(--line);width:calc(100% - 2rem);max-width:560px;color:var(--ink-soft);border-radius:12px;align-items:center;gap:.5rem;margin:0 auto;padding:.5rem .8rem;font-size:.85rem;display:flex}.resume-banner{background:var(--ink);color:var(--bg);border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;text-decoration:none;display:flex}.resume-banner small{opacity:.7;font-size:.8rem;display:block}.resume-banner b{font-family:var(--font-display);font-size:1.1rem}.cmd-backdrop{padding:calc(env(safe-area-inset-top) + .8rem) .8rem 0;align-items:flex-start}.cmd{background:var(--surface);border-radius:22px;flex-direction:column;width:100%;max-width:560px;max-height:80dvh;display:flex;overflow:hidden;box-shadow:0 20px 50px #0000004d}.cmd-input{border-bottom:1px solid var(--line);color:var(--ink-soft);align-items:center;gap:.6rem;padding:0 .9rem;display:flex}.cmd-input input{min-height:58px;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:1.05rem}.cmd-results{margin:0;padding:.4rem;list-style:none;overflow-y:auto}.cmd-item{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;grid-template-columns:22px 1fr 16px;align-items:center;gap:.7rem;padding:.65rem .7rem;display:grid}.cmd-item span{flex-direction:column;display:flex}.cmd-item small{color:var(--ink-soft);font-size:.8rem}.cmd-item svg:first-child{color:var(--accent)}.cmd-active{background:var(--well)}.cmd-go{color:var(--ink-soft);opacity:0}.cmd-active .cmd-go{opacity:1}.cmd-empty{color:var(--ink-soft);padding:1rem;font-size:.92rem}.cmd-detail{flex-direction:column;gap:.5rem;padding:1rem 1.1rem 1.2rem;display:flex}.cmd-detail h3{font-family:var(--font-display);margin:0;font-size:1.3rem}.cmd-kicker{color:var(--ink-soft);font-size:.85rem;font-weight:650}.cmd-detail ul{margin:0;padding-left:1.1rem}.cmd-detail .link{align-self:flex-start}.private-mode .sensitive{cursor:pointer;border-radius:12px;position:relative}.private-mode .sensitive:not(.sensitive-shown)>div{filter:blur(9px);-webkit-user-select:none;user-select:none}.private-mode .sensitive:not(.sensitive-shown):after{content:"Hidden · tap to show";color:var(--ink);place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;inset:0}.score-hero .sensitive:not(.sensitive-shown):after{color:var(--accent-ink)}.private-mode .sensitive:focus-visible{outline:3px solid var(--accent)}.tab-menu-scrim{z-index:-1;background:0 0;border:0;position:fixed;inset:0}.tab-menu{bottom:calc(100% + 8px);left:calc(var(--slot) * 20% + 10%);background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;min-width:13rem;padding:.35rem;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 12px 30px #0003}.tab-menu button{min-height:44px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:0 .9rem;font-weight:650}.tab-menu button:hover,.tab-menu button:focus-visible{background:var(--well)}@media (width<=420px){.tab-menu{left:50%}}@media (prefers-reduced-motion:no-preference){.cmd{animation:.25s cubic-bezier(.2,.9,.25,1.05) cmd-in}.tab-menu{animation:.2s cubic-bezier(.2,.9,.25,1.05) rise-in}.private-mode .sensitive>div{transition:filter .25s}.resume-banner{animation:.4s ob-in-up}}@keyframes cmd-in{0%{opacity:0;transform:translateY(-12px)scale(.98)}}.mode{flex-direction:column;gap:1rem;display:flex}.mode-kicker{color:var(--ink-soft);font-size:.8rem;font-weight:700}.mode-entry{border-radius:var(--radius-card);color:var(--ink);background:var(--surface);border:1px solid var(--line);align-items:center;gap:.85rem;padding:.95rem 1rem;text-decoration:none;display:flex}.mode-entry>span:nth-child(2){flex-direction:column;flex:1;display:flex}.mode-entry>span:nth-child(2) span{color:var(--ink-soft);font-size:.9rem}.mode-entry-icon{background:var(--accent);width:44px;height:44px;color:var(--accent-ink);border-radius:14px;flex:none;place-items:center;display:grid}.core{background:radial-gradient(120% 90% at 50% 30%, color-mix(in srgb, var(--accent) 18%, var(--surface)), var(--surface) 70%);border:1px solid var(--line);border-radius:28px;flex-direction:column;gap:.6rem;padding:1.1rem 1.1rem 1.2rem;display:flex;position:relative;overflow:hidden}.core-top{justify-content:space-between;align-items:center;display:flex}.core-level{font-family:var(--font-display);background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-pill);padding:.15rem .75rem;font-size:.9rem;font-weight:700}.core-stage{place-items:center;display:grid}.core-orb{width:min(260px,72vw);height:auto;overflow:visible}.core-track{fill:none;stroke:color-mix(in srgb, var(--ink) 9%, transparent);stroke-width:9px}.core-fill{fill:none;stroke-width:9px;stroke-linecap:round}.core-ring-cycle .core-fill{stroke:#b0457f}.core-dot-cycle{background:#b0457f}.core-ring-recovery .core-fill{stroke:#2f8f7b}.core-dot-recovery{background:#2f8f7b}.core-ring-training .core-fill{stroke:#c27a1b}.core-dot-training{background:#c27a1b}.core-ring-sleep .core-fill{stroke:#5a63c9}.core-dot-sleep{background:#5a63c9}.core-ring-momentum .core-fill{stroke:#7d3c98}.core-dot-momentum{background:#7d3c98}:root[data-theme=dark] .core-ring-cycle .core-fill{stroke:#ea8cc0}:root[data-theme=dark] .core-dot-cycle{background:#ea8cc0}:root[data-theme=dark] .core-ring-recovery .core-fill{stroke:#6fd0bb}:root[data-theme=dark] .core-dot-recovery{background:#6fd0bb}:root[data-theme=dark] .core-ring-training .core-fill{stroke:#f0b95a}:root[data-theme=dark] .core-dot-training{background:#f0b95a}:root[data-theme=dark] .core-ring-sleep .core-fill{stroke:#9aa2f5}:root[data-theme=dark] .core-dot-sleep{background:#9aa2f5}:root[data-theme=dark] .core-ring-momentum .core-fill{stroke:#c79be0}:root[data-theme=dark] .core-dot-momentum{background:#c79be0}.core-halo,.core-flower{transform-box:view-box;transform-origin:0 0}.core-flower ellipse{fill:color-mix(in srgb, var(--accent) 55%, transparent)}.core-heart{fill:var(--accent)}.core-legend{flex-wrap:wrap;justify-content:center;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.core-chip{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--ink);font:inherit;cursor:pointer;align-items:center;gap:.4rem;padding:0 .75rem;font-size:.88rem;display:inline-flex}.core-chip b{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-weight:600}.core-chip-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.core-dot{border-radius:50%;flex:none;width:10px;height:10px}.core-detail{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:.25rem;padding:.7rem .85rem;font-size:.95rem;display:flex}.core-grow{color:var(--ink-soft)}.season{border-radius:var(--radius-card);color:#fff;background:linear-gradient(135deg,#4a1d40,#6b2a5a 55%,#8d4a7a);flex-direction:column;gap:.6rem;padding:1rem 1.1rem;display:flex}.season .mode-kicker{color:#ffffffbf}.season h2{font-size:1.6rem}.season-day{color:#ffffffd9;align-items:center;gap:.5rem;display:flex}.season-tag .tag-estimate{color:#ffd68a;background:#00000040;border-color:#ffd68a}.season-track{background:#fff3;border-radius:99px;height:8px;overflow:hidden}.season-track span{border-radius:inherit;background:#fff;height:100%;display:block}.season-weeks{color:#ffffffe6;font-size:.95rem}.season-weeks b{font-family:var(--font-display);font-size:1.15rem}.level-xp{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.9rem}.level-bar{background:var(--accent-soft);border-radius:99px;height:12px;overflow:hidden}.level-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #f0b95a));height:100%;display:block}.level-how{font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0}.level-parts{flex-direction:column;gap:.3rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.level-parts li{justify-content:space-between;display:flex}.level-parts .level-rule{color:var(--ink-soft);padding-top:.35rem;font-size:.88rem}.quests ul,.boss ul,.attrs ul{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.quests-count{color:var(--ink-soft);font-size:.9rem}.quest{grid-template-columns:44px 1fr auto;align-items:start;gap:.75rem;display:grid}.quest h3{font-size:1rem;font-family:var(--font-body);font-weight:650}.quest p{color:var(--ink-soft);font-size:.88rem}.quest-mark{border:2px dashed var(--line);width:44px;height:44px;color:var(--ink-soft);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.quest-done .quest-mark{background:var(--accent);color:var(--accent-ink);border:0}.quest-bar{background:var(--accent-soft);border-radius:99px;height:6px;margin-top:.4rem;display:block;overflow:hidden}.quest-bar span{background:var(--accent);border-radius:inherit;height:100%;display:block}.quest-xp{color:var(--accent);white-space:nowrap;padding-top:.15rem;font-size:.82rem;font-weight:700}.boss h2{align-items:center;gap:.4rem;display:flex}.boss-intro,.boss-none{color:var(--ink-soft);font-size:.95rem}.boss-day{border:1px dashed var(--estimate);background:var(--estimate-soft);border-radius:14px;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;padding:.65rem .8rem;display:flex}.boss-day>span{color:var(--ink-soft);flex:12rem;font-size:.9rem}.boss-won{border-style:solid;border-color:var(--reported)}.boss-day>.boss-badge{background:var(--reported);color:var(--reported-ink);border-radius:99px;flex:none;padding:0 .6rem;font-size:.8rem;font-weight:700}.attr-head{justify-content:space-between;font-weight:600;display:flex}.attr-head b{font-variant-numeric:tabular-nums}.attr-bar{background:var(--accent-soft);border-radius:99px;height:8px;margin:.3rem 0;display:block;overflow:hidden}.attr-bar span{border-radius:inherit;background:var(--accent);height:100%;display:block}.attr-bar-empty{background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 10px)}.attrs p{color:var(--ink-soft);font-size:.85rem}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.badge{border:1px solid var(--line);opacity:.62;border-radius:16px;flex-direction:column;gap:.25rem;padding:.8rem;display:flex}.badge b{font-size:.92rem;line-height:1.25}.badge-detail{color:var(--ink-soft);font-size:.8rem;line-height:1.3}.badge-icon{background:var(--line);width:36px;height:36px;color:var(--ink-soft);border-radius:12px;place-items:center;display:grid}.badge-earned{opacity:1;background:var(--surface);border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.badge-earned .badge-icon{background:var(--accent);color:var(--accent-ink)}@media (prefers-reduced-motion:no-preference){.core-fill{animation:1.4s cubic-bezier(.2,.8,.2,1) both core-draw;animation-delay:calc(var(--i,0) * .12s + .2s)}@keyframes core-draw{0%{stroke-dasharray:.001 var(--len)}}.core-halo{animation:5s ease-in-out infinite core-breathe}@keyframes core-breathe{50%{opacity:.7;transform:scale(1.06)}}.core-flower{animation:40s linear infinite core-spin}@keyframes core-spin{to{transform:rotate(360deg)}}.core-heart{transform-origin:50%;transform-box:fill-box;animation:2.4s ease-in-out infinite core-beat}@keyframes core-beat{0%,to{transform:scale(1)}12%{transform:scale(1.25)}24%{transform:scale(1)}}.level-bar span,.quest-bar span,.attr-bar span,.season-track span{animation:1.1s cubic-bezier(.2,.8,.2,1) both mode-bar;animation-delay:calc(var(--i,0) * 80ms + .3s);transform-origin:0}@keyframes mode-bar{0%{transform:scaleX(0)}}@keyframes mode-rise{0%{opacity:0;transform:translateY(8px)}}.badge-earned .badge-icon{animation:3s ease-in-out infinite badge-shine;animation-delay:calc(var(--i,0) * .4s)}@keyframes badge-shine{0%,85%,to{box-shadow:0 0 #0000}92%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 25%, transparent)}}.mode-entry{transition:transform .2s}.mode-entry:active{transform:scale(.98)}}.online{border-radius:var(--radius-card);border:1.5px dashed var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 45%, transparent), transparent);flex-direction:column;gap:.75rem;margin-top:1.25rem;padding:1rem;display:flex}.online-head{align-items:flex-start;gap:.75rem;display:flex}.online-head p{color:var(--ink-soft);font-size:.92rem}.online-icon{background:var(--surface);border:1px solid var(--line);width:38px;height:38px;color:var(--accent);border-radius:12px;flex:none;place-items:center;display:grid}.online-go{align-self:stretch}.online-count{color:var(--ink-soft);font-size:.9rem}.online-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.online-row{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.online-main{width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:.75rem;min-height:56px;padding:.8rem .9rem;display:flex}.online-main>span{flex-direction:column;display:flex}.online-main>span span{color:var(--ink-soft);text-transform:capitalize;font-size:.85rem}.online-main svg{flex:none;transition:transform .25s}.online-open .online-main svg{transform:rotate(180deg)}.online-detail{flex-direction:column;gap:.5rem;padding:0 .9rem .9rem;font-size:.95rem;display:flex}.online-detail h3{margin-top:.35rem;font-size:.95rem}.online-detail ol,.online-detail ul{flex-direction:column;gap:.25rem;margin:0;padding-left:1.2rem;display:flex}.online-safety{color:var(--ink-soft);border-left:3px solid var(--estimate);padding-left:.6rem;font-size:.88rem}.online-video{background:#000;border-radius:12px;width:100%}.online-play{font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:.35rem;padding:0;display:inline-flex}.online-actions{justify-content:flex-end;padding-top:.25rem;display:flex}.online-credit{color:var(--ink-soft);font-size:.8rem}.day-nav{background:var(--surface);border:1px solid var(--line);border-radius:16px;justify-content:space-between;align-items:center;margin:1rem 0;padding:.3rem;display:flex}.day-nav b{font-family:var(--font-display)}.day-nav .icon-button:disabled{opacity:.3;cursor:default}.plate{border:1px solid var(--line);background:radial-gradient(90% 120% at 0% 50%, color-mix(in srgb, var(--accent) 12%, var(--surface)), var(--surface) 70%);border-radius:24px;grid-template-columns:auto 1fr;align-items:center;gap:1rem;padding:1rem 1.1rem;display:grid;position:relative}.plate-ring{grid-row:1/span 2;width:136px;height:136px}.plate-track{fill:none;stroke:color-mix(in srgb, var(--ink) 8%, transparent);stroke-width:14px}.plate-arc{fill:none;stroke-width:14px;stroke-linecap:butt}.plate-protein{stroke:#2f8f7b;background:#2f8f7b}.plate-carbs{stroke:#c27a1b;background:#c27a1b}.plate-fat{stroke:#b0457f;background:#b0457f}.plate-fibre{background:#5a63c9}.plate-plain{stroke:color-mix(in srgb, var(--accent) 45%, transparent);stroke-dasharray:2 10;stroke-linecap:round}:root[data-theme=dark] .plate-protein{stroke:#6fd0bb;background:#6fd0bb}:root[data-theme=dark] .plate-carbs{stroke:#f0b95a;background:#f0b95a}:root[data-theme=dark] .plate-fat{stroke:#ea8cc0;background:#ea8cc0}:root[data-theme=dark] .plate-fibre{background:#9aa2f5}.plate-centre{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:136px;height:136px;display:flex;position:absolute;top:1rem;left:1.1rem}.plate-centre b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.7rem;line-height:1}.plate-centre span{color:var(--ink-soft);font-size:.8rem}.plate-legend{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.plate-legend li{grid-template-columns:10px 1fr auto;align-items:center;gap:.5rem;font-size:.92rem;display:grid}.plate-legend b{font-variant-numeric:tabular-nums}.plate-dot{border-radius:50%;width:10px;height:10px}.plate-note{color:var(--ink-soft);grid-column:1/-1;font-size:.85rem}.meal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.5rem;padding:.85rem 1rem;display:flex}.meal-head{align-items:center;gap:.6rem;display:flex}.meal-head h2{flex:1;font-size:1.1rem}.meal-kcal{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.88rem}.meal-add{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.meal-empty{color:var(--ink-soft);font-size:.9rem;list-style:none}.meal-list,.food-results{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.food-row{border-top:1px solid var(--line);align-items:center;gap:.5rem;padding:.45rem 0;display:flex}.food-row:first-child{border-top:0}.food-main{flex-direction:column;flex:1;min-width:0;display:flex}.food-main b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.food-main span{color:var(--ink-soft);font-size:.84rem}.food-kcal{font-variant-numeric:tabular-nums;color:var(--ink-soft);white-space:nowrap;font-size:.9rem}.food-fab{width:100%;margin-top:.25rem}.food-numbers{border-bottom:0;margin-top:.75rem}.food-numbers span{flex-direction:column;display:flex}.food-numbers small{color:var(--ink-soft);font-weight:400}.meal-seg{grid-template-columns:repeat(4,1fr)}.meal-seg .seg{font-size:.82rem}.food-search{border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:14px;align-items:center;gap:.5rem;padding:.3rem .3rem .3rem .8rem;display:flex}.food-search input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1;min-height:40px}.food-search:focus-within{border-color:var(--accent)}.food-go{min-height:40px;padding:0 1rem}.scan-button{width:100%}.food-result{border:0;border-bottom:1px solid var(--line);width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:.75rem;min-height:52px;padding:.65rem .25rem;display:flex}.food-recent h3{align-items:center;gap:.35rem;margin-bottom:.4rem;font-size:.95rem;display:flex}.chips-row{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.quick-add{border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:.6rem;padding:.7rem .85rem;display:flex}.quick-add[open]{display:flex}.quick-add summary{cursor:pointer;font-weight:650}.quick-add>*+*{margin-top:.6rem}.food-credit{color:var(--ink-soft);font-size:.8rem}.food-credit svg{vertical-align:-2px;margin-right:.25rem}.amount{flex-direction:column;gap:.75rem;display:flex}.amount-name{font-family:var(--font-display);font-size:1.15rem}.amount-brand{color:var(--ink-soft);font-size:.9rem}.amount-values{grid-template-columns:repeat(4,1fr);gap:.4rem;margin:0;display:grid}.amount-values div{background:var(--well);text-align:center;border-radius:12px;padding:.5rem}.amount-values dt{color:var(--ink-soft);font-size:.75rem}.amount-values dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.scanner{flex-direction:column;gap:.5rem;display:flex;position:relative}.scanner-video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:16px;width:100%}.scanner-frame{pointer-events:none;border:3px solid #fff;border-radius:12px;height:22%;position:absolute;top:30%;left:12%;right:12%;box-shadow:0 0 0 999px #00000040}.scanner-hint{color:var(--ink-soft);text-align:center;font-size:.9rem}.food-today{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);color:var(--ink);align-items:center;gap:.85rem;padding:.85rem 1rem;text-decoration:none;display:flex}.food-today>span:nth-child(2){flex-direction:column;flex:1;display:flex}.food-today small{color:var(--ink-soft);font-size:.85rem}.food-today-icon{background:color-mix(in srgb, #2f8f7b 15%, var(--surface));width:40px;height:40px;color:var(--reported);border-radius:12px;flex:none;place-items:center;display:grid}@media (prefers-reduced-motion:no-preference){.plate-arc:not(.plate-plain){animation:1s cubic-bezier(.2,.8,.2,1) both plate-draw;animation-delay:calc(var(--i,0) * .14s + .15s)}@keyframes plate-draw{0%{stroke-dasharray:0 var(--len)}}.plate-plain{transform-origin:0 0;transform-box:view-box;animation:60s linear infinite core-spin}.meal-add{transition:transform .2s cubic-bezier(.3,1.4,.5,1)}.meal-add:active{transform:scale(.88)rotate(90deg)}.scanner-frame{animation:1.6s ease-in-out infinite scan-pulse}@keyframes scan-pulse{50%{border-color:#ffffff80}}}body.studio-open{overflow:hidden}.studio{z-index:60;background:var(--bg);color:var(--ink);flex-direction:column;display:flex;position:fixed;inset:0}.studio-bar{padding:calc(env(safe-area-inset-top) + .6rem) 1rem .6rem;border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;display:grid}.studio-bar h2{font-size:1.05rem}.studio-bar .link{font:inherit;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0}.studio-done{justify-self:end;min-height:38px;padding:0 1.1rem}.studio-body{padding:.9rem 1rem calc(env(safe-area-inset-bottom) + 1.5rem);flex-direction:column;flex:1;gap:1rem;width:100%;max-width:560px;margin:0 auto;display:flex;overflow-y:auto}.studio-label{color:var(--ink-soft);font-size:.8rem;font-weight:700;font-family:var(--font-body);margin-bottom:.45rem}.studio-presets{scroll-snap-type:x proximity;scrollbar-width:none;gap:.5rem;margin:0 -1rem;padding:.15rem 1rem .35rem;list-style:none;display:flex;overflow-x:auto}.studio-presets::-webkit-scrollbar{display:none}.studio-presets li{scroll-snap-align:start}.preset{border:1.5px solid var(--line);background:var(--surface);width:78px;color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .25rem .45rem;font-size:.75rem;font-weight:600;display:flex}.preset .mini-ghost{width:56px;height:54px}.preset-on{border-color:var(--accent);background:var(--accent-soft)}.mini-ghost .gr-limb{stroke-width:4.5px}.studio-stage{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:.5rem;position:relative}.studio-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.studio-gridline{fill:none;stroke:color-mix(in srgb, var(--ink) 6%, transparent);stroke-width:.3px}.studio-onion .gr-figure{opacity:.22}.studio-handle{cursor:grab;outline:none}.studio-hit{fill:#0000}.studio-dot{fill:var(--surface);stroke:var(--accent);stroke-width:1.2px;transition:r .15s}.studio-anchor .studio-dot{fill:var(--accent);stroke:var(--surface)}.studio-handle:hover .studio-dot,.studio-selected .studio-dot{r:4;stroke-width:1.6px}.studio-selected .studio-hit{fill:color-mix(in srgb, var(--accent) 16%, transparent)}.studio-handle:focus-visible .studio-hit{stroke:var(--accent);stroke-width:.8px;stroke-dasharray:2 1.5}.studio-hint{text-align:center;color:var(--ink-soft);min-height:2.6em;padding:.15rem .5rem .35rem;font-size:.88rem}.studio-keys{grid-template-columns:repeat(4,1fr);gap:.45rem;display:grid}.studio-key{border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:.1rem;padding:.35rem .2rem .45rem;font-size:.8rem;font-weight:650;display:flex}.studio-key-fig{width:100%;max-width:70px;height:auto}.studio-key-on{border-color:var(--accent);color:var(--ink);box-shadow:0 6px 18px -10px color-mix(in srgb, var(--accent) 70%, transparent)}.studio-tools{flex-wrap:wrap;gap:.45rem;display:flex}.studio-tool{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;align-items:center;gap:.35rem;padding:0 .85rem;font-size:.9rem;font-weight:600;display:inline-flex}.studio-tool:disabled{opacity:.4;cursor:default}.studio-play{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.studio-tempo{grid-template-columns:repeat(3,1fr);gap:.45rem;display:grid}.studio-step{background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);border-radius:14px;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem;font-size:.82rem;display:flex}.studio-step>div{align-items:center;gap:.2rem;display:flex}.studio-step b{text-align:center;min-width:1.6rem;color:var(--ink);font-size:1.15rem;font-family:var(--font-display)}.ghost-design{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:96px 1fr;align-items:center;gap:.85rem;padding:.75rem;display:grid}.ghost-design-fig{background:var(--surface);border-radius:14px;width:96px;height:92px}.ghost-design>div{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex}.ghost-design p{color:var(--ink-soft);font-size:.88rem}.ghost-design .button{min-height:38px;padding:0 .9rem;font-size:.9rem}@media (prefers-reduced-motion:no-preference){.studio{animation:.32s cubic-bezier(.2,.8,.2,1) both studio-in}@keyframes studio-in{0%{opacity:0;transform:translateY(24px)scale(.98)}}.preset{transition:transform .2s cubic-bezier(.3,1.4,.5,1),border-color .2s,background-color .2s}.preset:active,.studio-key:active{transform:scale(.94)}.studio-selected .studio-dot{animation:1.4s ease-in-out infinite studio-pulse}@keyframes studio-pulse{50%{stroke-width:2.6px}}.studio-key{transition:border-color .2s,box-shadow .25s,transform .2s}}.space{background:var(--surface);border:1px solid var(--line);border-radius:28px;flex-direction:column;gap:.7rem;padding:1rem 1.1rem 1.1rem;display:flex}.space-edit{border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;align-items:center;gap:.35rem;padding:0 .8rem;font-size:.88rem;font-weight:650;display:inline-flex}.space-new{background:var(--accent);min-width:20px;height:20px;color:var(--accent-ink);border-radius:99px;place-items:center;padding:0 5px;font-size:.72rem;display:grid}.space-room{border-radius:18px;width:100%;height:auto;display:block;overflow:hidden}.space-line{font-weight:600}.space-next{color:var(--ink-soft);align-items:center;gap:.4rem;font-size:.9rem;display:flex}.space-next b{color:var(--ink)}.space-wall{fill:#eeeaf6}.space-morning .space-wall{fill:#f7ede4}.space-evening .space-wall{fill:#f2e1e8}.space-night .space-wall{fill:#2b2440}.space-floor{fill:#d8cabd}.space-night .space-floor{fill:#3b3049}.space-skirting{stroke:#00000014;stroke-width:3px}.space-sky{fill:#bfe0ff}.space-morning .space-sky{fill:#ffd9b0}.space-evening .space-sky{fill:#f4a98c}.space-night .space-sky{fill:#1c1f45}.space-sun{fill:#ffd25a}.space-moon{fill:#f3eecb}.space-frame{fill:none;stroke:#fff;stroke-width:4px}.space-night .space-frame{stroke:#4a405e}.space-shadow{fill:#0000001f}.space-shine{fill:none;stroke:#ffffff59;stroke-width:4px;stroke-linecap:round}.space-eyes circle{fill:#221b33}.space-smile{fill:none;stroke:#221b33;stroke-width:2.2px;stroke-linecap:round}.space-cheek{fill:#f19bb8;opacity:.6}.space-band{fill:none;stroke:#e05a7a;stroke-width:6px;stroke-linecap:round}.space-cap path{fill:#2f3c6b}.space-phones path{fill:none;stroke:#221b33;stroke-width:4px;stroke-linecap:round}.space-phones rect{fill:#221b33}.space-scarf path{fill:#c9463d}.space-star{fill:#f4c542}.space-leaves ellipse{fill:#6b9a3a}path.space-tail[stroke]{fill:none;stroke-width:5px;stroke-linecap:round}.space-pupil{fill:#221b33}.space-closed{fill:none;stroke:#221b33;stroke-width:1.6px;stroke-linecap:round}.space-zzz text{font:700 10px var(--font-display);fill:#5b5470}.space-night .space-zzz text{fill:#d8d0ea}.space-sparkle path{fill:#f4c542}.space-wire{fill:none;stroke:#6b6478;stroke-width:1px}.space-lights circle{fill:#ffd25a}.space-poster rect{fill:#fff;stroke:#00000014}.space-poster path{fill:none;stroke:#8d4a7a;stroke-width:3px;stroke-linecap:round}.space-shelf rect{fill:#a77b56}.space-cup path,.space-cup rect{fill:#d4a72c}.space-rug{fill:#c9b7e6;opacity:.75}.space-plant-leaves ellipse{fill:#5f9a4a}.space-pot{fill:#c8714f}.space-glow{fill:#ffe08a;opacity:.22}.space-night .space-glow{opacity:.5}.space-lamp-shade{fill:#f0c24f}.space-lamp-pole{fill:#6b6478}.space-telescope path{fill:none;stroke:#6b6478;stroke-width:2.5px;stroke-linecap:round}.space-telescope rect{fill:#5a63c9}.space-kettle path{fill:none;stroke:#3a3149;stroke-width:3px}.space-kettle circle{fill:#3a3149}.space-preview .space-room{border:1px solid var(--line)}.space-name{flex-direction:column;gap:.35rem;font-weight:600;display:flex}.space-name input{border:1.5px solid var(--line);background:var(--surface);min-height:46px;color:var(--ink);font:inherit;border-radius:12px;padding:0 .85rem}.space-group{border:0;margin:0;padding:0}.space-group legend{color:var(--ink-soft);margin-bottom:.45rem;padding:0;font-size:.8rem;font-weight:700}.space-items{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.space-item{border:1.5px solid var(--line);background:var(--surface);width:100%;height:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.6rem .7rem;display:flex}.space-item-top{align-items:center;gap:.4rem;width:100%;display:flex}.space-item-top b{flex:1;font-size:.92rem}.space-swatch{flex:none;width:22px;height:22px}.space-item-on{border-color:var(--accent);background:var(--accent-soft)}.space-item-locked{cursor:default;opacity:.6;border-style:dashed}.space-item-how{color:var(--ink-soft);font-size:.78rem;line-height:1.3}.space-item-badge{background:var(--accent);color:var(--accent-ink);border-radius:99px;padding:.05rem .45rem;font-size:.7rem;font-weight:700}.space-rule{color:var(--ink-soft);font-size:.85rem}@media (prefers-reduced-motion:no-preference){.space-avatar-body{transform-box:fill-box;transform-origin:50% 100%;animation:4s ease-in-out infinite space-breathe}@keyframes space-breathe{50%{transform:scale(1.03,.97)}}.space-eyes{transform-box:fill-box;transform-origin:50%;animation:5s infinite space-blink}@keyframes space-blink{0%,94%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}.space-pet-body{animation:3s ease-in-out infinite space-bob}.space-pet-ready .space-pet-body,.space-pet-proud .space-pet-body{animation-duration:1.6s}.space-pet-resting .space-pet-body{animation-duration:5s}@keyframes space-bob{50%{transform:translateY(-2px)}}.space-tail{transform-box:fill-box;transform-origin:100% 100%;animation:2.4s ease-in-out infinite space-wag}.space-pet-proud .space-tail{animation-duration:.8s}@keyframes space-wag{50%{transform:rotate(-12deg)}}.space-zzz text{animation:3s ease-in-out infinite space-zzz}.space-zzz text+text{animation-delay:1.5s}@keyframes space-zzz{0%{opacity:0;transform:translateY(4px)}30%,70%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.space-sparkle path{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite space-twinkle}.space-sparkle path+path{animation-delay:.8s}@keyframes space-twinkle{50%{opacity:.4;transform:scale(.4)}}.space-lights circle{animation:2.6s ease-in-out infinite space-glow;animation-delay:calc(var(--i,0) * .23s)}@keyframes space-glow{50%{opacity:.45}}.space-plant-leaves{transform-box:fill-box;transform-origin:50% 100%;animation:6s ease-in-out infinite space-sway}@keyframes space-sway{50%{transform:rotate(2.5deg)}}.space-glow{animation:4s ease-in-out infinite space-lamp}@keyframes space-lamp{50%{opacity:.32}}.space-item{transition:transform .2s cubic-bezier(.3,1.4,.5,1),border-color .2s,background-color .2s}.space-item:not(.space-item-locked):active{transform:scale(.95)}.space-item-new{animation:2.6s ease-in-out infinite badge-shine}}.ghost-view{grid-template-columns:repeat(2,1fr)}.demo{flex-direction:column;gap:.45rem;margin:0;display:flex}.demo-frame{aspect-ratio:4/3;background:#111;border-radius:18px;position:relative;overflow:hidden}.demo-video{object-fit:cover;cursor:pointer;width:100%;height:100%;display:block}.demo-controls{gap:.4rem;display:flex;position:absolute;bottom:.6rem;right:.6rem}.demo-btn{color:#221b33;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffe0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 4px 14px #00000040}.demo-btn-on{background:var(--accent);color:var(--accent-ink)}.demo-speed{color:#fff;background:#0000008c;border-radius:99px;padding:.15rem .55rem;font-size:.78rem;font-weight:700;position:absolute;top:.7rem;left:.7rem}.demo figcaption{flex-direction:column;gap:.2rem;display:flex}.demo-note{color:var(--ink);border-left:3px solid var(--estimate);padding-left:.55rem;font-size:.88rem}.demo-credit{color:var(--ink-soft);font-size:.75rem}.lib-video{letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border-radius:99px;flex:none;padding:.1rem .5rem;font-size:.7rem;font-weight:700}@media (prefers-reduced-motion:no-preference){.demo-btn{transition:transform .18s cubic-bezier(.3,1.4,.5,1)}.demo-btn:active{transform:scale(.88)}}.toggle>span{flex-direction:column;display:flex}.toggle small{color:var(--ink-soft);font-size:.85rem;font-weight:400}.update-banner{background:var(--accent-soft);max-width:560px;color:var(--ink);border-radius:14px;flex-wrap:wrap;align-items:center;gap:.45rem;width:calc(100% - 2rem);margin:.25rem auto 0;padding:.55rem .9rem;font-size:.9rem;display:flex}.update-banner .link{font:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-weight:700}.install{align-items:center;gap:.9rem;padding-top:.75rem;display:flex}.install>span{flex-direction:column;flex:1;display:flex}.install small{color:var(--ink-soft);font-size:.85rem}.friends{background:var(--surface);border:1px solid var(--line);border-radius:24px;flex-direction:column;gap:.85rem;padding:1rem 1.1rem 1.1rem;display:flex}.friends-head{align-items:flex-start;gap:.75rem;display:flex}.friends-head p{color:var(--ink-soft);font-size:.92rem}.friends-icon{background:color-mix(in srgb, #2f8f7b 16%, var(--surface));width:40px;height:40px;color:var(--reported);border-radius:13px;flex:none;place-items:center;display:grid}.friends-rules{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.friends-rules>div{background:var(--well);border-radius:14px;padding:.7rem .75rem}.friends-rules h3{font-size:.85rem;font-family:var(--font-body);margin-bottom:.35rem;font-weight:700}.friends-rules ul{color:var(--ink-soft);flex-direction:column;gap:.3rem;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex}.friends-rules li{align-items:flex-start;gap:.35rem;display:flex}.friends-rules svg{flex:none;margin-top:.2rem}.friends-rules>div:first-child svg{color:var(--reported)}.friends-actions{flex-wrap:wrap;gap:.45rem;display:flex}.friends-actions .filter-chip{gap:.35rem}.friends-empty{color:var(--ink-soft);font-size:.9rem}.friends-off-link{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.88rem}.invite{background:var(--surface);border:1px dashed color-mix(in srgb, var(--accent) 40%, var(--line));text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:.45rem;padding:1rem;display:flex}.invite-label{color:var(--ink-soft);font-size:.8rem;font-weight:700}.invite-code{font-family:var(--font-display);letter-spacing:.12em;font-variant-numeric:tabular-nums;font-size:2rem}.invite-help{color:var(--ink-soft);font-size:.85rem}.invite-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem;display:flex}.invite-actions .button{gap:.35rem;min-height:40px;padding:0 1rem}.invite-actions .link{font:inherit;cursor:pointer;background:0 0;border:0;font-size:.88rem}.add-friend{flex-direction:column;gap:.6rem;display:flex}.add-friend input{text-transform:uppercase;letter-spacing:.12em;font-variant-numeric:tabular-nums}.cheers-in{background:color-mix(in srgb, #f4c542 14%, var(--surface));border-radius:14px;flex-direction:column;gap:.25rem;margin:0;padding:.6rem .75rem;font-size:.92rem;list-style:none;display:flex}.cheers-in li{justify-content:space-between;gap:.5rem;display:flex}.friend-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.friend{background:var(--well);border-radius:16px;grid-template-columns:72px 1fr;align-items:center;gap:.75rem;padding:.6rem;display:grid}.friend-portrait{width:72px;height:60px}.friend-away{fill:var(--line)}.friend-main{flex-direction:column;gap:.35rem;min-width:0;display:flex}.friend-top{align-items:center;gap:.45rem;display:flex}.friend-top b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.friend-level{color:var(--accent-ink);background:var(--accent);white-space:nowrap;border-radius:99px;padding:.05rem .5rem;font-size:.75rem;font-weight:700}.friend-remove{width:30px;height:30px;margin-left:auto}.friend-badges{flex-wrap:wrap;gap:.3rem;display:flex}.friend-badges span{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:.05rem .5rem;font-size:.72rem;font-weight:650}.cheer-row{gap:.3rem;display:flex}.cheer{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;place-items:center;width:38px;height:38px;font-size:1.1rem;display:grid}.cheer-sent,.cheer-sent:disabled{background:var(--accent-soft);border-color:var(--accent);cursor:default;opacity:1}@media (width<=380px){.friends-rules{grid-template-columns:1fr}}@media (prefers-reduced-motion:no-preference){.cheer{transition:transform .2s cubic-bezier(.3,1.6,.5,1)}.cheer:not(:disabled):active{transform:scale(1.35)rotate(-8deg)}.cheer-sent{animation:.45s cubic-bezier(.3,1.6,.5,1) cheer-pop}@keyframes cheer-pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}to{transform:scale(1)}}}.admin-pill{letter-spacing:.02em;color:#fff;background:linear-gradient(90deg,#7d3c98,#2f8f7b);border-radius:99px;align-self:flex-start;padding:.2rem .7rem;font-size:.78rem;font-weight:700}.settings{flex-direction:column;gap:1rem;display:flex}.set-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.set-title{align-items:center;gap:.6rem;padding:.85rem 1rem .4rem;font-size:1.02rem;display:flex}.set-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.set-body{flex-direction:column;padding:0 1rem .6rem;display:flex}.set-body>.toggle:last-child,.set-body>.set-row:last-child{border-bottom:0}.set-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.9rem;min-height:58px;padding:.5rem 0;font-weight:600;display:flex}.set-row>span{flex-direction:column;display:flex}.set-row>span svg{vertical-align:-2px;margin-right:.2rem;display:inline}.set-row small,.set-help{color:var(--ink-soft);font-size:.85rem;font-weight:400}.set-help{padding:.25rem 0 .5rem}.set-row .units-seg{flex:none;grid-template-columns:repeat(2,64px)}.set-row .filter-select{max-width:48%}.set-link{color:var(--accent);padding:.7rem 0 .4rem;font-size:.92rem;font-weight:650;text-decoration:none}.set-signout{align-self:flex-start;gap:.4rem}.toggle>span svg{vertical-align:-2px;margin-right:.2rem;display:inline}.settings-link{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);color:var(--ink);align-items:center;gap:.85rem;margin-top:1rem;padding:.95rem 1rem;text-decoration:none;display:flex}.settings-link>span:nth-child(2){flex-direction:column;flex:1;display:flex}.settings-link small{color:var(--ink-soft);font-size:.88rem}.settings-link-icon{background:var(--accent);width:42px;height:42px;color:var(--accent-ink);border-radius:13px;flex:none;place-items:center;display:grid}.topbar-actions a.icon-button{color:var(--ink-soft)}@media (prefers-reduced-motion:no-preference){.settings-link-icon svg{transition:transform .6s cubic-bezier(.3,1.4,.5,1)}.settings-link:hover .settings-link-icon svg,.settings-link:focus-visible .settings-link-icon svg{transform:rotate(90deg)}}.followers{flex-direction:column;gap:.7rem;display:flex}.follow-stats{grid-template-columns:repeat(3,1fr);gap:.4rem;display:grid}.follow-stat{border:1px solid var(--line);background:var(--well);color:var(--ink);font:inherit;cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:.05rem;padding:.6rem .4rem;display:flex}div.follow-stat{cursor:default}.follow-stat b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.45rem;line-height:1.1}.follow-stat span{color:var(--ink-soft);font-size:.78rem;font-weight:650}.follow-stat.on{border-color:color-mix(in srgb, var(--tone,var(--accent)) 60%, var(--line));box-shadow:0 0 18px -8px var(--tone,var(--accent))}.follow-stat.on b{color:var(--tone,var(--accent))}.follow-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.follow-row{border-radius:14px;grid-template-columns:56px 1fr auto auto;align-items:center;gap:.4rem;padding:.3rem .3rem .3rem .1rem;display:grid}.follow-row .friend-portrait{width:56px;height:46px}.follow-name{flex-direction:column;min-width:0;display:flex}.follow-name b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.follow-name small{color:var(--ink-soft);font-size:.8rem}.visit-meta{color:var(--ink-soft);font-size:.9rem}@media (prefers-reduced-motion:no-preference){.follow-stat{transition:transform .25s cubic-bezier(.3,1.6,.5,1),box-shadow .25s}.follow-stat:active{transform:scale(.95)}}.quote{border-radius:var(--radius-card);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--surface)), var(--surface) 70%);border:1px solid var(--line);margin:0 0 1rem;padding:1rem 1.1rem .7rem;position:relative;overflow:hidden}.quote-mark{color:var(--accent);opacity:.16;width:34px;height:34px;position:absolute;top:.8rem;right:.9rem}.quote blockquote{font-family:var(--font-display);max-width:30ch;margin:0;padding-right:2.6rem;font-size:1.12rem;font-weight:600;line-height:1.35}.quote figcaption{color:var(--ink-soft);justify-content:space-between;align-items:center;margin-top:.45rem;font-size:.75rem;font-weight:700;display:flex}.quote-share{width:32px;height:32px}.orb{z-index:9;right:max(16px,50vw - 264px);bottom:calc(var(--tab-height) + env(safe-area-inset-bottom) + 14px);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--accent) 22%, var(--surface)), var(--surface) 70%);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));width:64px;height:64px;box-shadow:0 10px 28px -8px color-mix(in srgb, var(--accent) 55%, transparent), 0 2px 6px #0000001f;color:var(--ink);border-radius:50%;place-items:center;text-decoration:none;display:grid;position:fixed}.orb svg{width:calc(100% - 6px);height:calc(100% - 6px);position:absolute;inset:3px}.orb-track{fill:none;stroke:color-mix(in srgb, var(--ink) 8%, transparent);stroke-width:2.2px}.orb-fill{fill:none;stroke-width:2.2px;stroke-linecap:round}.orb-level{font-family:var(--font-display);font-size:.85rem;line-height:1;position:relative}.orb-small{opacity:.85;transform:scale(.72)translateY(10px)}.screen:has(.orb){padding-bottom:calc(var(--tab-height) + 96px)}@media (prefers-reduced-motion:no-preference){.quote-mark{animation:6s ease-in-out infinite quote-float}@keyframes quote-float{50%{transform:translateY(-4px)rotate(-4deg)}}.orb{transition:transform .35s cubic-bezier(.3,1.4,.5,1),opacity .3s;animation:.6s cubic-bezier(.3,1.4,.5,1) .5s both orb-in,4s ease-in-out 1.2s infinite orb-glow}@keyframes orb-in{0%{opacity:0;transform:scale(0)rotate(-90deg)}}@keyframes orb-glow{50%{box-shadow:0 10px 34px -6px color-mix(in srgb, var(--accent) 75%, transparent), 0 2px 6px #0000001f}}.orb-fill{animation:1.2s cubic-bezier(.2,.8,.2,1) both core-draw;animation-delay:calc(.7s + var(--i,0) * .1s)}.orb:active{transform:scale(.9)}}.space-pet-open{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:var(--accent-soft);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;align-self:center;padding:0 1.1rem;font-size:.92rem;font-weight:650}.pet-stage{flex-direction:column;align-items:center;display:flex;position:relative}.pet-hit{aspect-ratio:3/2;cursor:pointer;background:radial-gradient(circle at 50% 70%, color-mix(in srgb, var(--accent) 22%, var(--surface)), var(--surface) 72%);border:0;border-radius:24px;width:100%;max-width:320px;position:relative;overflow:hidden}.pet-hit>svg{width:100%;height:100%}.pet-floor{fill:#0000001a}.pet-heart{color:#e05a7a;fill:#e05a7a;pointer-events:none;opacity:0;position:absolute;bottom:30%;width:22px!important;height:22px!important}.pet-hint{color:var(--ink-soft);margin-top:.25rem;font-size:.8rem}.pet-bond{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.9rem;display:flex}.pet-bond-level{color:#fff;background:linear-gradient(90deg,#e05a7a,#b0457f);border-radius:99px;align-items:center;gap:.3rem;padding:.15rem .65rem;font-weight:700;display:inline-flex}.pet-today{background:var(--well);border-radius:16px;flex-direction:column;gap:.5rem;padding:.8rem .9rem;display:flex}.pet-today h3,.pet-h{font-size:.8rem;font-family:var(--font-body);color:var(--ink-soft);align-items:center;gap:.35rem;font-weight:700;display:flex}.pet-today p{font-weight:600}.pet-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.pet-actions .button{gap:.35rem;min-height:40px;padding:0 1rem}.pet-actions .filter-chip{gap:.3rem}.pet-tricks{flex-wrap:wrap;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.pet-trick-btn{border:1.5px solid var(--accent);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:99px;align-items:center;gap:.3rem;padding:0 1rem;font-weight:650;display:inline-flex}.pet-trick-locked{border-style:dashed;border-color:var(--line);color:var(--ink-soft);cursor:default}.pet-moments{border-left:2px solid var(--accent-soft);flex-direction:column;gap:.55rem;margin:.4rem 0 0;padding:0 0 0 .9rem;list-style:none;display:flex}.pet-moments li{position:relative}.pet-moments li:before{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:.35rem;left:calc(-.9rem - 6px)}.pet-moments span{color:var(--ink-soft);font-size:.78rem;font-weight:700}.pet-moments p{font-size:.92rem}.pet-note{color:var(--ink-soft);font-size:.82rem}.pet-trick{transform-box:fill-box;transform-origin:50% 100%}@media (prefers-reduced-motion:no-preference){.pet-heart{animation:1.2s ease-out forwards pet-heart}@keyframes pet-heart{0%{opacity:0;transform:translateY(0)scale(.6)}20%{opacity:1}to{opacity:0;transform:translateY(-90px)scale(1.2)rotate(-12deg)}}.pet-hit:active .pet-trick{animation:.35s pet-squish}@keyframes pet-squish{40%{transform:scale(1.12,.88)}}.pet-trick-hop{animation:.7s cubic-bezier(.3,1.4,.5,1) pet-hop}@keyframes pet-hop{40%{transform:translateY(-18px)scale(.95,1.06)}70%{transform:translateY(0)scale(1.08,.92)}}.pet-trick-spin{transform-origin:50% 60%;animation:.9s cubic-bezier(.4,0,.2,1) pet-spin}@keyframes pet-spin{to{transform:rotate(360deg)}}.pet-trick-wave{animation:1s ease-in-out pet-wave}@keyframes pet-wave{20%,60%{transform:rotate(-10deg)}40%,80%{transform:rotate(10deg)}}.pet-trick-dance{animation:1.4s ease-in-out pet-dance}@keyframes pet-dance{15%,55%{transform:translate(-10px)translateY(-6px)rotate(-8deg)}35%,75%{transform:translate(10px)translateY(-6px)rotate(8deg)}}.pet-trick-flip{transform-origin:50%;animation:1s cubic-bezier(.4,0,.2,1) pet-flip}@keyframes pet-flip{50%{transform:translateY(-28px)rotate(180deg)}to{transform:translateY(0)rotate(360deg)}}.space-pet-open{transition:transform .2s cubic-bezier(.3,1.4,.5,1)}.space-pet-open:active{transform:scale(.95)}}.avatar-face{border-radius:50%;display:block}.avatar-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;position:relative}.profile-face{width:76px;height:76px;box-shadow:0 6px 18px -8px color-mix(in srgb, var(--accent) 60%, transparent)}.avatar-edit{background:var(--accent);width:26px;height:26px;color:var(--accent-ink);border:2px solid var(--bg);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-2px;right:-2px}.avatar-cta{font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:.2rem;padding:0;font-weight:650}.today-face{flex:none;width:44px;height:44px}.avb-stage{flex-direction:column;align-items:center;gap:.6rem;display:flex}.avb-preview{width:min(220px,56vw)}.avb-face{width:100%;height:auto;box-shadow:0 16px 40px -18px color-mix(in srgb, var(--accent) 70%, transparent)}.avb-tools{gap:.45rem;display:flex}.avb-tabs{scrollbar-width:none;gap:.4rem;margin:0 -1rem;padding:.1rem 1rem .3rem;display:flex;overflow-x:auto}.avb-tabs::-webkit-scrollbar{display:none}.avb-part{flex-direction:column;gap:.2rem;display:flex}.avb-options{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.avb-option{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:.2rem;padding:.35rem .2rem .45rem;font-size:.74rem;font-weight:650;display:flex}.avb-mini{width:58px;height:58px}.avb-on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.avb-colours{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.avb-swatch{border:2px solid var(--line);cursor:pointer;border-radius:50%;width:40px;height:40px}.avb-swatch.avb-on{border-color:var(--surface);box-shadow:0 0 0 3px var(--accent)}@media (prefers-reduced-motion:no-preference){.avb-preview{animation:.35s cubic-bezier(.3,1.5,.5,1) avb-pop}@keyframes avb-pop{40%{transform:scale(1.05)rotate(-2deg)}}.avb-face .av-body{transform-box:view-box;transform-origin:50% 100%;animation:4s ease-in-out infinite av-breathe}@keyframes av-breathe{50%{transform:scale(1.012,.992)}}.avatar-face .av-eyes{transform-box:fill-box;transform-origin:50%;animation:5.5s infinite av-blink}@keyframes av-blink{0%,93%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.avb-option,.avb-swatch{transition:transform .2s cubic-bezier(.3,1.4,.5,1)}.avb-option:active,.avb-swatch:active{transform:scale(.92)}.avatar-btn{transition:transform .25s cubic-bezier(.3,1.4,.5,1)}@media (hover:hover){.avatar-btn:hover{transform:rotate(-4deg)scale(1.04)}}}.today-head{flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem}.today-face-link{border-radius:50%;flex:none}.voice{border:1px solid var(--line);background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 14%, var(--surface)), var(--surface) 65%);border-radius:24px;flex-direction:column;gap:.6rem;margin-bottom:1rem;padding:1rem 1.1rem .9rem;display:flex}.voice-head{align-items:center;gap:.65rem;display:flex}.voice-head h2{font-size:1.3rem}.voice-wave{background:var(--accent);border-radius:99px;align-items:center;gap:3px;height:26px;padding:0 .5rem;display:inline-flex}.voice-wave i{background:var(--accent-ink);border-radius:2px;width:3px;height:8px;display:block}.voice-wave i:nth-child(2),.voice-wave i:nth-child(4){height:14px}.voice-wave i:nth-child(3){height:18px}.voice-lines{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.voice-lines li{border-left:2px solid color-mix(in srgb, var(--accent) 35%, transparent);flex-direction:column;align-items:flex-start;gap:.25rem;padding-left:.75rem;display:flex}.voice-lines p{font-size:1rem;line-height:1.45}.voice-lines .tag{min-height:22px;padding:0 .55rem;font-size:.72rem}@media (prefers-reduced-motion:no-preference){.voice-wave i{animation:1.2s ease-in-out infinite voice-talk;animation-delay:calc(var(--i,0) * .12s);transform-origin:50%}@keyframes voice-talk{50%{transform:scaleY(.4)}}.voice-lines li{animation:.6s cubic-bezier(.2,.8,.2,1) both voice-in;animation-delay:calc(.25s + var(--i,0) * .45s)}@keyframes voice-in{0%{opacity:0;filter:blur(3px);transform:translateY(6px)}}}.goal-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.goal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.5rem;padding:.75rem .9rem;display:flex}.goal-done{border-color:color-mix(in srgb, var(--reported) 45%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--reported) 10%, var(--surface)), var(--surface) 70%)}.goal-top{align-items:center;gap:.8rem;display:flex}.goal-main{flex-direction:column;flex:1;min-width:0;display:flex}.goal-main span{color:var(--ink-soft);font-size:.88rem}.goal-chev{transition:transform .25s}.goal-chev-open{transform:rotate(180deg)}.goal-ring{flex:none;overflow:visible}.goal-ring-track{fill:none;stroke:var(--accent-soft);stroke-width:5px}.goal-ring-fill{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round}.goal-ring-done .goal-ring-fill{stroke:var(--reported)}.goal-ring text{font:700 10px var(--font-body);fill:var(--ink);text-anchor:middle}.goal-ring-tick{fill:none;stroke:var(--reported);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.goal-tally{background:var(--well);border-radius:99px;align-self:flex-start;align-items:center;gap:.5rem;padding:.15rem;display:flex}.goal-tally b{text-align:center;min-width:2rem;font-family:var(--font-display);font-size:1.1rem}.goal-plus{background:var(--accent);color:var(--accent-ink);border-radius:50%}.goal-plan{border-top:1px solid var(--line);flex-direction:column;gap:.45rem;padding-top:.55rem;display:flex}.goal-plan h4{color:var(--ink-soft);margin:0;font-size:.78rem}.goal-plan ul{flex-direction:column;gap:.3rem;margin:0;padding-left:1.1rem;font-size:.93rem;display:flex}.goal-actions{flex-wrap:wrap;gap:.4rem;display:flex}.goal-actions .filter-chip{gap:.3rem}.goal-add{gap:.4rem;width:100%;margin:.75rem 0 1rem}.goals-empty h2{font-size:1.1rem}.goals-achieved{margin-bottom:1rem}.goals-achieved h2{margin-bottom:.35rem;font-size:1rem}.goals-achieved ul{color:var(--ink-soft);margin:0;padding-left:1.1rem}.goal-templates{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.goal-template{text-align:left;border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;cursor:pointer;border-radius:16px;flex-direction:column;gap:.15rem;padding:.75rem .9rem;display:flex}.goal-template span{color:var(--ink-soft);font-size:.86rem}.goal-form{flex-direction:column;gap:.75rem;display:flex}.goals-strip{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);color:var(--ink);align-items:center;gap:.75rem;margin-bottom:1rem;padding:.8rem 1rem;text-decoration:none;display:flex}.goals-strip-head{flex-direction:column;flex:1;display:flex}.goals-strip-head small{color:var(--ink-soft);font-size:.84rem}.goals-strip-rings{gap:.2rem;display:flex}.goals-strip-cta{color:var(--accent);white-space:nowrap;font-weight:700}.coach{border:1px solid var(--line);background:var(--surface);border-radius:24px;flex-direction:column;margin-top:.5rem;display:flex;overflow:hidden}.coach-head{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, var(--surface)), var(--surface) 75%);align-items:flex-start;gap:.7rem;padding:.9rem 1rem .6rem;display:flex}.coach-head p{color:var(--ink-soft);font-size:.82rem}.coach-icon{background:var(--accent);width:36px;height:36px;color:var(--accent-ink);border-radius:12px;flex:none;place-items:center;display:grid}.coach-log{flex-direction:column;gap:.5rem;max-height:420px;padding:.6rem .8rem;display:flex;overflow-y:auto}.bubble{border-radius:18px;flex-direction:column;gap:.3rem;max-width:86%;padding:.55rem .8rem;font-size:.94rem;display:flex}.bubble-coach{background:var(--well);border-bottom-left-radius:6px;align-self:flex-start}.bubble-you{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:6px;align-self:flex-end}.coach-chips{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.coach-chips .filter-chip{min-height:32px;font-size:.8rem}.coach-input{border-top:1px solid var(--line);gap:.4rem;padding:.6rem .8rem .8rem;display:flex}.coach-input input{border:1.5px solid var(--line);background:var(--well);min-height:44px;color:var(--ink);font:inherit;border-radius:99px;flex:1;padding:0 1rem}.coach-input input:focus{border-color:var(--accent);outline:none}.coach-send{background:var(--accent);width:44px;height:44px;color:var(--accent-ink);border-radius:50%}.coach-send:disabled{opacity:.4}@media (prefers-reduced-motion:no-preference){.goal-ring-fill{animation:1s cubic-bezier(.2,.8,.2,1) both core-draw;animation-delay:calc(.2s + var(--i,0) * 80ms)}.goal-ring-tick{stroke-dasharray:30;animation:.5s .6s both goal-tick}@keyframes goal-tick{0%{stroke-dashoffset:30px}}.goal-template{transition:transform .2s cubic-bezier(.3,1.4,.5,1),border-color .2s}.goal-template:active{transform:scale(.97)}.bubble{animation:.35s cubic-bezier(.2,.8,.2,1) both bubble-in}.bubble-coach{transform-origin:0 100%}.bubble-you{transform-origin:100% 100%}@keyframes bubble-in{0%{opacity:0;transform:scale(.85)translateY(6px)}}.goal-plus{transition:transform .2s cubic-bezier(.3,1.6,.5,1)}.goal-plus:active{transform:scale(1.25)}}.run-hero{color:#fff;background:linear-gradient(135deg,#1f6b5c,#2f8f7b 55%,#5a9fd6);border-radius:24px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem 1.1rem;display:flex;box-shadow:0 14px 30px -18px #1f6b5c}.run-hero>div{flex-direction:column;display:flex}.run-hero span{opacity:.8;font-size:.78rem;font-weight:700}.run-hero b{font-family:var(--font-display);font-size:2rem;line-height:1.1}.run-hero small{opacity:.85}.run-record{color:#1f6b5c;background:#fff;flex:none;gap:.4rem}.steps-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.7rem;margin-bottom:1rem;padding:1rem 1.1rem;display:flex}.steps-card h2{align-items:center;gap:.4rem;display:flex}.steps-avg{color:var(--ink-soft);font-size:.85rem}.steps-entry{align-items:center;gap:.5rem;display:flex}.steps-entry input{text-align:center;min-width:0;font-family:var(--font-display);border:0;border-bottom:2px solid var(--line);color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;flex:1;padding:.2rem;font-size:1.8rem;font-weight:700}.steps-entry input:focus{border-color:var(--accent);outline:none}.steps-plus{background:var(--accent);color:var(--accent-ink);border-radius:50%}.steps-bars{width:100%;height:auto}.steps-bar{fill:var(--accent-soft)}.steps-bar-today{fill:var(--accent)}.steps-bars text{font:600 10px var(--font-body);fill:var(--ink-soft);text-anchor:middle}.steps-note{color:var(--ink-soft);font-size:.82rem}.run-list{flex-direction:column;gap:.5rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.run-row{background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:center;gap:.75rem;padding:.6rem .7rem;display:flex}.run-shape{background:color-mix(in srgb, #2f8f7b 12%, var(--surface));border-radius:14px;flex:none;width:56px;height:56px}.run-shape path{fill:none;stroke:#2f8f7b;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.run-shape circle{fill:none;stroke:#2f8f7b66;stroke-width:4px;stroke-dasharray:4 6}.run-main{flex-direction:column;flex:1;min-width:0;display:flex}.run-main span{color:var(--ink-soft);font-size:.86rem}.run-main .run-splits{font-size:.76rem}.runrec{padding-top:calc(env(safe-area-inset-top) + .5rem);flex-direction:column;gap:1rem;display:flex}.runrec-bar{align-items:center;gap:.4rem;display:flex}.runrec-bar h1{font-size:1.5rem}.runrec-kind{grid-template-columns:repeat(3,1fr)}.runrec-stage{background:radial-gradient(circle at 50% 30%, color-mix(in srgb, #2f8f7b 18%, var(--surface)), var(--surface) 70%);border:1px solid var(--line);border-radius:28px;grid-template-columns:1fr;place-items:center;gap:.6rem;padding:1rem;display:grid}.runrec-shape{width:min(220px,60vw);height:auto;overflow:visible}.runrec-shape path{fill:none;stroke:#2f8f7b;stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.runrec-ghost{fill:none;stroke:#2f8f7b59;stroke-width:3px;stroke-dasharray:3 7}.runrec-pulse{fill:none;stroke:#2f8f7b;stroke-width:1px;opacity:0}.runrec-stats{flex-direction:column;align-items:center;gap:.6rem;width:100%;display:flex}.runrec-big{align-items:baseline;gap:.35rem;display:flex}.runrec-big b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:4rem;line-height:1}.runrec-big span{color:var(--ink-soft);font-weight:700}.runrec-stats dl{text-align:center;grid-template-columns:repeat(3,1fr);gap:.4rem;width:100%;margin:0;display:grid}.runrec-stats dt{color:var(--ink-soft);font-size:.75rem}.runrec-stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.runrec-go{color:#fff;background:#2f8f7b;border-radius:99px;gap:.5rem;min-height:64px;font-size:1.15rem}.runrec-controls{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.runrec-controls .button{gap:.4rem;min-height:56px}.runrec-privacy{color:var(--ink-soft);font-size:.82rem}.runrec-privacy svg{vertical-align:-2px}.runrec-done{flex-direction:column;gap:.8rem;display:flex}.runrec-q{border:0;flex-direction:column;gap:.45rem;margin:0;padding:0;display:flex}.runrec-q legend{margin-bottom:.4rem;padding:0;font-weight:650}@media (prefers-reduced-motion:no-preference){.run-shape path{stroke-dasharray:400;animation:1.4s both run-draw}@keyframes run-draw{0%{stroke-dashoffset:400px}}.steps-bar{transform-box:fill-box;transform-origin:bottom;animation:.8s cubic-bezier(.2,.8,.2,1) both mode-bar;animation-delay:calc(var(--i,0) * 60ms)}.runrec-recording .runrec-pulse{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite run-pulse}@keyframes run-pulse{0%{opacity:.6;transform:scale(.6)}to{opacity:0;transform:scale(1.15)}}.runrec-go{animation:2.4s ease-in-out infinite run-go}@keyframes run-go{50%{box-shadow:0 0 0 10px #2f8f7b2e}}}.chat-open{color:var(--accent);position:relative}.chat-badge{color:#fff;background:#e05a7a;border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.68rem;font-weight:700;display:grid;position:absolute;top:-4px;right:-4px}.chat .studio-bar{grid-template-columns:auto 1fr auto}.chat-bar h2{font-size:1.1rem}.chat-bar-actions{gap:.2rem;display:flex}.chat-blocking{color:#c0392b;background:#c0392b1f}.chat-log{flex-direction:column;flex:1;gap:.35rem;width:100%;max-width:560px;margin:0 auto;padding:.8rem 1rem;display:flex;overflow-y:auto}.chat-item{flex-direction:column;display:flex}.chat-day{color:var(--ink-soft);align-self:center;margin:.6rem 0 .2rem;font-size:.75rem;font-weight:700}.chat-bubble{font:inherit;text-align:left;cursor:pointer;border:0}.chat-bubble small{opacity:.7;align-self:flex-end;font-size:.68rem}.bubble-you.chat-bubble{align-self:flex-end}.bubble-coach.chat-bubble{color:var(--ink);background:var(--surface);border:1px solid var(--line);align-self:flex-start}.chat-safety{background:color-mix(in srgb, var(--reported) 12%, var(--surface));color:var(--ink);border-radius:16px;flex-wrap:wrap;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;padding:.75rem .9rem;font-size:.88rem;display:flex}.chat-safety svg{color:var(--reported);flex:none}.chat-safety p{flex:200px}.chat-safety .link{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.chat-empty{color:var(--ink-soft);text-align:center;margin-top:2rem}.chat-input{width:100%;max-width:560px;padding-bottom:calc(env(safe-area-inset-bottom) + .8rem);margin:0 auto}.chat-quote{border-left:3px solid var(--accent);background:var(--well);border-radius:8px;margin:0;padding:.6rem .8rem}.admin-reports{flex-direction:column;gap:.4rem;padding:.6rem 0;display:flex}.admin-reports ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.admin-reports li{background:var(--well);border-radius:12px;flex-direction:column;gap:.2rem;padding:.55rem .7rem;font-size:.88rem;display:flex}.admin-reports li>span{font-weight:700}.admin-reports small{color:var(--ink-soft)}@media (prefers-reduced-motion:no-preference){.chat-badge{animation:.45s cubic-bezier(.3,1.6,.5,1) cheer-pop}}body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .4 0 0 0 0 .5 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-attachment:fixed}.mode-kicker,.studio-label,.space-group legend,.invite-label,.pet-today h3,.pet-h,.goal-plan h4,.quote figcaption{color:var(--accent);letter-spacing:0;font-weight:650}.quote{background:var(--surface);border-color:#0000;border-left:3px solid var(--accent);border-radius:6px var(--radius-card) var(--radius-card) 6px}.page-head h1.display{align-self:flex-start;padding-bottom:.45rem;position:relative}.page-head h1.display:after{content:"";background:var(--accent);width:min(3.4em,100%);height:9px;position:absolute;bottom:0;left:.04em;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6.5C14 1.5 22 1.5 32 5.2S50 9.6 62 5S82 0.8 94 4.6S112 8.4 118 4' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6.5C14 1.5 22 1.5 32 5.2S50 9.6 62 5S82 0.8 94 4.6S112 8.4 118 4' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") 50%/100% 100% no-repeat}@media (prefers-reduced-motion:no-preference){.page-head h1.display:after{animation:.9s cubic-bezier(.6,0,.2,1) .35s both tide-draw}@keyframes tide-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.page-forward{animation:.55s cubic-bezier(.3,.7,.2,1) tide-in-right}.page-back{animation:.55s cubic-bezier(.3,.7,.2,1) tide-in-left}@keyframes tide-in-right{0%{clip-path:ellipse(0% 120% at 100% 40%);transform:translate(14px)}to{clip-path:ellipse(160% 160% at 100% 40%);transform:none}}@keyframes tide-in-left{0%{clip-path:ellipse(0% 120% at 0 40%);transform:translate(-14px)}to{clip-path:ellipse(160% 160% at 0 40%);transform:none}}}:root[data-theme=dark]{--bg:#0c0918;--surface:#161029;--surface-2:#1e1838;--line:#c4b2ff24;--ink:#f5f1ff;--ink-soft:#ada5cc;--accent:#f6a3dc;--accent-ink:#2a0c24;--accent-soft:#f6a3dc24;--glass:#18122e99;--glass-edge:#ffffff12;--shadow-deep:0 24px 48px -28px #000000d9;--aurora-alpha:.55;--well:#cdbeff12}:root[data-theme=light]{--bg:#f2eff8;--surface:#fff;--surface-2:#f7f4fc;--glass:#ffffffb8;--glass-edge:#ffffffe6;--shadow-deep:0 22px 40px -28px #3c1e6e59;--aurora-alpha:.3;--well:#f2eff8}.shell{--tone:#f6a3dc;--tone-2:#a98bff;--tone-ink:#22091d}.shell[data-tone=volt]{--tone:#8c9cff;--tone-2:#5ee7ff;--tone-ink:#0b1030}.shell[data-tone=aqua]{--tone:#5ee7d0;--tone-2:#7cc4ff;--tone-ink:#062722}.shell[data-tone=amber]{--tone:#ffc46b;--tone-2:#ff8f7a;--tone-ink:#2b1503}.shell[data-tone=aurora]{--tone:#b49aff;--tone-2:#5ee7d0;--tone-ink:#150b33}.shell[data-tone=iris]{--tone:#a98bff;--tone-2:#f6a3dc;--tone-ink:#150b33}:root[data-theme=light] .shell{--tone:#b0457f;--tone-2:#7d3cc8;--tone-ink:#fff}:root[data-theme=light] .shell[data-tone=volt]{--tone:#4b5bdc;--tone-2:#0a8fb8}:root[data-theme=light] .shell[data-tone=aqua]{--tone:#0f8a7e;--tone-2:#2f6fd0}:root[data-theme=light] .shell[data-tone=amber]{--tone:#c26a0a;--tone-2:#c8463a}:root[data-theme=light] .shell[data-tone=aurora]{--tone:#6a43cf;--tone-2:#0f8a7e}:root[data-theme=light] .shell[data-tone=iris]{--tone:#6a43cf;--tone-2:#b0457f}.shell:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(40% 45% at 22% 30%, color-mix(in srgb, var(--tone) calc(var(--aurora-alpha) * 100%), transparent), transparent 70%), radial-gradient(38% 40% at 78% 18%, color-mix(in srgb, var(--tone-2) calc(var(--aurora-alpha) * 90%), transparent), transparent 70%);filter:blur(30px);height:90vh;transition:background .8s;position:fixed;inset:-25% -25% auto}.score-hero{background:radial-gradient(120% 90% at 85% 0%, color-mix(in srgb, var(--tone-2) 70%, transparent), transparent 60%), linear-gradient(145deg, var(--tone), color-mix(in srgb, var(--tone) 55%, var(--tone-2)));color:var(--tone-ink);box-shadow:0 26px 60px -26px var(--tone), inset 0 1px 0 #fff6}.card,.space,.set-group,.goal,.quote,.voice,.core,.friends,.today-card{background:var(--glass);border-color:var(--line);box-shadow:inset 0 1px 0 var(--glass-edge), var(--shadow-deep);-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%)}.button:not(.button-quiet):not(.button-light):not(.button-danger){background:linear-gradient(135deg, var(--tone), var(--tone-2));color:var(--tone-ink);box-shadow:0 10px 26px -12px var(--tone), inset 0 1px 0 #ffffff59}.button-quiet{background:color-mix(in srgb, var(--surface-2) 60%, transparent)}.wordmark{background:linear-gradient(100deg, var(--ink) 30%, var(--tone) 75%, var(--tone-2));color:#0000;-webkit-background-clip:text;background-clip:text}.topbar .wave{color:var(--tone);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--tone) 60%, transparent))}.page-head h1.display:after{background:linear-gradient(90deg, var(--tone), var(--tone-2))}:focus-visible{outline-color:var(--tone)}.tabbar{left:.75rem;right:.75rem;bottom:calc(env(safe-area-inset-bottom) + .6rem);border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(22px)saturate(160%);backdrop-filter:blur(22px)saturate(160%);box-shadow:inset 0 1px 0 var(--glass-edge), 0 18px 40px -18px #0009;border-radius:26px;max-width:540px;margin:0 auto;padding-bottom:0}.tab[aria-current=page]{color:var(--tone)}.tab[aria-current=page] svg{filter:drop-shadow(0 0 8px color-mix(in srgb, var(--tone) 70%, transparent))}.tab-crest path{stroke:var(--tone)}.screen{padding-bottom:calc(var(--tab-height) + env(safe-area-inset-bottom) + 2.4rem)}@media (prefers-reduced-motion:no-preference){.shell:before{animation:28s ease-in-out infinite alternate aurora-drift}@keyframes aurora-drift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(4%,3%)scale(1.08)}to{transform:translate(-3%,5%)scale(1.02)}}.button:not(.button-quiet){transition:transform .25s cubic-bezier(.3,1.6,.5,1),box-shadow .25s}.button:not(.button-quiet):active{box-shadow:0 4px 14px -8px var(--tone);transform:scale(.95)}}a,button,[role=button],label,summary{-webkit-tap-highlight-color:transparent}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}.cr .cr-bounce,.cr .cr-eyes,.cr .cr-arm-wave,.cr .cr-ear-l,.cr .cr-ear-r,.cr .cr-tail,.cr .cr-shadow,.cr-do{transform-box:fill-box}.cr .cr-bounce{transform-origin:50% 100%}.cr .cr-eyes{transform-origin:50%}.cr .cr-arm-wave{transform-origin:20% 80%}.cr .cr-ear-l{transform-origin:80% 100%}.cr .cr-ear-r{transform-origin:20% 100%}.cr .cr-tail{transform-origin:0 100%}.cr .cr-shadow{transform-origin:50%}.cr-do{transform-origin:50% 100%}.cr-zzz text{font-family:var(--font-display)}.space-pet-tap{cursor:pointer}.space-tap-hint{color:var(--ink-soft);margin-top:-.2rem;font-size:.82rem}.space-room{border-radius:24px 24px 24px 10px;box-shadow:inset 0 -30px 40px -30px #1e0a3c40,0 18px 40px -26px #1e0a3c99}.space-room .space-plant,.space-room .space-lamp,.space-room .space-shelf,.space-room .space-kettle,.space-room .space-telescope,.space-room .space-poster{filter:drop-shadow(0 5px 3px #1e0a3c40)}@media (prefers-reduced-motion:no-preference){.cr .cr-bounce{animation:2.8s cubic-bezier(.45,0,.55,1) infinite cr-breathe}.cr .cr-shadow{animation:2.8s cubic-bezier(.45,0,.55,1) infinite cr-shadow}@keyframes cr-breathe{0%,to{transform:scale(1)}45%{transform:scale(1.035,.965)}70%{transform:scale(.985,1.025)translateY(-1.5px)}}@keyframes cr-shadow{70%{opacity:.28;transform:scaleX(.92)}}.cr .cr-eyes{animation:5.2s infinite cr-blink}.cr-critter .cr-eyes{animation-duration:4.3s}@keyframes cr-blink{0%,93%,to{transform:scaleY(1)}95.5%{transform:scaleY(.08)}}.cr .cr-ear-l{animation:6s ease-in-out infinite cr-ear-l}.cr .cr-ear-r{animation:6s ease-in-out .4s infinite cr-ear-r}@keyframes cr-ear-l{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-12deg)}90%{transform:rotate(4deg)}}@keyframes cr-ear-r{0%,80%,to{transform:rotate(0)}85%{transform:rotate(12deg)}90%{transform:rotate(-4deg)}}.cr .cr-tail{animation:1.8s ease-in-out infinite cr-wag}@keyframes cr-wag{50%{transform:rotate(9deg)}}.cr .cr-arm-wave{animation:9s cubic-bezier(.3,1.5,.5,1) infinite cr-wave}@keyframes cr-wave{0%,82%,to{transform:rotate(0)}85%{transform:rotate(-38deg)}88%{transform:rotate(-12deg)}91%{transform:rotate(-38deg)}94%{transform:rotate(0)}}.cr-resting .cr-bounce{animation-duration:4.6s}.cr-resting .cr-arm-wave,.cr-resting .cr-tail,.cr-resting .cr-ear-l,.cr-resting .cr-ear-r{animation:none}.cr-zzz text{animation:2.6s ease-in-out infinite cr-zzz}.cr-zzz text:nth-child(2){animation-delay:1.3s}@keyframes cr-zzz{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}to{opacity:0;transform:translate(6px,-10px)}}.cr-sparkles path{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite cr-twinkle}.cr-sparkles path:nth-child(2){animation-delay:.8s}@keyframes cr-twinkle{50%{opacity:.5;transform:scale(.5)rotate(45deg)}}.cr-do-hop{animation:.8s cubic-bezier(.3,1.4,.5,1) cr-hop}@keyframes cr-hop{15%{transform:scale(1.15,.85)}45%{transform:translateY(-34px)scale(.9,1.12)}75%{transform:scale(1.12,.88)}}.cr-do-spin{animation:.9s cubic-bezier(.5,0,.3,1.3) cr-spin}@keyframes cr-spin{15%{transform:scale(1.1,.9)}60%{transform:translateY(-14px)rotateY(180deg)}to{transform:rotateY(360deg)}}.cr-do-wave .cr-arm-wave{animation:1.2s cubic-bezier(.3,1.5,.5,1) cr-wave-now}@keyframes cr-wave-now{20%,60%{transform:rotate(-42deg)}40%,80%{transform:rotate(-10deg)}}.cr-do-dance{animation:1.2s ease-in-out cr-dance}@keyframes cr-dance{20%,60%{transform:translate(-8px)rotate(-10deg)scale(1.05,.95)}40%,80%{transform:translate(8px)rotate(10deg)scale(1.05,.95)}}.cr-do-flip{animation:1s cubic-bezier(.4,0,.2,1) cr-flip}@keyframes cr-flip{15%{transform:scale(1.18,.82)}55%{transform:translateY(-42px)rotate(200deg)}85%{transform:translateY(0)rotate(360deg)scale(1.1,.9)}to{transform:rotate(360deg)}}}.cady{z-index:9;left:1.5rem;bottom:calc(env(safe-area-inset-bottom) + .6rem + var(--tab-height) - 34px);pointer-events:none;position:fixed}.cady>*{pointer-events:auto}.cady-open{z-index:31}.cady-peek{cursor:pointer;transform-origin:50% 100%;width:62px;height:66px;filter:drop-shadow(0 6px 10px #14062866) drop-shadow(0 0 14px color-mix(in srgb, var(--tone,#f6a3dc) 40%, transparent));background:0 0;border:0;padding:0;display:block;position:relative;transform:translateY(16px)}.cady-peek svg{width:100%;height:100%;overflow:visible}.cady-open .cady-peek{transform:translateY(-14px)scale(1.06)}.cady-away .cady-peek{opacity:0;transform:translateY(70px)}.cady-news{background:linear-gradient(135deg, var(--tone), var(--tone-2));width:20px;height:20px;color:var(--tone-ink);box-shadow:0 0 0 2px var(--surface), 0 0 14px var(--tone);border-radius:50%;place-items:center;font-size:.8rem;font-weight:900;display:grid;position:absolute;top:-2px;right:-4px}.cady-panel{background:var(--surface);border:1px solid var(--line);width:min(340px,100vw - 28px);color:var(--ink);box-shadow:0 24px 50px -20px #0a041eb3, 0 0 0 1px color-mix(in srgb, var(--tone) 25%, transparent), 0 0 40px -14px var(--tone);transform-origin:10% 100%;border-radius:24px 24px 24px 6px;flex-direction:column;gap:.8rem;padding:1rem 1rem .85rem;display:flex;position:absolute;bottom:82px;left:-.5rem}.cady-panel:after{content:"";background:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 0 5px;width:18px;height:18px;position:absolute;bottom:-9px;left:28px;transform:rotate(45deg)}.cady-speech,.tour-speech{font-family:var(--font-display);font-size:1.06rem;font-weight:600;line-height:1.38}.cady-speech{padding-right:1.8rem}.cady-actions,.tour-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.cady-btn{gap:.35rem;min-height:40px;padding:0 .95rem;font-size:.92rem}.cady-tuck,.tour-skip{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:.3rem;font-size:.82rem}.cady-tuck{margin-left:auto}.cady-close{width:34px;height:34px;position:absolute;top:.45rem;right:.45rem}.cady-dots{gap:5px;margin-right:auto;display:flex}.cady-dots i{background:var(--line);border-radius:99px;width:7px;height:7px;transition:width .4s cubic-bezier(.3,1.5,.5,1),background .3s}.cady-dots i.done{background:color-mix(in srgb, var(--tone) 55%, var(--line))}.cady-dots i.on{background:linear-gradient(90deg, var(--tone), var(--tone-2));width:22px}.tour{z-index:70;position:fixed;inset:0}.tour-hole{pointer-events:none;box-shadow:0 0 0 200vmax #080416b3, 0 0 0 2px var(--tone), 0 0 46px 6px color-mix(in srgb, var(--tone) 45%, transparent);border-radius:24px;position:fixed}.tour-hole-none{width:0;height:0;top:50%;left:50%;box-shadow:0 0 0 200vmax #080416b3}.tour-bubble{background:var(--surface);max-width:420px;color:var(--ink);border:1px solid var(--line);box-shadow:0 30px 60px -24px #000c, 0 0 0 1px color-mix(in srgb, var(--tone) 30%, transparent), 0 0 60px -20px var(--tone);border-radius:26px;flex-direction:column;gap:.9rem;margin:0 auto;padding:1.2rem 1.1rem .75rem;display:flex;position:fixed;left:16px;right:16px}.tour-cady{filter:drop-shadow(0 6px 8px #00000059);width:62px;height:66px;position:absolute;top:-58px;left:18px;overflow:visible}.tour-skip{align-self:center;margin-top:-.35rem}@media (prefers-reduced-motion:no-preference){.cady-peek{transition:transform .6s cubic-bezier(.3,1.6,.5,1),opacity .3s;animation:12s cubic-bezier(.3,1.5,.5,1) 4s infinite cady-peekaboo}.cady-open .cady-peek,.cady-away .cady-peek{animation:none}@keyframes cady-peekaboo{0%,82%,to{transform:translateY(16px)}86%{transform:translateY(-6px)rotate(-6deg)}92%{transform:translateY(-4px)rotate(5deg)}96%{transform:translateY(16px)}}.cady-panel{animation:.5s cubic-bezier(.3,1.6,.5,1) both cady-pop}@keyframes cady-pop{0%{opacity:0;transform:scale(.4)translateY(30px)}60%{opacity:1}}.cady-speech,.tour-speech{animation:.6s cubic-bezier(.2,.8,.2,1) both cady-say}@keyframes cady-say{0%{clip-path:inset(0 100% 0 0);opacity:.3}to{clip-path:inset(0);opacity:1}}.cady-news{animation:2s ease-in-out infinite cady-ping}@keyframes cady-ping{50%{transform:scale(1.18)}}.tour{animation:.45s both tour-in}@keyframes tour-in{0%{opacity:0}}.tour-hole{transition:top .6s cubic-bezier(.3,1.25,.5,1),left .6s cubic-bezier(.3,1.25,.5,1),width .6s cubic-bezier(.3,1.25,.5,1),height .6s cubic-bezier(.3,1.25,.5,1)}.tour-hole:not(.tour-hole-none){animation:2.4s ease-in-out .6s infinite tour-breathe}@keyframes tour-breathe{50%{box-shadow:0 0 0 200vmax #080416b3, 0 0 0 3px var(--tone), 0 0 64px 10px color-mix(in srgb, var(--tone) 55%, transparent)}}.tour-bubble{transition:top .55s cubic-bezier(.3,1.3,.5,1),bottom .55s cubic-bezier(.3,1.3,.5,1);animation:.55s cubic-bezier(.3,1.6,.5,1) both cady-pop}.tour-cady{animation:.6s cubic-bezier(.3,1.6,.5,1) both tour-cady-in}@keyframes tour-cady-in{0%{opacity:0;transform:translateY(26px)scale(.6)}}}.cady-chat .studio-bar{grid-template-columns:auto 1fr auto}.cady-mode{background:var(--well);color:var(--ink-soft);border-radius:99px;padding:.2rem .6rem;font-size:.75rem;font-weight:800}.cady-mode-ai{background:linear-gradient(135deg, var(--tone), var(--tone-2));color:var(--tone-ink);box-shadow:0 0 14px -4px var(--tone)}.cady-log{gap:.6rem}.cady-line{align-items:flex-end;gap:.4rem;display:flex}.cady-line-you{justify-content:flex-end}.cady-face{flex:none;width:34px;height:36px;overflow:visible}.cady-line .bubble{max-width:82%}.cady-ai-tag{opacity:.65;font-size:.7rem}.cady-note{background:color-mix(in srgb, var(--tone) 14%, transparent);border-radius:10px;padding:.35rem .5rem;font-size:.78rem}.cady-turn-on{border:1px dashed color-mix(in srgb, var(--tone) 60%, var(--line));color:var(--tone);font:inherit;cursor:pointer;background:0 0;border-radius:99px;align-self:center;align-items:center;gap:.35rem;margin-top:.4rem;padding:.45rem .9rem;font-weight:700;display:inline-flex}.cady-typing{flex-direction:row;gap:4px;padding:.75rem .9rem}.cady-typing i{background:var(--ink-soft);border-radius:50%;width:7px;height:7px}.cady-input{flex-direction:column;display:flex}.cady-starters{scrollbar-width:none;flex-wrap:nowrap;padding:.5rem .8rem 0;overflow-x:auto}.cady-starters::-webkit-scrollbar{display:none}.cady-starters .filter-chip{flex:none}.consent-points{flex-direction:column;gap:.55rem;margin:0;padding-left:1.1rem;font-size:.95rem;display:flex}.cady-ai-settings{flex-direction:column;gap:.8rem;display:flex}.set-ai-btn{flex:none;min-height:40px}.cady-memories{flex-direction:column;gap:.5rem;display:flex}.cady-memories>small{color:var(--ink-soft)}.cady-memories ul{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.cady-memories li{background:var(--well);border-radius:12px;align-items:center;gap:.5rem;padding:.45rem .4rem .45rem .75rem;display:flex}.cady-memories li>span{flex-direction:column;flex:1;font-size:.92rem;display:flex}.cady-memories li small{color:var(--ink-soft);font-size:.75rem}.cady-memories .filter-chip{align-self:flex-start}@media (prefers-reduced-motion:no-preference){.cady-typing i{animation:1.1s ease-in-out infinite cady-dot}.cady-typing i:nth-child(2){animation-delay:.15s}.cady-typing i:nth-child(3){animation-delay:.3s}@keyframes cady-dot{30%{opacity:1;transform:translateY(-4px)}0%,60%,to{opacity:.4}}.cady-mode-ai{animation:3s ease-in-out infinite cady-ping}}.showroom-count{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.4rem .8rem;display:flex}.showroom-count b{color:var(--ink);font-family:var(--font-display);font-size:1.3rem}.showroom-waiting{color:#2b1503;background:linear-gradient(135deg,#ffd36e,#ff9f6e);border-radius:99px;align-items:center;gap:.3rem;padding:.2rem .7rem;font-size:.85rem;font-weight:700;display:inline-flex;box-shadow:0 0 18px -4px #ffc46b}.showroom{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem .8rem;margin:0;padding:0;list-style:none;display:grid}.showroom>li{flex-direction:column;gap:.5rem;display:flex}.stage{aspect-ratio:5/6;isolation:isolate;border-radius:22px 22px 14px 14px;position:relative;overflow:hidden;box-shadow:0 18px 34px -22px #0a041ecc,inset 0 0 0 1px #ffffff0f}.stage-back{z-index:-1;background:radial-gradient(60% 55% at 50% 70%,#ffecbe59,#0000 70%),linear-gradient(#0000 72%,#6b3d2a 72%,#4a2619 100%),linear-gradient(#2a1b3e,#1a1028);position:absolute;inset:0}.stage-critter{width:72%;position:absolute;bottom:14%;left:50%;overflow:visible;transform:translate(-50%)}.curtain{z-index:2;background:linear-gradient(#ffffff0f,#0000 30%,#00000047),repeating-linear-gradient(90deg,#7d0b24 0 4px,#b4182f 4px 11px,#d42a43 11px 14px,#9a1229 14px 20px);width:52%;position:absolute;top:0;bottom:0;box-shadow:inset 0 -10px 18px -6px #0006}.curtain-l{transform-origin:0 0;border-bottom-right-radius:40% 14%;left:0}.curtain-r{transform-origin:100% 0;border-bottom-left-radius:40% 14%;right:0}.stage-valance{z-index:3;filter:drop-shadow(0 4px 4px #00000059);background-color:#0000;background-image:radial-gradient(60% 120% at 25% 0,#c41f38 60%,#0000 61%),radial-gradient(60% 120% at 75% 0,#c41f38 60%,#0000 61%),linear-gradient(#a3142f,#8a0f27);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:100% 100%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-bottom:3px dotted #ffd36e;height:15%;position:absolute;top:0;left:-4%;right:-4%}.stage-medal{z-index:4;width:40px;height:40px;font-family:var(--font-display);color:#6b3d0a;background:radial-gradient(circle at 35% 30%,#fff1b8,#ffd36e 45%,#c98d1c);border-radius:50%;place-items:center;font-size:1.3rem;font-weight:800;display:grid;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 10px #0006,inset 0 -2px #00000026}.stage-hit{z-index:5;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:flex-end;padding:0 0 12%;display:flex;position:absolute;inset:0}.stage-tap{color:#2b1503;background:linear-gradient(135deg,#ffd36e,#ff9f6e);border-radius:99px;padding:.3rem .8rem;font-size:.85rem;font-weight:800;box-shadow:0 0 20px -2px #ffc46b}.stage-out .curtain-l,.stage-out .curtain-r{transform:scaleX(.2)}.stage-out .stage-valance{height:12%}.stage-current{box-shadow:0 0 0 2px var(--tone), 0 18px 40px -16px var(--tone)}.stage-info{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;min-height:34px;display:flex}.stage-info b{font-family:var(--font-display)}.stage-info small{width:100%;color:var(--ink-soft);font-size:.8rem;line-height:1.3}.stage-mystery{color:var(--ink-soft);font-weight:650}.stage-shuffling+.stage-info .stage-mystery{color:#ffc46b}.stage-with{color:var(--tone);align-items:center;gap:.25rem;font-size:.82rem;font-weight:700;display:inline-flex}.stage-choose{min-height:32px;padding:0 .8rem}.stage-confetti{z-index:6;position:absolute;top:55%;left:50%}.stage-confetti i{opacity:0;border-radius:2px;width:7px;height:11px;position:absolute}.unlock-notice,.showroom-link{color:var(--ink);background:linear-gradient(120deg, #c41f383d, #ffd36e29), var(--glass,var(--surface));border:1px solid #ffc46b73;border-radius:18px;align-items:center;gap:.75rem;padding:.65rem .9rem;text-decoration:none;display:flex;box-shadow:0 0 26px -10px #ffc46b}.unlock-notice{width:calc(100% - 2rem);max-width:528px;margin:.25rem auto 0}.unlock-notice>span:nth-child(2),.showroom-link>span:nth-child(2){flex-direction:column;flex:1;line-height:1.25;display:flex}.unlock-notice small,.showroom-link small{color:var(--ink-soft);font-size:.82rem}.showroom-link{background:var(--glass,var(--surface));border-color:var(--line);box-shadow:inset 0 1px 0 var(--glass-edge,transparent), var(--shadow-deep,none)}.showroom-link-waiting{background:linear-gradient(120deg, #c41f383d, #ffd36e29), var(--glass,var(--surface));border-color:#ffc46b73}.unlock-curtain,.showroom-link-curtain{background:#2a1b3e;border-radius:9px 9px 6px 6px;flex:none;width:34px;height:34px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 3px #8a0f27}.unlock-curtain i,.showroom-link-curtain i{background:repeating-linear-gradient(90deg,#7d0b24 0 2px,#c41f38 2px 5px);width:50%;height:100%}.unlock-curtain i:first-child,.showroom-link-curtain i:first-child{transform-origin:0 0;border-bottom-right-radius:50% 20%}.unlock-curtain i:last-child,.showroom-link-curtain i:last-child{transform-origin:100% 0;border-bottom-left-radius:50% 20%}@media (prefers-reduced-motion:no-preference){.stage-shuffling .curtain-l{animation:2.6s cubic-bezier(.3,1.5,.5,1) infinite shuffle-l}.stage-shuffling .curtain-r{animation:2.6s cubic-bezier(.3,1.5,.5,1) .15s infinite shuffle-r}@keyframes shuffle-l{0%,40%,to{transform:none}46%{transform:skew(-3deg)scaleX(1.03)}52%{transform:skew(2deg)}58%{transform:skew(-4deg)scaleX(1.05)}66%{transform:none}80%{transform:skew(1.5deg)}}@keyframes shuffle-r{0%,44%,to{transform:none}50%{transform:skew(4deg)scaleX(1.04)}56%{transform:skew(-2deg)}62%{transform:skew(3deg)scaleX(1.03)}72%{transform:none}}.stage-shuffling .stage-tap{animation:1.3s cubic-bezier(.3,1.6,.5,1) infinite tap-bob}@keyframes tap-bob{50%{transform:translateY(-4px)scale(1.05)}}.stage-opening .curtain-l{animation:.9s cubic-bezier(.3,1.35,.5,1) both open-l}.stage-opening .curtain-r{animation:.9s cubic-bezier(.3,1.35,.5,1) both open-r}@keyframes open-l{0%{transform:none}18%{transform:scaleX(1.05)skew(-3deg)}to{transform:scaleX(.2)}}@keyframes open-r{0%{transform:none}18%{transform:scaleX(1.05)skew(3deg)}to{transform:scaleX(.2)}}.stage-opening .stage-critter{animation:.8s cubic-bezier(.3,1.6,.5,1) .25s both critter-pop}@keyframes critter-pop{0%{opacity:0;transform:translate(-50%)translateY(30%)scale(.3)}60%{opacity:1}to{transform:translate(-50%)}}.stage-confetti i{animation:1.2s cubic-bezier(.2,.8,.3,1) .35s both confetti}@keyframes confetti{0%{opacity:1;transform:translate(0)rotate(0)}70%{opacity:1}to{opacity:0;transform:translate(var(--x), calc(var(--y) + 60px)) rotate(var(--r))}}.stage-out .curtain,.stage-out .stage-valance{transition:transform .6s cubic-bezier(.3,1.35,.5,1)}.unlock-notice{animation:.6s cubic-bezier(.3,1.6,.5,1) both notice-in}@keyframes notice-in{0%{opacity:0;transform:translateY(-10px)scale(.96)}}.unlock-curtain i:first-child,.showroom-link-waiting .showroom-link-curtain i:first-child{animation:2.2s cubic-bezier(.3,1.5,.5,1) infinite shuffle-l}.unlock-curtain i:last-child,.showroom-link-waiting .showroom-link-curtain i:last-child{animation:2.2s cubic-bezier(.3,1.5,.5,1) .1s infinite shuffle-r}}.welcome{flex-direction:column;gap:2rem;padding-bottom:1rem;display:flex}.welcome-hero{flex-direction:column;gap:.8rem;display:flex}.welcome-stage{height:200px;margin:-.5rem -1rem 0}.welcome-stage svg{width:100%;height:100%;overflow:visible}.welcome-floor{fill:color-mix(in srgb, var(--tone,var(--accent)) 30%, transparent);filter:blur(6px)}.welcome-hero .display-hero{text-wrap:balance;font-size:clamp(2.2rem,10vw,3rem)}.welcome-ctas{flex-direction:column;gap:.55rem;margin-top:.4rem;display:flex}.welcome-ctas .button{width:100%}.welcome-steps{flex-direction:column;gap:.9rem;display:flex}.welcome-step{grid-template-columns:44px 1fr;align-items:start;gap:.8rem;display:grid}.welcome-num{width:44px;height:44px;font-family:var(--font-display);background:linear-gradient(135deg, var(--tone,var(--accent)), var(--tone-2,var(--accent)));color:var(--tone-ink,var(--accent-ink));box-shadow:0 10px 24px -12px var(--tone,var(--accent));border-radius:14px;place-items:center;font-size:1.2rem;font-weight:800;display:grid}.welcome-step h2,.welcome-example h2,.welcome-fun h2,.welcome-privacy h2{font-size:1.2rem}.welcome-step p{color:var(--ink-soft)}.welcome-example,.welcome-fun,.welcome-privacy{flex-direction:column;gap:.6rem;display:flex}.welcome-card{background:var(--glass,var(--surface));border:1px solid var(--line);box-shadow:var(--shadow-deep,none);border-radius:22px;flex-direction:column;gap:.55rem;padding:1rem;display:flex}.welcome-row{flex-wrap:wrap;align-items:center;gap:.55rem;font-weight:600;display:flex}.welcome-change{background:var(--well);border-radius:16px;flex-direction:column;align-items:flex-start;gap:.3rem;padding:.75rem;display:flex}.welcome-change span,.welcome-note,.welcome-fun p{color:var(--ink-soft);font-size:.93rem}.welcome-parade{width:100%;height:auto;overflow:visible}.welcome-privacy ul{flex-direction:column;gap:.35rem;margin:0;padding-left:1.1rem;display:flex}.welcome-privacy .link{align-self:flex-start}.welcome-end{margin-top:0}.inline-link{min-height:0;font-size:inherit;padding:0;display:inline}.privacy-version{color:var(--ink-soft);font-size:.85rem}.privacy-section{flex-direction:column;gap:.4rem;display:flex}.privacy-section h3{font-size:1.02rem}.privacy-section p{font-size:.93rem;line-height:1.5}.privacy-contact{color:var(--ink-soft);font-size:.88rem}@media (prefers-reduced-motion:no-preference){.welcome-stage{animation:.9s cubic-bezier(.3,1.4,.5,1) both welcome-rise}@keyframes welcome-rise{0%{opacity:0;transform:translateY(24px)scale(.92)}}.welcome-cady{transform-box:fill-box;transform-origin:50% 100%;animation:3.2s cubic-bezier(.3,1.5,.5,1) 1s infinite welcome-hop}@keyframes welcome-hop{0%,70%,to{transform:none}78%{transform:scale(1.12,.88)}86%{transform:translateY(-16px)scale(.92,1.1)}94%{transform:scale(1.06,.94)}}}
