/* objet du mécanisme — couleurs reprises des jetons du site (site.css) */
.mo-map { width: 100%; height: auto; display: block; overflow: visible; }
.mo-land { fill: var(--land, #1d1d1b); stroke: none; }
.mo-border { fill: none; stroke: var(--land-line, #3a3833); stroke-width: 1; }
.mo-track { fill: none; stroke: var(--route-faint, #4a463e); stroke-width: 2; stroke-dasharray: 3 7; stroke-linecap: round; }
.mo-done { fill: none; stroke: var(--route, #F28C28); stroke-width: 3.5; stroke-linecap: round; transition: stroke-dashoffset .5s ease; }
.mo-leg.is-failed .mo-done { stroke: var(--grey, #8a857b); stroke-dasharray: 4 6 !important; stroke-dashoffset: 0 !important; }
.mo-leg.is-waiting .mo-done { opacity: 0; }
.mo-pin { fill: var(--bg, #141414); stroke: var(--route-faint, #6b665c); stroke-width: 2.5; }
.mo-stop.is-start .mo-pin { stroke: var(--green, #6C8F4E); fill: var(--green, #6C8F4E); }
.mo-stop.is-flying .mo-pin { stroke: var(--route, #F28C28); }
.mo-stop.is-accomplished .mo-pin { fill: var(--route, #F28C28); stroke: var(--route, #F28C28); }
.mo-stop.is-failed .mo-pin { fill: var(--grey, #8a857b); stroke: var(--grey, #8a857b); }
.mo-label { font: 600 22px/1 var(--serif, Georgia, serif); fill: var(--ink, #FAF7F0); }
.mo-sub { font: 500 14px/1 var(--sans, system-ui, sans-serif); fill: var(--ink-2, #b9b3a6); letter-spacing: .02em; }
.mo-wing { fill: var(--orange, #F28C28); stroke: #141414; stroke-width: 2.2; stroke-linejoin: round; }
.mo-vein { fill: none; stroke: #141414; stroke-width: 1.4; stroke-linecap: round; }
.mo-dot { fill: #FAF7F0; }
.mo-body, .mo-ant { fill: #141414; stroke: #141414; stroke-width: 1; }
.mo-ant { fill: none; stroke-width: 1.2; }
.mo-fly { transition: transform .45s ease; filter: saturate(var(--vivid, 1)); }
.mo-fly.is-pale .mo-wing { fill: color-mix(in srgb, var(--orange, #F28C28) calc(var(--vivid, 1) * 100%), #d9d2c3); }
.mo-wings { transform-origin: 0 0; animation: mo-flap 0.9s ease-in-out infinite; }
@keyframes mo-flap { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(.55); } }
.mo-bee { fill: var(--orange, #F28C28); opacity: .85; animation: mo-hover 3s ease-in-out infinite; }
@keyframes mo-hover { 50% { transform: translateY(-3px); opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .mo-wings, .mo-bee { animation: none; } .mo-fly, .mo-done { transition: none; } }
