:root{color-scheme:light;--bg:#f8f6f0;--surface:#fffefa;--text:#455847;--muted:#92978b;--soft:#747f70;--border:#e5e7dc;--sage:#e6ecdf;--sage-strong:#6c8060;--sage-hover:#dce5d2;--accent:#b8916b;--room:#ede9df;--shadow:0 6px 25px #35422a03;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);transition:background .4s,color .4s}button,input{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button,a,input{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--sage-strong)}button{touch-action:manipulation}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.55}svg{display:block}button svg{flex-shrink:0}button{transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}button:active:not(:disabled){transform:translateY(1px)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}::selection{background:#d9e3ce}.hidden,[hidden]{display:none!important}

.site-header,.header{height:94px;max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);gap:24px}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-mark{display:grid;place-items:center;width:41px;height:41px;color:var(--text)}.brand-mark svg{width:36px;height:36px}.wordmark,.brand-wordmark{font-family:'Playfair Display',Georgia,serif;font-size:27px;letter-spacing:-1px;font-weight:500}.wordmark span,.brand-wordmark span{color:var(--sage-strong)}.brand-tagline{font-size:10px;color:var(--soft);letter-spacing:2px;margin:2px 0 0 2px}.header-right,.header-actions{display:flex;align-items:center;gap:12px}nav,.header-nav{display:flex;align-items:center;gap:28px}.nav-link{position:relative;font-size:13px;letter-spacing:.4px;padding:14px 0;color:var(--soft)}.nav-link.active{color:var(--text);font-weight:600}.nav-link.active:after{content:'';position:absolute;bottom:3px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--sage-strong)}.header-divider{width:1px;height:22px;background:var(--border);margin:0 10px}.icon-button{height:36px;width:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:transparent}.icon-button:hover{background:var(--sage)}.icon-button svg{width:17px;height:17px}.sound-button[aria-pressed=true]{background:var(--sage);border-color:var(--sage-strong)}

main{max-width:1240px;margin:0 auto;padding:48px 0 0}.intro{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px}.eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;line-height:1.5;letter-spacing:2.2px;color:var(--sage-strong);text-transform:uppercase;margin-bottom:13px}.eyebrow:before{content:'';width:19px;height:1px;background:var(--sage-strong)}.intro h1{font-size:39px;line-height:1.5;letter-spacing:1px;font-weight:500}.intro h1 em{font-style:normal;color:var(--sage-strong)}.intro h1 span{color:var(--sage-strong)}.intro-note{display:flex;align-items:center;gap:8px;color:var(--soft);font-size:12px;line-height:1.7;padding-bottom:8px}.intro-note svg{width:15px;height:15px;color:#a2a88f}.intro-note .online-dot,.online-dot{width:6px;height:6px;background:#8b9e78;border-radius:50%;display:inline-block}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:stretch;gap:24px}.room-card,.cat-panel,.focus-card,.diary-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.room-card{overflow:hidden;min-width:0}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 26px 18px}.room-heading h2{display:flex;align-items:center;gap:9px;font-size:14px;letter-spacing:.4px;font-weight:500}.room-heading h2 svg{width:17px;height:17px;color:var(--sage-strong)}.room-heading p,.room-status,.status{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--sage-strong);background:var(--sage);padding:6px 9px;border-radius:20px}.room-status:before,.status:before{content:'';display:block;width:4px;height:4px;border-radius:50%;background:var(--sage-strong)}.room-scene{position:relative;height:400px;margin:0 16px;border-radius:12px;overflow:hidden;isolation:isolate;background:var(--room)}.room-art{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:-1}.room-art svg{width:100%;height:100%}.room-art .night-sky,.room-art .moon{opacity:0;transition:opacity .5s}.room-art .day-sky,.room-art .sun{opacity:1;transition:opacity .5s}.speech-bubble{position:absolute;top:28px;left:50%;transform:translateX(-50%);max-width:85%;width:max-content;min-width:150px;padding:12px 20px;border:1px solid #e4e0d3;border-radius:15px;background:#fffdf5ee;color:#6c7863;text-align:center;font-size:12px;line-height:1.7;z-index:5;box-shadow:0 3px 8px #7e765104;pointer-events:none}.speech-bubble:before,.speech-bubble:after{position:absolute;content:'';left:50%;top:100%;width:9px;height:9px;background:#fffdf5;border-right:1px solid #e4e0d3;border-bottom:1px solid #e4e0d3;transform:translate(-50%,-4px) rotate(45deg)}.speech-bubble:after{display:none}.cat-stage{position:absolute;display:block;left:50%;bottom:12px;transform:translateX(-50%);width:270px;max-width:65%;padding:0;background:transparent;border:0;z-index:3;border-radius:44%;cursor:grab;touch-action:manipulation}.cat-stage:active{transform:translateX(-50%)!important;cursor:grabbing}.cat-stage:focus-visible{outline:2px dashed var(--sage-strong);outline-offset:-20px}.cat-stage>.cat-illustration{width:100%;height:auto;overflow:visible}.cat-stage .cat-head{transition:transform .4s}.cat-stage .cat-body{animation:breathe 4s ease-in-out infinite}.cat-stage .cat-tail{animation:tail-sway 4.3s ease-in-out infinite}.cat-stage .cat-eye-open{animation:cat-blink 6s infinite}.cat-stage:hover .cat-head{transform:rotate(-3deg)}.room-floor{position:absolute;left:0;bottom:0;width:100%;height:120px;z-index:-1}.scene-spark{position:absolute;color:#bdaf86;pointer-events:none;animation:sparkle 4s ease-in-out infinite}.scene-spark:nth-of-type(2){animation-delay:1.4s}.scene-prop{position:absolute;bottom:42px;z-index:4;pointer-events:none}.food-bowl{left:23%;width:66px;animation:prop-in .4s ease-out}.yarn-ball{right:23%;width:48px;animation:yarn-roll 1.1s ease-in-out infinite alternate}.sleep-letters{position:absolute;left:59%;top:44%;font-family:Georgia,serif;letter-spacing:5px;color:#859780;font-size:22px;z-index:4;animation:sleep-float 3s ease-in-out infinite;pointer-events:none}.is-sleeping .cat-eye-open,.is-petting .cat-eye-open{opacity:0;animation:none}.is-sleeping .cat-eye-closed,.is-petting .cat-eye-closed{opacity:1}.is-sleeping .cat-head{transform:rotate(6deg) translateY(5px)}.is-sleeping .cat-tail{animation-duration:9s}.is-sleeping .cat-body{animation-duration:5.5s}.is-petting .cat-head{animation:head-nuzzle .7s ease-in-out infinite}.is-petting .cat-tail{animation-duration:1.4s}.is-feeding .cat-head{animation:head-munch .4s ease-in-out infinite}.is-playing .cat-illustration{animation:cat-hop .8s ease-in-out infinite}.is-playing .cat-tail{animation-duration:.7s}

.room-footer{padding:21px 26px 19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.cat-summary{display:flex;align-items:center;gap:12px;min-width:0}.cat-avatar{width:52px;height:52px;background:#f0eee3;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.cat-avatar .cat-illustration{width:66px;min-width:66px;margin-top:12px}.cat-info{min-width:0}.cat-info h3{font-size:17px;line-height:1.4;display:flex;align-items:center;gap:8px;letter-spacing:.5px}.cat-info p{font-size:11px;line-height:1.7;color:var(--soft);margin-top:4px}.rename-button{width:24px;height:24px;display:inline-grid;place-items:center;border:0;background:transparent;border-radius:5px;color:#a0a493;vertical-align:middle}.rename-button:hover{color:var(--text);background:var(--sage)}.rename-button svg{width:12px;height:12px}.bond-badge{font-size:10px;letter-spacing:.3px;color:var(--sage-strong);background:var(--sage);padding:7px 11px;border-radius:20px;white-space:nowrap;display:flex;align-items:center;gap:5px}.bond-badge svg{width:12px;height:12px}.action-dock{margin:0 26px 24px;border:1px solid var(--border);border-radius:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;background:#fafbf5}.action-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;padding:15px 4px 13px;position:relative;min-height:84px}.action-button+.action-button:before{position:absolute;content:'';left:0;top:19px;bottom:19px;width:1px;background:var(--border)}.action-button:hover,.action-button.active{background:var(--sage)}.action-button>svg{width:22px;height:22px;stroke-width:1.5}.action-button span{font-size:11px;font-weight:500;letter-spacing:.8px}.action-button small{font-size:9px;color:var(--muted);letter-spacing:.5px}.action-button:focus-visible{outline-offset:-5px;border-radius:8px}

.cat-panel{padding:25px 23px 20px;min-width:0}.section-label{font-size:9px;letter-spacing:1.7px;line-height:1.4;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.cat-panel header,.cat-panel .panel-header{padding:0;margin:0 0 20px;border:0;display:block;height:auto}.cat-panel h2{font-size:20px;font-weight:500;line-height:1.5;letter-spacing:.4px}.cat-panel header p,.cat-panel .panel-header p{font-size:11px;line-height:1.7;color:var(--soft);margin-top:5px}.cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cat-option{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;min-width:0;background:#f7f6ef;border:1px solid transparent;border-radius:12px;padding:3px 6px 12px;text-align:center;overflow:hidden}.cat-option:hover{background:#f0f2e8;border-color:#d6ddcb;transform:translateY(-2px)}.cat-option.active,.cat-option[aria-pressed=true],.cat-option[aria-selected=true]{border-color:#9aaa89;background:#eaf0e2;box-shadow:inset 0 0 0 1px #9aaa8910}.option-cat{height:92px;width:109px;max-width:100%;display:flex;align-items:center;justify-content:center;margin:0 auto 2px}.option-cat .cat-illustration{width:113px;max-width:initial;height:102px}.option-info h3{font-size:12px;letter-spacing:.3px;font-weight:500;line-height:1.5}.option-info p{font-size:9px;color:var(--soft);margin-top:3px;line-height:1.4}.selected-mark{position:absolute;top:8px;right:8px;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;background:var(--sage-strong);color:#fff;opacity:0}.selected-mark svg{width:9px;height:9px}.cat-option.active .selected-mark,.cat-option[aria-pressed=true] .selected-mark,.cat-option[aria-selected=true] .selected-mark{opacity:1}.panel-note{font-size:10px;color:var(--muted);line-height:1.8;margin-top:18px;text-align:center;display:flex;align-items:center;justify-content:center;gap:5px}.panel-note svg{width:12px;height:12px;flex-shrink:0}

.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.focus-card,.diary-card{padding:24px 27px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.card-heading>div{display:flex;align-items:center;gap:9px}.card-heading h2{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:.4px}.card-heading p,.card-heading>span{font-size:10px;color:var(--muted)}.card-icon{height:29px;width:29px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--sage);color:var(--sage-strong)}.card-icon svg{width:15px;height:15px}.focus-card>p{font-size:11px;color:var(--soft);line-height:1.7;margin-bottom:16px}.focus-options{display:flex;gap:6px}.focus-options button{border:1px solid var(--border);background:transparent;color:var(--soft);font-size:10px;border-radius:6px;padding:5px 10px;white-space:nowrap}.focus-options button.active,.focus-options button[aria-pressed=true]{background:var(--sage);border-color:#b7c3a7;color:var(--text)}.focus-options button:hover{background:var(--sage)}.timer-line{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px}.timer-digits{font-size:38px;font-weight:400;letter-spacing:1px;line-height:1;font-variant-numeric:tabular-nums}.timer-controls{display:flex;align-items:center;gap:7px}.focus-start{background:var(--text);color:var(--surface);border:1px solid var(--text);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 17px;font-size:11px;letter-spacing:.5px;min-width:100px}.focus-start svg{width:13px;height:13px}.focus-start:hover{background:var(--sage-strong);border-color:var(--sage-strong)}.focus-reset{background:transparent;border:1px solid var(--border);border-radius:8px;padding:10px;font-size:11px;color:var(--soft)}.timer-track{height:3px;background:var(--sage);border-radius:4px;overflow:hidden;margin-top:21px}.timer-track span{display:block;height:100%;width:0;background:var(--sage-strong);transition:width 1s linear}.focus-hint,.timer-note{margin-top:10px;font-size:9px;color:var(--muted);line-height:1.6}.diary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:17px}.diary-list li{display:flex;align-items:flex-start;gap:10px;position:relative;font-size:11px;line-height:1.6}.diary-dot{display:block;width:6px;height:6px;background:#bec9ac;border-radius:50%;flex-shrink:0;margin-top:6px}.diary-list li:first-child .diary-dot{background:var(--sage-strong)}.diary-text{flex:1;color:var(--soft);min-width:0;overflow-wrap:anywhere}.diary-time{font-size:9px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:1px}.empty-diary{font-size:11px;color:var(--soft);padding:16px 0}.footer,footer.site-footer{max-width:1240px;margin:32px auto 0;padding:24px 0 28px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px;line-height:1.8}.footer-logo{display:flex;align-items:center;gap:7px;font-family:Georgia,serif;font-size:13px;color:var(--soft)}.footer-logo svg{width:16px;height:16px}.footer p{font-size:10px}.footer-links{display:flex;gap:18px}.footer button{border:0;background:none;padding:0;color:var(--muted);font-size:10px}

.rename-dialog{border:1px solid var(--border);border-radius:20px;padding:29px;background:var(--surface);color:var(--text);max-width:calc(100vw - 40px);width:350px;box-shadow:0 20px 80px #22332625}.rename-dialog::backdrop{background:#26312650;backdrop-filter:blur(3px)}.rename-dialog h2{font-size:20px;font-weight:500;margin-bottom:8px}.rename-dialog p{font-size:12px;color:var(--soft);line-height:1.7;margin-bottom:20px}.rename-dialog label{font-size:11px;color:var(--soft);display:block;margin-bottom:7px}.rename-dialog input{width:100%;padding:11px 13px;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;font-size:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.dialog-actions button{padding:9px 16px;border:1px solid var(--border);border-radius:7px;font-size:11px;background:transparent}.dialog-actions button[type=submit]{background:var(--text);border-color:var(--text);color:var(--surface)}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,15px);max-width:calc(100vw - 40px);padding:12px 22px;border:1px solid #70826830;border-radius:12px;background:var(--text);color:var(--surface);font-size:12px;line-height:1.6;box-shadow:0 8px 30px #1e2b2020;z-index:30;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;text-align:center}.toast.visible,.toast.show{opacity:1;transform:translate(-50%,0)}

body.night{color-scheme:dark;--bg:#1e2924;--surface:#27342c;--text:#d9e1d0;--muted:#91a08c;--soft:#acb9a5;--border:#3c4b3e;--sage:#344738;--sage-strong:#afc09d;--sage-hover:#415440;--room:#394638;--shadow:0 6px 25px #00000006}body.night .room-art .day-sky,body.night .room-art .sun{opacity:0}body.night .room-art .night-sky,body.night .room-art .moon{opacity:1}body.night .room-art{filter:brightness(.73) saturate(.75)}body.night .speech-bubble{background:#364a38f5;color:#e0e6d5;border-color:#62715a}body.night .speech-bubble:before{background:#364a38;border-color:#62715a}body.night .action-dock{background:#2d3b30}body.night .cat-option{background:#2e3c31}body.night .cat-option:hover{background:#3d4e3b}body.night .cat-option.active,body.night .cat-option[aria-pressed=true],body.night .cat-option[aria-selected=true]{background:#40533d;border-color:#8fa17d}body.night .cat-avatar{background:#3d4938}body.night .cat-option .cat-illustration,body.night .cat-avatar .cat-illustration{filter:brightness(.92)}body.night .focus-start{color:#27342c}body.night .focus-start:hover{background:#c0cdb2}body.night .dialog-actions button[type=submit]{color:#27342c}body.night .scene-spark{color:#d6cfaa}

@keyframes breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.015,1.025)}}@keyframes tail-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(7deg)}}@keyframes cat-blink{0%,43%,47%,83%,87%,100%{transform:scaleY(1)}45%,85%{transform:scaleY(.06)}}@keyframes head-nuzzle{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(4deg) translateY(-3px)}}@keyframes head-munch{0%,100%{transform:rotate(3deg) translateY(3px)}50%{transform:rotate(3deg) translateY(8px)}}@keyframes cat-hop{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-13px) rotate(3deg)}}@keyframes sleep-float{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-10px);opacity:1}}@keyframes sparkle{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:.8;transform:scale(1.1)}}@keyframes prop-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes yarn-roll{from{transform:translateX(-10px) rotate(-20deg)}to{transform:translateX(15px) rotate(35deg)}}

@media(min-width:1440px){.site-header,.header,main,.footer,footer.site-footer{max-width:1240px}.room-scene{height:420px}}
@media(max-width:1320px){.site-header,.header,main,.footer,footer.site-footer{margin-left:40px;margin-right:40px}.workspace{grid-template-columns:minmax(0,1fr) 330px}.cat-panel{padding-left:20px;padding-right:20px}}
@media(max-width:1050px){.site-header,.header,main,.footer,footer.site-footer{margin-left:28px;margin-right:28px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:18px}.cat-panel{padding:23px 16px 18px}.room-heading{padding:20px}.room-scene{margin:0 12px;height:390px}.room-footer{padding:20px}.action-dock{margin:0 20px 20px}.bond-badge{padding:6px 8px;font-size:9px}.cat-info p{font-size:10px}.cat-avatar{width:45px;height:45px}.bottom-grid{gap:18px;margin-top:18px}.focus-card,.diary-card{padding:23px}.intro h1{font-size:35px}.intro-note{font-size:11px}.cat-option{padding-bottom:11px}.option-cat{height:88px}.option-cat .cat-illustration{width:108px;height:97px}nav,.header-nav{gap:22px}}
@media(max-width:850px){.site-header,.header{height:86px}.header-right,.header-actions{gap:8px}.header-divider{margin:0 4px}main{padding-top:35px}.intro{gap:9px;margin-bottom:24px}.intro-note{padding-bottom:0}.intro h1{font-size:34px}.workspace{grid-template-columns:minmax(0,1fr)}.room-scene{height:420px}.cat-stage{width:280px;bottom:15px}.cat-panel{padding:24px}.cat-panel header,.cat-panel .panel-header{margin-bottom:18px}.cat-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.cat-option{padding:3px 3px 11px}.option-cat{height:80px;width:90px}.option-cat .cat-illustration{width:96px;height:86px}.option-info h3{font-size:11px}.option-info p{font-size:8px}.selected-mark{top:5px;right:5px;width:13px;height:13px}.panel-note{margin-top:15px;font-size:9px}.room-footer{padding:21px 26px}.action-dock{margin:0 26px 23px}.bottom-grid{gap:18px}.focus-card,.diary-card{padding:23px 20px}.card-heading h2{font-size:13px}.card-heading>span,.card-heading p{font-size:9px}.timer-digits{font-size:34px}.focus-start{padding:10px 12px;min-width:90px}.footer,footer.site-footer{margin-top:28px}.nav-link{font-size:12px}nav,.header-nav{gap:18px}}
@media(max-width:600px){.site-header,.header,main,.footer,footer.site-footer{margin-left:18px;margin-right:18px}.site-header,.header{height:auto;min-height:84px;flex-wrap:wrap;padding:20px 0 16px;row-gap:13px}.brand{gap:7px}.brand-mark{width:33px;height:33px}.brand-mark svg{width:31px;height:31px}.wordmark,.brand-wordmark{font-size:25px}.brand-tagline{font-size:8px;letter-spacing:1.5px}.header-right,.header-actions{gap:6px}.header-divider{display:none}.icon-button{width:32px;height:32px}.icon-button svg{width:15px;height:15px}nav,.header-nav{gap:15px}.nav-link{font-size:11px;padding:8px 0}.intro{display:block;margin-bottom:24px}.intro h1{font-size:34px;line-height:1.5;letter-spacing:0}.intro-note{margin-top:12px;font-size:10px;line-height:1.8}.eyebrow{font-size:9px;margin-bottom:11px;letter-spacing:1.8px}main{padding-top:31px}.workspace{gap:16px}.room-card,.cat-panel,.focus-card,.diary-card{border-radius:16px}.room-heading{padding:19px 18px 16px}.room-heading h2{font-size:12px}.room-heading p,.room-status,.status{font-size:9px;padding:5px 8px}.room-scene{height:320px;margin:0 10px;border-radius:9px}.speech-bubble{font-size:11px;padding:10px 15px;top:20px;min-width:130px;max-width:88%}.cat-stage{width:235px;max-width:72%;bottom:3px}.sleep-letters{font-size:17px}.scene-prop{bottom:27px}.food-bowl{left:12%;width:55px}.yarn-ball{right:14%;width:37px}.room-footer{padding:18px 18px 17px;gap:7px}.cat-summary{gap:9px}.cat-avatar{width:44px;height:44px}.cat-info h3{font-size:15px}.cat-info p{font-size:9px;margin-top:3px;letter-spacing:0}.bond-badge{font-size:8px;padding:6px 8px;gap:3px}.bond-badge svg{width:10px;height:10px}.action-dock{margin:0 18px 19px;border-radius:10px}.action-button{padding:13px 2px 12px;min-height:78px;gap:5px}.action-button>svg{width:20px;height:20px}.action-button span{font-size:10px}.action-button small{font-size:8px;letter-spacing:0}.cat-panel{padding:22px 18px 17px}.cat-panel h2{font-size:18px}.cat-panel header p,.cat-panel .panel-header p{font-size:10px}.cat-panel header,.cat-panel .panel-header{margin-bottom:16px}.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.cat-option{padding:2px 3px 11px;border-radius:10px}.option-cat{height:86px;width:108px;max-width:100%}.option-cat .cat-illustration{width:106px;height:95px}.option-info h3{font-size:11px}.option-info p{font-size:9px}.selected-mark{width:14px;height:14px;top:7px;right:7px}.panel-note{font-size:9px;line-height:1.8;margin-top:14px}.bottom-grid{grid-template-columns:1fr;gap:16px;margin-top:16px}.focus-card,.diary-card{padding:22px}.card-heading{margin-bottom:17px}.card-heading h2{font-size:13px}.card-heading p,.card-heading>span{font-size:9px}.focus-card>p{font-size:10px}.timer-line{margin-top:18px}.timer-digits{font-size:38px}.focus-start{min-width:105px;font-size:11px;padding:11px 15px}.timer-track{margin-top:20px}.diary-list{gap:16px}.diary-list li{font-size:10px}.footer,footer.site-footer{padding:21px 0 25px;margin-top:24px;align-items:flex-start;gap:8px;flex-wrap:wrap}.footer p{font-size:9px}.footer-logo{font-size:12px}.toast{font-size:11px;bottom:18px;padding:11px 17px}}
@media(max-width:390px){nav,.header-nav{gap:10px}.nav-link{font-size:10px}.wordmark,.brand-wordmark{font-size:23px}.brand-tagline{display:none}.header-right,.header-actions{gap:4px}.icon-button{height:29px;width:29px}.intro h1{font-size:31px}.room-footer{flex-wrap:wrap}.bond-badge{margin-left:auto}.cat-info p{font-size:8px}.cat-avatar{width:38px;height:38px}.cat-summary{gap:7px}.focus-card,.diary-card{padding:20px}.option-cat{height:78px}.option-cat .cat-illustration{width:98px;height:88px}}
/* Component bindings for the final, dependency-free document. */
[data-icon]{display:inline-flex;align-items:center;justify-content:center;width:1.2em;height:1.2em;flex-shrink:0;vertical-align:middle}[data-icon]>svg{width:100%;height:100%}.header-tools{display:flex;align-items:center;gap:10px}.header-note{margin-left:9px;font-size:10px;letter-spacing:.5px;color:var(--muted);white-space:nowrap}.icon-button>[data-icon]{width:17px;height:17px}.brand-mark[data-icon]{width:41px;height:41px}.brand-mark[data-icon]>svg{width:31px;height:31px;stroke-width:1.2}.wordmark{font-family:Georgia,'Times New Roman',serif;font-size:29px;font-weight:500}.intro-subtitle{font-size:12px;line-height:1.8;color:var(--soft);margin-top:13px;letter-spacing:.2px}.intro-note{gap:12px;padding-bottom:3px;line-height:1.9}.intro-note strong{font-weight:400;color:var(--muted);font-size:10px}.intro-note .note-flower{width:29px;height:29px;color:#a4ae90}.intro-note .note-flower svg{width:29px;height:29px;stroke-width:1.2}.eyebrow .little-line{display:none}.room-heading h2>[data-icon]{width:17px;height:17px}.status>i{display:none}.scene-hint,.scene-time{position:absolute;bottom:14px;z-index:5;font-size:8px;color:#8d897b;letter-spacing:.2px;display:flex;align-items:center;gap:5px;pointer-events:none}.scene-hint{left:16px}.scene-hint [data-icon]{width:11px;height:11px}.scene-time{right:16px}.room-footer{display:block;padding:21px 26px 24px}.cat-summary{width:100%;margin-bottom:19px}.bond-badge{margin-left:auto}.bond-badge>[data-icon]{width:12px;height:12px}.rename-button>[data-icon]{width:12px;height:12px}.room-footer .action-dock{margin:0}.action-button>[data-icon]{width:22px;height:22px;margin-bottom:1px}.action-button>[data-icon]>svg{width:22px;height:22px}.option-info{display:block;width:100%;min-width:0}.option-info strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;letter-spacing:.3px;font-weight:500;line-height:1.5}.option-info small{display:block;font-size:9px;line-height:1.4;color:var(--soft);margin-top:3px}.panel-note{margin-top:20px;align-items:flex-start;gap:7px;font-size:10px;line-height:1.8;color:var(--soft)}.panel-note>[data-icon]{width:13px;height:13px;margin-top:3px;color:#a2ad91}.storage-note{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:15px;padding-top:14px;border-top:1px solid var(--border);font-size:8px;color:var(--muted);line-height:1.7;white-space:nowrap;letter-spacing:-.15px}.storage-note>[data-icon]{width:10px;height:10px}.card-heading{justify-content:flex-start;gap:10px}.card-heading>div{display:block;flex:1;min-width:0}.card-heading>div p{font-size:9px;color:var(--muted);line-height:1.6;margin-top:4px}.card-heading .card-icon{width:31px;height:31px;flex-shrink:0}.card-heading .card-icon>svg{width:16px;height:16px}.card-heading>.tiny-label{font-size:8px;letter-spacing:.7px;line-height:1.5;color:var(--muted);text-align:right;white-space:nowrap}.timer-buttons{display:flex;align-items:center;gap:7px}.timer-reset{height:34px;width:34px;display:inline-flex;align-items:center;justify-content:center;padding:8px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--soft)}.timer-reset>[data-icon]{width:15px;height:15px}.timer-reset:hover{background:var(--sage)}.focus-start>[data-icon]{width:13px;height:13px}.timer-digits>span{color:var(--muted);padding:0 3px;font-size:.83em;vertical-align:2px}.focus-note{margin-top:11px;font-size:9px;line-height:1.6;color:var(--muted)}.diary-footnote{margin-top:17px;padding-top:13px;border-top:1px solid var(--border);font-size:9px;line-height:1.7;color:var(--muted)}.footer-end{display:flex;align-items:center;gap:8px;font-size:8px;letter-spacing:1px;line-height:1.8}.footer-end>[data-icon]{width:13px;height:13px}.footer>.footer-logo{font-size:19px;letter-spacing:-.7px}.footer>span:not(.footer-end){font-size:10px}.scene-prop{left:calc(50% + 64px);right:auto;bottom:44px;width:80px;height:75px;display:flex;align-items:flex-end;justify-content:center}.scene-prop>.food-bowl{position:static;display:block;width:80px;height:60px}.scene-prop>.yarn-ball{position:static;display:block;width:62px;height:62px}.dialog-icon{width:33px;height:33px;margin-bottom:17px;color:var(--sage-strong)}.dialog-icon>svg{width:33px;height:33px}.rename-dialog .input-note{margin:8px 0 0;font-size:10px;color:var(--muted);line-height:1.6}.toast:not(.hidden){opacity:1;transform:translate(-50%,0)}body.night .scene-hint,body.night .scene-time{color:#bcc0ab}
@media(max-width:1050px){.header-note{display:none}.room-footer{padding:20px}.cat-summary{margin-bottom:18px}.option-info strong{font-size:12px}.storage-note{font-size:7.5px;letter-spacing:-.3px}.card-heading>.tiny-label{font-size:7px;letter-spacing:.3px}.card-heading>div p{font-size:8px}.intro-subtitle{font-size:11px}.intro-note .note-flower{width:24px;height:24px}.intro-note .note-flower svg{width:24px;height:24px}.intro-note strong{font-size:9px}}
@media(max-width:850px){.room-footer{padding:21px 26px 23px}.intro-note{padding-bottom:2px}.cat-panel{padding-bottom:19px}.panel-note{margin-top:17px;align-items:center}.panel-note p br{display:none}.storage-note{font-size:9px;letter-spacing:0;margin-top:13px;padding-top:13px}.option-info strong{font-size:11px}.option-info small{font-size:8px}.header-tools{gap:7px}.card-heading{gap:8px}.card-heading>.tiny-label{font-size:6.5px}.card-heading>div p{font-size:8px;letter-spacing:-.2px}}
@media(max-width:600px){.site-header{min-height:0;padding:17px 0 13px;gap:0;row-gap:12px}.site-header .brand{order:0}.site-header .header-tools{order:1;margin-left:auto;gap:7px}.site-header nav{order:2;width:100%;justify-content:center;gap:30px;border-top:1px solid var(--border);padding-top:8px}.site-header .nav-link{font-size:11px;padding:5px 0 8px}.nav-link.active:after{bottom:0}.brand-mark[data-icon]{width:32px;height:32px}.brand-mark[data-icon]>svg{width:28px;height:28px}.wordmark{font-size:27px}.intro-note{margin-top:16px;gap:8px}.intro-note #greeting br{display:none}.intro-note strong{font-size:10px;margin-left:10px}.intro-note .note-flower{width:18px;height:18px}.intro-note .note-flower svg{width:18px;height:18px}.intro-subtitle{font-size:10px;margin-top:11px;line-height:1.8}.intro h1{font-size:34px}.intro h1 span{display:block}.intro-note{font-size:10px}.room-footer{padding:18px 18px 19px}.cat-summary{margin-bottom:17px}.bond-badge{font-size:8px}.bond-badge>[data-icon]{width:10px;height:10px}.action-button>[data-icon],.action-button>[data-icon]>svg{width:20px;height:20px}.option-info strong{font-size:11px}.option-info small{font-size:9px}.storage-note{font-size:8px;letter-spacing:-.1px;margin-top:12px;padding-top:12px}.panel-note{font-size:9px;margin-top:17px}.card-heading>.tiny-label{font-size:7px;letter-spacing:.4px}.card-heading>div p{font-size:8px}.card-heading .card-icon{width:29px;height:29px}.card-heading .card-icon>svg{width:15px;height:15px}.scene-hint,.scene-time{font-size:7px;bottom:11px}.scene-hint{left:11px}.scene-time{right:11px}.scene-prop{left:calc(50% + 50px);bottom:26px;width:65px;height:62px}.scene-prop>.food-bowl{width:65px;height:50px}.scene-prop>.yarn-ball{width:51px;height:51px}.focus-note{font-size:8px}.diary-footnote{font-size:8px}.footer{row-gap:10px;column-gap:13px}.footer>.footer-logo{font-size:18px}.footer>span:not(.footer-end){font-size:8px}.footer-end{width:100%;font-size:7px;letter-spacing:.8px;justify-content:center;padding-top:7px}.footer-end>[data-icon]{width:11px;height:11px}}
@media(max-width:390px){.intro h1{font-size:31px}.intro-note strong{font-size:9px;margin-left:6px}.intro-note{font-size:9px}.cat-info p{font-size:8px}.cat-summary{gap:7px}.card-heading>.tiny-label{font-size:6px;letter-spacing:0}.option-info strong{font-size:10px}.option-info small{font-size:8px}}
/* Photographic companions: six real poses, with quiet movement between actions. */
.cat-stage {
  width: 312px;
  max-width: 60%;
  transform: translateX(calc(-50% + var(--cat-offset, 0px)));
  transition: transform .65s cubic-bezier(.25, .65, .35, 1);
}
.room-scene .cat-stage:active {
  transform: translateX(calc(-50% + var(--cat-offset, 0px))) !important;
}
.cat-stage > .cat-realistic {
  filter: drop-shadow(0 4px 3px #51453616);
}
.cat-realistic .cat-pose {
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease-in-out;
}
.cat-realistic .cat-pose.is-visible,
.cat-realistic[data-active-pose="idle"] .cat-pose[data-pose="idle"],
.cat-realistic[data-active-pose="wave"] .cat-pose[data-pose="wave"],
.cat-realistic[data-active-pose="stretch"] .cat-pose[data-pose="stretch"],
.cat-realistic[data-active-pose="feed"] .cat-pose[data-pose="feed"],
.cat-realistic[data-active-pose="play"] .cat-pose[data-pose="play"],
.cat-realistic[data-active-pose="sleep"] .cat-pose[data-pose="sleep"] {
  opacity: 1;
}
.cat-stage .cat-photo-body {
  transform-origin: 200px 326px;
  animation: kitten-idle 12s ease-in-out infinite;
}
.cat-stage.is-idle .cat-photo-body {
  animation: kitten-idle 12s ease-in-out infinite;
}
.cat-stage.is-petting .cat-photo-body {
  animation: kitten-nuzzle 1.8s ease-in-out infinite;
}
.cat-stage.is-waving .cat-photo-body {
  animation: kitten-wave 1.6s ease-in-out infinite;
}
.cat-stage.is-stretching .cat-photo-body {
  animation: kitten-stretch 3.1s ease-in-out infinite;
}
.cat-stage.is-feeding .cat-photo-body {
  animation: kitten-feed 1.1s ease-in-out infinite;
}
.cat-stage.is-playing > .cat-illustration.cat-realistic {
  animation: none;
}
.cat-stage.is-playing .cat-photo-body {
  animation: kitten-play 1.8s ease-in-out infinite;
}
.cat-stage.is-sleeping .cat-photo-body {
  animation: kitten-rest 6.5s ease-in-out infinite;
}
.option-cat .cat-illustration.cat-realistic {
  width: 113px;
  height: 102px;
}
.cat-avatar .cat-illustration.cat-realistic {
  width: 76px;
  min-width: 76px;
  height: 69px;
  margin-top: 17px;
}
.cat-mini .cat-photo-body,
.option-cat .cat-photo-body,
.cat-avatar .cat-photo-body {
  animation: none;
  transform: none;
}
@keyframes kitten-idle {
  0%, 34%, 70%, 100% { transform: scale(1); }
  17%, 53%, 87% { transform: scale(1.003, 1.009); }
  43% { transform: translateX(2px) rotate(.45deg) scale(1.002, 1.005); }
  61% { transform: translateX(-1px) rotate(-.35deg); }
}
@keyframes kitten-rest {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.005, 1.012); }
}
@keyframes kitten-nuzzle {
  0%, 100% { transform: rotate(-.8deg) scale(1); }
  50% { transform: rotate(.8deg) scale(1.006); }
}
@keyframes kitten-wave {
  0%, 100% { transform: rotate(-.7deg); }
  50% { transform: rotate(1.2deg) translateY(-1px); }
}
@keyframes kitten-stretch {
  0%, 100% { transform: scale(1) translateY(1px); }
  45%, 65% { transform: scale(1.014, 1.024) translateY(2px); }
}
@keyframes kitten-feed {
  0%, 100% { transform: translateY(1px) rotate(.3deg); }
  50% { transform: translateY(3px) rotate(1deg); }
}
@keyframes kitten-play {
  0%, 100% { transform: translateX(-8px) translateY(0) rotate(-.5deg); }
  28% { transform: translateX(9px) translateY(-5px) rotate(.8deg); }
  58% { transform: translateX(12px) translateY(0); }
  80% { transform: translateX(-5px) translateY(-3px) rotate(-.5deg); }
}

/* Small room controls and the draggable yarn toy. */
.room-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
}
.auto-toggle {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: transparent;
  color: var(--soft);
  font-size: 10px;
  line-height: 1.4;
  white-space: nowrap;
}
.auto-toggle > svg,
.auto-toggle > [data-icon] { width: 12px; height: 12px; }
.auto-toggle[aria-pressed="true"] {
  background: var(--sage);
  border-color: #aab99a;
  color: var(--text);
}
.auto-toggle:hover { background: var(--sage); }
.motion-caption {
  position: absolute;
  z-index: 5;
  bottom: 37px;
  left: 50%;
  transform: translateX(-50%);
  padding: 4px 10px;
  border-radius: 20px;
  background: #faf7edb8;
  color: #7b806e;
  font-size: 9px;
  line-height: 1.6;
  letter-spacing: .4px;
  white-space: nowrap;
  pointer-events: none;
}
.showcase-dock {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 10px;
}
.showcase-button {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: transparent;
  color: var(--soft);
  font-size: 11px;
  line-height: 1.5;
}
.showcase-button > svg,
.showcase-button > [data-icon] { width: 17px; height: 17px; }
.showcase-button:hover,
.showcase-button.active,
.showcase-button[aria-pressed="true"] { background: var(--sage); color: var(--text); }
.toy-hint {
  margin-top: 11px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.7;
  text-align: center;
}
.toy-target {
  position: absolute;
  z-index: 7;
  left: var(--toy-x, 72%);
  top: var(--toy-y, 75%);
  transform: translate(-50%, -50%);
  width: 48px;
  height: 48px;
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #b68673;
  opacity: 0;
  pointer-events: none;
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  transition: opacity .2s;
}
.toy-target.toy-visible { opacity: 1; pointer-events: auto; }
.toy-target > svg { width: 46px; height: 46px; }
.toy-target > [data-icon] { width: 39px; height: 39px; }
.toy-target .yarn-ball { width: 46px; height: 46px; animation: none; }
.room-scene .toy-target:active { transform: translate(-50%, -50%); cursor: grabbing; }
.toy-target:focus-visible { outline: 2px dashed var(--sage-strong); outline-offset: 4px; }

/* Twelve companions fit in a browsable collection without stretching the room. */
.cat-filters {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: -3px 0 13px;
}
.cat-filter {
  min-height: 44px;
  min-width: 44px;
  padding: 8px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--soft);
  font-size: 10px;
  line-height: 1.4;
  white-space: nowrap;
}
.cat-filter.active,
.cat-filter[aria-pressed="true"],
.cat-filter[aria-selected="true"] {
  background: var(--sage);
  border-color: #c6d0ba;
  color: var(--text);
}
.cat-filter:hover { background: var(--sage); }
.cat-count {
  margin-left: auto;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.5;
  white-space: nowrap;
}
.cat-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: 440px;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  padding: 3px 5px 4px 3px;
  margin: -3px -5px -4px -3px;
  scrollbar-width: thin;
  scrollbar-color: #c2cdb7 transparent;
  scroll-padding-block: 8px;
}
.cat-grid::-webkit-scrollbar { width: 4px; }
.cat-grid::-webkit-scrollbar-track { background: transparent; }
.cat-grid::-webkit-scrollbar-thumb { background: #c2cdb7; border-radius: 5px; }
.cat-option { min-height: 44px; scroll-margin-block: 8px; }
.cat-option:focus-visible { outline-offset: 1px; }
.new-cat-tag {
  position: absolute;
  top: 7px;
  left: 7px;
  padding: 3px 5px;
  border-radius: 5px;
  background: #fff8e7;
  color: #a58b63;
  font-size: 7px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .2px;
}
body.night .auto-toggle[aria-pressed="true"] { border-color: #667e58; }
body.night .motion-caption { background: #354536d9; color: #c6ceb8; }
body.night .cat-filter.active,
body.night .cat-filter[aria-pressed="true"],
body.night .cat-filter[aria-selected="true"] { border-color: #607454; }
body.night .new-cat-tag { background: #494936; color: #d0c29c; }
body.night .cat-grid { scrollbar-color: #677e5e transparent; }
body.night .cat-grid::-webkit-scrollbar-thumb { background: #677e5e; }
@media (max-width: 1050px) {
  .room-tools { gap: 6px; }
  .auto-toggle { padding: 6px 8px; font-size: 9px; }
  .room-tools .status { font-size: 9px; padding: 6px 8px; }
  .cat-filter { padding-inline: 8px; font-size: 9px; }
  .cat-count { font-size: 8px; }
}
@media (max-width: 850px) {
  .cat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); max-height: 320px; }
  .option-cat { height: 88px; width: 103px; }
  .option-cat .cat-illustration.cat-realistic { width: 108px; height: 97px; }
  .cat-filter { font-size: 10px; padding-inline: 12px; }
  .cat-count { font-size: 9px; }
  .cat-panel .panel-note { margin-top: 18px; }
}
@media (max-width: 600px) {
  .cat-stage { width: 270px; max-width: 78%; }
  .cat-avatar .cat-illustration.cat-realistic { width: 69px; min-width: 69px; height: 62px; margin-top: 16px; }
  .room-heading { flex-wrap: wrap; row-gap: 10px; }
  .room-heading h2 { font-size: 12px; }
  .room-tools { flex: 1; justify-content: flex-end; gap: 6px; }
  .auto-toggle { min-height: 34px; font-size: 8px; padding: 6px 8px; }
  .room-tools .status { font-size: 8px; padding: 6px 8px; }
  .auto-toggle > svg, .auto-toggle > [data-icon] { width: 11px; height: 11px; }
  .motion-caption { bottom: 32px; font-size: 8px; padding: 3px 9px; }
  .showcase-dock { gap: 8px; margin-top: 9px; }
  .showcase-button { min-height: 44px; font-size: 10px; gap: 6px; }
  .showcase-button > svg, .showcase-button > [data-icon] { width: 15px; height: 15px; }
  .toy-hint { font-size: 8px; margin-top: 9px; }
  .toy-target { width: 44px; height: 44px; }
  .toy-target > svg, .toy-target .yarn-ball { width: 42px; height: 42px; }
  .cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-height: 330px; }
  .cat-filters { margin-bottom: 11px; gap: 5px; }
  .cat-filter { font-size: 9px; padding-inline: 11px; }
  .cat-count { font-size: 8px; }
  .option-cat { height: 88px; width: 108px; }
  .option-cat .cat-illustration.cat-realistic { width: 111px; height: 100px; }
  .new-cat-tag { font-size: 6px; top: 6px; left: 5px; padding: 2px 4px; }
}
@media (max-width: 390px) {
  .option-cat { height: 79px; }
  .option-cat .cat-illustration.cat-realistic { width: 103px; height: 93px; }
  .room-tools { flex-basis: 100%; justify-content: space-between; }
}
.cat-facing { transform-origin: 200px 180px; transform: scaleX(var(--cat-facing, 1)); transition: transform .2s ease; }
.cat-filter-bar { display: flex; align-items: center; gap: 8px; margin: -3px 0 13px; }
.cat-filter-bar .cat-filters { margin: 0; }
.motion-caption { top: 86px; bottom: auto; }
@media (max-width: 600px) { .motion-caption { top: 80px; } .cat-filter-bar { margin-bottom: 11px; } }
.room-scene .scene-prop { left: calc(50% - 130px); }
@media (max-width: 600px) { .room-scene .scene-prop { left: calc(50% - 95px); bottom: 14px; } }
/* The live mesh sits over the retained SVG; avatars stay inexpensive and still. */
.cat-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  opacity: 0;
  pointer-events: none;
  transform: scaleX(var(--cat-facing, 1));
  transform-origin: 50% 50%;
  transition: transform .24s ease-in-out;
  filter: drop-shadow(0 4px 3px #51453614);
}
.has-cat-canvas > .cat-canvas { opacity: 1; }
.has-cat-canvas > .cat-illustration { opacity: 0; }
.has-cat-canvas .cat-photo-body,
.has-cat-canvas > .cat-illustration.cat-realistic { animation: none !important; }
.cat-renderer-loading .cat-pose { opacity: 0 !important; }
.cat-renderer-loading .cat-pose[data-pose="idle"] { opacity: 1 !important; }
.showcase-dock { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.action-library-open { color: var(--sage-strong); }
.action-library-open b { font-weight: 500; font-variant-numeric: tabular-nums; }
.action-dialog {
  width: 760px;
  max-width: calc(100vw - 40px);
  max-height: min(86vh, 850px);
  padding: 29px;
  border: 1px solid var(--border);
  border-radius: 22px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 22px 80px #25342624;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #c2cdb7 transparent;
}
.action-dialog::backdrop { background: #26312666; backdrop-filter: blur(4px); }
.action-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.action-dialog h2 { font-size: 25px; line-height: 1.5; font-weight: 500; letter-spacing: .4px; }
.action-dialog .description { font-size: 11px; color: var(--soft); line-height: 1.8; margin-top: 7px; }
.action-close { min-width: 44px; min-height: 44px; font-size: 24px; line-height: 1; color: var(--soft); }
.action-library-filters { display: flex; flex-wrap: wrap; gap: 7px; margin: 23px 0 19px; }
.action-library-filters button {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: transparent;
  font-size: 10px;
  line-height: 1.5;
  color: var(--soft);
}
.action-library-filters button.active,
.action-library-filters button[aria-pressed="true"] { background: var(--sage); border-color: #b1c09f; color: var(--text); }
.action-library-filters button:hover { background: var(--sage); }
.action-library-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.action-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  min-height: 118px;
  padding: 16px 13px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #f8f8f1;
  color: var(--text);
  text-align: left;
}
.action-card:hover,
.action-card.active { background: var(--sage); border-color: #a7b694; transform: translateY(-1px); }
.action-card:focus-visible { outline-offset: 2px; }
.action-card-icon { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; color: var(--sage-strong); margin-bottom: 11px; }
.action-card-icon > svg { width: 23px; height: 23px; }
.action-card-name { display: block; font-size: 12px; font-weight: 500; line-height: 1.5; }
.action-card-description { display: block; font-size: 9px; color: var(--soft); line-height: 1.7; margin-top: 5px; }
.action-library-note { font-size: 10px; color: var(--muted); line-height: 1.8; margin-top: 20px; text-align: center; }
body.night .action-card { background: #2e3d31; }
/* The little room keeps a bowl ready while its companion goes about its day. */
.room-scene .scene-prop { transform: translateX(-50%); bottom: 20px; transition: left .65s ease, opacity .3s ease; }
.room-scene .scene-prop > .food-bowl { width: 65px; height: 49px; opacity: .8; animation: none; }
.room-scene .scene-prop.is-eating > .food-bowl { opacity: 1; }
.toy-target.autonomous-toy { animation: toy-self-play 1.25s ease-in-out infinite alternate; }
.toy-target.autonomous-toy > svg { animation: toy-self-roll 1.25s ease-in-out infinite alternate; }
@keyframes toy-self-play { from { margin-left: -19px; margin-top: 0; } to { margin-left: 16px; margin-top: -5px; } }
@keyframes toy-self-roll { from { rotate: -25deg; } to { rotate: 55deg; } }
body.night .action-card:hover,
body.night .action-card.active { background: #40533d; border-color: #829b6f; }
body.night .action-library-filters button.active,
body.night .action-library-filters button[aria-pressed="true"] { border-color: #667e58; }
@media (max-width: 600px) {
  .action-dialog { max-width: calc(100vw - 28px); max-height: 88vh; padding: 22px 18px; border-radius: 18px; }
  .action-dialog-heading { gap: 12px; }
  .action-dialog h2 { font-size: 21px; }
  .action-dialog .description { font-size: 10px; }
  .action-dialog .section-label { font-size: 8px; letter-spacing: 1px; }
  .action-close { min-width: 44px; min-height: 44px; }
  .action-library-filters { gap: 6px; margin: 19px 0 15px; }
  .action-library-filters button { padding: 8px 10px; font-size: 9px; }
  .action-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .action-card { min-height: 112px; padding: 15px 12px 13px; }
  .action-card-name { font-size: 11px; }
  .action-card-description { font-size: 8px; }
  .action-library-note { font-size: 8px; margin-top: 17px; }
  .showcase-button { gap: 5px; padding-inline: 5px; font-size: 9px; }
  .showcase-button > svg, .showcase-button > [data-icon] { width: 14px; height: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .cat-stage .cat-eye-open { transform: none !important; }
  .cat-stage .cat-photo-body { animation: none !important; transform: none !important; }
  .cat-stage { transition: none !important; }

}

/* V5: room locomotion owns translation; pose and facing never flatten the cat. */
.room-scene .cat-stage {
  transition: none;
}
.room-scene .cat-stage .cat-canvas,
.room-scene .cat-stage .cat-facing {
  transition: none;
}
.room-scene .cat-stage.has-cat-canvas > .cat-illustration,
.room-scene .cat-stage.has-cat-canvas .cat-photo-body {
  animation: none !important;
}
.room-scene .cat-stage.has-cat-canvas::after {
  content: '';
  position: absolute;
  z-index: -1;
  left: 50%;
  bottom: 8.1%;
  width: 42%;
  height: 3%;
  border-radius: 50%;
  transform: translateX(-50%);
  background: #66533e0c;
  filter: blur(2px);
  pointer-events: none;
}
body.night .room-scene .cat-stage.has-cat-canvas::after {
  background: #00000016;
}
@media (prefers-reduced-motion: reduce) {
  .room-scene .cat-stage,
  .room-scene .cat-stage .cat-canvas,
  .room-scene .cat-stage .cat-facing {
    animation: none !important;
    transition: none !important;
  }
}
