/* The same guide follows the visitor into a room; it stays inside modal focus. */
.rat-panel{padding:0;position:fixed;right:24px;bottom:24px;width:350px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 104px);z-index:45;display:flex;flex-direction:column;background:#130d1cef;color:var(--bone);border:1px solid #c77dff55;border-radius:14px;box-shadow:0 20px 65px #0008;backdrop-filter:blur(16px);font:13px/1.5 var(--body);overflow:hidden}
.rat-panel[hidden],.rat-panel [hidden]{display:none!important}
.rat-head{display:flex;gap:10px;align-items:center;padding:15px 16px 10px;flex:none}
.rat-head>img{display:none}
.rat-head img{image-rendering:pixelated;object-fit:contain;flex:none}
.rat-head>div{flex:1;min-width:0}
.rat-head b{display:block;font:500 15px var(--display);letter-spacing:-.02em}
.rat-head span{display:block;color:var(--dim);font:10px/1.6 var(--mono);margin-top:4px}
.rat-panel button{cursor:pointer;touch-action:manipulation}
.rat-panel button:focus-visible,.rat-panel input:focus-visible{outline:2px solid var(--purple-hot);outline-offset:3px}
.rat-close{flex:none;border:0;background:transparent;color:var(--dim);min-width:40px;min-height:40px;font:25px var(--body);border-radius:5px}
.rat-close:hover{background:#c77dff15;color:white}
.rat-status{display:flex;align-items:center;gap:7px;padding:0 16px 12px;color:#cdbedc;font:10px/1.5 var(--mono);flex:none}
.rat-dot{width:6px;height:6px;border-radius:50%;background:#8c7c9e;flex:none}
.rat-connected .rat-dot{background:#bf8be6;box-shadow:0 0 9px #bf8be66b}

.rat-toggle{margin-left:auto;border:0;background:transparent;color:#dfb8ff;font:10px/1.4 var(--mono);min-height:36px;padding:4px 6px;flex:none}
.rat-content{overflow:auto;overscroll-behavior:contain;min-height:0;padding:0 16px 16px}
.rat-intro{font:14px/1.6 var(--body);color:var(--bone);margin:2px 0 15px}
.rat-start{display:flex;gap:8px}
.rat-start>button{flex:1;min-height:44px;padding:10px 7px;font:10px/1.4 var(--mono);letter-spacing:0}
.rat-start button:disabled{opacity:.35;cursor:default}
.rat-privacy{font:10px/1.6 var(--body);color:var(--dim);margin:10px 0 16px}
.rat-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-top:13px;border-top:1px solid var(--line-soft)}
.rat-shortcuts button,.rat-live-controls button,.rat-tour button{border:1px solid var(--line);border-radius:5px;background:#20162d;color:#e2d2f0;padding:8px 10px;font:10px/1.4 var(--mono);min-height:40px;text-align:left}
.rat-shortcuts button:hover,.rat-live-controls button:hover,.rat-tour button:hover{background:#342141;border-color:#a879df}
.rat-log:empty{display:none}
.rat-log{max-height:220px;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:13px;padding:8px 1px 10px}
.rat-message{max-width:94%}
.rat-message b{display:block;font:9px/1.5 var(--mono);color:#c9a3e8;margin-bottom:3px}
.rat-message p{font:13px/1.6 var(--body);margin:0;color:var(--bone);overflow-wrap:anywhere;white-space:pre-wrap}
.rat-me{align-self:flex-end;background:#c77dff12;border-radius:8px;padding:8px 10px}
.rat-me b{color:var(--dim)}
.rat-form{display:flex;gap:6px;margin-top:10px}
.rat-form input{background:#09060e;border:1px solid var(--line);border-radius:6px;min-width:0;flex:1;padding:11px 10px;font:12px var(--body);color:white}
.rat-form button{background:var(--purple-hot);color:#170d20;border:0;border-radius:6px;font:10px var(--mono);min-width:56px;padding:10px}
.rat-live-controls{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--line-soft);flex:none}
.rat-live-controls [data-rat-end]{background:transparent;color:#f0d9ec}
.rat-tour{border-top:1px solid var(--line-soft);padding:10px 16px;display:flex;align-items:center;gap:8px;flex:none;background:#21162c}
.rat-tour span{font:10px/1.5 var(--mono);flex:1;color:#d1b6e8}
.rat-tour button{flex:none;font-size:9px}
.rat-panel[data-docked="true"]{position:relative;inset:auto;width:auto;max-width:none;max-height:none;flex:none;margin:0;border-radius:0;border-width:0 0 1px;box-shadow:none;background:#171020;backdrop-filter:none;z-index:2}
.rat-panel[data-docked="true"] .rat-head{padding:8px 15px 0;gap:8px}
.rat-panel[data-docked="true"] .rat-head b{font-size:12px}
.rat-panel[data-docked="true"] .rat-head span{display:none}
.rat-panel[data-docked="true"] .rat-head img{width:22px;height:22px}
.rat-panel[data-docked="true"] .rat-status{padding:0 15px 5px}
.rat-panel[data-docked="true"]:not(.rat-expanded) .rat-content{display:none}
.rat-panel[data-docked="true"] .rat-content{max-height:220px;padding:0 15px 10px}
.rat-panel[data-docked="true"] .rat-log{max-height:135px}
.rat-panel[data-docked="true"] .rat-live-controls{padding:5px 15px 8px;border:0}
.rat-panel[data-docked="true"] .rat-live-controls button{min-height:32px;padding:5px 9px}
.rat-panel[data-docked="true"] .rat-tour{padding:6px 15px}
.rat-invitation{width:100%;margin-bottom:15px;min-height:44px;font:11px var(--mono);letter-spacing:0}
.rat-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
body.touched.rat-open #house-dock{visibility:hidden}
@keyframes rat-talking{to{transform:translateY(-2px) rotate(-3deg)}}
@media(max-width:860px){.rat-panel{right:12px;bottom:12px;width:350px;max-width:calc(100vw - 24px)}.rat-form input{font-size:16px}.rat-panel[data-docked="true"] .rat-content{max-height:190px}.rat-panel[data-docked="true"] .rat-log{max-height:95px}.rat-panel[data-docked="true"] .rat-tour button{min-height:36px}.rat-panel[data-docked="true"] .rat-status{font-size:9px}.rat-toggle{font-size:9px}.rat-head b{font-size:14px}}
@media(prefers-reduced-motion:reduce){.rat-speaking .rat-head img{animation:none}}

/* A close-up companion, made from Ana's existing pixel mascot and a vector headset. */
.rat-presence{display:flex;justify-content:center;flex:none;padding:16px 0 0;background:radial-gradient(ellipse at 50% 100%,#a35cdb19,transparent 65%)}
.rat-avatar{position:relative;width:112px;height:120px;flex:none}
.rat-avatar-body{position:relative;width:100px;height:100px;margin:auto;transform-origin:50% 90%;filter:drop-shadow(0 7px 12px #0006)}
.rat-avatar-body img{display:block;width:100%;height:100%;image-rendering:pixelated;object-fit:contain}
.rat-headset{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.rat-band{fill:none;stroke:#211c32;stroke-width:7;stroke-linecap:round}
.rat-ear{fill:#27213b;stroke:#cf9df5;stroke-width:1.5}
.rat-boom{fill:none;stroke:#ddd1eb;stroke-width:3;stroke-linecap:round}
.rat-mic{fill:#232030;stroke:#b6efdb;stroke-width:1}
.rat-voice-bars{position:absolute;bottom:0;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;height:18px}
.rat-voice-bars i{display:block;width:3px;height:4px;border-radius:3px;background:#937aa6;transform-origin:center}
.rat-arriving .rat-avatar-body{animation:rat-approach .65s cubic-bezier(.16,1,.3,1) both}
.rat-speaking .rat-avatar-body{animation:rat-speak .65s ease-in-out infinite alternate}
.rat-speaking .rat-voice-bars i{background:#ddb0ff;animation:rat-wave .55s ease-in-out infinite alternate}
.rat-speaking .rat-voice-bars i:nth-child(2){animation-delay:-.3s}
.rat-speaking .rat-voice-bars i:nth-child(3){animation-delay:-.15s}
.rat-speaking .rat-voice-bars i:nth-child(4){animation-delay:-.4s}
.rat-listening .rat-avatar-body{animation:rat-listen 3s ease-in-out infinite}
.rat-listening .rat-ear{stroke:#b6efdb}
.rat-muted .rat-voice-bars{opacity:.35}
.rat-panel[data-docked="true"] .rat-presence{position:absolute;top:8px;left:14px;padding:0;background:none;pointer-events:none}
.rat-panel[data-docked="true"] .rat-avatar{width:52px;height:55px}
.rat-panel[data-docked="true"] .rat-avatar-body{width:48px;height:48px}
.rat-panel[data-docked="true"] .rat-voice-bars{height:6px;bottom:0;gap:3px}
.rat-panel[data-docked="true"] .rat-head{padding-left:78px;min-height:39px}
.rat-panel[data-docked="true"] .rat-head>img{display:none}
.rat-panel[data-docked="true"] .rat-status{padding-left:78px;min-height:27px}
.rat-dock-icon{position:relative;display:inline-flex}
.rat-dock-icon>span{position:absolute;right:-5px;bottom:-3px;background:#241a32;border-radius:4px;font-size:10px;color:#d9b6f4;padding:0 2px}
@keyframes rat-approach{from{opacity:0;transform:translateY(-28px) scale(.35) rotate(-9deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes rat-speak{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-4px) rotate(2deg)}}
@keyframes rat-listen{0%,100%{transform:rotate(0)}40%,60%{transform:rotate(-5deg) translateY(-1px)}}
@keyframes rat-wave{from{height:3px}to{height:16px}}
@media(max-width:860px){.rat-presence{padding-top:10px}.rat-avatar{width:90px;height:97px}.rat-avatar-body{width:80px;height:80px}}
@media(prefers-reduced-motion:reduce){.rat-arriving .rat-avatar-body,.rat-speaking .rat-avatar-body,.rat-listening .rat-avatar-body,.rat-speaking .rat-voice-bars i{animation:none}.rat-speaking .rat-voice-bars i{height:10px}}
