/* Original timeline styles. Keep geometry compatible with the existing engine. */

  :root{
    --ink:#1c2333;
    --parchment:#f2ecdd;
    --parchment-deep:#e8dfc8;
    --royal:#1b2a4a;
    --gilt:#b8933f;
    --gilt-bright:#d4af5a;
    --oxblood:#7a1f2b;
    --stone:#6b5b45;
    --line:rgba(28,35,51,0.14);
  }
  *{box-sizing:border-box;}
  html,body{margin:0; height:100%;}
  body{
    background:var(--parchment);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
    overscroll-behavior:none;
  }
  h1,h2,h3{font-family:'Fraunces',serif; margin:0;}
  ::selection{background:var(--gilt-bright); color:var(--ink);}

  /* ---------- HERO ---------- */
  .hero{
    padding:4.5rem 1.5rem 2.5rem;
    text-align:center;
    max-width:760px;
    margin:0 auto;
  }
  .eyebrow{
    font-family:'JetBrains Mono',monospace;
    font-size:0.7rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gilt);
    font-weight:600;
  }
  .hero h1{
    font-size:clamp(2.2rem,6vw,3.6rem);
    font-weight:500;
    line-height:1.02;
    color:var(--royal);
    margin-top:0.6rem;
  }
  .hero h1 em{color:var(--oxblood); font-style:italic; font-weight:500;}
  .hero p{
    font-family:'Cormorant Garamond',serif;
    font-size:1.2rem;
    font-style:italic;
    color:var(--stone);
    margin-top:0.9rem;
  }

  /* ---------- FILTER BAR ---------- */
  .filterbar{
    max-width:1400px;
    margin:0 auto 0.9rem;
    padding:0 1.2rem;
    display:flex;
    flex-wrap:wrap;
    gap:0.5rem;
    align-items:center;
    justify-content:center;
  }
  .filterbar .label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--stone);
    margin-right:0.2rem;
  }
  .chip{
    font-family:'Inter',sans-serif;
    font-size:0.8rem;
    font-weight:500;
    padding:0.4rem 0.9rem;
    border-radius:100px;
    border:1px solid var(--line);
    background:#fffdf7;
    color:var(--ink);
    cursor:pointer;
    transition:all 0.2s ease;
    white-space:nowrap;
  }
  .chip:hover{border-color:var(--royal);}
  .chip.active{
    background:var(--royal);
    color:var(--parchment);
    border-color:var(--royal);
  }
  .chip .dot{
    display:inline-block;
    width:7px;height:7px;
    border-radius:50%;
    margin-right:0.45rem;
    vertical-align:middle;
  }
  .chip.clear{
    color:var(--oxblood);
    border-color:transparent;
    background:transparent;
    font-size:0.75rem;
    text-decoration:underline;
    text-underline-offset:2px;
    display:none;
  }
  .chip.clear.show{display:inline-block;}

  /* ---------- MAP SECTION ---------- */
  .map-section{
    position:relative;
    margin:0 auto 3rem;
    max-width:1400px;
    padding:0 1.2rem;
  }
  .map-frame{
    position:relative;
    height:76vh;
    min-height:500px;
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
    background:
      radial-gradient(circle at 15% 20%, rgba(184,147,63,0.07), transparent 45%),
      radial-gradient(circle at 85% 80%, rgba(122,31,43,0.05), transparent 45%),
      var(--parchment);
    box-shadow:0 18px 50px rgba(28,35,51,0.10);
    touch-action:none;
    cursor:grab;
  }
  .map-frame.dragging{cursor:grabbing;}

  svg#worldSvg{position:absolute; top:0; left:0; width:100%; height:100%;}

  #overlay{
    position:absolute; inset:0;
    pointer-events:none;
    overflow:hidden;
  }
  #overlay > *{position:absolute; top:0; left:0; will-change:transform;}

  .branch-line{opacity:0; transition:opacity 0.35s ease;}
  .lod-1 .branch-line, .lod-2 .branch-line, .lod-3 .branch-line{opacity:1;}

  /* ruler */
  .ruler{
    position:absolute; top:0; left:0; right:0; height:34px;
    background:linear-gradient(180deg, rgba(242,236,221,0.97), rgba(242,236,221,0.85));
    border-bottom:1px solid var(--line);
    pointer-events:none;
    z-index:5;
  }
  .tick-label{
    position:absolute; top:9px;
    transform:translateX(-50%);
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    color:var(--stone);
    font-weight:500;
    white-space:nowrap;
    pointer-events:none;
  }
  .tick-line{
    position:absolute; top:34px; bottom:0; width:1px;
    background:rgba(28,35,51,0.05);
    pointer-events:none;
  }

  /* era labels */
  .era-label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.66rem;
    letter-spacing:0.09em;
    text-transform:uppercase;
    color:var(--royal);
    font-weight:600;
    background:rgba(242,236,221,0.88);
    padding:0.15rem 0.5rem;
    border-radius:3px;
    white-space:nowrap;
    pointer-events:none;
    z-index:3;
    opacity:0;
    transition:opacity 0.3s ease;
  }
  .lod-1 .era-label, .lod-2 .era-label, .lod-3 .era-label{opacity:1;}

  /* branch labels */
  .branch-label{
    font-family:'Fraunces',serif;
    font-size:0.86rem;
    font-weight:500;
    font-style:italic;
    white-space:nowrap;
    pointer-events:none;
    opacity:0;
    transition:opacity 0.25s ease;
    z-index:3;
    text-shadow:0 0 6px var(--parchment), 0 0 6px var(--parchment), 0 0 10px var(--parchment);
  }
  .lod-1 .branch-label, .lod-2 .branch-label, .lod-3 .branch-label{opacity:1;}

  /* event markers */
  .marker{
    width:4px; height:4px;
    border-radius:50%;
    border:1px solid var(--parchment);
    cursor:pointer;
    opacity:0.5;
    transition:opacity 0.25s ease, box-shadow 0.15s ease, width 0.2s ease, height 0.2s ease, border-width 0.2s ease;
    pointer-events:none;
    z-index:4;
    box-shadow:0 0 0 1px rgba(28,35,51,0.2);
  }
  .lod-1 .marker{width:6px; height:6px; opacity:0.65;}
  .lod-2 .marker, .lod-3 .marker{
    width:11px; height:11px; border-width:2px; opacity:1; pointer-events:auto;
    box-shadow:0 0 0 1px rgba(28,35,51,0.25);
  }
  .marker:hover{box-shadow:0 0 0 5px rgba(28,35,51,0.18);}

  .marker-title{
    font-family:'Inter',sans-serif;
    font-size:0.72rem;
    font-weight:600;
    color:var(--ink);
    white-space:nowrap;
    cursor:pointer;
    opacity:0;
    pointer-events:none;
    transition:opacity 0.25s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    z-index:4;
    background:#fffdf7;
    border:1px solid var(--line);
    padding:0.24rem 0.6rem 0.24rem 0.4rem;
    border-radius:5px;
    box-shadow:0 2px 6px rgba(28,35,51,0.10);
  }
  .lod-3 .marker-title{opacity:1; pointer-events:auto;}
  .marker-title:hover{
    border-color:var(--royal);
    box-shadow:0 4px 12px rgba(28,35,51,0.18);
  }
  .marker-title-head{
    display:flex;
    align-items:center;
    gap:0.4rem;
  }
  .marker-title-dot{
    width:7px; height:7px;
    border-radius:50%;
    flex-shrink:0;
    box-shadow:0 0 0 1px rgba(28,35,51,0.2);
  }
  /* the fourth, deepest zoom tier: boxes grow to show the full blurb
     inline instead of just a title, so you can read the story without
     clicking */
  .marker-blurb{
    display:none;
    white-space:normal;
    font-family:'Cormorant Garamond',serif;
    font-style:italic;
    font-weight:500;
    font-size:0.85rem;
    line-height:1.42;
    color:#3a3a3a;
    max-width:300px;
    margin-top:0.32rem;
    padding-top:0.32rem;
    border-top:1px dashed var(--line);
  }
  /* In Depth tier removed: blurbs stay in the click-through detail panel. */

  .marker-connector{
    stroke:var(--stone);
    stroke-width:1;
    opacity:0;
    transition:opacity 0.25s ease;
  }
  .lod-3 .marker-connector{opacity:0.55;}

  /* category filter override — !important so it wins over LOD opacity rules */
  .cat-hidden{opacity:0 !important; pointer-events:none !important;}

  /* ---------- CONTROLS ---------- */
  .controls{
    position:absolute; right:14px; bottom:14px;
    display:flex; flex-direction:column;
    gap:2px;
    z-index:10;
    pointer-events:auto;
  }
  .ctrl-btn{
    width:38px; height:38px;
    background:#fffdf7;
    border:1px solid var(--line);
    color:var(--royal);
    font-family:'Inter',sans-serif;
    font-size:1.1rem;
    font-weight:600;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background 0.15s ease;
  }
  .ctrl-btn:hover{background:var(--parchment-deep);}
  .ctrl-btn:first-child{border-radius:6px 6px 0 0;}
  .ctrl-btn:last-child{border-radius:0 0 6px 6px;}

  .stage-indicator{
    position:absolute; left:14px; bottom:14px;
    z-index:10;
    background:rgba(255,253,247,0.92);
    border:1px solid var(--line);
    border-radius:100px;
    padding:0.4rem 0.9rem;
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--royal);
    display:flex;
    align-items:center;
    gap:0.5rem;
    pointer-events:none;
  }
  .stage-dots{display:flex; gap:3px;}
  .stage-dots span{width:5px; height:5px; border-radius:50%; background:var(--line);}
  .stage-dots span.on{background:var(--oxblood);}

  .hint{
    position:absolute; top:44px; left:14px;
    z-index:10;
    background:rgba(255,253,247,0.92);
    border:1px solid var(--line);
    border-radius:6px;
    padding:0.5rem 0.8rem;
    font-family:'Inter',sans-serif;
    font-size:0.76rem;
    color:var(--stone);
    max-width:230px;
    line-height:1.4;
    pointer-events:none;
    transition:opacity 0.4s ease;
  }

  /* ---------- DETAIL PANEL ---------- */
  .detail-panel{
    position:absolute; left:0; right:0; bottom:0;
    background:#fffdf7;
    border-top:1px solid var(--line);
    box-shadow:0 -12px 30px rgba(28,35,51,0.12);
    transform:translateY(100%);
    transition:transform 0.32s cubic-bezier(.2,.8,.2,1);
    z-index:20;
    padding:1.4rem 1.6rem 1.6rem;
    max-height:58%;
    overflow-y:auto;
  }
  .detail-panel.open{transform:translateY(0);}
  .detail-accent{
    display:inline-block;
    width:10px; height:10px;
    border-radius:50%;
    margin-right:0.5rem;
    vertical-align:middle;
  }
  .detail-tag{
    font-family:'JetBrains Mono',monospace;
    font-size:0.66rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--stone);
  }
  .detail-year{
    font-family:'JetBrains Mono',monospace;
    font-size:0.8rem;
    font-weight:600;
    color:var(--royal);
    margin-top:0.2rem;
  }
  .detail-title{
    font-size:1.4rem;
    font-weight:500;
    margin-top:0.25rem;
    color:var(--ink);
  }
  .detail-image{
    float:right;
    width:128px;
    height:128px;
    object-fit:cover;
    border-radius:8px;
    margin:1.7rem 0 0.6rem 1.2rem;
    border:1px solid var(--line);
    box-shadow:0 4px 14px rgba(28,35,51,0.15);
    display:none;
    background:var(--parchment-deep);
  }
  .detail-body{
    font-size:0.95rem;
    line-height:1.6;
    color:#3a3a3a;
    margin-top:0.6rem;
    max-width:640px;
  }
  .wiki-section{
    clear:both;
    margin-top:1rem;
    padding-top:0.9rem;
    border-top:1px dashed var(--line);
    max-width:640px;
  }
  .wiki-label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.64rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--gilt);
    font-weight:600;
    display:flex;
    align-items:center;
    gap:0.4rem;
  }
  .wiki-label img{width:13px; height:13px; opacity:0.8;}
  .detail-extract{
    font-size:0.93rem;
    line-height:1.6;
    color:#3a3a3a;
    margin:0.45rem 0 0;
  }
  .detail-extract.loading{color:var(--stone); font-style:italic;}
  .detail-extract.error{color:var(--stone); font-style:italic;}
  .detail-wiki{
    display:inline-flex;
    align-items:center;
    gap:0.35rem;
    margin-top:0.9rem;
    font-family:'Inter',sans-serif;
    font-size:0.82rem;
    font-weight:600;
    color:var(--royal);
    text-decoration:none;
    border:1px solid var(--royal);
    border-radius:100px;
    padding:0.4rem 0.95rem;
    transition:background 0.15s ease, color 0.15s ease;
  }
  .detail-wiki:hover{background:var(--royal); color:var(--parchment);}
  .detail-close{
    position:absolute; top:0.9rem; right:1rem;
    background:none; border:none;
    font-size:1.3rem;
    color:var(--stone);
    cursor:pointer;
    line-height:1;
  }
  .detail-close:hover{color:var(--oxblood);}

  /* ---------- FOOTER NOTE ---------- */
  .footnote{
    max-width:680px; margin:0 auto;
    text-align:center;
    padding:0 1.5rem 4rem;
    font-family:'Cormorant Garamond',serif;
    font-style:italic;
    color:var(--stone);
    font-size:1.05rem;
  }

  @media (max-width:720px){
    .hint{display:none;}
    .map-frame{height:80vh;}
    .filterbar{justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; -ms-overflow-style:none; scrollbar-width:none;}
    .filterbar::-webkit-scrollbar{display:none;}
    .detail-image{width:88px; height:88px; margin-left:0.8rem;}
  }


  :root{
    --atlas-ink:#17284b;
    --atlas-gold:#b68a37;
    --atlas-gold-soft:#d8c18d;
    --atlas-paper:#f6f1e6;
    --atlas-paper-2:#fbf8f0;
    --atlas-rule:rgba(23,40,75,.16);
    --atlas-muted:#706957;
  }
  html{scroll-behavior:smooth;}
  body{
    background:
      radial-gradient(circle at 15% 10%, rgba(182,138,55,.06), transparent 28rem),
      linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.16)),
      var(--atlas-paper);
  }
  body::before{
    content:"";
    position:fixed; inset:0; pointer-events:none; z-index:999;
    opacity:.18;
    background-image:
      repeating-linear-gradient(0deg, rgba(68,55,38,.018) 0, rgba(68,55,38,.018) 1px, transparent 1px, transparent 4px),
      repeating-linear-gradient(90deg, rgba(68,55,38,.012) 0, rgba(68,55,38,.012) 1px, transparent 1px, transparent 5px);
    mix-blend-mode:multiply;
  }
  .site-shell{border-bottom:1px solid var(--atlas-rule); background:rgba(251,248,240,.82); backdrop-filter:blur(12px);}
  .site-header{
    max-width:1480px; margin:0 auto; min-height:84px; padding:0 2.25rem;
    display:grid; grid-template-columns:1.15fr 1.7fr .35fr; align-items:center; gap:1rem;
  }
  .brand{display:flex; align-items:center; gap:.8rem; text-decoration:none; color:var(--atlas-ink); min-width:max-content;}
  .brand-lockup{display:flex; flex-direction:column; line-height:1;}
  .brand-name{font-family:'Fraunces',serif; font-size:2.15rem; font-weight:500; letter-spacing:-.03em;}
  .brand-sub{font-family:'JetBrains Mono',monospace; margin-top:.42rem; font-size:.58rem; letter-spacing:.24em; color:var(--atlas-gold); text-transform:uppercase;}
  .brand-mark{font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--atlas-gold); transform:translateY(-2px);}
  .site-nav{display:flex; align-items:center; justify-content:center; gap:2.1rem;}
  .site-nav a{position:relative; padding:.9rem 0; text-decoration:none; color:#23221f; font-family:'Cormorant Garamond',serif; font-size:1rem; font-weight:600;}
  .site-nav a.active{color:var(--atlas-ink);}
  .site-nav a.active::after{content:""; position:absolute; left:0; right:0; bottom:.4rem; height:1px; background:var(--atlas-ink);}
  .header-tools{display:flex; justify-content:flex-end; align-items:center; gap:1rem; color:var(--atlas-ink); font-family:'Cormorant Garamond',serif;}
  .header-search{width:18px;height:18px;border:1.5px solid currentColor;border-radius:50%;position:relative;opacity:.9;}
  .header-search::after{content:"";position:absolute;width:7px;height:1.5px;background:currentColor;right:-5px;bottom:-2px;transform:rotate(45deg);transform-origin:left center;}
  .lang{border:0;border-left:1px solid var(--atlas-rule);padding:.48rem 0 .48rem 1rem;font-size:.86rem;background:transparent;color:var(--atlas-ink);font-family:'Cormorant Garamond',serif;font-weight:600;letter-spacing:.08em;cursor:pointer;transition:color .18s ease,opacity .18s ease;}
  .lang:hover{color:var(--atlas-gold);}
  .lang:focus-visible{outline:2px solid var(--atlas-gold);outline-offset:4px;}
  .lang .lang-arrow{font-size:.7em;margin-left:.18rem;opacity:.65;}

  .hero{
    position:relative; overflow:hidden; max-width:1480px; margin:0 auto; padding:4.25rem 2.25rem 3.1rem;
    text-align:left; min-height:310px; display:flex; flex-direction:column; justify-content:center;
  }
  .hero::after{content:""; position:absolute; left:42%; right:4%; top:12%; bottom:5%; opacity:.18; background:
    radial-gradient(ellipse at 58% 53%, transparent 0 25%, rgba(23,40,75,.13) 25.2% 25.6%, transparent 25.8% 38%, rgba(23,40,75,.08) 38.2% 38.5%, transparent 38.7%);
    transform:rotate(-4deg); pointer-events:none;}
  .hero-copy{position:relative; z-index:2; max-width:780px;}
  .eyebrow{font-size:.64rem; letter-spacing:.22em; color:var(--atlas-gold); margin:0 0 .75rem;}
  .hero h1{font-size:clamp(3rem,5.4vw,5.2rem); line-height:.98; color:var(--atlas-ink); font-weight:500; letter-spacing:-.045em; margin:0;}
  .hero h1 em{font-style:normal; color:var(--atlas-ink);}
  .hero-divider{display:flex;align-items:center;gap:.8rem;width:410px;max-width:70%;margin:1.25rem 0 .9rem;color:var(--atlas-gold);}
  .hero-divider::before,.hero-divider::after{content:"";height:1px;background:var(--atlas-gold-soft);flex:1;}
  .hero-divider span{font-family:'Cormorant Garamond',serif;font-size:1.2rem;}
  .hero p.hero-sub{max-width:570px;margin:0;font-family:'Cormorant Garamond',serif;font-size:1.35rem;line-height:1.45;color:#666154;font-style:italic;}
  .hero-engraving{position:absolute; z-index:1; right:1.5rem; bottom:-1.2rem; width:min(52vw,760px); height:auto; color:#2f4160; opacity:.24; pointer-events:none;}
  .hero-engraving .fine{fill:none;stroke:currentColor;stroke-width:1.2;}
  .hero-engraving .bold{fill:none;stroke:currentColor;stroke-width:1.8;}

  .filter-wrap{border-top:1px solid var(--atlas-rule);border-bottom:1px solid var(--atlas-rule);background:rgba(251,248,240,.74);}
  .filterbar{max-width:1480px;margin:0 auto;padding:.8rem 2.25rem;justify-content:flex-start;gap:.42rem;min-height:58px;}
  .filterbar .label{color:var(--atlas-ink);font-family:'Cormorant Garamond',serif;font-weight:600;font-size:.86rem;letter-spacing:.06em;margin-right:.6rem;}
  .chip{border-radius:7px;background:transparent;padding:.5rem .78rem;border:1px solid transparent;font-family:'Cormorant Garamond',serif;font-size:.92rem;font-weight:600;color:#333;}
  .chip:hover{border-color:rgba(23,40,75,.18);background:rgba(255,255,255,.35);}
  .chip.active{background:var(--atlas-ink);border-color:var(--atlas-ink);color:#fffdf7;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);}
  .chip .dot{width:14px;height:3px;border-radius:100px;margin-right:.42rem;}
  .chip.clear{margin-left:auto;color:#7a1f2b;font-family:'Inter',sans-serif;font-size:.68rem;}

  .map-section{max-width:1480px;margin:0 auto 0;padding:0 2.25rem 2rem;}
  .map-section-header{display:flex;justify-content:space-between;align-items:end;padding:1.15rem .1rem .8rem;gap:1rem;}
  .map-kicker{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--atlas-gold);}
  .map-instruction{font-family:'Cormorant Garamond',serif;font-size:1rem;font-style:italic;color:#77705f;text-align:right;}
  .map-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;flex-wrap:wrap;}
  .orientation-toggle{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(23,40,75,.24);background:rgba(251,248,240,.92);color:var(--atlas-ink);padding:.5rem .78rem;border-radius:2px;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transition:background .15s ease,border-color .15s ease;}
  .orientation-toggle:hover{background:#fffdf7;border-color:var(--atlas-gold);}
  .orientation-toggle .orientation-icon{font-family:'Inter',sans-serif;font-size:.9rem;line-height:1;}
  .map-frame{
    height:72vh; min-height:630px; border-radius:2px; border:1px solid rgba(182,138,55,.3); box-shadow:none;
    background:
      linear-gradient(rgba(246,241,230,.84),rgba(246,241,230,.84)),
      radial-gradient(circle at 15% 20%,rgba(23,40,75,.06),transparent 30%),
      repeating-linear-gradient(90deg,rgba(23,40,75,.025) 0 1px,transparent 1px 110px),
      var(--atlas-paper);
  }
  .map-frame::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.22;background-image:
    radial-gradient(circle at 9% 76%, rgba(23,40,75,.22) 0 1px, transparent 1.5px),
    radial-gradient(circle at 82% 18%, rgba(182,138,55,.18) 0 1px, transparent 1.5px);background-size:17px 17px,23px 23px;mix-blend-mode:multiply;}
  svg#worldSvg,#overlay,.ruler,.hint,.stage-indicator,.controls,.detail-panel,.locator-card{z-index:2;}
  .ruler{height:46px;background:rgba(248,244,235,.95);border-bottom:1px solid var(--atlas-rule);}
  .tick-label{top:13px;font-family:'Cormorant Garamond',serif;font-size:.88rem;color:#5f5a4e;}
  .tick-line{top:46px;background:rgba(23,40,75,.055);}
  .orientation-vertical .ruler{top:0;bottom:0;left:0;right:auto;width:78px;height:auto;border-bottom:0;border-right:1px solid var(--atlas-rule);background:rgba(248,244,235,.96);}
  .orientation-vertical .tick-label{left:8px !important;width:60px;top:auto;transform:translateY(-50%);text-align:center;font-size:.78rem;}
  .orientation-vertical .tick-line{left:78px !important;right:0;width:auto;height:1px;top:auto;bottom:auto;background:rgba(23,40,75,.055);}
  .orientation-vertical .hint{left:92px;}
  .orientation-vertical .stage-indicator{left:92px;}
  .orientation-vertical .locator-card{left:92px;}
  .era-label{font-family:'Cormorant Garamond',serif;font-size:.78rem;letter-spacing:.04em;text-transform:none;background:rgba(246,241,230,.84);}
  .branch-label{font-family:'Cormorant Garamond',serif;font-size:1rem;font-style:normal;font-weight:600;}
  .marker{border-color:#fff9ea;box-shadow:0 0 0 1px rgba(23,40,75,.32);}
  .marker-title{font-family:'Cormorant Garamond',serif;font-size:.84rem;border-radius:2px;background:rgba(251,248,240,.97);border-color:rgba(182,138,55,.3);box-shadow:0 7px 20px rgba(38,30,18,.08);}
  .marker-title{max-width:290px;overflow:hidden;}
  .marker-title-head{max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .marker-blurb{display:none !important;}
  .marker-blurb{font-family:'Cormorant Garamond',serif;}
  .hint{top:60px;left:18px;border-radius:2px;background:rgba(251,248,240,.9);border-color:rgba(182,138,55,.28);font-family:'Cormorant Garamond',serif;font-size:.88rem;max-width:270px;}
  .stage-indicator{left:18px;bottom:224px;border-radius:2px;background:rgba(251,248,240,.94);border-color:rgba(182,138,55,.3);font-size:.61rem;box-shadow:0 4px 16px rgba(30,25,18,.06);}
  .controls{right:18px;bottom:18px;gap:4px;}
  .ctrl-btn{width:40px;height:40px;border-radius:2px !important;background:rgba(251,248,240,.95);border-color:rgba(182,138,55,.34);color:var(--atlas-ink);}

  .locator-card{
    position:absolute;left:18px;bottom:18px;width:250px;height:190px;background:rgba(251,248,240,.96);
    border:1px solid rgba(182,138,55,.48);box-shadow:0 8px 24px rgba(31,26,17,.1);pointer-events:auto;overflow:hidden;
    transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
  }
  .locator-card.active{border-color:var(--atlas-gold);box-shadow:0 10px 30px rgba(91,66,22,.18);transform:translateY(-2px);}
  .locator-head{height:34px;padding:0 .7rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--atlas-rule);font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.56rem;color:var(--atlas-ink);background:rgba(246,241,230,.94);}
  #locationStatus{color:#8a7650;font-size:.52rem;max-width:112px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:right;}
  #eventMap{height:116px;width:100%;background:#e9e4d8;}
  .location-caption{height:40px;padding:.42rem .7rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-family:'Cormorant Garamond',serif;}
  .location-caption strong{font-weight:600;color:var(--atlas-ink);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:135px;}
  .location-caption span{font-family:'JetBrains Mono',monospace;font-size:.48rem;color:#7d7566;text-align:right;line-height:1.25;}
  .leaflet-container{font-family:'Inter',sans-serif;background:#e6e0d3;}
  #eventMap .leaflet-tile-pane{filter:grayscale(1) sepia(.18) contrast(.92) brightness(1.05);opacity:.82;}
  #eventMap .leaflet-control-attribution{font-size:6px;background:rgba(251,248,240,.72);color:#797163;}
  #eventMap .leaflet-control-zoom{border:none;margin:5px 0 0 5px;box-shadow:none;}
  #eventMap .leaflet-control-zoom a{width:22px;height:22px;line-height:20px;border:1px solid rgba(23,40,75,.18);background:rgba(251,248,240,.92);color:var(--atlas-ink);font-size:14px;}
  .event-map-marker{background:transparent;border:none;}
  .event-map-marker span{display:block;width:18px;height:18px;border-radius:50%;background:var(--atlas-ink);border:4px solid #f8f1df;box-shadow:0 0 0 2px var(--atlas-gold),0 3px 9px rgba(0,0,0,.25);position:relative;}
  .event-map-marker span::after{content:"";position:absolute;inset:-8px;border:1px solid rgba(182,138,55,.7);border-radius:50%;animation:locatorPulse 1.8s ease-out infinite;}
  @keyframes locatorPulse{0%{transform:scale(.55);opacity:.9}100%{transform:scale(1.8);opacity:0}}

  .detail-panel{
    left:auto;right:0;top:46px;bottom:0;width:min(390px,36vw);max-height:none;padding:1.6rem 1.55rem 1.3rem;
    border-top:none;border-left:1px solid rgba(182,138,55,.4);background:rgba(251,248,240,.985);
    box-shadow:-16px 0 42px rgba(31,27,20,.09);transform:translateX(102%);overflow-y:auto;
  }
  .detail-panel.open{transform:translateX(0);}
  .detail-close{top:.9rem;right:1rem;font-family:'Cormorant Garamond',serif;font-size:1.65rem;color:#292723;}
  .detail-year{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--atlas-ink);font-weight:600;margin-top:.2rem;}
  .detail-title{font-family:'Fraunces',serif;font-size:1.55rem;line-height:1.1;margin:.22rem 2rem .2rem 0;color:#292723;}
  .detail-accent{width:20px;height:2px;border-radius:0;vertical-align:middle;margin-right:.5rem;}
  .detail-tag{font-family:'Cormorant Garamond',serif;text-transform:none;font-style:italic;letter-spacing:0;font-size:.95rem;color:var(--atlas-gold);margin:.15rem 0 .8rem;}
  .detail-image{float:none;width:100%;height:155px;object-fit:cover;border-radius:0;margin:.55rem 0 .85rem;border:1px solid rgba(182,138,55,.32);box-shadow:none;filter:grayscale(.62) sepia(.2) contrast(.94);}
  .detail-body{font-family:'Cormorant Garamond',serif;font-size:1rem;line-height:1.5;color:#3c3932;margin-top:.5rem;max-width:none;}
  .wiki-section{max-width:none;border-top:1px solid var(--atlas-rule);margin-top:1rem;padding-top:.8rem;}
  .wiki-label{font-family:'JetBrains Mono',monospace;font-size:.55rem;color:#7d6f4d;}
  .detail-extract{font-family:'Cormorant Garamond',serif;font-size:.9rem;line-height:1.45;}
  .detail-wiki{border-radius:2px;border-color:rgba(23,40,75,.5);font-size:.68rem;padding:.45rem .7rem;margin-top:.6rem;}

  .atlas-footer{max-width:1435px;margin:0 auto 2.25rem;background:#132b4c;color:#f4ead3;min-height:92px;border:1px solid rgba(182,138,55,.55);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:1rem 2rem;position:relative;overflow:hidden;}
  .atlas-footer::after{content:"";position:absolute;inset:0;opacity:.16;background-image:radial-gradient(circle at 70% 120%,transparent 0 38%,#d7b569 38.2% 38.5%,transparent 38.7% 49%,#d7b569 49.2% 49.5%,transparent 49.7%);pointer-events:none;}
  .footer-quote{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-style:italic;z-index:1;}
  .footer-quote small{display:block;margin-top:.25rem;color:#d7b569;font-size:.75rem;font-style:normal;}
  .footer-monogram{font-family:'Fraunces',serif;color:#d7b569;font-size:2rem;z-index:1;padding:0 2rem;}
  .footer-note{font-family:'JetBrains Mono',monospace;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:#d7b569;text-align:right;z-index:1;}
  .footnote{padding:0 1.5rem 2rem;font-size:.95rem;}

  @media (max-width:980px){
    .site-header{grid-template-columns:1fr auto;padding:0 1.2rem}.site-nav{display:none}.hero{padding:3rem 1.25rem 2.4rem;min-height:270px}.hero-engraving{width:65vw;opacity:.12}.filterbar{padding:.7rem 1.25rem;overflow-x:auto;flex-wrap:nowrap}.map-section{padding:0 1.25rem 1.5rem}.detail-panel{width:min(390px,62vw)}
  }
  @media (max-width:720px){
    .brand-name{font-size:1.65rem}.brand-sub{font-size:.46rem}.header-tools{gap:.7rem}.hero{min-height:245px}.hero h1{font-size:2.8rem}.hero p.hero-sub{font-size:1.12rem}.hero-engraving{right:-8rem;width:105vw}.map-frame{height:80vh;min-height:620px}.map-section-header{align-items:flex-start;flex-direction:column}.map-header-actions{justify-content:flex-start}.map-instruction{text-align:left}.locator-card{width:205px;height:170px}.locator-card #eventMap{height:98px}.location-caption{height:38px}.stage-indicator{bottom:202px}.detail-panel{top:46px;width:100%;max-width:none}.atlas-footer{margin:0 1rem 1.5rem;grid-template-columns:1fr auto;padding:1rem}.footer-note{display:none}.footer-monogram{padding:0}.footnote{display:none}
  }


  /* ===== TOP-NOTCH HISTORY FEATURES ===== */
  .map-section-header{align-items:flex-start;gap:1rem;padding-top:1rem;}
  .map-header-actions{flex:1;display:flex;justify-content:flex-end;align-items:flex-start;gap:.65rem;flex-wrap:wrap;}
  .timeline-tools{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:flex-end;}
  .density-control{display:flex;align-items:center;border:1px solid rgba(23,40,75,.18);background:rgba(251,248,240,.9);height:34px;}
  .density-label{font-family:'JetBrains Mono',monospace;font-size:.52rem;letter-spacing:.09em;text-transform:uppercase;color:#766d5b;padding:0 .62rem;border-right:1px solid rgba(23,40,75,.13);white-space:nowrap;}
  .density-btn{height:32px;padding:0 .62rem;border:0;border-right:1px solid rgba(23,40,75,.1);background:transparent;color:#4c493f;font-family:'Cormorant Garamond',serif;font-size:.84rem;cursor:pointer;}
  .density-btn:last-child{border-right:0;}
  .density-btn.active{background:var(--atlas-ink);color:#fffdf7;}
  .history-search{position:relative;width:min(330px,31vw);min-width:220px;}
  .history-search input{width:100%;height:34px;border:1px solid rgba(23,40,75,.2);background:rgba(251,248,240,.94);padding:0 2.1rem 0 .72rem;color:var(--atlas-ink);font-family:'Cormorant Garamond',serif;font-size:.92rem;outline:none;}
  .history-search input:focus{border-color:var(--atlas-gold);box-shadow:0 0 0 2px rgba(182,138,55,.08);}
  .history-search::after{content:'⌕';position:absolute;right:.72rem;top:.36rem;color:#756b58;font-size:1rem;pointer-events:none;}
  .search-results{position:absolute;left:0;right:0;top:37px;z-index:60;background:#fbf8f0;border:1px solid rgba(23,40,75,.18);box-shadow:0 16px 34px rgba(39,31,18,.14);display:none;max-height:310px;overflow:auto;}
  .search-results.open{display:block;}
  .search-result{width:100%;border:0;border-bottom:1px solid rgba(23,40,75,.09);background:transparent;padding:.55rem .68rem;text-align:left;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center;color:#302e29;}
  .search-result:hover,.search-result.active{background:#f2ead8;}
  .search-result-year{font-family:'JetBrains Mono',monospace;font-size:.53rem;color:#8a7040;min-width:52px;}
  .search-result-title{font-family:'Cormorant Garamond',serif;font-size:.86rem;line-height:1.15;}
  .search-result-type{font-family:'JetBrains Mono',monospace;font-size:.46rem;letter-spacing:.06em;text-transform:uppercase;color:#827969;}
  .importance-legend{display:inline-flex;align-items:center;gap:.3rem;font-family:'JetBrains Mono',monospace;font-size:.48rem;letter-spacing:.07em;text-transform:uppercase;color:#766d5b;margin-top:.2rem;}
  .importance-star{color:var(--atlas-gold);font-size:.75rem;line-height:1;}

  .marker.importance-4{box-shadow:0 0 0 2px rgba(182,138,55,.72),0 0 0 4px rgba(246,241,230,.9);}
  .marker.importance-3{box-shadow:0 0 0 1px rgba(23,40,75,.42),0 0 0 2px rgba(246,241,230,.8);}
  .density-hidden{opacity:0 !important;pointer-events:none !important;}

  /* persistent map overlays */
  .controls{right:18px !important;bottom:252px !important;}
  .map-frame.detail-open .controls{right:408px !important;}
  .context-card,.history-map-card,.overview-navigator{position:absolute;z-index:12;background:rgba(251,248,240,.97);border:1px solid rgba(182,138,55,.44);box-shadow:0 7px 22px rgba(36,29,18,.08);pointer-events:auto;}
  .context-card{left:286px;right:344px;bottom:94px;min-height:94px;padding:.64rem .82rem .68rem;display:grid;grid-template-columns:1.05fr repeat(4,minmax(80px,1fr));gap:.6rem;align-items:center;}
  .context-lead{padding-right:.65rem;border-right:1px solid rgba(23,40,75,.12);}
  .context-kicker{font-family:'JetBrains Mono',monospace;font-size:.49rem;letter-spacing:.12em;text-transform:uppercase;color:var(--atlas-gold);}
  .context-year{font-family:'Fraunces',serif;color:var(--atlas-ink);font-size:1.35rem;line-height:1;margin:.2rem 0 .12rem;}
  .context-era{font-family:'Cormorant Garamond',serif;color:#706957;font-size:.78rem;font-style:italic;line-height:1.15;}
  .context-stat{min-width:0;}
  .context-stat span{display:block;font-family:'JetBrains Mono',monospace;font-size:.44rem;letter-spacing:.08em;text-transform:uppercase;color:#8a806e;margin-bottom:.2rem;}
  .context-stat strong{display:block;font-family:'Cormorant Garamond',serif;font-size:.83rem;font-weight:600;color:#322f28;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  .history-map-card{right:18px;bottom:18px;width:310px;height:224px;overflow:hidden;}
  .history-map-head{height:38px;padding:0 .7rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--atlas-rule);background:rgba(246,241,230,.95);}
  .history-map-title{font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.52rem;color:var(--atlas-ink);}
  .history-map-year{font-family:'Cormorant Garamond',serif;color:var(--atlas-gold);font-size:.85rem;font-weight:600;}
  #historicFranceMap{height:138px;width:100%;background:#ece5d7;}
  .history-map-foot{height:48px;padding:.38rem .65rem .42rem;display:grid;grid-template-columns:auto auto 1fr;gap:.5rem;align-items:start;font-family:'JetBrains Mono',monospace;font-size:.43rem;color:#756d60;line-height:1.25;}
  .map-key{display:inline-flex;gap:.25rem;align-items:center;white-space:nowrap;}
  .map-key i{display:inline-block;width:10px;height:10px;border:1px solid currentColor;}
  .map-key.then{color:#a47b2d}.map-key.today{color:#244d7c}.map-key.then i{background:rgba(182,138,55,.48)}.map-key.today i{background:rgba(36,77,124,.16)}
  .map-disclaimer{text-align:right;color:#897f6e;}
  #historicFranceMap .leaflet-control-attribution{display:none;}
  #historicFranceMap .leaflet-control-zoom{border:0;margin:4px 0 0 4px;box-shadow:none;}
  #historicFranceMap .leaflet-control-zoom a{width:20px;height:20px;line-height:18px;background:#fbf8f0;color:var(--atlas-ink);font-size:12px;border:1px solid rgba(23,40,75,.14);}

  .overview-navigator{left:286px;right:344px;bottom:18px;height:62px;padding:.43rem .72rem .5rem;}
  .overview-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.46rem;letter-spacing:.08em;text-transform:uppercase;color:#756d60;margin-bottom:.34rem;}
  .overview-range{color:var(--atlas-ink);font-family:'Cormorant Garamond',serif;text-transform:none;letter-spacing:0;font-size:.76rem;}
  .overview-track{height:18px;position:relative;border-top:1px solid rgba(23,40,75,.22);border-bottom:1px solid rgba(23,40,75,.12);background:linear-gradient(90deg,rgba(182,138,55,.08) 0 28%,rgba(23,40,75,.035) 28% 100%);cursor:pointer;touch-action:none;}
  .overview-track::before{content:'PREHISTORY COMPRESSED';position:absolute;left:4px;top:2px;font:6px 'JetBrains Mono',monospace;letter-spacing:.06em;color:#aa9872;pointer-events:none;}
  .overview-window{position:absolute;top:-2px;bottom:-2px;min-width:6px;background:rgba(23,40,75,.12);border:1px solid var(--atlas-ink);cursor:grab;}
  .overview-window:active{cursor:grabbing;}
  .overview-mark{position:absolute;top:5px;width:4px;height:4px;border-radius:50%;background:var(--atlas-gold);transform:translateX(-50%);pointer-events:none;}

  .map-frame.detail-open .history-map-card{right:408px;}
  .map-frame.detail-open .context-card,.map-frame.detail-open .overview-navigator{right:734px;}
  .orientation-vertical .context-card{left:92px;}
  .orientation-vertical .overview-navigator{left:92px;}
  .orientation-vertical .history-map-card{right:18px;}
  .orientation-vertical.detail-open .history-map-card{right:408px;}

  /* richer event detail */
  .detail-importance{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:.22rem 0 .75rem;padding:.38rem .5rem;background:#f3eddf;border-left:2px solid var(--atlas-gold);}
  .detail-importance strong{font-family:'Cormorant Garamond',serif;font-size:.82rem;color:#423d32;}
  .detail-importance span{font-family:'JetBrains Mono',monospace;font-size:.46rem;text-transform:uppercase;letter-spacing:.08em;color:#8a7750;}
  .detail-section{margin-top:.9rem;padding-top:.78rem;border-top:1px solid var(--atlas-rule);}
  .detail-section-title{font-family:'JetBrains Mono',monospace;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:#7d6f4d;margin-bottom:.45rem;}
  .connection-list{display:grid;gap:.35rem;}
  .connection-btn{border:1px solid rgba(23,40,75,.13);background:rgba(246,241,230,.72);padding:.42rem .48rem;text-align:left;display:grid;grid-template-columns:44px 1fr;gap:.45rem;cursor:pointer;color:#34312a;}
  .connection-btn:hover{border-color:var(--atlas-gold);background:#f5eedf;}
  .connection-btn small{font-family:'JetBrains Mono',monospace;font-size:.44rem;color:#8c7544;text-transform:uppercase;}
  .connection-btn span{font-family:'Cormorant Garamond',serif;font-size:.82rem;line-height:1.16;}
  .primary-source-link,.citation-link{display:flex;align-items:flex-start;justify-content:space-between;gap:.55rem;text-decoration:none;color:#353128;border-bottom:1px solid rgba(23,40,75,.08);padding:.38rem 0;font-family:'Cormorant Garamond',serif;font-size:.83rem;}
  .primary-source-link:hover,.citation-link:hover{color:var(--atlas-ink);}
  .primary-source-link::after,.citation-link::after{content:'↗';font-family:'Inter',sans-serif;font-size:.7rem;color:#9b8046;}
  .empty-source{font-family:'Cormorant Garamond',serif;color:#857c6c;font-style:italic;font-size:.8rem;}

  @media(max-width:1180px){
    .map-instruction{display:none}.history-search{width:250px}.context-card{left:250px;right:284px;grid-template-columns:1fr 1fr 1fr}.context-stat:nth-of-type(4),.context-stat:nth-of-type(5){display:none}.overview-navigator{left:250px;right:284px}.history-map-card{width:250px}.map-frame.detail-open .history-map-card{right:18px;opacity:.25;pointer-events:none}.map-frame.detail-open .context-card,.map-frame.detail-open .overview-navigator{right:284px;opacity:.25;pointer-events:none}
  }
  @media(max-width:760px){
    .timeline-tools{justify-content:flex-start;width:100%}.history-search{width:100%}.density-control{max-width:100%}.context-card{display:none}.history-map-card{width:210px;height:180px}.history-map-head{height:32px}#historicFranceMap{height:105px}.history-map-foot{height:43px;grid-template-columns:auto auto}.map-disclaimer{display:none}.overview-navigator{left:12px;right:232px;bottom:18px}.locator-card{bottom:88px}.controls{bottom:205px}.map-frame.detail-open .history-map-card{display:none}.map-frame.detail-open .overview-navigator{display:none}.controls{bottom:205px !important}.map-frame.detail-open .controls{right:18px !important}
  }
