.route-atlas{--map-ink:#1d4055;--map-red:#a13e2b;--map-paper:#faf4e5;max-width:1440px;margin:clamp(28px,5vw,76px) auto;color:var(--map-ink)}
.route-atlas-header{display:flex;align-items:end;justify-content:space-between;border-top:3px double #677b84;padding:14px 0 16px}
.route-kicker,.route-stop-count,.route-preview-date,.route-picker>span,.route-preview-art>span{font:600 10px/1.6 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.route-kicker,.route-preview-date,.route-picker>span{color:var(--map-red)}
.route-atlas-header h2{font:400 clamp(34px,4vw,58px)/1 Baskerville,Georgia,serif;letter-spacing:-.04em;margin:4px 0 0}
.route-stop-count{color:#52636a}
.route-layout{display:grid;grid-template-columns:minmax(0,2.55fr) minmax(225px,1fr);gap:clamp(16px,3vw,42px);align-items:start}
.route-chart{margin:0;min-width:0}
.route-drawing{position:relative;width:min(100%,calc(730px * var(--map-ratio)));margin:auto;isolation:isolate}
.route-drawing svg{display:block;width:100%;height:auto}
.route-underlay,.route-trace{fill:none;stroke-linejoin:round;stroke-linecap:round}
.route-underlay{stroke:#fff5df;stroke-width:4.6}
.route-trace{stroke:var(--map-red);stroke-width:2.2}
.route-mark{position:absolute;width:0;height:0}
.route-mark::before{content:'';position:absolute;width:var(--arm);height:1px;background:var(--map-red);transform-origin:0 0;transform:rotate(var(--angle))}
.route-mark::after{content:'';position:absolute;width:4px;height:4px;border:1px solid var(--map-paper);border-radius:50%;background:var(--map-red);transform:translate(-50%,-50%);pointer-events:none}
.route-pin{position:absolute;left:var(--dx);top:var(--dy);display:grid;place-items:center;width:30px;height:30px;transform:translate(-50%,-50%);padding:0;border:0;background:none;cursor:pointer;z-index:1}
.route-pin span{box-sizing:border-box;display:grid;place-items:center;width:19px;height:19px;border:1.5px solid var(--map-paper);border-radius:50%;background:var(--map-red);color:white;box-shadow:0 0 0 .8px var(--map-red);font:bold 11px/1 Georgia,serif}
.route-pin:hover span,.route-pin:focus-visible span,.route-pin.is-preview span,.route-atlas:not([data-active-preview]) .route-mark:nth-child(2) .route-pin span{background:#132f44;box-shadow:0 0 0 1.5px var(--map-ink)}
.route-pin:focus-visible,.route-picker select:focus-visible,.route-read:focus-visible{outline:2px solid var(--map-red);outline-offset:2px}
.route-chart figcaption{display:flex;align-items:center;gap:6px;margin:8px 0 0;font:italic 12px/1.5 Georgia,serif;color:#536871}
.route-chart figcaption i{width:20px;border-top:2px solid var(--map-red)}
.route-chart figcaption span{margin-left:auto}
.route-preview{border-top:1px solid #6a7d85}
.route-picker{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0 11px}
.route-picker select{width:auto;max-width:60%;border:0;border-bottom:1px solid #a9aba0;color:var(--map-ink);background:transparent;font:14px/1.5 Georgia,serif;cursor:pointer;padding:3px}
.route-preview-art{position:relative}.route-preview-art img{display:block;width:100%;aspect-ratio:1.92;object-fit:cover;background:#eee6d3}
.route-preview-art>span{position:absolute;bottom:5px;left:5px;background:var(--map-paper);color:var(--map-red);padding:1px 6px;font-size:8px}
.route-preview-copy{padding:11px 0 2px}.route-preview-date{margin:0;font-size:9px}
.route-preview-copy h3{font:400 clamp(24px,2.25vw,37px)/1.13 Baskerville,Georgia,serif;margin:4px 0 6px}
.route-preview-summary{color:#344f59;font:15px/1.5 Georgia,serif;margin:0}
.route-read{border:0;border-bottom:1px solid var(--map-red);background:none;padding:4px 0;color:var(--map-red);font:600 13px/1.4 Georgia,serif;cursor:pointer;margin:7px 0 0}
.route-read span{padding-left:4px}
@media(max-width:780px){.route-layout{grid-template-columns:1fr}.route-preview-content{display:grid;grid-template-columns:minmax(110px,30%) minmax(0,1fr);gap:14px}.route-preview-copy{padding:0}.route-preview-art img{aspect-ratio:1.35}.route-chart figcaption{font-size:10px}.route-preview-summary{font-size:14px}.route-preview-art>span{font-size:7px}.route-picker select{min-height:36px}.route-pin{width:27px;height:27px}.route-pin span{width:17px;height:17px;font-size:10px}}

/* A full-width double-page chart. The paper label follows the selected port. */
.passage-atlas {container-type:inline-size}
.passage-map {display:grid;grid-template-columns:minmax(0,1fr);position:relative;isolation:isolate}
.passage-base,.passage-pin-layer,.passage-leader,.passage-note {grid-area:1 / 1}
.passage-base,.passage-leader {display:block;width:100%;height:auto;align-self:start}
.passage-stop {display:contents}
.passage-pin-layer {position:relative;pointer-events:none;z-index:3}
.passage-pin-layer .route-mark {left:var(--x);top:var(--y)}
.passage-pin {display:grid;place-items:center;pointer-events:auto;position:absolute;left:var(--dx);top:var(--dy);z-index:1;transform:translate(-50%,-50%);width:34px;height:34px;background:none;border:0;padding:0;cursor:pointer}
.passage-pin span {display:grid;place-items:center;width:23px;height:23px;box-sizing:border-box;border:1.5px solid var(--map-paper);border-radius:50%;box-shadow:0 0 0 1px var(--map-red);background:var(--map-red);color:white;font:600 12px/1 Georgia,serif}
.passage-stop.current .passage-pin span {background:var(--map-ink);box-shadow:0 0 0 1.5px var(--map-ink)}
.passage-pin:focus-visible {outline:2px solid var(--map-red);outline-offset:1px}
.passage-leader,.passage-note {display:none}
.passage-stop.current .passage-leader {display:block;pointer-events:none;z-index:1;align-self:start}
.passage-leader polyline {stroke:var(--map-red);stroke-width:1.4;vector-effect:non-scaling-stroke;fill:none}
.passage-stop.current .passage-note {display:block}
.passage-note {align-self:start;justify-self:start;position:relative;z-index:2;left:var(--edge-x);top:var(--edge-y);transform:translateY(-50%);box-sizing:border-box;width:clamp(184px,23cqw,324px);padding:10px 12px 8px;background:#fcf6e8;color:var(--map-ink);border:1px solid #9b8171;box-shadow:inset 0 0 0 3px #fcf6e8,inset 0 0 0 4px #cebc9e,2px 3px 8px #48362626}
.passage-note.note-left {transform:translate(-100%,-50%)}
.passage-note-type {display:flex;align-items:center;gap:6px;margin:0 0 8px;color:var(--map-red);font:600 clamp(8px,.73cqw,10px)/1.4 system-ui,sans-serif;letter-spacing:.075em;text-transform:uppercase}
.passage-note-type i {height:1px;width:10px;background:var(--map-red)}
.passage-note-body {display:grid;grid-template-columns:clamp(54px,5cqw,80px) minmax(0,1fr);gap:10px;align-items:start}
.passage-note-body img {display:block;width:100%;height:auto;aspect-ratio:.86;object-fit:cover;border:1px solid #b3a48c}
.passage-note h3 {margin:0 0 4px;font:400 clamp(20px,1.85cqw,29px)/1.02 Baskerville,Georgia,serif;letter-spacing:-.026em;color:var(--map-ink)}
.passage-note p {margin:0;color:#394d55;font:clamp(12px,1.02cqw,15px)/1.34 Georgia,serif}
.passage-note .route-read {margin:4px 0 0;font-size:12px}
@container (max-width:795px) {
 .passage-map {row-gap:10px}
 .passage-stop.current .passage-leader {display:none}
 .passage-note,.passage-note.note-left {grid-area:2 / 1;position:static;transform:none;justify-self:stretch;width:100%;padding:12px 15px}
 .passage-note-body {grid-template-columns:86px minmax(0,1fr)}
 .passage-note-body img {aspect-ratio:1.5}
 .passage-note-type {font-size:9px}
 .passage-note h3 {font-size:25px}
 .passage-note p {font-size:15px}
 .passage-note .route-read {min-height:36px;margin-left:96px}
 .passage-pin {width:36px;height:36px}
 .passage-pin span {width:20px;height:20px;font-size:11px}
}
@media(hover:none),(pointer:coarse) {
 .passage-map {row-gap:10px}
 .passage-stop.current .passage-leader {display:none}
 .passage-note,.passage-note.note-left {grid-area:2 / 1;position:static;transform:none;justify-self:stretch;width:100%}
 .passage-note-body {grid-template-columns:84px minmax(0,1fr)}
 .passage-note-body img {aspect-ratio:1.5}
 .passage-note .route-read {min-height:44px}
}

.rescue-trace{fill:none;stroke:#234d69;stroke-width:2.8;stroke-dasharray:6 4;stroke-linecap:round;stroke-linejoin:round}
