:root{--ink:#5f5546;--muted:#92816a;--paper:#fff9e9;--cream:#f3e4c9;--border:#ddc7a3;--green:#799578;--sage:#b4c5a2;--peach:#e7ad92;--gold:#eac67a;--shadow:0 7px 0 #b1916940,0 14px 35px #765b3820;--ui-font:'Trebuchet MS','Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#ecdbbe;color:var(--ink);font-family:var(--ui-font);font-size:14px}button,input,select{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #5b9188;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.55}button{transition:transform .15s,background .15s,box-shadow .15s}button:hover:not(:disabled){filter:brightness(1.03)}button:active:not(:disabled){transform:translateY(2px)}svg{display:block;width:100%;height:100%}[hidden]{display:none!important}.icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon svg{overflow:visible}.tiny{font-size:11px}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}b,strong{font-weight:700}#game{height:100%;width:100%;position:relative;isolation:isolate;overflow:hidden;background:#daceb4}#world-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;outline:0}#world{position:absolute;width:1600px;height:1000px;transform-origin:0 0;user-select:none}#scene-art,#light-layer,#actors,#ground-fx,#particles,#objects,#room-decor{position:absolute;inset:0;pointer-events:none}#scene-art{z-index:0}#light-layer{z-index:1;transition:background 2s}#ground-fx{z-index:4}#room-decor{z-index:5}#actors{z-index:10}#objects{z-index:11}#particles{z-index:12}#game[data-theme="sunset"] #scene-art{filter:sepia(.14) saturate(.93)}#game[data-theme="sunset"] #light-layer{background:linear-gradient(130deg,#fbd28445,transparent 70%)}#game[data-theme="night"] #scene-art{filter:brightness(.65) saturate(.73) hue-rotate(7deg)}#game[data-theme="night"] #light-layer{background:radial-gradient(ellipse at 50% 20%,#ffdc952f,transparent 70%)}.world-hotspot{position:absolute;pointer-events:auto;z-index:15;background:transparent;border:0;padding:0;width:150px;height:300px;left:1384px;top:310px;display:flex;align-items:flex-end;justify-content:center}.world-hotspot span{background:#fff8e3e8;box-shadow:0 4px 0 #b5926744,0 8px 16px #6c513e15;border:2px solid #b3c19f;border-radius:20px;padding:8px 13px;font-size:14px;opacity:0;transition:.2s;transform:translateY(10px);white-space:nowrap}.world-hotspot:hover span,.world-hotspot:focus-visible span{opacity:1;transform:translateY(0)}.world-hotspot b{color:#859879}.small-hotspot{height:64px;width:180px;top:700px;left:997px}.small-hotspot span{font-size:12px;padding:6px 10px}#bed-spot{left:201px;top:748px}
.game-hud{position:absolute;top:22px;left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none;z-index:30}.game-hud>*{pointer-events:auto}.home-badge{position:relative;display:flex;align-items:center;gap:12px;background:#fff6dfee;border:2px solid #e9d5b1;box-shadow:var(--shadow);border-radius:23px;padding:10px 25px 10px 10px;min-width:238px;text-align:left}.home-avatar{width:53px;height:53px;display:flex;background:#b6c8a3;border:3px solid #f7ead2;border-radius:18px;box-shadow:0 2px 0 #92a184}.home-avatar .icon{width:40px;height:40px;margin:auto}.home-badge strong{display:block;font-size:21px;letter-spacing:-.8px;line-height:1.1}.home-badge small{display:block;font-size:8px;letter-spacing:1.4px;color:#9e8b6f;margin:5px 0}.home-progress{height:5px;display:block;background:#e1d6bc;border-radius:9px;width:143px;overflow:hidden}.home-progress i{display:block;background:#94ad84;height:100%;border-radius:9px;width:12%}.house-level{position:absolute;width:24px;height:24px;background:#e4bb76;border:2px solid #fff0cb;box-shadow:0 2px 0 #bd9a64;border-radius:50%;right:-7px;bottom:-7px;font-size:12px;text-align:center;line-height:20px}.location-pill{display:flex;align-items:center;gap:9px;margin:10px 0 0;background:#fff6dfbc;border:1px solid #fff9e580;border-radius:20px;padding:10px 17px;}.location-pill .icon{width:30px;height:30px}.location-pill b{font-size:12px;display:block}.location-pill small{font-size:10px;margin-top:3px;display:block;color:#93816a}.wallet-tools{display:flex;gap:9px;align-items:center;margin-top:8px}.wallet{display:flex;align-items:center;gap:10px;background:#fff2cb;border:2px solid #ddbe83;border-radius:22px;box-shadow:0 4px 0 #b08c5444,0 6px 15px #94765216;padding:8px 9px 8px 11px;min-width:145px;height:48px}.wallet strong{font-size:20px;color:#8f7344;min-width:44px;letter-spacing:-.4px}.wallet .icon{width:29px;height:29px}.wallet .plus{font-size:19px;display:grid;place-content:center;background:#bbcb9c;color:#69815e;width:26px;height:26px;border-radius:50%;margin-left:auto;box-shadow:0 2px 0 #85997244}.round-btn{display:grid;place-items:center;width:43px;height:43px;background:#fff8e5e8;border:2px solid #e1cdac;border-radius:50%;box-shadow:0 3px 0 #b3926933}.round-btn .icon{width:23px;height:23px}.round-btn[aria-pressed="false"] .sound-wave{opacity:.18}.quick-tools{position:absolute;left:25px;top:145px;display:grid;gap:14px;z-index:25}.quick-btn{border:0;background:transparent;padding:0;position:relative;display:flex;align-items:center;flex-direction:column;gap:6px}.quick-btn>.icon{height:51px;width:51px;border-radius:18px;border:2px solid #ead1a5;background:linear-gradient(#fff7df,#f4e2bd);box-shadow:0 4px 0 #ac895a38,0 6px 15px #7a624c18;padding:10px}.quick-btn small{font-size:10px;font-weight:bold;text-shadow:0 1px 4px #fff9e8;color:#79674b}.badge-dot{position:absolute;top:1px;right:1px;width:11px;height:11px;background:#d99b7e;border:2px solid #fff7de;border-radius:50%}.quick-btn:nth-child(2)>.icon{background:linear-gradient(#f6ddca,#efc3ab)}.room-counter{position:absolute;right:25px;top:102px;background:#fff6dfbb;border-radius:20px;padding:6px 11px;display:flex;align-items:center;gap:6px;font-size:10px;z-index:23}.room-counter .icon{width:20px;height:20px}
.cat-actor{position:absolute;width:300px;height:260px;pointer-events:auto;cursor:pointer;transform-origin:50% 86%;will-change:transform;border:0;background:none;padding:0;outline:none}.cat-actor:focus-visible .cat-image{filter:drop-shadow(0 0 7px #8fa984)}.cat-image{display:block;width:100%;height:100%;position:relative;transform-origin:50% 85%;transition:filter .2s}.cat-actor.selected .cat-image{filter:drop-shadow(0 0 3px #fff7d0) drop-shadow(0 4px 0 #faf1ca90)}.cat-actor .cat-label{position:absolute;left:50%;top:91%;transform:translateX(-50%);white-space:nowrap;padding:4px 12px 5px;background:#fff8e5e8;border:1px solid #c9b59070;border-radius:16px;box-shadow:0 3px 7px #8d735b19;font-size:12px;font-weight:700;color:#75674f}.cat-actor.selected .cat-label{background:#8ca77e;color:#fff9e7;border-color:#718d64}.cat-actor .selected-ring{position:absolute;left:18%;right:18%;top:83%;height:13%;border:2px dashed #faf3db;border-radius:50%;opacity:0;box-shadow:0 0 0 3px #839b6540}.cat-actor.selected .selected-ring{opacity:1}.cat-actor .cat-thought{position:absolute;right:-5%;top:3%;background:#fff9e5ed;border-radius:18px 18px 18px 3px;padding:8px 12px;font-size:12px;white-space:nowrap;box-shadow:0 3px 0 #ac927333;animation:thoughtIn .4s both;max-width:230px}.cat-actor .cat-thought .icon{width:20px;height:20px}.cat-image .tail-motion{transform-box:fill-box;transform-origin:0 90%;animation:tailWag 3s ease-in-out infinite}.cat-image .head-motion{transform-origin:256px 230px;animation:headBob 5s ease-in-out infinite}.cat-image .blink-eye{transform-box:fill-box;transform-origin:center;animation:blink 5.4s infinite}.cat-actor.walk .cat-image,.cat-actor.run .cat-image{animation:walking .46s ease-in-out infinite}.cat-actor.run .cat-image{animation-duration:.27s}.cat-actor.walk .paw-left,.cat-actor.run .paw-left{animation:stepLeft .45s ease-in-out infinite;transform-box:fill-box}.cat-actor.walk .paw-right,.cat-actor.run .paw-right{animation:stepRight .45s ease-in-out infinite;transform-box:fill-box}.cat-actor.sleep .cat-image{animation:breathing 3s ease-in-out infinite}.cat-actor.eat .cat-image{animation:nibble .75s infinite}.cat-actor.cuddle .cat-image,.cat-actor.happy .cat-image{animation:happyBounce .7s ease-in-out infinite}.cat-actor.groom .cat-image{animation:headBob 2s infinite}.cat-actor.play_ball .cat-image,.cat-actor.play_wand .cat-image{animation:walking .32s infinite}.particle{position:absolute;pointer-events:none;font-weight:bold;text-shadow:0 2px 3px #fff4dc80;will-change:transform,opacity}.particle .icon{width:26px;height:26px}.move-ring{position:absolute;width:52px;height:20px;border:3px solid #fff9d0;border-radius:50%;animation:ringPulse .85s ease-out forwards;box-shadow:0 0 0 5px #9fb89066}.world-ball{position:absolute;width:46px;height:46px;will-change:transform;filter:drop-shadow(0 8px 4px #6f5a3625)}.placed-item{position:absolute;width:140px;height:140px;transform:translate(-50%,-80%);pointer-events:none;filter:drop-shadow(0 7px 4px #67513e18)}.placed-item.ghost{opacity:.6;filter:drop-shadow(0 0 5px #fff5dc)}.wand-pointer{position:absolute;pointer-events:none;width:54px;height:54px;z-index:22;filter:drop-shadow(0 3px 3px #85654025)}
.pet-hud{position:absolute;left:25px;bottom:27px;z-index:28;width:242px;max-height:240px;background:#fff8e8f0;border:2px solid #dfccaa;border-radius:24px;box-shadow:var(--shadow);padding:11px 15px 14px;}.pet-head{display:flex;align-items:center;gap:7px;position:relative;padding-bottom:10px}.pet-avatar{width:61px;height:60px;border-radius:20px;background:#eddfc5;overflow:hidden;flex-shrink:0}.pet-avatar img{width:100%;height:100%;object-fit:cover}.pet-name{font-size:18px;line-height:1.3;margin:0;max-width:115px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pet-breed{font-size:10px;color:#978268;margin:2px 0}.pet-stage{font-size:9px;display:inline-flex;align-items:center;gap:4px;color:#859772}.pet-head .details-btn{position:absolute;right:-6px;top:-2px;background:none;border:0;font-size:20px;letter-spacing:2px;color:#ab9472}.needs{display:grid;grid-template-columns:1fr 1fr;gap:8px 11px}.need{display:flex;align-items:center;gap:5px}.need .icon{width:17px;height:17px}.need-data{flex:1}.need-label{font-size:9px;display:flex;justify-content:space-between;gap:3px;margin-bottom:3px}.need-track{height:5px;background:#e7dbc5;border-radius:5px;overflow:hidden}.need-track i{display:block;height:100%;border-radius:6px;transition:width .4s}.pet-bond{display:flex;align-items:center;gap:6px;font-size:9px;color:#aa8b72;margin-top:10px}.pet-bond .icon{height:14px;width:14px}.pet-state{margin-left:auto;font-size:9px;color:#87966b;max-width:100px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.context-actions{position:absolute;display:flex;align-items:center;gap:5px;background:#fff8e8f7;border:2px solid #d9c6a5;padding:8px;border-radius:23px;box-shadow:0 5px 0 #aa8c6733,0 10px 30px #7a5b3330;z-index:29;transform:translate(-50%,-100%);animation:thoughtIn .2s both}.context-actions:after{content:'';position:absolute;bottom:-9px;left:calc(50% - 8px);width:14px;height:14px;transform:rotate(45deg);background:#fff8e8;border-right:2px solid #d9c6a5;border-bottom:2px solid #d9c6a5}.context-actions button{position:relative;z-index:1;background:#f2e8d5;border:1px solid #e6d6b8;border-radius:14px;width:58px;height:61px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:9px;font-weight:bold}.context-actions button:nth-child(2){background:#f3d8c9}.context-actions button:nth-child(4){background:#dce5cd}.context-actions .icon{width:23px;height:23px}.mode-banner{position:absolute;top:125px;left:50%;transform:translateX(-50%);z-index:27;display:flex;gap:15px;align-items:center;background:#7f9a73;color:#fffbe8;padding:11px 12px 11px 19px;border:2px solid #dce3c2;border-radius:23px;box-shadow:0 5px 0 #69845c44;font-size:12px;white-space:nowrap}.mode-banner button{border:0;background:#ffffff20;border-radius:50%;width:24px;height:24px;color:#fff}.game-tip{position:absolute;left:50%;transform:translateX(-50%);bottom:139px;padding:10px 13px;display:flex;align-items:center;gap:8px;background:#fff6d8df;border:1px solid #e4d2ac;border-radius:19px;box-shadow:0 5px 15px #72563216;font-size:11px;z-index:24;max-width:540px;}.game-tip>.icon{width:23px;height:23px}.game-tip>button{background:none;border:0;color:#a8977d;font-size:13px}.game-dock{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:10px 13px 11px;background:linear-gradient(#fff9e8,#f3e3c4);border:2px solid #d9bf94;border-top-color:#fff8e5;border-radius:29px;box-shadow:0 7px 0 #b895613d,0 12px 24px #8a67321b;z-index:30}.dock-btn{border:0;background:transparent;padding:0 6px;min-width:62px;display:flex;flex-direction:column;align-items:center;gap:7px}.dock-btn>.icon{width:44px;height:44px;background:#efe1c5;border:1px solid #e6d2ad;border-radius:15px;padding:9px;box-shadow:0 2px 0 #ccb18a33}.dock-btn b{font-size:10px;white-space:nowrap;color:#85704f}.dock-btn.primary>.icon{background:#aebf9a;border-color:#91a77b}.dock-btn.primary b{color:#6e855d}.dock-btn:hover>.icon{transform:translateY(-3px)}.dock-sep{height:35px;width:1px;background:#dfcba6;margin:0 3px}.save-indicator{position:absolute;bottom:8px;right:22px;font-size:9px;color:#8e795d;z-index:20;display:flex;align-items:center;gap:4px}.save-indicator i{height:5px;width:5px;border-radius:50%;background:#99aa7d}.build-tag{position:absolute;bottom:8px;left:29px;font-size:8px;letter-spacing:1.1px;color:#a88c64;z-index:20}#toast{position:absolute;top:110px;left:50%;transform:translate(-50%,-10px);background:#6a8060f2;border:1px solid #d4dfbb;color:#fff9e9;border-radius:18px;padding:12px 21px;font-size:12px;box-shadow:0 8px 20px #47603425;z-index:90;opacity:0;pointer-events:none;transition:.2s;max-width:80%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#flash{position:absolute;inset:0;background:#fffcec;pointer-events:none;opacity:0;z-index:100}#flash.flash{animation:flash .65s}
.modal-backdrop{position:absolute;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:25px;background:#62553c55;}.game-modal{position:relative;width:min(980px,92vw);max-height:min(820px,92vh);display:flex;flex-direction:column;background:#fff8e6;border:3px solid #d5b98c;border-radius:31px;box-shadow:0 10px 0 #8c715038,0 25px 80px #51402e40;animation:modalIn .22s ease-out;overflow:hidden}.modal-cap{display:flex;gap:12px;align-items:center;padding:18px 23px;background:linear-gradient(#f8ebca,#f1dfbb);border-bottom:2px solid #e3cdab;flex-shrink:0}.modal-icon{width:48px;height:48px;display:grid;place-items:center;background:#aabb97;border:2px solid #faf1d6;border-radius:17px;box-shadow:0 3px 0 #96a27e50}.modal-icon .icon{width:28px;height:28px}.modal-cap h1{font-size:25px;letter-spacing:-.6px;margin:3px 0 0}.modal-cap small{font-size:9px;letter-spacing:1.9px;color:#9d865f}.modal-cap>.round-btn{margin-left:auto;background:#fff6df}.modal-cap>.round-btn .icon{width:18px;height:18px}#modal-content{overflow-y:auto;overscroll-behavior:contain;padding:21px 25px 26px;scrollbar-color:#cab594 #f4e8cf;scrollbar-width:thin}.tabs{display:flex;gap:7px;padding:0 0 17px;flex-wrap:wrap}.tabs button{display:flex;align-items:center;gap:7px;border:1px solid #e1cead;background:#f0e5cf;border-radius:15px;padding:10px 14px;font-size:11px;font-weight:700}.tabs button.active{background:#93ab81;border-color:#829b6f;color:#fffae7;box-shadow:0 3px 0 #778c6230}.tabs .icon{width:19px;height:19px}.tabs .locked{background:#ece6d7;color:#a29882}.shop-wallet{margin-left:auto;display:flex;align-items:center;gap:6px;background:#faedc8;border:1px solid #e2c791;border-radius:13px;padding:7px 12px;font-weight:bold;color:#9c804b;font-size:13px}.shop-wallet .icon{width:22px;height:22px}.adopt-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:28px}.adopt-scene{position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;border-radius:25px;background:radial-gradient(ellipse at 50% 38%,#fffae2,#eadfbf);overflow:hidden;border:1px solid #e6d4af}.adopt-scene:before{content:'';width:280px;height:280px;background:repeating-conic-gradient(from 0deg,#fff8d380 0deg 15deg,transparent 15deg 30deg);border-radius:50%;position:absolute;top:10px;animation:slowRotate 55s linear infinite}.adopt-scene svg{position:relative;width:260px;height:260px;z-index:1}.adopt-scene .small-spark{position:absolute;color:#b69f6c;font-size:24px}.adopt-scene .tag{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:1.5px;color:#a78c61}.adopt-info h2{font-size:27px;line-height:1.22;margin:13px 0 12px;letter-spacing:-.6px}.adopt-info p{font-size:12px;line-height:1.8;color:#958168;margin:8px 0 15px}.pills{display:flex;gap:6px;flex-wrap:wrap}.pill{display:inline-flex;gap:4px;align-items:center;padding:5px 9px;border-radius:10px;font-size:9px;background:#efe5cf;color:#978160}.pill.green{background:#e1e8cf;color:#789061}.pill.peach{background:#f2decc;color:#ad856a}.cta{display:flex;align-items:center;justify-content:center;gap:9px;background:#8ba37a;color:#fffbea;border:2px solid #768f65;border-radius:16px;box-shadow:0 4px 0 #637d504d;padding:12px 17px;font-size:13px;font-weight:bold;min-height:45px}.cta .icon{width:23px;height:23px}.cta.gold{background:#e6bb70;border-color:#cc9e57;color:#72582e;box-shadow:0 4px 0 #b7854540}.cta.ghost{background:#f0e5ce;border-color:#d9c4a0;color:#8d7553;box-shadow:0 3px 0 #b99a7133}.cta.small{min-height:35px;padding:7px 12px;font-size:11px;border-radius:12px;box-shadow:0 2px 0 #8a705333}.cta.full{width:100%;margin-top:19px}.adopt-info .below-buy{font-size:10px;text-align:center;color:#aa9070;margin:11px 0}.shop-note{margin-top:19px;padding:12px 14px;background:#f1e8d3;border:1px solid #e4d4b8;border-radius:14px;display:flex;gap:9px;align-items:center;font-size:11px;color:#9b8260;line-height:1.6}.shop-note .icon{width:25px;height:25px}.odds-details{margin-top:15px;font-size:11px;color:#927a58}.odds-details summary{cursor:pointer;padding:8px 2px}.odds-table{max-height:210px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-top:6px}.odds-row{display:flex;justify-content:space-between;padding:7px 5px;border-bottom:1px solid #ecdec6;font-size:10px}.store-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.item-card{position:relative;background:#fffbee;border:1.5px solid #e3d1b1;border-radius:20px;padding:13px;text-align:center;display:flex;flex-direction:column;align-items:center}.item-card.owned{background:#f3f3df;border-color:#c0cda8}.item-art{height:103px;width:100%;display:flex;justify-content:center;align-items:center;background:radial-gradient(#f4e5c6,transparent 70%);margin-bottom:4px}.item-art>svg{max-width:115px;height:112px}.item-card h3{font-size:12px;margin:4px 0 5px}.item-card p{font-size:10px;line-height:1.6;color:#a18b6b;margin:0 0 10px;min-height:31px}.item-card .cta{width:100%;margin-top:auto}.item-card .pill{position:absolute;right:7px;top:7px;z-index:2;font-size:8px}.affinity-text{font-size:10px;padding:7px 0 10px;color:#8da172;min-height:31px}.empty-state{text-align:center;padding:45px 30px}.empty-state>.icon{width:85px;height:85px;margin:0 auto 18px;color:#b8ae94}.empty-state h2{font-size:24px;line-height:1.35}.empty-state p{color:#a08b6b;font-size:12px;line-height:1.9;max-width:420px;margin:0 auto 20px}.empty-state .cta{max-width:230px;margin:auto}.panel-intro{font-size:12px;line-height:1.8;color:#99856a;margin:0 0 18px}.panel-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-title-row h2{font-size:17px;margin:0}.panel-title-row span{font-size:11px;color:#99846a}.pet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.pet-card{border:1.5px solid #e5d1af;background:#fffbee;border-radius:22px;padding:10px;text-align:center;position:relative;display:flex;flex-direction:column;align-items:center}.pet-card>svg{height:140px;width:140px}.pet-card h3{font-size:15px;margin:0 0 4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pet-card p{font-size:10px;margin:1px 0 8px;color:#9c8767}.pet-card .pill{margin-bottom:9px}.pet-card .cta{width:100%;margin-top:auto}.pet-card.unseen{background:#ebe8d9;border-style:dashed;opacity:.75}.pet-card.unseen>svg{filter:grayscale(1) brightness(.3);opacity:.22}.pet-card .discovered{position:absolute;right:9px;top:9px;background:#e5ebd4;color:#7e9466;border-radius:50%;padding:4px}.pet-card .discovered .icon{width:13px;height:13px}.filter-row{display:flex;gap:10px;margin-bottom:16px}.text-input{min-width:0;border:1.5px solid #d9c5a4;border-radius:12px;background:#fffbee;color:#7d6b50;padding:10px 13px;width:100%;font-size:12px}.filter-row select{width:150px;flex-shrink:0}.detail-layout{display:grid;grid-template-columns:260px 1fr;gap:28px}.pet-hero{background:radial-gradient(#faf0d4,#eee2c5);border:1px solid #e5d3b0;border-radius:25px;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:290px;padding:15px}.pet-hero svg{width:230px;height:230px}.pet-hero h2{font-size:25px;margin:0}.detail-info h3{font-size:14px;margin:16px 0 8px}.detail-info p{font-size:12px;line-height:1.75;margin:5px 0;color:#998267}.trait-chips{display:flex;gap:8px;flex-wrap:wrap}.trait-chip{padding:8px 12px;border-radius:13px;background:#e7ead4;display:flex;gap:6px;align-items:center;font-size:11px}.trait-chip svg{width:25px;height:25px}.growth-line{display:flex;justify-content:space-between;gap:7px;margin-top:17px}.growth-step{flex:1;text-align:center;background:#efe5cf;border-radius:12px;padding:8px 4px;font-size:9px;color:#a29274}.growth-step.current{background:#b8cba4;color:#5c7550}.growth-step svg{height:48px;width:48px;margin:auto}.rename-row{display:flex;gap:7px;margin-top:14px}.task-row,.gift-row{display:flex;gap:15px;align-items:center;border:1.5px solid #e0cdab;border-radius:19px;background:#fffbee;padding:14px 17px;margin-bottom:11px}.task-row>.icon{width:42px;height:42px;padding:8px;background:#eee0c3;border-radius:15px}.task-row>div,.gift-row>div{flex:1}.task-row h3,.gift-row h3{font-size:13px;margin:0 0 5px}.task-row p,.gift-row p{font-size:11px;color:#a18a67;margin:0;line-height:1.65}.task-reward{display:flex;align-items:center;gap:5px;color:#b0925a;font-size:12px;white-space:nowrap}.task-reward .icon{width:20px;height:20px}.gift-row>svg{width:89px;height:89px;flex-shrink:0}.gift-hero{display:flex;align-items:center;gap:25px;padding:18px 25px;margin-bottom:19px;border:1.5px solid #debe91;border-radius:22px;background:linear-gradient(115deg,#f0d4b3,#f4e4bd)}.gift-hero>.icon{height:72px;width:72px}.gift-hero>div{flex:1}.gift-hero h2{font-size:22px;margin:0 0 7px}.gift-hero p{font-size:11px;color:#a18761;margin:0;line-height:1.8}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.memory-card{padding:10px 10px 17px;background:#fffdf2;border:1px solid #e8d8ba;box-shadow:0 5px 9px #8a6a3e0c;transform:rotate(-1deg);border-radius:4px}.memory-card:nth-child(2n){transform:rotate(1deg)}.memory-photo{background:radial-gradient(#f9e9cc,#d9dfbc);height:158px;display:flex;align-items:center;justify-content:center;margin-bottom:13px}.memory-photo svg{width:145px;height:145px}.memory-card time{font-size:9px;color:#b29a76}.memory-card h3{font-size:13px;margin:6px 0}.memory-card p{font-size:10px;line-height:1.8;color:#9c886b;margin:0}.setting-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #eadac0}.setting-row>div{flex:1}.setting-row h3{font-size:13px;margin:0 0 5px}.setting-row p{font-size:11px;color:#a08767;margin:0;line-height:1.7}.switch{width:46px;height:26px;border:2px solid #d1b996;background:#e3d5b9;border-radius:20px;padding:2px}.switch i{display:block;width:18px;height:18px;border-radius:50%;background:#fff8e3;box-shadow:0 1px 2px #987e5640;transition:.2s}.switch.on{background:#9eb48e;border-color:#8b9f7a}.switch.on i{transform:translateX(19px)}.theme-options{display:flex;gap:8px}.theme-option{padding:10px;border-radius:14px;background:#efe3c8;border:1.5px solid #ddc8a6;display:flex;align-items:center;gap:6px;font-size:10px}.theme-option.active{border-color:#829b6b;background:#dce5c8}.theme-option .icon{width:23px;height:23px}.modal-footer-note{font-size:10px;color:#ab9676;text-align:center;line-height:1.7;margin:18px 0 0}.reveal{text-align:center;padding:8px 20px 15px}.reveal-art{width:270px;height:255px;margin:auto;position:relative;background:radial-gradient(#fff8d0,transparent 70%)}.reveal-art svg{position:relative;z-index:1}.reveal-art:before{content:'';position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(#e8d99650 0deg 15deg,transparent 15deg 30deg);animation:slowRotate 30s linear infinite}.reveal h2{font-size:30px;margin:4px 0 9px}.reveal p{font-size:12px;line-height:1.8;color:#a08762}.reveal .pills{justify-content:center}.reveal .cta{max-width:330px;margin:20px auto 0}.box-shake{animation:boxShake .55s ease-in-out infinite}.decor-tip{font-size:11px;background:#e5ebd4;padding:13px;border-radius:13px;color:#84906b;margin-bottom:17px}.button-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.section-gap{margin-top:25px}
@keyframes tailWag{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}@keyframes headBob{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.5deg)}}@keyframes blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.04)}}@keyframes walking{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}@keyframes stepLeft{0%,100%{transform:translateY(-4px)}50%{transform:translateY(5px)}}@keyframes stepRight{0%,100%{transform:translateY(5px)}50%{transform:translateY(-4px)}}@keyframes breathing{0%,100%{transform:scale(1,1)}50%{transform:scale(1.025,1.015)}}@keyframes nibble{0%,100%{transform:translateY(0)}50%{transform:translateY(4px) rotate(1deg)}}@keyframes happyBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes thoughtIn{from{opacity:0;margin-top:8px}to{opacity:1;margin-top:0}}@keyframes ringPulse{0%{transform:scale(.5);opacity:1}100%{transform:scale(1.7);opacity:0}}@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}@keyframes slowRotate{to{transform:rotate(360deg)}}@keyframes boxShake{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(4deg) translateY(-8px)}}@keyframes flash{0%{opacity:0}15%{opacity:.85}100%{opacity:0}}
.reduced *,.reduced *:before,.reduced *:after{animation-duration:0s!important;transition:none!important}
@media(min-width:1750px){.game-dock{bottom:32px}.pet-hud{bottom:33px;left:33px;width:263px}.game-tip{bottom:148px}.game-hud{left:33px;right:33px;top:26px}.quick-tools{left:34px}}
@media(max-width:1200px){.pet-hud{width:210px;left:16px;bottom:22px;padding:10px 12px}.pet-name{font-size:16px}.pet-avatar{width:48px;height:48px}.pet-avatar svg{width:58px;height:58px}.game-hud{left:16px;right:16px;top:15px}.home-badge{min-width:207px;gap:8px;padding-right:15px}.home-badge strong{font-size:18px}.home-avatar{width:46px;height:46px}.home-progress{width:128px}.location-pill{margin-top:4px;padding:9px 13px}.game-dock{bottom:22px;padding:9px;gap:2px;left:55%}.dock-btn{min-width:57px;padding:0 5px}.game-tip{bottom:130px;font-size:10px;left:56%;max-width:430px}.quick-tools{left:18px;top:119px;gap:11px}.quick-btn>.icon{width:43px;height:43px;border-radius:16px;padding:8px}.room-counter{right:17px;top:88px}.wallet{min-width:120px}.wallet-tools{margin-top:4px;gap:6px}.wallet strong{font-size:17px}.game-modal{max-height:93vh}.modal-cap{padding:14px 20px}.store-grid,.pet-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-height:740px){.game-hud{top:12px}.home-badge{padding:7px 16px 7px 7px}.home-avatar{height:43px;width:43px}.home-badge strong{font-size:18px}.location-pill{margin-top:1px;padding:7px 12px}.wallet-tools{margin-top:1px}.quick-tools{top:108px;gap:9px}.quick-btn>.icon{width:40px;height:40px;padding:7px;border-radius:14px}.quick-btn small{font-size:9px}.pet-hud{bottom:22px;padding:9px 12px;width:212px}.pet-head{padding-bottom:7px}.pet-avatar{height:47px;width:47px}.needs{gap:7px 9px}.pet-bond{margin-top:7px}.game-dock{bottom:22px;padding:8px 11px;gap:2px}.dock-btn>.icon{height:38px;width:38px;padding:7px}.dock-btn{gap:5px}.game-tip{bottom:115px;padding:8px 12px}.modal-backdrop{padding:15px}.game-modal{max-height:94vh}.modal-cap{padding:11px 19px}.modal-cap h1{font-size:22px}.modal-icon{height:42px;width:42px}#modal-content{padding:16px 23px 20px}.adopt-scene{min-height:260px}.adopt-scene svg{height:225px;width:225px}.adopt-info h2{font-size:24px}.room-counter{top:86px}}
@media(max-width:850px){.location-pill{display:none}.pet-hud{width:190px;bottom:118px;left:12px}.game-dock{left:50%;bottom:23px}.game-tip{bottom:125px;left:66%;width:230px;line-height:1.5}.game-hud{left:12px;right:12px}.home-badge{min-width:180px}.home-badge strong{font-size:16px}.home-badge small{font-size:7px;letter-spacing:1px}.home-progress{width:107px}.home-avatar{width:38px;height:38px;border-radius:14px}.home-avatar .icon{width:30px;height:30px}.home-badge{gap:7px}.home-level{display:none}.wallet{height:39px;min-width:105px;padding:5px 7px}.wallet strong{font-size:16px}.wallet .icon{width:24px;height:24px}.wallet .plus{width:22px;height:22px}.round-btn{height:37px;width:37px}.round-btn .icon{height:21px;width:21px}.quick-tools{left:13px;top:108px}.quick-btn>.icon{height:38px;width:38px}.quick-btn small{font-size:8px}.room-counter{top:75px;right:12px;font-size:9px}.game-modal{width:96vw;border-radius:24px}.modal-backdrop{padding:10px}.modal-cap h1{font-size:21px}.store-grid,.pet-grid{grid-template-columns:repeat(3,1fr)}.adopt-layout{gap:18px}.adopt-scene svg{width:210px;height:210px}.adopt-info h2{font-size:23px}.detail-layout{grid-template-columns:210px 1fr;gap:18px}.pet-hero svg{width:185px;height:185px}.memory-grid{gap:12px}.mode-banner{top:98px;font-size:11px;max-width:88%;white-space:normal}}
@media(max-width:540px){.game-hud{gap:6px;top:max(10px,env(safe-area-inset-top))}.home-badge{min-width:0;border-radius:18px;padding:7px 10px 7px 7px}.home-badge strong{font-size:14px}.home-badge small{font-size:6px;letter-spacing:.6px}.home-progress{width:94px}.home-avatar{width:33px;height:33px}.home-avatar .icon{width:26px;height:26px}.house-level{width:20px;height:20px;font-size:10px;line-height:16px}.wallet-tools{gap:5px}.wallet{min-width:86px;height:36px;gap:5px;border-radius:16px}.wallet strong{font-size:14px;min-width:30px}.wallet .icon{width:21px;height:21px}.wallet .plus{width:19px;height:19px;font-size:16px}.round-btn{width:31px;height:31px;border-width:1px}.round-btn .icon{width:18px;height:18px}#fullscreen-btn{display:none}.quick-tools{top:110px;gap:14px}.room-counter{top:79px}.game-dock{width:calc(100% - 24px);bottom:max(24px,env(safe-area-inset-bottom));gap:2px;padding:9px 6px;justify-content:space-around;border-radius:23px}.dock-btn{min-width:0;flex:1;padding:0 1px;gap:6px}.dock-btn>.icon{width:37px;height:37px;padding:7px;border-radius:13px}.dock-btn b{font-size:8px}.dock-sep{display:none}.pet-hud{left:12px;bottom:120px;width:calc(100% - 24px);max-width:none;display:grid;grid-template-columns:143px 1fr;gap:4px 9px;padding:9px 12px;border-radius:20px}.pet-head{padding-bottom:0;gap:6px}.pet-avatar{width:45px;height:45px}.pet-avatar svg{width:54px;height:54px}.pet-head .details-btn{display:none}.pet-name{font-size:15px;max-width:86px}.pet-breed{font-size:8px;max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pet-bond{grid-column:1/-1;margin-top:4px;font-size:8px}.need-label{font-size:8px}.need .icon{width:15px;height:15px}.needs{gap:7px}.game-tip{bottom:239px;left:50%;width:calc(100% - 24px);max-width:none;font-size:10px}.game-tip>.icon{height:20px;width:20px}.context-actions{gap:4px;padding:6px}.context-actions button{width:49px;height:54px;font-size:8px}.context-actions .icon{width:21px;height:21px}.mode-banner{top:109px;max-width:75%;left:57%;padding:9px 10px 9px 14px;font-size:10px}.game-modal{max-height:94dvh;border-width:2px;border-radius:24px}.modal-backdrop{padding:9px}.modal-cap{padding:11px 13px;gap:9px}.modal-cap h1{font-size:20px}.modal-cap small{font-size:7px;letter-spacing:1.3px}.modal-icon{width:39px;height:39px;border-radius:13px}.modal-icon .icon{height:24px;width:24px}#modal-content{padding:14px}.tabs{gap:5px;padding-bottom:14px}.tabs button{padding:8px 9px;font-size:10px;border-radius:11px;gap:4px}.tabs .icon{width:17px;height:17px}.shop-wallet{font-size:11px;padding:5px 8px;order:10;margin-left:0}.adopt-layout{grid-template-columns:1fr;gap:5px}.adopt-scene{min-height:187px;height:187px;border-radius:18px}.adopt-scene svg{width:190px;height:190px}.adopt-scene .tag{bottom:10px;font-size:8px}.adopt-info h2{font-size:23px;margin:12px 0 7px}.adopt-info p{font-size:11px;margin-bottom:10px}.cta.full{margin-top:13px}.store-grid,.pet-grid{grid-template-columns:repeat(2,1fr);gap:10px}.item-card{padding:10px;border-radius:17px}.item-art{height:90px}.item-art>svg{height:95px;width:95px}.item-card h3{font-size:11px}.item-card p{font-size:9px}.item-card .pill{font-size:7px}.pet-card>svg{height:113px;width:113px}.pet-card h3{font-size:13px}.pet-card p{font-size:9px}.detail-layout{grid-template-columns:1fr;gap:12px}.pet-hero{min-height:180px;flex-direction:row;gap:10px}.pet-hero svg{width:150px;height:150px}.pet-hero h2{font-size:21px}.detail-info h3{margin-top:11px}.gift-hero{gap:12px;padding:14px;flex-wrap:wrap}.gift-hero>.icon{width:45px;height:45px}.gift-hero h2{font-size:18px}.gift-hero .cta{width:100%}.gift-row{gap:8px;padding:10px}.gift-row>svg{height:65px;width:65px}.gift-row h3{font-size:11px}.gift-row p{font-size:9px}.gift-row .cta{font-size:9px;min-width:56px;padding:7px}.task-row{gap:10px;padding:11px}.task-row h3{font-size:11px}.task-row p{font-size:10px}.memory-grid{grid-template-columns:repeat(2,1fr);gap:12px}.memory-photo{height:120px}.memory-photo svg{width:110px;height:110px}.memory-card h3{font-size:11px}.memory-card p{font-size:9px}.filter-row{gap:7px}.filter-row select{width:110px}.setting-row{flex-wrap:wrap}.setting-row h3{font-size:12px}.setting-row p{font-size:10px}.theme-options{gap:5px}.theme-option{font-size:9px;padding:7px}.theme-option .icon{height:19px;width:19px}.save-indicator{font-size:8px;bottom:7px;right:12px}.build-tag{font-size:7px;left:13px}.shop-note{font-size:10px}.odds-table{grid-template-columns:1fr}.panel-intro{font-size:11px}.reveal h2{font-size:25px}.reveal-art{width:230px;height:225px}}
/* Distinct runtime motion for the less frequent toy/ambient states. */
.cat-actor.jump .cat-image{animation:catHop 1.05s ease-in-out infinite}
.cat-actor.stretch .cat-image{animation:catStretch 3.5s ease-in-out infinite}
.cat-actor.scratch .paw-right{animation:catScratch .35s ease-in-out infinite;transform-origin:316px 370px}
.cat-actor.curious .head-motion{animation:catLook 2.8s ease-in-out infinite}
.cat-actor.surprised .cat-image{animation:catSurprise 1.2s ease-in-out infinite}
.cat-actor.shy .cat-image{animation:catShy 3.2s ease-in-out infinite}
.cat-actor.sit .cat-image{animation:breathing 4s ease-in-out infinite}
@keyframes catHop{0%,100%{transform:translateY(0) scale(1,1)}20%{transform:scale(1.06,.95)}50%{transform:translateY(-24px) scale(.98,1.04)}75%{transform:translateY(0) scale(1.05,.96)}}
@keyframes catStretch{0%,100%{transform:scale(1,1)}45%,65%{transform:scale(1.06,.93) rotate(-2deg)}}
@keyframes catScratch{0%,100%{transform:translateY(-8px) rotate(-5deg)}50%{transform:translateY(8px) rotate(5deg)}}
@keyframes catLook{0%,100%{transform:rotate(0)}35%{transform:rotate(-8deg)}75%{transform:rotate(5deg)}}
@keyframes catSurprise{0%,100%{transform:translateY(0)}20%{transform:translateY(-8px)}40%{transform:rotate(-2deg)}60%{transform:rotate(2deg)}}
@keyframes catShy{0%,100%{transform:translateX(0)}45%{transform:translateX(-4px) rotate(-2deg)}}

/* V1.2: no CSS translation/scale animation of the character artwork.
   Locomotion and poses are rendered per-joint by CatRig. */
.cat-actor .cat-image,.cat-actor.walk .cat-image,.cat-actor.run .cat-image,.cat-actor.sleep .cat-image,.cat-actor.eat .cat-image,.cat-actor.cuddle .cat-image,.cat-actor.happy .cat-image,.cat-actor.groom .cat-image,.cat-actor.play_ball .cat-image,.cat-actor.play_wand .cat-image{animation:none!important;scale:1 1!important;transform:none!important;filter:none}
.cat-canvas{display:block;width:100%;height:100%;pointer-events:none}
.rig-studio{position:fixed;inset:0;z-index:110;display:grid;place-items:center;background:#4f483d80;padding:24px}
.rig-studio[hidden]{display:none}
.rig-panel{width:min(1030px,95vw);max-height:94vh;overflow:auto;border:2px solid #d8c3a0;border-radius:28px;background:#fff9e9;box-shadow:0 18px 65px #49392840;color:#6a5b49}
.rig-title{display:flex;align-items:center;gap:16px;padding:18px 23px;border-bottom:1px solid #ead9ba}
.rig-title div{flex:1}.rig-title h2{margin:3px 0 4px;font-size:25px}.rig-title small{font-size:9px;letter-spacing:2px;color:#909c7f}.rig-title p{font-size:12px;margin:0;color:#958772}
.rig-title button{border:0;width:35px;height:35px;border-radius:50%;background:#eee3ca;font-size:23px;color:#897961}
.rig-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;padding:22px}
.rig-stage-wrap{background:radial-gradient(ellipse at 48% 38%,#fffaf0,#f0e6d1);border:1px solid #e5d5b4;border-radius:22px;position:relative;overflow:hidden;min-height:340px;display:grid;place-items:center}
.rig-stage-wrap canvas{width:100%!important;height:auto!important;aspect-ratio:1.15;display:block}
.rig-action-badge{position:absolute;top:17px;left:18px;background:#e0e8cf;padding:7px 13px;border-radius:20px;font-size:11px;font-weight:bold;color:#70865b}
.rig-note{position:absolute;bottom:14px;font-size:10px;color:#a3947b;text-align:center;padding:0 15px}
.rig-controls{display:flex;flex-direction:column;gap:13px}.rig-controls label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:bold}
.rig-controls select{padding:10px 12px;border:1px solid #decdaf;border-radius:12px;background:#fffaf0;color:#6d5c47;min-width:0}
.rig-controls .rig-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rig-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.rig-actions button,.rig-toggle{border:1px solid #dfd1b7;background:#f4ebd9;color:#827058;border-radius:11px;padding:9px 5px;font-size:11px;text-align:center;cursor:pointer}
.rig-actions button.active{background:#97ac83;color:#fffcec;border-color:#829b6e}.rig-controls input[type=range]{width:100%;accent-color:#94a980}.rig-toggle{display:flex;gap:7px;align-items:center;justify-content:center;font-weight:normal}.rig-toggle input{accent-color:#8a9f74}
.rig-foot{padding:0 23px 18px;font-size:10px;color:#9b8b72;line-height:1.7}
@media(max-width:650px){.rig-studio{padding:8px}.rig-layout{grid-template-columns:1fr;padding:12px;gap:12px}.rig-stage-wrap{min-height:235px;max-height:260px}.rig-stage-wrap canvas{max-height:260px;width:auto!important}.rig-actions{grid-template-columns:repeat(3,1fr)}.rig-title h2{font-size:19px}.rig-title p{font-size:10px}.rig-title{padding:13px 16px}.rig-foot{padding:0 16px 15px}.build-tag{max-width:190px;font-size:7px}}

/* ===================== Nhà Có Mèo 2.0 additions ===================== */
a{color:#6f8c5f}
.portrait{display:block;width:100%;height:auto;aspect-ratio:240/210;object-fit:contain;background:transparent}
.portrait:not([src]){background:radial-gradient(ellipse at 50% 60%,#efe3c7 30%,transparent 70%);animation:pulseBg 1.2s ease-in-out infinite}
.portrait.face{aspect-ratio:160/150}
@keyframes pulseBg{50%{opacity:.55}}
.item-img{display:block;width:100%;height:100%;object-fit:contain}
.item-art .item-img{max-width:115px;height:112px;margin:auto}
.pet-card>.portrait{width:150px;max-width:100%}
.pet-card.unseen>.portrait{filter:grayscale(1) brightness(.35);opacity:.3}
.pet-hero .portrait{width:240px;max-width:100%}
.pet-hero.small .portrait{width:180px}
.growth-step .portrait{width:56px;margin:auto}
.memory-photo .portrait{height:150px;width:auto}
.gift-row>.portrait{width:92px;flex-shrink:0}
.reveal-art .portrait{position:relative;z-index:1;width:260px;margin:auto}
.reveal-art.small{width:210px;height:190px}.reveal-art.small .portrait{width:200px}
.trait-chip .item-img{width:24px;height:24px}
.pet-avatar{background:#f1e5cb}
.cat-actor .sick-badge{display:none;position:absolute;left:58%;top:18%;width:22px;height:22px;border-radius:50%;background:#d9796b;color:#fff;font-weight:bold;font-size:14px;line-height:22px;text-align:center;box-shadow:0 2px 0 #a6564a;animation:sickPulse 1.6s ease-in-out infinite}
.cat-actor.sick .sick-badge{display:block}
@keyframes sickPulse{50%{transform:scale(1.18)}}
.sick-text{color:#c86b5e}
.health-strip{display:flex;align-items:center;gap:6px;width:100%;margin:-2px 0 9px;padding:6px 8px;border-radius:12px;border:1px solid #efc2b7;background:#fbe6df;color:#a55e52;font-size:10px;text-align:left}.health-strip .icon{width:18px;height:18px}
.context-actions{flex-wrap:wrap;max-width:min(520px,94vw);justify-content:center}
.context-actions button.alert{background:#f7d3ca!important;box-shadow:0 0 0 2px #e39c8d inset}
.pill.red{background:#f6d6cf;color:#b55f52}.pill-row{display:flex;gap:6px}.pills.center{justify-content:center}
.game-modal.wide{width:min(1080px,94vw)}
.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip{border:1px solid #e1cead;background:#f3ead7;border-radius:20px;padding:7px 12px;font-size:11px;font-weight:bold;color:#8d7553}.chip.active{background:#93ab81;color:#fffae7;border-color:#829b6f}
.filter-row.chips{align-items:center}.panel-intro.inline{margin:0 8px 0 0;flex:1}
.sp-badge{position:absolute;left:8px;top:8px;font-size:8px;padding:3px 7px;border-radius:9px;background:#efe5cf;color:#957c5b;z-index:2}.sp-badge.dog{background:#f2dfcf;color:#a4714f}.sp-badge.cat{background:#e3ead3;color:#6d8b5c}.sp-badge.both{background:#e8e2f2;color:#7d6e9b}
.item-card.unfit{opacity:.62}
.pet-card.is-sick{border-color:#e8b3a6}.sick-tag{position:absolute;left:8px;top:8px;background:#f6d6cf;color:#b55f52;font-size:9px;padding:3px 7px;border-radius:9px;font-weight:bold}
.breed-facts p{font-size:12px;line-height:1.75;color:#8f7a60;margin:6px 0}.fun-fact{display:flex;gap:8px;align-items:flex-start;background:#f7efd9;border-radius:12px;padding:9px 11px}.fun-fact .icon{width:20px;height:20px}.fun-fact.small{max-width:420px;margin:10px auto;text-align:left;font-size:11px}
.fact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.fact-grid div{background:#f4ecd9;border-radius:12px;padding:8px 10px}.fact-grid small{display:block;font-size:9px;color:#a89170;letter-spacing:.5px}.fact-grid b{font-size:11px;color:#6e604c}
.pet-hero.live canvas{width:100%;max-width:320px;aspect-ratio:300/260}
.muted{color:#a08e73}.small{font-size:10px}.left{text-align:left}
.rename-row.house{margin:0 0 16px}
/* account button in HUD */
.account-btn{display:flex;align-items:center;gap:7px;height:43px;padding:4px 12px 4px 5px;border-radius:22px;border:2px solid #e1cdac;background:#fff8e5e8;box-shadow:0 3px 0 #b3926933;font-size:11px;font-weight:bold;color:#7e6a4d;max-width:190px}
.account-btn .acc-avatar{width:31px;height:31px;border-radius:50%;background:#f0e2c6;overflow:hidden;display:grid;place-items:center;flex-shrink:0}.account-btn .acc-avatar .icon{width:22px;height:22px}.account-btn .acc-avatar img{width:140%;height:140%;object-fit:cover}
.account-btn .acc-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-btn:not(.logged){background:linear-gradient(#fff4d6,#f6e2b6);border-color:#dcbc7e;animation:gentleGlow 3s ease-in-out infinite}
@keyframes gentleGlow{50%{box-shadow:0 3px 0 #b3926933,0 0 0 4px #f3dca333}}
.build-tag a{color:#a88c64}
.announce{position:absolute;top:84px;left:50%;transform:translateX(-50%);z-index:31;background:#f6e3b5;border:1px solid #dcc083;color:#7c6433;border-radius:14px;padding:7px 14px;font-size:11px;max-width:80%}
#toast.warn{background:#b77b66f2;border-color:#f0cfc2}
.stray-alert{position:absolute;left:1395px;top:600px;z-index:16;border:0;background:#fff4dd;border-radius:18px;padding:8px 12px;font-size:13px;font-weight:bold;color:#9a6a45;box-shadow:0 4px 0 #b88c5c55,0 0 0 4px #f2c98e66;animation:strayBob 1.1s ease-in-out infinite;pointer-events:auto}
@keyframes strayBob{50%{transform:translateY(-6px)}}
/* auth */
.auth-modal #modal-content{padding:0}
.auth-layout{display:grid;grid-template-columns:1.05fr 1fr;min-height:470px}
.auth-art{background:radial-gradient(ellipse at 50% 30%,#fffaf0,#f1e2c4 70%);padding:18px 26px 24px;text-align:center;border-right:2px solid #eddcbc;position:relative;overflow:hidden}
.auth-art:before{content:'';position:absolute;inset:-40%;background:repeating-conic-gradient(#fff3d655 0deg 12deg,transparent 12deg 24deg);animation:slowRotate 80s linear infinite}
.auth-art>*{position:relative}
#auth-scene{width:100%;max-width:420px;aspect-ratio:420/260;display:block;margin:0 auto}
.auth-art h2{font-size:26px;margin:4px 0 6px;letter-spacing:-.5px}.auth-art p{font-size:12px;line-height:1.7;color:#95805f;margin:0 auto 12px;max-width:340px}
.auth-perks{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.auth-perks span{display:flex;align-items:center;gap:4px;font-size:10px;background:#fff8e6;border:1px solid #ead7b3;border-radius:14px;padding:5px 9px}.auth-perks .icon{width:16px;height:16px}
.auth-box{padding:24px 28px}
.auth-tabs{padding-bottom:18px}.auth-tabs button{flex:1;justify-content:center;font-size:13px;padding:11px}
.auth-field{display:block;margin-bottom:13px}.auth-field>span{display:block;font-size:11px;font-weight:bold;color:#85704f;margin-bottom:5px}
.auth-input{display:flex;align-items:center;border:2px solid #e2cfad;background:#fffdf4;border-radius:16px;padding:0 6px 0 14px;transition:border-color .2s,box-shadow .2s}
.auth-input:focus-within{border-color:#9db28a;box-shadow:0 0 0 4px #c9d9b64d}
.auth-input input,.auth-input textarea{flex:1;border:0;background:transparent;padding:12px 0;font-size:14px;color:#5f5546;outline:0;min-width:0;resize:vertical}
.eye-btn{border:0;background:transparent;padding:4px}.eye-btn .icon{width:24px;height:24px}
.auth-error{background:#fbe1da;color:#a2503f;border-radius:12px;padding:9px 12px;font-size:12px;margin-bottom:12px;animation:shakeX .4s}
@keyframes shakeX{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.auth-links{text-align:center;font-size:12px;color:#a08e73;margin:12px 0 0}.link{border:0;background:none;color:#6f8c5f;font-weight:bold;padding:2px;text-decoration:underline}
.consent-note{font-size:10px;color:#a38f72;line-height:1.7;margin:12px 0 0;text-align:center}
.auth-note{display:flex;gap:7px;align-items:center;background:#eef2de;border-radius:12px;padding:8px 10px;font-size:11px;color:#6f8a5c;margin:4px 0 10px}.auth-note .icon{width:20px;height:20px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.spinner{width:16px;height:16px;border:3px solid #fff5d8;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.recovery{text-align:center;padding:10px 24px 22px}.recovery h2{font-size:20px}.recovery p{font-size:12px;line-height:1.8;color:#937d60;max-width:520px;margin:6px auto}
.code-box{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:28px;letter-spacing:3px;background:#fff4d6;border:2px dashed #d9b673;border-radius:16px;padding:14px;margin:14px auto;max-width:420px;color:#6b5528;user-select:all}
.recovery .cta.full{max-width:420px;margin:16px auto 0}
.button-row.center{justify-content:center}
.cta.danger{background:#d7836f;border-color:#bb6a57;box-shadow:0 4px 0 #9d544540}
a.cta{text-decoration:none;display:inline-flex}
/* account */
.logout-btn{margin-left:auto;border:0;background:#f3e1d8;color:#a5604f;border-radius:14px;padding:9px 14px;font-weight:bold;font-size:11px}
.acc-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:18px}.acc-card{background:#fffbee;border:1.5px solid #e6d3b1;border-radius:22px;padding:18px}.acc-card h3{margin:0 0 10px;font-size:14px}.acc-card.danger{border-color:#eec1b5}
.acc-card.who{text-align:center}.big-avatar{width:110px;height:110px;margin:0 auto 8px;border-radius:50%;background:#f0e2c6;display:grid;place-items:center;overflow:hidden;border:4px solid #fff6df;box-shadow:0 4px 0 #cfb48a55}.big-avatar .icon{width:64px;height:64px}.big-avatar img{width:130%;height:130%;object-fit:cover}
.acc-card.who h2{margin:4px 0}.acc-card.who p{color:#a08b6c;font-size:12px}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.stat-row span{background:#f4ead4;border-radius:12px;padding:8px 4px;font-size:10px;color:#9b8463}.stat-row b{display:block;font-size:17px;color:#6e604c}
.avatar-pick{display:flex;flex-wrap:wrap;gap:6px}.avatar-pick button{width:44px;height:44px;border-radius:50%;border:2px solid #e6d3b1;background:#f7eedb;padding:5px;overflow:hidden;display:grid;place-items:center}.avatar-pick button.active{border-color:#8ca77e;box-shadow:0 0 0 3px #c8d8b6}.avatar-pick img{width:150%;height:150%;object-fit:cover}.avatar-pick .icon{width:28px;height:28px}
.sess-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #efe2c9;font-size:12px}.sess-row>div{flex:1}.sess-row small{display:block;color:#a79477;font-size:10px;margin-top:3px}
/* quests, newbie, achievements, events */
.task-row.compact{padding:10px 13px;margin-bottom:8px}.task-row.claimed{opacity:.6}
.event-hero{display:flex;align-items:center;gap:18px;padding:18px 22px;border-radius:24px;margin-bottom:18px;background:linear-gradient(120deg,#f5dfb8,#efd0c1);border:1.5px solid #e2bf93}
.event-hero>.icon{width:66px;height:66px;flex-shrink:0}.event-hero>div{flex:1}.event-hero h2{margin:3px 0 6px;font-size:22px}.event-hero p{margin:0;font-size:12px;line-height:1.7;color:#8e7153}.event-hero small{font-size:9px;letter-spacing:1.3px;color:#9f7d58}
.event-hero.newbie{background:linear-gradient(120deg,#e6edcf,#f4e2bb)}
.event-hero.theme-moon{background:linear-gradient(120deg,#f6e2b0,#e9d0e0)}.event-hero.theme-pumpkin{background:linear-gradient(120deg,#f5c99b,#d7c3e0)}.event-hero.theme-snow{background:linear-gradient(120deg,#e1ecf2,#f3e3d6)}.event-hero.theme-tet{background:linear-gradient(120deg,#f5c9b4,#f6e0a4)}.event-hero.theme-heart{background:linear-gradient(120deg,#f6d0d4,#f4e4c7)}.event-hero.theme-summer{background:linear-gradient(120deg,#cfe7ec,#f5e7bd)}.event-hero.theme-kids{background:linear-gradient(120deg,#d8e8c7,#f6d9c5)}.event-hero.theme-adopt{background:linear-gradient(120deg,#e6dcc8,#d9e6cf)}
.event-points{text-align:center;background:#fff8e6d9;border-radius:18px;padding:10px 16px;min-width:120px}.event-points b{display:block;font-size:30px;color:#8a6a35}.event-points small{font-size:10px;color:#a3895f}.event-points span{display:block;font-size:10px;color:#9b8463;margin-top:4px}
.milestone-track{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.track-bar{grid-column:1/-1;height:10px;background:#eadfc6;border-radius:9px;overflow:hidden}.track-bar i{display:block;height:100%;background:linear-gradient(90deg,#d8b567,#a8bf8c);border-radius:9px}
.milestone{background:#fffbee;border:1.5px solid #e6d3b1;border-radius:18px;padding:10px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.milestone.ready{border-color:#d9b36c;box-shadow:0 0 0 3px #f1dca4}.milestone.claimed{opacity:.55}
.ms-art{width:60px;height:56px;display:grid;place-items:center}.ms-art .icon{width:40px;height:40px}.ms-art img{max-width:60px;max-height:56px}
.milestone b{font-size:15px;color:#7d6844}.milestone small{font-size:9px;color:#9c8566;min-height:26px;line-height:1.4}.milestone .cta{width:100%}
.points-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.points-grid div{display:flex;justify-content:space-between;background:#f6eedb;border-radius:12px;padding:8px 11px;font-size:11px}.points-grid b{color:#8a6a35}
.newbie-days{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nb-day{background:#fffbef;border:1.5px solid #e8d6b5;border-radius:18px;padding:10px 12px}.nb-day.locked{opacity:.55}.nb-day>h3{margin:0 0 8px;font-size:13px;display:flex;gap:5px;align-items:center}.nb-day>h3 .icon{width:16px;height:16px}
.gift-row.final{margin-top:14px;border-color:#dcb97a;background:linear-gradient(110deg,#fff5dc,#f7e7c8)}.gift-row.final>.portrait{width:90px}
.achieve-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.achieve{display:flex;gap:10px;align-items:center;background:#fffbee;border:1.5px solid #e6d3b1;border-radius:18px;padding:10px 12px}.achieve>.icon{width:36px;height:36px;flex-shrink:0}.achieve>div{flex:1}.achieve h3{margin:0;font-size:12px}.achieve p{margin:3px 0 6px;font-size:10px;color:#a08b6c}.achieve small{font-size:9px;color:#a08b6c}.achieve.ready{border-color:#d9b36c;box-shadow:0 0 0 3px #f1dca4}.achieve.claimed{opacity:.6}.achieve .need-track{height:6px}
/* vet */
.vet-layout{display:grid;grid-template-columns:230px 1fr;gap:20px}.vet-status{display:flex;gap:14px;align-items:flex-start;border-radius:20px;padding:16px;background:#eef2df;border:1.5px solid #d6e0bf}.vet-status.warn{background:#fcf0dc;border-color:#ecd0a0}.vet-status.sick{background:#fbe8e1;border-color:#efc5b9}.vet-status>.icon{width:44px;height:44px;flex-shrink:0}.vet-status h2{margin:2px 0 6px;font-size:18px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vet-status p{margin:4px 0;font-size:12px;line-height:1.7;color:#8f7a60}.vet-status small{font-size:9px;letter-spacing:1px;color:#a58d6b}
.symptoms{margin:6px 0;padding-left:18px;font-size:12px;color:#8a6b55;line-height:1.8}
.vet-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.vet-card{background:#fffbee;border:1.5px solid #e6d3b1;border-radius:18px;padding:14px;text-align:center}.vet-card>.icon{width:40px;height:40px;margin:auto}.vet-card h3{font-size:13px;margin:6px 0}.vet-card p{font-size:11px;color:#a08b6c;line-height:1.6;min-height:36px}
.vet-plan{display:flex;gap:14px;align-items:center;margin-top:14px;background:#fffbee;border:1.5px solid #e6d3b1;border-radius:18px;padding:14px 16px}.vet-plan>div{flex:1}.vet-plan h3{margin:0 0 6px;font-size:14px}.vet-plan p{margin:4px 0;font-size:11px;line-height:1.6}
.warn-text{color:#a5664f;display:flex;gap:6px;align-items:flex-start}.warn-text .icon{width:18px;height:18px}
.dose-dots{display:flex;gap:6px;margin:6px 0}.dose-dots i{width:18px;height:18px;border-radius:50%;background:#eadfc6;border:2px solid #d9c6a2}.dose-dots i.done{background:#a8bf8c;border-color:#88a06c}
.disease-book{margin-top:18px;font-size:12px}.disease-book summary{cursor:pointer;display:flex;gap:6px;align-items:center;font-weight:bold;color:#85704f;padding:8px 0}.disease-book summary .icon{width:20px;height:20px}
.disease-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.disease-grid article{background:#fbf4e3;border-radius:14px;padding:10px 12px}.disease-grid h3{margin:0 0 4px;font-size:12px}.disease-grid p{margin:3px 0;font-size:10px;line-height:1.6;color:#8f7a60}.disease-grid small{font-size:9px;color:#a79073}
/* bath */
.bath-modal #modal-content{padding:16px 20px 20px}
.bath-wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}
.bath-stage{position:relative;aspect-ratio:600/420;border-radius:24px;overflow:hidden;background:linear-gradient(#dbeef2,#eef6f2 55%,#f3e6cf 55%);border:2px solid #cfe1e4;touch-action:none;user-select:none}
.bath-stage:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff55 0 38px,transparent 38px 76px),repeating-linear-gradient(0deg,#ffffff44 0 38px,transparent 38px 76px);height:55%}
.tub-back{position:absolute;left:12%;right:12%;bottom:10%;height:36%;border-radius:0 0 50% 50%/0 0 60% 60%;background:#f7fbfc;box-shadow:inset 0 10px 0 #d9ecf1}
.tub-front{position:absolute;left:10%;right:10%;bottom:6%;height:24%;border-radius:0 0 46% 46%/0 0 70% 70%;background:linear-gradient(#ffffff,#e5f1f4);border-top:10px solid #fdfefe;box-shadow:0 8px 0 #b9d4da;pointer-events:none}
.tub-front:before{content:'';position:absolute;left:5%;right:5%;top:-16px;height:22px;border-radius:50%;background:radial-gradient(#bfe2ec,#a6d2df);opacity:.9}
#bath-rig{position:absolute;left:22%;bottom:12%;width:56%;aspect-ratio:300/260}
#bath-fx{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
#bath-calm{position:absolute;left:50%;top:10%;transform:translateX(-50%);z-index:3;animation:strayBob .5s ease-in-out infinite}
.bath-bubble{position:absolute!important;left:52%;top:12%;z-index:4}
.bath-panel .panel-intro{margin:10px 0}
.bath-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bath-tool{border:1.5px solid #e1cead;background:#fbf4e3;border-radius:16px;padding:9px 6px;display:flex;flex-direction:column;align-items:center;gap:3px}.bath-tool .icon{width:28px;height:28px}.bath-tool b{font-size:11px}.bath-tool small{font-size:9px;color:#a08b6c}.bath-tool.active{background:#dfeace;border-color:#9db28a;box-shadow:0 0 0 3px #c9d9b64d}
.bath-meters{display:grid;gap:8px;margin:14px 0}.bath-meters label{font-size:10px;color:#8a7457;display:grid;gap:4px}.bath-meters .need-track{height:8px}
.bath-panel .cta{width:100%}
/* POV */
.pov-vignette{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s;background:radial-gradient(ellipse at 50% 60%,transparent 45%,#1b1a1566 80%,#1b1a15aa 100%);z-index:2}
#game.pov-mode .pov-vignette{opacity:1}
#game.pov-mode #world{transition:transform .25s ease-out}
#game.pov-cat #scene-art,#game.pov-cat #room-decor{filter:saturate(.55) hue-rotate(-14deg) brightness(1.06) contrast(.9) blur(.6px)}
#game.pov-dog #scene-art,#game.pov-dog #room-decor{filter:url(#dog-vision) blur(.8px) brightness(1.02)}
#game.pov-mode .game-hud,#game.pov-mode .quick-tools,#game.pov-mode .game-dock,#game.pov-mode .pet-hud,#game.pov-mode .room-counter,#game.pov-mode .game-tip,#game.pov-mode .world-hotspot,#game.pov-mode .stray-alert{display:none!important}
#pov-hud{position:absolute;inset:0;pointer-events:none;z-index:40}
.pov-top{pointer-events:auto;position:absolute;top:16px;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center;background:#fff8e6ee;border:2px solid #e0cba6;border-radius:22px;padding:10px 12px 10px 18px;max-width:min(760px,94vw);box-shadow:0 6px 0 #a88b6433}
.pov-top small{display:block;font-size:9px;letter-spacing:1.4px;color:#9b8463}.pov-top b{font-size:30px;color:#7f6a45}.pov-top p{margin:0;font-size:11px;line-height:1.55;color:#8b7659;flex:1}
#pov-list{pointer-events:auto;position:absolute;left:16px;top:50%;transform:translateY(-50%);list-style:none;margin:0;padding:10px;display:grid;gap:6px;background:#fff8e6e6;border-radius:18px;border:2px solid #e0cba6}
#pov-list li{display:flex;align-items:center;gap:8px;font-size:11px;padding:4px 8px 4px 4px;border-radius:12px}#pov-list li .item-img{width:34px;height:34px}#pov-list li.done{background:#e1eacf;text-decoration:line-through;color:#7d9368}
.pov-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:#fff8e6d9;border-radius:14px;padding:7px 14px;font-size:11px;color:#8b7659}
.pov-target{position:absolute;width:90px;height:90px;transform:translate(-50%,-75%);pointer-events:none;transition:transform .4s,opacity .6s}
.pov-target>i{position:absolute;left:10%;right:10%;bottom:-2px;height:22%;border-radius:50%;border:3px solid #fff4c4;box-shadow:0 0 18px #ffe48c;animation:ringPulse 1.4s ease-out infinite}
.pov-target.found{opacity:.35;transform:translate(-50%,-75%) scale(.8)}.pov-target.found>i{display:none}
.pov-target.knock{animation:knockOff 1.1s ease-in forwards}
@keyframes knockOff{30%{transform:translate(-30%,-80%) rotate(25deg)}100%{transform:translate(20%,-10%) rotate(160deg);opacity:0}}
.pov-facts{max-width:520px;margin:12px auto;text-align:left}.pov-facts p{display:flex;gap:10px;align-items:center;font-size:11px;line-height:1.6;background:#f7efd9;border-radius:12px;padding:8px 10px}.pov-facts .item-img{width:44px;height:44px;flex-shrink:0}
/* stray */
.stray{text-align:center;padding:4px 16px 12px}.stray h2{font-size:22px;margin:8px 0}.stray p{font-size:12px;line-height:1.8;color:#937d60;max-width:520px;margin:6px auto}
/* welcome */
.welcome{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:radial-gradient(ellipse at 50% 30%,#fff6e1cc,#e8d6b4ee);overflow:auto;transition:opacity .35s}
.welcome.leaving{opacity:0}
.welcome-card{width:min(760px,100%);background:#fff9e9;border:3px solid #d8bf93;border-radius:32px;box-shadow:0 12px 0 #8c715033,0 30px 80px #51402e40;padding:26px 30px 22px;animation:modalIn .35s ease-out}
.welcome-head{display:flex;gap:14px;align-items:center}.welcome-head .logo{width:64px;height:64px;flex-shrink:0}.welcome-head small{font-size:9px;letter-spacing:1.6px;color:#9d865f}.welcome-head h1{margin:2px 0 0;font-size:34px;letter-spacing:-1px}.welcome-head h1 span{font-size:20px;color:#b08a64}
.welcome-lead{font-size:13px;line-height:1.8;color:#87725a;margin:12px 0 16px}
.welcome-pick{display:grid;grid-template-columns:1fr 1fr;gap:14px}.starter{border:2px solid #e3cfab;background:radial-gradient(ellipse at 50% 40%,#fffdf5,#f3e6c9);border-radius:24px;padding:10px 10px 14px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:transform .2s,box-shadow .2s}.starter:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:0 8px 0 #c9ab7c55}.starter span{width:190px;max-width:100%;aspect-ratio:240/210;display:block}.starter span img{width:100%}.starter b{font-size:16px;color:#6f5c42}.starter small{font-size:11px;color:#a08b6c}
.welcome-features{margin:16px 0 12px;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}.welcome-features li{font-size:11px;line-height:1.6;color:#8f7a60;padding-left:18px;position:relative}.welcome-features li:before{content:'✦';position:absolute;left:0;color:#c9a55f}
.welcome-actions{display:flex;gap:10px;justify-content:center}.welcome-actions .cta{min-width:180px}
.welcome-mobile{margin:14px 0 6px;text-align:center;font-size:11px;background:#eef2de;border-radius:14px;padding:9px 12px;color:#6f8a5c}
.welcome-foot{text-align:center;font-size:10px;color:#a8977c;margin:8px 0 0}
.noscript{position:fixed;inset:0;display:grid;place-items:center;background:#f3e4c9;font-size:18px;padding:20px;text-align:center}
@media(max-width:850px){.auth-layout{grid-template-columns:1fr}.auth-art{border-right:0;border-bottom:2px solid #eddcbc;padding:12px 18px}.auth-art p,.auth-perks{display:none}#auth-scene{max-width:300px}.auth-box{padding:18px}.acc-grid,.vet-layout,.bath-wrap,.newbie-days,.achieve-grid,.disease-grid{grid-template-columns:1fr}.vet-actions{grid-template-columns:1fr 1fr}.account-btn .acc-label{display:none}.account-btn{padding:4px}.event-hero{flex-wrap:wrap}.welcome-features{grid-template-columns:1fr}.pov-top p{display:none}#pov-list{top:auto;bottom:60px;left:8px;right:8px;transform:none;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.stray-alert{font-size:16px}}
@media(max-width:540px){.welcome-card{padding:18px 16px;border-radius:24px}.welcome-head h1{font-size:26px}.welcome-pick{gap:8px}.starter span{width:130px}.welcome-actions{flex-direction:column}.fact-grid{grid-template-columns:1fr}.vet-actions{grid-template-columns:1fr}.milestone-track{grid-template-columns:repeat(2,1fr)}.context-actions button{width:46px;height:52px}.account-btn{height:31px}.account-btn .acc-avatar{width:22px;height:22px}}
.rig-actions{max-height:250px;overflow:auto}.rig-actions button.quirk{border-color:#dcc07a;background:#fbf0cf}.rig-actions button.quirk.active{background:#caa458;color:#fffcec}
.lang-pick{display:flex;gap:6px;flex-wrap:wrap}.lang-pick button{border:1.5px solid #ddc8a6;background:#f3e8d1;border-radius:14px;padding:8px 12px;font-size:11px;font-weight:bold;color:#85704f}.lang-pick button.active{background:#93ab81;border-color:#829b6f;color:#fffae7}
.welcome-lang{justify-content:flex-end;margin:-8px -10px 4px 0}.welcome-lang button{padding:5px 10px;font-size:10px}
html[lang="en"] .welcome-lang button[data-lang="en"],html[lang="vi"] .welcome-lang button[data-lang="vi"],html[lang="zh-CN"] .welcome-lang button[data-lang="zh"]{background:#93ab81;border-color:#829b6f;color:#fffae7}
@media(max-width:540px){.pet-hud{bottom:108px}.game-tip{bottom:auto;top:128px;left:auto;right:12px;transform:none;width:calc(100% - 96px)}#world{transition:none}.room-counter{display:none}#world-viewport{background:linear-gradient(#daceb4 0,#daceb4 40%,#e8c08d 60%,#f1d3a3 100%)}}

/* Performance: composited layers, no backdrop blur, no filters on per-frame canvases */
#world{will-change:transform}.cat-actor.selected .cat-image{filter:none!important}.modal-backdrop{background:#5e513bb3}.pet-hud,.game-tip,.location-pill{background:#fff8e8f7}

/* ---------- splash ---------- */
#splash{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#fff8e6,#ecdbbe 75%);transition:opacity .45s,visibility .45s}
body.ready #splash{opacity:0;visibility:hidden}
.splash-inner{text-align:center}.splash-logo{width:96px;height:96px;margin:0 auto;animation:splashBounce 1.1s ease-in-out infinite}.splash-logo .toe{animation:toeWiggle 1.1s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.splash-logo .t2{animation-delay:.1s}.splash-logo .t3{animation-delay:.2s}.splash-logo .t4{animation-delay:.3s}
#splash h1{margin:14px 0 4px;font-size:34px;letter-spacing:-1px;color:#5f5546}#splash p{margin:0;color:#9a8669;font-size:13px}
.splash-walk{position:relative;width:260px;height:48px;margin:18px auto 0;overflow:hidden;border-bottom:3px dashed #d8c3a0}
.walker{position:absolute;bottom:2px;width:58px;animation:walkAcross 3.2s linear infinite}.walker.dog{width:64px;animation-delay:-1.6s}.walker .leg{transform-box:fill-box;transform-origin:top center;animation:legSwing .35s ease-in-out infinite alternate}.walker .l2{animation-direction:alternate-reverse}
@keyframes splashBounce{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}
@keyframes toeWiggle{50%{transform:scale(1.15)}}
@keyframes walkAcross{from{left:-70px}to{left:270px}}
@keyframes legSwing{from{transform:rotate(-22deg)}to{transform:rotate(22deg)}}
.more-btn{display:none!important}
.more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.more-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border:1.5px solid #e3cfab;border-radius:18px;background:#fffbee}.more-item .icon{width:34px;height:34px}.more-item b{font-size:12px;color:#7e6a4d}.more-item .badge-dot{top:8px;right:14px}
/* ---------- phones: nothing should cover the pets ---------- */
@media(max-width:600px){
 .quick-tools{display:none}
 .dock-btn[data-open="memories"],.dock-btn[data-open="decor"],.dock-sep{display:none!important}
 .more-btn{display:flex!important;position:relative}.more-btn .badge-dot{top:0;right:8px}
 .game-dock{padding:7px 6px 8px;bottom:max(10px,env(safe-area-inset-bottom))}.dock-btn>.icon{width:40px;height:40px}
 .pet-hud{left:10px;right:10px;width:auto;bottom:96px;padding:7px 10px;display:flex;align-items:center;gap:10px;max-height:none;border-radius:18px}
 .pet-hud .pet-head{flex:0 0 auto;padding:0;gap:6px}.pet-hud .pet-avatar{width:40px;height:40px;border-radius:14px}.pet-hud .pet-breed,.pet-hud .pet-bond,.pet-hud .details-btn{display:none}.pet-hud .pet-name{font-size:14px;max-width:78px}.pet-hud .pet-stage{font-size:8px}
 .pet-hud .needs{flex:1;grid-template-columns:repeat(4,1fr);gap:5px}.pet-hud .need{flex-direction:column;align-items:stretch;gap:2px}.pet-hud .need .icon{display:none}.pet-hud .need-label{font-size:7.5px}.pet-hud .need-track{height:4px}
 .pet-hud .health-strip{position:absolute;left:0;right:0;top:-30px;margin:0;border-radius:12px}
 .context-actions.docked{position:fixed;left:10px!important;right:10px;top:auto!important;bottom:162px;transform:none;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;max-width:none;padding:6px;gap:5px;scrollbar-width:none;border-radius:18px;animation:none}
 .context-actions.docked::-webkit-scrollbar{display:none}.context-actions.docked:after{display:none}.context-actions.docked button{flex:0 0 58px;width:58px;height:58px}
 .context-actions .ctx-name{flex:0 0 auto;align-self:center;font-weight:bold;font-size:11px;color:#7e6a4d;padding:0 4px;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .game-hud{top:max(8px,env(safe-area-inset-top))}.home-badge{padding:6px 10px 6px 6px}.home-badge small{display:none}.home-progress{width:80px}
 .game-tip{top:74px!important;right:10px!important;width:calc(100% - 20px)!important}
 .mode-banner{top:74px;left:50%;max-width:92%}
 #toast{top:74px}
 .cat-actor .cat-label{font-size:14px}
}
@media(min-width:601px){.context-actions .ctx-name{display:none}}
/* Grids never overflow: long breed names must not widen a column */
.pet-grid,.store-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.achieve-grid,.newbie-days,.disease-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.pet-card,.item-card,.memory-card,.achieve,.milestone{min-width:0}
.pet-card h3,.item-card h3{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#modal-content{overflow-x:hidden}
.pet-hero.live{justify-content:center}
@media(max-width:850px){.pet-grid,.store-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.achieve-grid,.newbie-days,.disease-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:540px){.pet-grid,.store-grid,.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pet-hero.live{flex-direction:column;min-height:0}.pet-hero.live canvas{max-width:260px}.pet-hero.live .pills{flex-direction:row}}
.pet-card.unseen>.portrait{filter:grayscale(1) contrast(.9);opacity:.55}
.portrait.sprite{object-fit:contain;padding:4%}
/* family life */
.world-mouse{position:absolute;width:70px;height:44px;transform:translate(-50%,-80%);z-index:1000;pointer-events:none;transition:opacity .5s}
.world-mouse.caught{opacity:0;transform:translate(-50%,-120%) scale(.4)!important}.world-mouse.gone{opacity:0}
.world-visitor{position:absolute;width:120px;height:190px;transform:translate(-50%,-92%);z-index:900;pointer-events:none;animation:visitorIn .6s ease-out}
.world-visitor.leaving{animation:visitorOut .8s ease-in forwards}
.visitor-bubble{position:absolute;left:70%;top:-6px;white-space:nowrap;background:#fff9e5f2;border-radius:16px 16px 16px 3px;padding:7px 11px;font-size:13px;box-shadow:0 3px 0 #ac927333}
@keyframes visitorIn{from{opacity:0;transform:translate(-20%,-92%)}}@keyframes visitorOut{to{opacity:0;transform:translate(30%,-92%)}}
.need-badge{position:absolute;left:60%;top:12%;width:30px;height:30px;border-radius:50%;background:#fff6dd;border:2px solid #e3c98f;box-shadow:0 2px 0 #b8955f55;display:grid;place-items:center;animation:needBob 1.6s ease-in-out infinite;pointer-events:none}
.need-badge .icon{width:20px;height:20px}.cat-actor.sick .need-badge{left:40%}
@keyframes needBob{50%{transform:translateY(-5px)}}
.away{padding:4px 8px 10px}.away-lead{font-size:15px;font-weight:bold;color:#7e6a4d;margin:4px 0 12px}
.away-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:52vh;overflow:auto}.away-list li{display:flex;gap:10px;align-items:center;background:#fffbee;border:1.5px solid #ecdcbd;border-radius:16px;padding:6px 10px;font-size:12px;line-height:1.5;color:#86715a}.away-list .portrait{width:44px;flex-shrink:0}
.coin-tag{color:#b08a3c;white-space:nowrap}.away-coins{display:flex;gap:6px;align-items:center;font-size:12px;color:#8f7a55;background:#fbf0cf;border-radius:12px;padding:8px 10px}.away-coins .icon{width:20px;height:20px}
.tug-toy{width:60px!important;height:60px!important;transform:translate(-50%,-70%)!important;animation:tugShake .3s ease-in-out infinite}
@keyframes tugShake{50%{transform:translate(-40%,-70%) rotate(8deg)}}
/* ---------- UI review fixes ---------- */
.cat-actor{pointer-events:none}.cat-actor .hit{position:absolute;left:30%;width:40%;top:34%;height:56%;pointer-events:auto;border-radius:45%;cursor:pointer}
.cat-actor .cat-label{opacity:.0;transition:opacity .2s}.cat-actor.selected .cat-label,.cat-actor:hover .cat-label,.cat-actor:focus-visible .cat-label,#game[data-labels="all"] .cat-actor .cat-label{opacity:1}
.context-actions{width:max-content}
.auth-perks>span{display:flex;align-items:center;gap:4px;font-size:10px;background:#fff8e6;border:1px solid #ead7b3;border-radius:14px;padding:5px 9px}.auth-perks span.icon{padding:0;border:0;background:none;width:16px;height:16px}
textarea{font:inherit}
.stray-chip{position:absolute;top:100px;left:50%;transform:translateX(-50%);z-index:32;border:0;background:#fff4dd;border-radius:18px;padding:8px 14px;font-size:12px;font-weight:bold;color:#9a6a45;box-shadow:0 4px 0 #b88c5c55,0 0 0 4px #f2c98e66;animation:strayBob 1.1s ease-in-out infinite}
@media(min-width:851px){.stray-chip{display:none}}
#game[data-theme="night"] .build-tag a,#game[data-theme="night"] .save-indicator{color:#f3e6c8}#game[data-theme="night"] .quick-btn small{color:#fff3d9;text-shadow:0 1px 3px #2f2a22}
@media(max-width:600px){
 .event-hero{flex-direction:column;align-items:flex-start;gap:10px}.event-hero .event-points{align-self:stretch}
 .pet-hero,.pet-hero.small{flex-direction:column!important;min-height:0}.pet-hero .pills{justify-content:center}
 .build-tag,.save-indicator{display:none}
 .round-btn{width:40px!important;height:40px!important}.account-btn{height:40px!important;padding:4px!important}.account-btn .acc-avatar{width:30px!important;height:30px!important}.modal-cap>.round-btn{width:40px;height:40px}
 .pet-hud .need-label{font-size:9px}.dock-btn b{font-size:9.5px}
 #pov-list{font-size:10px;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));max-height:120px;overflow:auto}#pov-list li .item-img{width:26px;height:26px}
 .cat-actor .cat-thought{right:auto;left:40%;max-width:200px;white-space:normal}
}
.pov-actions{pointer-events:auto;position:absolute;right:16px;top:50%;transform:translateY(-50%);display:grid;gap:8px}
.pov-actions button{display:flex;flex-direction:column;align-items:center;gap:2px;width:78px;padding:8px 4px;border:2px solid #e0cba6;border-radius:16px;background:#fff8e6ee;box-shadow:0 4px 0 #a88b6433}
.pov-actions .icon{width:26px;height:26px}.pov-actions b{font-size:11px;color:#7e6a4d}.pov-actions small{font-size:9px;color:#a8977c}
@media(max-width:600px){.pov-actions{top:auto;bottom:190px;right:8px;transform:none;grid-template-columns:repeat(5,1fr);left:8px}.pov-actions button{width:auto}.pov-actions small{display:none}}
.context-actions:after{left:calc(var(--ax,50%) - 8px)}
.growth-step .portrait{width:74px}
#night-sky{position:absolute;inset:0;pointer-events:none;z-index:0;display:none}
#game[data-theme="night"] #night-sky{display:block}
#night-sky .moon{position:absolute;left:833px;top:115px;width:108px;height:108px;border-radius:50%;background:radial-gradient(circle at 40% 38%,#fffbe6,#efe3b3 70%);box-shadow:inset -22px -12px 0 #d9cb93,0 0 40px #fff4c070}
#night-sky i{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff8d8;box-shadow:0 0 6px #fff3b8;animation:twinkle 2.6s ease-in-out infinite}#night-sky i:nth-child(odd){animation-delay:1.1s;width:4px;height:4px}
@keyframes twinkle{50%{opacity:.25}}
.context-actions:after{left:calc(var(--ax,50%) - 8px)}
.growth-step .portrait{width:74px}
#night-sky{position:absolute;inset:0;pointer-events:none;z-index:0;display:none}
#game[data-theme="night"] #night-sky{display:block}
#night-sky .moon{position:absolute;left:833px;top:115px;width:108px;height:108px;border-radius:50%;background:radial-gradient(circle at 40% 38%,#fffbe6,#efe3b3 70%);box-shadow:inset -22px -12px 0 #d9cb93,0 0 40px #fff4c070}
#night-sky i{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff8d8;box-shadow:0 0 6px #fff3b8;animation:twinkle 2.6s ease-in-out infinite}#night-sky i:nth-child(odd){animation-delay:1.1s;width:4px;height:4px}
@keyframes twinkle{50%{opacity:.25}}
