:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#284436;background:#edf8ef}*{box-sizing:border-box}body{margin:0;min-height:100svh;display:flex;align-items:center;justify-content:center;gap:96px;padding:28px;background:radial-gradient(ellipse at 10% 10%,#fafff9,transparent 60%),radial-gradient(ellipse at 100% 100%,#d4ebdb,transparent 65%)}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #ee8296;outline-offset:3px}button:disabled{cursor:default}.intro{width:330px}.eyebrow{font-size:12px;letter-spacing:2px;display:flex;align-items:center;gap:10px}.eyebrow i{width:7px;height:7px;background:#40bd7d;border-radius:50%}.intro h1{font-size:43px;line-height:1.5;letter-spacing:-1.5px;font-weight:800;margin:27px 0 20px}.intro h1 span{color:#389f70}.intro p{font-size:14px;color:#6a8576;line-height:2.2}.instructions{margin:32px 0 26px;border-left:2px solid #acd6b7;padding-left:20px}.instructions b{font-size:14px}.instructions p{font-size:12px;line-height:2.1;margin-bottom:0}.intro>small{font-size:12px;color:#83998a}#shell{position:relative;flex-shrink:0;width:min(420px,calc((100svh - 56px)*420/820));aspect-ratio:420/820;overflow:hidden;border:6px solid #f8fdf8;border-radius:34px;box-shadow:0 35px 95px #24493420,0 2px 6px #24493410;background:#e7f5eb}#game{position:absolute;width:420px;height:820px;transform-origin:0 0;overflow:hidden;background:#f0faf2;isolation:isolate}#scene{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.topbar{position:absolute;top:20px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.icon-button{pointer-events:auto;background:#f7fff9e8;border:1.5px solid #cee9d7;width:37px;height:37px;border-radius:14px;box-shadow:0 3px 0 #b5d9c05c;font-weight:800;font-size:21px;color:#365f49;line-height:1}.icon-button:active{transform:translateY(2px)}.wordmark{font-size:29px;font-weight:950;letter-spacing:-1px;color:#1d5438;text-shadow:2px 0 #fff,-2px 0 #fff,0 2px #fff,0 -2px #fff,0 5px #c4e4cc}.paw{display:inline-block;color:#ff8299;font-size:23px;transform:rotate(16deg);vertical-align:top;margin:-8px 0 0 3px}.level-info{position:absolute;top:77px;left:25px;right:25px;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px}.level-info i{font-style:normal;font-size:12px;color:#5e7f68;margin-left:8px}.level-info>span:last-child{font-size:11px;color:#577461;background:#f7fff9c9;padding:6px 10px;border-radius:12px}.progress{position:absolute;top:116px;left:25px;right:25px;display:flex;align-items:center;gap:9px;background:#f7fff9e3;padding:10px 12px;border:1px solid #d1e8d8;border-radius:17px;box-shadow:0 4px 16px #42774b06}.progress-label{font-size:10px;color:#60816a}.progress-track{height:8px;flex:1;overflow:hidden;border-radius:8px;background:#dcecdf}.progress-track>div{height:100%;width:0;background:linear-gradient(90deg,#73d7a2,#31bf76);border-radius:8px;transition:width .4s}.progress b{font-size:11px;font-variant-numeric:tabular-nums}.feedback{position:absolute;top:186px;left:20px;right:20px;text-align:center;pointer-events:none;font-size:25px;font-weight:900;color:#ef768f;text-shadow:2px 2px white,-2px -2px white,0 3px 8px #ffffff;opacity:0;transform:translateY(8px) scale(.92);transition:opacity .2s,transform .25s}.feedback.show{opacity:1;transform:translateY(0) scale(1)}.feedback small{display:block;font-size:12px;color:#397851;margin-top:6px;font-weight:700}.hint{position:absolute;top:679px;left:34px;right:34px;text-align:center;color:#42684d;font-size:12px;font-weight:650;pointer-events:none}.food-controls{position:absolute;top:711px;left:20px;right:20px;display:flex;gap:10px}.food-choice{width:185px;height:65px;border:1.5px solid #dbebdf;border-radius:22px;display:flex;align-items:center;padding:7px 10px;gap:6px;background:#f7fff9f0;color:#466a50;position:relative;box-shadow:0 4px 0 #c5ddce70;transition:transform .15s,border-color .15s}.food-choice.selected{border:2px solid #43bd7e;background:#f5fff4;box-shadow:0 4px 0 #acd6b4}.food-choice:active{transform:translateY(2px)}.food-choice:disabled{opacity:.48}.food-choice b{font-size:13px;display:block;font-weight:800}.food-choice small{font-size:10px;color:#7c9380;display:block;margin-top:5px;white-space:nowrap}.food-choice em{font-style:normal;color:#32794f;font-weight:800;margin-left:5px}.food-choice i{position:absolute;right:9px;top:7px;font-style:normal;background:#46bb7b;color:white;width:15px;height:15px;line-height:15px;font-size:10px;border-radius:50%;opacity:0}.food-choice.selected i{opacity:1}.food-art{width:47px;height:42px;display:block;flex-shrink:0;background-repeat:no-repeat;background-size:400% 200%;background-position:100% 100%}.cat-food{background-image:url('./art/cat-rig.png')}.dog-food{background-image:url('./art/dog-rig.png')}.bottom-note{position:absolute;bottom:15px;width:100%;text-align:center;font-size:10px;letter-spacing:3px;color:#82a28a;pointer-events:none}.bottom-note span{margin:0 8px}#loading{position:absolute;inset:0;background:#f0faf2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:5}#loading small{color:#8ba491;font-size:12px}.loading-paw{font-size:38px;animation:breathe 1.5s infinite}#reload{border:0;border-radius:20px;padding:12px 24px;background:#3caf78;color:white}#overlay{position:absolute;inset:0;z-index:4;background:#244b3d55;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:30px}#overlay[hidden],#loading[hidden],[hidden]{display:none!important}.dialog{width:100%;border-radius:30px;border:3px solid white;background:#f7fff9;padding:28px 22px 22px;text-align:center;box-shadow:0 20px 60px #264b4230}.dialog-eyebrow{font-size:10px;letter-spacing:2px;color:#88a28e}.dialog h2{font-size:25px;margin:13px 0}.dialog p{font-size:12px;line-height:1.8;color:#6c8974;margin:0 0 23px}#dialog-icon{font-size:36px;color:#eda856;letter-spacing:5px;margin-bottom:17px}#result-stats{display:flex;justify-content:space-evenly;gap:10px;background:#e9f5ed;border-radius:18px;padding:16px 6px;margin-bottom:21px}#result-stats b{display:block;color:#368257;font-size:23px;margin-bottom:6px}#result-stats small{font-size:10px;color:#799881}.primary,.secondary{width:100%;border:0;border-radius:17px;min-height:47px;font-size:14px;font-weight:750}.primary{background:linear-gradient(160deg,#5aca8d,#2caf70);color:white;box-shadow:0 4px 0 #279664}.secondary{background:transparent;color:#759380;font-size:12px;margin-top:12px}.primary:active{transform:translateY(2px)}@keyframes breathe{50%{transform:translateY(-7px)}}@media(max-width:820px){body{padding:0;gap:0;background:#e8f4eb}.intro{display:none}#shell{width:min(100vw,calc(100svh*420/820));border:0;border-radius:0;box-shadow:none}}@media(prefers-reduced-motion:reduce){.loading-paw{animation:none}.progress-track>div,.feedback{transition:none}}

.food-choice.satiated{opacity:.75;background:#edf2ed;border-color:#d5dfd5;box-shadow:0 3px 0 #d0dbd370}.food-choice.satiated .food-art{filter:grayscale(.5)}.food-choice.satiated small{color:#647f6a}

#cancel-throw{position:absolute;pointer-events:none;border:2px solid #efb8c4;border-radius:50%;background:#fff7f9ed;box-shadow:0 3px 0 #dabac170;color:#b96c82;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:0}#cancel-throw span{font-size:24px;line-height:24px;font-weight:600}#cancel-throw small{font-size:10px;line-height:16px}#cancel-throw.cancelled{background:#f9e0e7;border-color:#de95a9;color:#a7556f}

.audio-credits{display:inline-block;margin-top:14px;color:#82968a;font-size:10px;text-decoration:none}.audio-credits:hover{text-decoration:underline}

#welcome{position:absolute;inset:0;z-index:4;display:flex;align-items:center;padding:22px;background:linear-gradient(165deg,#f1fbf3f5,#dcefe5f7);backdrop-filter:blur(6px)}.welcome-panel{width:100%;text-align:center}.welcome-eyebrow{font-size:12px;color:#5c9271;letter-spacing:2px}.welcome-panel h2{font-size:28px;letter-spacing:-1px;margin:22px 0 10px}.welcome-panel>p{font-size:13px;color:#708b79;margin:0 0 28px}.pet-options{display:flex;gap:12px}.pet-option{position:relative;flex:1;min-width:0;padding:15px 5px 21px;border:2px solid #d1e5d6;border-radius:28px;background:#f9fffa;color:#375d45;box-shadow:0 5px 0 #cce2d375;transition:transform .2s,border-color .2s}.pet-option.selected{border-color:#4db982;background:#effbee;transform:translateY(-4px);box-shadow:0 6px 0 #b7ddc3}.pet-option canvas{display:block;width:100%;height:auto}.pet-option b{display:block;font-size:17px;margin:7px 0 9px}.pet-option small{font-size:10px;color:#789480}.pet-option i{position:absolute;right:12px;top:12px;width:21px;height:21px;border-radius:50%;background:#40b77c;color:white;font-style:normal;opacity:0}.pet-option.selected i{opacity:1}.welcome-panel .primary{height:54px;font-size:16px;border-radius:20px}.food-controls.single{justify-content:center}#tutorial{position:absolute;top:472px;left:35px;right:35px;padding:13px 18px 14px;border-radius:23px;background:#f8fff9ee;border:1.5px solid #c4e2d0;box-shadow:0 6px 20px #4a775412;text-align:center;pointer-events:none}#tutorial-step{display:block;font-size:10px;color:#4b9b70;letter-spacing:1px;margin-bottom:6px}#tutorial-title{display:block;font-size:17px;color:#325c44}#tutorial-detail{font-size:11px;color:#6a8673;line-height:1.7;margin:6px 0 0}#replay-tutorial{margin-top:3px;font-size:11px}

.welcome-panel #start-tutorial{margin-top:30px}

/* Home uses the same mint room, warm white cards, and orange-cat cutout art as play. */
#home{position:absolute;inset:0;z-index:3;overflow:hidden;color:#28533a;background:#eef8ee}
#home::before{content:"";position:absolute;inset:0;background-image:var(--home-background,url('./art/room.png'));background-position:center;background-size:cover;background-repeat:no-repeat;opacity:.82}
#home::after{content:"";position:absolute;inset:0;background:linear-gradient(#ecf9eddd 0,#f3fff0b8 25%,#eff9eb44 47%,#eaf7eddd 76%,#eaf7ed 100%);pointer-events:none}
#home>*{position:absolute;z-index:1}.home-top{left:25px;right:25px;top:25px;display:flex;align-items:center;justify-content:space-between}.home-badge{padding:10px 15px;border:1px solid #d6e9d8;border-radius:15px;background:#fafff4de;color:#4e9570;font-size:12px;font-weight:800;letter-spacing:2px;box-shadow:0 3px 12px #547d4d12}.home-round{width:45px;height:45px;border-radius:16px;border:1.5px solid #d4e6d7;background:#fbfff8e9;color:#39684b;font-size:25px;box-shadow:0 4px 0 #bcd7c175}.home-title{top:91px;left:0;width:100%;text-align:center}.home-title span{font-size:12px;letter-spacing:3px;color:#699879;font-weight:800}.home-title h1{font-size:39px;letter-spacing:-2px;color:#236346;margin:12px 0 5px;text-shadow:2px 2px #fff,0 4px 15px #ffffff}.home-title p{margin:0;font-size:13px;color:#668f72}.home-title h1::after{content:'✿';color:#f48d9d;font-size:21px;position:relative;top:-19px;left:3px}
#home-hero{left:0;top:185px;width:420px;height:310px;pointer-events:none}.home-level{top:491px;left:35px;right:35px;min-height:45px;display:flex;align-items:center;gap:8px;padding:0 14px;border:1px solid #d5e7d6;border-radius:18px;background:#fafff8ec;box-shadow:0 5px 15px #335b3a13;font-size:12px;font-weight:750}.home-level i{font-style:normal;color:#f2aa65}.home-level b{font-size:10px;font-weight:650;color:#829f85;margin-left:auto}
.home-start{top:550px;left:34px;width:352px;height:68px;padding:0 25px;border:0;border-radius:24px;background:linear-gradient(155deg,#67d894,#25a96d);box-shadow:0 7px 0 #238c5b,0 15px 20px #288b6242;color:#fff;font-size:23px;font-weight:900;letter-spacing:2px;display:flex;align-items:center;justify-content:center;gap:12px}.home-start:active{transform:translateY(4px);box-shadow:0 3px 0 #238c5b}.home-start i{font-style:normal;font-size:23px;font-weight:400}
.home-actions{top:643px;left:34px;right:34px;display:flex;gap:12px}.home-actions button{flex:1;height:103px;border:1.5px solid #d5e9d7;border-radius:23px;background:#fbfff9e8;box-shadow:0 5px 0 #bedac479;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#315d43}.home-actions button:active{transform:translateY(3px)}.home-action-icon{width:33px;height:33px;line-height:33px;border-radius:12px;background:#e5f6e9;color:#3aa976;font-size:22px;margin-bottom:5px}.home-action-icon.star{background:#fff0db;color:#eca85d}.home-actions b{font-size:15px}.home-actions small{color:#8ca796;font-size:10px;margin-top:4px}.home-footer{bottom:21px;left:0;width:100%;text-align:center;font-size:10px;color:#79a284;letter-spacing:2px}
#home-panel{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;background:linear-gradient(160deg,#f4fcf4,#e8f5ed);color:#2e5940}.home-panel-head{height:76px;flex-shrink:0;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;padding:17px 22px;border-bottom:1px solid #d7e9da}.home-panel-head button{border:1px solid #d2e7d5;background:#fbfff8;width:39px;height:39px;border-radius:13px;color:#456b51;font-size:29px;line-height:1}.home-panel-head h2{font-size:20px;text-align:center;margin:0}#home-panel-content{padding:20px 21px 30px;overflow:auto;overscroll-behavior:contain}.panel-lead{font-size:13px;line-height:1.8;color:#71907b;margin:0 0 17px}.panel-feature{border:1px solid #d7e9db;background:#fcfffb;border-radius:24px;padding:17px;margin-bottom:17px;box-shadow:0 5px 20px #375e4510}.panel-feature b{font-size:17px}.panel-feature p{font-size:11px;line-height:1.7;color:#759180;margin:7px 0 0}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-top:1px solid #e3eee5}.setting-row:first-child{border:0;padding-top:0}.setting-row span{font-weight:700;font-size:14px}.setting-row small{display:block;font-size:10px;color:#89a393;font-weight:400;margin-top:4px}.setting-toggle{border:0;border-radius:14px;background:#38b77b;color:white;padding:8px 16px;font-weight:800;font-size:12px}.setting-toggle.off{background:#d9e2d9;color:#6c8373}.panel-link{display:block;color:#599673;font-size:12px;margin-top:20px;text-align:center}
.achievement-list{display:grid;gap:11px}.achievement{display:flex;align-items:center;gap:12px;background:#fcfffb;border:1px solid #dbeadc;border-radius:18px;padding:13px}.achievement-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:20px;color:#c9d5c9;background:#ecf2ed}.achievement.done .achievement-icon{color:#edaf5f;background:#fff1d9}.achievement b{font-size:13px}.achievement small{display:block;color:#8fa898;margin-top:4px;font-size:10px}.achievement-mark{margin-left:auto;font-weight:900;color:#afc3b2}.achievement.done .achievement-mark{color:#35ac73}

.chapter-card{border:1px solid #d5e4d7;border-radius:21px;overflow:hidden;background:#fcfffb;margin-bottom:18px}.chapter-cover{height:125px;background-size:cover;background-position:center 32%;position:relative;display:flex;flex-direction:column;justify-content:end;padding:15px;color:#fff;text-shadow:0 1px 3px #28443688}.chapter-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#243f3cc9)}.chapter-cover>*{z-index:1}.chapter-cover span{font-size:10px;letter-spacing:1px}.chapter-cover b{font-size:23px;margin:5px 0}.chapter-cover small{font-size:10px;color:#f2ffed}.level-grid{padding:13px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.level-tile{height:57px;border:1px solid #d8e5db;background:#f2f8f0;color:#4c7656;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.level-tile b{font-size:16px}.level-tile small{font-size:8px;color:#99af9c}.level-tile.passed small{color:#d79b40}.level-tile.current{border:2px solid var(--chapter-color);background:#e5f4e8}.level-tile:disabled{opacity:.5}.level-tile:active{transform:translateY(2px)}
