/* Mascottes des agents du Studio (Comptoir, Tamis, Directrice, Atelier, Labo, Presse) : robots SVG animés.
   Partagées par l'app, la page de connexion et le récap. bot(agent, {on, n}) rend le SVG ; .on = au travail. */
:root {
  --c-comptoir: #23a07a; --c-dir: #6b4fd8; --c-at: #ef7d3c; --c-presse: #1f8fd6; --c-tamis: #c9952b; --c-img: #d9478a; --bot-ink: #1d1b22;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bot-ink: #e7e3f0; } }
:root[data-theme="dark"] { --bot-ink: #e7e3f0; }
@keyframes spin { to { transform: rotate(360deg); } }
.bot { width: 100%; height: 100%; display: block; overflow: visible; }
.bot .col { fill: var(--c); } .bot .ink { fill: var(--bot-ink); } .bot .inks { stroke: var(--bot-ink); }
.bot .visor { fill: #17151d; } .bot .eye { fill: #fff; transform-box: fill-box; transform-origin: center; animation: bblink 5s infinite; animation-delay: var(--d); }
.bot .body { transform-box: view-box; transform-origin: 32px 60px; animation: bbreath 4s ease-in-out infinite; animation-delay: var(--d); }
.bot .fx { opacity: 0; transition: opacity .3s; }
.bot.on .fx { opacity: 1; }
.bot.on .body { animation: bbob .8s ease-in-out infinite; }
.bot.on .eyes { animation: blook 2.6s ease-in-out infinite; animation-delay: var(--d); }
.bot.on .talk circle { fill: var(--c); animation: bdot 1.1s infinite; } .bot.on .talk circle:nth-child(2) { animation-delay: .18s; } .bot.on .talk circle:nth-child(3) { animation-delay: .36s; }
.bot.on .sieve { transform-box: view-box; transform-origin: 32px 11px; animation: bshake .22s ease-in-out infinite alternate; }
.bot .grains circle { fill: var(--c); } .bot.on .grains circle { animation: bfall .9s ease-in infinite; } .bot.on .grains circle:nth-child(2) { animation-delay: .3s; } .bot.on .grains circle:nth-child(3) { animation-delay: .6s; }
.bot.on .spark { transform-box: fill-box; transform-origin: center; animation: bspark 1.3s ease-in-out infinite; }
.bot.on .pencil { transform-box: view-box; transform-origin: 48px 42px; animation: bscrib .28s ease-in-out infinite alternate; }
.bot .scrib { stroke-dasharray: 44; stroke-dashoffset: 44; } .bot.on .scrib { animation: bdraw 1.4s linear infinite; }
.bot .paper { transform: translateY(7px); } .bot.on .paper { animation: bprint 1.5s ease-in-out infinite; }
.bot.on .lens { transform-box: fill-box; transform-origin: center; animation: spin 2.4s linear infinite; }
.bot.on .flash { animation: bflash 1.6s steps(1) infinite; } .bot.on .flashfx { animation: bflash 1.6s steps(1) infinite; }
.bot.on .pix rect { animation: bpix 1.2s ease-in-out infinite; } .bot.on .pix rect:nth-child(2) { animation-delay: .4s; } .bot.on .pix rect:nth-child(3) { animation-delay: .8s; }
@keyframes bflash { 0%, 70% { opacity: .15; } 72%, 82% { opacity: 1; } }
@keyframes bpix { 0%, 100% { opacity: 0; transform: scale(.4); } 50% { opacity: 1; transform: scale(1); } }
.bot .pix rect { transform-box: fill-box; transform-origin: center; }
@keyframes bblink { 0%, 93%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.12); } }
@keyframes bbreath { 50% { transform: scale(1.02, .98); } }
@keyframes bbob { 50% { transform: translateY(-2.5px) rotate(-1.5deg); } }
@keyframes blook { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-2.5px); } 60% { transform: translateX(2.5px) translateY(-1px); } }
@keyframes bdot { 0%, 100% { opacity: .2; } 40% { opacity: 1; } }
@keyframes bshake { from { transform: rotate(-7deg); } to { transform: rotate(7deg); } }
@keyframes bfall { from { transform: translateY(0); opacity: 1; } to { transform: translateY(9px); opacity: 0; } }
@keyframes bspark { 0%, 100% { transform: scale(.4) rotate(0); opacity: .3; } 50% { transform: scale(1.1) rotate(45deg); opacity: 1; } }
@keyframes bscrib { from { transform: rotate(-9deg) translate(-1px, 0); } to { transform: rotate(6deg) translate(1px, 1px); } }
@keyframes bdraw { to { stroke-dashoffset: -44; } }
@keyframes bprint { 0% { transform: translateY(7px); } 60%, 80% { transform: translateY(-3px); } 100% { transform: translateY(7px); } }
@media (prefers-reduced-motion: reduce) { .bot * { animation: none !important; } }
