/* NVS interactive expedition chart. Mounts into <section data-nvs-chart>. Uses the tokens in site.css. */
.nvc { padding-block: 112px; background: var(--glacier); color: var(--night); }
.nvc-grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); grid-template-areas: 'title title' 'chart side' 'table table'; column-gap: 48px; row-gap: 0; align-items: start; }
.nvc-title { grid-area: title; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 72px; align-items: end; margin-bottom: 44px; } .nvc-title > * { grid-column: 1; } .nvc-title .nvc-block { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
.nvc-chartarea { grid-area: chart; min-width: 0; align-self: stretch; }
.nvc-chartcol { min-width: 0; position: sticky; top: 14px; display: flex; flex-direction: column; } .nvc-side { grid-area: side; min-width: 0; } .nvc-tablewrap { grid-area: table; min-width: 0; }
.nvc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* title block */
.nvc-title h2 { margin-top: 14px; font-size: clamp(32px, 3.4vw, 48px); }
.nvc-title .lede { margin-top: 16px; font-size: 19px; color: var(--basalt); }
.nvc-block { margin: 28px 0 0; display: grid; border-bottom: 1px solid var(--ice); }
.nvc-block div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 10px 0 9px; border-top: 1px solid var(--ice); align-items: baseline; }
.nvc-block div:first-child { border-top-color: var(--night); }
.nvc-block dt { font: 500 11px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--basalt); }
.nvc-block dd { margin: 0; font-family: var(--mono); font-size: 12.5px; line-height: 1.5; letter-spacing: .01em; }

/* controls */
.nvc-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.nvc-seg, .nvc-zoom { display: inline-flex; border: 1px solid var(--night); }
.nvc-bar button { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; min-width: 40px; padding: 0 14px; font: 500 13px/1 var(--sans); letter-spacing: .01em; color: var(--night); transition: background .16s ease, color .16s ease; }
.nvc-bar button + button { border-left: 1px solid var(--night); }
.nvc-bar button svg { width: 15px; height: 15px; }
.nvc-bar button:hover { background: rgba(8,22,31,.07); }
.nvc-bar button[aria-pressed="true"] { background: var(--night); color: var(--glacier); }
.nvc-bar button:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.nvc-zoom button { font-size: 17px; padding: 0 10px; } .nvc-zoom button.txt { font-size: 13px; padding: 0 14px; }

/* the chart */
.nvc-frame { position: relative; flex: none; height: clamp(520px, calc(100vh - 176px), 800px); background: var(--night); overflow: hidden; }
.nvc-svg { display: block; width: 100%; height: 100%; user-select: none; -webkit-user-select: none; cursor: crosshair; }
.nvc-svg[data-tool="move"] { cursor: grab; } .nvc-svg[data-tool="move"]:active { cursor: grabbing; }
.nvc-svg .landp { fill: #225462; stroke: rgba(214,228,227,.8); stroke-width: .8; vector-effect: non-scaling-stroke; stroke-linejoin: round; fill-rule: evenodd; }
.nvc-svg .icep { stroke: rgba(237,242,240,.55); stroke-width: .8; stroke-dasharray: 3 2.5; vector-effect: non-scaling-stroke; fill-rule: evenodd; }
.nvc-svg .grat { fill: none; stroke: rgba(127,175,181,.17); stroke-width: 1; shape-rendering: crispEdges; }
.nvc-svg .circle { fill: none; stroke: var(--melt); stroke-width: 1; stroke-dasharray: 7 5; }
.nvc-svg .ticks { fill: none; stroke: rgba(199,217,216,.75); stroke-width: 1; shape-rendering: crispEdges; }
.nvc-svg .neat { fill: none; stroke: rgba(237,242,240,.85); stroke-width: 1; shape-rendering: crispEdges; }
.nvc-svg .outer { fill: none; stroke: rgba(237,242,240,.5); stroke-width: 1; shape-rendering: crispEdges; }
.nvc-svg text { font-family: var(--mono); pointer-events: none; }
.nvc-svg .gl { font-size: 9.5px; fill: var(--melt); letter-spacing: .04em; paint-order: stroke; stroke: #08161F; stroke-width: 3px; stroke-opacity: .7; }
.nvc-svg .cl { font-size: 10px; fill: var(--melt); letter-spacing: .06em; paint-order: stroke; stroke: #08161F; stroke-width: 3px; stroke-opacity: .7; }
.nvc-svg .pn { paint-order: stroke; stroke: #08161F; stroke-width: 3px; stroke-opacity: .55; stroke-linejoin: round; }
.nvc-svg .pn.sea { font-family: var(--disp); font-style: italic; font-weight: 300; fill: #9CC3C8; stroke-opacity: .35; }
.nvc-svg .pn.water { font-family: var(--disp); font-style: italic; font-weight: 300; fill: #9CC3C8; }
.nvc-svg .pn.region { font-family: var(--sans); font-weight: 500; fill: rgba(237,242,240,.86); stroke: #173F4C; }
.nvc-svg .pn.land { font-family: var(--sans); font-weight: 400; fill: rgba(237,242,240,.84); }
.nvc-svg .pn.ice { font-family: var(--sans); font-weight: 400; fill: rgba(237,242,240,.8); text-transform: uppercase; stroke: #2B525E; stroke-opacity: .6; }
.nvc-svg .cape { fill: var(--glacier); }
.nvc-svg .wl { font-family: var(--sans); font-size: 12.5px; font-weight: 500; fill: var(--glacier); paint-order: stroke; stroke: #08161F; stroke-width: 3.5px; stroke-opacity: .82; stroke-linejoin: round; }
.nvc-svg .wl.on { font-weight: 600; }
.nvc-svg .wn { font-size: 10px; fill: var(--ice); paint-order: stroke; stroke: #08161F; stroke-width: 3px; stroke-opacity: .8; }
.nvc-svg .wn.on { fill: var(--glacier); }
.nvc-svg .tl { font-family: var(--sans); font-size: 11px; font-weight: 400; fill: var(--ice); paint-order: stroke; stroke: #08161F; stroke-width: 3px; stroke-opacity: .8; stroke-linejoin: round; }
.nvc-svg .tp { fill: #08161F; stroke: var(--alp); stroke-width: 1.2; }
.nvc-svg .plate { pointer-events: none; } .nvc-svg .plate rect { fill: rgba(8,22,31,.78); stroke: rgba(199,217,216,.4); stroke-width: 1; shape-rendering: crispEdges; }
.nvc-svg .plate text { font-size: 9.5px; letter-spacing: .12em; fill: var(--ice); }
/* track */
.nvc-svg .leg { cursor: pointer; }
.nvc-svg .leg path, .nvc-svg .hl { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.nvc-svg .leg .hit { stroke: transparent; stroke-width: 18; pointer-events: stroke; }
.nvc-svg .leg .ln { stroke: var(--red); stroke-width: 1.6; opacity: .72; transition: opacity .2s ease, stroke-width .2s ease; pointer-events: none; }
.nvc-svg .leg:hover .ln { opacity: 1; }
.nvc-svg .leg.on .ln { stroke-width: 3; opacity: 1; }
.nvc-svg .leg .ln.draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: nvc-draw 1.5s cubic-bezier(.45,0,.2,1) .35s forwards; }
@keyframes nvc-draw { to { stroke-dashoffset: 0; } }
.nvc-svg .hl { stroke: var(--glacier); stroke-width: 5.5; opacity: .95; pointer-events: none; }
.nvc-svg .wp { cursor: pointer; outline: none; }
.nvc-svg .wp .hit { fill: transparent; }
.nvc-svg .wp .dot { fill: var(--glacier); stroke: #08161F; stroke-width: 1.5; transition: r .2s ease; }
.nvc-svg .wp .ring { fill: none; stroke: var(--red); stroke-width: 1.5; opacity: 0; transition: opacity .2s ease; }
.nvc-svg .wp:hover .dot { r: 5; }
.nvc-svg .wp.on .ring { opacity: 1; } .nvc-svg .wp.on .dot { fill: var(--red); }
.nvc-svg .wp:focus-visible .hit { stroke: var(--glacier); stroke-width: 1.5; stroke-dasharray: 3 3; }
/* dividers */
.nvc-svg .divs { pointer-events: none; }
.nvc-svg .dl { fill: none; stroke: var(--alp); stroke-width: 1.4; stroke-dasharray: 2 4; stroke-linecap: round; }
.nvc-svg .de circle { fill: rgba(8,22,31,.5); stroke: var(--alp); stroke-width: 1.4; } .nvc-svg .de path { stroke: var(--alp); stroke-width: 1.2; fill: none; }
.nvc-svg .de.snap circle { fill: var(--alp); fill-opacity: .35; }
.nvc-svg .dt rect { fill: var(--alp); } .nvc-svg .dt text { font-size: 11.5px; font-weight: 500; fill: var(--night); letter-spacing: .03em; }
/* compass rose */
.nvc-svg .rose { pointer-events: none; }
.nvc-svg .rb { fill: rgba(8,22,31,.72); } .nvc-svg .rc { fill: none; stroke: rgba(199,217,216,.6); stroke-width: 1; } .nvc-svg .rt { fill: none; stroke: rgba(199,217,216,.8); stroke-width: 1; }
.nvc-svg .rn { font-family: var(--sans); font-weight: 600; font-size: 11px; fill: var(--glacier); paint-order: stroke; stroke: #08161F; stroke-width: 3px; }
.nvc-svg .rl { font-size: 8px; letter-spacing: .16em; fill: var(--melt); paint-order: stroke; stroke: #08161F; stroke-width: 3px; }
.nvc-hint { flex: 1 1 160px; margin: 0; font-size: 13.5px; line-height: 1.35; color: var(--basalt); max-width: none; }
.nvc-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-top: 10px; color: var(--basalt); }
.nvc-key { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font: 400 12px/1.2 var(--sans); color: var(--basalt); align-items: center; }
.nvc-key li { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.nvc-key i { display: inline-block; flex: none; }
.nvc-key .k-track { width: 18px; height: 0; border-top: 2.5px solid var(--red); }
.nvc-key .k-stop { width: 9px; height: 9px; border-radius: 50%; background: var(--glacier); border: 1.5px solid var(--night); }
.nvc-key .k-tp { width: 7px; height: 7px; transform: rotate(45deg); background: var(--night); border: 1.2px solid var(--alp); }
.nvc-key .k-land { width: 14px; height: 10px; background: #225462; }
.nvc-key .k-ice { width: 14px; height: 10px; background: repeating-linear-gradient(128deg, #2F5966 0 3.6px, #8FAFB5 3.6px 4.8px); }
.nvc-key .k-circle { width: 18px; height: 0; border-top: 1.5px dashed #4E8088; }
.nvc-legal { margin-top: 10px; font-size: 12.5px; line-height: 1.5; color: var(--basalt); max-width: none; } .nvc-legal b { font-weight: 600; color: var(--night); }
.nvc-scale { flex: none; overflow: visible; } .nvc-scale text { font-family: var(--mono); font-size: 10px; fill: var(--night); } .nvc-scale .cap { font-size: 9.5px; letter-spacing: .08em; fill: var(--basalt); text-anchor: start; }
.nvc-scale .b1 { fill: var(--night); } .nvc-scale .b0 { fill: var(--glacier); } .nvc-scale .bo { fill: none; stroke: var(--night); stroke-width: 1; }

/* selected leg */
.nvc-side { margin-top: 52px; display: grid; gap: 20px; }
.nvc-panel { background: var(--night); color: var(--glacier); padding: 26px 28px 28px; }
.nvc-panel .muted { color: var(--melt); }
.nvc-ph { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.nvc-nav { display: flex; gap: 6px; }
.nvc-nav button { all: unset; box-sizing: border-box; cursor: pointer; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--night-line); color: var(--glacier); font-size: 15px; transition: border-color .16s ease, background .16s ease; }
.nvc-nav button:hover { border-color: var(--glacier); } .nvc-nav button[disabled] { opacity: .32; cursor: default; border-color: var(--night-line); }
.nvc-nav button:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.nvc-panel h3 { margin-top: 10px; font-size: clamp(30px, 2.8vw, 40px); }
.nvc-pos { margin-top: 8px; color: var(--ice); font-size: 14px; }
.nvc-about { margin-top: 14px; font-size: 14.5px; line-height: 1.55; color: var(--ice); max-width: 46ch; }
.nvc-crs { margin-top: 6px; border-top: 1px solid var(--night-line); padding-top: 14px; }
.nvc-crs h4 { font: 500 10.5px/1.35 var(--sans); letter-spacing: .13em; text-transform: uppercase; color: var(--melt); }
.nvc-crs ol { list-style: none; margin: 10px 0 0; padding: 0; display: grid; }
.nvc-crs li { display: grid; grid-template-columns: 22px 48px 70px minmax(0, 1fr); gap: 8px; align-items: baseline; padding: 5px 6px 5px 0; font-family: var(--mono); font-size: 12px; letter-spacing: .01em; font-variant-numeric: tabular-nums; color: var(--ice); border-top: 1px solid rgba(29,58,70,.8); cursor: pointer; transition: background .15s ease; }
.nvc-crs li:first-child { border-top: 0; }
.nvc-crs li:hover, .nvc-crs li:focus-visible { background: rgba(237,242,240,.07); outline: none; } .nvc-crs li:focus-visible { box-shadow: inset 2px 0 0 var(--red); }
.nvc-crs li .n { color: var(--melt); font-size: 10.5px; padding-left: 6px; } .nvc-crs li b { font-weight: 500; font-size: 14px; color: var(--glacier); } .nvc-crs li .d { text-align: right; } .nvc-crs li .t { color: var(--melt); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvc-crs .direct { margin-top: 12px; font-size: 12.5px; line-height: 1.55; color: var(--melt); max-width: 52ch; }
.nvc-figs { margin: 18px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
.nvc-figs div { padding: 13px 0 2px; border-top: 1px solid var(--night-line); display: grid; gap: 5px; align-content: start; }
.nvc-figs dt { font: 500 10.5px/1.35 var(--sans); letter-spacing: .13em; text-transform: uppercase; color: var(--melt); }
.nvc-figs dd { margin: 0 0 10px; font-family: var(--mono); font-size: 20px; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
/* dividers panel */
.nvc-div { border: 1px solid var(--night); padding: 20px 28px 24px; position: relative; }
.nvc-divhead { display: flex; justify-content: space-between; align-items: center; min-height: 24px; }
.nvc-divhead h3 { font-family: var(--sans); font-weight: 500; font-size: 12px; letter-spacing: .14em; color: var(--basalt); }
.nvc-link { all: unset; cursor: pointer; font: 500 13px/1 var(--sans); border-bottom: 1px solid currentColor; padding: 4px 0; } .nvc-link:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.nvc-link[hidden] { display: none; }
.nvc-divout { margin-top: 10px; display: flex; gap: 22px; align-items: baseline; flex-wrap: wrap; min-height: 34px; max-width: none; font-family: var(--mono); font-variant-numeric: tabular-nums; }
.nvc-divout b { font-weight: 500; font-size: 24px; letter-spacing: .01em; } .nvc-divout span { font-size: 18px; color: var(--basalt); }
.nvc-divout .idle { font-family: var(--sans); font-size: 14px; color: var(--basalt); line-height: 1.5; }
.nvc-divpos { margin-top: 4px; min-height: 18px; color: var(--basalt); text-transform: none; letter-spacing: .02em; white-space: pre-wrap; max-width: none; }
.nvc-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.nvc-pick label { display: grid; gap: 6px; color: var(--basalt); min-width: 0; }
.nvc-pick select { width: 100%; min-height: 42px; padding: 0 10px; border: 1px solid var(--basalt); border-radius: 0; background: var(--glacier); color: var(--night); font: 400 14px/1.2 var(--sans); }
.nvc-pick select:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }

/* legs table */
.nvc-tablewrap { margin-top: 56px; }
.nvc-legs td.pos { font-size: 12.5px; }
.nvc-legs { width: 100%; border-collapse: collapse; }
.nvc-legs th, .nvc-legs td { text-align: left; padding: 12px 12px 12px 0; border-top: 1px solid var(--ice); vertical-align: baseline; white-space: nowrap; }
.nvc-legs thead th { border-top: 1px solid var(--night); font: 500 11px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--basalt); }
.nvc-legs tbody th { font-weight: 400; white-space: normal; }
.nvc-legs .num { width: 34px; color: var(--basalt); }
.nvc-legs th button { all: unset; cursor: pointer; font-family: var(--disp); font-size: 19px; line-height: 1.2; border-bottom: 1px solid transparent; transition: border-color .16s ease; }
.nvc-legs th button:hover { border-bottom-color: var(--night); } .nvc-legs th button:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.nvc-legs td.data { font-size: 12.5px; } .nvc-legs td.pos { font-size: 11px; color: var(--basalt); padding-right: 0; }
.nvc-legs .dep { color: var(--basalt); }
.nvc-legs .r { text-align: right; padding-right: 22px; } .nvc-legs td.crs { white-space: normal; color: var(--basalt); letter-spacing: .02em; text-transform: none; min-width: 200px; max-width: 420px; line-height: 1.6; }
.nvc-legs tr.on > * { background: rgba(8,22,31,.055); border-top-color: var(--night); }
.nvc-legs tr.on td.num { box-shadow: inset 3px 0 0 var(--red); padding-left: 10px; color: var(--night); }
.nvc-legs tr.on th button { border-bottom-color: var(--red); }
.nvc-legs td.num { padding-left: 10px; }
.nvc-foot2 { margin-top: 16px; font-size: 13.5px; line-height: 1.55; color: var(--basalt); max-width: 58ch; }

@media (max-width: 1180px) { .nvc-grid { column-gap: 32px; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } .nvc-title { column-gap: 44px; } }
@media (max-width: 900px) {
  .nvc { padding-block: 72px; }
  .nvc-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'title' 'chart' 'side' 'table'; }
  .nvc-title { display: block; margin-bottom: 0; } .nvc-title .nvc-block { margin-top: 24px; }
  .nvc-chartarea { margin-top: 28px; } .nvc-chartcol { position: static; }
  .nvc-chartcol { display: flex; flex-direction: column; } .nvc-frame { flex: none; height: clamp(500px, 64svh, 640px); min-height: 0; }
  .nvc-bar { order: 2; margin: 10px 0 0; } .nvc-foot { order: 3; } .nvc-legal { order: 4; }
  .nvc-hint { order: 3; flex-basis: 100%; }
  .nvc-legs .pos { display: none; } .nvc-tablewrap { margin-top: 32px; }
  .nvc-side { margin-top: 24px; gap: 16px; }
  .nvc-panel { padding: 22px 20px 22px; } .nvc-div { padding: 18px 20px 20px; }
  .nvc-figs dd { font-size: 18px; }
  .nvc-bar button { padding: 0 11px; min-height: 44px; min-width: 44px; }
  .nvc-legs .crs, .nvc-legs .togo { display: none; } .nvc-legs .r { padding-right: 8px; }
  .nvc-crs li { grid-template-columns: 18px 44px 64px minmax(0, 1fr); }
  .nvc-legs th button { font-size: 17px; } .nvc-legs th, .nvc-legs td { padding-right: 8px; }
  .nvc-foot { flex-direction: column; align-items: flex-start; gap: 10px; }
}
@media (max-width: 1180px) and (min-width: 901px) { .nvc-legs .pos { display: none; } }
@media (prefers-reduced-motion: reduce) { .nvc-svg * { transition: none !important; animation: none !important; } .nvc-svg .leg .ln.draw { stroke-dasharray: none; } }

/* ---------------- editorial pass: the chart is the page. One night ground, no panels, one instrument toolbar on the chart. */
.nvc { --bleed: calc(max(0px, (100vw - 1440px) / 2) + var(--gut)); background: var(--night); color: var(--glacier); padding-block: clamp(96px, 10vw, 168px) clamp(96px, 9vw, 140px); }
.nvc-grid { grid-template-columns: minmax(0, 8.5fr) minmax(0, 3.5fr); column-gap: clamp(36px, 4.2vw, 76px); }
.nvc-title { display: block; margin-bottom: clamp(40px, 5vw, 76px); max-width: 1040px; }
.nvc-title h2 { margin: 0; font-size: clamp(40px, 5.8vw, 92px); line-height: 1; letter-spacing: -.03em; }
.nvc-title .lede { margin-top: 26px; font-size: clamp(19px, 1.6vw, 23px); color: var(--ice); max-width: 54ch; }
.nvc-chartarea { margin-left: calc(-1 * var(--bleed)); }
.nvc-frame { height: clamp(560px, calc(100vh - 120px), 920px); }
.nvc-foot, .nvc-legal { padding-left: var(--bleed); color: var(--melt); } .nvc-foot { margin-top: 16px; align-items: center; } .nvc-key { color: var(--melt); }
.nvc-hint { color: var(--ice); flex: 1 1 100%; font: 300 17px/1.4 var(--disp); }
.nvc-key .k-stop { border-color: var(--glacier); background: var(--night); } .nvc-key .k-tp { background: var(--night); }
.nvc-scale text { fill: var(--glacier); } .nvc-scale .cap { fill: var(--melt); } .nvc-scale .b1 { fill: var(--glacier); } .nvc-scale .b0 { fill: var(--night); } .nvc-scale .bo { stroke: var(--glacier); }
.nvc-legal b { color: var(--glacier); }
/* the toolbar: one small instrument, on the chart */
.nvc-frame .nvc-bar { position: absolute; z-index: 2; right: 20px; top: 50%; transform: translateY(-50%); margin: 0; flex-direction: column; flex-wrap: nowrap; gap: 0; padding: 5px; border-radius: 999px; background: rgba(8,22,31,.6); border: 1px solid rgba(237,242,240,.26); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 14px 40px rgba(0,0,0,.35); }
.nvc-seg, .nvc-zoom { border: 0; flex-direction: column; }
.nvc-bar button, .nvc-zoom button, .nvc-zoom button.txt { color: var(--glacier); width: 44px; height: 44px; min-width: 0; min-height: 0; padding: 0; border-radius: 50%; font-size: 18px; }
.nvc-bar button + button { border-left: 0; } .nvc-bar button svg { width: 17px; height: 17px; }
.nvc-bar button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.nvc-bar button:hover { background: rgba(237,242,240,.12); } .nvc-bar button[aria-pressed="true"] { background: var(--glacier); color: var(--night); } .nvc-bar button:focus-visible { outline: 2px solid var(--glacier); outline-offset: 2px; }
.nvc-zoom { margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(237,242,240,.22); }
@media (prefers-reduced-transparency: reduce) { .nvc-frame .nvc-bar { background: #08161F; -webkit-backdrop-filter: none; backdrop-filter: none; } }
/* the selected stop: set as type, on the same ground as the chart */
.nvc-side { margin-top: 0; gap: clamp(40px, 4vw, 64px); align-content: start; }
.nvc-panel { background: none; padding: 0; }
.nvc-nav { gap: 10px; } .nvc-nav button { width: 44px; height: 44px; border-radius: 50%; border-color: rgba(237,242,240,.32); transition: border-color .2s ease, background .2s ease, color .2s ease; } .nvc-nav button:not([disabled]):hover { background: var(--glacier); color: var(--night); border-color: var(--glacier); } .nvc-nav button:focus-visible { outline-color: var(--glacier); }
.nvc-panel h3 { margin-top: 22px; font-size: clamp(38px, 3.7vw, 62px); line-height: 1.02; font-style: italic; letter-spacing: -.025em; padding-bottom: .1em; }
.nvc-pos { margin-top: 10px; font-size: 14.5px; letter-spacing: .04em; }
.nvc-about { margin-top: 20px; font-size: 16px; line-height: 1.62; max-width: 40ch; }
.nvc-figs { margin-top: 34px; gap: 26px 28px; }
.nvc-figs div { border: 0; padding: 0; display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 7px; }
.nvc-figs dd { margin: 0; font: 300 clamp(27px, 2.3vw, 37px)/1 var(--disp); letter-spacing: -.012em; font-variant-numeric: lining-nums tabular-nums; }
.nvc-figs dt { font: 400 12.5px/1.4 var(--sans); letter-spacing: 0; text-transform: none; color: var(--melt); }
.nvc-crs { margin-top: 36px; padding-top: 0; border-top: 0; } .nvc-crs h4 { font: 400 12.5px/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
.nvc-crs li { border-top: 0; padding: 6px 6px 6px 0; } .nvc-crs ol { margin-top: 8px; }
.nvc-div { border: 0; padding: 0; } .nvc-divhead h3 { color: var(--melt); } .nvc-divout span, .nvc-divout .idle, .nvc-divpos, .nvc-pick label { color: var(--melt); } .nvc-divout .idle { color: var(--ice); }
.nvc-pick select { background: transparent; color: var(--glacier); border: 0; border-bottom: 1px solid rgba(237,242,240,.38); padding: 0 2px; min-height: 44px; } .nvc-pick select option { background: #08161F; color: #EDF2F0; } .nvc-pick select:focus-visible { outline-color: var(--glacier); }
/* passages: a table still, with the rules taken out */
.nvc-tablewrap { margin-top: clamp(72px, 8vw, 128px); }
.nvc-legs th, .nvc-legs td { border-top: 0; padding-block: 15px; } .nvc-legs thead th { border-top: 0; border-bottom: 1px solid rgba(237,242,240,.28); color: var(--melt); padding-block: 0 14px; }
.nvc-legs .num, .nvc-legs .dep, .nvc-legs td.crs, .nvc-legs td.pos { color: var(--melt); } .nvc-legs th button { font-size: 23px; font-weight: 300; } .nvc-legs th button:hover { border-bottom-color: var(--glacier); }
.nvc-legs tr.on > * { background: rgba(237,242,240,.06); border-top-color: transparent; } .nvc-legs tr.on td.num { color: var(--glacier); } .nvc-legs th button:focus-visible { outline-color: var(--glacier); }
.nvc-notes { margin: 44px 0 0; border: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 32px; } .nvc-notes div { display: block; border: 0; padding: 0; } .nvc-notes dt { color: var(--melt); margin-bottom: 8px; } .nvc-notes dd { font: 400 13.5px/1.55 var(--sans); color: var(--ice); letter-spacing: 0; }
.nvc-foot2 { color: var(--melt); margin-top: 28px; max-width: 86ch; }
@media (max-width: 900px) {
  .nvc { padding-block: 84px 72px; } .nvc-grid { grid-template-columns: minmax(0, 1fr); } .nvc-title { margin-bottom: 0; }
  .nvc-chartarea { margin-inline: calc(-1 * var(--gut)); } .nvc-frame { height: clamp(500px, 68svh, 660px); } .nvc-foot, .nvc-legal { padding-inline: var(--gut); }
  .nvc-frame .nvc-bar { right: 10px; order: 0; } .nvc-bar button { min-width: 0; min-height: 0; padding: 0; }
  .nvc-side { margin-top: 44px; gap: 44px; } .nvc-panel, .nvc-div { padding: 0; } .nvc-figs dd { font-size: 27px; }
  .nvc-notes { grid-template-columns: 1fr 1fr; }
}
/* closing round: a passage row says its whole position or name (it was cut short with an ellipsis at 1024 and at 1440), and on a touch screen each row is a full 44 px target */
.nvc-crs li .t { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.3; }
@media (pointer: coarse) { .nvc-crs li { min-height: 44px; align-items: center; } }
