/* An original, transparent companion floats without changing the page layout. */
.companion-float{position:fixed;left:0;top:0;width:var(--companion-size,130px);height:var(--companion-size,130px);z-index:35;isolation:isolate;contain:layout style;pointer-events:none;user-select:none;-webkit-user-select:none;color:#345141;font-family:system-ui,sans-serif}
.companion-float[hidden],.companion-recall[hidden],.companion-open[hidden],.companion-controls[hidden],.companion-bubble[hidden]{display:none!important}
.companion-stage{display:block;width:100%;height:100%;padding:0;border:0;border-radius:45%;background:transparent;cursor:grab;pointer-events:auto;touch-action:none;contain:layout paint}
.companion-float.is-dragging .companion-stage{cursor:grabbing}
.companion-frame{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-select:none}
.companion-stage>.companion-frame{transform:scale(var(--cat-growth,1));transform-origin:50% 90%}
.companion-accessories{position:absolute;inset:0;pointer-events:none;transform:scale(var(--cat-growth,1));transform-origin:50% 90%}
.companion-accessory{position:absolute;left:50%;top:64%;width:27%;transform:translate(-50%,-50%);pointer-events:none}
.companion-accessory .journey-gift-icon{display:block;width:100%;height:auto}
.companion-accessory[data-kind=bell]{top:69%;width:13%}.companion-accessory[data-kind=round-glasses]{top:38%;width:43%}.companion-accessory[data-kind=home-crown]{top:11%;width:43%}.companion-accessory[data-slot=chest]{top:76%;left:59%;width:18%}.companion-accessory[data-slot=keepsake]{display:none}
.companion-float:not([data-companion-state=idle]):not([data-companion-state=talk]):not([data-companion-state=think]) .companion-accessories{visibility:hidden}
.companion-menu{position:absolute;right:0;bottom:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:30px;height:30px;min-width:0;min-height:0;padding:0;border:1px solid #cbdcc5;border-radius:50%;background:#fffef5ec;color:#416a50;font:700 18px/1 system-ui,sans-serif;cursor:pointer;pointer-events:auto;touch-action:manipulation;opacity:0;transition:opacity .12s}
.companion-float:hover .companion-menu,.companion-float:focus-within .companion-menu,.companion-menu[aria-expanded=true]{opacity:1}
.companion-bubble{position:absolute;bottom:calc(100% + 7px);padding:9px 11px;margin:0;border:1px solid #d3dfca;border-radius:13px;background:#fffef5f5;color:#526947;font-size:11px;line-height:1.55;box-shadow:0 4px 20px #284c3c14;overflow-wrap:anywhere;pointer-events:none;max-height:100px;overflow:hidden}
.companion-bubble-below{bottom:auto;top:calc(100% + 7px)}
.companion-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:6px}
.companion-float-controls{position:absolute;display:grid;gap:4px;padding:10px;border:1px solid #d0ddc6;border-radius:12px;background:#fffef7f7;box-shadow:0 5px 25px #183c341c;pointer-events:auto;box-sizing:border-box}
.companion-panel-header{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:20px}
.companion-panel-title{font-size:10px;font-weight:600;line-height:1.4;color:#54705a}
.companion-panel-message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:11px;line-height:1.4;text-align:left;color:#607258;margin:0;overflow-wrap:anywhere;max-height:30.8px;overflow:hidden}
.companion-panel-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.companion-float-controls .companion-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:30px;padding:3px 2px;font-size:10px;line-height:1.2;border-radius:7px}
.companion-action-icon{font-size:11px;line-height:1}.companion-action-label{font-size:10px;line-height:1.2}
.companion-float-controls .companion-hide{display:block;flex:0 0 20px;width:20px;min-height:20px;padding:0;border:0;background:none;font-size:18px;line-height:20px;color:#6d816b}
.companion-panel-above{bottom:calc(100% + 10px)}.companion-panel-below{top:calc(100% + 10px)}
.companion-float-controls::after{content:'';position:absolute;left:0;right:0;height:14px}
.companion-panel-above::after{top:100%}.companion-panel-below::after{bottom:100%}
.companion-panel-right::after{left:-14px;right:auto;top:0;bottom:0;width:14px;height:auto}.companion-panel-left::after{left:auto;right:-14px;top:0;bottom:0;width:14px;height:auto}
.companion-button{font-family:inherit;font-size:11px;font-weight:600;line-height:1.4;color:#335c47;background:#f2f5e9;border:1px solid #d5dfca;border-radius:8px;padding:8px 10px;cursor:pointer;min-height:35px;touch-action:manipulation}
.companion-button:hover{background:#e5eedb}
.companion-button:focus-visible,.companion-stage:focus-visible,.companion-menu:focus-visible,.companion-recall:focus-visible,.companion-open:focus-visible,.companion-close:focus-visible{outline:3px solid #2c7253;outline-offset:3px}
.companion-motion{display:flex;align-items:center;justify-content:center;gap:5px;font-size:10px;line-height:1.5;color:#61735b;margin:12px 0 0;cursor:pointer}
.companion-float-controls .companion-motion{justify-content:flex-start;min-height:28px;gap:5px;margin:0;font-size:10px;line-height:1.4}
.companion-float-controls .companion-motion input{width:14px;height:14px}
.companion-motion input{width:16px;height:16px;accent-color:#2c7253;margin:0}
.companion-recall{position:fixed;z-index:35;width:44px;height:44px;border:1px solid #cfdcc4;border-radius:14px;background:#fffef5eb;color:#466454;padding:3px;font-family:system-ui,sans-serif;font-size:10px;font-weight:600;line-height:1.4;cursor:pointer;touch-action:manipulation;box-shadow:0 3px 12px #2d4c3d16}
.companion-open{flex:0 0 53px;border:1px solid #d9e1ce;border-radius:8px;background:#f7f8ed;color:#466454;padding:5px;font-family:inherit;font-size:10px;font-weight:600;line-height:1.4;cursor:pointer;min-height:44px;touch-action:manipulation}
.companion-dialog{border:1px solid #d7e0ce;border-radius:22px;background:#fffef7;color:#344d40;padding:20px;width:calc(100% - 32px);max-width:390px;max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 25px 80px #18392940}
.companion-dialog::backdrop{background:#173d3466;backdrop-filter:blur(3px)}
.companion-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.companion-title{font:500 22px/1.25 Georgia,serif;margin:0;color:#294d3d}
.companion-close{border:0;background:#eff3e9;color:#4e6455;border-radius:50%;font-size:24px;line-height:30px;width:32px;height:32px;cursor:pointer;flex:0 0 32px}
.companion-modal-frame{width:160px;height:160px;margin:2px auto 0;contain:layout paint}
.companion-message{font-size:11px;line-height:1.6;margin:5px 0 12px;min-height:36px;color:#617163;overflow-wrap:anywhere;text-align:center}
.companion-local-note{font-size:10px;line-height:1.6;color:#7b8275;margin:14px 0 9px;text-align:center}
.companion-chat-log{list-style:none;max-height:100px;overflow:auto;padding:0;margin:0 0 10px;font-size:10px;line-height:1.6;overflow-wrap:anywhere;scrollbar-width:thin}
.companion-chat-log:empty{display:none}.companion-chat-log li{padding:5px 8px;margin:4px 0;border-radius:7px}.companion-chat-user{background:#f0f2e8;color:#627261}.companion-chat-cat{background:#e8f0df;color:#355c43}
.companion-input-label{display:block;font-size:10px;font-weight:600;color:#5c715f;margin-bottom:5px}.companion-chat-row{display:flex;gap:7px}.companion-chat-input{font-family:inherit;font-size:12px;line-height:1.5;flex:1;min-width:0;border:1px solid #d0dcc9;border-radius:8px;background:#fffefb;color:#354d3e;padding:8px;min-height:35px}.companion-chat-input:focus{outline:2px solid #92b68c;outline-offset:1px}.companion-chat-row .companion-button{flex:0 0 auto}
img[data-companion-managed=true][data-companion-action]{animation:none!important}
.companion-lab{max-width:1000px;margin:35px auto;padding:0 20px;color:#345141;font-family:system-ui,sans-serif}.companion-lab h1{font:500 34px/1.2 Georgia,serif}.companion-lab p{font-size:14px;line-height:1.7}.companion-lab-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:30px;align-items:start}.companion-lab-preview{width:280px;height:280px;object-fit:contain;display:block;margin:auto;contain:layout paint}.companion-lab-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.companion-lab .companion-button{font-size:12px}.companion-lab-note{font-size:12px!important;color:#71816f}
@media(hover:none){.companion-menu{opacity:1;width:24px;height:24px;font-size:14px}.companion-float-controls .companion-hide{flex-basis:28px;width:28px;min-height:28px;line-height:28px}}
@media(max-width:600px){.companion-dialog{padding:16px;border-radius:18px}.companion-title{font-size:20px}.companion-modal-frame{width:140px;height:140px}.companion-button,.companion-chat-input{min-height:44px}.companion-dialog .companion-close{width:44px;height:44px;flex-basis:44px;line-height:40px}.companion-dialog .companion-motion{margin-top:10px}.companion-lab-layout{grid-template-columns:1fr}.companion-lab h1{font-size:28px}.companion-lab-preview{width:230px;height:230px}}
@media(prefers-reduced-motion:reduce){.companion-float *,.companion-recall,.companion-open{animation:none!important;transition:none!important}}

/* The touch menu stays inside the cat's safe placement, including compact cats. */
