.pacific-shell { max-width: none; margin: auto; padding: 2rem clamp(.8rem, 3vw, 5rem) 4rem; color: #141c2d; }
.pacific-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.pacific-heading h1 { font-size: clamp(2.7rem, 5vw, 5rem); font-weight: 500; margin: 0; letter-spacing: -.045em; }
.pacific-heading p { font-size: 1rem; line-height: 1.8; max-width: 48rem; }
.pacific-heading .eyebrow { font-size: .72rem; letter-spacing: .12em; }
.view-crosslink { flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; color: #174bff; text-underline-offset: .3rem; font-size: .9rem; }
.pacific-shell button, .pacific-shell select, .pacific-shell input { font-family: inherit; color: inherit; }
.pacific-shell button { cursor: pointer; }
.pacific-shell .view-controls select { border: 0; border-bottom: 1px solid #141c2d; background: transparent; }
.pacific-status-row { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem 2rem; flex-wrap: wrap; font-size: .85rem; line-height: 1.6; }
.map-legend { display: flex; gap: .6rem 1.3rem; flex-wrap: wrap; }
.pacific-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 350px); align-items: start; gap: clamp(1.5rem, 3vw, 4rem); }
.pacific-map-section { min-width: 0; position: sticky; top: .75rem; }
.map-tools { display: flex; gap: .25rem; align-items: center; flex-wrap: wrap; margin-bottom: .5rem; }
.map-tools button { min-height: 44px; min-width: 44px; font-size: .85rem; border: 0; background: transparent; padding: .4rem .65rem; }
.map-tools button:hover { background: #174bff0b; }
.map-tools button:nth-child(-n+2) { font-size: 1.2rem; }
#map-zoom-label { margin-left: auto; font-size: .8rem; color: #58616c; font-variant-numeric: tabular-nums; }
#pacific-map { display: block; width: 100%; height: auto; min-height: 340px; background: #091933; touch-action: pan-y; outline-offset: 4px; cursor: grab; }
#pacific-map.is-dragging { cursor: grabbing; }
.map-land { fill: #dae2e8; stroke: #a2afb9; stroke-width: .3; pointer-events: none; }
.map-grid { stroke: #34455c; stroke-width: .65; fill: none; pointer-events: none; }
.map-edge { fill: none; stroke-width: 2.3; opacity: .72; vector-effect: non-scaling-stroke; pointer-events: none; }
.map-edge.connection { stroke-dasharray: 6 5; }
.map-hit { stroke: transparent; stroke-width: 18; fill: none; cursor: pointer; vector-effect: non-scaling-stroke; }
.map-hit:focus { outline: none; stroke: #ffffff88; stroke-width: 8; }
.map-edge.focused { stroke-width: 4.5; opacity: 1; }
.map-node { stroke: #091933; stroke-width: 2; vector-effect: non-scaling-stroke; pointer-events: none; }
.map-node-target { cursor: pointer; }
.map-node-hit { fill: transparent; stroke: none; pointer-events: all; }
.map-node-target:focus { outline: none; }
.map-node-target:focus .map-node, .map-node-target[aria-pressed=true] .map-node { stroke: #ffce54; stroke-width: 4; }
.node-route-list { list-style: none; margin: 0; padding: 0; }
.node-person-records + .node-person-records { border-top: 1px solid #141c2d25; padding-top: .75rem; margin-top: 1rem; }
#pacific-detail-content { scroll-margin-top: 1rem; }
.map-place { fill: white; font: 12px sans-serif; paint-order: stroke; stroke: #091933; stroke-width: 3px; stroke-linejoin: round; pointer-events: none; }
.map-ocean { fill: #7893b5; font: 18px sans-serif; letter-spacing: 8px; pointer-events: none; }
.map-gesture-hint { font-size: .75rem; color: #58616c; margin: .5rem 0; }
.map-note { font-size: .85rem; line-height: 1.7; color: #58616c; max-width: 65rem; }
.pacific-detail { border-left: 1px solid #141c2d25; padding-left: 1.5rem; max-height: 80dvh; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.detail-heading { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.detail-heading h2 { font-size: .85rem; font-weight: 500; color: #58616c; }
.detail-heading button { border: 0; background: transparent; color: #174bff; min-height: 44px; font-size: .8rem; }
.pacific-detail h2 { font-size: 1.65rem; margin: .5rem 0 1rem; font-weight: 500; }
.pacific-detail .detail-heading h2 { font-size: .85rem; }
.pacific-detail h3 { font-size: 1.05rem; margin: 1.2rem 0 .3rem; }
.pacific-detail p { font-size: .95rem; line-height: 1.8; }
.route-period { font-size: .83rem !important; color: #58616c; font-variant-numeric: tabular-nums; }
.route-uncertain { display: inline-block; color: #865229; border-bottom: 1px dashed currentColor; font-size: .8rem; }
.route-stages { padding-left: 1.2rem; }
.route-stages li { margin-bottom: 1.4rem; }
.route-stages strong { display: block; }
.route-source { font-size: .85rem !important; }
.route-source a { display: inline-flex; align-items: center; min-height: 44px; }
.pacific-records { margin-top: 2rem; border-top: 1px solid #141c2d40; padding-top: .5rem; }
.people-heading { display: flex; gap: 1rem; align-items: baseline; flex-wrap: wrap; }
.people-heading h2 { font-size: 1.4rem; font-weight: 500; }
.people-heading p { font-size: .85rem; color: #58616c; }
#pacific-route-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.5rem 3rem; }
.route-person h3 { font-size: 1.1rem; font-weight: 500; margin: .5rem 0; }
.route-person ul { list-style: none; padding: 0; margin: 0; }
.route-record { width: 100%; border: 0; border-bottom: 1px solid #141c2d18; background: transparent; text-align: left; padding: .7rem 0; min-height: 64px; font: inherit; }
.route-record span, .route-record time { display: block; line-height: 1.6; }
.route-record time { font-size: .8rem; color: #58616c; }
.route-record span { font-size: .9rem; }
.route-record:hover span, .route-record[aria-pressed=true] span { color: #174bff; text-decoration: underline; text-underline-offset: .25rem; }
.map-selection-gap { padding: .75rem 0; font-size: .9rem; border-top: 1px dashed #141c2d40; line-height: 1.8; }
.map-selection-gap a { color: #174bff; }
.pacific-method { margin-top: 2rem; border-top: 1px solid #141c2d40; padding-top: 1rem; max-width: 70rem; }
.pacific-method summary { cursor: pointer; min-height: 44px; }
.pacific-method p { line-height: 1.8; font-size: .9rem; }
@media (min-width: 2100px) { .pacific-workspace { grid-template-columns: minmax(0, 1fr) minmax(390px, 22vw); } #pacific-map { min-height: 600px; } .pacific-detail p { font-size: 1.05rem; } }
@media (max-width: 1000px) { .pacific-workspace { display: block; } .pacific-map-section { position: static; } .pacific-detail { border-left: 0; border-top: 1px solid #141c2d25; padding-left: 0; max-height: none; } }
@media (max-width: 760px) { .pacific-shell { padding: 1.2rem .8rem 3rem; } .pacific-heading { display: block; } .pacific-heading h1 { font-size: 2.7rem; } .pacific-heading p { font-size: .95rem; } #pacific-map { height: 43dvh; min-height: 280px; max-height: 460px; } .pacific-detail h2 { font-size: 1.4rem; } .map-legend { font-size: .75rem; gap: .75rem; } #pacific-route-list { grid-template-columns: 1fr; } .map-node-target { cursor: pointer; }
.map-node-hit { fill: transparent; stroke: none; pointer-events: all; }
.map-node-target:focus { outline: none; }
.map-node-target:focus .map-node, .map-node-target[aria-pressed=true] .map-node { stroke: #ffce54; stroke-width: 4; }
.node-route-list { list-style: none; margin: 0; padding: 0; }
.node-person-records + .node-person-records { border-top: 1px solid #141c2d25; padding-top: .75rem; margin-top: 1rem; }
#pacific-detail-content { scroll-margin-top: 1rem; }
.map-place { font-size: 14px; } }
