.db-companion{position:fixed;right:22px;bottom:20px;z-index:4500;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#15395f;width:350px;max-width:calc(100vw - 28px);isolation:isolate}.db-companion *{box-sizing:border-box}.db-companion [hidden]{display:none!important}.db-companion button,.db-companion textarea{font:inherit}.db-companion button{cursor:pointer}.db-companion button:focus-visible,.db-companion a:focus-visible,.db-companion textarea:focus-visible{outline:3px solid #66b4e9;outline-offset:3px}.db-pet-panel{background:#fff;border:1px solid #c7ddee;border-radius:24px;box-shadow:0 16px 55px #15395f25;overflow:hidden}.db-pet-heading{display:flex;align-items:center;gap:14px;padding:15px 18px 10px;background:#edf6ff;position:relative}.db-pet-headings{flex:1;min-width:0}.db-pet-name{font-size:23px;font-weight:700;display:block}.db-pet-subtitle{font-size:12px;color:#55728b;display:block}.db-pet-art{flex:0 0 78px;width:78px;height:104px;transform-origin:50% 85%;animation:db-pet-listen 12s ease-in-out infinite}.db-pet-face{display:block;width:100%;height:100%;background:url('assets/mom-expressions-v1.png') 0 0/400% 100% no-repeat;animation:db-pet-expressions 18s steps(1,end) infinite}.db-companion[data-role=mike] .db-pet-art{height:150px;flex-basis:78px}.db-companion[data-role=mike] .db-pet-face{background-image:url('assets/mike-long-neck-expressions-v1.png')}.db-pet-minimize{align-self:flex-start;width:32px;height:32px;border:0;border-radius:50%;background:white;color:#15395f;font-size:23px;line-height:1;padding:0}.db-pet-log{height:164px;max-height:25dvh;overflow:auto;padding:14px 16px;background:white;overscroll-behavior:contain}.db-pet-bubble{padding:11px 13px;background:#eef6ff;border-radius:14px;margin:0 0 10px;overflow-wrap:anywhere;color:#244463}.db-pet-bubble.db-user{background:#e2ebf6;margin-left:24px}.db-pet-links{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 10px}.db-pet-links a{border:1px solid #c9dff0;border-radius:20px;padding:4px 10px;font-size:12px;color:#1262af;text-decoration:none;background:#fff}.db-pet-form{display:flex;gap:8px;margin:0;padding:10px 14px;border-top:1px solid #dbe8f3}.db-pet-form textarea{resize:none;min-width:0;flex:1;max-height:90px;border:1px solid #b9d0e4;border-radius:12px;padding:10px;color:#16395f;background:#fff}.db-pet-send{border:0;background:#173b60;color:white;border-radius:12px;padding:8px 13px;align-self:stretch}.db-pet-foot{display:flex;gap:12px;justify-content:space-between;padding:0 16px 12px;color:#617a90;font-size:11px}.db-pet-motion{border:0;background:none;color:#426684;padding:0;font-size:11px;white-space:nowrap}.db-pet-launcher{float:right;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #bfd8ec;box-shadow:0 8px 28px #15395f25;color:#15395f;border-radius:22px;padding:7px 17px 7px 8px;text-align:left}.db-pet-launcher .db-pet-art{width:52px;flex-basis:52px;height:70px}.db-companion[data-role=mike] .db-pet-launcher .db-pet-art{height:100px;width:52px;flex-basis:52px}.db-pet-launcher strong{display:block;font-size:16px}.db-pet-launcher small{font-size:11px;color:#55728b}.db-companion[data-motion=off] .db-pet-art,.db-companion[data-motion=off] .db-pet-face{animation:none!important}.db-companion[data-listening=true] .db-pet-art{animation:db-pet-nod 1.1s ease-in-out infinite}.db-companion[data-listening=true] .db-pet-face{animation:none;background-position:66.6667% 0}.db-companion[data-responding=true] .db-pet-face{animation:none;background-position:100% 0}.db-companion[data-responding=true] .db-pet-art{animation:db-pet-nod 1.5s ease-in-out 2}@keyframes db-pet-listen{0%,20%,44%,100%{transform:rotate(0) translateY(0)}25%,34%{transform:rotate(-7deg) translateY(-2px)}60%,69%{transform:rotate(5deg) translateY(1px)}80%{transform:rotate(0) translateY(-3px)}}@keyframes db-pet-nod{0%,100%{transform:rotate(-3deg) translateY(0)}45%{transform:rotate(3deg) translateY(3px)}}@keyframes db-pet-expressions{0%,24%,28%,49%,72%,76%,100%{background-position:0 0}25%,73%{background-position:33.3333% 0}50%,60%{background-position:66.6667% 0}61%,66%{background-position:100% 0}}
/* Use the same expression artwork in the embedded homepage and workbench too. */
.chat .avatar.mother-avatar .mother-face{animation:db-pet-expressions 18s steps(1,end) infinite}.chat .avatar.mother-avatar{animation:db-pet-listen 12s ease-in-out infinite;transform-origin:50% 85%}.chat .avatar.mother-avatar.mike-working-avatar{height:144px!important;background-color:transparent!important;background-image:url('assets/mike-long-neck-expressions-v1.png')!important;background-size:400% 100%!important;background-position:0 0;animation:db-pet-expressions 18s steps(1,end) infinite;border:0;box-shadow:none}.chat .mike-working-avatar:after{display:none}.companion-card[data-companion=mike] .companion-picture{height:160px;flex-basis:82px;width:82px;background-color:transparent;border:0;box-shadow:none;border-radius:0;background-image:url('assets/mike-long-neck-expressions-v1.png');background-size:400% 100%;background-position:0 0;animation:db-pet-expressions 18s steps(1,end) infinite}.companion-card[data-companion=bena] .companion-picture{animation:db-pet-expressions 18s steps(1,end) infinite}
@media(max-width:600px){.db-companion{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:335px}.db-pet-heading{padding:12px 15px 8px}.db-pet-log{height:135px;max-height:23dvh}.db-companion[data-role=mike] .db-pet-art{height:130px;flex-basis:68px}.db-pet-name{font-size:21px}.db-pet-form{padding:9px 12px}.db-pet-foot{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){.db-pet-art,.db-pet-face,.chat .avatar.mother-avatar,.chat .mother-face,.companion-card .companion-picture{animation:none!important}}
.db-companion[data-role=mike] .db-pet-face,.chat .avatar.mother-avatar.mike-working-avatar,.companion-card[data-companion=mike] .companion-picture{clip-path:inset(0 0 0 12%)}
.db-companion .db-pet-panel{margin:0;padding:0;max-height:calc(100dvh - 28px);overflow:auto}.db-companion button{margin:0}.db-companion .db-pet-links{margin:0;border:0;position:static;background:transparent;height:auto;min-height:0}.db-companion .db-pet-form textarea{margin:0}.chat .avatar.mother-avatar.mike-working-avatar{width:72px!important;flex-basis:72px!important;animation:db-pet-expressions 18s steps(1,end) infinite,db-pet-listen 12s ease-in-out infinite}.companion-card[data-companion=mike] .companion-picture{animation:db-pet-expressions 18s steps(1,end) infinite,db-pet-listen 12s ease-in-out infinite}
html[data-companion-motion=off] .chat .avatar,html[data-companion-motion=off] .chat .mother-face,html[data-companion-motion=off] .companion-picture{animation:none!important}
/* Compact, draggable window with a keyboard-accessible resize handle. */
.db-companion{width:300px;pointer-events:none}.db-companion .db-pet-panel{pointer-events:auto;position:relative;display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden;border-radius:19px}.db-companion .db-pet-launcher{pointer-events:auto}.db-companion .db-pet-heading{flex:0 0 auto;padding:10px 12px;gap:12px;cursor:grab;touch-action:none;user-select:none}.db-companion .db-pet-heading:active{cursor:grabbing}.db-companion .db-pet-art{width:54px;flex-basis:54px;height:72px}.db-companion[data-role=mike] .db-pet-heading .db-pet-art{height:104px;flex-basis:54px}.db-companion .db-pet-name{font-size:20px}.db-companion .db-pet-subtitle{font-size:11px}.db-companion .db-pet-minimize{width:26px;height:26px;font-size:20px;cursor:pointer}.db-companion .db-pet-log{height:auto;flex:1 1 auto;min-height:40px;max-height:none;padding:10px 12px}.db-companion .db-pet-bubble{padding:9px 11px;font-size:13px;line-height:1.6;margin-bottom:8px}.db-companion .db-pet-links{flex:0 0 auto;padding:0 12px 8px;gap:5px}.db-companion .db-pet-links a{font-size:11px;padding:3px 8px}.db-companion .db-pet-form{flex:0 0 auto;padding:8px 10px;gap:6px}.db-companion .db-pet-form textarea{padding:8px;font-size:12px;line-height:1.4;min-height:34px;max-height:60px}.db-companion .db-pet-send{padding:6px 10px;font-size:12px}.db-companion .db-pet-foot{flex:0 0 auto;padding:0 29px 8px 12px;font-size:10px;gap:5px}.db-companion .db-pet-motion{font-size:10px}.db-companion .db-pet-resize{position:absolute;bottom:1px;right:2px;width:24px;height:24px;padding:0;background:none;border:0;color:#7995ac;font-size:19px;line-height:24px;cursor:nwse-resize;touch-action:none}.db-pet-task-actions{flex:0 0 auto;padding:0 12px 8px}.db-pet-task-actions button{width:100%;border:1px solid #b6d3eb;border-radius:10px;background:#eaf4ff;color:#155b9d;padding:6px 9px;font-size:12px}.db-companion .db-pet-launcher .db-pet-art{width:40px;flex-basis:40px;height:54px}.db-companion[data-role=mike] .db-pet-launcher .db-pet-art{width:40px;flex-basis:40px;height:80px}.db-companion .db-pet-launcher{padding:5px 13px 5px 5px;border-radius:18px}.db-companion .db-pet-launcher strong{font-size:14px}
/* Mike: static torso; expressions change only above the neck. Crop the vest hem. */
.db-companion[data-role=mike] .db-pet-art{animation:none!important;transform:none!important}.db-companion[data-role=mike] .db-pet-heading .db-pet-art{height:86px}.db-companion[data-role=mike] .db-pet-launcher .db-pet-art{height:66px}
.db-companion[data-role=mike] .db-pet-face,.chat .avatar.mother-avatar.mike-working-avatar,.companion-card[data-companion=mike] .companion-picture{position:relative;background-image:url('assets/mike-long-neck-expressions-v1.png')!important;background-size:400% 122%!important;background-position:0 0!important;animation:none!important;transform:none!important;overflow:hidden}
.db-companion[data-role=mike] .db-pet-face:before,.chat .avatar.mother-avatar.mike-working-avatar:before,.companion-card[data-companion=mike] .companion-picture:before{content:"";display:block;position:absolute;inset:0;width:100%;height:100%;background:url('assets/mike-long-neck-expressions-v1.png') 0 0/400% 122% no-repeat;clip-path:inset(0 0 40% 0);animation:db-pet-expressions 18s steps(1,end) infinite;transform:none}
.chat .avatar.mother-avatar.mike-working-avatar{height:118px!important}.companion-card[data-companion=mike] .companion-picture{height:132px}
.db-companion[data-role=mike][data-listening=true] .db-pet-face:before{animation:none;background-position:66.6667% 0}.db-companion[data-role=mike][data-responding=true] .db-pet-face:before{animation:none;background-position:100% 0}
.db-companion[data-motion=off] .db-pet-face:before,html[data-companion-motion=off] .mike-working-avatar:before,html[data-companion-motion=off] .companion-picture:before{animation:none!important;background-position:0 0!important}
@media(prefers-reduced-motion:reduce){.db-pet-face:before,.mike-working-avatar:before,.companion-picture:before{animation:none!important}}

/* Bena's torso stays fixed; expressions are limited to the head. */
.db-companion[data-role=bena] .db-pet-art,.chat .avatar.mother-avatar:not(.mike-working-avatar){animation:none!important;transform:none!important}
.db-companion[data-role=bena] .db-pet-face,.chat .avatar.mother-avatar:not(.mike-working-avatar) .mother-face,.companion-card[data-companion=bena] .companion-picture{position:relative;background-image:url('assets/mom-expressions-v1.png');background-size:400% 100%;background-position:0 0!important;animation:none!important;transform:none!important}
.db-companion[data-role=bena] .db-pet-face:before,.chat .avatar.mother-avatar:not(.mike-working-avatar) .mother-face:before,.companion-card[data-companion=bena] .companion-picture:before{content:"";position:absolute;inset:0;background:url('assets/mom-expressions-v1.png') 0 0/400% 100% no-repeat;clip-path:inset(0 0 40% 0);mask-image:linear-gradient(#000 0 53%,transparent 61%);animation:db-bena-head-expressions 18s steps(1,end) infinite}
@keyframes db-bena-head-expressions{0%,24%,28%,49%,62%,100%{background-position:0 0}25%,27%,74%,76%{background-position:33.3333% 0}50%,61%{background-position:66.6667% 0}}
.db-companion[data-role=bena][data-listening=true] .db-pet-face:before,.db-companion[data-role=bena][data-responding=true] .db-pet-face:before{animation:none;background-position:66.6667% 0}
.db-companion[data-role=bena][data-motion=off] .db-pet-face:before,html[data-companion-motion=off] .mother-face:before,html[data-companion-motion=off] .companion-card[data-companion=bena] .companion-picture:before{animation:none!important;background-position:0 0!important}
.db-companion .db-pet-launcher{cursor:grab;touch-action:none;user-select:none}.db-companion .db-pet-launcher:active{cursor:grabbing}
@media(prefers-reduced-motion:reduce){.db-companion[data-role=bena] .db-pet-face:before,.mother-face:before,.companion-card[data-companion=bena] .companion-picture:before{animation:none!important}}
