:root{color-scheme:dark;--night-deep: #11180f;--night: #182115;--surface: #212c1d;--surface-hi: #293623;--surface-dim: #1a2417;--moon: #f3eedb;--moon-soft: #c2bea4;--moon-faint: #8b8b71;--lantern: #f3c862;--lantern-bright: #ffdf8e;--lantern-deep: #dcab41;--lantern-ink: #2c220e;--lantern-mist: rgba(243, 200, 98, .13);--lantern-line: rgba(243, 200, 98, .38);--moss: #a9c97f;--moss-bright: #c6e0a2;--moss-mist: rgba(169, 201, 127, .13);--moss-line: rgba(169, 201, 127, .34);--berry: #eda184;--berry-mist: rgba(237, 161, 132, .14);--berry-line: rgba(237, 161, 132, .42);--line: rgba(243, 238, 219, .08);--line-strong: rgba(243, 238, 219, .16);--elev-card: inset 0 1px 0 rgba(255, 255, 255, .03), 0 10px 28px -18px rgba(0, 0, 0, .65);--elev-float: inset 0 1px 0 rgba(255, 255, 255, .04), 0 18px 44px -20px rgba(0, 0, 0, .75);--glow-lantern: 0 10px 32px -12px rgba(243, 200, 98, .55);--glow-lantern-soft: 0 0 20px -6px rgba(243, 200, 98, .45);--glow-moss: 0 0 18px -8px rgba(169, 201, 127, .55);--r-xs: 10px;--r-sm: 14px;--r-md: 18px;--r-lg: 22px;--r-xl: 28px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--gutter: 20px;--fs-display: 30px;--fs-h1: 22px;--fs-h2: 16px;--fs-lg: 15px;--fs-body: 14px;--fs-sm: 13px;--fs-meta: 12px;--fs-xs: 11px;--lh-tight: 1.2;--lh-snug: 1.4;--lh-normal: 1.65;--font-hand: "Yomogi", cursive;--font-body: "Zen Maru Gothic", "Kosugi Maru", sans-serif}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;padding:0;min-height:100vh;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-normal);color:var(--moon);background:var(--night-deep);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:var(--font-body);cursor:pointer}input,textarea,select{font-family:var(--font-body);color:var(--moon)}:focus-visible{outline:2px solid var(--lantern-line);outline-offset:2px}.app{position:relative;z-index:1;max-width:480px;margin:0 auto;min-height:100vh;background:radial-gradient(130% 52% at 86% -4%,rgba(243,200,98,.1) 0%,rgba(243,200,98,.03) 40%,transparent 62%),radial-gradient(125% 42% at 50% 105%,rgba(122,152,98,.12) 0%,rgba(122,152,98,.04) 42%,transparent 64%),linear-gradient(180deg,#1c2718 0%,var(--night) 34%,#151d12 100%);box-shadow:0 0 0 1px #f3eedb0d,0 30px 80px -30px #000000e6,inset 0 0 150px 6px #060a058c;overflow-x:hidden}.app:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:radial-gradient(1.6px 1.6px at 9% 2.2%,rgba(255,246,220,.65) 49%,transparent 51%),radial-gradient(1.2px 1.2px at 22% 4.8%,rgba(255,246,220,.42) 49%,transparent 51%),radial-gradient(1.8px 1.8px at 36% 1.6%,rgba(255,233,168,.5) 49%,transparent 51%),radial-gradient(1.1px 1.1px at 48% 5.6%,rgba(255,246,220,.38) 49%,transparent 51%),radial-gradient(1.4px 1.4px at 58% 2.8%,rgba(255,246,220,.55) 49%,transparent 51%),radial-gradient(1.1px 1.1px at 67% 7.2%,rgba(255,233,168,.35) 49%,transparent 51%),radial-gradient(1.3px 1.3px at 15% 8.4%,rgba(255,246,220,.3) 49%,transparent 51%),radial-gradient(1.6px 1.6px at 41% 10.4%,rgba(255,246,220,.26) 49%,transparent 51%),radial-gradient(1.2px 1.2px at 90% 9%,rgba(255,246,220,.3) 49%,transparent 51%),radial-gradient(1.5px 1.5px at 78% 12%,rgba(255,233,168,.22) 49%,transparent 51%);animation:star-twinkle 7s ease-in-out infinite alternate}@keyframes star-twinkle{0%{opacity:.55}to{opacity:1}}.app>*{position:relative}.app__content{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.app--loading,.app--error{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--moon-soft);font-size:var(--fs-lg);font-weight:500;text-align:center;padding:var(--s-6)}.error{color:#f0a08a;font-size:var(--fs-sm);font-weight:500;background:var(--berry-mist);border:1px solid var(--berry-line);border-radius:var(--r-sm);padding:var(--s-2) var(--s-3);margin:var(--s-2) var(--gutter)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:0;z-index:20;width:100%;max-width:480px;height:calc(72px + env(safe-area-inset-bottom,0px));padding:var(--s-2) var(--s-3) env(safe-area-inset-bottom,0px);display:flex;align-items:flex-start;justify-content:space-around;background:#141b11d1;backdrop-filter:saturate(1.3) blur(14px);-webkit-backdrop-filter:saturate(1.3) blur(14px);border-top:1px solid var(--line);box-shadow:0 -12px 32px -20px #000c}.tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding-top:var(--s-2);border:none;background:none;cursor:pointer;color:var(--moon-faint);font-size:var(--fs-xs);font-weight:500;transition:color .25s ease}.tabbar__item--active{color:var(--lantern);font-weight:700}.tabbar__icon{width:44px;height:28px;border-radius:var(--r-xs);display:grid;place-items:center;font-size:20px;transition:background .25s ease}.tabbar__item--active .tabbar__icon{background:var(--lantern-mist);box-shadow:var(--glow-lantern-soft);animation:tab-pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes tab-pop{0%{transform:scale(.82)}60%{transform:scale(1.1)}to{transform:scale(1)}}.tabbar__label{line-height:1}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.today{position:relative}.today-header{position:relative;padding:calc(var(--s-6) + env(safe-area-inset-top,0px)) var(--gutter) var(--s-5);background:linear-gradient(180deg,rgba(243,200,98,.05) 0%,transparent 70%);border-bottom:1px solid var(--line);overflow:hidden}.today-header:before{content:"";position:absolute;top:calc(10px + env(safe-area-inset-top,0px));right:14px;width:88px;height:88px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fffaef,#f7e8ba 44%,#f6e6b400 74%);box-shadow:0 0 58px 12px #f6e6b433;opacity:.94;pointer-events:none}.today-header:after{content:"";position:absolute;top:64px;right:108px;width:5px;height:5px;border-radius:50%;background:#ffe9a8;box-shadow:-54px 30px 0 -1px #ffe9a8bf,26px -26px 0 -2px #ffe9a899;filter:drop-shadow(0 0 6px rgba(255,222,142,.9));animation:firefly-drift 9s ease-in-out infinite alternate;pointer-events:none}@keyframes firefly-drift{0%{transform:translate(0);opacity:.9}35%{transform:translate(-8px,7px);opacity:.45}65%{transform:translate(-14px,2px);opacity:.95}to{transform:translate(-20px,10px);opacity:.55}}.today-date{font-family:var(--font-body);font-size:var(--fs-meta);color:var(--lantern);font-weight:700;letter-spacing:.05em;display:inline-flex;align-items:center;gap:var(--s-2)}.today-date:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lantern);box-shadow:0 0 8px 1px #f3c862b3}.today-brandrow{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.today-greet{min-width:0;position:relative;z-index:2}.today-title{font-family:var(--font-hand);font-size:var(--fs-display);line-height:var(--lh-tight);color:var(--moon);margin:var(--s-2) 0 0;letter-spacing:.01em;text-shadow:0 2px 18px rgba(0,0,0,.5)}.today-title__accent{color:var(--lantern);text-shadow:0 0 18px rgba(243,200,98,.35)}.today-sub{font-size:var(--fs-sm);color:var(--moon-soft);margin-top:var(--s-2);font-weight:500}.today-mascot{width:64px;height:64px;flex:none;position:relative;z-index:2;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.45)) drop-shadow(0 0 14px rgba(243,200,98,.22));animation:sloth-sway 6s ease-in-out infinite;transform-origin:50% 10%}@keyframes sloth-sway{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2deg)}}.my-summary{margin-top:var(--s-4);display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;position:relative;z-index:2}.my-name{font-family:var(--font-body);font-size:var(--fs-lg);font-weight:700;line-height:var(--lh-tight);color:var(--moon)}.my-progress{font-size:var(--fs-meta);font-weight:700;color:var(--moss-bright);background:var(--moss-mist);border:1px solid var(--moss-line);padding:var(--s-1) var(--s-3);border-radius:var(--r-pill)}.my-streak{display:inline-flex;align-items:center;gap:var(--s-1);background:var(--lantern-mist);color:var(--lantern);font-weight:700;font-size:var(--fs-meta);padding:var(--s-1) var(--s-2);border-radius:var(--r-pill);border:1px solid var(--lantern-line)}.sloth-bubble{display:flex;align-items:center;gap:var(--s-3);margin:var(--s-4) var(--gutter) 0;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-hi);border:1px solid var(--moss-line);box-shadow:var(--elev-card);position:relative;animation:rise .5s .05s ease both}.sloth-bubble__face{font-size:28px;flex:none;line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.4));animation:sloth-sway 6s ease-in-out infinite;transform-origin:50% 0}.sloth-bubble__text{margin:0;align-self:center;font-size:var(--fs-sm);line-height:var(--lh-snug);color:var(--moon);font-weight:500}.sloth-bubble__img{width:40px;height:40px;object-fit:contain;flex:none}.streak-board{margin:var(--s-4) var(--gutter) 0;animation:rise .5s .12s ease both}.streak-board__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-2)}.streak-board__title{font-family:var(--font-body);font-size:var(--fs-h2);font-weight:700;color:var(--moon);letter-spacing:.01em;margin:0}.streak-board__hint{font-size:var(--fs-xs);font-weight:700;color:var(--moon-faint);letter-spacing:.04em}.streak-board__rail{list-style:none;margin:0 -12px;padding:2px 12px;display:flex;gap:var(--s-2);overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%)}.streak-board__rail::-webkit-scrollbar{display:none}.streak-chip{scroll-snap-align:start;flex:none;min-width:96px;max-width:140px;display:flex;flex-direction:column;align-items:center;gap:var(--s-1);padding:var(--s-3) var(--s-3) var(--s-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--elev-card)}.streak-chip__ava{width:36px;height:36px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;font-size:19px;background:var(--surface-hi);box-shadow:inset 0 0 0 1px var(--line)}.streak-chip__name{display:flex;align-items:center;gap:var(--s-1);max-width:100%;font-size:var(--fs-meta);font-weight:700;color:var(--moon-soft);line-height:var(--lh-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.streak-chip__you{flex:none;font-size:var(--fs-xs);font-weight:700;color:var(--lantern);background:var(--lantern-mist);border:1px solid var(--lantern-line);border-radius:var(--r-pill);padding:1px var(--s-2)}.streak-chip__days{display:inline-flex;align-items:baseline;gap:2px;color:var(--lantern);line-height:1}.streak-chip__fire{font-size:var(--fs-sm);align-self:center}.streak-chip__num{font-family:var(--font-body);font-size:var(--fs-h1);font-weight:900;letter-spacing:.01em;text-shadow:0 0 14px rgba(243,200,98,.45)}.streak-chip__unit{font-size:var(--fs-xs);font-weight:700;color:var(--moon-faint)}.streak-chip--me{background:linear-gradient(180deg,#f3c8621a,#f3c8620a);border-color:var(--lantern-line);box-shadow:var(--elev-card),var(--glow-lantern-soft);animation:chip-breathe 4.5s ease-in-out 1s infinite}@keyframes chip-breathe{0%,to{box-shadow:var(--elev-card),0 0 14px -6px #f3c8626b}50%{box-shadow:var(--elev-card),0 0 24px -4px #f3c862ad}}.streak-chip--me .streak-chip__name{color:var(--moon)}.checkin-cta{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:calc(100% - var(--gutter) * 2);margin:var(--s-4) var(--gutter) var(--s-1);position:relative;z-index:3;border:none;cursor:pointer;padding:var(--s-4);border-radius:var(--r-md);font-family:var(--font-body);font-size:var(--fs-lg);font-weight:700;color:var(--lantern-ink);letter-spacing:.02em;background:linear-gradient(180deg,var(--lantern-bright) 0%,var(--lantern-deep) 100%);box-shadow:var(--glow-lantern);transition:transform .12s ease,box-shadow .2s ease;animation:rise .5s .18s ease both,lantern-breathe 4s ease-in-out 1.4s infinite}@keyframes lantern-breathe{0%,to{box-shadow:0 10px 32px -12px #f3c86280}50%{box-shadow:0 10px 42px -10px #f3c862cc}}.checkin-cta:active{transform:translateY(1px) scale(.99)}.checkin-cta__ico{width:28px;height:28px;border-radius:50%;background:#2c220e24;display:grid;place-items:center;font-size:15px}.member-list{list-style:none;margin:var(--s-5) 0 0;padding:0 var(--gutter);display:flex;flex-direction:column;gap:var(--s-3)}.member-list>li{animation:rise .55s ease both}.member-list>li:nth-child(1){animation-delay:.24s}.member-list>li:nth-child(2){animation-delay:.3s}.member-list>li:nth-child(3){animation-delay:.36s}.member-list>li:nth-child(4){animation-delay:.42s}.member-list>li:nth-child(5){animation-delay:.48s}.member-list>li:nth-child(n+6){animation-delay:.54s}.member-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-4);box-shadow:var(--elev-card);position:relative}.member-card--done{border-color:var(--moss-line);box-shadow:var(--elev-card),var(--glow-moss)}.member-card__head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-2)}.member-card__avatar{width:42px;height:42px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;font-size:22px;background:var(--surface-hi);box-shadow:inset 0 0 0 1px var(--line)}.member-card__name{font-weight:700;font-size:var(--fs-lg);flex:1;min-width:38%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--moon)}.member-card__streak{display:inline-flex;align-items:center;gap:var(--s-1);background:var(--lantern-mist);color:var(--lantern);font-weight:700;font-size:var(--fs-meta);padding:var(--s-1) var(--s-2);border-radius:var(--r-pill);border:1px solid var(--lantern-line);flex:none}.member-card__nudge-badge{font-size:var(--fs-xs);color:var(--moon-soft);font-weight:700;background:var(--surface-dim);padding:3px var(--s-2);border-radius:var(--r-pill);border:1px dashed var(--line-strong);flex:none}.member-card__updated{font-size:var(--fs-xs);color:var(--moon-faint);font-weight:500;display:inline-flex;align-items:center;gap:var(--s-1);flex:none}.member-card__updated:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--moss)}.member-card__goals{list-style:none;margin:var(--s-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.member-goal{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);font-size:var(--fs-sm);background:var(--surface-dim);border:1px solid transparent}.member-goal--done{background:var(--moss-mist);border-color:#a9c97f2e}.member-goal__mark{width:20px;height:20px;border-radius:7px;flex:none;display:grid;place-items:center;font-size:11px;font-weight:700}.member-goal--done .member-goal__mark{background:var(--moss);color:#1c2614;box-shadow:0 0 10px -2px #a9c97fb3}.member-goal--pending .member-goal__mark{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--moon-faint)}.member-goal__title{font-weight:700;color:var(--moon)}.member-goal--pending .member-goal__title{color:var(--moon-soft)}.member-goal__comment{flex-basis:100%;font-size:var(--fs-sm);color:var(--moon-soft);line-height:var(--lh-normal);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--moss);border-radius:var(--r-xs);padding:var(--s-2) var(--s-3);position:relative;margin-top:var(--s-1)}.member-goal__comment-q{color:var(--moss);margin-right:2px}.reaction-bar{flex-basis:100%;display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-2)}.reaction-bar__btn{border:1px solid var(--line);cursor:pointer;display:inline-flex;align-items:center;gap:var(--s-1);padding:var(--s-1) var(--s-3);border-radius:var(--r-pill);background:var(--surface-hi);font-size:var(--fs-body);color:var(--moon-soft);transition:transform .12s ease,background .15s ease,border-color .15s ease}.reaction-bar__btn:active{transform:scale(.9)}.reaction-bar__btn--mine{background:var(--berry-mist);border-color:var(--berry-line);color:var(--berry);animation:stamp-pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes stamp-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}.reaction-bar__count{font-size:var(--fs-xs);font-weight:700}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#080c0799;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;animation:sheet-fade .18s ease}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:480px;background:linear-gradient(180deg,#243020,#1d2719);border:1px solid var(--line-strong);border-bottom:none;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:var(--s-2) var(--s-5) calc(var(--s-6) + env(safe-area-inset-bottom,0px));box-shadow:var(--elev-float);max-height:88vh;overflow-y:auto;animation:sheet-rise .3s cubic-bezier(.22,1,.36,1)}@keyframes sheet-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet:before{content:"";display:block;width:40px;height:4px;border-radius:3px;background:var(--line-strong);margin:0 auto var(--s-4)}.sheet__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.sheet__header h2{margin:0;font-family:var(--font-body);font-size:var(--fs-h1);font-weight:700;color:var(--moon)}.sheet__close{border:1px solid var(--line);background:var(--surface-hi);width:32px;height:32px;border-radius:50%;font-size:15px;color:var(--moon-soft);display:grid;place-items:center}.sheet__empty{color:var(--moon-soft);font-size:var(--fs-sm);text-align:center;padding:var(--s-6) 0}.sheet__list{list-style:none;margin:0 0 var(--s-4);padding:0;display:flex;flex-direction:column;gap:var(--s-3)}.sheet__goal{display:flex;flex-direction:column;gap:var(--s-2)}.checktoggle{display:flex;align-items:center;gap:var(--s-3);border:1px solid var(--line);cursor:pointer;padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);background:var(--surface-hi);font-family:var(--font-body);text-align:left;transition:transform .12s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease}.checktoggle:active{transform:scale(.985)}.checktoggle__mark{width:28px;height:28px;border-radius:var(--r-xs);flex:none;display:grid;place-items:center;font-size:16px;font-weight:700;background:var(--surface-dim);box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--moon-faint);transition:background .2s ease,color .2s ease,box-shadow .2s ease}.checktoggle__title{font-size:var(--fs-lg);font-weight:700;color:var(--moon-soft);transition:color .2s ease}.checktoggle--done{background:linear-gradient(180deg,#f3c86229,#f3c86212);border-color:var(--lantern-line);box-shadow:var(--glow-lantern-soft)}.checktoggle--done .checktoggle__mark{background:linear-gradient(180deg,var(--lantern-bright),var(--lantern-deep));color:var(--lantern-ink);box-shadow:0 0 16px -2px #f3c862cc;animation:lit-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes lit-pop{0%{transform:scale(.55) rotate(-8deg)}60%{transform:scale(1.18) rotate(2deg)}to{transform:scale(1) rotate(0)}}.checktoggle--done .checktoggle__title{color:var(--lantern)}.sheet__comment{border:1px solid var(--line);width:100%;padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);background:var(--surface-dim);color:var(--moon);font-size:var(--fs-body);font-family:var(--font-body);transition:border-color .2s ease,box-shadow .2s ease}.sheet__comment::placeholder{color:var(--moon-faint)}.sheet__comment:focus{outline:none;border-color:var(--lantern-line);box-shadow:0 0 0 3px var(--lantern-mist)}.sheet__save{width:100%;border:none;cursor:pointer;padding:var(--s-4);border-radius:var(--r-md);font-family:var(--font-body);font-size:var(--fs-lg);font-weight:700;color:var(--lantern-ink);letter-spacing:.02em;background:linear-gradient(180deg,var(--lantern-bright) 0%,var(--lantern-deep) 100%);box-shadow:var(--glow-lantern);transition:transform .12s ease,box-shadow .2s ease}.sheet__save:active{transform:translateY(1px);box-shadow:0 4px 16px -8px #f3c86280}.sheet__save:disabled{filter:saturate(.4) brightness(.8);opacity:.55;box-shadow:none;cursor:default}.checkin-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-3);padding:var(--s-8) var(--s-4) var(--s-6);position:relative;animation:success-fade .3s ease both}@keyframes success-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.checkin-success:before{content:"";position:absolute;left:50%;top:42%;width:4px;height:4px;border-radius:50%;background:transparent;pointer-events:none;box-shadow:-56px -6px #ffe9a8,50px -20px 0 -1px #ffe9a8,-32px -50px 0 -1px #ffdf8e,38px -56px #fff3c4,2px -76px 0 -2px #ffe9a8,64px 8px 0 -2px #ffdf8e,-70px -30px 0 -2px #fff3c4;filter:drop-shadow(0 0 5px rgba(255,222,142,.9));animation:fireflies-rise 1.5s ease-out .15s both}@keyframes fireflies-rise{0%{opacity:0;transform:translate(-50%,18px) scale(.55)}30%{opacity:1}to{opacity:0;transform:translate(-50%,-36px) scale(1.05)}}.checkin-success__mascot{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 0 24px rgba(243,200,98,.35));transform-origin:50% 80%;animation:success-pop .55s cubic-bezier(.22,1,.36,1) both}@keyframes success-pop{0%{opacity:0;transform:scale(.7)}60%{transform:scale(1.07)}to{opacity:1;transform:scale(1)}}.checkin-success__title{margin:var(--s-1) 0 0;font-family:var(--font-body);font-size:var(--fs-h1);font-weight:700;letter-spacing:.02em;color:var(--lantern);text-shadow:0 0 18px rgba(243,200,98,.4)}.checkin-success__praise{margin:0;max-width:28ch;font-size:var(--fs-sm);line-height:var(--lh-snug);font-weight:500;color:var(--moon-soft)}.checkin-success__close{margin-top:var(--s-3);border:1px solid var(--lantern-line);cursor:pointer;padding:var(--s-2) var(--s-5);border-radius:var(--r-pill);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:700;color:var(--lantern);background:var(--lantern-mist);transition:transform .12s ease,background .2s ease}.checkin-success__close:active{transform:translateY(1px)}.month-cal{margin:var(--s-4) var(--gutter);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5) var(--s-4);box-shadow:var(--elev-card);animation:rise .5s .08s ease both}.month-cal__title{font-family:var(--font-body);font-size:var(--fs-h2);font-weight:700;color:var(--moon);text-align:center;margin-bottom:var(--s-4)}.month-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-1)}.month-cal__weekday{text-align:center;font-size:var(--fs-xs);color:var(--moon-faint);font-weight:700;padding-bottom:var(--s-1)}.month-cal__cell{aspect-ratio:1 / 1;display:grid;place-items:center;border-radius:50%;font-size:var(--fs-sm);color:var(--moon-faint)}.month-cal__cell--blank{background:none}.month-cal__cell--none{background:var(--surface-dim);box-shadow:inset 0 0 0 1px var(--line)}.month-cal__cell--full{background:radial-gradient(circle at 50% 38%,var(--lantern-bright) 0%,var(--lantern-deep) 78%);color:var(--lantern-ink);font-weight:700;box-shadow:0 0 12px -2px #f3c86299}.calendar-page{padding:calc(var(--s-6) + env(safe-area-inset-top,0px)) 0 0}.calendar-header{display:flex;gap:var(--s-3);padding:0 var(--gutter);flex-wrap:wrap;animation:rise .45s ease both}.calendar-header label{flex:1;display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--fs-meta);color:var(--moon-soft);font-weight:700}.calendar-header select{border:1px solid var(--line);padding:var(--s-3);border-radius:var(--r-sm);background:var(--surface-hi);font-size:var(--fs-body);color:var(--moon)}.streak-display{margin:var(--s-4) var(--gutter) 0;text-align:center;font-family:var(--font-body);font-size:var(--fs-lg);font-weight:700;color:var(--lantern);background:var(--lantern-mist);border:1px solid var(--lantern-line);padding:var(--s-3);border-radius:var(--r-md);text-shadow:0 0 14px rgba(243,200,98,.4);animation:rise .45s .04s ease both}.onboarding{padding:calc(var(--s-10) + env(safe-area-inset-top,0px)) var(--s-6) calc(var(--s-10) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:var(--s-4);min-height:100vh;position:relative}.onboarding:before{content:"";position:absolute;top:calc(var(--s-8) + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);width:132px;height:132px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fffaef,#f7e8ba 46%,#f6e6b400 75%);box-shadow:0 0 78px 14px #f6e6b438;opacity:.9;pointer-events:none}.onboarding>*{animation:rise .55s ease both}.onboarding>*:nth-child(1){animation-delay:.05s}.onboarding>*:nth-child(2){animation-delay:.14s}.onboarding>*:nth-child(3){animation-delay:.22s}.onboarding>*:nth-child(4){animation-delay:.3s}.onboarding>*:nth-child(5){animation-delay:.38s}.onboarding>*:nth-child(6){animation-delay:.46s}.onboarding>*:nth-child(n+7){animation-delay:.54s}.onboarding h1{font-family:var(--font-hand);font-size:26px;color:var(--moon);line-height:var(--lh-snug);margin:0;text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.5)}.onboarding p{font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--moon-soft);font-weight:500;margin:0;text-align:center}.onboarding label{display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--fs-sm);font-weight:700;color:var(--moon);text-align:left}.onboarding input[type=text],.onboarding textarea{border:1px solid var(--line);padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);background:var(--surface-dim);color:var(--moon);font-size:var(--fs-lg);font-family:var(--font-body);resize:vertical;transition:border-color .2s ease,box-shadow .2s ease}.onboarding input[type=text]:focus,.onboarding textarea:focus{outline:none;border-color:var(--lantern-line);box-shadow:0 0 0 3px var(--lantern-mist)}.onboarding input::placeholder,.onboarding textarea::placeholder{color:var(--moon-faint)}.onboarding>button{width:100%;border:none;cursor:pointer;padding:var(--s-4);border-radius:var(--r-md);font-family:var(--font-body);font-size:var(--fs-lg);font-weight:700;color:var(--lantern-ink);letter-spacing:.02em;margin-top:var(--s-1);background:linear-gradient(180deg,var(--lantern-bright) 0%,var(--lantern-deep) 100%);box-shadow:var(--glow-lantern);transition:transform .12s ease,box-shadow .2s ease}.onboarding>button:active{transform:translateY(1px);box-shadow:0 4px 16px -8px #f3c86280}.onboarding>button:disabled{filter:saturate(.4) brightness(.8);opacity:.55;box-shadow:none;cursor:default}.onboarding__mascot{width:104px;height:104px;object-fit:contain;display:block;margin:0 auto;position:relative;z-index:2;filter:drop-shadow(0 10px 14px rgba(0,0,0,.5)) drop-shadow(0 0 18px rgba(243,200,98,.2));animation:rise .55s .05s ease both,sloth-sway 6s ease-in-out .6s infinite;transform-origin:50% 8%}.me-page,.settings-page{padding:calc(var(--s-8) + env(safe-area-inset-top,0px)) var(--gutter) calc(var(--s-8) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:var(--s-5)}.me-page>*,.settings-page>*{animation:rise .5s ease both}.me-page>*:nth-child(1),.settings-page>*:nth-child(1){animation-delay:.03s}.me-page>*:nth-child(2),.settings-page>*:nth-child(2){animation-delay:.1s}.me-page>*:nth-child(3),.settings-page>*:nth-child(3){animation-delay:.17s}.me-page>*:nth-child(n+4),.settings-page>*:nth-child(n+4){animation-delay:.24s}.me-page>h1,.settings-page>h1{font-family:var(--font-hand);font-size:var(--fs-h1);color:var(--moon);margin:0;text-shadow:0 2px 16px rgba(0,0,0,.5)}.me-page h2,.settings-page h2{font-family:var(--font-body);font-size:var(--fs-h2);font-weight:700;color:var(--moon);margin:0 0 var(--s-3);display:flex;align-items:center;gap:var(--s-2)}.me-page h2:before,.settings-page h2:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lantern);box-shadow:0 0 8px 1px #f3c86299}.me-page section,.settings-page section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5) var(--s-4);box-shadow:var(--elev-card)}.me-page label{display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--fs-sm);font-weight:700;color:var(--moon)}.me-page input[type=text],.settings-page input[type=text]{border:1px solid var(--line);padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);background:var(--surface-dim);color:var(--moon);font-size:var(--fs-lg);font-family:var(--font-body);transition:border-color .2s ease,box-shadow .2s ease}.me-page input[type=text]:focus,.settings-page input[type=text]:focus{outline:none;border-color:var(--lantern-line);box-shadow:0 0 0 3px var(--lantern-mist)}.me-page input::placeholder{color:var(--moon-faint)}.me-page section button,.settings-page section button:not(.notify-prompt__enable){margin-top:var(--s-3)}.profile>button{border:1px solid var(--moss-line);cursor:pointer;padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);font-family:var(--font-body);font-size:var(--fs-body);font-weight:700;color:var(--moss-bright);background:var(--moss-mist);transition:transform .12s ease}.profile>button:active{transform:translateY(1px)}.goals ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.goals li{display:flex;align-items:center;gap:var(--s-2)}.goals li input[type=text]{flex:1;min-width:0}.goals li button{border:1px solid var(--line);cursor:pointer;padding:var(--s-2) var(--s-3);border-radius:var(--r-xs);font-size:var(--fs-sm);font-weight:700;color:var(--moon-soft);background:var(--surface-hi);white-space:nowrap}.goal-inactive{opacity:.45}.goal-inactive input[type=text]{text-decoration:line-through}.add-goal{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-3)}.add-goal input[type=text]{flex:1;min-width:0}.add-goal button{border:none;cursor:pointer;padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);font-family:var(--font-body);font-size:var(--fs-body);font-weight:700;color:var(--lantern-ink);background:linear-gradient(180deg,var(--lantern-bright) 0%,var(--lantern-deep) 100%);box-shadow:0 4px 16px -8px #f3c8628c;white-space:nowrap}.notify-goals ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.notify-goals li label{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-body);color:var(--moon);padding:var(--s-2) var(--s-3);border-radius:var(--r-xs);background:var(--surface-dim);border:1px solid var(--line)}.notify-goals input[type=checkbox]{width:20px;height:20px;accent-color:var(--lantern)}.settings-page p,.me-page p{font-size:var(--fs-meta);line-height:var(--lh-normal);color:var(--moon-soft);font-weight:500;margin:var(--s-3) 0 0}.notify-prompt{display:flex;flex-direction:column;gap:var(--s-3)}.notify-prompt p{font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--moon);font-weight:500;margin:0}.notify-prompt--granted{background:var(--moss-mist);border:1px solid var(--moss-line);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4)}.notify-prompt--granted p{color:var(--moss-bright);font-weight:700}.notify-prompt--info{background:var(--surface-dim);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4)}.notify-prompt__steps{margin:var(--s-1) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--s-3);counter-reset:step}.notify-prompt__steps li{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-sm);color:var(--moon);text-align:left}.notify-prompt__shot{flex:none;min-width:56px;height:40px;padding:0 var(--s-3);border-radius:var(--r-xs);display:grid;place-items:center;font-size:var(--fs-body);background:var(--lantern-mist);border:1px solid var(--lantern-line);color:var(--lantern)}.notify-prompt__note{font-size:var(--fs-meta)!important;color:var(--moon-faint)!important;line-height:var(--lh-normal)}.notify-prompt__enable{border:none;cursor:pointer;padding:var(--s-4);border-radius:var(--r-md);font-family:var(--font-body);font-size:var(--fs-lg);font-weight:700;color:var(--lantern-ink);background:linear-gradient(180deg,var(--lantern-bright) 0%,var(--lantern-deep) 100%);box-shadow:var(--glow-lantern);transition:transform .12s ease,box-shadow .2s ease}.notify-prompt__enable:active{transform:translateY(1px);box-shadow:0 4px 16px -8px #f3c86280}.notify-prompt h3{font-family:var(--font-body);font-size:var(--fs-h2);font-weight:700;color:var(--moon);margin:0;line-height:var(--lh-snug);text-align:left}.app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:170px 170px;opacity:.07;mix-blend-mode:overlay}.today-loading{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-10) var(--s-4);text-align:center;animation:rise .5s ease both}.today-loading__sloth{width:64px;height:64px;object-fit:contain;opacity:.85;filter:drop-shadow(0 6px 12px rgba(0,0,0,.45));animation:sloth-doze 3.2s ease-in-out infinite;transform-origin:50% 80%}@keyframes sloth-doze{0%,to{transform:translateY(0) rotate(-2deg);opacity:.8}50%{transform:translateY(-4px) rotate(2deg);opacity:1}}.today-loading__text{margin:0;font-size:var(--fs-sm);font-weight:700;color:var(--moon-soft);letter-spacing:.06em;display:inline-flex;align-items:baseline}.today-loading__dots{display:inline-flex;margin-left:1px}.today-loading__dots i{font-style:normal;animation:doze-dot 1.4s ease-in-out infinite}.today-loading__dots i:nth-child(2){animation-delay:.2s}.today-loading__dots i:nth-child(3){animation-delay:.4s}@keyframes doze-dot{0%,80%,to{opacity:.25}40%{opacity:1}}
