/* Home page — world map + voice section (extracted from index.html for direct-edit support) */

    /* Lighten the homepage hero so the logo reads more clearly */
    .hero[aria-label="Hero"] .hero-bg { filter: brightness(1.02); }
    .hero[aria-label="Hero"] .hero-overlay {
      background:
        radial-gradient(ellipse at 30% 40%, transparent 0%, rgba(20,32,22,0.18) 80%),
        linear-gradient(160deg, rgba(20,32,22,0.05) 0%, rgba(20,32,22,0.14) 45%, rgba(15,24,16,0.42) 100%);
    }
    .hero[aria-label="Hero"] .hero-overlay::after {
      background: radial-gradient(ellipse at center, transparent 68%, rgba(0,0,0,0.22) 100%);
    }

    /* Hero logo (replaces eyebrow wordmark) */
    .hero-content .hero-logo {
      display: block;
      margin: 0 auto 22px;
      height: clamp(150px, 19vw, 240px);
      width: auto;
      filter: drop-shadow(0 3px 22px rgba(0,0,0,0.55));
    }

    /* World-map editorial styling */
    .world-map-wrap {
      position: relative;
      max-width: 1100px;
      margin: 0 auto;
      padding: 32px 0 0;
    }
    .world-map { width: 100%; height: auto; display: block; }
    .world-continents path,
    .map-countries path {
      fill: var(--sage);
      stroke: rgba(45,74,45,0.45);
      stroke-width: 0.6;
      stroke-linejoin: round;
      transition: fill 0.4s ease;
    }
    .map-graticule-line { fill: none; stroke: rgba(45,74,45,0.08); stroke-width: 0.4; }
    .map-grid { stroke: rgba(45,74,45,0.22); stroke-width: 0.7; }
    .map-grid-faint { stroke: rgba(45,74,45,0.08); stroke-width: 0.4; }
    .map-equator { stroke: rgba(200,137,42,0.45); stroke-width: 0.8; }

    .marker-label {
      font-family: var(--font-mono);
      font-size: 8.5px;
      letter-spacing: 0.04em;
      fill: rgba(45,74,45,0.55);
      pointer-events: none;
      transition: fill 0.25s;
    }
    .marker-label-bold { fill: var(--forest-dark); font-weight: 600; font-size: 9px; }
    .map-marker:hover .marker-label,
    .map-marker.active .marker-label { fill: var(--terracotta); }

    .map-marker { cursor: pointer; transition: filter 0.25s; }
    .map-marker:focus { outline: none; }
    .map-marker:focus-visible { filter: drop-shadow(0 0 4px var(--ochre)); }
    .marker-dot {
      fill: var(--ochre);
      stroke: var(--paper);
      stroke-width: 1.5;
      transition: r 0.25s, fill 0.25s;
    }
    .marker-current .marker-dot { fill: var(--terracotta); r: 9; }
    .marker-upcoming .marker-dot { fill: var(--ochre); }
    .marker-archive .marker-dot { fill: rgba(45,74,45,0.6); }
    .map-marker:hover .marker-dot,
    .map-marker.active .marker-dot { fill: var(--terracotta); r: 11; }

    .marker-pulse {
      fill: none;
      stroke: var(--ochre);
      stroke-width: 1.5;
      opacity: 0;
      animation: markerPulse 2.6s ease-out infinite;
    }
    .marker-current .marker-pulse { stroke: var(--terracotta); }
    .marker-archive .marker-pulse { display: none; }
    @keyframes markerPulse {
      0%   { r: 8;  opacity: 0.8; }
      100% { r: 24; opacity: 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      .marker-pulse { animation: none; opacity: 0; }
    }

    .map-info {
      position: absolute;
      background: var(--white);
      border: 1px solid var(--rule);
      border-left: 3px solid var(--ochre);
      padding: 16px 22px;
      border-radius: 2px;
      max-width: 320px;
      pointer-events: none;
      opacity: 0;
      transform: translateY(8px);
      transition: opacity 0.25s, transform 0.25s;
      box-shadow: 0 12px 32px rgba(0,0,0,0.14);
      z-index: 10;
      top: 24px;
      left: 24px;
    }
    .map-info.visible { opacity: 1; transform: translateY(0); }
    .map-info-status {
      font-family: var(--font-mono);
      font-size: 0.68rem;
      font-weight: 500;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--ochre);
      margin: 0 0 6px;
    }
    .map-info-title {
      font-family: var(--font-serif);
      font-size: 1.15rem;
      font-weight: 600;
      color: var(--forest-dark);
      margin: 0 0 4px;
      line-height: 1.2;
    }
    .map-info-place {
      font-family: var(--font-mono);
      font-size: 0.74rem;
      color: var(--text-light);
      margin: 0 0 10px;
      letter-spacing: 0.04em;
    }
    .map-info-desc {
      font-size: 0.86rem;
      color: var(--text-mid);
      margin: 0;
      line-height: 1.55;
      font-family: var(--font-sans);
    }

    .map-legend {
      display: flex;
      justify-content: center;
      gap: 26px;
      margin-top: 32px;
      flex-wrap: wrap;
      font-family: var(--font-mono);
      font-size: 0.72rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--text-light);
    }
    .map-legend-item { display: inline-flex; align-items: center; gap: 8px; }
    .legend-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
    .legend-current { background: var(--terracotta); }
    .legend-upcoming { background: var(--ochre); }
    .legend-archive { background: rgba(45,74,45,0.6); }

    .voice-section { position: relative; padding: clamp(100px, 11vw, 160px) 0; color: var(--paper); overflow: hidden; isolation: isolate; }
    .voice-bg { position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center; filter: brightness(0.35) blur(2px); transform: scale(1.1); }
    .voice-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(135deg, rgba(20,32,22,0.85) 0%, rgba(45,74,45,0.7) 60%, rgba(20,32,22,0.85) 100%); }
    .voice-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
    .voice-portrait { aspect-ratio: 4/5; transform: rotate(-1.5deg); transition: transform 0.6s ease; box-shadow: 0 30px 60px rgba(0,0,0,0.45); border-radius: 4px; overflow: hidden; }
    .voice-portrait:hover { transform: rotate(0deg) scale(1.02); }
    .voice-portrait img { width: 100%; height: 100%; object-fit: cover; }
    .voice-quote-wrap { position: relative; }
    .voice-quote-mark { position: absolute; top: -90px; left: -30px; font-family: var(--font-serif); font-size: clamp(10rem, 18vw, 16rem); line-height: 1; color: var(--ochre); opacity: 0.18; pointer-events: none; font-style: italic; }
    .voice-quote-wrap .eyebrow { margin-bottom: 24px; position: relative; z-index: 2; }
    .voice-quote { font-family: var(--font-serif); font-style: italic; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.3; color: var(--paper); margin: 0 0 28px; max-width: 24ch; position: relative; z-index: 2; }
    .voice-attribution { font-family: var(--font-serif); font-size: 1.2rem; color: var(--ochre); margin-bottom: 6px; max-width: none; font-weight: 500; }
    .voice-role { display: block; font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.7); margin-top: 4px; font-style: normal; }
    .voice-context { font-size: 0.96rem; color: rgba(255,255,255,0.82); max-width: 52ch; margin: 28px 0; line-height: 1.65; }
    @media (max-width: 880px) { .voice-grid { grid-template-columns: 1fr; } .voice-quote-mark { font-size: 8rem; top: -50px; left: -10px; } }