*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;width:100%}body{background:#15181e;color:#f9f7ff;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;-webkit-tap-highlight-color:transparent;transition:background .18s,transform .18s}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #a9c7ff;outline-offset:3px}button:hover{background-color:#ffffff14}svg{width:1.7em;height:1.7em;flex-shrink:0}.app-shell{min-height:100vh;display:flex;align-items:center;justify-content:center}.stage{position:relative;container-type:inline-size;width:min(100vw,133.333vh);aspect-ratio:4/3;overflow:hidden;border-radius:calc(1.5 * var(--ui-unit));border:1px solid #9aa7cc55;background:#53453e;font-size:calc(1.31 * var(--ui-unit));isolation:isolate}.stage:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0}.room{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/room.png) center/cover}.light-暖光 .room{filter:sepia(.17) saturate(1.12)}.light-夜晚 .room{filter:brightness(.55) saturate(.65)}.panel{background:#22222eb8;border:1px solid #d2d6ed40;border-radius:calc(1.5 * var(--ui-unit));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 calc(.2 * var(--ui-unit)) calc(1 * var(--ui-unit)) #17172112}.topbar{position:absolute;top:0;left:0;width:100%;height:7.3%;display:flex;align-items:center;justify-content:space-between;padding:0 1.4%;background:#222938be;border-bottom:1px solid #ffffff12}.brand{display:flex;align-items:center;gap:calc(1.5 * var(--ui-unit))}.brand .avatar{width:calc(3.85 * var(--ui-unit));height:calc(3.85 * var(--ui-unit))}.brand h1{font-size:calc(1.85 * var(--ui-unit));line-height:1.18;margin:0;font-weight:700}.brand p{font-size:calc(1.12 * var(--ui-unit));color:#d7d8e6;margin:calc(.3 * var(--ui-unit)) 0 0}.top-tools{display:flex;align-items:center;gap:calc(1.3 * var(--ui-unit))}.top-tools>button{display:flex;align-items:center;gap:calc(.5 * var(--ui-unit));padding:calc(.35 * var(--ui-unit));border-radius:calc(.5 * var(--ui-unit));color:#e0e4ef;font-size:calc(1.17 * var(--ui-unit))}.top-tools svg{width:calc(1.5 * var(--ui-unit));height:calc(1.5 * var(--ui-unit))}.divider{height:calc(2.4 * var(--ui-unit));border-left:1px solid #ffffff24;margin:0 calc(.15 * var(--ui-unit))}.icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:.15em;border-radius:.5em}.sidebar{position:absolute;top:7.3%;bottom:0;left:0;width:6.72%;background:#2c3042ac;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:calc(.9 * var(--ui-unit)) calc(.62 * var(--ui-unit));display:flex;flex-direction:column;gap:calc(.8 * var(--ui-unit))}.sidebar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(.65 * var(--ui-unit));border-radius:calc(.85 * var(--ui-unit));min-height:calc(6.4 * var(--ui-unit));width:100%;color:#e1e1ec;font-size:calc(1.18 * var(--ui-unit))}.sidebar svg{width:calc(2 * var(--ui-unit));height:calc(2 * var(--ui-unit))}.sidebar .active{background:#7092d69c;color:#fff;font-weight:600}.left-controls{position:absolute;left:7.94%;top:9.6%;width:20.3%;display:flex;flex-direction:column;gap:calc(1.45 * var(--ui-unit))}.left-controls .panel{padding:calc(1.3 * var(--ui-unit)) calc(1.35 * var(--ui-unit))}.status-panel{height:calc(13.4 * var(--ui-unit))}.panel h2{margin:0;font-size:calc(1.42 * var(--ui-unit));font-weight:650;line-height:1.3}.name-row{display:flex;align-items:center;gap:calc(.7 * var(--ui-unit));margin-bottom:calc(1.4 * var(--ui-unit))}.name-row h2{font-size:calc(1.78 * var(--ui-unit))}.name-row .divider{height:calc(1.45 * var(--ui-unit))}.name-row svg{width:calc(1.4 * var(--ui-unit));height:calc(1.4 * var(--ui-unit))}.status-panel p{display:flex;align-items:center;gap:calc(.65 * var(--ui-unit));margin:calc(.95 * var(--ui-unit)) 0;font-size:calc(1.28 * var(--ui-unit));white-space:nowrap}.status-panel strong{font-weight:500;color:#fff}.status-panel p>svg{width:calc(1.25 * var(--ui-unit));height:calc(1.25 * var(--ui-unit))}.status-dot{width:calc(1 * var(--ui-unit));height:calc(1 * var(--ui-unit));border-radius:50%;background:#5ed084;margin-left:calc(.15 * var(--ui-unit))}.green{color:#6ed98b}.pink{color:#fba5c5}.battery{width:calc(2.7 * var(--ui-unit));height:calc(1.05 * var(--ui-unit));border:1px solid #edeee6;border-radius:calc(.23 * var(--ui-unit));padding:calc(.1 * var(--ui-unit));margin-left:calc(.12 * var(--ui-unit));position:relative}.battery:after{content:"";position:absolute;right:calc(-.28 * var(--ui-unit));top:calc(.22 * var(--ui-unit));width:calc(.2 * var(--ui-unit));height:calc(.5 * var(--ui-unit));background:#c7c5ca}.battery i{display:block;width:80%;height:100%;background:#64d486;border-radius:calc(.1 * var(--ui-unit))}.mood-panel{height:calc(22.45 * var(--ui-unit))}.mood-meter{display:flex;align-items:center;gap:calc(1.05 * var(--ui-unit));margin:calc(1.15 * var(--ui-unit)) 0 calc(1.5 * var(--ui-unit));color:#e7d8df;font-size:calc(1.15 * var(--ui-unit))}.mood-meter>svg{width:calc(1.85 * var(--ui-unit));height:calc(1.85 * var(--ui-unit));color:#ffe8f3}.meter-track{position:relative;flex:1;height:calc(.85 * var(--ui-unit));border-radius:calc(2 * var(--ui-unit));background:linear-gradient(90deg,#edb3d9,#a18ef6,#82dcca,#c8e995)}.meter-track i{position:absolute;top:calc(-.12 * var(--ui-unit));width:calc(.85 * var(--ui-unit));height:calc(1.02 * var(--ui-unit));border:1px solid #c7dcf4;background:#aee2fd;border-radius:50%;transform:translate(-50%);transition:left .5s}.mood-grid,.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.72 * var(--ui-unit))}.mood-grid button,.action-grid button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:calc(.55 * var(--ui-unit));background:#ffffff05;border:1px solid #c6c4d514;border-radius:calc(.85 * var(--ui-unit));height:calc(6.45 * var(--ui-unit));font-size:calc(1.18 * var(--ui-unit));color:#efedf1;padding:calc(.4 * var(--ui-unit))}.mood-grid button>svg,.mood-grid .avatar{width:calc(2.85 * var(--ui-unit));height:calc(2.85 * var(--ui-unit))}.mood-grid .selected,.action-grid .selected{background:#7d9ddd50;border-color:#8db6ff;box-shadow:inset 0 0 0 1px #94bafe50}.mood-grid .selected{font-weight:650}.action-panel{height:calc(18.5 * var(--ui-unit))}.action-grid{margin-top:calc(1.2 * var(--ui-unit))}.action-grid button{height:calc(6.22 * var(--ui-unit));background:#aaaaaf30;border-color:#ceccd52a}.action-grid svg{width:calc(2.8 * var(--ui-unit));height:calc(2.8 * var(--ui-unit))}.cat-actor{position:absolute;left:27%;top:18.7%;width:47%;height:66%;pointer-events:none;transform-origin:48% 95%;transition:transform .75s;filter:drop-shadow(0 calc(.6 * var(--ui-unit)) calc(.8 * var(--ui-unit)) #48392b55)}.cat-sprite{width:100%;height:100%;background-image:url(/assets/cat.png);background-size:100% 100%;background-position:center;background-repeat:no-repeat}.cat-sprite:not(.pose-0){background-image:url(/assets/cat-poses.png);background-size:300% 200%;background-repeat:no-repeat}.cat-actor.wagging{animation:sway .52s ease-in-out infinite}.cat-actor.purring{animation:purr .32s ease-in-out infinite}.touch-zones{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.zone{position:absolute;pointer-events:auto;border-radius:50%;background:none!important}.zone:hover{box-shadow:inset 0 0 calc(2 * var(--ui-unit)) #d9effe18}.head-zone{left:35%;top:24%;width:25%;height:29%}.back-zone{left:37%;top:52%;width:22%;height:28%}.tail-zone{left:60%;top:55%;width:11%;height:21%}.speech-bubble{position:absolute;left:53%;top:15.5%;width:13.8%;min-height:12.8%;border-radius:calc(2.6 * var(--ui-unit));padding:calc(1.35 * var(--ui-unit)) calc(1.6 * var(--ui-unit));background:#f6f4f0ee;box-shadow:0 calc(.2 * var(--ui-unit)) calc(1 * var(--ui-unit)) #48435625;color:#252d41;font-size:calc(1.65 * var(--ui-unit));font-weight:550;line-height:1.46;white-space:pre-line;transform:rotate(-7deg);pointer-events:none}.speech-bubble:after{content:"";position:absolute;bottom:calc(-.6 * var(--ui-unit));left:calc(.1 * var(--ui-unit));width:calc(2.2 * var(--ui-unit));height:calc(2.3 * var(--ui-unit));background:inherit;clip-path:polygon(100% 0,100% 65%,0 100%)}.bubble-heart{position:absolute;right:calc(-1.8 * var(--ui-unit));top:calc(4 * var(--ui-unit));width:calc(2.8 * var(--ui-unit));height:calc(2.8 * var(--ui-unit));color:#ffacd2;transform:rotate(7deg)}.floating-heart{position:absolute;left:46%;top:42%;width:calc(2.5 * var(--ui-unit));height:calc(2.5 * var(--ui-unit));color:#ffb4d9;animation:float 1.8s ease-out forwards;pointer-events:none;z-index:2}.chat-panel{position:absolute;left:72.95%;top:9.6%;width:26.55%;height:86.3%;background:#252938b8;display:flex;flex-direction:column;overflow:hidden}.chat-heading{height:calc(5.25 * var(--ui-unit));flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 calc(1.55 * var(--ui-unit));border-bottom:1px solid #b7c1e514}.chat-heading h2{font-size:calc(1.62 * var(--ui-unit))}.chat-heading button{display:flex;align-items:center;gap:calc(.5 * var(--ui-unit));font-size:calc(1.12 * var(--ui-unit));color:#d6dbe7}.chat-heading svg{width:calc(1.4 * var(--ui-unit));height:calc(1.4 * var(--ui-unit))}.chat-messages{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#9095b43b transparent;padding:calc(1.1 * var(--ui-unit)) calc(.9 * var(--ui-unit)) calc(1.25 * var(--ui-unit));display:flex;flex-direction:column;gap:calc(1.65 * var(--ui-unit))}.message{display:flex;gap:calc(.72 * var(--ui-unit));align-items:flex-start;flex-shrink:0}.message.user{flex-direction:row-reverse;align-items:center}.avatar{display:block;flex-shrink:0;width:calc(3.45 * var(--ui-unit));height:calc(3.45 * var(--ui-unit));border-radius:50%;overflow:hidden}.cat-avatar{background-image:url(/assets/reference.png);background-size:2496.55% 1872.41%;background-position:1.51% 1.26%}.user-avatar{background:#799bfd;display:flex;align-items:center;justify-content:center;border:1px solid #a7bcff}.user-avatar svg{width:calc(2.1 * var(--ui-unit));height:calc(2.1 * var(--ui-unit));color:#fff}.message-body{border-radius:calc(1.25 * var(--ui-unit));background:#a1a4b141;padding:calc(.72 * var(--ui-unit)) calc(1 * var(--ui-unit));font-size:calc(1.25 * var(--ui-unit));line-height:1.48;white-space:pre-line;max-width:80%;color:#faf7ff}.message.user .message-body{background:#91aafa;color:#354165;padding:calc(.9 * var(--ui-unit)) calc(1.15 * var(--ui-unit));position:relative}.message.user .message-body:after{content:"";position:absolute;bottom:calc(.2 * var(--ui-unit));right:calc(-.35 * var(--ui-unit));width:calc(.7 * var(--ui-unit));height:calc(.7 * var(--ui-unit));background:#91aafa;clip-path:polygon(0 0,0 100%,100% 100%)}.touch-thumb{display:block;width:100%;aspect-ratio:1.494;border-radius:calc(.75 * var(--ui-unit));margin-top:calc(.55 * var(--ui-unit));background-image:url(/assets/reference.png);background-size:621.46% 696.15%;background-position:94.81% 66.67%;background-repeat:no-repeat;min-width:calc(16 * var(--ui-unit))}.chat-photo{max-width:100%;display:block;border-radius:calc(.7 * var(--ui-unit));margin-top:calc(.6 * var(--ui-unit))}.audio-body{width:calc(19.4 * var(--ui-unit))}.audio-label{display:flex;gap:calc(.7 * var(--ui-unit));align-items:center}.audio-label .avatar{width:calc(2 * var(--ui-unit));height:calc(2 * var(--ui-unit))}.audio-wave{display:flex;align-items:center;gap:calc(.19 * var(--ui-unit));height:calc(2.5 * var(--ui-unit));position:relative;padding:calc(.2 * var(--ui-unit)) calc(4 * var(--ui-unit)) calc(.2 * var(--ui-unit)) calc(2.6 * var(--ui-unit));margin:calc(.1 * var(--ui-unit)) 0}.audio-wave i{display:block;width:calc(.2 * var(--ui-unit));min-width:calc(.2 * var(--ui-unit));border-radius:calc(1 * var(--ui-unit));background:#9789ef}.audio-wave i:nth-child(n+14){background:#8db7fb}.audio-wave .icon-btn{position:absolute;right:calc(.1 * var(--ui-unit));width:calc(3.4 * var(--ui-unit));height:calc(3.4 * var(--ui-unit));top:0;background:#7891d078;border-radius:50%}.audio-wave svg{width:calc(1.8 * var(--ui-unit));height:calc(1.8 * var(--ui-unit))}.audio-body small{font-size:calc(1.15 * var(--ui-unit))}.is-playing i{animation:wave .38s infinite alternate}.bottom-controls{position:absolute;left:36.3%;bottom:1.45%;width:27.6%;display:flex;align-items:end;justify-content:space-between;gap:calc(3 * var(--ui-unit))}.bottom-controls button{display:flex;flex-direction:column;align-items:center;gap:calc(.7 * var(--ui-unit));white-space:nowrap;padding:0;font-size:calc(1.15 * var(--ui-unit));background:none}.bottom-small>span{display:flex;align-items:center;justify-content:center;width:calc(5.1 * var(--ui-unit));height:calc(5.1 * var(--ui-unit));background:#34303f99;border-radius:50%;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bottom-small svg{width:calc(2.8 * var(--ui-unit));height:calc(2.8 * var(--ui-unit))}.talk-button>span{display:flex;align-items:center;justify-content:center;width:calc(8.55 * var(--ui-unit));height:calc(8.55 * var(--ui-unit));border-radius:50%;background:#53596c65;border:3px solid #c0d2fd;box-shadow:0 0 calc(1 * var(--ui-unit)) #a7c1ff24;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.talk-button svg{width:calc(4.4 * var(--ui-unit));height:calc(4.4 * var(--ui-unit))}.talk-button{font-size:calc(1.3 * var(--ui-unit))!important}.talk-button.listening>span{animation:listen 1.2s infinite}.bottom-controls button:hover>span{background:#647aa390;transform:translateY(calc(-.15 * var(--ui-unit)))}.composer{display:flex;align-items:center;padding:calc(.8 * var(--ui-unit));gap:calc(.5 * var(--ui-unit));border-top:1px solid #fff2;background:#252737cc}.composer input{min-width:0;flex:1;width:100%;background:#ffffff12;border:1px solid #ffffff25;padding:calc(.65 * var(--ui-unit)) calc(.75 * var(--ui-unit));color:#fff;border-radius:calc(.7 * var(--ui-unit));font-size:calc(1.1 * var(--ui-unit))}.composer>button[type=submit]{background:#8aa8f3;color:#26364c;border-radius:calc(.6 * var(--ui-unit));padding:calc(.6 * var(--ui-unit));font-size:calc(1.05 * var(--ui-unit))}.composer .icon-btn svg{width:calc(1.2 * var(--ui-unit));height:calc(1.2 * var(--ui-unit))}.chat-empty{margin:auto;text-align:center;color:#d8dce8}.chat-empty .avatar{margin:auto}.notice{position:absolute;bottom:15%;left:31%;max-width:40%;padding:calc(.8 * var(--ui-unit)) calc(1.2 * var(--ui-unit));background:#292f46ee;border:1px solid #a6bfff66;border-radius:calc(.9 * var(--ui-unit));z-index:10;box-shadow:0 calc(.5 * var(--ui-unit)) calc(3 * var(--ui-unit)) #0004;font-size:calc(1.15 * var(--ui-unit));line-height:1.6}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0c10226b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:8;display:flex;align-items:center;justify-content:center}.modal{width:36%;max-height:82%;overflow:auto;background:#2f3449f7;padding:calc(1.8 * var(--ui-unit)) calc(2 * var(--ui-unit));font-size:calc(1.2 * var(--ui-unit));border-color:#a5b3d36b}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:calc(1.8 * var(--ui-unit))}.modal-heading h2{font-size:calc(1.7 * var(--ui-unit))}.modal-heading svg{width:calc(1.5 * var(--ui-unit));height:calc(1.5 * var(--ui-unit))}.modal p{line-height:1.7}.modal label{display:flex;flex-direction:column;gap:calc(.7 * var(--ui-unit));margin:calc(1.2 * var(--ui-unit)) 0}.modal input:not([type=checkbox]):not([type=range]),.modal select{background:#ffffff0c;color:#fff;border:1px solid #a9b7da60;border-radius:calc(.6 * var(--ui-unit));padding:calc(.7 * var(--ui-unit));min-width:0;width:100%}.modal select option{background:#303549}.modal input[type=range]{accent-color:#9fbdff}.modal input[type=checkbox]{accent-color:#9fbdff;width:calc(1.4 * var(--ui-unit));height:calc(1.4 * var(--ui-unit))}.modal .primary,.modal button:not(.icon-btn){border:1px solid #bac8f14d;border-radius:calc(.7 * var(--ui-unit));padding:calc(.8 * var(--ui-unit)) calc(1.2 * var(--ui-unit));background:#8baafa25}.modal .primary{background:#90acf2!important;color:#253044;border:0!important;margin-top:calc(.7 * var(--ui-unit))}.modal .switch-label{flex-direction:row;align-items:center;justify-content:space-between;padding:calc(.6 * var(--ui-unit)) 0}.secondary{font-size:calc(1.02 * var(--ui-unit));color:#b9bed4;line-height:1.7}.memory .avatar{width:calc(5 * var(--ui-unit));height:calc(5 * var(--ui-unit));margin:0 auto calc(1 * var(--ui-unit))}.empty,.camera-content{text-align:center}.empty .avatar{width:calc(5.5 * var(--ui-unit));height:calc(5.5 * var(--ui-unit));margin:auto}.empty svg,.camera-content>svg{color:#bad0ff}.camera-content button{display:block;margin:calc(.8 * var(--ui-unit)) auto}.camera-content video{width:100%;border-radius:calc(1 * var(--ui-unit));transform:scaleX(-1)}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(1 * var(--ui-unit))}.photo-grid>div{position:relative}.photo-grid img{width:100%;height:calc(10 * var(--ui-unit));object-fit:cover;border-radius:calc(.75 * var(--ui-unit))}.photo-grid .icon-btn{position:absolute;right:calc(.4 * var(--ui-unit));bottom:calc(.7 * var(--ui-unit));background:#242638ba}.no-motion *{animation:none!important;transition:none!important}@keyframes sway{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1.2deg)}}@keyframes purr{0%,to{transform:scale(1)}50%{transform:scale(1.006)}}@keyframes float{0%{opacity:0;transform:translateY(0) scale(.6)}20%{opacity:1}to{opacity:0;transform:translateY(calc(-10 * var(--ui-unit))) rotate(12deg) scale(1.4)}}@keyframes wave{to{transform:scaleY(.45)}}@keyframes listen{50%{box-shadow:0 0 0 calc(1 * var(--ui-unit)) #aac6ff2b}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:700px){.app-shell{display:block}.stage{width:100%;aspect-ratio:auto;min-height:100svh;height:1050px;container-type:inline-size;border-radius:0;font-size:16px}.room{height:600px;background-position:44% top;background-size:auto 600px}.topbar{height:64px;padding:0 12px}.brand{gap:10px}.brand h1{font-size:18px}.brand p{font-size:12px}.brand .avatar{width:38px;height:38px}.top-tools{gap:6px}.top-tools>button{font-size:0}.top-tools svg{width:22px;height:22px}.top-tools .divider,.top-tools .icon-btn{display:none}.sidebar{top:64px;bottom:auto;height:58px;width:100%;flex-direction:row;padding:4px 8px;gap:8px}.sidebar button{min-height:0;height:48px;gap:2px;font-size:12px}.sidebar svg{width:21px;height:21px}.cat-actor{top:138px;left:21%;width:78%;height:420px}.speech-bubble{left:57%;top:140px;width:34%;min-height:75px;font-size:14px;padding:12px;border-radius:20px}.bubble-heart{width:24px;height:24px;right:-8px;top:34px}.touch-zones .head-zone{top:200px;left:44%;height:150px;width:40%}.back-zone{top:355px;left:38%;height:170px;width:37%}.tail-zone{top:380px;left:78%;height:130px;width:20%}.left-controls{top:137px;left:12px;width:32%;gap:12px}.left-controls .panel{border-radius:12px;padding:10px}.status-panel{height:122px}.name-row{gap:6px;margin-bottom:10px}.name-row h2{font-size:18px}.name-row svg{width:15px;height:15px}.name-row .divider{height:15px}.status-panel p{font-size:11px;margin:8px 0;gap:5px}.status-panel p>svg{width:12px;height:12px}.status-dot{width:8px;height:8px}.battery{display:none}.mood-panel{height:177px}.panel h2{font-size:14px}.mood-meter{gap:5px;font-size:11px;margin:8px 0}.mood-meter>svg{width:16px;height:16px}.meter-track{height:6px}.meter-track i{width:7px;height:8px}.mood-grid,.action-grid{gap:5px}.mood-grid button{height:51px;font-size:11px;gap:3px;border-radius:7px}.mood-grid button>svg,.mood-grid .avatar{width:22px;height:22px}.action-panel{height:auto}.action-grid{margin-top:9px}.action-grid button{height:52px;font-size:11px;border-radius:7px;gap:3px}.action-grid svg{width:23px;height:23px}.bottom-controls{top:548px;bottom:auto;left:35%;width:62%;gap:12px}.bottom-controls button{font-size:12px;gap:5px}.bottom-small>span{width:40px;height:40px}.bottom-small svg{width:24px;height:24px}.talk-button>span{width:62px;height:62px;border-width:2px}.talk-button svg{width:33px;height:33px}.talk-button{font-size:13px!important}.chat-panel{left:12px;top:640px;width:calc(100% - 24px);height:390px;border-radius:15px}.chat-heading{height:47px;padding:0 16px}.chat-heading h2{font-size:18px}.chat-heading button{font-size:13px;gap:5px}.chat-heading svg{width:18px;height:18px}.chat-messages{padding:12px;gap:15px}.avatar{width:32px;height:32px}.user-avatar svg{width:21px;height:21px}.message{gap:8px}.message-body{font-size:14px;padding:8px 11px;border-radius:12px;max-width:80%}.message.user .message-body{padding:9px 12px}.touch-thumb{width:180px;min-width:0;border-radius:8px}.audio-body{width:230px}.audio-label{gap:8px}.audio-label .avatar{width:22px;height:22px}.audio-wave{height:32px;gap:3px;padding:3px 42px 3px 28px;margin:5px 0}.audio-wave i{width:3px;min-width:3px}.audio-wave .icon-btn{width:36px;height:36px}.audio-wave svg{width:19px;height:19px}.audio-body small{font-size:12px}.composer{padding:8px;gap:6px}.composer input{font-size:14px;padding:9px;border-radius:8px}.composer>button[type=submit]{font-size:13px;padding:9px}.composer .icon-btn svg{width:17px;height:17px}.notice{top:600px;bottom:auto;left:10px;max-width:calc(100% - 20px);font-size:13px;padding:10px 14px;border-radius:9px}.modal-backdrop{position:fixed}.modal{width:90%;max-height:85svh;padding:20px;font-size:15px;border-radius:18px}.modal-heading{margin-bottom:20px}.modal-heading h2{font-size:21px}.modal-heading svg{width:23px;height:23px}.modal label{gap:8px;margin:16px 0}.modal input:not([type=checkbox]):not([type=range]),.modal select{padding:10px;border-radius:8px}.modal input[type=checkbox]{width:20px;height:20px}.modal .primary,.modal button:not(.icon-btn){padding:10px 15px;border-radius:8px}.secondary{font-size:13px}.memory .avatar,.empty .avatar{width:55px;height:55px}.photo-grid{gap:10px}.photo-grid img{height:120px}.camera-content button{margin:10px auto}.floating-heart{width:26px;height:26px;top:300px}}@media(min-width:701px){.sidebar{padding-top:calc(2.2 * var(--ui-unit));gap:calc(1.1 * var(--ui-unit))}.chat-heading{height:calc(4 * var(--ui-unit))}.chat-messages{gap:calc(1.8 * var(--ui-unit))}.message.cat>.cat-avatar{background-size:2839.22% 2129.41%;background-position:76.81% 25.6%}}.message.cat>.message-body>span+.touch-thumb{margin-top:calc(.55 * var(--ui-unit))}

/* Size interface controls by the available height as well as width. */
.stage{--ui-unit:min(1vw,1.333333svh)}
.cat-sprite{background-size:contain}
@media(min-width:701px){
  .room{background-position:center bottom}
  .stage{width:100%;height:100svh;aspect-ratio:auto;border-radius:0;--cat-size:min(66svh,49.5vw)}
  .sidebar{width:calc(6.72 * var(--ui-unit))}
  .left-controls{left:calc(7.94 * var(--ui-unit));width:calc(20.3 * var(--ui-unit))}
  .chat-panel{left:auto;right:calc(.5 * var(--ui-unit));width:calc(26.55 * var(--ui-unit))}
  .cat-actor{left:calc(50% - var(--cat-size) / 2);width:var(--cat-size);height:var(--cat-size)}
  .head-zone{left:calc(50% - .33 * var(--cat-size));top:calc(18.7% + .08 * var(--cat-size));width:calc(.53 * var(--cat-size));height:calc(.44 * var(--cat-size))}
  .back-zone{left:calc(50% - .29 * var(--cat-size));top:calc(18.7% + .505 * var(--cat-size));width:calc(.468 * var(--cat-size));height:calc(.424 * var(--cat-size))}
  .tail-zone{left:calc(50% + .20 * var(--cat-size));top:calc(18.7% + .55 * var(--cat-size));width:calc(.23 * var(--cat-size));height:calc(.32 * var(--cat-size))}
  .speech-bubble{left:calc(50% + .12 * var(--cat-size));width:calc(13.8 * var(--ui-unit))}
  .bottom-controls{left:50%;transform:translateX(-50%);width:calc(30 * var(--ui-unit))}
}
@media(max-width:700px){
  .stage{--ui-unit:1vw;--cat-size:min(78vw,420px)}
  .cat-actor{width:var(--cat-size);height:var(--cat-size)}
  .touch-zones .head-zone{left:calc(21% + .17 * var(--cat-size));top:calc(138px + .08 * var(--cat-size));width:calc(.53 * var(--cat-size));height:calc(.44 * var(--cat-size))}
  .back-zone{left:calc(21% + .21 * var(--cat-size));top:calc(138px + .505 * var(--cat-size));width:calc(.468 * var(--cat-size));height:calc(.424 * var(--cat-size))}
  .tail-zone{left:calc(21% + .70 * var(--cat-size));top:calc(138px + .55 * var(--cat-size));width:calc(.23 * var(--cat-size));height:calc(.32 * var(--cat-size))}
}

.stage.panels-hidden .left-controls,.stage.panels-hidden .chat-panel{display:none!important}

@media(max-width:700px){.top-tools .panels-toggle{display:inline-flex}}
