@import"https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe&family=Zhi+Mang+Xing&display=swap";:root{color:#c75d72;background:#fffefe;font-family:ZCOOL KuaiLe,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100dvh;overflow-x:hidden;background:#fffefe}button{font:inherit;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.app{--page-w: min(100vw, 460px);position:relative;width:var(--page-w);min-height:100dvh;margin:0 auto;overflow:hidden;background:#fffefe;isolation:isolate}.app:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1}.app--start{min-height:max(100dvh,760px)}.app--start{background:#fffefe var(--frame-image) center top / 100% 100% no-repeat}.start-content{display:flex;align-items:center;flex-direction:column;padding-top:clamp(8.8rem,17dvh,10.5rem);text-align:center}.app-icon{width:clamp(7.4rem,29vw,9.2rem);border:1.5px solid #ffd6df;border-radius:24%;background:#fffdfb}h1{margin:1.25rem 0 0;font-size:clamp(2.8rem,12vw,3.7rem);line-height:1.35;letter-spacing:.06em;color:#bd7380;font-weight:400}.start-content h1{margin-top:-.9rem}.primary-button{border:2px solid #f5b2c3;border-radius:999px;color:#bd7080;background:linear-gradient(100deg,#d4f2fc,#bfeafa);box-shadow:inset 0 1px #ffffffe6,0 4px #f5b2c312;cursor:pointer;transition:transform .16s ease,filter .16s ease}.primary-button:active{transform:scale(.96)}.start-button{width:min(72vw,19rem);height:clamp(4.7rem,10vh,5.8rem);margin-top:1.5rem;font-size:clamp(2.45rem,10vw,3.25rem);letter-spacing:.2em;text-indent:.2em}.app--home{min-height:max(100dvh,760px);padding:clamp(10.1rem,20.5dvh,12rem) clamp(2.75rem,13.5vw,4rem) 4rem}.app--home{background:#fffefe var(--frame-image) center top / 100% 100% no-repeat}.bunny-letter-trigger{position:absolute;z-index:2;top:clamp(4rem,9.1dvh,5.4rem);left:clamp(.7rem,3vw,1rem);width:clamp(4.2rem,18vw,5.1rem);height:clamp(5.2rem,17vw,6.2rem);border:0;border-radius:1.4rem;background:transparent;cursor:pointer;touch-action:manipulation}.bunny-letter-trigger:focus-visible{outline:2px dashed #e78ca2;outline-offset:3px}.home-header{text-align:center}.home-header h1{margin:0;font-size:clamp(2.05rem,9vw,2.75rem);line-height:1.15;letter-spacing:.05em;color:#c74560}.home-header time{display:block;margin-top:.75rem;font-size:clamp(1.24rem,5.1vw,1.6rem);letter-spacing:.06em;color:#d24460}.header-pill{width:min(48vw,11.8rem);height:2.2rem;display:grid;place-items:center;margin:.1rem auto -.05rem;border:1.5px solid #ffc9d4;border-radius:999px;color:#d24460;font-family:system-ui,sans-serif;font-weight:800;font-size:.8rem;letter-spacing:.35em;text-indent:.35em}.hydration-card{position:relative;width:min(100%,19.3rem);min-height:clamp(14.5rem,30.1dvh,17.3rem);margin:0 auto;padding:clamp(1.85rem,8vw,2.1rem) clamp(1.4rem,6.5vw,2.5rem) 1.45rem;border:1.5px solid #ffc9d4;border-radius:clamp(2.2rem,8vw,3rem);background:#ffffffad}.hydration-card--complete{border-color:#aee8f8;box-shadow:0 0 0 4px #ffcbd840,0 10px 30px #ace4f71f}.drop-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:clamp(1.2rem,5.3vw,2.3rem);row-gap:clamp(1.2rem,3.1dvh,1.75rem);align-items:center;justify-items:center}.drop{width:min(12.3vw,3.2rem);overflow:visible;filter:drop-shadow(0 2px 1px rgba(255,255,255,.8))}.drop__outline{fill:transparent;stroke:#cc3d58;stroke-width:4;stroke-linejoin:round}.drop__fill{opacity:0;transition:opacity .28s ease}.drop--filled .drop__fill{opacity:1}.drop--filled{animation:fill-bounce .42s cubic-bezier(.2,.9,.34,1.4)}.progress-count{position:absolute;bottom:1rem;left:0;right:0;text-align:center;font-size:clamp(1.55rem,6.8vw,2.1rem);font-weight:400;letter-spacing:.12em;text-indent:.12em;color:#c74560}.card-doodle{position:absolute;font-family:system-ui,sans-serif;line-height:1;pointer-events:none}.card-doodle--heart{top:1.1rem;left:1.45rem;font-size:1.7rem;color:#fc9eb9;transform:rotate(-17deg)}.card-doodle--star{right:1.4rem;bottom:1.15rem;font-size:1.65rem;color:#ffc84d;transform:rotate(9deg)}.toast{width:fit-content;max-width:min(80vw,20rem);min-height:1.65rem;margin:.45rem auto .1rem;padding:.02rem .75rem;border:1px solid rgba(248,202,214,.9);border-radius:999px;background:#fffffff0;box-shadow:0 5px 13px #d38b9f1f;text-align:center;font-family:PingFang SC,sans-serif;font-size:clamp(.7rem,3vw,.86rem);font-weight:500;line-height:1.65rem;color:#c57688;opacity:0;transform:translateY(5px) scale(.98);transition:opacity .25s ease,transform .25s ease}.toast--visible{opacity:1;transform:translateY(-6px) scale(1)}.record-button{display:block;width:min(48vw,14rem);height:clamp(3.15rem,6.5dvh,3.7rem);margin:.25rem auto 0;font-size:clamp(1.6rem,6.8vw,2.1rem);letter-spacing:.22em;text-indent:.22em}.record-button:disabled{color:#ad7b88;background:linear-gradient(100deg,#dff7fb,#d1f1fb);cursor:default}.record-button--pop{animation:button-pop .42s cubic-bezier(.2,.9,.34,1.4)}.girl-animation{position:absolute;right:clamp(1.9rem,10vw,3.3rem);bottom:max(1.9rem,calc(env(safe-area-inset-bottom) + .65rem));width:clamp(5.4rem,24vw,7.4rem);aspect-ratio:1 / 1.7;overflow:hidden}.girl-animation img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 100%;animation:girl-frame-in .18s ease-out both}.celebration{position:absolute;right:1.1rem;bottom:10rem;width:11rem;height:9rem;pointer-events:none;color:#ffc54e;font-family:system-ui,sans-serif;font-size:1.8rem;animation:celebrate 1.8s ease-in-out infinite}.celebration i{position:absolute;font-style:normal}.celebration i:nth-child(1){top:0;left:13%;color:#5bcff6}.celebration i:nth-child(2){right:7%;top:27%}.celebration i:nth-child(3){left:42%;bottom:0;color:#fb9cbe}.celebration i:nth-child(4){left:0;bottom:24%;color:#5bcff6}.letter-easter-egg{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#fffefe url(/assets/letter-paper-Cpg7k2lL.png) center top / 100% 100% no-repeat;animation:letter-in .24s ease-out both}.letter-easter-egg__close{position:absolute;z-index:3;top:clamp(3.35rem,7.2dvh,4.25rem);right:clamp(1.2rem,5.2vw,1.7rem);display:grid;width:2.75rem;height:2.75rem;padding:0 0 .15rem;place-items:center;border:1.5px solid #f3a8bb;border-radius:50%;color:#c74560;background:#fffefed1;box-shadow:0 2px 8px #d46d881f;font-family:system-ui,sans-serif;font-size:2rem;font-weight:300;line-height:1;cursor:pointer;transition:transform .16s ease,background .16s ease}.letter-easter-egg__close:active{transform:scale(.92)}.letter-easter-egg__close:focus-visible{outline:2px solid #c74560;outline-offset:3px}.letter-easter-egg__paper{position:absolute;inset:clamp(8.8rem,22.5dvh,12.25rem) clamp(2.25rem,7vw,3rem) clamp(9.6rem,21dvh,11rem);overflow-y:auto;padding:.1rem .05rem 4.8rem;color:#554e51;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(1rem,4.2vw,1.13rem);font-weight:500;line-height:1.56;scrollbar-width:thin;scrollbar-color:rgba(219,130,151,.42) transparent}.letter-easter-egg__paper:focus-visible{outline:1px dashed #f3a8bb;outline-offset:4px}.letter-easter-egg__paper::-webkit-scrollbar{width:4px}.letter-easter-egg__paper::-webkit-scrollbar-thumb{border-radius:99px;background:#db82976b}.letter-easter-egg__date{margin:0 0 .86rem;color:#a19699;font-size:clamp(.88rem,3.65vw,1rem);letter-spacing:.04em;text-align:center}.letter-easter-egg__paper h2{margin:0 0 .3rem;color:#3f3b3c;font-family:ZCOOL KuaiLe,PingFang SC,sans-serif;font-size:clamp(1.75rem,7.2vw,2.15rem);font-weight:400;line-height:1.28}.letter-easter-egg__paper p{margin:0 0 .9rem}.letter-easter-egg__paper .letter-easter-egg__closing{margin-top:1.45rem;margin-bottom:0;font-family:ZCOOL KuaiLe,PingFang SC,sans-serif;font-size:1.08em;line-height:1.75}.letter-easter-egg__fade{position:absolute;z-index:1;right:0;bottom:clamp(7rem,16dvh,8.8rem);left:0;height:4.8rem;pointer-events:none;background:linear-gradient(to bottom,#fffefe00,#fffefef0 78%,#fffefe)}.letter-easter-egg__scroll-hint{position:absolute;z-index:2;bottom:clamp(7.25rem,17dvh,9rem);left:50%;color:#d2798e;font-family:system-ui,sans-serif;font-size:1.5rem;line-height:1;pointer-events:none;transform:translate(-50%);animation:scroll-hint 1.45s ease-in-out infinite}.calendar-entry{display:flex;align-items:center;justify-content:center;gap:.5rem;width:min(100%,19.3rem);margin:.55rem auto 0;padding:.68rem 1rem;border:2px solid #f5b2c3;border-radius:999px;background:linear-gradient(100deg,#d4f2fc,#bfeafa);color:#bd7080;font-size:clamp(1.05rem,4.4vw,1.25rem);letter-spacing:.12em;text-indent:.12em;box-shadow:inset 0 1px #ffffffe6,0 4px #f5b2c312;cursor:pointer;transition:transform .16s ease,filter .16s ease}.calendar-entry:active{transform:scale(.97)}.calendar-entry:focus-visible{outline:2px dashed #e78ca2;outline-offset:3px}.calendar-entry__icon{width:1.4em;height:1.4em;flex:none}.reminder-toggle{position:absolute;top:calc(env(safe-area-inset-top,0px) + 6.2rem);right:1rem;z-index:6;display:grid;place-items:center;width:2.7rem;height:2.7rem;padding:0;border:1.5px solid #ffc9d4;border-radius:50%;background:#fffefed9;color:#c88a97;box-shadow:0 3px 8px #f5b2c32e;cursor:pointer;transition:transform .16s ease,background .16s ease}.reminder-toggle:active{transform:scale(.92)}.reminder-toggle:focus-visible{outline:2px dashed #e78ca2;outline-offset:3px}.reminder-toggle:disabled{opacity:.6;cursor:wait}.reminder-toggle--on{background:linear-gradient(120deg,#ffeef3,#ffdfea);border-color:#f5b2c3}.reminder-toggle--on:after{content:"";position:absolute;top:.05rem;right:.05rem;width:.6rem;height:.6rem;border-radius:50%;background:#ff9fb8;border:1.5px solid #fffefe}.reminder-toggle__icon{width:1.5rem;height:1.5rem}.app--calendar{min-height:100dvh;padding-bottom:max(2rem,env(safe-area-inset-bottom));background:#fffefe;overflow-y:auto}.cal-header{display:flex;align-items:center;gap:.6rem;padding:calc(env(safe-area-inset-top,0px) + clamp(2.4rem,6dvh,3.4rem)) 1.15rem .6rem}.cal-back{display:grid;place-items:center;width:2.5rem;height:2.5rem;padding:0 0 .1rem;border:1.5px solid #ffc9d4;border-radius:50%;background:#fffefee0;color:#c75d72;font-size:1.5rem;line-height:1;cursor:pointer;transition:transform .16s ease}.cal-back:active{transform:scale(.92)}.cal-back:focus-visible{outline:2px dashed #e78ca2;outline-offset:3px}.cal-title{margin:0;font-size:1.65rem;font-weight:400;letter-spacing:.1em;color:#bd7380}.streak-card{margin:.7rem 1.15rem 0;padding:1rem 1.2rem;border:2px solid #f5b2c3;border-radius:1.6rem;background:linear-gradient(120deg,#fff 60%,#fff5d9);box-shadow:0 6px 18px #f5b2c31f;display:flex;align-items:center;gap:.9rem}.streak-card__badge{flex:none;display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe9a8,#ffc84d);box-shadow:0 3px 8px #ffc84d59}.streak-card__badge svg{width:2.5rem;height:2.5rem}.streak-card__title{margin:0;font-size:clamp(1.1rem,4.6vw,1.28rem);letter-spacing:.04em;color:#c75d72}.streak-card__sub{margin:.18rem 0 0;font-size:.92rem;color:#c87888;letter-spacing:.03em}.cal-month{margin:1rem 1.15rem 0;padding:1rem .9rem 1.1rem;border:2px solid #f5b2c3;border-radius:1.6rem;background:#ffffffdb;box-shadow:0 6px 18px #f5b2c31a}.cal-month__label{text-align:center;font-size:1.15rem;letter-spacing:.18em;color:#bd7380;margin-bottom:.8rem}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}.cal-grid__week{text-align:center;font-size:.8rem;color:#d8a3ae;padding-bottom:.25rem}.cal-day{position:relative;aspect-ratio:1;display:grid;place-items:center;padding:0;border:0;border-radius:.9rem;background:transparent;font-family:inherit;font-size:.98rem;color:#c87888;cursor:pointer}.cal-day:focus-visible{outline:2px dashed #e78ca2;outline-offset:-2px}.cal-day--empty{pointer-events:none}.cal-day--future{color:#e8ccd2;cursor:default}.cal-day--done{background:#fff3d6;color:#c75d72}.cal-day--partial{background:#eef9fd}.cal-day--today{outline:2px dashed #e78ca2;outline-offset:-2px;font-weight:700;color:#c75d72}.cal-day__star{position:absolute;top:-.32rem;right:-.22rem;width:1.05rem;height:1.05rem;transform:rotate(12deg);pointer-events:none}.cal-day__drops{position:absolute;bottom:.12rem;right:.22rem;display:flex;align-items:center;gap:.06rem;font-size:.62rem;color:#5fb3d6;line-height:1;pointer-events:none}.cal-day__drops svg{width:.55rem;height:.7rem}.cal-legend{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.85rem;font-size:.82rem;color:#c87888}.cal-legend span{display:inline-flex;align-items:center;gap:.28rem}.cal-legend svg{flex:none}.cal-legend .lg-star{width:.95rem;height:.95rem}.cal-legend .lg-drop{width:.6rem;height:.78rem}.day-toast{margin:1rem 1.15rem 0;padding:.85rem 1.1rem;text-align:center;border:1.5px solid #ffc9d4;border-radius:999px;background:#fffffff0;color:#c75d72;font-size:1.02rem;letter-spacing:.06em;box-shadow:0 4px 12px #f5b2c324}@keyframes fill-bounce{0%{transform:scale(.76)}65%{transform:scale(1.13)}to{transform:scale(1)}}@keyframes button-pop{0%,to{transform:scale(1)}45%{transform:scale(.92)}76%{transform:scale(1.045)}}@keyframes celebrate{0%,to{transform:translateY(0) rotate(-2deg);opacity:.75}50%{transform:translateY(-8px) rotate(2deg);opacity:1}}@keyframes girl-frame-in{0%{opacity:.86;transform:translateY(2px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes letter-in{0%{opacity:0;transform:scale(1.012)}to{opacity:1;transform:scale(1)}}@keyframes scroll-hint{0%,to{transform:translate(-50%);opacity:.55}50%{transform:translate(-50%,5px);opacity:1}}@media (min-width: 461px){.app{box-shadow:0 0 45px #da9eae1f}}@media (max-height: 760px){.app--home{padding-top:9rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
