:root {
      --bg: #fffdf8;
      --surface: rgba(255, 255, 255, 0.88);
      --surface-solid: #ffffff;
      --text: #263238;
      --muted: #667085;
      --purple: #a88cff;
      --purple-dark: #7057cf;
      --gold: #f4c35b;
      --green: #6fd39a;
      --blue: #81cdf8;
      --pink: #f49fd0;
      --border: rgba(112, 87, 207, 0.15);
      --shadow: 0 24px 70px rgba(43, 53, 82, 0.12);
      --soft-shadow: 0 14px 34px rgba(43, 53, 82, 0.08);
      --radius-xl: 30px;
      --radius-lg: 22px;
      --radius-md: 16px;
    }

    * { box-sizing: border-box; }

    body {
      margin: 0;
      min-height: 100vh;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background:
        radial-gradient(circle at 8% 5%, rgba(168, 140, 255, 0.20), transparent 32%),
        radial-gradient(circle at 90% 8%, rgba(129, 205, 248, 0.18), transparent 30%),
        linear-gradient(180deg, #fffaf0 0%, #fbfdff 58%, #fffdf8 100%);
      color: var(--text);
    }

    body::before {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      background-image:
        linear-gradient(rgba(112, 87, 207, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(112, 87, 207, 0.035) 1px, transparent 1px);
      background-size: 46px 46px;
      mask-image: linear-gradient(to bottom, black, transparent 68%);
      z-index: -1;
    }

    header {
      width: min(1240px, calc(100% - 28px));
      margin: 0 auto;
      padding: 34px 0 20px;
    }

    .hero {
      position: relative;
      overflow: hidden;
      border: 1px solid var(--border);
      border-radius: 34px;
      background:
        linear-gradient(135deg, rgba(255,255,255,0.92), rgba(255,255,255,0.72)),
        radial-gradient(circle at 78% 18%, rgba(244,195,91,0.24), transparent 28%),
        radial-gradient(circle at 18% 30%, rgba(168,140,255,0.22), transparent 32%);
      box-shadow: var(--shadow);
      padding: clamp(24px, 5vw, 46px);
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(312px, 368px);
      gap: 24px;
      align-items: center;
      backdrop-filter: blur(16px);
    }

    .hero::after {
      content: "";
      position: absolute;
      width: 360px;
      height: 360px;
      right: -160px;
      bottom: -210px;
      border-radius: 999px;
      border: 1px solid rgba(112,87,207,0.15);
      box-shadow: 0 0 0 34px rgba(168,140,255,0.07), 0 0 0 74px rgba(129,205,248,0.05);
    }

    .brand-row {
      display: flex;
      gap: 14px;
      align-items: center;
      position: relative;
      z-index: 1;
    }

    .logo-wrap {
      width: 62px;
      height: 62px;
      border-radius: 20px;
      background: rgba(255,255,255,0.76);
      border: 1px solid rgba(112,87,207,0.14);
      box-shadow: 0 10px 28px rgba(112,87,207,0.12);
      display: grid;
      place-items: center;
      flex: 0 0 auto;
    }

    .logo-wrap img {
      width: 48px;
      height: 48px;
      object-fit: contain;
      display: block;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 7px 12px;
      border: 1px solid rgba(112,87,207,0.16);
      border-radius: 999px;
      background: rgba(255,255,255,0.82);
      color: var(--purple-dark);
      font-weight: 800;
      font-size: 0.82rem;
      box-shadow: 0 10px 24px rgba(112,87,207,0.07);
    }

    .brand-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
    }

    .whatsapp-share {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 7px 12px;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, 0.62);
      background: #25D366;
      color: #ffffff;
      font-weight: 900;
      font-size: 0.82rem;
      text-decoration: none;
      box-shadow: 0 10px 24px rgba(37, 211, 102, 0.22);
      transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
    }

    .whatsapp-share:hover {
      transform: translateY(-1px);
      background: #1fbd5a;
      box-shadow: 0 14px 28px rgba(37, 211, 102, 0.30);
    }

    .whatsapp-icon {
      width: 15px;
      height: 15px;
      display: block;
      flex: 0 0 auto;
      color: #ffffff;
    }

    h1 {
      margin: 16px 0 10px;
      font-family: 'DM Serif Text', Georgia, serif;
      font-weight: 400;
      font-size: clamp(47px, 8.8vw, 85px);
      letter-spacing: -0.06em;
      line-height: 0.95;
      max-width: 820px;
    }

    .title-accent {
      color: var(--purple-dark);
      font-style: italic;
      font-weight: 400;
    }

    .subtitle {
      margin: 0;
      max-width: 760px;
      color: var(--muted);
      font-size: clamp(1rem, 2vw, 1.18rem);
      line-height: 1.68;
    }

    .live-status-row {
      display: flex;
      flex-wrap: wrap;
      align-items: stretch;
      gap: 10px;
      margin-top: 14px;
      position: relative;
      z-index: 1;
    }

    .inline-live-status {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 9px;
      margin-top: 0;
      padding: 10px 14px;
      border-radius: 999px;
      border: 1px solid rgba(112,87,207,0.12);
      background: rgba(255,255,255,0.70);
      box-shadow: 0 10px 24px rgba(112,87,207,0.07);
      color: var(--purple-dark);
      font-weight: 850;
      position: relative;
      z-index: 1;
    }

    .inline-live-text {
      font-weight: 900;
    }

    .inline-last-updated {
      color: #374151;
      font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
      font-size: 0.86rem;
      font-weight: 800;
      line-height: 1.35;
      overflow-wrap: anywhere;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 16px;
      position: relative;
      z-index: 1;
    }

    .website-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 9px 13px;
      border: 1px solid rgba(112,87,207,0.14);
      border-radius: 999px;
      background: rgba(255,255,255,0.76);
      color: var(--purple-dark);
      font-weight: 850;
      font-size: 0.92rem;
      text-decoration: none;
      box-shadow: 0 10px 24px rgba(112,87,207,0.08);
      transition: transform 0.18s ease, box-shadow 0.18s ease;
    }

    .website-link:hover {
      transform: translateY(-1px);
      box-shadow: 0 14px 28px rgba(112,87,207,0.14);
    }

    .language-select-wrap {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 0;
      border-radius: 999px;
      background: rgba(255,255,255,0.76);
      box-shadow: 0 10px 24px rgba(112,87,207,0.08);
    }

    .language-select {
      width: auto;
      min-width: 190px;
      border-radius: 999px;
      padding: 9px 46px 9px 13px;
      border: 1px solid rgba(112,87,207,0.14);
      color: var(--purple-dark);
      font-weight: 850;
      font-size: 0.92rem;
      cursor: pointer;
    }

    .language-select:focus {
      border-color: rgba(112, 87, 207, 0.55);
      box-shadow: 0 0 0 4px rgba(168, 140, 255, 0.15);
    }

    .submit-link {
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 18% 25%, rgba(255,255,255,0.35), transparent 40%),
        linear-gradient(135deg, #f4c35b 0%, #e8a93d 55%, #d99027 100%);
      color: #3a2604;
      border: 1px solid rgba(217,144,39,0.65);
      box-shadow:
        0 12px 28px rgba(217,144,39,0.35),
        0 0 18px rgba(244,195,91,0.45);
      text-shadow: 0 1px 0 rgba(255,255,255,0.35);
    }

    .submit-link::after {
      content: "";
      position: absolute;
      top: -60%;
      left: -70%;
      width: 55%;
      height: 220%;
      transform: rotate(22deg);
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.45), transparent);
      animation: voicesShimmer 3.6s ease-in-out 1.8s infinite;
      pointer-events: none;
    }

    .submit-link:hover {
      box-shadow:
        0 16px 34px rgba(217,144,39,0.45),
        0 0 28px rgba(244,195,91,0.6);
    }

    .submit-link .write-icon {
      color: #3a2604;
      font-size: 1.08em;
      line-height: 1;
      transform: translateY(-1px);
      display: inline-block;
    }

    /* Wall of Voices — night-sky button that stands out in light AND dark mode */
    .voices-link {
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 82% 20%, rgba(244,195,91,0.28), transparent 42%),
        linear-gradient(135deg, #1b1440 0%, #2d1f6b 55%, #17123a 100%);
      color: #f4c35b;
      border: 1px solid rgba(244,195,91,0.55);
      box-shadow:
        0 12px 28px rgba(27,20,64,0.35),
        0 0 18px rgba(244,195,91,0.28),
        inset 0 0 22px rgba(139,114,232,0.25);
      text-shadow: 0 0 12px rgba(244,195,91,0.45);
    }

    .voices-link::after {
      content: "";
      position: absolute;
      top: -60%;
      left: -70%;
      width: 55%;
      height: 220%;
      transform: rotate(22deg);
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.20), transparent);
      animation: voicesShimmer 3.6s ease-in-out infinite;
      pointer-events: none;
    }

    @keyframes voicesShimmer {
      0%, 55%, 100% { left: -70%; }
      25% { left: 130%; }
    }

    .voices-link:hover {
      box-shadow:
        0 16px 34px rgba(27,20,64,0.45),
        0 0 28px rgba(244,195,91,0.5),
        inset 0 0 26px rgba(139,114,232,0.35);
    }

    .voices-link .voices-star {
      color: #ffe9b3;
      font-size: 1.05em;
      line-height: 1;
      animation: voicesTwinkle 2.2s ease-in-out infinite;
      display: inline-block;
    }

    @keyframes voicesTwinkle {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.55; transform: scale(0.82); }
    }

    @media (prefers-reduced-motion: reduce) {
      .voices-link::after, .voices-link .voices-star, .submit-link::after { animation: none; }
    }



    .globe-link {
      background: #3f7bd9;
      color: #ffffff;
      border-color: rgba(63,123,217,0.18);
      box-shadow: 0 12px 28px rgba(63,123,217,0.20);
    }

    .globe-link:hover {
      box-shadow: 0 15px 32px rgba(63,123,217,0.28);
    }

    .earth-link {
      background: #17a86b;
      color: #ffffff;
      border-color: rgba(23,168,107,0.18);
      box-shadow: 0 12px 28px rgba(23,168,107,0.20);
    }

    .earth-link:hover {
      box-shadow: 0 15px 32px rgba(23,168,107,0.28);
    }

    .testimonial-link {
      background: #cb5340;
      color: #ffffff;
      border-color: rgba(203,83,64,0.18);
      box-shadow: 0 12px 28px rgba(203,83,64,0.20);
    }

    .testimonial-link:hover {
      background: #b94736;
      box-shadow: 0 15px 32px rgba(203,83,64,0.28);
    }

    .hero-side {
      position: relative;
      z-index: 1;
      justify-self: end;
      display: grid;
      gap: 0;
      width: 100%;
      min-width: 312px;
      max-width: 368px;
    }

    .pulse-row {
      display: flex;
      align-items: center;
      gap: 10px;
      color: var(--purple-dark);
      font-weight: 850;
    }

    .pulse-dot {
      width: 12px;
      height: 12px;
      border-radius: 999px;
      background: var(--green);
      box-shadow: 0 0 0 0 rgba(111,211,154,0.48);
      animation: dotPulse 1.8s ease-out infinite;
    }

    @keyframes dotPulse {
      0% { box-shadow: 0 0 0 0 rgba(111,211,154,0.48); }
      100% { box-shadow: 0 0 0 16px rgba(111,211,154,0); }
    }

    .last-updated {
      color: #374151;
      font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
      font-size: 0.88rem;
      font-weight: 800;
      line-height: 1.45;
      letter-spacing: -0.02em;
      overflow-wrap: anywhere;
    }

    .live-links-box {
      display: grid;
      gap: 10px;
      width: 100%;
      padding: 14px;
      border-radius: 26px;
      border: 1px solid rgba(112,87,207,0.14);
      background: rgba(255,255,255,0.76);
      box-shadow: var(--soft-shadow);
    }

    .live-links-box .hero-actions {
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
      margin: 0;
      width: 100%;
    }

    .live-links-box .website-link,
    .live-links-box .language-select-wrap {
      width: 100%;
      justify-content: center;
      min-height: 50px;
      border-radius: 18px;
    }

    .live-links-box .language-select {
      width: 100%;
      min-width: 0;
      min-height: 50px;
      text-align: center;
      text-align-last: center;
      border-radius: 18px;
    }

    /* Light mode: calmer quick-links — no heavy drop shadows */
    .live-links-box {
      box-shadow: none;
    }

    .live-links-box .website-link {
      box-shadow: none;
    }

    .live-links-box .submit-link {
      box-shadow: 0 0 14px rgba(244,195,91,0.28);
    }

    .live-links-box .voices-link {
      box-shadow:
        0 0 14px rgba(244,195,91,0.20),
        inset 0 0 22px rgba(139,114,232,0.25);
    }

    .live-links-box .submit-link:hover {
      box-shadow: 0 0 22px rgba(244,195,91,0.45);
    }

    .live-links-box .voices-link:hover {
      box-shadow:
        0 0 22px rgba(244,195,91,0.40),
        inset 0 0 26px rgba(139,114,232,0.35);
    }

    .testimonial-panel {
      width: 100%;
      margin: 16px 0 0;
      padding: clamp(18px, 3vw, 26px) clamp(20px, 4vw, 34px);
      border-radius: 28px;
      border: 1px solid rgba(255,255,255,0.24);
      background:
        radial-gradient(circle at 8% 18%, rgba(255,255,255,0.16), transparent 30%),
        linear-gradient(135deg, #7057cf, #8b72e8);
      color: #ffffff;
      box-shadow: 0 18px 42px rgba(112,87,207,0.24);
      position: relative;
      overflow: hidden;
    }

    .testimonial-panel::after {
      content: "";
      position: absolute;
      right: -84px;
      bottom: -110px;
      width: 260px;
      height: 260px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,0.20);
      box-shadow: 0 0 0 34px rgba(255,255,255,0.06), 0 0 0 72px rgba(255,255,255,0.035);
      pointer-events: none;
    }

    .testimonial-label {
      position: relative;
      z-index: 1;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 7px;
      color: rgba(255,255,255,0.86);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-size: 0.68rem;
      font-style: normal;
      font-weight: 900;
      letter-spacing: 0.09em;
      text-transform: uppercase;
    }

    .testimonial-label::before {
      content: "";
      width: 7px;
      height: 7px;
      border-radius: 999px;
      background: #ffffff;
      box-shadow: 0 0 0 4px rgba(255,255,255,0.16);
    }

    .testimonial-quote {
      position: relative;
      z-index: 1;
      font-family: 'DM Serif Text', Georgia, serif;
      font-style: italic;
      font-weight: 400;
      font-size: clamp(1.28rem, 2.35vw, 1.9rem);
      line-height: 1.32;
      color: #ffffff;
      width: 100%;
      max-width: none;
      padding-right: clamp(0px, 5vw, 92px);
      opacity: 1;
      transition: opacity 0.55s ease;
    }

    .testimonial-panel.is-fading .testimonial-quote,
    .testimonial-panel.is-fading .testimonial-person {
      opacity: 0;
    }

    .testimonial-quote::before {
      content: "“";
    }

    .testimonial-quote::after {
      content: "”";
    }

    .testimonial-person {
      position: relative;
      z-index: 1;
      margin-top: 12px;
      margin-left: auto;
      color: rgba(255,255,255,0.86);
      font-size: 0.86rem;
      font-weight: 850;
      line-height: 1.35;
      text-align: right;
      width: fit-content;
      max-width: 100%;
      padding-right: clamp(0px, 5vw, 92px);
      opacity: 1;
      transition: opacity 0.55s ease;
    }

    .testimonial-person::before {
      content: "— ";
    }

    .testimonial-person:empty {
      display: none;
    }

    main {
      width: min(1240px, calc(100% - 28px));
      margin: 0 auto 48px;
    }

    .cards {
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      gap: 14px;
      margin: 18px 0 14px;
    }

    .card {
      position: relative;
      overflow: hidden;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 24px;
      padding: 18px;
      box-shadow: var(--soft-shadow);
      backdrop-filter: blur(14px);
    }

    .card::after {
      content: "";
      position: absolute;
      right: -28px;
      top: -34px;
      width: 92px;
      height: 92px;
      border-radius: 999px;
      background: rgba(168,140,255,0.10);
    }

    .card .label {
      color: var(--muted);
      font-size: 0.78rem;
      font-weight: 850;
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }

    .card .value {
      margin-top: 8px;
      font-size: clamp(1.25rem, 2.4vw, 2.05rem);
      font-weight: 900;
      letter-spacing: -0.045em;
      position: relative;
      z-index: 1;
      line-height: 1.12;
    }

    .card .stat-text {
      font-size: clamp(1.02rem, 1.6vw, 1.42rem);
      letter-spacing: -0.035em;
      overflow-wrap: anywhere;
    }

    .toolbar {
      display: grid;
      grid-template-columns: minmax(220px, 1.2fr) minmax(150px, 1fr) minmax(145px, 1fr) minmax(155px, 1fr) minmax(170px, 1fr) auto;
      gap: 10px;
      align-items: center;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 24px;
      padding: 12px;
      box-shadow: var(--soft-shadow);
      margin-bottom: 14px;
      backdrop-filter: blur(14px);
    }

    .filter-group {
      display: grid;
      gap: 5px;
    }

    .filter-group label {
      color: var(--muted);
      font-size: 0.72rem;
      font-weight: 850;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      padding-left: 4px;
    }

    input, select, button {
      width: 100%;
      border: 1px solid rgba(112, 87, 207, 0.19);
      border-radius: 16px;
      padding: 12px 13px;
      font: inherit;
      background: #fff;
      color: var(--text);
      outline: none;
    }

    select {
      appearance: none;
      -webkit-appearance: none;
      padding-right: 42px;
      background-color: #fff;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%237057cf' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
      background-size: 18px 18px;
    }

    input:focus, select:focus {
      border-color: rgba(112, 87, 207, 0.55);
      box-shadow: 0 0 0 4px rgba(168, 140, 255, 0.15);
    }

    button {
      cursor: pointer;
      background: #d9ccff;
      border: none;
      font-weight: 900;
      color: #4b3b86;
      white-space: nowrap;
      transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
    }

    button:hover {
      transform: translateY(-1px);
      background: #cbbaff;
      box-shadow: 0 12px 25px rgba(112,87,207,0.16);
    }

    #resetBtn {
      background: var(--purple-dark);
      color: #ffffff;
      box-shadow: 0 12px 28px rgba(112,87,207,0.18);
    }

    #resetBtn:hover {
      background: #5f49bd;
      box-shadow: 0 14px 30px rgba(112,87,207,0.24);
    }

    .map-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 350px;
      gap: 14px;
      align-items: stretch;
    }

    .map-shell, .activity, .not-plotted {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-xl);
      box-shadow: var(--shadow);
      overflow: hidden;
      backdrop-filter: blur(14px);
    }

    .map-shell { position: relative; }

    #map {
      height: 640px;
      width: 100%;
      background: #f8fbff;
      z-index: 1;
    }

    .pvh-map-reset-control .pvh-map-reset-button {
      display: grid;
      width: 30px;
      height: 30px;
      min-height: 0;
      padding: 0;
      place-items: center;
      border: 0;
      border-radius: 2px;
      color: #333;
      background: #fff;
      box-shadow: none;
      font: 700 21px/1 system-ui, sans-serif;
      cursor: pointer;
    }

    .pvh-map-reset-control .pvh-map-reset-button:hover,
    .pvh-map-reset-control .pvh-map-reset-button:focus-visible {
      color: #000;
      background: #f4f4f4;
      box-shadow: none;
      transform: none;
    }

    .map-topper {
      position: absolute;
      top: 14px;
      left: 14px;
      z-index: 500;
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      max-width: calc(100% - 28px);
    }

    .map-chip {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 8px 11px;
      border: 1px solid rgba(112,87,207,0.12);
      border-radius: 999px;
      background: rgba(255,255,255,0.88);
      box-shadow: 0 10px 25px rgba(43,53,82,0.08);
      color: var(--muted);
      font-size: 0.82rem;
      font-weight: 800;
      backdrop-filter: blur(10px);
    }

    .status {
      padding: 12px 16px;
      color: var(--muted);
      font-size: 0.92rem;
      border-top: 1px solid rgba(112, 87, 207, 0.10);
      background: rgba(255,255,255,0.86);
    }

    .full-map-note {
      padding: 0 16px 14px;
      color: var(--muted);
      background: rgba(255,255,255,0.86);
      font-size: 0.82rem;
      line-height: 1.45;
      text-align: left;
    }

    .full-map-note a {
      color: var(--purple-dark);
      font-weight: 850;
      text-underline-offset: 2px;
    }

    .activity {
      padding: 18px;
      min-height: 640px;
    }

    .activity h2 {
      margin: 0 0 4px;
      font-size: 1.26rem;
      letter-spacing: -0.035em;
    }

    .activity p {
      margin: 0 0 14px;
      color: var(--muted);
      line-height: 1.5;
      font-size: 0.92rem;
    }

    .legend {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      margin: 0 0 14px;
    }

    .legend-item {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 9px;
      border-radius: 999px;
      border: 1px solid rgba(112,87,207,0.10);
      background: rgba(255,255,255,0.72);
      color: var(--muted);
      font-size: 0.76rem;
      font-weight: 780;
    }

    .legend-dot {
      width: 9px;
      height: 9px;
      border-radius: 999px;
      flex: 0 0 auto;
      background: var(--purple);
    }

    .activity-list {
      display: grid;
      gap: 10px;
      max-height: 510px;
      overflow: auto;
      padding-right: 4px;
    }

    .activity-list::-webkit-scrollbar { width: 8px; }
    .activity-list::-webkit-scrollbar-thumb { background: rgba(112,87,207,0.16); border-radius: 999px; }

    .activity-item {
      border: 1px solid rgba(112, 87, 207, 0.12);
      border-radius: 19px;
      padding: 12px;
      background: rgba(255,255,255,0.90);
      transition: transform 0.15s ease, border-color 0.15s ease;
    }

    .activity-item:hover { transform: translateY(-1px); border-color: rgba(112,87,207,0.25); }

    .activity-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 7px;
    }

    .pill {
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      padding: 5px 9px;
      background: rgba(168, 140, 255, 0.16);
      color: var(--purple-dark);
      font-size: 0.74rem;
      font-weight: 850;
      white-space: nowrap;
    }

    .pill.type-pill {
      background: var(--pin-color, var(--purple-dark));
      color: #ffffff !important;
      font-weight: 950;
      text-shadow: none;
      box-shadow: none !important;
    }

    .activity-place {
      font-weight: 900;
      display: flex;
      align-items: center;
      gap: 7px;
      line-height: 1.35;
    }

    .flag-icon {
      width: 22px;
      height: 16px;
      border-radius: 3px;
      object-fit: cover;
      flex: 0 0 auto;
      box-shadow: 0 2px 5px rgba(43,53,82,0.13);
    }

    .stat-text .flag-icon {
      width: 24px;
      height: 18px;
      margin-right: 7px;
      vertical-align: -2px;
    }

    .map-gesture-hint {
      display: flex;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      z-index: 700;
      width: max-content;
      max-width: calc(100% - 44px);
      min-height: 54px;
      align-items: center;
      justify-content: center;
      padding: 14px 20px;
      border-radius: 12px;
      background: rgba(34, 39, 46, 0.72);
      color: #ffffff;
      font-weight: 850;
      font-size: clamp(1rem, 4vw, 1.35rem);
      line-height: 1.25;
      box-shadow: 0 18px 50px rgba(0,0,0,0.22);
      pointer-events: none;
      text-align: center;
      opacity: 1;
      transition: opacity 0.22s ease;
    }

    .map-gesture-hint.is-hidden {
      opacity: 0;
      visibility: hidden;
    }
    /* Leaflet Gesture Handling plugin message: Google Maps-style mobile hint */
    .leaflet-gesture-handling-touch-warning,
    .leaflet-gesture-handling-scroll-warning {
      background: rgba(34, 39, 46, 0.76) !important;
      color: #ffffff !important;
      border-radius: 12px !important;
      padding: 14px 20px !important;
      font-weight: 850 !important;
      box-shadow: 0 18px 50px rgba(0,0,0,0.22) !important;
    }


    .activity-type { color: var(--muted); font-size: 0.9rem; margin-top: 2px; }
    .activity-cleaned { color: #8a6a00; font-size: 0.78rem; margin-top: 6px; }

    .not-plotted {
      display: none !important;
    }

    .not-plotted h3 { margin: 0 0 8px; }
    .not-plotted p { margin: 0 0 10px; color: #7a6221; }
    .not-plotted ul { margin: 0; padding-left: 20px; }

    .ripple-marker {
      position: relative;
      width: 24px;
      height: 24px;
      border-radius: 999px;
      background: var(--purple);
      border: 3px solid #fff;
      box-shadow: 0 8px 24px rgba(112, 87, 207, 0.30), inset 0 0 0 3px rgba(255,255,255,0.28);
    }

    .ripple-marker::before,
    .ripple-marker::after {
      content: "";
      position: absolute;
      left: 50%;
      top: 50%;
      width: 100%;
      height: 100%;
      transform: translate(-50%, -50%) scale(1);
      border-radius: 999px;
      border: 2px solid currentColor;
      opacity: 0.56;
      animation: none;
    }

    .ripple-marker::after { animation-delay: 2.4s; }

    @keyframes pvhRipple {
      0% { transform: translate(-50%, -50%) scale(1); opacity: 0.50; }
      100% { transform: translate(-50%, -50%) scale(4.9); opacity: 0; }
    }


    .borobudur-marker {
      position: relative;
      width: 34px;
      height: 34px;
      border-radius: 999px;
      background: radial-gradient(circle at 35% 30%, #fff8d9 0%, #f4c35b 38%, #7057cf 100%);
      border: 4px solid #ffffff;
      box-shadow: 0 10px 30px rgba(112, 87, 207, 0.34), 0 0 0 8px rgba(244, 195, 91, 0.18);
    }

    .borobudur-marker::before {
      content: "";
      position: absolute;
      inset: -8px;
      border-radius: 999px;
      border: 1.5px solid rgba(244, 195, 91, 0.48);
      animation: borobudurGentleRipple 3.8s ease-out infinite;
      will-change: transform, opacity;
    }

    .borobudur-marker::after {
      content: "✦";
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -54%);
      color: #ffffff;
      font-size: 17px;
      font-weight: 900;
      text-shadow: 0 2px 8px rgba(61, 49, 90, 0.40);
    }

    @keyframes borobudurGentleRipple {
      0%, 20% { transform: scale(0.86); opacity: 0.42; }
      78%, 100% { transform: scale(1.42); opacity: 0; }
    }

    html.pvh-native-android-performance .borobudur-marker::before {
      animation: none !important;
      opacity: 0.32;
      transform: scale(1.04);
      will-change: auto;
    }


    .leaflet-popup-content-wrapper {
      border-radius: 18px;
      box-shadow: 0 14px 34px rgba(31, 41, 55, 0.18);
    }

    .leaflet-popup-content { margin: 14px 15px; }
    .popup-title { font-weight: 950; font-size: 1rem; margin-bottom: 6px; }
    .popup-meta { color: #667085; margin-bottom: 8px; }
    .popup-list { margin: 6px 0 0; padding-left: 18px; }

    .marker-cluster-small, .marker-cluster-medium, .marker-cluster-large {
      background-color: rgba(168, 140, 255, 0.25);
    }

    .marker-cluster-small div, .marker-cluster-medium div, .marker-cluster-large div {
      background: linear-gradient(135deg, rgba(168,140,255,0.86), rgba(244,195,91,0.86));
      color: #3d315a;
      font-weight: 900;
    }


    .site-footer {
      width: min(1240px, calc(100% - 28px));
      margin: 0 auto 34px;
      padding: 18px 20px;
      text-align: center;
      color: var(--muted);
      font-size: 0.92rem;
      line-height: 1.6;
      background: rgba(255,255,255,0.72);
      border: 1px solid var(--border);
      border-radius: 24px;
      box-shadow: var(--soft-shadow);
      backdrop-filter: blur(14px);
    }

    .site-footer strong {
      color: var(--purple-dark);
      font-weight: 900;
    }

    .site-footer a {
      color: var(--purple-dark);
      font-weight: 850;
      text-decoration: none;
    }

    .site-footer a:hover {
      text-decoration: underline;
    }




    @media (prefers-reduced-motion: reduce) {
      .ripple-marker::before,
      .ripple-marker::after,
      .borobudur-marker::before,      .pulse-dot {
        animation: none !important;
      }
    }

    @media (max-width: 980px) {
      .hero { grid-template-columns: 1fr; }
      .hero-side {
        justify-self: stretch;
        width: 100%;
        min-width: 0;
        max-width: none;
      }

      .live-badge {
        width: 100%;
      }
      .cards { grid-template-columns: repeat(3, 1fr); }
      .toolbar { grid-template-columns: 1fr 1fr; }
      .toolbar button { grid-column: span 2; }
      .map-grid { grid-template-columns: 1fr; }
      #map { height: 560px; }
      .activity { min-height: auto; }
      .activity-list { max-height: 420px; }
    }

    @media (max-width: 620px) {
      header { padding-top: 18px; }
      .hero { padding: 20px; border-radius: 26px; }
      .hero-side {
        width: 100%;
        min-width: 0;
        max-width: none;
        justify-self: stretch;
      }

      .live-badge {
        width: 100%;
        padding: 14px 16px;
        gap: 8px;
      }

      .testimonial-panel {
        width: 100%;
        margin-top: 12px;
        padding: 17px 16px;
        border-radius: 22px;
      }

      .testimonial-label {
        font-size: 0.64rem;
        margin-bottom: 6px;
      }

      .testimonial-quote {
        font-size: clamp(1.2rem, 5.8vw, 1.42rem);
        line-height: 1.24;
        padding-right: 0;
      }

      .testimonial-person {
        width: 100%;
        padding-right: 0;
        text-align: right;
      }
      .hero-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        width: 100%;
        margin-top: 18px;
      }
      .live-status-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
      }

      .live-status-row .language-select-wrap {
        width: 100%;
        border-radius: 22px;
      }

      .live-status-row .language-select {
        width: 100%;
        min-height: 54px;
        text-align: center;
        text-align-last: center;
        border-radius: 22px;
      }

      .inline-live-status {
        width: 100%;
        justify-content: flex-start;
        border-radius: 22px;
        padding: 12px 14px;
      }

      .inline-last-updated {
        width: 100%;
      }


      .hero-actions .website-link,
      .hero-actions .language-select-wrap {
        width: 100%;
        max-width: none;
        justify-content: center;
        min-height: 58px;
        padding: 13px 16px;
        border-radius: 22px;
        font-size: 1rem;
      }
      .hero-actions .language-select-wrap {
        padding: 0;
      }
      .language-select {
        width: 100%;
        min-width: 0;
        min-height: 58px;
        padding: 13px 50px 13px 16px;
        border-radius: 22px;
        text-align: center;
        text-align-last: center;
        font-size: 1rem;
      }
      .brand-row { align-items: flex-start; }
      h1 { font-size: clamp(56px, 10.6vw, 102px); }
      .logo-wrap { width: 68px; height: 68px; border-radius: 22px; }
      .logo-wrap img { width: 54px; height: 54px; }
      .cards { grid-template-columns: repeat(2, 1fr); }
      .toolbar { grid-template-columns: 1fr; }
      .toolbar button { grid-column: auto; }
      #map { height: 500px; }
      #map { touch-action: auto; }
      .map-topper {
        position: static;
        width: 100%;
        max-width: none;
        padding: 10px 10px 0;
        background: rgba(255,255,255,0.70);
      }
    }

    @media (max-width: 980px) {
      .map-shell.is-two-finger-moving #map { touch-action: none; }
    }


    /* Mobile performance mode: reduce continuous animations and costly blur effects */
    @media (max-width: 620px) {
      .ripple-marker::before,
      .ripple-marker::after {
        animation: none !important;
      }

      .hero,
      .card,
      .toolbar,
      .map-shell,
      .activity,
      .site-footer,
      .map-chip,
      .website-link,
      .language-select-wrap,
      .live-badge,
      .live-links-box {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
      }

      #map {
        height: 420px;
      }
    }

    /* Tablet performance mode: reduce map/render load on iPad and mid-size screens */
    @media (min-width: 621px) and (max-width: 980px) {

      .testimonial-quote {
        font-size: clamp(1.14rem, 2.25vw, 1.36rem);
        line-height: 1.28;
      }
      .ripple-marker::before,
      .ripple-marker::after {
        animation: none !important;
      }

      .hero,
      .card,
      .toolbar,
      .map-shell,
      .activity,
      .site-footer,
      .map-chip,
      .website-link,
      .language-select-wrap,
      .live-badge,
      .live-links-box {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
      }

      #map {
        height: 500px;
      }
    }


    /* Dark mode toggle */
    body.dark-mode {
      --bg: #070817;
      --surface: rgba(18, 20, 38, 0.86);
      --surface-solid: #14172a;
      --text: #f4f3ff;
      --muted: #b6bdd6;
      --purple: #b9a5ff;
      --purple-dark: #d8ceff;
      --gold: #ffd36f;
      --green: #81e6a7;
      --blue: #8ed6ff;
      --pink: #ffadd8;
      --border: rgba(216, 206, 255, 0.18);
      --shadow: 0 24px 70px rgba(0, 0, 0, 0.38);
      --soft-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
      background:
        radial-gradient(circle at 8% 5%, rgba(168, 140, 255, 0.24), transparent 32%),
        radial-gradient(circle at 90% 8%, rgba(129, 205, 248, 0.16), transparent 30%),
        linear-gradient(180deg, #080817 0%, #10132a 58%, #070817 100%);
    }

    body.dark-mode::before {
      background-image:
        linear-gradient(rgba(216, 206, 255, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(216, 206, 255, 0.055) 1px, transparent 1px);
    }

    .theme-toggle-wrap {
      width: min(1240px, calc(100% - 28px));
      margin: 14px auto -14px;
      display: flex;
      justify-content: flex-end;
      position: relative;
      z-index: 20;
    }

    .theme-toggle {
      width: auto;
      display: inline-flex;
      align-items: center;
      gap: 9px;
      border: 1px solid var(--border);
      border-radius: 999px;
      padding: 8px 11px 8px 12px;
      background: var(--surface);
      color: var(--purple-dark);
      box-shadow: var(--soft-shadow);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      cursor: pointer;
      user-select: none;
    }

    .theme-toggle input {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }

    .theme-toggle-label {
      font-size: 0.82rem;
      font-weight: 900;
      white-space: nowrap;
    }

    .theme-toggle-track {
      width: 46px;
      height: 26px;
      border-radius: 999px;
      padding: 3px;
      background: rgba(112, 87, 207, 0.18);
      border: 1px solid rgba(112, 87, 207, 0.14);
      transition: background 0.2s ease, border-color 0.2s ease;
    }

    .theme-toggle-thumb {
      width: 18px;
      height: 18px;
      border-radius: 999px;
      display: block;
      background: #ffffff;
      box-shadow: 0 4px 12px rgba(43, 53, 82, 0.18);
      transform: translateX(0);
      transition: transform 0.2s ease, background 0.2s ease;
    }

    .theme-toggle input:checked + .theme-toggle-track {
      background: linear-gradient(135deg, #7057cf, #243053);
      border-color: rgba(216, 206, 255, 0.24);
    }

    .theme-toggle input:checked + .theme-toggle-track .theme-toggle-thumb {
      transform: translateX(20px);
      background: #ffd36f;
    }

    body.dark-mode .hero,
    body.dark-mode .card,
    body.dark-mode .toolbar,
    body.dark-mode .map-shell,
    body.dark-mode .activity,
    body.dark-mode .site-footer,
    body.dark-mode .live-links-box,
    body.dark-mode .eyebrow,
    body.dark-mode .language-select-wrap,
    body.dark-mode .website-link,
    body.dark-mode .inline-live-status,
    body.dark-mode .map-chip,
    body.dark-mode .legend-item,
    body.dark-mode .activity-item,
    body.dark-mode .status,
    body.dark-mode .full-map-note {
      background: var(--surface);
      border-color: var(--border);
      color: var(--text);
    }

    body.dark-mode .full-map-note a {
      color: #d9ccff;
    }

    body.dark-mode .hero {
      background:
        linear-gradient(135deg, rgba(18, 20, 38, 0.94), rgba(26, 29, 52, 0.82)),
        radial-gradient(circle at 78% 18%, rgba(244,195,91,0.14), transparent 28%),
        radial-gradient(circle at 18% 30%, rgba(168,140,255,0.20), transparent 32%);
    }

    body.dark-mode .testimonial-panel {
      background:
        radial-gradient(circle at 8% 18%, rgba(255,255,255,0.12), transparent 30%),
        linear-gradient(135deg, #34245f, #5f49bd);
      box-shadow: 0 18px 42px rgba(0,0,0,0.28);
    }

    body.dark-mode input,
    body.dark-mode select,
    body.dark-mode .language-select {
      background-color: #15182d;
      color: var(--text);
      border-color: rgba(216, 206, 255, 0.20);
    }

    body.dark-mode select,
    body.dark-mode .language-select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23d8ceff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    }

    body.dark-mode input::placeholder { color: #8d96bb; }

    body.dark-mode .inline-last-updated,
    body.dark-mode .last-updated,
    body.dark-mode .popup-meta {
      color: #c5cbe4;
    }

    body.dark-mode #map {
      background: #07141b;
    }

    body.dark-mode .leaflet-tile-pane {
      filter: brightness(0.72) contrast(1.08) saturate(1.16);
    }

        /* Dark mode: main page boxes get the Wall of Voices halo — light border + soft glow */
    body.dark-mode .hero,
    body.dark-mode .card,
    body.dark-mode .toolbar,
    body.dark-mode .map-shell,
    body.dark-mode .activity,
    body.dark-mode .site-footer,
    body.dark-mode .testimonial-panel {
      border-color: rgba(139,114,232,0.24);
      box-shadow: 0 0 26px rgba(139,114,232,0.09);
    }

    body.dark-mode .card:hover {
      border-color: rgba(139,114,232,0.40);
      box-shadow: 0 0 32px rgba(139,114,232,0.14);
    }

    /* Dark mode: quick-links get the Wall of Voices card treatment — light border + soft glow */
    body.dark-mode .live-links-box {
      border-color: rgba(139,114,232,0.26);
      box-shadow: 0 0 38px rgba(139,114,232,0.12);
    }

    body.dark-mode .live-links-box .website-link:not(.submit-link):not(.voices-link) {
      border-color: rgba(139,114,232,0.32);
      box-shadow: 0 0 18px rgba(139,114,232,0.13);
    }

    body.dark-mode .live-links-box .website-link:not(.submit-link):not(.voices-link):hover {
      border-color: rgba(139,114,232,0.48);
      box-shadow: 0 0 24px rgba(139,114,232,0.20);
    }

    body.dark-mode .submit-link {
      background:
        radial-gradient(circle at 18% 25%, rgba(255,255,255,0.30), transparent 40%),
        linear-gradient(135deg, #f4c35b 0%, #e8a93d 55%, #d99027 100%);
      color: #3a2604;
      border-color: rgba(244,195,91,0.75);
      box-shadow:
        0 12px 28px rgba(0,0,0,0.45),
        0 0 24px rgba(244,195,91,0.5);
    }

    body.dark-mode .voices-link {
      background:
        radial-gradient(circle at 82% 20%, rgba(244,195,91,0.30), transparent 42%),
        linear-gradient(135deg, #241a54 0%, #3b2a85 55%, #1d1747 100%);
      color: #f4c35b;
      border-color: rgba(244,195,91,0.65);
      box-shadow:
        0 12px 28px rgba(0,0,0,0.45),
        0 0 24px rgba(244,195,91,0.38),
        inset 0 0 22px rgba(139,114,232,0.30);
    }

body.dark-mode .title-accent {
      color: #7057cf;
    }

    body.dark-mode #resetBtn {
      background: #7057cf;
      color: #ffffff;
      box-shadow: 0 12px 28px rgba(112,87,207,0.24);
    }

    body.dark-mode #resetBtn:hover {
      background: #5f49bd;
      box-shadow: 0 14px 30px rgba(112,87,207,0.30);
    }


    body.dark-mode .whatsapp-share,
    body.dark-mode .whatsapp-share:hover {
      box-shadow: none;
    }

    body.dark-mode .logo-wrap {
      background: #ffffff !important;
      border-color: rgba(255,255,255,0.88) !important;
      box-shadow: 0 12px 30px rgba(0,0,0,0.24) !important;
    }

    body.dark-mode .ripple-marker {
      border-color: #ffffff;
      filter: saturate(1.35) brightness(1.12);
      box-shadow: 0 10px 28px rgba(0,0,0,0.34), 0 0 0 7px rgba(255,255,255,0.10), inset 0 0 0 3px rgba(255,255,255,0.34);
    }

    body.dark-mode .leaflet-popup-content-wrapper,
    body.dark-mode .leaflet-popup-tip {
      background: #15182d;
      color: var(--text);
    }

    body.dark-mode .marker-cluster-small div,
    body.dark-mode .marker-cluster-medium div,
    body.dark-mode .marker-cluster-large div {
      color: #ffffff;
      text-shadow: 0 1px 2px rgba(0,0,0,0.22);
    }


    @media (max-width: 620px) {
      body.dark-mode .map-topper {
        width: 100%;
        max-width: none;
        background: rgba(25, 27, 43, 0.96);
      }
    }

    @media (max-width: 620px) {
      .theme-toggle-wrap {
        margin: 10px auto -8px;
        justify-content: center;
      }

      .theme-toggle {
        width: 100%;
        justify-content: space-between;
      }
    }
