/* ============================================================
   Seabound Journeys — interactive world cruise map (v2)

   A dark, editorial "window on the world" that sits inside either
   host palette. Host pages may override any --wm-* token; the
   values below are the defaults, resolved from whichever palette
   family the page already defines (guides.html's --sea/--brass,
   index.html's --ocean/--gold) with hard fallbacks last.

   The stage itself is deliberately dark in both hosts: it reads as
   a viewport onto open water rather than another content card, and
   it lets the region markers actually glow.
   ============================================================ */
:root{
  --wm-ink:    var(--ink, var(--text, #12262A));
  --wm-muted:  var(--muted, var(--text-soft, #5b6b6b));
  --wm-paper:  var(--paper, var(--mist, #F4F8FB));
  --wm-line:   var(--line, var(--sea-line, #d8d3c2));
  --wm-accent: var(--brass, var(--gold, #C9A227));
  --wm-sea:    var(--sea, var(--ocean, #12525E));

  /* stage interior — fixed, not host-derived */
  --wm-abyss:  #04101A;
  --wm-deep:   #081D2C;
  --wm-shelf:  #0E2739;
  --wm-land:   #1C3B50;
  --wm-land-2: #24485E;
  --wm-coast:  rgba(150, 200, 220, .30);
  --wm-grat:   rgba(140, 190, 215, .07);

  --wm-live:   #E6B325;
  --wm-live-2: #FFD976;
  --wm-glow:   rgba(230, 179, 37, .55);

  --wm-radius: 18px;
  --wm-ease:   cubic-bezier(.22,.61,.36,1);
  --wm-spring: cubic-bezier(.34,1.56,.64,1);
}

/* ---------- outer shell ---------- */
.wm-wrap{ margin:26px 0 8px; }
.wm-head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:16px; }
.wm-head h2{ margin:0; }
.wm-head p.wm-sub{ margin:6px 0 0; color:var(--wm-muted); max-width:64ch; }

.wm-shell{ position:relative; --wm-h:520px; }

/* ---------- control bar ---------- */
.wm-controls{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px;
  margin-bottom:12px;
}
.wm-search{
  position:relative; flex:1 1 210px; min-width:180px; max-width:290px;
}
.wm-search input{
  width:100%; box-sizing:border-box;
  font-family:inherit; font-size:.88rem; color:var(--wm-ink);
  background:#fff; border:1px solid var(--wm-line); border-radius:999px;
  padding:9px 34px 9px 34px;
  transition:border-color .18s var(--wm-ease), box-shadow .18s var(--wm-ease);
}
.wm-search input::placeholder{ color:#9aa7b0; }
.wm-search input:focus{
  outline:none; border-color:var(--wm-sea);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--wm-sea) 16%, transparent);
}
.wm-search .wm-mag{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:14px; height:14px; opacity:.5; pointer-events:none;
}
.wm-search .wm-clear{
  position:absolute; right:6px; top:50%; transform:translateY(-50%);
  width:22px; height:22px; border:0; border-radius:50%; cursor:pointer;
  background:var(--wm-line); color:var(--wm-ink);
  font-size:13px; line-height:1; display:none; align-items:center; justify-content:center;
  padding:0;
}
.wm-search .wm-clear.on{ display:flex; }

/* month strip */
.wm-months{
  display:flex; align-items:center; gap:3px;
  padding:3px; border:1px solid var(--wm-line); border-radius:999px; background:#fff;
  overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.wm-months::-webkit-scrollbar{ display:none; }
.wm-months .wm-mlabel{
  font-family:"Space Mono", ui-monospace, monospace;
  font-size:.6rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--wm-muted); padding:0 8px 0 10px; white-space:nowrap;
}
.wm-m{
  flex:none; border:0; background:transparent; cursor:pointer;
  font-family:"Space Mono", ui-monospace, monospace;
  font-size:.68rem; letter-spacing:.02em; color:var(--wm-muted);
  padding:6px 8px; border-radius:999px; min-width:30px;
  transition:background .16s var(--wm-ease), color .16s var(--wm-ease), transform .16s var(--wm-ease);
}
.wm-m:hover{ background:color-mix(in srgb, var(--wm-sea) 10%, transparent); color:var(--wm-ink); }
.wm-m.on{ background:var(--wm-sea); color:#fff; transform:translateY(-1px); }
.wm-m.wm-any{ font-weight:700; }

.wm-tally{
  font-family:"Space Mono", ui-monospace, monospace;
  font-size:.7rem; letter-spacing:.04em; color:var(--wm-muted);
  margin-left:auto; white-space:nowrap;
}
.wm-tally b{ color:var(--wm-ink); font-weight:700; }

/* ---------- body: map + rail ---------- */
.wm-body{
  display:grid; grid-template-columns:minmax(0,1fr) 272px; gap:14px;
  align-items:start;
}

.wm-stage{
  position:relative; border-radius:var(--wm-radius); overflow:hidden;
  border:1px solid rgba(9,30,45,.5);
  background:
    radial-gradient(120% 90% at 50% -10%, var(--wm-shelf) 0%, var(--wm-deep) 45%, var(--wm-abyss) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.5), 0 26px 60px -32px rgba(6,19,31,.85);
  isolation:isolate;
}
/* Slow drifting sheen — light moving over water. It sits BELOW the map
   layer (z-index 0 vs the container's 1) so the land vectors and the
   region labels paint over it; at a higher index it washes the whole
   map out, labels included. */
.wm-stage::before{
  content:""; position:absolute; inset:-30%;
  background:radial-gradient(38% 30% at 30% 30%, rgba(120,190,220,.12), transparent 70%);
  animation:wm-drift 34s ease-in-out infinite alternate;
  pointer-events:none; z-index:0;
}
/* vignette so the pale land never touches the frame edge harshly */
.wm-stage::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:3;
  box-shadow:inset 0 0 90px 10px rgba(4,14,24,.6);
  border-radius:var(--wm-radius);
}
@keyframes wm-drift{
  from{ transform:translate3d(-4%,-3%,0) scale(1); }
  to  { transform:translate3d(6%,4%,0) scale(1.14); }
}

.wm-map-mount{ width:100%; height:var(--wm-h); background:transparent; }
.wm-map-mount[data-mode="preview"]{ height:330px; }

/* Leaflet surface tweaks */
.wm-stage .leaflet-container{
  background:transparent; font-family:inherit; outline:none;
  position:relative; z-index:1;      /* above the sheen, below the vignette */
}
.wm-stage .leaflet-control-attribution{
  background:rgba(6,19,31,.62); color:#7f9bb0; font-size:10px;
  padding:2px 7px; border-radius:6px 0 0 0; backdrop-filter:blur(3px);
}
.wm-stage .leaflet-control-attribution a{ color:#9fc0d4; }

/* land + graticule vectors */
.wm-land{ transition:fill .3s var(--wm-ease); }
.wm-grat{ pointer-events:none; }

/* soft highlight box drawn over the hovered region's true flyTo bounds */
.wm-bounds{ pointer-events:none; transition:opacity .3s var(--wm-ease); }

/* ---------- region markers ----------
   The marker root is a ZERO-SIZE anchor sitting exactly on the region's
   coordinate; the dot and the label are positioned around that origin.
   (A flex row centred with translate(-50%,-50%) would put the dot half a
   label-width away from the actual place it claims to mark.) Children
   overflow the zero-size box and still take pointer events, so the label
   stays clickable. */
.wm-mk-wrap{ background:none !important; border:0 !important; }
.wm-mk{
  position:absolute; left:0; top:0; width:0; height:0;
  cursor:pointer; --mk:var(--wm-live);
}
.wm-mk:focus{ outline:none; }
/* An 11px dot is well under a comfortable tap target — this transparent
   pseudo-element widens the hit area to ~30px without changing the layout. */
.wm-mk::before{
  content:""; position:absolute; left:-15px; top:-15px;
  width:30px; height:30px; border-radius:50%;
}

.wm-pin{
  position:absolute; left:0; top:0; width:0; height:0; display:block;
  transform:scale(0); opacity:0;
}
.wm-mk.is-in .wm-pin{ animation:wm-pop .62s var(--wm-spring) forwards; }
@keyframes wm-pop{ to{ transform:scale(1); opacity:1; } }

.wm-mk .wm-dot{
  position:absolute; left:-5.5px; top:-5.5px; width:11px; height:11px; border-radius:50%;
  background:radial-gradient(circle at 35% 32%, var(--wm-live-2), var(--mk) 62%);
  box-shadow:0 0 0 2px rgba(6,19,31,.55), 0 0 14px 2px var(--wm-glow);
  transition:transform .28s var(--wm-spring), box-shadow .28s var(--wm-ease);
}
/* idle pulse ring */
.wm-mk .wm-dot::after{
  content:""; position:absolute; inset:-4px; border-radius:50%;
  border:1.5px solid var(--mk); opacity:0;
  animation:wm-pulse 3.4s var(--wm-ease) infinite;
}
@keyframes wm-pulse{
  0%   { transform:scale(.65); opacity:.5; }
  70%  { transform:scale(2.2);  opacity:0; }
  100% { transform:scale(2.2);  opacity:0; }
}

/* leader from the dot to a label that had to be displaced for legibility */
.wm-lead{
  position:absolute; left:0; top:0; height:1px; transform-origin:0 50%;
  background:linear-gradient(90deg, rgba(230,179,37,.55), rgba(230,179,37,.18));
  opacity:.5; pointer-events:none;
  transition:opacity .25s var(--wm-ease);
}
.wm-mk:hover .wm-lead, .wm-mk.is-hot .wm-lead{ opacity:1; }
/* A leader with no label on the end of it is just a stray line — keep the
   two together wherever labels are hidden (preview mode, small screens). */
.wm-shell.is-preview .wm-lead{ opacity:0; }
.wm-shell.is-preview .wm-mk:hover .wm-lead,
.wm-shell.is-preview .wm-mk.is-hot .wm-lead{ opacity:1; }

.wm-mk .wm-lbl{
  position:absolute; left:var(--lx,12px); top:var(--ly,0px); transform:translateY(-50%);
  white-space:nowrap; padding:3px 2px;
  font-family:"Bricolage Grotesque", system-ui, sans-serif;
  font-size:.735rem; font-weight:600; letter-spacing:.012em; color:#EAF3F8;
  text-shadow:0 1px 3px rgba(3,12,20,.98), 0 0 10px rgba(3,12,20,.9), 0 0 22px rgba(3,12,20,.7);
  opacity:0;
  transition:color .2s var(--wm-ease), transform .28s var(--wm-spring), opacity .3s var(--wm-ease);
}
.wm-mk.is-left .wm-lbl{ transform:translate(-100%,-50%); }
.wm-mk.is-in .wm-lbl{ opacity:1; }

.wm-mk:hover .wm-dot,
.wm-mk.is-hot .wm-dot{ transform:scale(1.5); box-shadow:0 0 0 2px rgba(6,19,31,.6), 0 0 22px 5px var(--wm-glow); }
.wm-mk:hover .wm-lbl,
.wm-mk.is-hot .wm-lbl{ color:#fff; transform:translateY(-50%) translateX(2px); }
.wm-mk.is-left:hover .wm-lbl,
.wm-mk.is-left.is-hot .wm-lbl{ transform:translate(-100%,-50%) translateX(-2px); }
.wm-mk.is-hot{ z-index:1000; }

.wm-mk:focus-visible .wm-dot{ box-shadow:0 0 0 3px #fff, 0 0 22px 5px var(--wm-glow); }

/* dimmed by a filter */
.wm-mk.is-off{ opacity:.18; pointer-events:none; filter:saturate(.2); }
.wm-mk.is-off .wm-dot::after{ animation:none; }

/* preview mode: dots only until hovered, so the small map stays clean */
.wm-shell.is-preview .wm-mk.is-in .wm-lbl{ opacity:0; }
.wm-shell.is-preview .wm-mk.is-in:hover .wm-lbl,
.wm-shell.is-preview .wm-mk.is-in.is-hot .wm-lbl{ opacity:1; }

/* ---------- floating detail card ---------- */
.wm-card{
  position:absolute; left:14px; bottom:14px; z-index:600; width:302px; max-width:calc(100% - 28px);
  transition:opacity .26s var(--wm-ease), transform .3s var(--wm-ease), left .34s var(--wm-ease);
  background:linear-gradient(168deg, rgba(12,34,50,.96), rgba(7,21,33,.97));
  border:1px solid rgba(150,195,220,.22);
  border-radius:14px; padding:13px 15px 12px;
  box-shadow:0 20px 44px -20px rgba(0,0,0,.85);
  backdrop-filter:blur(9px);
  color:#DCE9F1;
  opacity:0; transform:translateY(10px) scale(.985); pointer-events:none;
  transition:opacity .26s var(--wm-ease), transform .3s var(--wm-ease);
}
.wm-card.on{ opacity:1; transform:none; pointer-events:auto; }
/* Anchored mode: JS pins the card beside the marker it describes (inline left/top),
   so the pointer only travels ~16px to reach its button. The old behaviour parked
   the card in a far stage corner, which forced the cursor across the whole map —
   over other markers, each of which stole the card and moved it out from under you.
   `bottom/right:auto` is required or the corner offsets fight the inline top/left. */
.wm-card.is-anchored{ bottom:auto; right:auto; }
.wm-card .wm-c-k{
  display:block; font-family:"Space Mono", ui-monospace, monospace;
  font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--wm-live-2); margin-bottom:5px;
}
.wm-card h4{
  margin:0 0 5px; font-family:"Bricolage Grotesque", system-ui, sans-serif;
  font-size:1.05rem; font-weight:700; color:#fff; letter-spacing:-.01em; line-height:1.15;
}
.wm-card .wm-c-blurb{
  margin:0 0 9px; font-size:.8rem; line-height:1.45; color:#A9C2D2;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.wm-card .wm-c-row{
  display:flex; flex-wrap:wrap; gap:5px; margin-bottom:9px;
}
.wm-card .wm-chip{
  font-family:"Space Mono", ui-monospace, monospace;
  font-size:.61rem; letter-spacing:.02em; color:#BBD2E0;
  background:rgba(255,255,255,.07); border:1px solid rgba(160,200,225,.16);
  border-radius:999px; padding:3px 8px;
}
.wm-card .wm-chip b{ color:#fff; font-weight:700; }

/* 12-month season strip inside the card */
.wm-card .wm-c-season{ margin:0 0 9px; }
.wm-card .wm-c-slabel{
  display:flex; justify-content:space-between; align-items:baseline; gap:8px;
  font-family:"Space Mono", ui-monospace, monospace;
  font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:#7f9bb0; margin-bottom:5px;
}
.wm-card .wm-c-slabel em{ font-style:normal; color:var(--wm-live-2); letter-spacing:.02em; text-transform:none; font-size:.72rem; }
.wm-bars{ display:grid; grid-template-columns:repeat(12,1fr); gap:2px; }
.wm-bars i{
  height:5px; border-radius:2px; background:rgba(255,255,255,.11); display:block;
  transition:background .3s var(--wm-ease), transform .3s var(--wm-spring);
}
.wm-bars i.on{ background:linear-gradient(180deg, var(--wm-live-2), var(--wm-live)); }
.wm-bars i.pick{ transform:scaleY(1.9); background:#fff; }
.wm-card .wm-c-note{ margin:0 0 10px; font-size:.725rem; line-height:1.4; color:#8FA9BC; font-style:italic;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.wm-card .wm-c-go{
  display:inline-flex; align-items:center; gap:7px;
  font-family:"Bricolage Grotesque", system-ui, sans-serif;
  font-size:.79rem; font-weight:700; color:#06131F; text-decoration:none;
  background:linear-gradient(180deg, var(--wm-live-2), var(--wm-live));
  padding:7px 13px; border-radius:999px;
  transition:transform .18s var(--wm-spring), box-shadow .18s var(--wm-ease);
  box-shadow:0 4px 14px -6px var(--wm-glow);
}
.wm-card .wm-c-go:hover{ transform:translateY(-1px); box-shadow:0 8px 20px -6px var(--wm-glow); }
.wm-card .wm-c-go .wm-ar{ transition:transform .18s var(--wm-ease); }
.wm-card .wm-c-go:hover .wm-ar{ transform:translateX(3px); }

/* ---------- zoom control ---------- */
.wm-zoom{
  position:absolute; right:12px; top:12px; z-index:600;
  display:flex; flex-direction:column; gap:5px;
}
.wm-zoom button{
  width:31px; height:31px; border-radius:9px; cursor:pointer;
  border:1px solid rgba(160,200,225,.22);
  background:rgba(10,29,44,.82); color:#CFE2EE;
  font-size:15px; line-height:1; display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(6px); padding:0;
  transition:background .16s var(--wm-ease), transform .16s var(--wm-ease), color .16s var(--wm-ease);
}
.wm-zoom button:hover{ background:rgba(20,52,74,.95); color:#fff; transform:translateY(-1px); }
.wm-zoom button:focus-visible{ outline:2px solid var(--wm-live-2); outline-offset:2px; }
.wm-zoom button svg{ width:13px; height:13px; }

/* ---------- the rail ---------- */
.wm-rail{
  display:flex; flex-direction:column; height:var(--wm-h);
  border:1px solid var(--wm-line); border-radius:var(--wm-radius);
  background:#fff; overflow:hidden; min-height:0;
}
.wm-rail-head{
  flex:none; padding:11px 14px; border-bottom:1px solid var(--wm-line);
  font-family:"Space Mono", ui-monospace, monospace;
  font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; color:var(--wm-muted);
  background:linear-gradient(180deg, var(--wm-paper), #fff);
}
.wm-list{
  list-style:none; margin:0; padding:5px; overflow-y:auto; flex:1 1 auto;
  scrollbar-width:thin;
}
.wm-list::-webkit-scrollbar{ width:8px; }
.wm-list::-webkit-scrollbar-thumb{ background:var(--wm-line); border-radius:8px; border:2px solid #fff; }
.wm-item{
  display:block; width:100%; text-align:left; box-sizing:border-box;
  border:0; background:transparent; cursor:pointer;
  padding:9px 10px; border-radius:10px; color:inherit;
  font-family:inherit;
  transition:background .16s var(--wm-ease), transform .16s var(--wm-ease), opacity .2s var(--wm-ease);
  position:relative;
}
.wm-item + .wm-item{ margin-top:1px; }
.wm-item::before{
  content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:0 3px 3px 0;
  background:var(--wm-live); opacity:0; transition:opacity .18s var(--wm-ease);
}
.wm-item:hover, .wm-item.is-hot{ background:color-mix(in srgb, var(--wm-sea) 7%, transparent); }
.wm-item.is-hot::before{ opacity:1; }
.wm-item:focus-visible{ outline:2px solid var(--wm-sea); outline-offset:-2px; }
.wm-item .wm-i-n{
  display:block; font-family:"Bricolage Grotesque", system-ui, sans-serif;
  font-size:.87rem; font-weight:600; color:var(--wm-ink); line-height:1.2;
}
.wm-item .wm-i-m{
  display:block; font-family:"Space Mono", ui-monospace, monospace;
  font-size:.63rem; letter-spacing:.02em; color:var(--wm-muted); margin-top:3px;
}
.wm-item .wm-i-m b{ color:var(--wm-sea); font-weight:700; }
.wm-item.is-off{ opacity:.32; }
.wm-item.is-off .wm-i-m b{ color:var(--wm-muted); }
/* rail entrance */
.wm-item{ opacity:0; transform:translateX(-6px); }
.wm-item.is-in{ animation:wm-slide .45s var(--wm-ease) forwards; }
@keyframes wm-slide{ to{ opacity:1; transform:none; } }
.wm-item.is-in.is-off{ animation:wm-slide-off .45s var(--wm-ease) forwards; }
@keyframes wm-slide-off{ to{ opacity:.32; transform:none; } }

.wm-empty{
  padding:22px 14px; text-align:center; color:var(--wm-muted); font-size:.82rem; line-height:1.5;
}
.wm-empty button{
  margin-top:8px; border:1px solid var(--wm-line); background:#fff; cursor:pointer;
  border-radius:999px; padding:6px 13px; font-family:inherit; font-size:.78rem; color:var(--wm-sea);
}

/* ---------- footer strip under the map ---------- */
.wm-foot{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px;
  margin-top:11px; font-size:.78rem; color:var(--wm-muted);
}
.wm-foot .wm-key{ display:inline-flex; align-items:center; gap:7px; }
.wm-foot .wm-key i{
  width:9px; height:9px; border-radius:50%; display:inline-block;
  background:var(--wm-live); box-shadow:0 0 8px var(--wm-glow);
}
.wm-foot .wm-hint{
  font-family:"Space Mono", ui-monospace, monospace; font-size:.68rem; letter-spacing:.03em;
}
.wm-foot kbd{
  font-family:"Space Mono", ui-monospace, monospace; font-size:.66rem;
  border:1px solid var(--wm-line); border-bottom-width:2px; border-radius:5px;
  padding:1px 5px; background:#fff; color:var(--wm-ink);
}

/* ---------- navigation veil ---------- */
.wm-veil{
  position:absolute; inset:0; z-index:900; pointer-events:none;
  background:radial-gradient(60% 60% at 50% 50%, rgba(6,19,31,.35), rgba(6,19,31,.92));
  opacity:0; transition:opacity .42s var(--wm-ease);
  display:flex; align-items:center; justify-content:center;
}
.wm-veil.on{ opacity:1; }
.wm-veil span{
  font-family:"Space Mono", ui-monospace, monospace;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:#EAF3F8;
  transform:translateY(6px); transition:transform .42s var(--wm-ease);
}
.wm-veil.on span{ transform:none; }

/* ---------- preview mode ---------- */
.wm-shell.is-preview .wm-body{ grid-template-columns:minmax(0,1fr); }
.wm-shell.is-preview .wm-card{ width:250px; }
.wm-cta{ margin-top:16px; }
.wm-cta a{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; color:var(--wm-accent); text-decoration:none;
  border-bottom:1.5px solid currentColor; padding-bottom:2px;
}

/* ---------- fallback ---------- */
.wm-fallback{
  padding:44px 24px; text-align:center; color:#A9C2D2; font-size:.9rem; line-height:1.6;
}
.wm-fallback a{ color:var(--wm-live-2); font-weight:700; }

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .wm-body{ grid-template-columns:minmax(0,1fr); }
  .wm-shell{ --wm-h:440px; }
  .wm-rail{ height:300px; }
}
/* Below this the map is too small to carry 14 labels without collisions,
   so the dots stay (tap for the card) and the rail becomes the label list. */
@media (max-width:700px){
  .wm-mk .wm-lbl, .wm-mk .wm-lead{ display:none; }
}
@media (max-width:640px){
  .wm-shell{ --wm-h:360px; }
  .wm-map-mount[data-mode="preview"]{ height:260px; }
  /* Narrow screens keep the bottom-sheet treatment; JS clears its inline
     left/top and drops .is-anchored below this width so these win. */
  .wm-card{ left:10px; right:10px; bottom:10px; width:auto; padding:13px 14px; }
  .wm-card .wm-c-blurb{ display:none; }
  .wm-controls{ gap:8px; }
  .wm-search{ max-width:none; flex-basis:100%; }
  .wm-tally{ margin-left:0; }
  .wm-mk .wm-lbl{ font-size:.68rem; }
  .wm-foot .wm-hint{ display:none; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .wm-stage::before{ animation:none; }
  .wm-mk .wm-dot::after{ animation:none; }
  .wm-pin{ transform:none; opacity:1; }
  .wm-mk.is-in .wm-pin{ animation:none; }
  .wm-mk .wm-lbl{ opacity:1; }
  .wm-item{ opacity:1; transform:none; }
  .wm-item.is-in{ animation:none; }
  .wm-item.is-in.is-off{ animation:none; opacity:.32; }
  .wm-card, .wm-veil, .wm-veil span, .wm-bars i, .wm-mk .wm-dot, .wm-mk .wm-lbl{ transition-duration:.01ms; }
}
