@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');
:root{font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;color:#344e42;background:#f7f7ef;font-synthesis:none;--green:#466d50;--muted:#8a9788}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;color:inherit;background:none;-webkit-tap-highlight-color:transparent;min-height:48px}button:focus-visible,a:focus-visible{outline:3px solid #daa85b;outline-offset:4px}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}button:hover{filter:brightness(.97)}[hidden]{display:none!important}.brand{max-width:1120px;margin:0 auto;padding:25px 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6e9dd}.brand a{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:800;letter-spacing:2px}.brand-icon{font-size:36px;background:#e5ecd9;border-radius:14px;width:49px;height:49px;text-align:center}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:3px;margin-top:4px;color:var(--muted)}.header-actions{display:flex;gap:12px;align-items:center}.header-actions button{border:1px solid #e0e5d8;border-radius:24px;padding:0 18px;font-size:12px}#sound{font-size:22px;width:48px;padding:0}main{max-width:900px;margin:auto;padding:34px 28px 10px}.intro{text-align:center;margin-bottom:29px}.eyebrow{font-size:10px;letter-spacing:4px;color:#8a9e76;font-weight:700}h1{font-size:31px;letter-spacing:2px;margin:12px 0 10px;font-weight:600}.intro p{color:#8b9585;font-size:13px;margin:0}.mobile-break{display:none}.world-card{background:#fffdf5;border:1px solid #e4e7d9;border-radius:25px;overflow:hidden;box-shadow:0 12px 40px #364c3210}.pet-top{padding:22px 28px;display:flex;justify-content:space-between;align-items:center}.pet-top strong{font-size:21px}.online{display:inline-block;width:7px;height:7px;border-radius:50%;background:#8ca46f;margin-right:9px}.tag{margin-left:12px;font-size:10px;padding:5px 10px;background:#edf0df;border-radius:12px;color:#87936c}.pet-top p{font-size:11px;color:#929a89;margin:6px 0 0 16px}.growth-box{width:210px;text-align:left;padding:0}.growth-box>span{display:flex;justify-content:space-between;font-size:11px}.growth-box b{font-weight:500;color:#87966e}.progress{height:6px;background:#e8ebdb;border-radius:6px;overflow:hidden;margin:8px 0 3px}.progress i{height:100%;background:#9bae77;display:block;border-radius:6px;transition:width .5s}.growth-box small{font-size:9px;color:#9da58e}.scene{height:405px;position:relative;overflow:hidden;background:linear-gradient(#e9efdb,#f0f2d8 70%);isolation:isolate}.scene-chip{position:absolute;left:23px;top:20px;border-radius:20px;background:#fffdf2b8;padding:7px 13px;font-size:11px;color:#84916b;z-index:2}.scene-switch{position:absolute;right:20px;top:13px;font-size:12px;z-index:2}.sun{position:absolute;width:85px;height:85px;right:22%;top:38px;background:#f9e9ac;border-radius:50%;box-shadow:0 0 0 17px #f8edbc45,0 0 0 35px #f8edbc25}.cloud{position:absolute;background:#fffdf1a6;width:90px;height:20px;border-radius:50%;top:90px}.cloud:after{content:"";position:absolute;width:45px;height:30px;border-radius:50%;background:inherit;bottom:5px;left:20px}.cloud-one{left:25%;animation:drift 14s ease-in-out infinite alternate}.cloud-two{right:7%;top:130px;transform:scale(.7)}.hill{position:absolute;width:120%;height:260px;border-radius:50%;left:-10%;bottom:-150px;background:#c5d6aa}.hill-back{bottom:-115px;left:-40%;background:#d7e2bc}.hill-front{transform:rotate(-8deg)}.tree{position:absolute;bottom:75px;z-index:-1}.tree i{display:block;width:26px;height:220px;background:#b6b98b;border-radius:20px}.tree b{position:absolute;width:200px;height:260px;border-radius:48%;background:#a5bd8b;bottom:80px;left:-85px;box-shadow:inset -24px 0 #98b48255}.tree-left{left:5%;transform:rotate(-7deg)}.tree-right{right:1%;transform:scale(.8);opacity:.6}.hut{position:absolute;bottom:78px;left:10%;width:130px;height:128px;background:repeating-linear-gradient(0deg,#d9bc91 0 23px,#cfae8133 23px 25px);border-radius:5px;transform:rotate(-3deg)}.roof{position:absolute;left:-20px;top:-62px;border-left:85px solid transparent;border-right:85px solid transparent;border-bottom:75px solid #839c6e}.door{position:absolute;bottom:0;left:21px;width:40px;height:65px;background:#ad986f;border-radius:22px 22px 0 0}.window{position:absolute;right:18px;top:25px;width:32px;height:32px;background:#f9e8ae;border:5px solid #b9a278;border-radius:50%}.meadow .hut{display:none}.meadow{background:linear-gradient(#e0efed,#eef4d2)}.meadow .tree-left{transform:scale(.7);left:-2%;opacity:.6}.sprig{position:absolute;bottom:42px;font-size:24px;color:#f9f2d7}.s1{left:14%;transform:rotate(20deg)}.s2{right:19%;bottom:70px;color:#fffdf4}.s3{right:9%;font-size:16px}.s4{left:29%;bottom:65px;font-size:17px;color:#f0d493}.pet{position:absolute;width:275px;height:300px;left:50%;bottom:32px;transform:translateX(-50%);padding:0;z-index:3;touch-action:none}.pet svg{width:100%;height:100%;overflow:visible}.pet #animal{transform-origin:200px 390px;animation:breathe 4s ease-in-out infinite}.eyes{transform-origin:200px 160px;animation:blink 5.5s infinite}.ear{transform-box:fill-box;transform-origin:center;animation:ear 7s infinite}.open-mouth{display:none}.hungry .open-mouth,.eating .open-mouth{display:block}.hungry .mouth,.eating .mouth{display:none}.eating #head{animation:chew .35s infinite alternate;transform-origin:200px 240px}.pet.happy #head{animation:nuzzle .5s ease-in-out 3;transform-origin:200px 240px}.entrance{animation:enter 1.4s ease-out}.pet.waving #arm-right,.pet.highfive #arm-right{transform-origin:274px 255px;animation:wave .6s ease-in-out infinite alternate}.pet.highfive.left-hand #arm-left{transform-origin:126px 255px;animation:waveleft .6s ease-in-out infinite alternate}.pet.highfive.left-hand #arm-right{animation:none}.pet.celebrate #animal{animation:celebrate .6s ease-in-out 4}.bubble{position:absolute;top:53px;left:50%;transform:translateX(-50%);border:1px solid #e5e9d9;background:#fffdf7ee;border-radius:18px;padding:10px 17px;font-size:12px;z-index:5;white-space:nowrap;box-shadow:0 5px 15px #486a4310}.bubble:after{content:"";position:absolute;bottom:-7px;left:48%;width:12px;height:12px;background:#fffdf7;transform:rotate(45deg)}.scene-caption{position:absolute;bottom:14px;left:0;width:100%;text-align:center;font-size:10px;color:#789065;letter-spacing:1px}.care-bar{display:flex;align-items:center;justify-content:space-between;padding:19px 27px}.care-bar>div{display:flex;align-items:center;gap:12px}.leaf-dot{font-size:30px;background:#eff1e1;border-radius:50%;width:44px;height:44px;text-align:center;color:#8ba56a}.care-bar strong{display:block;font-size:13px;font-weight:500}.care-bar small{display:block;color:#9da28e;font-size:10px;margin-top:5px}.primary{background:#4d7054;color:#fffef2;border-radius:14px;padding:0 25px;font-size:13px;box-shadow:0 3px 0 #38563e}.activity-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.activity-nav button{text-align:left;position:relative;background:#fffdf6;border:1px solid #e7e9dc;border-radius:17px;padding:19px 15px 19px 65px;min-height:88px}.nav-icon{position:absolute;left:14px;top:23px;width:38px;height:38px;border-radius:12px;text-align:center;font-size:24px;line-height:38px}.peach{background:#f7e5d8;color:#bc977a}.green{background:#e8eedb;color:#8a9f6f}.yellow{background:#f6edcc;color:#b3a261}.activity-nav strong{display:block;font-size:13px;font-weight:500}.activity-nav small{display:block;font-size:9px;color:#9ba18f;margin-top:6px}.activity-nav b{position:absolute;right:12px;top:10px;font-weight:400;color:#a1ac91;font-size:13px}footer{text-align:center;color:#94a083;font-size:11px;margin:29px 0 10px;letter-spacing:1px}footer>span{color:#bdad86;margin-right:6px}footer small{display:block;font-size:9px;color:#afb5a2;margin-top:7px}dialog{border:1px solid #e0e6d5;border-radius:24px;padding:32px;background:#fffdf5;color:#344e42;width:min(470px,92vw);max-height:85dvh;box-shadow:0 24px 100px #243e3b33}dialog::backdrop{background:#2c443d66;backdrop-filter:blur(5px)}.close{position:absolute;top:7px;right:9px;font-size:28px;width:44px;color:#95a087}h2{font-size:23px;margin:8px 0 12px}dialog p{font-size:13px;line-height:1.8;color:#8c9784}dialog label{display:block;font-size:12px;margin:14px 0 6px}input,textarea,select{width:100%;padding:12px;border:1px solid #dbe1d1;border-radius:10px;background:#fafbf3;color:#344e42}form>.primary{width:100%;margin-top:20px}.task-row,.skill-row{padding:15px 0;border-bottom:1px solid #e7e9dc}.task-row strong{font-size:14px}.task-row small{display:block;color:#8e9c83;font-size:11px;margin:7px 0}.task-row button,.soft-button{background:#edf0e0;padding:0 15px;border-radius:12px;font-size:12px;margin:5px 4px 0 0}.task-actions{display:flex;gap:5px;flex-wrap:wrap}.empty{text-align:center;padding:25px 0}.empty span{font-size:45px}.split{display:flex;gap:10px}.split>label{flex:1}.mini{font-size:11px!important;color:#9ba48e!important}.wide{width:100%}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);transition:transform .3s;background:#3b5a46;color:white;padding:12px 22px;border-radius:14px;z-index:20;font-size:13px;max-width:90vw;text-align:center}#toast.visible{transform:translateX(-50%) translateY(0)}#food-tray{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#fffdf2;border:1px solid #dce4ce;box-shadow:0 10px 40px #253b3525;padding:13px 22px;border-radius:22px;z-index:12;display:flex;align-items:center;gap:15px;font-size:12px;width:max-content;max-width:95vw}#leaf{font-size:42px;touch-action:none;background:#e8eed8;border-radius:16px;width:65px;height:65px;color:#668447;cursor:grab}#food-tray small{display:block;color:#98a38a;font-size:10px;margin-top:5px}.drag-leaf{position:fixed;pointer-events:none;z-index:50;font-size:48px;color:#628447;transform:translate(-50%,-50%)}#save-error{position:fixed;top:0;left:0;right:0;padding:12px;background:#ffe0ad;text-align:center;z-index:99;font-size:12px}.ball{position:absolute;z-index:8;left:calc(50% - 25px);bottom:60px;width:50px;height:50px;border-radius:50%;background:#e9b66a;color:#f8d89e;font-size:30px;border:4px solid #fff6d9;animation:bounce 2.2s ease-in-out infinite}.game-controls{display:flex;gap:8px;margin-top:15px}.spark{position:absolute;left:50%;top:50%;font-size:26px;color:#d0a457;animation:spark 1.3s forwards;z-index:9}.welcome-icon{width:140px;height:140px;margin:auto}.welcome-icon svg{height:100%;width:100%}
@keyframes breathe{50%{transform:scale(1.018,1.025)}}@keyframes blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.08)}}@keyframes ear{47%,53%{transform:rotate(0)}50%{transform:rotate(6deg)}}@keyframes chew{to{transform:translateY(4px) scaleY(.98)}}@keyframes nuzzle{50%{transform:rotate(7deg)}}@keyframes wave{to{transform:rotate(-115deg)}}@keyframes waveleft{to{transform:rotate(115deg)}}@keyframes enter{from{opacity:0;transform:translate(-50%,50px) rotate(-8deg)}to{opacity:1;transform:translate(-50%,0)}}@keyframes celebrate{50%{transform:translateY(-17px) rotate(3deg)}}@keyframes drift{to{transform:translateX(30px)}}@keyframes bounce{0%,100%{transform:translateX(-90px) translateY(-85px)}50%{transform:translateX(0) translateY(0)}}@keyframes spark{to{transform:translate(var(--x),-150px) rotate(60deg);opacity:0}}
@media(min-width:1100px){main{padding-top:29px}.scene{height:410px}}
@media(max-width:600px){.brand{padding:16px 20px}.brand a{font-size:16px}.brand-icon{font-size:29px;width:42px;height:42px}.header-actions{gap:7px}.header-actions button{padding:0 12px}.header-actions #parent span{display:none}main{padding:26px 14px 10px}.intro{margin-bottom:23px}h1{font-size:26px;line-height:1.5}.eyebrow{font-size:8px;letter-spacing:3px}.mobile-break{display:block}.intro p{font-size:11px}.pet-top{padding:18px}.pet-top strong{font-size:18px}.tag{font-size:8px;padding:4px 7px;margin-left:5px}.pet-top p{font-size:9px;margin-left:0}.growth-box{width:135px}.growth-box>span{font-size:9px}.growth-box small{font-size:8px}.scene{height:380px}.pet{width:255px;height:275px;bottom:32px}.bubble{top:57px;font-size:11px}.hut{left:-30px;transform:scale(.8)}.tree-left{left:-10%}.tree-right{right:-16%}.scene-chip{left:12px;font-size:9px}.scene-switch{right:9px;font-size:10px}.care-bar{padding:16px}.care-bar small{font-size:8px}.care-bar strong{font-size:12px}.primary{padding:0 17px;font-size:12px}.activity-nav{gap:8px;margin-top:13px}.activity-nav button{padding:15px 5px 12px;text-align:center;min-height:112px}.nav-icon{position:static;display:block;margin:0 auto 8px}.activity-nav strong{font-size:11px}.activity-nav small{font-size:8px}.activity-nav b{display:none}.world-card{border-radius:20px}footer{font-size:10px;margin-top:23px}.tree b{width:170px}.split{flex-direction:column;gap:0}dialog{padding:28px 22px}}
.scene-caption{z-index:10}
/* Game surfaces are controls; form text remains editable and selectable. */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
button,a{-webkit-touch-callout:none;touch-action:manipulation}
#leaf,#pet,#parent{touch-action:none}
svg,img{-webkit-user-drag:none}
.bubble{min-height:44px;white-space:normal;max-width:85%;width:max-content}
.bubble:focus-visible{outline:3px solid #daa85b}
#sound{width:auto;padding:0 13px;font-size:11px;white-space:nowrap}
.speaking:not(.eating) .mouth{display:none}
.speaking:not(.eating) .open-mouth{display:block;transform-origin:200px 225px;animation:talk .26s ease-in-out infinite alternate}
@keyframes talk{from{transform:scaleY(.35)}to{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
