:root{--ink:#594c43;--cream:#faf5e9;--mint:#c4dfce;--pink:#efc4b6;--line:#d9cebb;--shadow:0 6px 0 #584b3d16;font-family:ui-rounded,"PingFang TC","Microsoft JhengHei",sans-serif;color:var(--ink);background:#f4eddd;font-size:22px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;min-width:64px;min-height:64px;border:2px solid var(--line);border-radius:22px;background:var(--cream);padding:12px 18px;box-shadow:var(--shadow);touch-action:manipulation;transition:transform .15s}button:active{transform:scale(.95)}button:disabled{opacity:.48;cursor:default}button.primary{background:var(--mint);border-color:#94b8a2}button.pink{background:var(--pink)}button.flat{box-shadow:none;background:transparent}button.selected{outline:3px solid #a17b4d;outline-offset:2px}input,select,textarea{min-height:64px;padding:12px;border:2px solid var(--line);border-radius:14px;background:#fffaf1;max-width:100%}input[type=range]{padding:0}input[type=checkbox]{width:64px}ruby{ruby-position:over;white-space:nowrap;line-height:2}rt{font-size:.43em;font-weight:500;letter-spacing:0;line-height:1.1}h1,h2,h3,p{margin:.35em 0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.05rem}.small{font-size:.78rem}.muted{color:#85796e}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.panel{background:#fffaf0e8;border:2px solid var(--line);border-radius:28px;padding:22px;box-shadow:var(--shadow)}header{padding:16px max(20px,env(safe-area-inset-right)) 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.identity{display:flex;gap:14px;align-items:center}.avatar{width:76px;height:76px;border:4px solid #fffaf0;border-radius:50%;object-fit:cover;background:var(--mint)}.eyebrow{font-size:.65rem;letter-spacing:.16em}.wallet{background:#f5df9d;border-radius:24px;padding:12px 20px;white-space:nowrap;font-weight:800}.wallet b{font-size:1.6rem}nav{display:flex;gap:10px;overflow-x:auto;padding:10px 20px 20px;scrollbar-width:thin}nav button{white-space:nowrap;flex-shrink:0;background:#f9f3e6}nav button.active{background:var(--mint);border-color:#8fb49e}main{max-width:1440px;margin:auto;padding:0 22px 30px}.scene-title{margin-bottom:18px}.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.room{position:relative;height:460px;overflow:hidden;isolation:isolate;border:3px solid #d1b99a;border-radius:100px 100px 24px 24px;background:linear-gradient(#ece4cf 0 65%,#dbbea0 65% 67%,#ead4b4 67%);touch-action:none}.room.yard{background:linear-gradient(#cce5ed 0 52%,#bed7a0 52%);border-color:#a7ba88}.window{position:absolute;left:10%;top:12%;width:125px;height:155px;border:10px solid #fff8e9;border-radius:65px 65px 8px 8px;background:linear-gradient(#bbdce6,#edf3dc);box-shadow:0 4px 0 #584b3d12}.window:after{content:'';position:absolute;left:46%;height:100%;border-left:7px solid #fff8e9}.rug{position:absolute;left:20%;bottom:8%;width:62%;height:22%;background:#e8b9a7;border:9px solid #f6d7c8;border-radius:50%;transform:rotate(-3deg)}.room-label{position:absolute;right:20px;top:20px;background:#fff9e8c9;padding:8px 18px;border-radius:20px;font-size:.8rem}.cat{position:absolute;width:145px;height:155px;bottom:18%;left:45%;transform-origin:50% 90%;touch-action:none;transition:left 3s ease-in-out,bottom 1s;z-index:5;cursor:grab}.cat svg{width:100%;height:100%;overflow:visible}.cat.walk{animation:waddle .7s infinite}.cat.run{animation:waddle .25s infinite}.cat.jump{animation:jump 1s infinite}.cat.play{animation:wiggle .6s infinite}.cat.rub{animation:rub 1.8s infinite}.cat.sleep{transform:rotate(-10deg) scaleY(.72);animation:breathe 3s infinite}.cat.sleep .eye{transform:scaleY(.15);transform-origin:center}.cat.groom{animation:wiggle 1.3s infinite}.cat.stretch{transform:scaleX(1.2) scaleY(.8)}.cat.sit{animation:breathe 3s infinite}.cat-state{position:absolute;bottom:12px;left:18px;font-size:.7rem;z-index:7;background:#fff8e6bb;border-radius:15px;padding:4px 12px}.tool{touch-action:none}.poop{position:absolute;bottom:8%;right:8%;width:76px;height:76px;border:0;background:transparent;padding:0;box-shadow:none;z-index:8}.decor{position:absolute;width:100px;height:100px;touch-action:none;cursor:grab;z-index:3;background:transparent;border:0;box-shadow:none;padding:2px;min-width:64px}.decor svg{width:100%;height:100%}.care-bar{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}.care-bar button{padding:10px 4px}.care-bar .icon{display:block;font-size:28px}.needs{display:grid;gap:14px}.need{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:8px}.meter{height:16px;background:#e8e1d1;border-radius:12px;overflow:hidden}.meter i{display:block;height:100%;background:#9ec3a8;border-radius:12px;transition:width .5s}.message{border-left:5px solid #d8b363;background:#fff6d8;padding:12px 18px;border-radius:12px}.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.slot{min-height:155px;border:3px dashed #cabca6;border-radius:24px;padding:12px;position:relative;background:#fffaf0}.slot time{font-size:.8rem;font-weight:bold;display:block}.slot.dropover{background:#f6e6a7;border-color:#bd9656}.slot.locked{background:#e2e1d8;min-height:90px;border-style:solid}.task-card{border:2px solid #c3aecf;background:#e2d6ed;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:18px;padding:12px;min-height:80px;width:100%;touch-action:none}.task-card[data-task=abacus]{background:#f5dab5}.task-card[data-task=english]{background:#cce5f4}.task-card[data-task=school]{background:#d5e8bc}.task-card[data-task=rest]{background:#f8e9b0}.drawer{padding:18px;border-radius:25px;background:#e9dfce;margin:20px 0}.drawer .grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.drag-ghost{position:fixed;pointer-events:none;opacity:.9;z-index:1000;transform:translate(-50%,-50%) scale(1.06);width:190px;box-shadow:0 15px 30px #47382b44}.slot-actions{display:flex;justify-content:space-between;gap:6px;margin-top:8px}.slot-actions button{font-size:.7rem;padding:6px;flex:1}.timer{text-align:center;max-width:700px;margin:0 auto}.hourglass{width:170px;height:220px;display:block;margin:20px auto;animation:breathe 4s infinite}.shop-item{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.shop-item svg{height:100px;width:120px}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{min-width:64px;min-height:64px;border:4px solid #fff8ec;padding:0}.swatch.selected{outline:3px solid #594c43}.card-back{min-height:220px;background:#e8d9bb;display:flex;align-items:center;justify-content:center;font-size:80px;border-radius:28px;border:5px solid #fff8e5}.reward{animation:reveal .5s ease-out;border:3px solid #d4b775;text-align:center;padding:25px;border-radius:25px;background:#fff7d9}.gold{background:linear-gradient(130deg,#fff9d0,#ebd073,#fff8da)}.outdoors{position:relative;min-height:360px;border-radius:28px;overflow:hidden;background:linear-gradient(#c8e6ee 0 55%,#bcd79e 55%)}.outdoors.beach{background:linear-gradient(#bfe1ef 0 42%,#83cadb 42% 62%,#efd9a5 62%)}.target{position:absolute;border:0;background:transparent;box-shadow:none;font-size:46px;padding:0;min-width:80px;min-height:80px}.night{min-height:100vh;background:#283849;color:#fbecd2;text-align:center;padding:35px 20px}.night .panel{background:#384859;border-color:#53616b}.night .cat-night{width:230px;margin:25px auto}.night button{background:#e6d5ae}.night header{max-width:1000px;margin:auto}.night #gear{background:#66717c;color:white}.form-row{display:grid;gap:8px;margin:12px 0}.parent-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.parent-grid .panel{overflow:hidden}dialog{border:3px solid #cbbb9f;border-radius:30px;padding:26px;background:var(--cream);color:var(--ink);max-width:min(92vw,650px);max-height:90vh;overflow:auto;box-shadow:0 20px 100px #332a3a55}dialog::backdrop{background:#3d384c88;backdrop-filter:blur(5px)}dialog form{display:grid;gap:15px}#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:2000;max-width:92vw;padding:16px 25px;border:2px solid #d1bd95;border-radius:24px;background:#fff7dd;box-shadow:0 8px 30px #352a3d33;display:none}#toast.visible{display:block;animation:reveal .25s ease-out}#particles{position:fixed;inset:0;pointer-events:none;z-index:3000}.particle{position:absolute;font-size:40px;animation:fly 1s forwards}.debug{background:#e8d3e3;padding:8px 18px;border-radius:12px;font-size:.75rem}.empty{text-align:center;padding:25px}.cat-mini{height:120px;width:130px;margin:auto}.catalog{max-height:420px;overflow:auto}.badge{display:inline-block;background:#f6e8b6;padding:10px;border-radius:18px}footer{text-align:center;padding:15px;font-size:.7rem;color:#867869}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pin-dots{font-size:42px;letter-spacing:12px;text-align:center;min-height:60px}.hidden{display:none!important}@keyframes waddle{50%{transform:rotate(4deg) translateY(-5px)}}@keyframes jump{50%{transform:translateY(-60px) rotate(-8deg)}}@keyframes wiggle{50%{transform:rotate(-8deg)}}@keyframes rub{50%{transform:translateX(15px) rotate(8deg)}}@keyframes breathe{50%{scale:1.025}}@keyframes reveal{from{opacity:0;transform:translateY(15px) scale(.9)}to{opacity:1;transform:none}}@keyframes fly{to{transform:translate(var(--dx),-200px) scale(.4);opacity:0}}@media(max-width:850px){:root{font-size:20px}.home-layout{grid-template-columns:1fr}.needs{grid-template-columns:1fr 1fr}.room{height:400px}.identity h1{font-size:1.05rem}.avatar{width:64px;height:64px}header{padding:12px}.wallet{padding:8px 12px}main{padding:0 12px 25px}.panel{padding:16px}.care-bar{grid-template-columns:repeat(3,1fr)}nav{padding:8px 12px 16px}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){:root{font-size:18px}.eyebrow{display:none}.room{height:350px}.cat{width:120px;height:135px}.window{width:90px;height:115px}.slot{padding:8px}.task-card{font-size:.85rem}.parent-grid{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}header{gap:6px}.identity{gap:6px}.wallet b{font-size:1.25rem}.wallet{padding:6px}.scene-title h2{font-size:1.1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.ruby-select{border:2px solid var(--line);border-radius:14px;background:#fffaf1;padding:10px}.ruby-select summary{min-height:64px;cursor:pointer;padding:10px}.ruby-select[open] .stack{padding-top:12px;max-height:340px;overflow:auto}select[hidden]{display:none!important}
.scene-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.place-preview{position:relative;height:150px;border-radius:18px;overflow:hidden}.wardrobe-preview{width:230px;height:250px;margin:20px auto}.wardrobe-preview svg{width:100%;height:100%}.outdoors{height:440px;touch-action:none}.outdoors .target{z-index:8}.outdoors .target svg{width:80px;height:80px}.outing-done{position:absolute;top:25px;left:15%;background:#fff7db;border-radius:20px;padding:15px;z-index:10}.ring-button{position:absolute;bottom:15px;right:15px;z-index:9}.ring-post{position:absolute;left:60%;top:50%;font-size:70px;color:#9e745e}.ring{position:absolute;top:47%;font-size:80px;color:#f7d78b;animation:ring-flight 2.5s infinite}.snow-build{position:absolute;left:58%;top:30%;width:170px;height:180px}.fish-trail{position:absolute;top:40%;font-size:65px;transition:left .7s}.meteor{animation:meteor 5s linear infinite}.cat .tail{transform-origin:120px 125px;animation:tail-sway 3s ease-in-out infinite}.cat .ears{transform-origin:85px 60px;animation:ear-twitch 8s infinite}.cat .eye{transform-box:fill-box;transform-origin:center;animation:blink 6s infinite}.cat.sleep .eye{animation:none;transform:scaleY(.12)}.cat.sleep:after{content:''}.sleep-zzz{position:absolute;top:-10px;right:-5px;color:#857ca8;font-size:28px;animation:zzz 2s infinite}.sleep-zzz[hidden]{display:none}.cat.purring{filter:drop-shadow(0 0 12px #efaac1);animation:purr .2s infinite}.cat.groom svg{animation:groom 1.4s infinite}.cat.stretch svg{animation:stretch 2s infinite}.cat.jump{animation:none}.cat.rub{animation:rub 1.4s infinite}.cat.play svg{animation:toy-play .7s infinite}@keyframes tail-sway{50%{transform:rotate(12deg)}}@keyframes ear-twitch{0%,92%,100%{transform:rotate(0)}95%{transform:rotate(5deg)}}@keyframes blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.08)}}@keyframes zzz{to{transform:translateY(-30px);opacity:.2}}@keyframes purr{50%{transform:translateX(1.5px) rotate(1deg)}}@keyframes groom{50%{transform:rotate(12deg) translateY(7px)}}@keyframes stretch{50%{transform:scale(1.2,.78)}}@keyframes toy-play{50%{transform:rotate(-12deg) translateY(-15px)}}@keyframes meteor{from{left:5%;transform:translateY(-30px)}to{left:85%;transform:translateY(110px)}}@keyframes ring-flight{50%{transform:translate(100px,-45px) rotateX(55deg)}}
@media(prefers-reduced-motion:reduce){.cat *,.meteor,.ring{animation:none!important}}
.bedroom-bed{position:absolute;width:220px;height:180px;right:6%;bottom:18%;opacity:.85}.bedroom .rug{background:#b6b8d1;border-color:#dedcf0}.bedroom .window{border-color:#e8d9ea}.flower-shake{animation:wiggle .4s}.fish-trail{background:transparent;border:0;box-shadow:none;z-index:8;padding:0;touch-action:none}.snow-build{z-index:8;touch-action:none}.outdoors .cat{pointer-events:none}.outdoors .target{touch-action:manipulation}
.cat-hidden{opacity:0}.outdoors .outing-cat{transition:left .8s ease,bottom .8s ease}.outdoors .meteor{animation:meteor 5s linear infinite}
