.swm-root { --swm-bronze:#ac8652; --swm-paper:#f5edd7; --swm-ink:#403126; color:var(--swm-ink); border:1px solid #9e835f; border-radius:9px; background:#eadfc5; max-width:100%; margin:18px auto; overflow:hidden; position:relative; box-shadow:0 7px 24px #33231225; font-family:inherit; }
.swm-root * {box-sizing:border-box;}
.swm-top {display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:9px 11px;background:#e6d5b7;border-bottom:1px solid #bda37e;}
.swm-top strong {margin-right:auto;font-size:15px;letter-spacing:.03em}
.swm-root button,.swm-root input {font:inherit;}
.swm-tool {background:#fffaf0;border:1px solid #9e8260;border-radius:5px;color:#503923;padding:5px 10px;min-height:32px;cursor:pointer;}
.swm-tool:hover,.swm-tool:focus-visible {background:#f2dcaf;outline:2px solid #bd985d;outline-offset:1px;}
.swm-search {width:min(230px,100%);min-height:32px;border:1px solid #9e8260;border-radius:5px;padding:5px 8px;background:#fffaf0;}
.swm-viewport {height:clamp(290px,55vw,610px);position:relative;overflow:hidden;background:radial-gradient(circle at center,#e6dabc,#867352);touch-action:none;cursor:grab;user-select:none;}
.swm-viewport.is-dragging {cursor:grabbing;}
.swm-plane {position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;}
.swm-plane>img {width:100%;height:100%;display:block;pointer-events:none;user-select:none;}
.swm-marker {position:absolute;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);padding:2px 4px;background:#3f261dcc;border:1px solid #e4c788;border-radius:5px;color:#fff2cd;box-shadow:0 1px 5px #150f0f88;cursor:pointer;white-space:nowrap;font-size:13px;font-weight:700;}
.swm-marker:hover,.swm-marker:focus-visible,.swm-marker.is-selected {background:#8c372b;color:#fffbe9;z-index:2;outline:1px solid white;}
.swm-popup {position:absolute;z-index:10;right:12px;bottom:12px;top:12px;width:min(340px,calc(100% - 24px));background:var(--swm-paper);border:2px solid #916c44;border-radius:8px;box-shadow:0 8px 35px #150e0c99;display:flex;flex-direction:column;overflow:hidden;}
.swm-popup[hidden] {display:none;}
.swm-popup-header {display:flex;gap:10px;align-items:center;padding:12px;background:#e3ceb1;border-bottom:1px solid #bb986e;}
.swm-popup-header h3 {margin:0!important;flex:1;font-size:18px!important;}
.swm-popup-body {overflow:auto;padding:14px;flex:1;}
.swm-popup ul {margin:9px 0 0;padding-left:20px;}
.swm-popup li {padding:5px 0;overflow-wrap:anywhere;}
.swm-popup a {color:#783b25;text-decoration:underline;}
.swm-empty {font-size:13px;color:#745f47;}
.swm-status {padding:5px 10px;font-size:12px;background:#e7d7b7;}
.swm-root.is-fullscreen {position:fixed;inset:8px;z-index:2147483400;margin:0;display:flex;flex-direction:column;max-width:none;}
.swm-root.is-fullscreen .swm-viewport {flex:1;height:auto;min-height:0;}
.swm-admin-wrap {margin:5px 0;display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.swm-admin-panel {position:fixed;inset:4% 5%;z-index:2147483401;background:#faf2df;border:2px solid #806142;padding:14px;overflow:auto;box-shadow:0 15px 50px #0008;border-radius:9px;color:#3e3025;}
.swm-admin-panel label {display:block;margin:12px 0;}
.swm-admin-panel textarea {display:block;width:100%;height:200px;font:14px/1.5 monospace;}
.swm-admin-panel input,.swm-admin-panel select {max-width:100%;padding:7px;border:1px solid #977959;background:white;}
.swm-admin-actions {display:flex;gap:9px;flex-wrap:wrap;}
@media(max-width:600px) {.swm-search{order:3;flex:1;min-width:120px}.swm-top{gap:5px;padding:7px}.swm-tool{padding:4px 7px;min-height:30px}.swm-marker{font-size:11px}.swm-viewport{height:420px}.swm-popup {top:auto;bottom:7px;max-height:65%;}.swm-admin-panel{inset:1% 2%;}}

/* v24.1: dedicated admin article block — replaces the paragraph workaround. */
.swm-native-editor { display:grid;gap:12px;max-width:100%;padding:12px;border:1px solid #aa8e68;background:#f6ecd8;border-radius:7px;}
.swm-editor-field {display:grid;gap:5px;font-weight:600;}
.swm-editor-field>input,.swm-editor-field>select {width:100%;min-height:35px;box-sizing:border-box;}
.swm-editor-hint {font-size:13px;line-height:1.45;color:#665341;margin:4px 0;}
.swm-editor-rows {display:grid;gap:8px;}
.swm-editor-row {display:grid;grid-template-columns:minmax(150px,2fr) minmax(160px,2fr) auto auto auto;gap:7px;align-items:center;}
.swm-editor-row input {width:100%;min-height:34px;box-sizing:border-box;}
.swm-editor-actions {display:flex;gap:8px;flex-wrap:wrap;}
.swm-editor-row .swm-tool {white-space:nowrap;}
@media(max-width:720px) {.swm-editor-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}.swm-editor-row input{grid-column:1 / -1;}}

/* v25: edge-to-edge world map, preserve the image's intrinsic aspect ratio. */
.article-body > .content-world-map,
.article-body > .swm-root,
.article-preview .article-body > .content-world-map,
.article-preview .article-body > .swm-root {
  width: min(1780px, calc(100vw - 48px)) !important;
  max-width: none !important;
  min-width: 0;
  justify-self: center !important;
  position: relative;
  left: auto;
  transform: none;
  margin-left: 0;
  margin-right: 0;
}
/* Keep article editor preview within its frame. */
#editorPreview .content-world-map {
  width: 100% !important;
  max-width: 100% !important;
  left: auto;
  transform: none;
}
.swm-root {
  width: 100%;
  max-width: none;
  margin: 10px 0;
}
.swm-viewport {
  aspect-ratio: 3 / 2;
  height: auto;
  min-height: 0;
  background: #9c8564;
}
.swm-root .swm-top { position: relative; z-index: 2; }
.swm-popup-city-image {
  display: block;
  width: 100%;
  max-height: 230px;
  object-fit: cover;
  object-position: center;
  flex: 0 0 auto;
  background: #c7b18c;
  border-bottom: 1px solid #b99a6f;
}
.swm-popup-city-image[hidden],
.swm-editor-city-preview[hidden] {display: none !important;}
.swm-marker { gap: 5px; }
.swm-marker-city-image {
  width: 26px;
  height: 26px;
  object-fit: cover;
  border-radius: 3px;
  border: 1px solid rgba(255, 243, 216, .65);
  flex: 0 0 auto;
}
.swm-editor-city-preview {
  width: min(340px, 100%);
  height: auto;
  max-height: 230px;
  object-fit: contain;
  border: 1px solid #ac916c;
  background: #e7d9be;
  border-radius: 5px;
}
.swm-native-editor > .swm-tool {justify-self:start;}
/* Fullscreen API enters the top layer and cannot be covered by the footer. */
.swm-root:fullscreen,
.swm-root.is-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483646 !important;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 0;
  margin: 0 !important;
  left: 0 !important;
  transform: none !important;
  overflow: hidden !important;
  border-radius: 0;
}
.swm-root:fullscreen .swm-top,
.swm-root.is-fullscreen .swm-top {flex: 0 0 auto;}
.swm-root:fullscreen .swm-viewport,
.swm-root.is-fullscreen .swm-viewport {
  flex: 1 1 auto !important;
  height: auto !important;
  aspect-ratio: auto !important;
  min-height: 0 !important;
}
.swm-root:fullscreen .swm-status,
.swm-root.is-fullscreen .swm-status {flex:0 0 auto;}
.swm-root:fullscreen .swm-popup,
.swm-root.is-fullscreen .swm-popup {max-height:calc(100% - 20px);}
body.swm-fullscreen-active .site-footer,
body.swm-fullscreen-active .mobile-bottom-nav,
body.swm-fullscreen-active .librarian-floating-trigger,
body.swm-fullscreen-active .librarian-launcher {display:none !important;}
body.swm-fullscreen-active {overflow:hidden !important;}
@media (max-width:720px) {
  .article-body > .content-world-map,
  .article-body > .swm-root,
  .article-preview .article-body > .content-world-map,
  .article-preview .article-body > .swm-root {
    width: 100% !important;
    max-width: 100% !important;
    left: auto;
    transform: none;
  }
  .swm-root {margin: 5px 0;}
  .swm-viewport {height:auto !important;min-height:0;}
  .swm-root.is-fullscreen .swm-viewport {height:auto !important;min-height:0 !important;}
  .swm-marker {font-size:11px;}
  .swm-marker-city-image {width:20px;height:20px;}
  .swm-popup-city-image {max-height:150px;}
  .swm-top {gap:6px;}
  .swm-top strong {flex-basis:100%;}
  .swm-popup {max-height:min(70%, 450px);}
}

/* v27: source-accurate in-map settlement art and restored parchment framing. */
/* Keep the article container the size authority: viewport-based width from v25
   could run outside the article and off the right edge on desktop. */
body .article-body > .content-world-map,
body .article-body > .swm-root,
body .article-preview .article-body > .content-world-map,
body .article-preview .article-body > .swm-root,
body #editorPreview .content-world-map {
  box-sizing: border-box;
  display: block;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  justify-self: stretch !important;
  overflow: hidden;
}
body .content-world-map .swm-root,
body .article-body .swm-root {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  background: #e9dbc0 url('/assets/world-map/parchment-page-bg.jpg') center / cover;
}
body .swm-viewport {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  background: #e9dbc0 url('/assets/world-map/parchment-map-bg.png') center / cover;
}
/* Frame belongs to the panning plane and must not intercept clicks. */
.swm-map-frame {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 2;
}
.swm-map-frame > img {
  position: absolute;
  display: block;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}
.swm-frame-top {top: 0;left:0;width:100%;height:15.57%;object-fit:fill;}
.swm-frame-bottom {bottom:0;left:0;width:100%;height:14.37%;object-fit:fill;}
.swm-frame-left {top:0;left:0;width:13.62%;height:100%;object-fit:fill;}
.swm-frame-right {top:0;right:0;width:18.02%;height:100%;object-fit:fill;}
/* Icons are positioned using exact saved percentages from the original map DOM.
   Inverse scale maintains an accessible clickable hit area at all zoom levels. */
.swm-marker,
.swm-marker:hover,
.swm-marker:focus-visible,
.swm-marker.is-selected {
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 55px;
  height: 57px;
  min-width: 55px;
  min-height: 57px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: #fcf2d8;
}
.swm-marker:hover,.swm-marker:focus-visible,.swm-marker.is-selected { z-index: 5;outline: none; }
.swm-marker-city-image {
  display: block;
  width: 54px;
  height: 54px;
  min-width: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: 0 2px 4px #24130e50;
  object-fit: contain;
  image-rendering: auto;
}
.swm-marker-fallback {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  font-size: 23px;
  color: #714327;
  text-shadow: 0 1px #f6dfa4;
  border-radius: 50%;
  background: rgba(238, 211, 157, .68);
  border: 1px solid #a77d48;
}
.swm-marker-fallback[hidden] {display:none;}
.swm-marker-label {
  position: absolute;
  left: 50%;
  top: calc(100% + 2px);
  translate: -50% 0;
  display: block;
  max-width: 142px;
  padding: 3px 7px;
  border: 1px solid #dfc18a;
  border-radius: 5px;
  background: #4c2c21e8;
  color: #fff2d7;
  box-shadow: 0 2px 6px #25160977;
  font: 600 12px/1.25 Georgia, serif;
  text-align: center;
  white-space: nowrap;
  pointer-events: none;
}
.swm-marker:hover .swm-marker-label,
.swm-marker.is-selected .swm-marker-label {
  background: #923c2c;
  color: #fffbe9;
  border-color: #ffecbf;
}
/* No large city picture in the popup, only the place list and descriptions. */
.swm-popup-city-image { display: none !important; }
.swm-popup-body {min-width: 0;}
.swm-popup-body .swm-location-list {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 9px;
}
.swm-location-item {
  list-style: none;
  min-width: 0;
  padding: 10px 12px !important;
  border: 1px solid rgba(112, 76, 44, .25);
  border-radius: 7px;
  background: rgba(255, 251, 234, .57);
}
.swm-location-item-title {font-weight: 750;line-height: 1.35;}
.swm-location-description {
  display: block;
  margin: 6px 0 0 !important;
  color: #68533e;
  font-size: 13px !important;
  font-weight: 400;
  line-height: 1.48;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.swm-editor-row {grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) auto auto auto;}
.swm-editor-location-description {
  grid-column: 1 / -1;
  box-sizing: border-box;
  display: block;
  width: 100%;
  max-width: 100%;
  resize: vertical;
  min-height: 70px;
  padding: 8px 10px;
  border: 1px solid #aa8d67;
  border-radius: 5px;
  background: #fffaf0;
  color: #453325;
  font: inherit;
  font-size: 14px;
  line-height: 1.45;
}
@media (max-width: 720px) {
  body .article-body > .content-world-map,
  body .article-body > .swm-root {width:100% !important;max-width:100% !important;}
  .swm-popup {right:7px;bottom:7px;width:min(330px,calc(100% - 14px));}
  .swm-marker {width:44px;height:45px;min-width:44px;min-height:45px;}
  .swm-marker-city-image {width:44px;height:44px;}
  .swm-marker-fallback {width:42px;height:42px;}
  .swm-marker-label {font-size:11px;max-width:114px;padding:3px 5px;}
  .swm-editor-row {grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .swm-editor-location-description {grid-column:1 / -1;}
}

/* v28: fixed-scale responsive original world map, with horizontal panning on phones. */
body .article-body > .content-world-map,
body .article-preview .article-body > .content-world-map,
body #editorPreview .content-world-map {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
}
body .swm-map-v28,
body .content-world-map .swm-map-v28,
body .article-body .swm-map-v28 {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 10px 0 !important;
  overflow: hidden;
  background: #e9dbc0 url('/assets/world-map/parchment-page-bg.jpg') center / cover;
}
.swm-map-v28 .swm-top { flex: 0 0 auto; gap: 7px; align-items: center; }
.swm-map-v28 .swm-top strong { flex: 1 1 auto; }
.swm-map-v28 .swm-search { min-width: 0; }
.swm-map-v28 .swm-jump {
  width: min(225px, 100%);
  min-width: 0;
  min-height: 33px;
  padding: 5px 8px;
  border: 1px solid #9e8260;
  border-radius: 5px;
  background: #fffaf0;
  color: #503923;
  font: inherit;
}
body .swm-map-v28 .swm-viewport,
body .swm-map-v28.is-fullscreen .swm-viewport,
body .swm-map-v28:fullscreen .swm-viewport {
  box-sizing: border-box;
  display: block;
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  background: none !important;
  cursor: default;
  touch-action: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}
.swm-map-v28 .swm-canvas {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  min-width: 0;
  max-width: none;
  aspect-ratio: 2048 / 1246;
  overflow: hidden;
  background: #ecdfc2 url('/assets/world-map/parchment-map-bg.png') center / 100% 100% no-repeat;
}
body .swm-map-v28 .swm-plane {
  position: absolute;
  inset: 0;
  left: 0;
  top: 0;
  width: 100% !important;
  height: 100% !important;
  transform: none !important;
  will-change: auto;
}
.swm-map-v28 .swm-map-image {display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;}
.swm-map-v28 .swm-map-frame {position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;}
.swm-map-v28 .swm-map-frame > img {position:absolute;pointer-events:none;}
.swm-map-v28 .swm-marker,
.swm-map-v28 .swm-marker:hover,
.swm-map-v28 .swm-marker:focus-visible,
.swm-map-v28 .swm-marker.is-selected {
  box-sizing: border-box;
  position: absolute;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: var(--swm-footprint-width, 5%) !important;
  height: var(--swm-footprint-height, 5%) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  padding: 0;
  margin: 0;
  border: 0;
  outline: none;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  cursor: pointer;
  overflow: visible;
  isolation: auto;
}
.swm-map-v28 .swm-marker[hidden] { display: none !important; }
.swm-map-v28 .swm-marker-city-image {
  box-sizing: border-box;
  flex: 0 0 auto;
  display: block;
  width: 72% !important;
  height: 72% !important;
  min-width: 0;
  max-width: 100%;
  min-height: 0;
  max-height: 100%;
  border: 0 !important;
  outline: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  object-fit: contain;
  mix-blend-mode: multiply;
  image-rendering: auto;
  filter: none;
}
.swm-map-v28 .swm-marker-fallback {width:60%;height:72%;min-width:0;min-height:0;font-size:clamp(9px,1.1vw,18px);box-shadow:none;border:0;background:transparent;}
.swm-map-v28 .swm-marker-label {
  position: absolute;
  z-index: 4;
  top: 73%;
  left: 50%;
  translate: -50% 0;
  max-width: 140px;
  min-width: max-content;
  padding: 2px 5px;
  font: 600 clamp(9px,.72vw,12px)/1.2 Georgia,serif;
  white-space: nowrap;
  pointer-events: none;
}
.swm-map-v28 .swm-popup {
  z-index: 20;
  right: 10px;
  top: 70px;
  bottom: auto;
  max-height: min(72%,520px);
  box-sizing: border-box;
}
.swm-map-v28 .swm-popup[hidden] {display: none !important;}
.swm-map-v28 .swm-scroll-hint {display:none;margin:0;padding:7px 10px;font-size:12px;color:#674f33;background:#e9dbc0;}
.swm-map-v28.is-fullscreen .swm-viewport,
.swm-map-v28:fullscreen .swm-viewport {
  flex: 1 1 auto;
  overflow-y: auto !important;
  min-height: 0;
}
/* Mobile keeps the map at a usable reading size, with native sideways scrolling,
   not a smaller coordinate system or oversized inverse-scaled markers. */
@media (max-width: 720px) {
  body .swm-map-v28 .swm-top strong {flex:1 0 100%;font-size:14px;}
  .swm-map-v28 .swm-top {display:flex;flex-wrap:wrap;}
  .swm-map-v28 .swm-search {flex: 1 1 140px;order: 2;width:auto !important;min-width:0;}
  .swm-map-v28 .swm-jump {flex:1 1 140px;order:3;width:auto;max-width:100%;font-size:14px;}
  .swm-map-v28 .swm-scroll-hint {display:block;}
  .swm-map-v28 .swm-canvas {width:1040px;min-width:1040px;max-width:none;}
  .swm-map-v28 .swm-marker-label {font-size:11px;max-width:112px;}
  .swm-map-v28 .swm-marker-city-image {width:70% !important;height:70% !important;}
  body .swm-map-v28 .swm-popup,
  body .swm-map-v28.is-fullscreen .swm-popup,
  body .swm-map-v28:fullscreen .swm-popup {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: none !important;
    max-height: min(55vh,400px) !important;
    border-radius: 0 !important;
    overflow: auto;
  }
  .swm-map-v28.is-fullscreen .swm-viewport,
  .swm-map-v28:fullscreen .swm-viewport {flex:1 1 auto;overflow-y:auto !important;}
  .swm-map-v28 .swm-status {position:relative;}
}

/* v29: The game map ALREADY has city names printed in its artwork.
   Keep those names visible and show interactive labels only on deliberate
   hover / keyboard focus. Image coordinates and image sizes from v28 remain
   unchanged. The accessible button always remains clickable/tappable. */
.swm-map-v28 .swm-marker > .swm-marker-city-image,
.swm-map-v28 .swm-marker > .swm-marker-fallback {
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
  /* Preserve original v28 width/height (including 70% mobile override). */
}
.swm-map-v28 .swm-marker > .swm-marker-label {
  position: absolute !important;
  left: 50% !important;
  top: 74% !important;
  transform: translateX(-50%) !important;
  translate: none !important;
  margin: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 110ms ease, visibility 110ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .swm-map-v28 .swm-marker:hover > .swm-marker-label {
    opacity: 1 !important;
    visibility: visible !important;
  }
}
.swm-map-v28 .swm-marker:focus-visible > .swm-marker-label {
  opacity: 1 !important;
  visibility: visible !important;
}
/* A touch tap opens the city popup, which already contains its name.
   Never leave a floating text label over the printed map on touch devices. */
@media (hover: none), (pointer: coarse) {
  .swm-map-v28 .swm-marker > .swm-marker-label,
  .swm-map-v28 .swm-marker:focus-visible > .swm-marker-label {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .swm-map-v28 .swm-marker > .swm-marker-label { transition: none !important; }
}

/* v30: precise art-to-print alignment. The icon footprint and bitmap sizes
   remain the same: only the interactive marker's paint position is moved,
   in percentages of its OWN footprint (hence the same on mobile/desktop). */
.swm-map-v28 .swm-marker {
  translate: var(--swm-icon-visual-x, 0%) var(--swm-icon-visual-y, 0%) !important;
}

/* High visibility location finder: the chosen city keeps its warm-gold target
   even after search input blur and even when hover labels are hidden. */
.swm-map-v28 .swm-marker.is-selected {
  z-index: 15 !important;
}
.swm-map-v28 .swm-marker.is-selected::before,
.swm-map-v28 .swm-marker.is-search-match::before {
  content: '';
  box-sizing: border-box;
  position: absolute;
  z-index: 0;
  top: -18%;
  left: 50%;
  width: 108%;
  height: 118%;
  transform: translateX(-50%);
  border: 3px solid #f5b73e;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(255, 241, 176, .46) 0%, rgba(255, 216, 112, .19) 55%, transparent 75%);
  box-shadow: 0 0 0 4px rgba(100, 45, 12, .54), 0 0 0 7px rgba(255, 230, 154, .59), 0 0 26px 12px rgba(255, 219, 103, .70);
  pointer-events: none;
  animation: swm-v30-target-pulse 1800ms ease-in-out infinite;
}
.swm-map-v28 .swm-marker.is-selected::after {
  content: '▼';
  position: absolute;
  z-index: 8;
  top: -56%;
  left: 50%;
  transform: translateX(-50%);
  font: 900 clamp(13px, 1.55vw, 23px)/1 Georgia, serif;
  color: #ffc754;
  -webkit-text-stroke: 1px #693114;
  text-shadow: 0 0 4px #6b2d14, 0 0 12px #ffe0a1;
  pointer-events: none;
}
.swm-map-v28 .swm-marker.is-search-match:not(.is-selected) {
  z-index: 6 !important;
}
.swm-map-v28 .swm-marker.is-search-match:not(.is-selected)::before {
  border: 2px dashed rgba(110, 51, 23, .85);
  background: rgba(250, 218, 135, .25);
  box-shadow: 0 0 0 3px rgba(255, 232, 164, .5), 0 0 16px rgba(112, 54, 15, .38);
  animation: none;
}
@keyframes swm-v30-target-pulse {
  0%, 100% { opacity: .90; box-shadow: 0 0 0 3px rgba(100,45,12,.54), 0 0 0 6px rgba(255,230,154,.58), 0 0 22px 9px rgba(255,219,103,.62); }
  50% { opacity: 1; box-shadow: 0 0 0 4px rgba(100,45,12,.65), 0 0 0 10px rgba(255,231,157,.68), 0 0 30px 14px rgba(255,219,103,.85); }
}
@media (prefers-reduced-motion: reduce) {
  .swm-map-v28 .swm-marker.is-selected::before { animation: none; }
}
