.qcode-map-shell {
  position: relative;
}

/* ---------------------------------------------------------
   PIN ICON
--------------------------------------------------------- */

.qcode-map-pin-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(95%, -50%);
  z-index: 4;

  font-size: 16px;
  line-height: 1;

  filter: drop-shadow(0 2px 6px rgba(0,0,0,.45));

  pointer-events: none;
}

/* ---------------------------------------------------------
   PIN UX
--------------------------------------------------------- */

.qcode-map-pin {
  touch-action: manipulation;
}

/* ---------------------------------------------------------
   TOOLTIP
--------------------------------------------------------- */

.qcode-map-tooltip {
  position: absolute;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%) translateY(6px);

  width: 240px;
  max-width: 240px;
  box-sizing: border-box;

  padding: 12px 14px;
  border-radius: 10px !important;

  background: rgba(10, 12, 18, 0.94);
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 16px 38px rgba(0,0,0,0.38);

  color: #fff;
  font-family: inherit;
  text-align: left;

  opacity: 0;
  pointer-events: none;

  transition: opacity .18s ease, transform .18s ease;
  z-index: 20;

  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
/* ---------------------------------------------------------
   TOOLTIP OPEN STATES
--------------------------------------------------------- */

.qcode-map-pin:hover .qcode-map-tooltip,
.qcode-map-pin:focus-visible .qcode-map-tooltip,
.qcode-map-pin.is-tooltip-open .qcode-map-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.qcode-map-pin.is-tooltip-open .qcode-map-tooltip {
  pointer-events: auto !important;
}

/* ---------------------------------------------------------
   TOOLTIP TEXT
--------------------------------------------------------- */

.qcode-map-tooltip strong {
  display:block;
  font-size:13px;
  line-height:1.3;
  margin-bottom:4px;
  font-weight:700;

  white-space:normal;
  overflow-wrap:anywhere;
}

.qcode-map-tooltip small {
  display:block;
  font-size:11px;
  line-height:1.4;
  color:rgba(255,255,255,.72);
  margin-bottom:6px;

  white-space:normal;
  overflow-wrap:anywhere;
}

/* ---------------------------------------------------------
   TOOLTIP LINK
--------------------------------------------------------- */

.qcode-map-tooltip a {
  display: inline-block;

  margin-top: 6px;

  position: relative;
  z-index: 90;

  color: rgba(255,255,255,.9);

  font-size: 12px;
  font-weight: 700;

  text-decoration: none;

  pointer-events: auto;
}

.qcode-map-tooltip a:hover {
  text-decoration: underline;
}

/* ---------------------------------------------------------
   SHARE BUTTON
--------------------------------------------------------- */

.qcode-map-share-btn {
  position: absolute;

  right: 16px;
  bottom: 16px;

  z-index: 60;

  padding: 10px 14px;

  border-radius: 999px;

  border: 1px solid rgba(255,255,255,.16);

  background: rgba(10,12,18,.72);

  color: rgba(255,255,255,.82);

  font-family: "Albert Sans", sans-serif !important;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .2px;

  backdrop-filter: blur(10px);

  box-shadow: 0 10px 30px rgba(0,0,0,.28);

  cursor: pointer;

  transition:
    transform .18s ease,
    opacity .18s ease;
}

.qcode-map-share-btn:hover {
  transform: translateY(-1px);
}

/* ---------------------------------------------------------
   PLACE SHARE BUTTON
--------------------------------------------------------- */

.qcode-place-share {
  display: flex;
  justify-content: center;
  margin: 14px 0 18px;
}

.qcode-place-share-btn {
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: #007ffd;
  color: #fff;

  padding: 11px 18px;

  font-family: "Albert Sans", sans-serif !important;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;

  cursor: pointer;

  box-shadow: 0 10px 26px rgba(0, 127, 253, .28);

  transition:
    transform .18s ease,
    background-color .18s ease,
    box-shadow .18s ease,
    opacity .18s ease;
}

.qcode-place-share-btn:hover {
  transform: translateY(-1px);
  background: #0b8cff;
  box-shadow: 0 14px 34px rgba(0, 127, 253, .34);
}

.qcode-place-share-btn:disabled {
  opacity: .62;
  cursor: wait;
  transform: none;
}

/* ---------------------------------------------------------
   SHARECARD MODAL
--------------------------------------------------------- */

.qcode-sharecard-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;

  display: none !important;
  align-items: stretch !important;
  justify-content: center !important;

  padding: 12px;

  background: rgba(2, 5, 11, .94);
  backdrop-filter: blur(8px);

  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.qcode-sharecard-modal.is-open {
  display: flex !important;
}

.qcode-sharecard-dialog {
  position: relative;

  width: min(390px, 100%);
  min-height: 100%;

  margin: 0 auto;
  padding: 44px 0 18px;

  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.qcode-sharecard-preview {
  width: 100%;
  flex: 0 0 auto;
}

.qcode-sharecard-preview img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;

  border-radius: 16px;
  box-shadow: 0 24px 70px rgba(0,0,0,.42);
}

.qcode-sharecard-close {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  right: 12px;
  z-index: 1000000;

  width: 38px;
  height: 38px;

  border: 0;
  border-radius: 999px;

  background: #fff;
  color: #111;

  font-size: 26px;
  line-height: 1;

  cursor: pointer;
}

.qcode-sharecard-actions {
  position: sticky;
  bottom: 0;

  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;

  margin-top: 12px;
  padding: 10px 0 max(12px, env(safe-area-inset-bottom));

  background: linear-gradient(
    to top,
    rgba(2,5,11,.98),
    rgba(2,5,11,.90) 70%,
    rgba(2,5,11,0)
  );
}

.qcode-sharecard-actions button {
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;

  background: rgba(255,255,255,.12);
  color: #fff;

  padding: 10px 13px;

  font-family: "Albert Sans", sans-serif !important;
  font-size: 13px;
  font-weight: 800;

  cursor: pointer;
}

html.qcode-sharecard-is-open,
html.qcode-sharecard-is-open body {
  overflow: hidden;
}
.qcode-map-tooltip-supporter {
    display:block;
    margin-top:4px;
    margin-bottom:6px;
    font-size:12px;
    opacity:.82;
}

.qcode-map-tooltip-supporter .qcode-supporter-heart {
    color:#C9CDD3 !important;
    font-family:Arial, Helvetica, sans-serif !important;
}
.qcode-map-pin.qcode-map-pin-registry.is-place-only {
  width: 9px !important;
  height: 9px !important;
  min-width: 9px !important;
  min-height: 9px !important;
  max-width: 9px !important;
  max-height: 9px !important;
  opacity: .72;
  filter: none !important;
}

.qcode-map-pin.qcode-map-pin-registry.is-place-only::before,
.qcode-map-pin.qcode-map-pin-registry.is-place-only::after {
  width: 9px !important;
  height: 9px !important;
  min-width: 9px !important;
  min-height: 9px !important;
  max-width: 9px !important;
  max-height: 9px !important;
  opacity: .72;
  box-shadow: none !important;
  animation: none !important;
}

.qcode-map-pin.qcode-map-pin-registry.is-place-only .qcode-map-label {
  font-size: 10px !important;
  opacity: .68;
  transform: translateX(-50%) translateY(4px);
}
.qcode-map-pin.qcode-map-pin-registry.is-place-only:hover {
    transform: none;
}
.qcode-sharecard-collected {
  margin: 18px auto 0;
  max-width: 720px;
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(10, 12, 18, 0.86);
  border: 1px solid rgba(255,255,255,0.12);
  color: #fff;
  text-align: left;
  font-family: inherit;
}

.qcode-sharecard-collected-title {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 6px;
}

.qcode-sharecard-collected-code {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255,255,255,0.72);
  margin-bottom: 14px;
}

.qcode-sharecard-archive-box {
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.10);
}

.qcode-sharecard-archive-box strong {
  display: block;
  font-size: 17px;
  line-height: 1.25;
  margin-bottom: 6px;
}

.qcode-sharecard-archive-box span {
  display: block;
  font-size: 14px;
  line-height: 1.45;
  color: rgba(255,255,255,0.70);
  margin-bottom: 14px;
}

.qcode-sharecard-archive-btn {
  appearance: none;
  border: 1px solid rgba(255,255,255,0.22);
  background: rgba(255,255,255,0.08);
  color: #fff;
  border-radius: 999px;
  padding: 11px 16px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.qcode-sharecard-archive-btn:hover {
  background: rgba(255,255,255,0.14);
}

.qcode-sharecard-share {
    background: linear-gradient(
        135deg,
        #007FFD 0%,
        #00B7FF 100%
    ) !important;

    border: 1px solid #007FFD !important;
    color: #ffffff !important;
}

.qcode-sharecard-share:hover {
    background: linear-gradient(
        135deg,
        #1A8FFF 0%,
        #2BC3FF 100%
    ) !important;
}

/* ---------------------------------------------------------
   CAPTURE 
--------------------------------------------------------- */
.qcode-map-pin.is-dimmed{
    opacity:.18 !important;
    filter:grayscale(1) !important;
}

.qcode-map-pin.is-focused{
    opacity:1 !important;
    z-index:999 !important;
}

.qcode-map-pin.is-focused::before{
    background:#60a5fa !important;
    box-shadow:
        0 0 0 7px rgba(96,165,250,.20),
        0 0 32px rgba(96,165,250,.85) !important;
}

.qcode-map-pin.is-focused .qcode-map-label{
    opacity:1 !important;
    color:#fff !important;
}

.qcode-map-pin.is-focused .qcode-map-tooltip{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateX(-50%) translateY(0) !important;
}

.qcode-map-pin.is-capture:not(.is-focused){
    opacity:.18 !important;
    filter:grayscale(1) !important;
}

/* ---------------------------------------------------------
   CAPTURE AUTOPLAY
--------------------------------------------------------- */

.qcode-map-shell.is-autoplay .qcode-map-pin.is-focused{
    opacity:.45 !important;
    transform:scale(1) !important;
}

.qcode-map-shell.is-autoplay .qcode-map-pin.is-focused .qcode-map-tooltip{
    opacity:0 !important;
    visibility:hidden !important;
}

.qcode-map-shell.is-autoplay .qcode-map-pin.is-focused.is-autoplay-current{
    opacity:1 !important;
    z-index:999 !important;
    transform:scale(1.22) !important;
}

.qcode-map-shell.is-autoplay .qcode-map-pin.is-focused.is-autoplay-current::before{
    background:#60a5fa !important;
    box-shadow:
        0 0 0 8px rgba(96,165,250,.20),
        0 0 34px rgba(96,165,250,.90) !important;
}

.qcode-map-shell.is-autoplay .qcode-map-pin.is-focused.is-autoplay-current .qcode-map-tooltip{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateX(-50%) translateY(0) !important;
}
.qcode-map-shell.is-autoplay .qcode-map-pin.is-focused .qcode-map-tooltip,
.qcode-map-shell.is-autoplay .qcode-map-pin.is-focused.is-autoplay-current .qcode-map-tooltip{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
}

/* ---------------------------------------------------------
 * QCODE MAP – Story route line
 * --------------------------------------------------------- */

.qcode-map-route-svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:35;
    pointer-events:none;
    overflow:visible;
}

.qcode-map-route-path{
    fill:none;

    stroke:rgba(120,210,255,.30);
    stroke-width:3;

    stroke-linecap:round;
    stroke-linejoin:round;

    opacity:.72;

    filter:
        drop-shadow(0 0 8px rgba(120,210,255,.22))
        drop-shadow(0 0 18px rgba(120,210,255,.10));

    animation:qcodeRoutePulse 3.8s ease-in-out infinite;
}

/* Lassú, elegáns lélegzés */
@keyframes qcodeRoutePulse{
    0%{
        stroke:rgba(120,210,255,.20);
        opacity:.45;
        filter:
            drop-shadow(0 0 4px rgba(120,210,255,.10))
            drop-shadow(0 0 10px rgba(120,210,255,.06));
    }

    50%{
        stroke:rgba(120,210,255,.62);
        opacity:.95;
        filter:
            drop-shadow(0 0 10px rgba(120,210,255,.38))
            drop-shadow(0 0 24px rgba(120,210,255,.18));
    }

    100%{
        stroke:rgba(120,210,255,.20);
        opacity:.45;
        filter:
            drop-shadow(0 0 4px rgba(120,210,255,.10))
            drop-shadow(0 0 10px rgba(120,210,255,.06));
    }
}

/* Pin-ek mindig a route fölött */
.qcode-map-pin.is-focused{
    z-index:80 !important;
}

.qcode-map-pin.is-autoplay-current{
    z-index:100 !important;
}

/* A fókuszpont magja takarja a vonalat */
.qcode-map-pin.is-focused::before{
    position:relative;
    z-index:2;
}