/* Approved adventure-map presentation. All changes are confined to this map.
 * The measured viewport variables are supplied by geo-map.js; the fallbacks
 * keep the map usable while that script starts. Existing game data is unchanged.
 */
body:has(.jsf-ng-adventure) {
  height: 100dvh !important;
  min-height: 0 !important;
  padding-bottom: 0 !important;
  overflow: hidden !important;
  overscroll-behavior: none;
  background: #102d48 !important;
}
body:has(.jsf-ng-adventure) > header.top,
body:has(.jsf-ng-adventure) #jsv-primary-header {
  display: flex !important;
}
body:has(.jsf-ng-adventure) > .site-footer,
body:has(.jsf-ng-adventure) .jsv-mobile-header-spacer {
  display: none !important;
}

body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure.jsf-ng-game-v2 {
  --ng-navy: #102d48;
  --ng-ink: #112e4b;
  --ng-paper: #fff;
  --ng-cream: #fbf8ed;
  --ng-gold: #efc745;
  --ng-muted: #55697d;
  --ng-line: #e0e7ef;
  --ng-teal: #147e86;
  position: fixed !important;
  inset: var(--jsf-ng-top, 72px) 0 auto !important;
  width: 100% !important;
  max-width: none !important;
  height: var(--jsf-ng-height, calc(100dvh - var(--jsf-ng-top, 72px) - var(--jsf-ng-bottom, 0px))) !important;
  min-height: 0 !important;
  max-height: var(--jsf-ng-height, calc(100dvh - var(--jsf-ng-top, 72px) - var(--jsf-ng-bottom, 0px))) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 84px minmax(0, 1fr) clamp(338px, 25.5vw, 410px) !important;
  gap: 0 !important;
  overflow: hidden !important;
  background: #f6f8fb;
  color: var(--ng-ink);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  z-index: 50;
  isolation: isolate;
}
#jsf-niagara-game.jsf-ng-adventure *,
#jsf-niagara-game.jsf-ng-adventure *::before,
#jsf-niagara-game.jsf-ng-adventure *::after {
  box-sizing: border-box;
}
#jsf-niagara-game.jsf-ng-adventure [hidden] { display: none !important; }
#jsf-niagara-game.jsf-ng-adventure .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}
#jsf-niagara-game.jsf-ng-adventure :is(button, input, select, textarea) { font: inherit; }
#jsf-niagara-game.jsf-ng-adventure :is(button, summary) { cursor: pointer; }
#jsf-niagara-game.jsf-ng-adventure :is(button, a, summary) { -webkit-tap-highlight-color: transparent; }
#jsf-niagara-game.jsf-ng-adventure :is(button, a, summary, input, select, textarea):focus-visible {
  outline: 3px solid #1a73bc !important;
  outline-offset: 3px;
}
#jsf-niagara-game.jsf-ng-adventure :is(button, input, select, textarea):disabled {
  opacity: .55;
  cursor: not-allowed;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-icon {
  display: block;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

/* Keep one site header and one usable map rail. */
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-topbar,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-top-brand,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-wallet-card,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-rail-brand { display: none !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
  padding: 8px 0;
  border: 0;
  background: linear-gradient(180deg, #112f4c, #0e263e);
  overflow: hidden;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail nav {
  display: grid;
  grid-auto-rows: minmax(48px, 1fr);
  align-content: start;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 3px;
  gap: 2px;
  overflow: auto;
  scrollbar-width: none;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail nav::-webkit-scrollbar { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail nav a,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-rail-more {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  max-height: 76px;
  gap: 4px;
  padding: 7px 2px;
  border-radius: 12px;
  color: #fff !important;
  text-decoration: none;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail nav a > span,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-rail-more > span { display: grid; place-items: center; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail :is(a > b, a > span, a svg) { color: inherit !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail a > b { max-width: 100%; font-size: 10px !important; font-weight: 700; letter-spacing: 0; white-space: nowrap; word-break: normal; overflow-wrap: normal; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail nav a.active {
  background: var(--ng-gold);
  color: #102d48 !important;
  box-shadow: none;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-rail-more { flex: 0 0 54px; margin: 6px 3px 0; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail :is(a, button):focus-visible {
  outline-color: #f7d972 !important;
  outline-offset: -3px;
}

/* Neutralize earlier fixed mobile insets before applying the new map shell. */
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-stage {
  position: relative !important;
  display: block !important;
  grid-template-rows: none !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #dcecf2;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-shell {
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #dcecf2;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure.jsf-ng-game-v2 .jsf-ng-map-viewport {
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #dcecf2;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-real-map {
  min-width: 0 !important;
  aspect-ratio: auto !important;
  transition: none !important;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-canvas::after { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-loading { padding: 20px; text-align: center; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-loading b { max-width: 320px; font-size: 15px; }

/* Search, geographic region and category filters float above the live map. */
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-toolbar {
  position: absolute;
  z-index: 710;
  top: 18px;
  left: 20px;
  right: 142px;
  max-width: 650px;
  display: grid;
  gap: 10px;
  pointer-events: none;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-toolbar-row {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(155px, 200px);
  align-items: start;
  gap: 10px;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: 46px !important;
  min-height: 44px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 2px;
  padding: 0 10px;
  border: 1px solid #dce4eb;
  border-radius: 12px;
  background: #fff;
  color: #123652;
  box-shadow: 0 3px 12px #173b5814;
  pointer-events: auto;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search:focus-within { box-shadow: 0 0 0 3px #1977b64d; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search > span { display: grid; place-items: center; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search .jsf-ng-icon { width: 19px; height: 19px; }
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search input {
  width: 100%;
  min-width: 0 !important;
  max-width: none !important;
  height: 42px;
  padding: 0 3px;
  border: 0 !important;
  border-radius: 0;
  outline: none;
  background: transparent;
  color: #123652;
  font-size: 13px !important;
  font-weight: 400;
  box-shadow: none;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search input::placeholder { color: #667c95; opacity: 1; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search > button {
  display: grid;
  place-items: center;
  min-width: 28px;
  min-height: 44px;
  width: 28px;
  padding: 0;
  border: 0;
  background: none;
  color: #425d74;
  font-size: 22px;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
  max-width: none !important;
  width: 100%;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #dce4eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 12px #173b5814;
  pointer-events: auto;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker > span { display: grid; place-items: center; color: #174563; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker .jsf-ng-icon { width: 18px; height: 18px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker label { flex: 1 1 0; min-width: 0; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker small { display: none !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker select {
  width: 100%;
  max-width: 100%;
  min-height: 44px;
  padding: 0 16px 0 0;
  border: 0;
  background-color: transparent;
  color: #112e4b;
  font-size: 13px;
  font-weight: 750;
  text-overflow: ellipsis;
  cursor: pointer;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  max-width: 100%;
  padding: 1px 1px 4px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  pointer-events: auto;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters::-webkit-scrollbar { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters button {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 62px;
  min-height: 44px;
  padding: 8px 15px;
  border: 1px solid #dce5eb;
  border-radius: 24px !important;
  background: #fff;
  color: #153550;
  box-shadow: 0 2px 5px #1236520a;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  touch-action: manipulation;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters .jsf-ng-icon { width: 19px; height: 19px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters button:is(.is-active, [aria-pressed="true"]) {
  border-color: #123652;
  background: #123652;
  color: #fff;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters button:focus-visible { outline-offset: -3px; }
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend {
  position: absolute;
  z-index: 730 !important;
  top: 18px !important;
  right: 18px !important;
  left: auto !important;
  display: block !important;
  width: 108px !important;
  max-width: none !important;
  padding: 0 !important;
  border: 1px solid #dce4eb !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 3px 12px #173b581a !important;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 9px;
  color: #143653;
  font-size: 13px;
  font-weight: 750;
  list-style: none;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend summary::-webkit-details-marker { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend summary::marker { content: ""; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend summary .jsf-ng-icon { width: 20px; height: 20px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend > div {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  left: auto;
  width: 230px;
  max-width: calc(100vw - 24px);
  max-height: min(400px, calc(var(--jsf-ng-height, 100dvh) - 180px));
  padding: 12px;
  border: 1px solid #d7e1e8;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 26px #11334b29;
  overflow: auto;
  overscroll-behavior: contain;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend:not([open]) > div { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend label {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 38px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend input { width: 17px; height: 17px; accent-color: #147e86; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-all { width: 100%; min-height: 40px; font-size: 12px; }
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-controls,
#jsf-niagara-game.jsf-ng-adventure [data-ng-zoom-reset] { display: none !important; }
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-back-activity,
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-mobile-hunt-toggle { display: none; }

/* A small dock leaves the map visible on all four sides. */
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock {
  position: absolute !important;
  z-index: 720 !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 18px !important;
  transform: translateX(-50%);
  width: min(490px, calc(100% - 150px)) !important;
  height: 70px !important;
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 3px;
  margin: 0;
  padding: 5px !important;
  border: 1px solid #dbe5ee;
  border-radius: 26px;
  background: #fff !important;
  box-shadow: 0 6px 20px #173b5824 !important;
  overflow: hidden !important;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock > :is(button, a) {
  position: relative;
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  justify-content: center;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100%;
  gap: 4px !important;
  padding: 5px 3px !important;
  border: 0;
  border-radius: 19px !important;
  background: transparent;
  color: #123652 !important;
  text-decoration: none;
  box-shadow: none;
  touch-action: manipulation;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock :is(button, a) b {
  display: block;
  width: 100%;
  color: inherit !important;
  font-size: 11px !important;
  font-weight: 750;
  line-height: 1.1 !important;
  text-align: center;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock .jsf-ng-icon { width: 25px; height: 25px; }
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock > :is(.is-active, [aria-pressed="true"]) {
  background: #112f4b !important;
  color: #f2c94c !important;
  box-shadow: none !important;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock .is-active::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 3px;
  border-radius: 2px;
  background: #efc745;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock :is(a, button):focus-visible { outline-offset: -3px; }
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom {
  top: auto !important;
  right: 18px !important;
  bottom: 32px !important;
  display: grid;
  grid-template-columns: 48px !important;
  grid-auto-rows: minmax(48px, auto) !important;
  gap: 3px !important;
  z-index: 715 !important;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 48px !important;
  height: 48px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 5px 2px;
  border: 1px solid #e2e7ed;
  border-radius: 13px;
  background: #fff;
  color: #102e4c;
  box-shadow: 0 3px 12px #14365218;
  font-size: 25px;
  line-height: 1;
  touch-action: manipulation !important;
}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom button[data-ng-zoom-fit] {
  height: 58px !important;
  font-size: 9px !important;
  font-weight: 800;
  line-height: 1.1;
  white-space: normal;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom .jsf-ng-icon { width: 20px; height: 20px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-discovery-status {
  z-index: 705;
  left: 16px;
  bottom: 106px;
  max-width: min(370px, calc(100% - 100px));
  padding: 10px 12px;
  border-color: #d2dde7;
  background: #fff;
  font-size: 12px;
}
#jsf-niagara-game.jsf-ng-adventure .leaflet-control-attribution {
  max-width: min(480px, 100%);
  padding: 2px 5px;
  background: #ffffffdb;
  color: #29445c;
  font-size: 10px;
  line-height: 1.3;
}
#jsf-niagara-game.jsf-ng-adventure .leaflet-control-attribution a { color: #175d8a; }

/* Clear compact symbols, with a larger transparent touch target. */
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.landmark.has-illustration {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  transform: none;
  filter: drop-shadow(0 3px 3px #102e4b38);
  touch-action: manipulation;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker > span,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.manual > span,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.landmark.has-illustration .jsf-ng-landmark-art {
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 3px solid #fff;
  border-radius: 50% 50% 50% 5px;
  background: #193d5d;
  color: #fff;
  box-shadow: 0 0 0 1px #15375316;
  transform: rotate(-45deg);
  animation: none;
  font-size: 16px;
  line-height: 1;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker > span > :is(svg, i, b, img) { transform: rotate(45deg); }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker > span svg { width: 18px; height: 18px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker:is(.business, .store) > span { background: #147e86; border-color: #fff; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker:is(.manual, .checkpoint, .clue) > span { background: #d6a625; border-color: #fff; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.event > span { background: #645195; border-color: #fff; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.is-claimed > span { background: #477c60; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.is-discovered > span { border-color: #fff; background: #193d5d; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker:is(.is-selected, .is-current, .is-search-match) > span {
  box-shadow: 0 0 0 5px #efc74555, 0 2px 8px #14365235;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker:focus-visible { outline: none !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker:focus-visible > span { outline: 3px solid #176baa; outline-offset: 3px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.place { width: auto; min-width: 44px; filter: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.place > span { width: 12px; height: 12px; border-radius: 50%; transform: none; background: #447a9d; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.place > b { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.landmark.has-illustration .jsf-ng-landmark-art img {
  position: static;
  width: 25px;
  height: 25px;
  object-fit: cover;
  border-radius: 50%;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker.landmark.has-illustration .jsf-ng-landmark-art i { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-marker { border: 0; background: transparent; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-marker > button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  touch-action: manipulation;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-marker b {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #163852;
  color: #fff;
  box-shadow: 0 3px 9px #173b5835;
  font-size: 16px;
  font-weight: 800;
}

/* Actual player progress and activities live in the adventure sidebar. */
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-rail {
  position: relative !important;
  inset: auto !important;
  z-index: 750;
  display: grid !important;
  grid-auto-rows: max-content;
  align-content: start;
  gap: 11px;
  width: 100% !important;
  height: 100% !important;
  min-width: 0;
  min-height: 0;
  max-height: 100% !important;
  margin: 0;
  padding: 12px;
  border: 0;
  border-left: 1px solid #e2e9ef;
  border-radius: 0;
  background: #f7f9fc;
  box-shadow: none;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #b8c7d4 transparent;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: none;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-close { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card {
  min-width: 0;
  display: block;
  padding: 17px 18px;
  border: 1px solid #e0e7ef !important;
  border-radius: 16px !important;
  background: #fff !important;
  color: #13334f !important;
  box-shadow: 0 2px 9px #14365204 !important;
  overflow: hidden;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card :is(h2, h3, h4, p) { overflow-wrap: anywhere; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card h3 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 10px;
  color: #12314d;
  font-family: inherit;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card p {
  margin: 6px 0 0;
  color: #304e68;
  font-size: 14px;
  line-height: 1.45;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card small { font-size: 11px; line-height: 1.4; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero {
  position: relative;
  padding: 19px 18px 17px;
  border-color: #102d48 !important;
  background: linear-gradient(120deg, #102d48, #102940) !important;
  color: #fff !important;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero .jsf-ng-hunt-head { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero > small,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-kicker,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero .jsf-ng-hunt-head > small {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #f4cb45 !important;
  font-size: 10px !important;
  font-weight: 800;
  letter-spacing: .025em;
  text-transform: uppercase;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero .jsf-ng-icon { width: 21px; height: 21px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero h2 {
  margin: 8px 0 7px;
  color: #fff !important;
  font: 700 clamp(26px, 2.3vw, 35px)/1.05 Georgia, "Times New Roman", serif !important;
  letter-spacing: -.025em;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero h2 > span { color: inherit !important; font: inherit !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero p { color: #f3f7fb !important; font-size: 14px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-mode-pill,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-mode,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero .jsf-ng-hunt-head > .jsf-ng-mode {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 0;
  padding: 5px 10px;
  border-radius: 18px;
  background: #ffffff18;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-next-discovery { background: #fdfaf0 !important; border-color: #eee5cb !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-next-discovery h3 .jsf-ng-icon { color: #c7a024; width: 21px; height: 21px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-next-discovery h4 {
  margin: 9px 0 7px;
  color: #102e4a;
  font: 700 27px/1.1 Georgia, "Times New Roman", serif !important;
  letter-spacing: -.02em;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-discovery-category,
#jsf-niagara-game.jsf-ng-adventure [data-ng-next-discovery] > small {
  display: inline-block;
  margin-top: 1px;
  padding: 4px 10px;
  border-radius: 15px;
  background: #e5e7e7;
  color: #233f54;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.3;
  text-transform: uppercase;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-progress-btn,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-next-discovery [data-ng-next-discovery] > button,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-next-discovery .jsf-ng-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  min-height: 44px;
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid #e3bc39;
  border-radius: 9px;
  background: #efc745 !important;
  color: #102d48 !important;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-progress-btn .jsf-ng-icon,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-next-discovery button .jsf-ng-icon { width: 18px; height: 18px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-bottom: 14px;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-card > header h3 { margin: 0; font-size: 15px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-card > header .jsf-ng-icon { color: #328fce; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-summary { margin: 0 !important; color: #4d6380; font-size: 10px !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-progress {
  display: block !important;
  height: 10px !important;
  min-height: 10px !important;
  padding: 0 !important;
  border: 0 !important;
  margin: 8px 0 19px;
  border-radius: 10px;
  background: #e1e7ef;
  overflow: hidden;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-progress > i {
  display: block !important;
  position: static;
  flex: none;
  height: 10px !important;
  min-height: 10px !important;
  max-width: 100%;
  border-radius: inherit;
  background: #efc745 !important;
  transition: width .2s ease;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  background: transparent !important;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats > div {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  justify-content: center;
  gap: 3px 7px;
  min-width: 0;
  padding: 3px 9px;
  border-right: 1px solid #dce4ed;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats > div:first-child { padding-left: 0; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats > div:last-child { border: 0; padding-right: 0; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats .jsf-ng-icon { width: 25px; height: 25px; grid-row: 1 / 3; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats > div:first-child .jsf-ng-icon { color: #d6a521; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats > div:nth-child(2) .jsf-ng-icon { color: #cc4561; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats strong { color: #102d48; font-size: 20px; line-height: 1.1; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats small { color: #4e6680; font-size: 10px; line-height: 1.2; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-card > small { display: block; margin-top: 12px; color: #5c6f80; font-size: 10px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-link { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; padding: 4px 0; margin-top: 2px; color: #175c98; font-size: 11px; font-weight: 650; text-decoration: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-link .jsf-ng-icon { width: 16px; height: 16px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-live-card { background: #e9f4ff !important; border-color: #d5e8f8 !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-live-card > h3 .jsf-ng-icon { color: #2d84cc; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-live-card > p { font-size: 13px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-live-card [data-ng-events]:empty { display: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-challenge-panel { margin-top: 12px; padding: 12px; background: #fff; border-radius: 10px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-challenge-panel p { font-size: 12px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-challenge-panel select { min-height: 44px; font-size: 13px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-discovery > small { display: block; margin-bottom: 10px; color: #243e56; font-size: 10px; font-weight: 800; letter-spacing: .025em; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-content { display: grid; grid-template-columns: minmax(90px, 41%) minmax(0, 1fr); gap: 12px; align-items: center; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-content:not(:has(> img)) { grid-template-columns: minmax(0, 1fr); }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-content > img { display: block; width: 100%; height: 125px; object-fit: cover; border-radius: 11px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-content h4 { margin: 0 0 4px; color: #12314d; font-size: 15px; font-weight: 800; line-height: 1.25; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-content p { margin: 0; font-size: 12px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-content :is(button, a) { display: inline-flex; align-items: center; gap: 5px; min-height: 40px; padding: 5px 0; border: 0; background: transparent; color: #175c98; font-size: 11px; font-weight: 750; text-decoration: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-content :is(button, a) .jsf-ng-icon { width: 15px; height: 15px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-discovery > h4 { margin: 0 0 6px; color: #12314d; font-size: 16px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-discovery > :is(a, button) { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 5px 0; border: 0; background: transparent; color: #175c98; font-size: 12px; font-weight: 700; text-decoration: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-local-discovery > a .jsf-ng-icon { width: 16px; height: 16px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-clues-list { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e3d8b6; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-clues-list h4 { margin: 0 0 10px; font-family: inherit !important; font-size: 15px !important; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-clues-list button { display: flex; align-items: center; justify-content: flex-start; gap: 9px; min-height: 44px; padding: 10px; margin: 6px 0; border: 1px solid #d5e0e8; border-radius: 9px; background: #fff; color: #153b58; font-size: 12px; font-weight: 700; text-align: left; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-clues-list button > svg { width: 20px; height: 20px; flex: 0 0 20px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-clues-list p { font-size: 12px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-admin-panel > header { display: flex; align-items: center; justify-content: space-between; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-admin-panel > header button { width: 36px; height: 36px; border: 0; border-radius: 8px; background: #edf2f6; color: #13334f; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-admin-body { padding: 7px 0 0; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-admin-body input,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-admin-body select { min-height: 42px; font-size: 14px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-admin-body label { font-size: 12px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-admin-body small { display: block; margin-top: 8px; font-size: 11px; line-height: 1.4; }

/* Existing timed-hunt components retain their controls and become sidebar cards. */
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 11px 0 0;
  padding: 0;
  font-family: inherit;
  font-size: 13px;
  line-height: 1.45;
  z-index: auto;
}
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) > button {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #b6cddd;
  border-radius: 9px;
  background: #fff;
  color: #183c58;
  font-size: 13px;
  font-weight: 750;
  box-shadow: none;
  text-align: left;
}
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player > aside, .jsth-ph-panel) {
  position: static;
  width: 100%;
  max-width: 100%;
  max-height: none;
  margin-top: 8px;
  border: 1px solid #d6e1e9;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
  overflow: visible;
}
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] .jths-player > aside { padding: 12px; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) :is(h2, h3) { font-family: inherit; font-size: 18px; line-height: 1.25; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) :is(p, li, small) { font-size: 12px; line-height: 1.5; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) input:not([type="checkbox"]),
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) :is(select, textarea) { width: 100%; min-height: 42px; font-size: 14px; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) button { min-height: 44px; font-size: 12px; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) img { max-width: 100%; height: auto; max-height: 180px; object-fit: cover; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] .jths-player .jths-photo { width: 100%; height: 160px; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) details { margin-top: 10px; padding-top: 8px; border-top: 1px solid #e4eaf0; }
#jsf-niagara-game.jsf-ng-adventure [data-ng-events] :is(.jths-player, .jsth-ph-player) summary { min-height: 36px; padding: 7px 0; color: #214a68; font-weight: 700; }

/* A location preview is short; the existing full detail and claim card stays available. */
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-popup .leaflet-popup-content-wrapper {
  padding: 0;
  border: 1px solid #dce5ec;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 30px #102e4b38;
  overflow: hidden;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-popup .leaflet-popup-content {
  min-width: 0 !important;
  max-width: 340px;
  max-height: min(65dvh, 520px);
  margin: 0;
  overflow: auto;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-popup .leaflet-popup-tip { background: #fff; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-popup .leaflet-popup-close-button {
  display: grid;
  place-items: center;
  width: 36px !important;
  height: 36px !important;
  top: 9px;
  right: 9px;
  padding: 0 !important;
  border-radius: 50%;
  background: #fff;
  color: #123652 !important;
  box-shadow: 0 1px 8px #163c581f;
  font-size: 24px !important;
  line-height: 1 !important;
  z-index: 4;
}
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-location-preview { padding: 6px; background: #fff; color: #153550; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-image { display: block; width: 100%; height: 168px; aspect-ratio: 16 / 8.5; object-fit: cover; border-radius: 11px 11px 5px 5px; background: #e5eff4; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-fallback { display: grid; place-items: center; width: 100%; height: 130px; border-radius: 11px 11px 5px 5px; background: linear-gradient(135deg, #dcecf5, #f4f7ef); color: #23506c; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-fallback > svg { width: 52px; height: 52px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-body { padding: 10px 10px 8px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-body h2 { margin: 0 0 9px; color: #102f4c; font-family: inherit; font-size: 22px; font-weight: 800; line-height: 1.15; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 20px; background: #e8f2fc; color: #193b5d; font-size: 12px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-badge .jsf-ng-icon,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-badge > svg { width: 18px; height: 18px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-body p { margin: 9px 0 12px; color: #35536c; font-size: 13px; line-height: 1.45; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-primary { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; width: 100%; padding: 10px; border: 1px solid #e3bc38; border-radius: 8px; background: #efc745; color: #102e4b; font-size: 13px; font-weight: 800; text-decoration: none; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-primary .jsf-ng-icon,
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-primary > svg { width: 18px; height: 18px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-actions { display: flex; justify-content: center; margin-top: 4px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-actions button { min-height: 36px; padding: 5px 10px; border: 0; border-radius: 7px; background: transparent; color: #355a78; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog { position: absolute; inset: 0; z-index: 1200; padding: 20px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog-card { width: min(540px, calc(100% - 20px)); max-height: calc(100% - 20px); border: 1px solid #cbd9e4; border-radius: 17px; background: #fff; overscroll-behavior: contain; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog-close { position: sticky; display: grid; place-items: center; width: 40px; height: 40px; margin: 10px 10px -50px auto; right: auto; top: 10px; background: #fff; box-shadow: 0 1px 8px #102e4b29; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog .jsf-ng-popup { font-size: 14px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog :is(input, select, textarea) { min-height: 44px; font-size: 16px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog .jsf-ng-btn { min-height: 44px; font-size: 12px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list { padding: 20px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list h2 { margin: 0 36px 8px 0; color: #13334f; font-family: inherit; font-size: 21px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list p { margin: 6px 0 12px; color: #4a657b; font-size: 13px; line-height: 1.45; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list > div > button { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 12px; min-height: 58px; width: 100%; padding: 10px 8px; border: 0; border-bottom: 1px solid #e0e8ef; background: transparent; color: #163a56; text-align: left; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list > div > button > svg { width: 22px; height: 22px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list button span { display: grid; gap: 3px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list button b { font-size: 13px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list button small { color: #5b7285; font-size: 11px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list :is(footer, nav) { display: flex; justify-content: space-between; gap: 8px; margin-top: 12px; }
#jsf-niagara-game.jsf-ng-adventure .jsf-ng-cluster-list :is(footer, nav) button { min-height: 44px; padding: 8px 12px; border: 1px solid #cbdae4; border-radius: 8px; background: #f0f6fa; color: #173d59; }

@media (min-width: 901px) and (max-width: 1150px) {
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure.jsf-ng-game-v2 { grid-template-columns: 72px minmax(0, 1fr) 318px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-toolbar { top: 12px; left: 12px; right: 122px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-toolbar-row { grid-template-columns: minmax(145px, 1fr) minmax(130px, 170px); gap: 8px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker { width: 100%; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters { margin-right: -110px; max-width: calc(100% + 110px); }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend { top: 12px !important; right: 12px !important; width: 98px !important; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock { width: calc(100% - 100px) !important; left: calc(50% - 29px) !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card { padding: 14px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card h3 { font-size: 15px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero h2 { font-size: 28px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats > div { grid-template-columns: 23px minmax(0, 1fr); gap: 3px 5px; padding-inline: 6px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats .jsf-ng-icon { width: 23px; height: 23px; }
}

@media (max-width: 900px) {
  body:has(.jsf-ng-adventure) { position: static !important; inset: auto !important; width: 100% !important; }
  body:has(.jsf-ng-adventure) > .mobilebar { display: flex !important; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure.jsf-ng-game-v2 {
    inset: var(--jsf-ng-top, 60px) 0 auto !important;
    height: var(--jsf-ng-height, calc(100dvh - var(--jsf-ng-top, 60px) - var(--jsf-ng-bottom, 74px))) !important;
    max-height: var(--jsf-ng-height, calc(100dvh - var(--jsf-ng-top, 60px) - var(--jsf-ng-bottom, 74px))) !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail { display: none !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-toolbar { top: 8px; left: max(8px, env(safe-area-inset-left)); right: max(8px, env(safe-area-inset-right)); max-width: none; gap: 8px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-toolbar-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search { margin-left: 92px; width: calc(100% - 92px) !important; height: 44px !important; border-radius: 11px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search input { font-size: 16px !important; height: 42px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker { width: min(260px, calc(100% - 224px)); height: 44px; padding: 0 8px; border-radius: 11px; gap: 4px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker > span { display: none; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker select { min-height: 42px; font-size: 16px !important; font-weight: 700; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters { gap: 6px; padding-block: 1px 4px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters button { min-height: 44px; padding: 8px 12px; font-size: 12px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-back-activity {
    position: absolute;
    z-index: 725 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    top: 8px !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    width: 84px !important;
    height: 44px !important;
    padding: 0 7px;
    border: 1px solid #123652;
    border-radius: 11px;
    background: #123652;
    color: #fff !important;
    font-size: 11px;
    line-height: 1.1;
    box-shadow: 0 3px 10px #16385222;
    text-decoration: none;
  }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-back-activity b { font-size: 11px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-back-activity > span,
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-mobile-hunt-toggle > span { width: auto !important; min-width: 0; font-size: 11px !important; font-weight: 750; line-height: 1.1; letter-spacing: 0; white-space: nowrap !important; overflow-wrap: normal !important; word-break: normal !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-back-activity .jsf-ng-icon { width: 19px; height: 19px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend { top: 60px !important; left: auto !important; right: max(120px, calc(112px + env(safe-area-inset-right))) !important; width: 104px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend summary { min-height: 42px; height: 42px; font-size: 12px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend > div { top: calc(100% + 7px); right: -112px; left: auto; width: min(250px, calc(100vw - 24px)); }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-mobile-hunt-toggle {
    position: absolute;
    z-index: 725 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    top: 60px !important;
    right: max(8px, env(safe-area-inset-right)) !important;
    width: 104px !important;
    height: 44px !important;
    padding: 0 7px;
    border: 1px solid #e1b52d;
    border-radius: 11px;
    background: #efc745;
    color: #102d48;
    font-size: 11px;
    font-weight: 800;
    box-shadow: 0 3px 10px #16385216;
  }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-mobile-hunt-toggle .jsf-ng-icon { width: 18px; height: 18px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock {
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
    left: 50% !important;
    width: min(460px, calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right))) !important;
    height: 64px !important;
    min-height: 0 !important;
    padding: 4px !important;
    border-radius: 23px;
  }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock > :is(button, a) { min-height: 0 !important; padding: 3px 2px !important; gap: 3px !important; border-radius: 18px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock :is(a, button) b { font-size: 10.5px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock .jsf-ng-icon { width: 23px; height: 23px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom { right: max(10px, env(safe-area-inset-right)) !important; bottom: 92px !important; grid-template-columns: 44px !important; grid-auto-rows: 44px !important; gap: 3px !important; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom button { width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important; border-radius: 11px; font-size: 23px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom button[data-ng-zoom-fit] { height: 46px !important; font-size: 8px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom .jsf-ng-icon { width: 18px; height: 18px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-discovery-status { left: 10px; bottom: 92px; max-width: calc(100% - 74px); padding: 9px 11px; font-size: 12px; }
  #jsf-niagara-game.jsf-ng-adventure .leaflet-control-attribution { font-size: 9px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-rail {
    position: absolute !important;
    z-index: 1050 !important;
    inset: auto 8px 8px !important;
    width: auto !important;
    height: min(82%, 680px) !important;
    min-height: 0 !important;
    max-height: calc(100% - 16px) !important;
    display: flex !important;
    flex-direction: column;
    padding: 8px 10px 12px;
    border: 1px solid #c9d9e5;
    border-radius: 20px;
    background: #f4f7fa;
    box-shadow: 0 15px 60px #0d2e4b66;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateY(16px) !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s;
  }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-rail.is-open {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-close {
    position: sticky;
    display: grid;
    place-items: center;
    align-self: flex-end;
    top: 0;
    right: auto;
    z-index: 20;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: #e6edf3;
    color: #183c59;
    font-size: 25px;
  }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-rail > * { flex: 0 0 auto; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-rail::before { content: ""; position: absolute; top: 15px; left: calc(50% - 22px); width: 44px; height: 5px; border-radius: 5px; background: #b8c8d5; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-adventure-hero h2 { font-size: 31px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog { display: flex; align-items: flex-end; justify-content: center; padding: 8px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog-card { width: min(540px, 100%); max-height: calc(100% - 10px); border-radius: 18px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-dialog-close { width: 44px; height: 44px; margin-bottom: -54px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-image { height: clamp(120px, 25dvh, 220px); }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-body { padding: 12px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-body p { font-size: 14px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-actions button { min-height: 44px; }
}

@media (max-width: 370px) {
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker { width: calc(100% - 208px); padding-inline: 6px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend { right: 112px !important; width: 96px !important; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-mobile-hunt-toggle { width: 96px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend summary { font-size: 11px; gap: 5px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-card { padding: 14px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats > div { grid-template-columns: 22px minmax(0, 1fr); gap: 3px 5px; padding-inline: 5px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats .jsf-ng-icon { width: 22px; height: 22px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-passport-stats small { font-size: 9px; }
}

/* Short landscape screens need a one-row control shelf and a compact dock. */
@media (max-width: 900px) and (max-height: 520px) and (orientation: landscape) {
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-toolbar { top: 6px; left: 100px; right: 122px; gap: 5px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-toolbar-row { grid-template-columns: minmax(100px, 1fr) minmax(100px, 145px); gap: 7px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-map-search { width: 100% !important; margin-left: 0; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-region-picker { width: 100%; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters button { min-height: 34px; padding: 5px 10px; font-size: 11px; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters .jsf-ng-icon { width: 16px; height: 16px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-back-activity { top: 6px !important; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend { top: 6px !important; right: 8px !important; width: 104px !important; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-mobile-hunt-toggle { top: 56px !important; height: 38px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-layer-legend > div { right: 0; max-height: calc(var(--jsf-ng-height, 100dvh) - 110px); }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock { bottom: 12px !important; left: calc(50% - 66px) !important; width: min(350px, calc(100% - 180px)) !important; height: 52px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-action-dock .jsf-ng-icon { width: 18px; height: 18px; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-zoom { grid-template-columns: repeat(3, 44px) !important; bottom: 12px !important; }
  body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure .jsf-ng-hunt-rail { height: calc(100% - 12px) !important; inset: 6px 8px !important; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-image { height: 110px; }
}

@media (hover: hover) {
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-category-filters button:not([aria-pressed="true"]):hover { background: #edf5fb; border-color: #b9cedd; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-app-rail a:not(.active):hover { background: #234662; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-preview-primary:hover,
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-progress-btn:hover { background: #f4d467; }
  #jsf-niagara-game.jsf-ng-adventure .jsf-ng-geo-marker:hover > span { box-shadow: 0 0 0 3px #ffffff70, 0 3px 10px #12365235; }
}
@media (prefers-reduced-motion: reduce) {
  #jsf-niagara-game.jsf-ng-adventure *,
  #jsf-niagara-game.jsf-ng-adventure *::before,
  #jsf-niagara-game.jsf-ng-adventure *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* Public map search context; no changes to the existing map frame. */
.jsf-ng-map-search:has(.jsf-ng-location-filter){flex-wrap:wrap}
.jsf-ng-location-filter{flex-basis:100%;font-size:11px;line-height:1.35;color:#38536a;padding:0 12px 7px;overflow-wrap:anywhere}

/* 3.0.2: one collapsible panel on desktop and mobile. */
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-app-brand{display:grid;place-items:center;flex:0 0 58px;color:#efc745;text-decoration:none}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-app-brand .jsf-ng-icon{width:36px;height:36px}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-hunt-close{display:grid;place-items:center;position:sticky;top:0;align-self:flex-end;justify-self:end;width:40px;height:40px;min-height:40px;z-index:2;border:1px solid #cad7e1;border-radius:50%;background:white;color:#123652;margin:0 0 -45px auto}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-adventure-hero{padding-top:40px!important}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-hunt-rail:not(.is-open){visibility:hidden!important;opacity:0!important;pointer-events:none!important}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-adventure-peek{display:flex;align-items:center;gap:10px;position:absolute;z-index:760;right:12px;bottom:90px;width:220px;height:auto;min-height:64px;padding:12px;border:1px solid #cad9e3;border-radius:14px;background:white;color:#14344c;text-align:left;box-shadow:0 8px 25px #163d5726}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-adventure-peek>span:not(.jsf-ng-peek-arrow){display:grid;gap:4px;font-size:13px!important;white-space:normal!important}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-adventure-peek small{font-size:11px;font-weight:400}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-peek-arrow{margin-left:auto;font-size:24px!important}
#jsf-niagara-game.jsf-ng-adventure-v302 .jsf-ng-adventure-peek[hidden]{display:none!important}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure.jsf-ng-adventure-v302 .jsf-ng-adventure-peek{display:flex}
body.jsf-gameplay-atlas-page #jsf-niagara-game.jsf-ng-adventure.jsf-ng-adventure-v302 .jsf-ng-adventure-peek[hidden]{display:none!important}
