/* RESONANCE MAP — v8 MODERN / TEXTURED / SHOP-STYLE
   For JS v8 (.rm-*)
*/

.resonance-map-host{
  --rm-bg:#b49a84;
  --rm-panel:#bca38e;
  --rm-panel-soft:#c8b19d;
  --rm-card:#c7ad97;
  --rm-dark:#76533d;
  --rm-text:#4f3526;
  --rm-soft:#745a47;
  --rm-muted:#927967;
  --rm-line:rgba(77,49,31,.13);
  --rm-accent:#c8752e;

  --rm-vamp:#8b5960;
  --rm-wolf:#667965;
  --rm-witch:#776984;
  --rm-hunter:#89775f;
  --rm-event:#6c7e89;
  --rm-case:#9a6259;
  --rm-neutral:#8c806d;
  --rm-anomaly:#7b6988;
  --rm-place:#6d777c;
  --rm-human:#9a7664;
  --rm-mixed:#756f61;

  width:100%;
  margin:0;
  color:var(--rm-text);
  font-family:inherit;
}

.resonance-map-host *,
.resonance-map-host *::before,
.resonance-map-host *::after{
  box-sizing:border-box;
}

.resonance-map-host .rm{
  position:relative;
  width:100%;
  overflow:hidden;
  background:var(--rm-bg)!important;
  isolation:isolate;
}

/* subtle grain over the whole module */
.resonance-map-host .rm::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.085;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

.resonance-map-host .rm > *{
  position:relative;
  z-index:2;
}

/* ---------- header ---------- */

.resonance-map-host .rm-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:58px;
  padding:11px 14px;
  background:rgba(180,154,132,.94)!important;
  border-bottom:1px solid var(--rm-line);
}

.resonance-map-host .rm-brand strong{
  color:#4b3224;
  font:800 10px/1 inherit;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.resonance-map-host .rm-brand strong i{
  color:var(--rm-accent);
  font-style:normal;
}

.resonance-map-host .rm-brand small{
  display:none!important;
}

.resonance-map-host .rm-views{
  display:flex;
  align-items:center;
  gap:7px;
}

.resonance-map-host .rm-views button{
  appearance:none;
  height:34px;
  padding:0 12px;
  border:1px solid transparent;
  border-radius:9px;
  background:rgba(255,255,255,.10);
  color:#735845;
  font:800 8px/1 inherit;
  letter-spacing:.07em;
  text-transform:uppercase;
  cursor:pointer;
  transition:.16s ease;
}

.resonance-map-host .rm-views button:hover{
  background:rgba(255,255,255,.18);
}

.resonance-map-host .rm-views button.on{
  background:var(--rm-dark);
  color:#fff7ef;
}

/* ---------- main ---------- */

.resonance-map-host .rm-body{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 265px;
  min-height:630px;
  padding:0 14px 14px;
  background:var(--rm-bg)!important;
}

.resonance-map-host .rm-canvas{
  position:relative;
  min-width:0;
  height:630px;
  overflow:hidden;
  border-radius:14px 0 0 14px;
  background:#d0c2b7;
  box-shadow:
    inset 0 0 0 1px rgba(72,46,29,.10),
    0 8px 24px rgba(72,46,29,.06);
}

.resonance-map-host .rm-canvas::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:410;
  pointer-events:none;
  opacity:.12;
  mix-blend-mode:multiply;
  background-image:
    radial-gradient(circle at 20% 30%,rgba(83,55,38,.15) 0 1px,transparent 1.2px),
    radial-gradient(circle at 70% 60%,rgba(83,55,38,.09) 0 1px,transparent 1.2px);
  background-size:19px 19px,27px 27px;
}

.resonance-map-host .rm-map{
  width:100%!important;
  height:630px!important;
  background:#d4cdc7!important;
}

.resonance-map-host .rm-tiles{
  background:#d6cec8!important;
}

.resonance-map-host .rm-tiles img{
  max-width:none!important;
  filter:
    grayscale(.72)
    sepia(.16)
    brightness(1.03)
    contrast(.82)
    saturate(.72)!important;
  opacity:1!important;
}

.resonance-map-host .rm-veil{
  position:absolute;
  inset:0;
  z-index:420;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,244,232,.04),rgba(94,60,40,.04)),
    radial-gradient(circle at 50% 45%,rgba(255,255,255,.04),transparent 54%);
  box-shadow:inset 0 0 50px rgba(74,48,31,.08);
}

/* ---------- search / actions ---------- */

.resonance-map-host .rm-tools{
  position:absolute;
  z-index:600;
  left:12px;
  right:12px;
  top:12px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  pointer-events:none;
}

.resonance-map-host .rm-toolbox{
  display:flex;
  align-items:center;
  gap:7px;
  pointer-events:auto;
}

.resonance-map-host .rm-search{
  width:225px;
  max-width:34vw;
  height:36px;
  padding:0 12px;
  border:1px solid rgba(80,52,35,.09);
  border-radius:10px;
  outline:0;
  background:rgba(229,215,202,.91);
  color:#52382a;
  font:600 9.5px/1 inherit;
  box-shadow:0 6px 18px rgba(72,46,29,.07);
}

.resonance-map-host .rm-search::placeholder{
  color:#967d69;
}

.resonance-map-host .rm-btn{
  appearance:none;
  min-height:36px;
  padding:0 11px;
  border:1px solid rgba(80,52,35,.10);
  border-radius:9px;
  background:rgba(229,215,202,.92);
  color:#745945;
  font:800 8px/1 inherit;
  letter-spacing:.035em;
  text-transform:uppercase;
  box-shadow:0 6px 16px rgba(72,46,29,.055);
  cursor:pointer;
  transition:.15s ease;
}

.resonance-map-host .rm-btn:hover,
.resonance-map-host .rm-btn.on{
  background:var(--rm-accent);
  border-color:var(--rm-accent);
  color:#fff8f1;
}

.resonance-map-host .rm-btn.primary{
  background:var(--rm-dark);
  color:#fff8f1;
}

.resonance-map-host .rm-btn.danger{
  background:#cda99b;
  color:#7f4847;
}

/* ---------- layers ---------- */

.resonance-map-host .rm-layers{
  position:absolute;
  z-index:600;
  left:12px;
  bottom:12px;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  max-width:calc(100% - 24px);
  padding:7px;
  border-radius:10px;
  background:rgba(199,177,157,.89);
  box-shadow:0 6px 18px rgba(72,46,29,.08);
  backdrop-filter:blur(5px);
}

.resonance-map-host .rm-layers button{
  appearance:none;
  padding:6px 8px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#806653;
  font:800 7.5px/1 inherit;
  letter-spacing:.03em;
  text-transform:uppercase;
  cursor:pointer;
}

.resonance-map-host .rm-layers button:hover{
  background:rgba(255,255,255,.12);
}

.resonance-map-host .rm-layers button.on{
  background:rgba(255,255,255,.18);
  color:#4e3527;
}

.resonance-map-host .rm-layers i{
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:5px;
  border-radius:50%;
  vertical-align:1px;
}

/* ---------- side archive ---------- */

.resonance-map-host .rm-side{
  min-width:0;
  height:630px;
  overflow:hidden;
  border:0!important;
  border-radius:0 14px 14px 0;
  background:rgba(190,163,142,.96)!important;
  box-shadow:
    inset 1px 0 0 rgba(80,52,35,.09),
    0 8px 24px rgba(72,46,29,.05);
}

.resonance-map-host .rm-sidehead{
  min-height:55px;
  padding:14px 14px 12px;
  border-bottom:1px solid rgba(80,52,35,.09);
  background:rgba(255,255,255,.055);
}

.resonance-map-host .rm-sidehead strong{
  color:#52382a;
  font:800 9px/1.2 inherit;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.resonance-map-host .rm-list{
  max-height:575px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(90,59,39,.24) transparent;
}

.resonance-map-host .rm-record{
  padding:12px 13px;
  border-bottom:1px solid rgba(80,52,35,.07);
  background:transparent;
  cursor:pointer;
  transition:.15s ease;
}

.resonance-map-host .rm-record:hover{
  background:rgba(255,255,255,.075);
}

.resonance-map-host .rm-record.on{
  background:rgba(255,255,255,.11);
  box-shadow:inset 3px 0 0 var(--rm-accent);
}

.resonance-map-host .rm-record-title{
  color:#4f3526;
  font:800 9.5px/1.35 inherit;
}

.resonance-map-host .rm-record-meta{
  margin-top:4px;
  color:#876f5d;
  font:600 8px/1.45 inherit;
}

.resonance-map-host .rm-record-text{
  margin-top:6px;
  color:#6e5544;
  font:500 8.7px/1.5 inherit;
}

.resonance-map-host .rm-loading,
.resonance-map-host .rm-empty{
  padding:22px 14px;
  color:#846d5b;
  font:600 8.5px/1.45 inherit;
}

.resonance-map-host .rm-dot{
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:5px;
  border-radius:50%;
}

.resonance-map-host .rm-badge{
  float:right;
  color:#9b816e;
  font:800 7px/1 inherit;
  text-transform:uppercase;
}

/* ---------- zones ---------- */

.resonance-map-host .rm-overlay polygon{
  fill-opacity:.28!important;
  stroke-width:2!important;
  stroke-opacity:.88!important;
  filter:drop-shadow(0 2px 4px rgba(72,46,29,.12));
}

.resonance-map-host .rm-overlay polygon:hover{
  fill-opacity:.36!important;
  stroke-opacity:1!important;
}

.resonance-map-host .rm-zonelabel{
  transform:translate(-50%,-50%);
  padding:5px 7px;
  border:1px solid rgba(80,52,35,.10);
  border-radius:7px;
  background:rgba(228,210,193,.90);
  color:#573c2c;
  font:800 7px/1 inherit;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 4px 12px rgba(72,46,29,.09);
  cursor:pointer;
  white-space:nowrap;
}

.resonance-map-host .rm-zonelabel[data-type="vampire_clan"]{box-shadow:inset 3px 0 0 var(--rm-vamp),0 4px 12px rgba(72,46,29,.09)}
.resonance-map-host .rm-zonelabel[data-type="werewolf_pack"]{box-shadow:inset 3px 0 0 var(--rm-wolf),0 4px 12px rgba(72,46,29,.09)}
.resonance-map-host .rm-zonelabel[data-type="witch_coven"]{box-shadow:inset 3px 0 0 var(--rm-witch),0 4px 12px rgba(72,46,29,.09)}
.resonance-map-host .rm-zonelabel[data-type="neutral"]{box-shadow:inset 3px 0 0 var(--rm-neutral),0 4px 12px rgba(72,46,29,.09)}

/* ---------- pin markers ---------- */

.resonance-map-host .rm-mapmarker{
  width:30px!important;
  height:38px!important;
  padding:0!important;
  border:0!important;
  border-radius:50% 50% 50% 0!important;
  transform:translate(-50%,-86%) rotate(-45deg)!important;
  background:#40352e!important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.24),
    0 6px 15px rgba(72,46,29,.30)!important;
  color:transparent!important;
}

.resonance-map-host .rm-mapmarker::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:16px;
  height:16px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:var(--rm-accent);
  box-shadow:
    0 0 0 4px rgba(200,117,46,.18),
    0 0 10px rgba(200,117,46,.36);
}

.resonance-map-host .rm-mapmarker::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:#efe3d7;
  box-shadow:0 0 0 2px #40352e;
}

.resonance-map-host .rm-mapmarker span{
  display:none!important;
}

.resonance-map-host .rm-mapmarker[data-type="vampire_clan"]::before{background:var(--rm-vamp)}
.resonance-map-host .rm-mapmarker[data-type="werewolf_pack"]::before{background:var(--rm-wolf)}
.resonance-map-host .rm-mapmarker[data-type="witch_coven"]::before{background:var(--rm-witch)}
.resonance-map-host .rm-mapmarker[data-type="hunter_org"]::before{background:var(--rm-hunter)}
.resonance-map-host .rm-mapmarker[data-type="event"]::before{background:var(--rm-event)}
.resonance-map-host .rm-mapmarker[data-type="case"]::before{background:var(--rm-case)}
.resonance-map-host .rm-mapmarker[data-type="neutral"]::before{background:var(--rm-neutral)}
.resonance-map-host .rm-mapmarker[data-type="anomaly"]::before{background:var(--rm-anomaly)}
.resonance-map-host .rm-mapmarker[data-type="place"]::before{background:var(--rm-place)}
.resonance-map-host .rm-mapmarker[data-type="human_org"]::before{background:var(--rm-human)}
.resonance-map-host .rm-mapmarker[data-type="mixed_org"]::before{background:var(--rm-mixed)}

/* ---------- selected detail ---------- */

.resonance-map-host .rm-drawer{
  position:absolute;
  z-index:650;
  left:14px;
  bottom:64px;
  display:none;
  width:min(400px,calc(100% - 28px));
  padding:14px 15px;
  border:1px solid rgba(80,52,35,.10);
  border-radius:12px;
  background:rgba(202,179,159,.96);
  box-shadow:0 12px 34px rgba(72,46,29,.16);
  backdrop-filter:blur(6px);
}

.resonance-map-host .rm-drawer.open{display:block}

.resonance-map-host .rm-close{
  position:absolute;
  right:8px;
  top:7px;
  border:0;
  background:none;
  color:#725845;
  font-size:17px;
  cursor:pointer;
}

.resonance-map-host .rm-kicker{
  color:#957a66;
  font:800 7.5px/1.2 inherit;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.resonance-map-host .rm-drawer h3{
  margin:5px 22px 5px 0;
  color:#4c3325;
  font:800 12.5px/1.3 inherit;
}

.resonance-map-host .rm-meta{
  color:#876f5d;
  font:600 8.4px/1.45 inherit;
}

.resonance-map-host .rm-text{
  margin-top:7px;
  color:#6d5443;
  font:500 9.4px/1.55 inherit;
}

.resonance-map-host .rm-drawer-actions{margin-top:10px}

/* ---------- zoom ---------- */

.resonance-map-host .rm-zoom{
  right:10px!important;
  top:58px!important;
  overflow:hidden;
  border:1px solid rgba(80,52,35,.10)!important;
  border-radius:9px!important;
  background:rgba(228,212,197,.92)!important;
  box-shadow:0 5px 15px rgba(72,46,29,.08)!important;
}

.resonance-map-host .rm-zoom button{
  width:29px!important;
  height:29px!important;
  border:0!important;
  border-bottom:1px solid rgba(80,52,35,.09)!important;
  background:transparent!important;
  color:#6f5644!important;
}

.resonance-map-host .rm-zoom button:last-child{border-bottom:0!important}

.resonance-map-host .rm-zoom button:hover{
  background:rgba(255,255,255,.15)!important;
}

.resonance-map-host .rm-attrib{
  right:6px!important;
  bottom:3px!important;
  color:#866e5c!important;
  background:rgba(205,183,164,.68)!important;
  font-size:7px!important;
}

/* ---------- help ---------- */

.resonance-map-host .rm-help{
  position:absolute;
  z-index:620;
  left:50%;
  top:58px;
  transform:translateX(-50%);
  display:none;
  max-width:60%;
  padding:8px 10px;
  border-radius:9px;
  background:rgba(202,179,159,.96);
  color:#684e3d;
  font:700 8.5px/1.4 inherit;
  box-shadow:0 6px 16px rgba(72,46,29,.10);
}

.resonance-map-host .rm-help.show{display:block}

/* ---------- index ---------- */

.resonance-map-host .rm-index{
  display:none;
  grid-template-columns:1fr;
  gap:1px;
  padding:14px;
  background:var(--rm-bg)!important;
}

.resonance-map-host .rm-index.on{
  display:grid;
}

/* INDEX is a directory, not a card grid */
.resonance-map-host .rm-card{
  position:relative;
  display:grid;
  grid-template-columns:155px minmax(0,1fr) 120px;
  grid-template-areas:
    "type title where"
    "type text  where";
  gap:4px 16px;
  min-height:76px;
  padding:13px 14px 13px 17px;
  border:0;
  border-bottom:1px solid rgba(80,52,35,.10);
  border-radius:0;
  background:rgba(200,177,156,.42);
  box-shadow:none;
  overflow:hidden;
  transition:background .15s ease;
}

.resonance-map-host .rm-card:first-child{
  border-radius:11px 11px 0 0;
}

.resonance-map-host .rm-card:last-child{
  border-bottom:0;
  border-radius:0 0 11px 11px;
}

.resonance-map-host .rm-card:only-child{
  border-radius:11px;
}

.resonance-map-host .rm-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:rgba(200,117,46,.55);
  opacity:.55;
}

.resonance-map-host .rm-card:hover{
  background:rgba(213,191,171,.63);
}

.resonance-map-host .rm-card small{
  grid-area:type;
  align-self:start;
  display:block;
  padding-top:2px;
  color:#846b58;
  font:800 7.5px/1.45 inherit;
  letter-spacing:.055em;
  text-transform:uppercase;
}

.resonance-map-host .rm-card small .rm-dot{
  width:6px;
  height:6px;
  margin-right:6px;
}

.resonance-map-host .rm-card strong{
  grid-area:title;
  display:block;
  min-width:0;
  color:#4d3325;
  font:800 10.5px/1.32 inherit;
  letter-spacing:.005em;
}

.resonance-map-host .rm-card p{
  grid-area:text;
  margin:0;
  max-width:620px;
  color:#705645;
  font:500 8.8px/1.48 inherit;
}

.resonance-map-host .rm-card em{
  grid-area:where;
  align-self:start;
  display:block;
  padding-top:1px;
  color:#8b725f;
  font:700 7.8px/1.45 inherit;
  font-style:normal;
  text-align:right;
}

@media(max-width:760px){
  .resonance-map-host .rm-card{
    grid-template-columns:120px minmax(0,1fr);
    grid-template-areas:
      "type title"
      "type text"
      "where where";
  }

  .resonance-map-host .rm-card em{
    margin-top:4px;
    text-align:left;
  }
}

@media(max-width:520px){
  .resonance-map-host .rm-index{
    padding:8px;
  }

  .resonance-map-host .rm-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "type"
      "title"
      "text"
      "where";
    gap:4px;
    padding:12px 13px 12px 16px;
  }
}

/* ---------- modal ---------- */

.resonance-map-host .rm-modal{
  position:fixed;
  z-index:99999;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(58,39,27,.42);
}

.resonance-map-host .rm-modal.open{display:flex}

.resonance-map-host .rm-modalbox{
  width:min(660px,calc(100vw - 30px));
  max-height:90vh;
  overflow:auto;
  border:1px solid rgba(80,52,35,.12);
  border-radius:13px;
  background:#b99f89;
  box-shadow:0 20px 48px rgba(60,39,25,.22);
}

.resonance-map-host .rm-modalhead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:13px 15px;
  border-bottom:1px solid rgba(80,52,35,.10);
  background:rgba(255,255,255,.055);
}

.resonance-map-host .rm-modalhead strong{
  color:#503526;
  font:800 9.5px/1.2 inherit;
  text-transform:uppercase;
}

.resonance-map-host .rm-modalclose{
  border:0;
  background:none;
  color:#745947;
  font-size:18px;
}

.resonance-map-host .rm-form{padding:14px}

.resonance-map-host .rm-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.resonance-map-host .rm-field{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-bottom:10px;
}

.resonance-map-host .rm-field label{
  color:#755a48;
  font:800 7.8px/1.2 inherit;
  text-transform:uppercase;
}

.resonance-map-host .rm-field input,
.resonance-map-host .rm-field select,
.resonance-map-host .rm-field textarea{
  width:100%;
  padding:9px 10px;
  border:1px solid rgba(80,52,35,.10);
  border-radius:8px;
  outline:0;
  background:rgba(231,214,198,.60);
  color:#4f3526;
  font:600 9.5px/1.35 inherit;
}

.resonance-map-host .rm-field input:focus,
.resonance-map-host .rm-field select:focus,
.resonance-map-host .rm-field textarea:focus{
  border-color:var(--rm-accent);
  box-shadow:0 0 0 2px rgba(200,117,46,.10);
}

.resonance-map-host .rm-field textarea{
  min-height:100px;
  resize:vertical;
}

.resonance-map-host .rm-modalfoot{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:12px 14px;
  border-top:1px solid rgba(80,52,35,.10);
}

.resonance-map-host .rm-modalfoot > div{
  display:flex;
  gap:7px;
}

.resonance-map-host [hidden]{display:none!important}

/* ---------- responsive ---------- */

@media(max-width:900px){
  .resonance-map-host .rm-body{
    grid-template-columns:1fr;
  }

  .resonance-map-host .rm-canvas{
    border-radius:14px 14px 0 0;
  }

  .resonance-map-host .rm-side{
    height:auto;
    border-radius:0 0 14px 14px;
  }

  .resonance-map-host .rm-list{
    max-height:260px;
  }

  .resonance-map-host .rm-index{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .resonance-map-host .rm-top{
    align-items:flex-start;
    flex-direction:column;
  }

  .resonance-map-host .rm-body{
    padding:0 8px 8px;
  }

  .resonance-map-host .rm-canvas,
  .resonance-map-host .rm-map{
    height:520px!important;
  }

  .resonance-map-host .rm-tools{
    flex-direction:column;
    align-items:flex-start;
  }

  .resonance-map-host .rm-search{
    width:100%;
    max-width:none;
  }

  .resonance-map-host .rm-row{
    grid-template-columns:1fr;
  }

  .resonance-map-host .rm-index{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   v10 — visible texture/noise + zone clarity + drawer fix
   ========================================================= */

/* The forum has global H3 styling; drawer no longer uses H3, but reset just in case. */
.resonance-map-host .rm-drawer h3,
.resonance-map-host .rm-drawer-title{
  display:block!important;
  margin:5px 22px 5px 0!important;
  padding:0!important;
  min-height:0!important;
  border:0!important;
  outline:0!important;
  background:none!important;
  background-image:none!important;
  box-shadow:none!important;
  color:#4c3325!important;
  font:800 12.5px/1.3 inherit!important;
  text-shadow:none!important;
}

/* Stronger, actually visible paper grain over the module. */
.resonance-map-host .rm{
  isolation:isolate;
}

.resonance-map-host .rm::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:850;
  pointer-events:none;
  opacity:.12;
  mix-blend-mode:multiply;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.68' numOctaves='4' seed='7' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.78'/%3E%3C/svg%3E"),
    repeating-radial-gradient(circle at 30% 20%,rgba(72,46,29,.12) 0 1px,transparent 1px 5px);
  background-size:220px 220px,37px 37px;
}

/* Keep modal above texture. */
.resonance-map-host .rm-modal{
  z-index:99999!important;
}

/* More visible texture directly on warm UI surfaces. */
.resonance-map-host .rm-top,
.resonance-map-host .rm-side,
.resonance-map-host .rm-index,
.resonance-map-host .rm-modalbox{
  background-image:
    linear-gradient(rgba(255,255,255,.018),rgba(255,255,255,.018)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.30'/%3E%3C/svg%3E")!important;
  background-blend-mode:soft-light,multiply!important;
}

/* Grain on the actual map without hiding labels/roads. */
.resonance-map-host .rm-canvas::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:430;
  pointer-events:none;
  opacity:.16;
  mix-blend-mode:multiply;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190' viewBox='0 0 190 190'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.74' numOctaves='4' seed='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.48'/%3E%3C/svg%3E");
  background-size:190px 190px;
}

/* Zones must read immediately. */
.resonance-map-host .rm-overlay polygon{
  fill-opacity:.34!important;
  stroke-width:2.4!important;
  stroke-opacity:.98!important;
  filter:
    drop-shadow(0 1px 2px rgba(75,46,28,.15))
    drop-shadow(0 0 5px rgba(255,255,255,.08));
}

.resonance-map-host .rm-overlay polygon[data-selected="1"]{
  fill-opacity:.46!important;
  stroke-width:3.1!important;
}

/* Category-specific zone edge emphasis. */
.resonance-map-host .rm-overlay polygon[data-type="vampire_clan"]{stroke:#7a3f47!important}
.resonance-map-host .rm-overlay polygon[data-type="werewolf_pack"]{stroke:#476249!important}
.resonance-map-host .rm-overlay polygon[data-type="witch_coven"]{stroke:#655070!important}
.resonance-map-host .rm-overlay polygon[data-type="neutral"]{stroke:#766a58!important}

.resonance-map-host .rm-zonelabel{
  z-index:35!important;
  padding:6px 9px!important;
  border:1px solid rgba(75,46,28,.18)!important;
  background:rgba(235,218,202,.96)!important;
  color:#4e3324!important;
  font-size:7.5px!important;
  letter-spacing:.10em!important;
  box-shadow:
    0 5px 14px rgba(72,46,29,.12),
    inset 0 0 0 1px rgba(255,255,255,.18)!important;
}

/* Filters: clear selected state; not all buttons look active at once. */
.resonance-map-host .rm-layers button{
  opacity:.68;
  transition:opacity .15s ease,background .15s ease,transform .15s ease;
}

.resonance-map-host .rm-layers button.on{
  opacity:1;
  background:rgba(255,255,255,.25)!important;
  color:#493124!important;
}

.resonance-map-host .rm-layers button:hover{
  opacity:1;
  transform:translateY(-1px);
}

/* Make the "zones" filter visually distinct. */
.resonance-map-host .rm-layers button[data-mode="zones"].on{
  background:#8b6a4d!important;
  color:#fff7ef!important;
}

/* Keep text/control layers above visible grain. */
.resonance-map-host .rm-top,
.resonance-map-host .rm-tools,
.resonance-map-host .rm-layers,
.resonance-map-host .rm-side,
.resonance-map-host .rm-drawer,
.resonance-map-host .rm-index{
  z-index:900;
}


/* =========================================================
   v11 — chronology headers / event navigation
   ========================================================= */

.resonance-map-host .rm-yearhead{
  position:sticky;
  top:0;
  z-index:4;
  padding:8px 12px 7px;
  border-bottom:1px solid rgba(80,52,35,.08);
  background:rgba(183,156,133,.96);
  color:#735642;
  font:800 7.5px/1 inherit;
  letter-spacing:.12em;
  text-transform:uppercase;
  backdrop-filter:blur(6px);
}

.resonance-map-host .rm-yearhead + .rm-record{
  border-top:0;
}

.resonance-map-host .rm-index-year{
  grid-column:1/-1;
  padding:13px 5px 7px;
  color:#725540;
  font:800 8px/1 inherit;
  letter-spacing:.14em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(80,52,35,.12);
}

.resonance-map-host .rm-index-year:first-child{
  padding-top:2px;
}

.resonance-map-host .rm-card{
  cursor:pointer;
}

.resonance-map-host .rm-card:hover{
  transform:translateX(2px);
}

.resonance-map-host .rm-record{
  position:relative;
}

.resonance-map-host .rm-record::after{
  content:"›";
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(82,52,35,.30);
  font-size:15px;
  opacity:0;
  transition:.15s ease;
}

.resonance-map-host .rm-record:hover::after{
  opacity:1;
}

/* The point card title must never inherit forum topic heading backgrounds. */
.resonance-map-host .rm-drawer-title{
  display:block!important;
  margin:5px 22px 5px 0!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  background-image:none!important;
  box-shadow:none!important;
  color:#4c3325!important;
  font:800 12.5px/1.3 inherit!important;
  text-shadow:none!important;
}


/* v12 — temporary/changeable faction-name note */
.resonance-map-host .rm-changeable-note{
  margin-top:9px;
  padding:7px 9px;
  border-left:2px solid var(--rm-accent);
  background:rgba(255,255,255,.08);
  color:#806653;
  font:700 7.8px/1.45 inherit;
  letter-spacing:.025em;
  text-transform:uppercase;
}


/* =========================================================
   v13 — VERY VISIBLE changeable faction marker
   ========================================================= */

.resonance-map-host .rm-changeable-chip{
  display:inline-flex!important;
  align-items:center;
  margin:5px 0 0 8px;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:6px;
  background:var(--rm-accent)!important;
  color:#fffaf5!important;
  font:900 6.8px/1 inherit!important;
  letter-spacing:.075em!important;
  text-transform:uppercase!important;
  vertical-align:1px;
  box-shadow:0 3px 10px rgba(112,63,27,.17);
}

.resonance-map-host .rm-record-title .rm-changeable-chip{
  display:block!important;
  width:max-content;
  margin:6px 0 1px 11px;
}

.resonance-map-host .rm-card strong .rm-changeable-chip{
  display:inline-flex!important;
  margin-left:8px;
}

.resonance-map-host .rm-changeable-alert{
  display:flex!important;
  flex-direction:column;
  gap:4px;
  margin:9px 0 10px;
  padding:10px 11px;
  border:0!important;
  border-radius:9px;
  background:var(--rm-accent)!important;
  color:#fffaf5!important;
  box-shadow:
    0 7px 18px rgba(112,63,27,.18),
    inset 0 0 0 1px rgba(255,255,255,.14);
}

.resonance-map-host .rm-changeable-alert b{
  color:#fff!important;
  font:900 8px/1.1 inherit!important;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.resonance-map-host .rm-changeable-alert span{
  color:rgba(255,250,245,.92)!important;
  font:700 8px/1.45 inherit!important;
}

.resonance-map-host .rm-drawer .rm-edit{
  min-width:165px;
  background:var(--rm-dark)!important;
  color:#fff8f1!important;
}

/* Old subtle note is intentionally hidden: the orange alert above replaces it. */
.resonance-map-host .rm-changeable-note{
  display:none!important;
}


/* =========================================================
   v14 — faction editor assignment
   ========================================================= */

.resonance-map-host .rm-access-box{
  margin:4px 0 10px;
  padding:11px;
  border:1px solid rgba(78,50,33,.10);
  border-radius:10px;
  background:rgba(255,255,255,.08);
}

.resonance-map-host .rm-access-title{
  margin-bottom:8px;
  color:#654936;
  font:900 8px/1.2 inherit;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.resonance-map-host .rm-access-choice{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:7px 8px;
  margin:0 0 5px;
  border-radius:8px;
  cursor:pointer;
}

.resonance-map-host .rm-access-choice:hover{
  background:rgba(255,255,255,.08);
}

.resonance-map-host .rm-access-choice input{
  width:auto!important;
  margin:2px 0 0!important;
  accent-color:var(--rm-accent);
}

.resonance-map-host .rm-access-choice span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.resonance-map-host .rm-access-choice b{
  color:#513629;
  font:800 8.5px/1.2 inherit;
  text-transform:uppercase;
}

.resonance-map-host .rm-access-choice small{
  color:#806754;
  font:600 7.8px/1.35 inherit;
}

.resonance-map-host .rm-editor-logins{
  margin:9px 0 0!important;
}

.resonance-map-host .rm-changeable-alert.locked{
  background:#6f5747!important;
}

.resonance-map-host .rm-changeable-chip.locked{
  background:#6f5747!important;
  color:#fffaf5!important;
}


/* =========================================================
   v15 — cleaner influence-zone boundaries
   ========================================================= */

/* The zone should read as a boundary first, not a filled polygon. */
.resonance-map-host .rm-overlay polygon{
  fill-opacity:.10!important;
  stroke-width:2.2!important;
  stroke-opacity:.96!important;
  stroke-dasharray:8 6!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke;
  filter:
    drop-shadow(0 1px 1px rgba(65,42,28,.10))
    drop-shadow(0 0 4px rgba(255,255,255,.08))!important;
}

.resonance-map-host .rm-overlay polygon:hover{
  fill-opacity:.17!important;
  stroke-width:2.8!important;
}

.resonance-map-host .rm-overlay polygon[data-selected="1"]{
  fill-opacity:.20!important;
  stroke-width:3!important;
  stroke-dasharray:9 5!important;
}

/* Clear, separate colors for every territorial layer. */
.resonance-map-host .rm-overlay polygon[data-type="vampire_clan"]{
  stroke:#914f58!important;
  fill:#914f58!important;
}

.resonance-map-host .rm-overlay polygon[data-type="werewolf_pack"]{
  stroke:#58745c!important;
  fill:#58745c!important;
}

.resonance-map-host .rm-overlay polygon[data-type="witch_coven"]{
  stroke:#776184!important;
  fill:#776184!important;
}

.resonance-map-host .rm-overlay polygon[data-type="neutral"]{
  stroke:#9a7d55!important;
  fill:#9a7d55!important;
  stroke-dasharray:3 6!important;
}

.resonance-map-host .rm-zonelabel{
  padding:4px 7px!important;
  border:0!important;
  border-radius:6px!important;
  background:rgba(226,207,190,.88)!important;
  box-shadow:0 3px 10px rgba(72,46,29,.08)!important;
  font-size:7px!important;
  letter-spacing:.08em!important;
}

/* Small colored rule on the label instead of a bulky box. */
.resonance-map-host .rm-zonelabel[data-type="vampire_clan"]{
  border-left:3px solid #914f58!important;
}
.resonance-map-host .rm-zonelabel[data-type="werewolf_pack"]{
  border-left:3px solid #58745c!important;
}
.resonance-map-host .rm-zonelabel[data-type="witch_coven"]{
  border-left:3px solid #776184!important;
}
.resonance-map-host .rm-zonelabel[data-type="neutral"]{
  border-left:3px solid #9a7d55!important;
}


/* =========================================================
   v16 — boundary-first zones: no "filled boxes"
   ========================================================= */

.resonance-map-host .rm-overlay polygon{
  fill-opacity:.025!important;
  stroke-width:3.4!important;
  stroke-opacity:1!important;
  stroke-dasharray:10 7!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke!important;
  filter:
    drop-shadow(0 0 1px rgba(255,255,255,.65))
    drop-shadow(0 1px 3px rgba(55,35,24,.30))!important;
}

.resonance-map-host .rm-overlay polygon:hover{
  fill-opacity:.055!important;
  stroke-width:4.2!important;
}

.resonance-map-host .rm-overlay polygon[data-selected="1"]{
  fill-opacity:.07!important;
  stroke-width:4.4!important;
}

/* brighter boundary colors on the pale map */
.resonance-map-host .rm-overlay polygon[data-type="vampire_clan"]{
  stroke:#a13f52!important;
  fill:#a13f52!important;
}

.resonance-map-host .rm-overlay polygon[data-type="werewolf_pack"]{
  stroke:#39734e!important;
  fill:#39734e!important;
}

.resonance-map-host .rm-overlay polygon[data-type="witch_coven"]{
  stroke:#704a8d!important;
  fill:#704a8d!important;
}

.resonance-map-host .rm-overlay polygon[data-type="neutral"]{
  stroke:#9b6d2f!important;
  fill:#9b6d2f!important;
  stroke-dasharray:4 6!important;
}

/* labels should look like map labels, not little cards */
.resonance-map-host .rm-zonelabel,
.resonance-map-host .rm-zonelabel[data-type]{
  padding:2px 4px!important;
  border:0!important;
  border-left:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#51382a!important;
  font:900 7px/1 inherit!important;
  letter-spacing:.11em!important;
  text-shadow:
    0 1px 0 rgba(245,232,219,.95),
    1px 0 0 rgba(245,232,219,.95),
    -1px 0 0 rgba(245,232,219,.95),
    0 -1px 0 rgba(245,232,219,.95)!important;
}

.resonance-map-host .rm-zonelabel[data-type="vampire_clan"]{color:#873849!important}
.resonance-map-host .rm-zonelabel[data-type="werewolf_pack"]{color:#356546!important}
.resonance-map-host .rm-zonelabel[data-type="witch_coven"]{color:#65427d!important}
.resonance-map-host .rm-zonelabel[data-type="neutral"]{color:#865d29!important}


/* =========================================================
   v17 — floating wide map + readable zone labels
   ========================================================= */

/* Let the whole module leave the normal post column, like the shop. */
.resonance-map-host{
  position:relative!important;
  z-index:30!important;
  width:calc(100% + 150px)!important;
  max-width:none!important;
  margin-left:-75px!important;
  margin-right:-75px!important;
  overflow:visible!important;
}

/* Floating card effect */
.resonance-map-host .rm{
  overflow:hidden!important;
  border-radius:16px!important;
  box-shadow:
    0 30px 70px rgba(25,17,12,.26),
    0 12px 28px rgba(25,17,12,.18),
    0 2px 8px rgba(25,17,12,.12)!important;
}

/* A small lift from the page so it doesn't look glued to the post */
.resonance-map-host .rm::after{
  border-radius:16px;
}

/* More breathing room / larger map surface */
.resonance-map-host .rm-body{
  min-height:680px!important;
}

.resonance-map-host .rm-canvas,
.resonance-map-host .rm-map,
.resonance-map-host .rm-side{
  height:680px!important;
}

.resonance-map-host .rm-list{
  max-height:625px!important;
}

/* Zone labels: readable, not tiny writing on top of roads */
.resonance-map-host .rm-zonelabel,
.resonance-map-host .rm-zonelabel[data-type]{
  z-index:55!important;
  padding:5px 8px!important;
  border:1px solid rgba(74,47,31,.12)!important;
  border-radius:6px!important;
  background:rgba(237,221,205,.92)!important;
  box-shadow:
    0 4px 12px rgba(49,31,20,.13),
    inset 0 0 0 1px rgba(255,255,255,.18)!important;
  color:#4a3022!important;
  font:900 9px/1.08 inherit!important;
  letter-spacing:.075em!important;
  text-shadow:none!important;
  white-space:nowrap!important;
  backdrop-filter:blur(3px);
}

/* Keep the category color visible without sacrificing readability */
.resonance-map-host .rm-zonelabel[data-type="vampire_clan"]{
  color:#7d3546!important;
  border-left:4px solid #a13f52!important;
}
.resonance-map-host .rm-zonelabel[data-type="werewolf_pack"]{
  color:#315e42!important;
  border-left:4px solid #39734e!important;
}
.resonance-map-host .rm-zonelabel[data-type="witch_coven"]{
  color:#5d3974!important;
  border-left:4px solid #704a8d!important;
}
.resonance-map-host .rm-zonelabel[data-type="neutral"]{
  color:#765022!important;
  border-left:4px solid #9b6d2f!important;
}

/* Make boundary lines remain obvious on a pale OSM map */
.resonance-map-host .rm-overlay polygon{
  stroke-width:3.8!important;
  stroke-opacity:1!important;
  stroke-dasharray:11 7!important;
  fill-opacity:.018!important;
  filter:
    drop-shadow(0 0 1px rgba(255,255,255,.90))
    drop-shadow(0 1px 3px rgba(41,26,17,.36))!important;
}

.resonance-map-host .rm-overlay polygon:hover{
  stroke-width:4.6!important;
  fill-opacity:.05!important;
}

.resonance-map-host .rm-overlay polygon[data-selected="1"]{
  stroke-width:4.8!important;
  fill-opacity:.065!important;
}

/* Give controls and the archive enough room in the larger module */
.resonance-map-host .rm-body{
  grid-template-columns:minmax(0,1fr) 285px!important;
}

/* Don't let the floating version break on narrower screens */
@media(max-width:1050px){
  .resonance-map-host{
    width:calc(100% + 70px)!important;
    margin-left:-35px!important;
    margin-right:-35px!important;
  }
}

@media(max-width:820px){
  .resonance-map-host{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .resonance-map-host .rm-body{
    grid-template-columns:1fr!important;
  }
}


/* v18 — header subtitle uses the same brown as active buttons */
.resonance-map-host .rm-brand strong i{
  color:var(--rm-dark)!important;
}


/* v19 — non-sentient creature layer */
.resonance-map-host .rm-mapmarker[data-type="creature"]::before{
  background:#8a5b3f!important;
  box-shadow:
    0 0 0 4px rgba(138,91,63,.18),
    0 0 11px rgba(138,91,63,.34)!important;
}


/* v20 — marker clickability */
.resonance-map-host .rm-markers{
  z-index:80!important;
  pointer-events:none!important;
}
.resonance-map-host .rm-mapmarker,
.resonance-map-host .rm-zonelabel{
  pointer-events:auto!important;
  cursor:pointer!important;
}
.resonance-map-host .rm-mapmarker[data-type="creature"]{
  z-index:3!important;
}


/* v21 — drawer close control */
.resonance-map-host .rm-drawer{
  pointer-events:auto!important;
}
.resonance-map-host .rm-close{
  z-index:20!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  width:26px!important;
  height:26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}


/* v22 — stable side-list interaction */
.resonance-map-host .rm-side,
.resonance-map-host .rm-list{
  pointer-events:auto!important;
}

.resonance-map-host .rm-record,
.resonance-map-host .rm-record *{
  pointer-events:auto!important;
}

.resonance-map-host .rm-record{
  cursor:pointer!important;
  user-select:none;
}

.resonance-map-host .rm-record:focus{
  outline:none!important;
  background:rgba(255,255,255,.10)!important;
  box-shadow:inset 3px 0 0 var(--rm-accent)!important;
}


/* v23 — visual linking between side list and map marker */
.resonance-map-host .rm-mapmarker.on{
  z-index:12!important;
  transform:translate(-50%,-86%) rotate(-45deg) scale(1.14)!important;
  box-shadow:
    0 0 0 3px rgba(255,248,239,.90),
    0 0 0 7px rgba(200,117,46,.30),
    0 10px 22px rgba(49,30,20,.36)!important;
}

.resonance-map-host .rm-mapmarker.on::before{
  box-shadow:
    0 0 0 5px rgba(200,117,46,.22),
    0 0 18px rgba(200,117,46,.58)!important;
}

.resonance-map-host .rm-zonelabel.on{
  transform:translate(-50%,-50%) scale(1.06)!important;
  box-shadow:
    0 0 0 2px rgba(255,248,239,.80),
    0 7px 18px rgba(49,30,20,.20)!important;
}

.resonance-map-host .rm-overlay polygon.on,
.resonance-map-host .rm-overlay polygon[data-selected="1"]{
  stroke-width:5!important;
  fill-opacity:.07!important;
  filter:
    drop-shadow(0 0 2px rgba(255,255,255,.95))
    drop-shadow(0 2px 6px rgba(49,30,20,.42))!important;
}

.resonance-map-host .rm-record.on{
  background:rgba(255,255,255,.14)!important;
  box-shadow:
    inset 4px 0 0 var(--rm-accent),
    inset 0 0 0 1px rgba(255,255,255,.08)!important;
}


/* v24 — reliable, easy-to-hit drawer close */
.resonance-map-host .rm-drawer .rm-close{
  position:absolute!important;
  top:8px!important;
  right:8px!important;
  z-index:50!important;
  width:30px!important;
  height:30px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:50%!important;
  background:rgba(111,83,61,.10)!important;
  color:#5f4432!important;
  font:700 18px/1 Arial,sans-serif!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
}

.resonance-map-host .rm-drawer .rm-close:hover{
  background:rgba(111,83,61,.18)!important;
  color:#3f2a20!important;
}

.resonance-map-host .rm-drawer .rm-close:active{
  transform:scale(.94)!important;
}
