@import "https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;700&family=Nunito:wght@400;700&display=swap";:root{--bg-top:#fff5f8;--bg-bottom:#ffeef5;--card:#fff;--card-border:#ffd6e8;--text:#5c4a5a;--text-muted:#9a8a96;--accent:#ff8fab;--accent-hover:#ff6b95;--checkbox-border:#ffb7d5;--shadow:0 4px 20px #ff8fab26;--radius:16px;--font:"M PLUS Rounded 1c", "Nunito", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}body{min-height:100vh;font-family:var(--font);color:var(--text);background:linear-gradient(165deg, var(--bg-top) 0%, var(--bg-bottom) 50%, #fff9fc 100%);margin:0}#root{min-height:100vh}.app-shell{flex-direction:column;min-height:100vh;display:flex;position:relative}.falling-sakura{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.falling-sakura__petal{transform-origin:50%;opacity:0;animation:sakuraFall var(--duration,28s) var(--delay,0s) linear infinite, sakuraSway calc(var(--duration,28s) * .45) var(--delay,0s) ease-in-out infinite alternate;border-radius:50%/55% 55% 45% 45%;margin-left:-50%;position:absolute;top:-8vh;box-shadow:0 0 6px #ffffff59}@keyframes sakuraFall{0%{opacity:0;transform:translateY(-12vh)rotate(0)scale(.85)}8%{opacity:var(--peak-opacity,.6)}88%{opacity:var(--peak-opacity,.6)}to{opacity:0;transform:translate3d(var(--drift,0), 112vh, 0) rotate(var(--spin,360deg)) scale(1)}}@keyframes sakuraSway{0%{margin-left:calc(-50% - var(--sway,3vw))}to{margin-left:calc(-50% + var(--sway,3vw))}}.app{z-index:2;flex:1;width:100%;max-width:560px;margin:0 auto;padding:1.25rem 1.25rem 11rem;position:relative}.app-body{position:relative}.sticky-kawaii-header{z-index:20;background:var(--card);border:2px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:.65rem;padding:.55rem .7rem;position:sticky;top:.5rem}.sticky-kawaii-header--speech{padding-top:2.35rem}.sticky-kawaii-header .kawaii-header{margin-bottom:0}.sticky-kawaii-header .kawaii-header__inner{align-items:center;gap:.5rem}.sticky-kawaii-header .mascot__render{height:clamp(60px,10.8vh,96px)}.sticky-kawaii-header .app-title{font-size:1.2rem;line-height:1.2}.sticky-kawaii-header .app-subtitle{margin-top:.15rem;font-size:.75rem;line-height:1.25}.sticky-kawaii-header .mascot-speech{border-radius:12px 12px 12px 4px;max-width:min(12rem,100%);padding:.4rem .6rem;bottom:calc(100% + .3rem)}.sticky-kawaii-header .mascot-speech__text{font-size:.78rem}.sticky-kawaii-header .mascot--dancing .mascot__render{transform-origin:bottom;animation:1.4s ease-in-out forwards mascotHopCompact}@keyframes mascotHopCompact{0%,50%,75%,to{transform:translateY(0)scaleX(1)scaleY(1)}12.5%,62.5%,87.5%{transform:translateY(-8px)scaleX(1)scaleY(1.05)}25%{transform:translateY(0)scaleX(-1)scaleY(1)}37.5%{transform:translateY(-8px)scaleX(-1)scaleY(1.05)}}.app-toolbar{justify-content:flex-end;margin:-.5rem 0 .75rem;display:flex}.app--loading{min-height:50vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.kawaii-header{margin-bottom:0}.kawaii-header__inner{align-items:center;gap:.5rem;display:flex}.kawaii-header__text{flex:1;min-width:0;position:relative}.mascot{background:0 0;flex-shrink:0;line-height:0}.mascot__render{-webkit-user-select:none;user-select:none;pointer-events:none;background:0 0;width:auto;height:clamp(100px,18vh,160px);animation:3s ease-in-out infinite mascotBob;display:block;overflow:visible}@keyframes mascotBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.mascot--cheering .mascot__render{animation:.5s cubic-bezier(.34,1.56,.64,1) mascotCheer}.mascot--dancing .mascot__render{transform-origin:bottom;animation:1.4s ease-in-out forwards mascotHop}@keyframes mascotHop{0%,50%,75%,to{transform:translateY(0)scaleX(1)scaleY(1)}12.5%,62.5%,87.5%{transform:translateY(-10px)scaleX(1)scaleY(1.05)}25%{transform:translateY(0)scaleX(-1)scaleY(1)}37.5%{transform:translateY(-10px)scaleX(-1)scaleY(1.05)}}@keyframes mascotCheer{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-8px)scale(1.06)}}.mascot-speech{border:2px solid var(--card-border);max-width:min(14rem,100%);box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:1;background:#fff;border-radius:14px 14px 14px 4px;padding:.55rem .85rem;transition:opacity .25s,transform .3s cubic-bezier(.34,1.56,.64,1);position:absolute;bottom:calc(100% + .4rem);left:0;transform:translateY(8px)scale(.95)}.mascot-speech--visible{opacity:1;transform:translateY(0)scale(1)}.mascot-speech__text{color:var(--accent);margin:0;font-size:.9rem;font-weight:700}.app-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.app-title{color:var(--accent);letter-spacing:.02em;margin:0;font-size:1.75rem;font-weight:700}.app-subtitle{color:var(--text-muted);margin:.35rem 0 0;font-size:.9rem}.mute-toggle{border:2px solid var(--card-border);background:var(--card);cursor:pointer;width:44px;height:44px;box-shadow:var(--shadow);border-radius:50%;flex-shrink:0;font-size:1.25rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.mute-toggle:hover{transform:scale(1.08)}.mute-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.add-task-form{gap:.5rem;margin-bottom:1.25rem;display:flex}.add-task-input{border:2px solid var(--card-border);border-radius:var(--radius);background:var(--card);color:var(--text);box-shadow:var(--shadow);flex:1;padding:.85rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.add-task-input:focus{border-color:var(--accent);outline:none}.add-task-input::placeholder{color:var(--text-muted)}.add-task-btn{border-radius:var(--radius);background:linear-gradient(135deg, var(--accent), #ffb7d5);color:#fff;cursor:pointer;width:48px;height:48px;box-shadow:var(--shadow);border:none;font-size:1.5rem;font-weight:700;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.add-task-btn:hover{transform:scale(1.05)}.add-task-btn:active{transform:scale(.98)}.app-main{min-height:200px}.pick-task-btn{border:2px dashed var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;box-shadow:var(--shadow);background:linear-gradient(135deg,#fff5f9,#ffeef5);margin-bottom:.85rem;padding:.7rem 1rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:transform .2s,background .2s,border-color .2s}.pick-task-btn:hover:not(:disabled){border-color:var(--accent-hover);background:#fff;transform:scale(1.02)}.pick-task-btn:disabled{opacity:.45;cursor:not-allowed}.task-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.task-row--picked{box-shadow:0 0 0 3px #ffe56673, var(--shadow);background:#fffef5;border-color:#ffe566;animation:1.4s ease-in-out infinite pickedPulse}@keyframes pickedPulse{0%,to{box-shadow:0 0 0 3px #ffe56659, var(--shadow)}50%{box-shadow:0 0 0 6px #ff8fab59, var(--shadow)}}.star-burst{pointer-events:none;z-index:100;position:fixed;inset:0;overflow:hidden}.star-burst__comet{pointer-events:none;width:0;height:0;position:fixed}.star-burst__spiral-arm{transform-origin:0 0;width:0;height:0;animation:spiralFly var(--spiral-duration,7.8s) cubic-bezier(.15, .55, .25, 1) forwards;position:absolute;top:0;left:0}.star-burst__star{filter:drop-shadow(0 0 6px #fffffff2)drop-shadow(0 2px 10px #ff8fab99);opacity:0;animation:7.8s cubic-bezier(.15,.55,.25,1) forwards starSparkle;position:absolute;top:0;left:0}.star-burst__star--head{z-index:2;filter:drop-shadow(0 0 10px #fff)drop-shadow(0 0 18px #ffe566d9)drop-shadow(0 3px 12px #ff8faba6)}.star-burst__star--trail{z-index:1;filter:blur(1.5px)drop-shadow(0 0 5px #ffffffbf)drop-shadow(0 1px 6px #ff8fab73);animation-name:starSparkleTrail}.star-burst__streak{transform-origin:100%;background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--streak-color,#ffe566) 15%, transparent) 25%, color-mix(in srgb, var(--streak-color,#ffe566) 70%, white) 55%, var(--streak-color,#ffe566) 100%);filter:blur(4px);opacity:0;z-index:0;border-radius:999px;animation:7.8s cubic-bezier(.15,.55,.25,1) forwards streakGlow;position:absolute;top:0;left:0;transform:translate(-100%,-50%)}@keyframes spiralFly{0%{transform:rotate(var(--start-angle)) translateX(0)}to{transform:rotate(calc(var(--start-angle) + var(--spiral-turns))) translateX(var(--spiral-radius))}}@keyframes starSparkle{0%{opacity:1;transform:translate(-50%,-50%)scale(.55)rotate(0)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.15)rotate(220deg)}}@keyframes starSparkleTrail{0%{opacity:var(--trail-peak,.5);transform:translate(-50%,-50%)scale(.5)rotate(0)}70%{opacity:calc(var(--trail-peak,.5) * .85)}to{opacity:0;transform:translate(-50%,-50%)scale(.95)rotate(200deg)}}@keyframes streakGlow{0%{opacity:.75;transform:translate(-100%,-50%)scaleX(.35)}75%{opacity:.55}to{opacity:0;transform:translate(-100%,-50%)scaleX(1.1)}}.spiral-celebration{pointer-events:none;z-index:100;position:fixed;inset:0;overflow:hidden}.spiral-celebration__particle{animation:celebrationSparkle var(--spiral-duration,5.6s) cubic-bezier(.15, .55, .25, 1) forwards;opacity:0;display:block;position:absolute;top:0;left:0}.spiral-celebration__particle--head{z-index:2;filter:drop-shadow(0 0 4px #ffffffe6)drop-shadow(0 2px 6px #ff8fab80)}.spiral-celebration__particle--trail{z-index:1;filter:blur(.8px);animation-name:celebrationSparkleTrail}.spiral-celebration__heart{display:block;overflow:visible}@keyframes celebrationSparkle{0%{opacity:1;transform:translate(-50%,-50%)scale(.5)rotate(0)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.05)rotate(160deg)}}@keyframes celebrationSparkleTrail{0%{opacity:var(--trail-peak,.45);transform:translate(-50%,-50%)scale(.45)rotate(0)}70%{opacity:calc(var(--trail-peak,.45) * .85)}to{opacity:0;transform:translate(-50%,-50%)scale(.9)rotate(140deg)}}.task-row{background:var(--card);border:2px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:.65rem;padding:.75rem .85rem;transition:border-color .2s;display:flex}.task-row--completed{background:#fffefe;border-color:#c8f0c8}.task-checkbox-label{cursor:pointer;flex-shrink:0;position:relative}.task-checkbox{opacity:0;cursor:pointer;width:28px;height:28px;position:absolute}.checkbox-face{border:2.5px solid var(--checkbox-border);background:#fff;border-radius:8px;width:28px;height:28px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s,border-color .2s;display:block}.task-checkbox-label:hover .checkbox-face{border-color:var(--accent);transform:scale(1.1);box-shadow:0 0 0 3px #ff8fab33}.task-checkbox:checked+.checkbox-face,.task-checkbox:disabled:checked+.checkbox-face{background:linear-gradient(135deg,#b8f0b8,#8ed98e);border-color:#6bc96b}.task-checkbox:checked+.checkbox-face:after,.task-checkbox:disabled:checked+.checkbox-face:after{content:"✓";color:#2d6b2d;justify-content:center;align-items:center;height:100%;font-size:14px;font-weight:700;display:flex}.task-text-wrapper{flex:1;min-width:0;padding:.15rem 0;position:relative}.task-text{word-break:break-word;font-size:1rem;line-height:1.4;transition:opacity .3s;display:inline-block}.task-text--struck{-webkit-text-decoration:line-through #6bc96b;text-decoration:line-through #6bc96b;text-decoration-thickness:2px}.stem-overlay{pointer-events:none;position:absolute;top:50%;left:0;overflow:visible;transform:translateY(-50%)}.stem-strike-svg{display:block;overflow:visible}.flower-anchor{justify-content:flex-start;align-items:center;display:flex}.flower-petal{transform-origin:50%;transform-box:fill-box;opacity:0;transform:scale(0)}.flower-petal--open{opacity:1;transform:scale(1)}.flower-petal--bloom{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards petalBloom}.flower-petal--wilt{animation:.32s ease-in forwards petalWilt}.flower-anchor--wilt{animation:.32s ease-in forwards flowerDroop}.flower-svg--wilting{filter:saturate(.7)}.flower-svg--blooming .flower-center{animation:.25s cubic-bezier(.34,1.56,.64,1) .1s forwards centerPop}@keyframes petalBloom{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes centerPop{0%{transform:scale(.5)}to{transform:scale(1)}}@keyframes petalWilt{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.2)rotate(18deg)}}@keyframes flowerDroop{0%{transform:translateY(0)scale(1)}to{opacity:.6;transform:translateY(6px)scale(.75)}}.task-delete{width:32px;height:32px;color:var(--text-muted);cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:50%;flex-shrink:0;font-size:1.35rem;line-height:1;transition:opacity .2s,color .2s,background .2s}.task-row:hover .task-delete{opacity:1}.task-delete:hover:not(:disabled){color:var(--accent);background:#fff0f5}.task-delete:disabled{cursor:not-allowed}.task-list-footer{text-align:center;margin-top:1rem}.clear-completed{border:2px solid var(--card-border);background:var(--card);color:var(--text-muted);cursor:pointer;border-radius:999px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;transition:color .2s,border-color .2s}.clear-completed:hover{color:var(--accent);border-color:var(--accent)}.empty-state{text-align:center;padding:2.5rem 1rem}.empty-state__flower{width:64px;height:64px;margin:0 auto 1.25rem;position:relative}.empty-petal{transform-origin:50% 28px;background:#ffb7d5;border:2px solid #fff;border-radius:50%;width:18px;height:22px;margin:-11px 0 0 -9px;position:absolute;top:50%;left:50%}.empty-petal--1{background:#ffb7d5;transform:rotate(0)}.empty-petal--2{background:#fff4a3;transform:rotate(72deg)}.empty-petal--3{background:#d4b5ff;transform:rotate(144deg)}.empty-petal--4{background:#a8f0d4;transform:rotate(216deg)}.empty-petal--5{background:#ffc9a8;transform:rotate(288deg)}.empty-center{background:#ffe566;border:2px solid #fff;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;top:50%;left:50%}.empty-state__title{color:var(--accent);margin:0 0 .35rem;font-size:1.15rem;font-weight:700}.empty-state__hint{color:var(--text-muted);margin:0;font-size:.9rem}.garden-scene{z-index:1;pointer-events:none;height:clamp(100px,22vh,160px);position:fixed;bottom:0;left:0;right:0;overflow:hidden}.garden-scene__sky{background:linear-gradient(#0000 0%,#b8e8a826 40%,#8ed98e59 100%);position:absolute;inset:0}.garden-layer{animation:.7s cubic-bezier(.34,1.2,.64,1) both gardenReveal;position:absolute;bottom:0;left:0;right:0}@keyframes gardenReveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.garden-layer--grass{height:55%}.garden-layer--tufts{height:45%;bottom:38%}.garden-layer--pond{opacity:.9;border-radius:50% 50% 45% 45%;height:28%;bottom:32%;left:8%;right:52%;overflow:hidden}.garden-layer--petals{opacity:.75;height:100%;inset:0}.garden-doodle{width:100%;height:100%;display:block}.garden-svg{width:100%;height:85%;position:absolute;bottom:0;left:0;right:0}.garden-svg--tree{z-index:2;width:min(34%,140px);height:92%;left:auto;right:0}.garden-sakura-tree,.garden-bridge-piers,.garden-bridge,.garden-lanterns,.garden-lanterns-extra,.garden-bush,.garden-ground-flower{animation:.6s cubic-bezier(.34,1.4,.64,1) both gardenPop}@keyframes gardenPop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.grass-tuft{background:linear-gradient(#8ed98e,#5cb85c);border:2px solid #ffffff80;border-radius:50% 50% 20% 20%;width:12px;height:22px;position:absolute;bottom:0}.grass-tuft--1{height:18px;left:12%}.grass-tuft--2{height:26px;left:28%}.grass-tuft--3{height:20px;left:72%}.grass-tuft--4{height:24px;left:88%}.garden-scene__hint{color:var(--text-muted);white-space:nowrap;opacity:.85;margin:0;font-size:.75rem;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.flower-petal--bloom,.flower-petal--wilt,.flower-anchor--wilt,.flower-svg--blooming .flower-center{animation:none}.flower-petal,.flower-petal--open{opacity:1;transform:scale(1)}.mute-toggle:hover,.add-task-btn:hover,.task-checkbox-label:hover .checkbox-face{transform:none}.mascot__render,.mascot--dancing .mascot__render,.task-row--picked,.falling-sakura__petal,.spiral-celebration__particle,.star-burst__spiral-arm,.star-burst__star,.star-burst__streak,.garden-layer,.garden-sakura-tree,.garden-bridge-piers,.garden-bridge,.garden-lanterns,.garden-lanterns-extra,.garden-bush,.garden-ground-flower{animation:none}}
