/* Zoolinko v2 · Archie et Oreo (partagé site + connexion) */
/* ── Personnages (Archie, Oreo) ── */
.duo{display:block;width:100%;height:auto;overflow:visible}
.duo .duo-shadow{fill:var(--forest-900);opacity:.13}
.duo path,.duo ellipse,.duo circle{stroke:none}
.duo .ln{stroke:#3A3B3E;stroke-width:3}
.duo .oreo .ln{stroke:#F2EDE4}
/* Archie (spitz nain) : gris clair, front fauve, oreilles gris foncé (Anthony 10/11 18h34) */
.duo .f-honey{fill:#C9CBCD}.duo .f-leg{fill:#B4B7BB}.duo .f-honey-d{fill:#A9ACB0}.duo .f-cream{fill:#F3E9D8}.duo .f-fawn{fill:#C9965A}.duo .f-ear{fill:#3A3B3E}.duo .archie .f-ink{fill:#1F1F21}
.duo .f-ink{fill:#2A1E17}.duo .f-glint{fill:#fff;stroke:none}.duo .f-blush{fill:#F4A3A0;opacity:.55;stroke:none}
.duo .f-mouth{fill:#7C2F2B}.duo .f-tongue{fill:#F08C8A}.duo .f-collar{fill:#4A6B59}.duo .oreo .f-collar{fill:#D9765A}.duo .f-ring{fill:#C9A04A}
.duo .f-gold{fill:var(--gold)}.duo .f-gold-d{fill:#B9871F;stroke:none}
.duo .f-coal{fill:#2E2B2C}.duo .f-snow{fill:#FBF8F2}.duo .f-pink{fill:#F2A7A7}.duo .f-iris{fill:#A9C94B}.duo .f-nose{fill:#E98C8C}
.duo .ln{fill:none;stroke-linecap:round}.duo .ns{stroke:none}
.duo .whisk{stroke:#A39E95;stroke-width:2;fill:none;stroke-linecap:round}
.duo g{transform-box:fill-box}
.duo .pet{transform-origin:50% 100%;animation:breathe 3.6s ease-in-out infinite}
.duo .oreo{animation-duration:4.2s;animation-delay:-1.3s}
@keyframes breathe{50%{transform:scale(1.012,.99)}}
.duo .head{transform-origin:50% 90%;transition:transform .5s var(--ease-spring)}
.duo .archie .tail{transform-origin:100% 92%;animation:wag 1.6s ease-in-out infinite}
@keyframes wag{0%,40%,100%{transform:rotate(0)}8%{transform:rotate(-16deg)}16%{transform:rotate(10deg)}24%{transform:rotate(-14deg)}32%{transform:rotate(8deg)}}
.duo .oreo .tail{transform-origin:0% 95%;animation:sway 4.4s ease-in-out infinite}
@keyframes sway{50%{transform:rotate(-9deg)}}
.duo .archie .ear-l{transform-origin:80% 4%;animation:flopL 5.5s ease-in-out infinite}
.duo .archie .ear-r{transform-origin:20% 4%;animation:flopR 5.5s ease-in-out infinite .1s}
@keyframes flopL{0%,86%,100%{transform:none}90%{transform:rotate(9deg)}95%{transform:rotate(-4deg)}}
@keyframes flopR{0%,86%,100%{transform:none}90%{transform:rotate(-9deg)}95%{transform:rotate(4deg)}}
.duo .oreo .ear-r{transform-origin:30% 100%;animation:twitch 6.2s ease-in-out infinite 1.5s}
@keyframes twitch{0%,90%,100%{transform:none}92%{transform:rotate(14deg)}94%{transform:rotate(-3deg)}96%{transform:rotate(9deg)}}
.duo .eye{transform-origin:50% 50%;animation:blink 4.8s infinite}
.duo .oreo .eye{animation-duration:6.1s;animation-delay:-2s}
@keyframes blink{0%,94%,100%{transform:none}96.5%{transform:scaleY(.08)}}
.duo .pupil{transform:translate(var(--px,0),var(--py,0));transition:transform .18s ease-out}
.duo .tongue{transform-origin:50% 0;animation:pant .7s ease-in-out infinite}
@keyframes pant{50%{transform:scaleY(1.12) translateY(1px)}}
.duo .tag{transform-origin:50% 0;animation:tagSwing 3.6s ease-in-out infinite}
@keyframes tagSwing{25%{transform:rotate(5deg)}75%{transform:rotate(-5deg)}}
.duo .cover{opacity:0;transform:translateY(70px);transition:transform .45s var(--ease-spring),opacity .2s}
.duo.is-shy .oreo .cover{opacity:1;transform:none}
.duo.is-shy .archie .head{transform:rotate(-14deg) translateX(-8px)}
.duo.is-shy .archie .eye{animation:none;transform:scaleY(.12)}
.duo.is-no .head{animation:shakeNo .6s ease-in-out}
@keyframes shakeNo{20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}
.duo.is-yay .pet{animation:hop .55s var(--ease-spring) 2}
.duo.is-yay .oreo{animation-delay:.12s}
.duo.is-yay .archie .tail{animation-duration:.5s}
@keyframes hop{40%{transform:translateY(-26px) scale(1.02,.98)}}
.duo .pet.poke .head{animation:poke .5s var(--ease-spring)}
@keyframes poke{35%{transform:rotate(-7deg) translateY(-6px)}70%{transform:rotate(4deg)}}

.paused .duo *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
  .duo .pet,.duo .tail,.duo .ear,.duo .eye,.duo .tongue,.duo .tag,.duo .head{animation:none!important}
  .duo .cover,.duo .head{transition-duration:.15s}
}
