/* Register pages: three thousand, sailings, search */
.regnav{font-family:var(--sans);font-size:.9rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.5rem 0;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.3rem 1.1rem}
.regnav span{color:var(--mute);font-weight:600}
.regnav a{text-decoration:none;color:var(--burg);font-weight:600;border-bottom:2px solid transparent}
.regnav a[aria-current]{border-bottom-color:var(--burg)}
.scrolly{position:relative;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(16rem,1fr);gap:2rem;align-items:start;margin:1rem 0 2rem}
.graphic{position:sticky;top:.5rem}
.gbox{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.gbox canvas{display:block;width:100%}
#dotlabels{position:absolute;inset:0;pointer-events:none;font-size:.8rem}
#dotlabels .dl{position:absolute;transform:translateY(-100%);font-family:var(--sans);font-size:inherit;line-height:1.15;color:var(--ink);white-space:nowrap}
#dotlabels .dl b{display:block;font-weight:700}
#dotlabels .dl span{display:block;color:var(--mute);font-size:.72rem}
#dotlabels .dl.c{transform:translate(-50%,-100%)}
#dotlabels .dl.hd{transform:none}
#dotlabels .dl.axis{transform:translate(-50%,0);color:var(--mute);font-size:.72rem}
.dotlegend{font-family:var(--sans);font-size:.82rem;color:var(--ink2);margin:.5rem 0 0;min-height:2.4em}
.dotlegend .lg{display:inline-block;width:.75em;height:.75em;border-radius:50%;margin:0 .25em 0 .6em;vertical-align:-1px}
.dottip{position:absolute;z-index:3;background:#fff;border:1px solid var(--rule);box-shadow:0 2px 10px rgba(0,0,0,.12);padding:.5rem .65rem;font-family:var(--sans);font-size:.82rem;line-height:1.3;max-width:17rem;pointer-events:auto}
.dottip span{color:var(--mute);font-size:.75rem}
.scrolly .steps{display:block;overflow:visible;padding:30vh 0 40vh;gap:0}
.scrolly .step{all:unset;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:55vh;width:auto;min-width:0;opacity:.45;transition:opacity .3s;padding:0 .2rem;cursor:auto;border:0;background:none;box-shadow:none}
.scrolly .step.on{opacity:1;box-shadow:none;background:none}
.step h2{font-family:var(--serif);font-size:1.5rem;margin:0 0 .5rem;line-height:1.2}
.step p{margin:0;font-size:1.02rem}
@media (max-width:760px){.scrolly{display:block}.graphic{position:sticky;top:0;background:var(--cream);padding-bottom:.3rem;z-index:2}.scrolly .steps{padding:1rem 0 30vh}.scrolly .step{min-height:45vh}#dotlabels{font-size:.62rem}#dotlabels .dl span{font-size:.55rem}.dotlegend{font-size:.74rem}}
/* sailings */
.mapbox{position:relative;background:#eef0ea;border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.mapbox svg{display:block;width:100%;height:auto}
.mapbox .land{fill:#e4ddc9;stroke:#c9bda0;stroke-width:.5}
.mapbox .grat{fill:none;stroke:#d9d4c4;stroke-width:.4}
.mapbox .arc{fill:none;stroke:#7a1f2b;stroke-opacity:.18;stroke-width:1}
.mapbox .arc.on{stroke-opacity:.7;stroke-width:1.6}
.mapbox .port{fill:#fff;stroke:#1f1a14;stroke-width:1.2}
.mapbox .plabel{font-family:var(--sans);font-size:11px;fill:#1f1a14;paint-order:stroke;stroke:#eef0ea;stroke-width:3px;stroke-linejoin:round}
.mapbox .plabel .n{font-weight:700}
.mapbox .ship{fill:#7a1f2b;fill-opacity:.85;stroke:#fff;stroke-width:.8}
.mapbox .ship.c{fill:#2f4d6e}
.mapbox .ship.us{stroke:#b98a2e;stroke-width:2}
.mapbox .hub{fill:#1f1a14}
.mapbox .datebox{font-family:var(--serif);font-size:26px;font-weight:700;fill:#1f1a14}
.mapbox .datesub{font-family:var(--sans);font-size:12px;fill:#4a4036}
.mtools{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;font-family:var(--sans);font-size:.88rem;margin:.6rem 0}
.mtools button{font:inherit;font-weight:600;padding:.35rem .8rem;border:1px solid var(--burg);background:#fff;color:var(--burg);border-radius:3px;cursor:pointer}
.mtools button.on{background:var(--burg);color:#fff}
.mtools input[type=range]{flex:1;min-width:10rem}
.tally{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.4rem 1rem;font-family:var(--sans);font-size:.85rem;margin:.6rem 0 1rem}
.tally div{border-top:2px solid var(--rule);padding-top:.25rem}
.tally b{display:block;font-size:1.25rem;font-family:var(--serif)}
.tally .cur{border-top-color:var(--burg)}
.saillist{font-family:var(--sans);font-size:.84rem;max-height:22rem;overflow:auto;border:1px solid var(--rule);background:var(--card)}
.saillist table{border-collapse:collapse;width:100%}
.saillist th,.saillist td{text-align:left;padding:.3rem .5rem;border-bottom:1px solid #eee5d2;vertical-align:top}
.saillist tr.on td{background:var(--hl)}
.saillist tr:hover td{background:#fbf3dc;cursor:pointer}
.flow{margin:1.5rem 0}
.flow svg{display:block;width:100%;height:auto}
.flow .fl{font-family:var(--sans);font-size:11px;fill:#1f1a14}
.flow .rib{fill:#7a1f2b;fill-opacity:.22;stroke:none}
.flow .rib:hover,.flow .rib.on{fill-opacity:.6}
.flow .bar{fill:#4a4036}
/* register search */
.regform{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:.6rem;font-family:var(--sans);font-size:.9rem;margin:.5rem 0 1rem}
.regform label{display:flex;flex-direction:column;gap:.2rem;font-weight:600;font-size:.78rem;color:var(--ink2)}
.regform input,.regform select{font:inherit;font-size:.95rem;padding:.45rem .5rem;border:1px solid var(--rule);border-radius:3px;background:#fff;color:var(--ink)}
@media (max-width:700px){.regform{grid-template-columns:1fr 1fr}}
.regcount{font-family:var(--sans);font-size:.88rem;color:var(--ink2);margin:.2rem 0 .6rem}
.regtable{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.86rem;background:var(--card)}
.regtable th{text-align:left;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);border-bottom:2px solid var(--rule);padding:.4rem .5rem;position:sticky;top:0;background:var(--card)}
.regtable td{padding:.4rem .5rem;border-bottom:1px solid #eee5d2;vertical-align:top}
.regtable tr.ours td{background:#fff6dd}
.regtable td.n{font-family:var(--serif);font-size:1rem}
.regtable .as{color:var(--mute);font-size:.76rem;display:block}
.regtable a.pg{white-space:nowrap}
.regmore{font:inherit;font-family:var(--sans);font-weight:600;padding:.5rem 1rem;border:1px solid var(--burg);background:#fff;color:var(--burg);border-radius:3px;cursor:pointer;margin:.8rem 0}
mark.q{background:var(--hl);padding:0 .05em}
/* origins */
.gbox.omap{background:#eef0ea}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .8rem}
.chip{font-family:var(--sans);font-size:.8rem;border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:999px;padding:.25rem .7rem;cursor:pointer}
.chip.on{background:var(--burg);color:#fff;border-color:var(--burg)}
.yearchart{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:.6rem;margin:.8rem 0 .4rem}
.yearchart svg{display:block;width:100%;height:auto}
.njtable td.n .as{font-style:italic}
.njtable td.n .as a{font-style:normal}
.njtable td.cl{min-width:14rem}
.njtable td.cl .ln,.dottip .ln{font-style:italic;color:var(--ink2)}
.dottip .ln{display:block;margin-top:.25rem;font-size:.75rem}
/* journeys */
.gbox.jmap{background:#eef0ea}
.jdate{position:absolute;left:14px;top:10px;font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--ink);pointer-events:none;text-shadow:0 0 6px #eef0ea,0 0 6px #eef0ea}
.jumps{font-family:var(--sans);font-size:.78rem;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:0 0 .6rem}
.jumps span{color:var(--mute);font-weight:600}
.jumps button{font:inherit;border:1px solid var(--rule);background:var(--card);border-radius:999px;padding:.2rem .6rem;cursor:pointer;color:var(--ink)}
.jumps button:hover{border-color:var(--burg);color:var(--burg)}
.jpick{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--burg);padding:.7rem .9rem;margin:.8rem 0;font-family:var(--sans);font-size:.9rem;line-height:1.45}
.jpick span,.dottip span{color:var(--mute)}
.jpick .rec,.dottip .rec{color:var(--burg);font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.jpick .prob,.dottip .prob{color:#6f6355;font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.dottip{max-width:21rem}
@media (max-width:760px){.jdate{font-size:1.1rem}}
