/* v3.5.0 — carte de campagne (js/pages/campmap.js) */
.cm{margin:14px auto;max-width:460px;border-radius:24px;overflow:hidden;border:3px solid color-mix(in srgb,var(--c) 70%,#fff);box-shadow:0 18px 40px -18px #000c,0 0 0 4px #0003}
.cm-svg{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.cm-n{cursor:pointer;transition:transform .15s}.cm-n.lock{cursor:default}
.cm-n:not(.lock):hover rect:nth-of-type(1){filter:brightness(1.1)}
.cm-lab{font:800 10.5px system-ui,sans-serif;fill:#fff;stroke:#000a;stroke-width:3.2px;paint-order:stroke;stroke-linejoin:round;pointer-events:none}
.cm-n.lock .cm-lab{fill:#e5e9ee}
.cm-pulse{animation:cmP 1.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.cm-me{animation:cmB 1s ease-in-out infinite}
.cm-cloud{animation:cmC linear infinite alternate}
.cm-flow{animation:cmF 3s linear infinite}
@keyframes cmP{0%,100%{opacity:.95;transform:scale(1)}50%{opacity:.3;transform:scale(1.18)}}
@keyframes cmB{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes cmC{from{transform:translateX(-26px)}to{transform:translateX(34px)}}
@keyframes cmF{to{stroke-dashoffset:-72}}
@media (prefers-reduced-motion:reduce){.cm-pulse,.cm-me,.cm-cloud,.cm-flow{animation:none}}

/* v3.5.1 — carte unique : bandeaux de zone, nuages, cinématique de déblocage */
.cm{max-width:480px}
.cm-ban{cursor:pointer}.cm-bt{font:800 12.5px system-ui,sans-serif;fill:#fff}.cm-bs{font:800 10.5px system-ui,sans-serif;fill:#ffd93b}
.cm-clouds{cursor:pointer}
.cm-ct{font:800 15px system-ui,sans-serif;fill:#27425e}.cm-cr{font:700 11.5px system-ui,sans-serif;fill:#3d5a78}
.cm-pf{transition:none}
.cm-sw{animation:cmS ease-in-out infinite alternate}
@keyframes cmS{from{transform:translateX(-5px)}to{transform:translateX(5px)}}
.cm-clouds.go{pointer-events:none}
.cm-clouds.go .cm-pf{transform:translate(var(--dx),var(--dy));opacity:0;transition:transform 2.6s cubic-bezier(.5,0,.9,.6) var(--dl),opacity 1.6s ease-in calc(var(--dl) + .9s)}
.cm-clouds.go .cm-pbase{opacity:0;transition:opacity 1.2s ease-in .5s}
.cm-clouds.go .cm-lk{opacity:0;transition:opacity .5s}
.cm-unlock{position:fixed;left:50%;top:84px;z-index:90;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 26px;border-radius:20px;background:#0b1f12ee;border:2px solid #ffd93b;color:#fff;box-shadow:0 0 40px #ffd93b66;animation:cmU 4.2s both;pointer-events:none;text-align:center}
.cm-unlock i{font-style:normal;font-size:2rem}.cm-unlock b{font-size:1.05rem;color:#ffd93b}.cm-unlock span{font-size:.9rem;opacity:.9}
@keyframes cmU{0%{opacity:0;transform:translate(-50%,-20px) scale(.9)}12%{opacity:1;transform:translate(-50%,0) scale(1)}85%{opacity:1}100%{opacity:0;transform:translate(-50%,-10px)}}
@media (prefers-reduced-motion:reduce){.cm-sw{animation:none}.cm-clouds.go .cm-pf{transition-duration:.01s}}
