.wagon-trail{--wagon-ink:#26392e;--wagon-green:#355944;--wagon-green-dark:#17372c;--wagon-parchment:#e7dcc0;--wagon-parchment-deep:#c8b58c;--wagon-blue:#a8bec0;--wagon-brown:#775f45;position:relative;max-width:1180px;margin:clamp(2rem,5vw,4.5rem) auto 0;padding:clamp(1.1rem,3vw,2rem);border:1px solid #b7b39e;border-radius:18px;background:linear-gradient(145deg,#efe7d2,#ddd1b5);box-shadow:0 20px 60px #19332914;color:var(--wagon-ink)}
.wagon-trail__heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.4rem}.wagon-trail__heading .eyebrow{margin:0 0 .5rem;color:#5b725d}.wagon-trail__heading h3{margin:0;font:clamp(2rem,4vw,3.4rem)/1.02 var(--serif,Georgia,serif);letter-spacing:-.035em}.wagon-trail__heading>p{max-width:31rem;margin:0;color:#56655b;font-size:.95rem;line-height:1.6}
.wagon-atlas{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(17rem,.72fr);min-height:590px;border:1px solid #9c9b88;border-radius:14px;overflow:hidden;background:#d9cfb5}.wagon-atlas__map{position:relative;min-width:0;min-height:590px;overflow:hidden;background:#9fb8ba}.wagon-atlas__map-art{display:block;width:100%;height:100%;position:absolute;inset:0}.wagon-atlas__sea{fill:#9db4b5}.wagon-atlas__coast-shadow{fill:#536f6540;transform:translate(7px,9px)}.wagon-atlas__land{fill:var(--wagon-parchment);stroke:#6d795e;stroke-width:3}.wagon-atlas__grain{fill:url(#wagon-parchment-grain);color:#705d42}.wagon-atlas__river{fill:none;stroke:#89a9aa;stroke-width:3;opacity:.65}.wagon-atlas__trail-glow{fill:none;stroke:#ffe2a7;stroke-width:8;opacity:.42;filter:url(#wagon-trail-glow)}.wagon-atlas__trail{fill:none;stroke:#fff3c7;stroke-width:4;stroke-linecap:round;stroke-dasharray:2 14;animation:wagon-trail-flow 7s linear infinite}.wagon-atlas__compass circle{fill:#efe4c8aa;stroke:#6d6e59}.wagon-atlas__compass path{fill:#6c735d}.wagon-atlas__compass text{font:700 12px var(--sans,system-ui);text-anchor:middle;fill:#53604f}
.wagon-atlas__pins{position:absolute;inset:0;z-index:3}.wagon-atlas__pin{position:absolute;left:var(--pin-x);top:var(--pin-y);transform:translate(-50%,-50%);width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.wagon-atlas__pin::before{content:"";position:absolute;inset:13px;border:3px solid #fff6d5;border-radius:50%;background:#345844;box-shadow:0 0 0 4px #34584445,0 4px 12px #11271f42}.wagon-atlas__pin span{position:absolute;left:50%;top:calc(100% + 1px);transform:translateX(-50%);padding:3px 7px;border-radius:999px;background:#f5ecd5e8;color:#243b30;font:700 11px/1.25 var(--sans,system-ui);white-space:nowrap;box-shadow:0 2px 8px #26372d20}.wagon-atlas__pin[aria-pressed=true]::before{background:#9b613d;box-shadow:0 0 0 5px #fff1b994,0 5px 16px #14251f4a}.wagon-atlas__pin:focus-visible{outline:3px solid #17372c;outline-offset:2px}
.wagon-atlas__wagon{position:absolute;z-index:4;left:var(--wagon-x);top:var(--wagon-y);width:58px;transform:translate(-50%,-120%);filter:drop-shadow(0 5px 6px #15261e4a);transition:left .55s cubic-bezier(.2,.75,.25,1),top .55s cubic-bezier(.2,.75,.25,1);pointer-events:none}.wagon-atlas__wagon svg{display:block;width:100%;height:auto}.wagon-atlas__wagon-roof{fill:#f2e7c8;stroke:#634e38;stroke-width:3}.wagon-atlas__wagon-body{fill:#8b6c4e;stroke:#543f2f;stroke-width:3}.wagon-atlas__wagon-lines{fill:none;stroke:#9a7a58;stroke-width:1.5}.wagon-atlas__wagon circle{fill:#43362a;stroke:#dfc993;stroke-width:2}
.wagon-atlas__panel{display:flex;flex-direction:column;padding:clamp(1.3rem,3vw,2rem);background:linear-gradient(180deg,#203e32,#17352b);color:#f9f2df}.wagon-atlas__meta{margin:0 0 .75rem;color:#ddca97;font:700 .78rem/1.4 var(--sans,system-ui);letter-spacing:.08em;text-transform:uppercase}.wagon-atlas__panel h4{margin:0;font:clamp(1.75rem,3vw,2.45rem)/1.05 var(--serif,Georgia,serif);letter-spacing:-.03em}.wagon-atlas__panel-copy{margin:1rem 0 1.4rem;color:#dbe3d9;font-size:.95rem;line-height:1.65}.wagon-atlas__tabs{display:grid;gap:.45rem;margin-top:auto}.wagon-atlas__tabs button{min-height:44px;padding:.65rem .75rem;border:1px solid #87998e;border-radius:8px;background:transparent;color:#f4eddd;font:600 .86rem/1.3 var(--sans,system-ui);text-align:left;cursor:pointer}.wagon-atlas__tabs button[aria-selected=true]{border-color:#e6cf98;background:#e6cf9817;color:#ffe9b4}.wagon-atlas__tabs button:focus-visible,.wagon-timeline button:focus-visible{outline:3px solid #f1d79b;outline-offset:3px}.wagon-atlas__evidence{margin-top:1.2rem;padding-top:1.1rem;border-top:1px solid #ffffff2b}.wagon-atlas__evidence p{margin:0 0 .85rem;color:#dce5da;font-size:.9rem;line-height:1.6}.wagon-atlas__evidence .text-link{color:#ffe8b1}
.wagon-timeline{display:grid;grid-template-columns:repeat(var(--wagon-waypoint-count,7),minmax(0,1fr));gap:1px;margin-top:1rem;border:1px solid #aca78f;border-radius:10px;overflow:hidden;background:#aca78f}.wagon-timeline button{min-height:68px;padding:.6rem .35rem;border:0;background:#efe5cd;color:#3c4c41;cursor:pointer}.wagon-timeline button span,.wagon-timeline button small{display:block}.wagon-timeline button span{font:700 .9rem/1.2 var(--sans,system-ui)}.wagon-timeline button small{margin-top:.25rem;color:#6b705f;font-size:.66rem}.wagon-timeline button[aria-current=step]{background:#345844;color:#fff5de}.wagon-timeline button[aria-current=step] small{color:#e5d9b8}
html.dark-mode .wagon-trail{border-color:#52665b;background:linear-gradient(145deg,#1c3027,#14261f);color:#f2ead9}.dark-mode .wagon-trail__heading>p{color:#ccd6ce}.dark-mode .wagon-atlas{border-color:#56675e}.dark-mode .wagon-timeline{border-color:#4d6256;background:#4d6256}
@keyframes wagon-trail-flow{to{stroke-dashoffset:-128}}
@media(max-width:900px){.wagon-atlas{grid-template-columns:1fr;min-height:0}.wagon-atlas__map{min-height:560px}.wagon-atlas__panel{min-height:0}.wagon-atlas__tabs{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:.5rem}.wagon-atlas__tabs button{text-align:center}.wagon-trail__heading{align-items:start;flex-direction:column;gap:.8rem}.wagon-timeline{overflow-x:auto;grid-template-columns:repeat(var(--wagon-waypoint-count,7),minmax(88px,1fr));scrollbar-width:thin}}
@media(max-width:600px){.wagon-trail{padding:.75rem;margin-inline:-6px;border-radius:13px}.wagon-atlas__map{min-height:470px}.wagon-atlas__pin span{font-size:10px;padding:2px 5px}.wagon-atlas__wagon{width:50px}.wagon-atlas__panel{padding:1.15rem}.wagon-atlas__tabs{grid-template-columns:1fr}.wagon-atlas__tabs button{text-align:left}.wagon-timeline{margin-bottom:.2rem}.wagon-trail__heading h3{font-size:2.15rem}}
@media(max-width:390px){.wagon-atlas__map{min-height:430px}.wagon-trail{margin-inline:-10px}.wagon-atlas__pin span{display:none}.wagon-atlas__pin[aria-pressed=true] span{display:block}.wagon-atlas__wagon{width:45px}.wagon-atlas__panel h4{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){.wagon-atlas__trail{animation:none}.wagon-atlas__wagon{transition:none}}
@media(forced-colors:active){.wagon-trail,.wagon-atlas,.wagon-atlas__panel,.wagon-atlas__pin,.wagon-atlas__tabs button,.wagon-timeline button{border:2px solid CanvasText}.wagon-atlas__trail,.wagon-atlas__trail-glow{stroke:CanvasText}.wagon-atlas__land{fill:Canvas}}
@media print{.wagon-atlas__pins,.wagon-atlas__wagon,.wagon-atlas__tabs,.wagon-timeline{display:none}.wagon-atlas{display:block}.wagon-atlas__map{min-height:420px}.wagon-atlas__panel{color:#000;background:#fff}}

/* V2 atlas texture: these are deliberately unlabeled, stylised terrain cues,
 * not a claim to reproduce exact administrative or physical geography. */
.wagon-atlas__region-texture{color:#765f43}.wagon-atlas__region-line{fill:none;stroke:#7a7058;stroke-width:1.15;stroke-dasharray:5 5;opacity:.34}.wagon-atlas__river--minor{stroke-width:1.8;opacity:.5}.wagon-atlas__mountains path{fill:none;stroke:#77684d;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.wagon-atlas__upland{fill:none;stroke:#8b7757;stroke-width:5;stroke-linecap:round;stroke-dasharray:1 9;opacity:.28}.wagon-atlas__era-focus circle{fill:#e4b967;opacity:0;filter:url(#wagon-trail-glow);transition:opacity .35s ease}.wagon-atlas__map.is-wagon-map-transitioning .wagon-atlas__era-focus circle{opacity:.045}

.wagon-slider{margin-top:1rem;padding:.9rem 1rem 1rem;border:1px solid #aca78f;border-radius:10px;background:#efe5cd;color:#35483b}.wagon-slider__label{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.65rem}.wagon-slider__label label{font:700 .82rem/1.35 var(--sans,system-ui);letter-spacing:.03em}.wagon-slider__label output{min-width:4.25rem;padding:.25rem .55rem;border-radius:999px;background:#345844;color:#fff5de;text-align:center;font:700 .82rem/1.3 var(--sans,system-ui)}.wagon-slider input[type="range"]{width:100%;height:44px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:grab}.wagon-slider input[type="range"]:active{cursor:grabbing}.wagon-slider input[type="range"]::-webkit-slider-runnable-track{height:6px;border:1px solid #8f8a73;border-radius:999px;background:linear-gradient(90deg,#567760,#c1a86f)}.wagon-slider input[type="range"]::-moz-range-track{height:6px;border:1px solid #8f8a73;border-radius:999px;background:linear-gradient(90deg,#567760,#c1a86f)}.wagon-slider input[type="range"]::-webkit-slider-thumb{width:34px;height:34px;margin-top:-15px;border:3px solid #f0d79f;border-radius:50%;-webkit-appearance:none;appearance:none;background:radial-gradient(circle,#5e4934 0 18%,transparent 20% 41%,#5e4934 43% 49%,transparent 51%),repeating-conic-gradient(#5e4934 0 8deg,#d8bd82 8deg 45deg);box-shadow:0 2px 0 #594835,0 4px 12px #26372d42}.wagon-slider input[type="range"]::-moz-range-thumb{width:30px;height:30px;border:3px solid #f0d79f;border-radius:50%;background:radial-gradient(circle,#5e4934 0 18%,transparent 20% 41%,#5e4934 43% 49%,transparent 51%),repeating-conic-gradient(#5e4934 0 8deg,#d8bd82 8deg 45deg);box-shadow:0 2px 0 #594835,0 4px 12px #26372d42}.wagon-slider input[type="range"]:focus-visible{outline:3px solid #17372c;outline-offset:3px}.wagon-slider__years{display:grid;grid-template-columns:repeat(var(--wagon-waypoint-count,7),minmax(0,1fr));gap:.25rem;margin-top:-.2rem;color:#697061;font:600 .65rem/1.2 var(--sans,system-ui);text-align:center}.dark-mode .wagon-slider{border-color:#52665b;background:#21362c;color:#f2ead9}.dark-mode .wagon-slider__years{color:#ccd6ce}

@media(max-width:600px){.wagon-slider{padding:.8rem .65rem}.wagon-slider__years{font-size:.58rem}.wagon-slider__label{align-items:flex-start}.wagon-slider input[type="range"]{height:48px}}
@media(max-width:390px){.wagon-slider__years span:nth-child(even){visibility:hidden}.wagon-slider__label label{font-size:.77rem}}
@media(prefers-reduced-motion:reduce){.wagon-atlas__era-focus circle{transition:none}}
@media print{.wagon-slider{display:none}}

/* Register one progress value for both the painted track and the pointer-inert
 * visual thumb. The real range still owns input/focus semantics; timeline-driven
 * changes interpolate this value while direct range input opts out below. */
@property --wagon-slider-progress{
  syntax:"<percentage>";
  inherits:true;
  initial-value:0%;
}

/* V3 usability layout. The atlas wrapper becomes layout-transparent so the map,
 * reading panel and both year controls can share one responsive grid without a
 * Blade/JS reorder. Desktop deliberately stacks the controls before the reading
 * panel so changing the year never means looking hundreds of pixels away from the
 * text it changes. Narrow screens retain the map + timeline-rail composition. */
.wagon-trail{
  --wagon-panel-reserve:37.5rem;
  --wagon-slider-progress:0%;
  --wagon-slider-year-active:#2f5740;
  display:grid;
  grid-template-columns:minmax(0,1.58fr) minmax(19rem,.72fr);
  grid-template-areas:
    "heading heading"
    "map timeline"
    "map slider"
    "map panel";
  grid-template-rows:auto auto auto auto;
  gap:.7rem 1rem;
  width:100%;
  min-width:0;
  transition:--wagon-slider-progress .36s cubic-bezier(.4,0,.2,1);
}
.wagon-trail>*{min-width:0}
.wagon-trail__heading{grid-area:heading;margin-bottom:.35rem}
.wagon-atlas{display:contents}
.wagon-atlas__map{
  grid-area:map;
  align-self:stretch;
  min-height:0;
  height:100%;
  border:1px solid #8d9180;
  border-radius:14px;
  isolation:isolate;
  box-shadow:0 14px 34px #26372d16;
  transition:transform .32s cubic-bezier(.2,.75,.25,1),opacity .28s ease,filter .32s ease,box-shadow .32s ease;
}
.wagon-atlas__panel{
  grid-area:panel;
  align-self:start;
  block-size:var(--wagon-panel-reserve);
  min-height:0;
  min-width:0;
  border:1px solid #405c4f;
  border-radius:14px;
  overflow:auto;
  overscroll-behavior:contain;
  overflow-wrap:anywhere;
  box-shadow:0 12px 28px #17302617;
  transition:transform .36s cubic-bezier(.16,.82,.22,1),opacity .28s ease,filter .36s ease,box-shadow .36s ease;
}
.wagon-atlas__meta{min-height:1.2rem;overflow-wrap:anywhere}
.wagon-atlas__panel-copy{margin-bottom:1rem}
.wagon-atlas__meta,.wagon-atlas__panel h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence{transition:transform .36s cubic-bezier(.16,.82,.22,1),opacity .26s ease,filter .36s ease}
.wagon-atlas__tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:0}
.wagon-atlas__tabs button{
  min-width:0;
  min-height:48px;
  padding:.6rem .5rem;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.wagon-atlas__tabs button[aria-selected=true]{box-shadow:inset 0 0 0 1px #e6cf98}
.wagon-atlas__evidence{margin-top:1rem}
.wagon-atlas__evidence .text-link{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.wagon-slider{grid-area:slider;margin:0;align-self:start;padding:.65rem .8rem .7rem;transition:filter .26s ease,box-shadow .3s ease}
.wagon-slider__label{margin-bottom:.25rem}
.wagon-slider__controls{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap;min-width:0}
.wagon-slider__label output{transform-origin:center;transition:transform .3s cubic-bezier(.2,.78,.25,1),opacity .24s ease,filter .3s ease,box-shadow .3s ease}
.wagon-slider__years{margin-top:-.35rem}
.wagon-slider__years span{transform-origin:center top;transition:transform .28s cubic-bezier(.2,.78,.25,1),opacity .22s ease,color .22s ease}
.wagon-slider__range{position:relative;display:grid;align-items:center}
.wagon-slider__range>input[type="range"],.wagon-slider__visual-track{grid-area:1/1}
.wagon-slider__range>input[type="range"]{position:relative;z-index:2;transition:filter .28s ease}
.wagon-slider__visual-track{position:relative;z-index:3;height:0;margin-inline:17px;pointer-events:none}
.wagon-slider__visual-thumb{position:absolute;left:var(--wagon-slider-progress);top:0;box-sizing:border-box;width:34px;height:34px;border:3px solid #f0d79f;border-radius:50%;background:radial-gradient(circle,#5e4934 0 18%,transparent 20% 41%,#5e4934 43% 49%,transparent 51%),repeating-conic-gradient(#5e4934 0 8deg,#d8bd82 8deg 45deg);box-shadow:0 2px 0 #594835,0 4px 12px #26372d42;pointer-events:none;transform:translate(-50%,-50%);transform-origin:center;transition:transform .38s cubic-bezier(.2,.78,.22,1),box-shadow .28s ease,filter .28s ease;will-change:transform}
.wagon-slider input[type="range"]::-webkit-slider-runnable-track{background:linear-gradient(90deg,#456b51 0 var(--wagon-slider-progress),#c2b17f var(--wagon-slider-progress) 100%);box-shadow:inset 0 1px 2px #31483824,0 1px 0 #fff9e36b;transition:box-shadow .28s ease,filter .28s ease}
.wagon-slider input[type="range"]::-moz-range-track{background:linear-gradient(90deg,#456b51 0 var(--wagon-slider-progress),#c2b17f var(--wagon-slider-progress) 100%);box-shadow:inset 0 1px 2px #31483824,0 1px 0 #fff9e36b;transition:box-shadow .28s ease,filter .28s ease}
.wagon-slider input[type="range"]::-webkit-slider-thumb{border-color:transparent;background:transparent;box-shadow:none;filter:none}
.wagon-slider input[type="range"]::-moz-range-thumb{width:34px;height:34px;border-color:transparent;background:transparent;box-shadow:none;filter:none}
.wagon-slider input[type="range"]:hover+.wagon-slider__visual-track .wagon-slider__visual-thumb{box-shadow:0 2px 0 #594835,0 5px 15px #26372d52,0 0 0 4px #f0d79f35;filter:saturate(1.08)}
.wagon-slider input[type="range"]:active+.wagon-slider__visual-track .wagon-slider__visual-thumb{transform:translate(-50%,-50%) scale(.96);box-shadow:0 1px 0 #594835,0 3px 9px #26372d3d}
.wagon-slider input[type="range"]:focus-visible+.wagon-slider__visual-track .wagon-slider__visual-thumb{box-shadow:0 2px 0 #594835,0 4px 12px #26372d42,0 0 0 4px #17372c38}
.wagon-trail[data-wagon-transition-source="slider"]{transition-duration:0s}
.wagon-trail.is-wagon-transitioning:not([data-wagon-transition-source="slider"])[data-wagon-transition-direction="forward"] .wagon-slider__visual-thumb{animation:wagon-slider-wheel-forward .36s cubic-bezier(.2,.72,.22,1)}
.wagon-trail.is-wagon-transitioning:not([data-wagon-transition-source="slider"])[data-wagon-transition-direction="backward"] .wagon-slider__visual-thumb{animation:wagon-slider-wheel-backward .36s cubic-bezier(.2,.72,.22,1)}
html.dark-mode .wagon-trail{--wagon-slider-year-active:#f0d89e}
.wagon-timeline{
  grid-area:timeline;
  align-self:start;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  margin:0;
  overflow:hidden;
}
.wagon-timeline button{
  min-width:0;
  min-height:48px;
  padding:.42rem .3rem;
  overflow-wrap:anywhere;
  transition:transform .28s cubic-bezier(.2,.75,.25,1),background-color .18s ease,color .18s ease,box-shadow .28s ease;
}
.wagon-timeline button[aria-current=step]{box-shadow:inset 0 0 0 2px #f0d89e}
.wagon-atlas__pin::before{transition:transform .28s cubic-bezier(.2,.75,.25,1),background-color .18s ease,box-shadow .28s ease,border-color .18s ease}
.wagon-atlas__wagon{transition:left var(--wagon-leg-duration,.56s) cubic-bezier(.2,.72,.2,1),top var(--wagon-leg-duration,.56s) cubic-bezier(.2,.72,.2,1),transform .32s cubic-bezier(.2,.75,.25,1),filter .32s ease}
.wagon-atlas__wagon circle{transform-box:fill-box;transform-origin:center}

/* JS changes content synchronously, then promotes pending -> active on the next
 * frame. Only paint/compositor properties move here, so the grid geometry cannot
 * participate in the transition or push the reader's viewport. */
.wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel{opacity:.88;transform:translateY(2px);filter:saturate(.95) brightness(.985);box-shadow:0 9px 22px #17302612}
.wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence){opacity:.72;transform:translateY(3px);filter:saturate(.9)}
.wagon-trail[data-wagon-transition="pending"] .wagon-atlas__map{opacity:.985;transform:scale(.9995);filter:saturate(.97);box-shadow:0 11px 28px #26372d12}
.wagon-trail[data-wagon-transition="pending"] .wagon-atlas__wagon{transform:translate(var(--wagon-marker-anchor-x,-50%),-120%) scale(.94);filter:drop-shadow(0 4px 5px #15261e3d)}
.wagon-trail[data-wagon-transition="pending"][data-wagon-transition-direction="forward"] .wagon-atlas__panel{transform:translateX(3px)}
.wagon-trail[data-wagon-transition="pending"][data-wagon-transition-direction="backward"] .wagon-atlas__panel{transform:translateX(-3px)}
.wagon-atlas__panel.is-wagon-panel-transitioning{opacity:1;transform:translate(0,0);filter:saturate(1.02) brightness(1.012);box-shadow:0 12px 28px #17302617,0 0 0 1px #f0d89e45,0 0 24px #e8c87c38}
.wagon-atlas__panel.is-wagon-panel-transitioning :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence){opacity:1;transform:translateY(0);filter:none}
.wagon-atlas__map.is-wagon-map-transitioning{opacity:1;transform:scale(1);filter:none;box-shadow:0 14px 34px #26372d16}
.wagon-atlas__wagon.is-wagon-marker-transitioning{transform:translate(var(--wagon-marker-anchor-x,-50%),-120%) scale(1);filter:drop-shadow(0 5px 6px #15261e4a)}
.wagon-atlas__pin.is-wagon-active::before{transform:scale(1.08);box-shadow:0 0 0 5px #fff1b994,0 5px 16px #14251f4a}
.wagon-timeline button.is-wagon-active{transform:translateY(-1px);box-shadow:inset 0 0 0 2px #f0d89e,0 2px 7px #26372d20}
.wagon-trail.is-wagon-transitioning .wagon-atlas__map.is-wagon-map-transitioning .wagon-atlas__era-focus circle{filter:drop-shadow(0 0 7px #e4b9678c) brightness(1.08)}
.wagon-trail.is-wagon-transitioning .wagon-atlas__wagon.is-wagon-marker-transitioning{filter:drop-shadow(0 0 9px #ffe8ae57) drop-shadow(0 5px 6px #15261e4a)}
.wagon-trail.is-wagon-transitioning .wagon-atlas__pin.is-wagon-active::before{box-shadow:0 0 0 6px #fff1b9a8,0 5px 16px #14251f4a}
.wagon-trail.is-wagon-transitioning .wagon-timeline button.is-wagon-active{box-shadow:inset 0 0 0 2px #f0d89e,0 3px 9px #26372d28}
.wagon-trail[data-wagon-transition="pending"] .wagon-slider{filter:saturate(.96)}
.wagon-trail[data-wagon-transition="pending"] .wagon-slider__label output{opacity:.88;transform:translateY(1px) scale(.975);filter:saturate(.92)}
.wagon-trail[data-wagon-transition="active"] .wagon-slider{filter:none;box-shadow:0 3px 12px #26372d10}
.wagon-trail[data-wagon-transition="active"] .wagon-slider__label output{opacity:1;transform:none;filter:none;box-shadow:0 2px 7px #1f3e2f24}

/* Sequential-travel hooks from wagon-trail.js. Position changes remain isolated
 * to the absolutely positioned marker; the extra road-roll and wheel cues below
 * are transform/filter/SVG-paint only and never participate in page geometry. */
.wagon-atlas__wagon.is-wagon-travelling{will-change:transform,filter;filter:drop-shadow(0 7px 8px #15261e52)}
.wagon-atlas__wagon.is-wagon-travelling[data-wagon-travel-direction="forward"]{--wagon-road-tilt:1.15deg}
.wagon-atlas__wagon.is-wagon-travelling[data-wagon-travel-direction="forward"]{--wagon-road-settle:-.5deg}
.wagon-atlas__wagon.is-wagon-travelling[data-wagon-travel-direction="backward"]{--wagon-road-tilt:-1.15deg;--wagon-road-settle:.5deg}
.wagon-atlas__wagon.is-wagon-travelling svg{transform-origin:50% 80%;animation:wagon-road-roll var(--wagon-leg-duration,.56s) ease-in-out infinite}
.wagon-atlas__wagon.is-wagon-wheel-spinning circle{stroke-dasharray:5 2;animation:wagon-wheel-turn var(--wagon-leg-duration,.56s) linear infinite}
.wagon-atlas__wagon.is-wagon-wheel-spinning[data-wagon-travel-direction="backward"] circle{animation-direction:reverse}
.wagon-trail.is-wagon-travelling .wagon-atlas__pin.is-wagon-active::before{transform:scale(1.15);box-shadow:0 0 0 5px #fff1b9b0,0 6px 18px #14251f55}

@keyframes wagon-road-roll{
  0%,100%{transform:translateY(0) rotate(0)}
  38%{transform:translateY(-1.4px) rotate(var(--wagon-road-tilt,1deg))}
  72%{transform:translateY(.55px) rotate(var(--wagon-road-settle,-.5deg))}
}
@keyframes wagon-wheel-turn{to{transform:rotate(360deg)}}
@keyframes wagon-slider-wheel-forward{
  from{transform:translate(-50%,-50%) rotate(0)}
  to{transform:translate(-50%,-50%) rotate(360deg)}
}
@keyframes wagon-slider-wheel-backward{
  from{transform:translate(-50%,-50%) rotate(0)}
  to{transform:translate(-50%,-50%) rotate(-360deg)}
}

@media(min-width:901px){
  .wagon-atlas__panel{padding:1.35rem 1.45rem}
  .wagon-atlas__meta{margin-bottom:.45rem;font-size:.73rem;line-height:1.35}
  .wagon-atlas__panel h4{font-size:clamp(1.65rem,2.2vw,2rem);line-height:1.08}
  .wagon-atlas__panel-copy{margin:.7rem 0 .8rem;font-size:.9rem;line-height:1.5}
  .wagon-atlas__tabs button{padding:.45rem .35rem;font-size:.78rem;line-height:1.2}
  .wagon-atlas__evidence{margin-top:.7rem;padding-top:.75rem}
  .wagon-atlas__evidence p{margin-bottom:.6rem;font-size:.86rem;line-height:1.5}
}

@media(min-width:901px) and (max-width:1150px){
  .wagon-trail{--wagon-panel-reserve:38.25rem}
}

@media(max-width:900px){
  .wagon-trail{
    grid-template-columns:minmax(0,1fr) minmax(5.5rem,6.5rem);
    grid-template-areas:
      "heading heading"
      "map timeline"
      "slider slider"
      "panel panel";
    gap:.75rem;
  }
  .wagon-trail__heading{margin-bottom:.2rem}
  .wagon-atlas__map{height:auto;min-height:35rem;border-radius:13px}
  .wagon-timeline{
    height:100%;
    min-height:0;
    grid-template-columns:1fr;
    grid-template-rows:repeat(var(--wagon-waypoint-count,7),minmax(44px,1fr));
    border-radius:12px;
  }
  .wagon-timeline button{min-height:44px;padding:.3rem .25rem}
  .wagon-atlas__panel{block-size:auto;min-height:30rem;border-radius:13px;overflow:visible;overscroll-behavior:auto}
  .wagon-slider{margin:0}
}

@media(max-width:600px){
  .wagon-trail{
    grid-template-columns:minmax(0,1fr) minmax(3.6rem,4rem);
    gap:.55rem;
    margin-inline:0;
    padding:.65rem;
    max-width:100%;
    overflow:clip;
  }
  .wagon-trail__heading{gap:.55rem;margin-bottom:.1rem}
  .wagon-trail__heading>p{font-size:.88rem;line-height:1.5}
  .wagon-atlas__map{min-height:29rem}
  .wagon-atlas__pin span{font-size:10px;padding:2px 5px}
  .wagon-atlas__panel{min-height:34rem;padding:1rem}
  .wagon-atlas__panel-copy{font-size:.9rem;line-height:1.55}
  .wagon-atlas__tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}
  .wagon-atlas__tabs button{min-height:52px;padding:.45rem .25rem;font-size:.72rem;line-height:1.22}
  .wagon-timeline button small{display:none}
  .wagon-timeline button span{font-size:.72rem;line-height:1.15}
  .wagon-slider{padding:.7rem .65rem .75rem}
  .wagon-slider__label{flex-wrap:wrap;align-items:center;gap:.35rem .7rem;margin-bottom:.35rem}
  .wagon-slider__label label{min-width:0;font-size:.76rem}
  .wagon-slider__controls{width:100%;justify-content:space-between}
  .wagon-slider__label output{min-width:3.8rem}
  .wagon-slider__years{font-size:.56rem;gap:.1rem}
}

@media(max-width:390px){
  .wagon-trail{margin-inline:0}
  .wagon-atlas__map{min-height:27rem}
  .wagon-atlas__pin span{display:none}
  .wagon-atlas__pin[aria-pressed=true] span{display:block;max-width:6.6rem;white-space:normal;text-align:center}
  .wagon-atlas__panel{min-height:35rem}
  .wagon-atlas__panel h4{font-size:1.75rem}
  .wagon-slider__years span:nth-child(even){visibility:visible}
}

/* At 305–360px, keeping a side rail would make the map too narrow to use. The
 * same seven controls become a compact 4+3 row directly below the full-width
 * map, followed immediately by the slider and stable reading panel. */
@media(max-width:360px){
  .wagon-trail{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "heading"
      "map"
      "timeline"
      "slider"
      "panel";
    gap:.5rem;
    padding:.55rem;
  }
  .wagon-trail__heading h3{font-size:clamp(1.8rem,10vw,2.05rem)}
  .wagon-atlas__map{min-height:25rem}
  .wagon-timeline{
    height:auto;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-rows:none;
    grid-auto-rows:minmax(48px,auto);
  }
  .wagon-timeline button{min-height:48px;padding:.35rem .2rem}
  .wagon-timeline button span{font-size:.72rem}
  .wagon-slider__years{font-size:.5rem}
  .wagon-atlas__panel{min-height:38rem;padding:.9rem}
  .wagon-atlas__tabs button{min-height:56px;font-size:.68rem}
}

@media(max-width:330px){
  .wagon-atlas__panel{block-size:39rem;min-height:39rem;overflow:auto;overscroll-behavior:contain}
}

@media(max-width:315px){
  .wagon-atlas__panel{block-size:43rem;min-height:43rem}
}

@media(prefers-reduced-motion:reduce){
  .wagon-trail,.wagon-slider,.wagon-slider__label output,.wagon-slider__years span,.wagon-slider input[type="range"],.wagon-slider__visual-thumb,.wagon-atlas__map,.wagon-atlas__panel,.wagon-atlas__panel :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence),.wagon-atlas__wagon,.wagon-atlas__wagon svg,.wagon-atlas__wagon circle,.wagon-atlas__pin::before,.wagon-atlas__tabs button,.wagon-timeline button{animation:none;transition:none}
  .wagon-slider input[type="range"]::-webkit-slider-runnable-track,.wagon-slider input[type="range"]::-webkit-slider-thumb,.wagon-slider input[type="range"]::-moz-range-track,.wagon-slider input[type="range"]::-moz-range-thumb{animation:none;transition:none}
  .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel,.wagon-trail[data-wagon-transition="pending"] .wagon-atlas__map,.wagon-trail[data-wagon-transition="pending"] .wagon-atlas__wagon,.wagon-atlas__panel.is-wagon-panel-transitioning,.wagon-atlas__map.is-wagon-map-transitioning,.wagon-atlas__wagon.is-wagon-marker-transitioning,.wagon-atlas__pin.is-wagon-active::before,.wagon-timeline button.is-wagon-active{transform:none;filter:none;opacity:1}
  .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel,.wagon-atlas__panel.is-wagon-panel-transitioning{box-shadow:0 12px 28px #17302617}
  .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence),.wagon-atlas__panel.is-wagon-panel-transitioning :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence){transform:none;filter:none;opacity:1}
  .wagon-trail[data-wagon-transition="pending"][data-wagon-transition-direction="forward"] .wagon-atlas__panel,.wagon-trail[data-wagon-transition="pending"][data-wagon-transition-direction="backward"] .wagon-atlas__panel{transform:none}
  .wagon-trail.is-wagon-transitioning .wagon-atlas__map.is-wagon-map-transitioning .wagon-atlas__era-focus circle{filter:url(#wagon-trail-glow)}
  .wagon-trail.is-wagon-transitioning .wagon-atlas__wagon.is-wagon-marker-transitioning{filter:none}
  .wagon-trail.is-wagon-transitioning .wagon-atlas__pin.is-wagon-active::before{box-shadow:0 0 0 5px #fff1b994,0 5px 16px #14251f4a}
  .wagon-trail.is-wagon-transitioning .wagon-timeline button.is-wagon-active{box-shadow:inset 0 0 0 2px #f0d89e,0 2px 7px #26372d20}
}

html[data-motion='off'] .wagon-atlas__trail{animation:none}
html[data-motion='off'] .wagon-trail,html[data-motion='off'] .wagon-slider,html[data-motion='off'] .wagon-slider__label output,html[data-motion='off'] .wagon-slider__years span,html[data-motion='off'] .wagon-slider input[type="range"],html[data-motion='off'] .wagon-slider__visual-thumb,html[data-motion='off'] .wagon-atlas__era-focus circle,html[data-motion='off'] .wagon-atlas__map,html[data-motion='off'] .wagon-atlas__panel,html[data-motion='off'] .wagon-atlas__panel :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence),html[data-motion='off'] .wagon-atlas__wagon,html[data-motion='off'] .wagon-atlas__wagon svg,html[data-motion='off'] .wagon-atlas__wagon circle,html[data-motion='off'] .wagon-atlas__pin::before,html[data-motion='off'] .wagon-atlas__tabs button,html[data-motion='off'] .wagon-timeline button{animation:none;transition:none}
html[data-motion='off'] .wagon-slider input[type="range"]::-webkit-slider-runnable-track,html[data-motion='off'] .wagon-slider input[type="range"]::-webkit-slider-thumb,html[data-motion='off'] .wagon-slider input[type="range"]::-moz-range-track,html[data-motion='off'] .wagon-slider input[type="range"]::-moz-range-thumb{animation:none;transition:none}
html[data-motion='off'] .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel,html[data-motion='off'] .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__map,html[data-motion='off'] .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__wagon,html[data-motion='off'] .wagon-atlas__panel.is-wagon-panel-transitioning,html[data-motion='off'] .wagon-atlas__map.is-wagon-map-transitioning,html[data-motion='off'] .wagon-atlas__wagon.is-wagon-marker-transitioning,html[data-motion='off'] .wagon-atlas__pin.is-wagon-active::before,html[data-motion='off'] .wagon-timeline button.is-wagon-active{transform:none;filter:none;opacity:1}
html[data-motion='off'] .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel,html[data-motion='off'] .wagon-atlas__panel.is-wagon-panel-transitioning{box-shadow:0 12px 28px #17302617}
html[data-motion='off'] .wagon-trail[data-wagon-transition="pending"] .wagon-atlas__panel :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence),html[data-motion='off'] .wagon-atlas__panel.is-wagon-panel-transitioning :is(.wagon-atlas__meta,h4,.wagon-atlas__panel-copy,.wagon-atlas__tabs,.wagon-atlas__evidence){transform:none;filter:none;opacity:1}
html[data-motion='off'] .wagon-trail.is-wagon-transitioning .wagon-atlas__map.is-wagon-map-transitioning .wagon-atlas__era-focus circle{filter:url(#wagon-trail-glow)}
html[data-motion='off'] .wagon-trail.is-wagon-transitioning .wagon-atlas__wagon.is-wagon-marker-transitioning{filter:none}
html[data-motion='off'] .wagon-trail.is-wagon-transitioning .wagon-atlas__pin.is-wagon-active::before{box-shadow:0 0 0 5px #fff1b994,0 5px 16px #14251f4a}
html[data-motion='off'] .wagon-trail.is-wagon-transitioning .wagon-timeline button.is-wagon-active{box-shadow:inset 0 0 0 2px #f0d89e,0 2px 7px #26372d20}

/* Wagon-specific visual editor. The public component remains wrapper-free; this
 * dialog is mounted under body only while an authenticated live editor is open. */
.wagon-live-editor__launch{position:absolute;z-index:8;top:.65rem;right:.65rem;min-height:40px;padding:.55rem .8rem;border:2px solid #fff;border-radius:999px;background:#17372c;color:#fff;font:700 .76rem/1 var(--sans,system-ui);box-shadow:0 5px 18px #172b2240;cursor:pointer}
.wagon-live-editor__launch:focus-visible{outline:3px solid #f0d89e;outline-offset:2px}
.wagon-live-editor{width:min(1100px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);padding:0;border:0;border-radius:18px;background:#f8f4e8;color:#17372c;box-shadow:0 24px 80px #071b145c;overflow:hidden}
.wagon-live-editor::backdrop{background:#071b1480;backdrop-filter:blur(3px)}
.wagon-live-editor__shell{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:calc(100vh - 2rem)}
.wagon-live-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;border-bottom:1px solid #b9c5ba;background:#17372c;color:#fff}
.wagon-live-editor__header strong{display:block;font-size:1.1rem}.wagon-live-editor__header small{display:block;margin-top:.2rem;color:#e4ecdf}
.wagon-live-editor__close{width:42px;height:42px;border:1px solid #ffffff78;border-radius:50%;background:transparent;color:#fff;font-size:1.45rem;cursor:pointer}
.wagon-live-editor__body{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);min-height:0;overflow:hidden}
.wagon-live-editor__rail{padding:.8rem;border-right:1px solid #cbd2c7;background:#ece8d9;overflow:auto}
.wagon-live-editor__rail-actions{position:sticky;top:0;z-index:1;padding-bottom:.65rem;background:#ece8d9}.wagon-live-editor__rail-actions button{width:100%;min-height:42px;border:1px solid #446653;border-radius:10px;background:#fff;color:#17372c;font-weight:700;cursor:pointer}
.wagon-live-editor__list{display:grid;gap:.45rem}.wagon-live-editor__item{display:grid;gap:.15rem;width:100%;padding:.65rem .7rem;border:1px solid #b8c2b7;border-radius:10px;background:#fff;color:#213b30;text-align:left;cursor:pointer}.wagon-live-editor__item strong,.wagon-live-editor__item small{overflow:hidden;text-overflow:ellipsis}.wagon-live-editor__item.is-active{border-color:#17372c;box-shadow:inset 0 0 0 1px #17372c;background:#f3ead0}
.wagon-live-editor__form{display:grid;gap:.85rem;padding:1rem 1.1rem 1.2rem;overflow:auto}.wagon-live-editor__form label{display:grid;gap:.32rem;font:700 .76rem/1.35 var(--sans,system-ui)}.wagon-live-editor__form :is(input,textarea){width:100%;box-sizing:border-box;padding:.62rem .7rem;border:1px solid #9eab9f;border-radius:8px;background:#fff;color:#102c21;font:500 .88rem/1.45 var(--sans,system-ui)}.wagon-live-editor__form textarea{resize:vertical}.wagon-live-editor__form :is(input,textarea):focus{outline:3px solid #456b5133;border-color:#315742}
.wagon-live-editor__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.wagon-live-editor__grid--content textarea{min-height:7.5rem}.wagon-live-editor__status{min-height:1.3rem;margin:0;font-size:.8rem}.wagon-live-editor__status[data-tone="error"]{color:#9d2e2e}.wagon-live-editor__status[data-tone="success"]{color:#17613b}
.wagon-live-editor__map-fieldset{display:grid;gap:.55rem;margin:0;padding:.75rem;border:1px solid #aeb9ad;border-radius:12px}.wagon-live-editor__map-fieldset legend{padding:0 .35rem;font-weight:800}.wagon-live-editor__map-fieldset>p{margin:0;font-size:.75rem;color:#526458}
.wagon-live-editor__map{position:relative;display:block;width:min(100%,350px);aspect-ratio:520/640;margin-inline:auto;padding:0;border:2px solid #879887;border-radius:12px;background:#e9efe6;overflow:hidden;cursor:crosshair}.wagon-live-editor__map img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.wagon-live-editor__map [data-wagon-editor-map-marker]{position:absolute;width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:#b14332;box-shadow:0 2px 8px #17372c80;transform:translate(-50%,-50%);pointer-events:none}
.wagon-live-editor__published{grid-template-columns:auto 1fr!important;align-items:center;justify-content:start}.wagon-live-editor__published input{width:auto!important}.wagon-live-editor__form-actions{display:flex;align-items:center;gap:.5rem;padding-top:.35rem;border-top:1px solid #d4d8cf}.wagon-live-editor__form-actions button{min-height:42px;padding:.55rem .75rem;border:1px solid #607766;border-radius:8px;background:#fff;color:#17372c;font-weight:700;cursor:pointer}.wagon-live-editor__form-actions button:disabled{opacity:.45;cursor:default}.wagon-live-editor__form-actions .wagon-live-editor__primary{background:#17372c;color:#fff}.wagon-live-editor__form-actions .wagon-live-editor__danger{border-color:#b65b50;color:#8a2921}.wagon-live-editor__spacer{flex:1}
html.dark-mode .wagon-live-editor{background:#182a22;color:#f4eedc}.dark-mode .wagon-live-editor__rail,.dark-mode .wagon-live-editor__rail-actions{background:#1f3329}.dark-mode .wagon-live-editor__item,.dark-mode .wagon-live-editor__form :is(input,textarea),.dark-mode .wagon-live-editor__form-actions button,.dark-mode .wagon-live-editor__rail-actions button{background:#11241c;color:#f3ead7;border-color:#607267}.dark-mode .wagon-live-editor__item.is-active{background:#354736}
@media(max-width:760px){.wagon-live-editor{width:calc(100vw - .7rem);max-height:calc(100vh - .7rem)}.wagon-live-editor__shell{max-height:calc(100vh - .7rem)}.wagon-live-editor__body{grid-template-columns:1fr;overflow:auto}.wagon-live-editor__rail{max-height:12rem;border-right:0;border-bottom:1px solid #cbd2c7}.wagon-live-editor__form{overflow:visible}.wagon-live-editor__grid{grid-template-columns:1fr}}

@media(forced-colors:active){
  .wagon-atlas__map,.wagon-atlas__panel{border:2px solid CanvasText;box-shadow:none}
  .wagon-timeline button[aria-current=step],.wagon-atlas__tabs button[aria-selected=true]{box-shadow:inset 0 0 0 2px CanvasText}
}

@media print{
  .wagon-trail{display:block}
  .wagon-atlas{display:block}
  .wagon-atlas__map,.wagon-atlas__panel{border-radius:0;box-shadow:none}
  .wagon-atlas__panel{block-size:auto;min-height:0;overflow:visible}
}
