.tim-helper{position:fixed;right:22px;bottom:18px;z-index:80;font-family:Arial,sans-serif;color:#173b51}.tim-launcher{display:flex;align-items:center;gap:3px;border:0;background:none;color:#173b51;padding:0;cursor:pointer}.tim-launcher img{width:100px;height:106px;filter:drop-shadow(0 4px 5px #173b5120);animation:tim-hello 1s ease-out 1}.tim-launcher span{background:#fffdf6;border:1px solid #d9e2da;border-radius:18px;padding:12px;font-size:13px;box-shadow:0 4px 18px #173b5114}.tim-panel{width:320px;max-height:min(560px,70vh);overflow:auto;background:#fffdf6;border:1px solid #d2dfd8;border-radius:22px;box-shadow:0 12px 40px #173b5126;margin-bottom:10px;padding:24px 20px 16px;position:relative}.tim-close{position:absolute;right:8px;top:5px;border:0;background:none;font-size:25px;color:#56717b;width:36px;height:36px}.tim-content p{font-size:14px;line-height:1.5;margin:8px 0 16px}.tim-content .tim-title{font-size:21px;font-weight:bold;padding-right:15px}.tim-content>a,.tim-content>button,.tim-form>button{display:block;width:100%;text-align:left;padding:12px 14px;border:1px solid #d7e2db;border-radius:12px;background:#edf3ec;margin:8px 0;font-size:14px;color:#173b51}.tim-content .tim-contact,.tim-form>button{background:#f6cf57;font-weight:bold}.tim-content .tim-later{background:none;border:0;font-size:12px;color:#617a82}.tim-form label{display:block;font-size:13px;margin:12px 0}.tim-form input,.tim-form select{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px;border:1px solid #cbd8d5;border-radius:8px;background:white;color:#173b51;font:inherit}.tim-content .tim-note{font-size:12px;color:#647c83}.tim-helper button:focus-visible,.tim-helper a:focus-visible{outline:3px solid #286baa;outline-offset:2px}.tim-helper button:hover,.tim-helper a:hover{filter:brightness(.97)}@keyframes tim-hello{0%{transform:translateY(16px)}60%{transform:translateY(-4px)}100%{transform:translateY(0)}}@media(max-width:600px){.tim-helper{right:12px;bottom:max(10px,env(safe-area-inset-bottom));}.tim-launcher{margin-left:auto}.tim-launcher img{width:64px;height:68px}.tim-launcher span{font-size:11px;padding:9px}.tim-panel{width:min(310px,calc(100vw - 24px));max-height:65vh;padding:22px 16px 12px;box-sizing:border-box}}@media(prefers-reduced-motion:reduce){.tim-launcher img{animation:none}}
/* Eight-frame grey tabby: genuine pose changes, blink and waving paw. */
.tim-cat-animated{display:block;flex-shrink:0;width:140px;height:140px;background-image:url('/assets/tim-cat-animated.png');background-size:400% 200%;background-repeat:no-repeat;filter:drop-shadow(0 4px 5px #173b5125);animation:tim-cat-frames 6s steps(1,end) infinite;transform-origin:50% 95%}
@keyframes tim-cat-frames{0%,52%{background-position:0% 0%}58%{background-position:33.333333% 0%}64%{background-position:66.666667% 0%}69%{background-position:100% 0%}73%{background-position:0% 100%}77%{background-position:33.333333% 100%}84%{background-position:66.666667% 100%}91%{background-position:100% 100%}100%{background-position:0% 0%}}
.tim-launcher:hover .tim-cat-animated{animation-duration:3s}
@media(max-width:600px){.tim-cat-animated{width:96px;height:96px}}
@media(prefers-reduced-motion:reduce){.tim-cat-animated{animation:none;background-position:0 0}}

/* Smooth two-layer blending replaces hard sprite steps. */
.tim-cat-animated{position:relative;background:none;animation:tim-breathe 3.4s ease-in-out infinite}
.tim-cat-frame{position:absolute;inset:0;display:block;background-image:url('/assets/tim-cat-animated.png');background-size:400% 200%;background-repeat:no-repeat;pointer-events:none}
.tim-launcher:hover .tim-cat-animated{animation-duration:3.4s}
@keyframes tim-breathe{0%,100%{transform:scale(1,1) rotate(-.3deg)}50%{transform:scale(1.012,1.022) rotate(.3deg)}}
@media(prefers-reduced-motion:reduce){.tim-cat-animated{animation:none}}

/* Continuous deformation of one texture; no frame swapping or blending. */
.tim-cat-animated,.tim-launcher:hover .tim-cat-animated{animation:none;background:none;filter:drop-shadow(0 3px 4px #173b5120)}.tim-cat-animated canvas{display:block;width:100%;height:100%;pointer-events:none}

/* Speech prompt to the left, Tim on the right. */
.tim-launcher{flex-direction:row-reverse}


.tim-launcher span{max-width:205px;line-height:1.5;white-space:normal;text-align:left}.tim-helper:has(.tim-panel:not([hidden])) .tim-launcher span{display:none}@media(max-width:600px){.tim-launcher span{max-width:190px;font-size:11px}}

.manager-channels{margin-top:18px;max-width:380px}.manager-channels-title{display:block;font-size:13px;font-weight:600;margin-bottom:10px}.manager-channel-buttons{display:flex;gap:8px;flex-wrap:wrap}.manager-channel-buttons button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:88px;min-height:48px;padding:8px 12px;border:1px solid #a99b7e;border-radius:8px;background:#f6f4ee;color:#41474b;font:inherit;font-size:12px;cursor:default;opacity:.85;box-shadow:none}.manager-channel-buttons button small{font-size:10px;color:#777}.tim-panel .manager-channel-buttons{display:flex}.tim-panel .manager-channel-buttons button{flex:1;width:auto;margin:0;background:#f6f4ee;color:#41474b;border:1px solid #d9d3c5;box-shadow:none}.tim-panel .manager-channels{border-top:1px solid #ded9ce;padding-top:14px}.footer .manager-channels-title{color:#e1dfd6}
