/* Halfway, more or less: the 45th parallel essay. Ivory page, navy ink, one red line that runs the whole way. */
.pl{--n:#0e243a;--r:#c8202f;--i:#f8f6f0;--soft:#0e243aa6;--hair:#0e243a26;--mono:'Red Hat Mono',ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--i);color:var(--n);max-width:none!important;margin:0!important;padding-bottom:80px}
.pl *{box-sizing:border-box}
.pl-k{display:block;font:700 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.pl-k-red{color:var(--r)}
.pl-src{white-space:nowrap;font:500 11px/1 var(--mono);letter-spacing:.02em}
.pl-src a{color:var(--soft);text-decoration:underline;text-decoration-color:#0e243a40;text-underline-offset:3px}
.pl-src a:hover{color:var(--r)}
/* ribbon: where you are on the line */
.pl-ribbon{position:sticky;top:calc(var(--sh-h,70px) + 46px);z-index:20;background:var(--i);border-bottom:1px solid var(--hair)}
.pl-ribbon-in{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:8px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));font:700 11px/1 var(--mono);color:var(--soft)}
.pl-ribbon i{position:relative;flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--r) 0 10px,transparent 10px 16px)}
.pl-ribbon b{position:absolute;top:50%;left:var(--x,0%);width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:0;background:var(--r);transition:left .25s}
.pl-ribbon em{font-style:normal;min-width:150px;text-align:right;color:var(--n)}
/* cover */
.pl-cover{position:relative;max-width:1400px;margin:0 auto;padding:40px max(16px,env(safe-area-inset-right,0px)) 32px max(16px,env(safe-area-inset-left,0px));overflow:hidden}
.pl-kick{margin:0;font:700 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--r)}
.pl-num{margin:6px 0 0;font:800 clamp(160px,30vw,440px)/.8 'Barlow Condensed',sans-serif;letter-spacing:-.05em;color:var(--n);position:relative}
.pl-num::after{content:"";position:absolute;left:-100vw;right:-100vw;top:52%;border-top:4px solid var(--r)}
.pl-cover h1{margin:18px 0 0;font:800 clamp(44px,6vw,92px)/.9 'Barlow Condensed',sans-serif;letter-spacing:-.015em;text-wrap:balance}
.pl-deck{margin:16px 0 0;max-width:48ch;font:400 21px/1.5 'Public Sans',sans-serif}
.pl-by{margin:14px 0 0;font:500 12px/1.5 var(--mono);color:var(--soft)}
/* plate */
.pl-map{max-width:1400px;margin:0 auto 48px;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px))}
.pl-strip{display:block;width:100%;height:auto;border-radius:0;background:#dfe7ee}
.pl-water{fill:#dfe7ee}.pl-land{fill:var(--i);stroke:var(--n);stroke-width:1.4}
.pl-45{stroke:var(--r);stroke-width:3;stroke-dasharray:14 8}
.pl-45t{fill:var(--r);font:700 20px/1 var(--mono)}
.pl-tick line{stroke:var(--n);stroke-width:1.2}.pl-tick text{fill:var(--soft);font:500 15px/1 var(--mono);text-anchor:middle}
.pl-st circle{fill:var(--n);stroke:var(--i);stroke-width:3}.pl-st text{fill:var(--n);font:700 18px/1 var(--mono);text-anchor:middle;paint-order:stroke;stroke:var(--i);stroke-width:5px}
.pl-st.is-on circle{fill:var(--r)}
.pl-you{fill:none;stroke:var(--r);stroke-width:3;opacity:0}
.pl-map figcaption{margin-top:8px;font:500 11px/1.5 var(--mono);color:var(--soft)}
/* stations */
.pl-body{max-width:900px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px))}
.pl-station{display:grid;grid-template-columns:110px minmax(0,1fr);gap:0 28px;border-top:2px solid var(--n);padding:18px 0 44px;scroll-margin-top:180px}
.pl-station header{display:contents}
.pl-no{grid-row:1/4;font:800 72px/.8 'Barlow Condensed',sans-serif;color:var(--r);letter-spacing:-.02em}
.pl-coord{margin:0;font:700 12px/1 var(--mono);letter-spacing:.08em;color:var(--soft)}
.pl-station h2{margin:8px 0 0;font:800 clamp(32px,3.4vw,48px)/.95 'Barlow Condensed',sans-serif;text-wrap:balance}
.pl-place{margin:6px 0 0;font:600 14px/1.3 'Public Sans',sans-serif;color:var(--soft)}
.pl-text{grid-column:2}
.pl-text p{margin:14px 0 0;font:400 18px/1.62 'Public Sans',sans-serif;max-width:62ch}
.pl-box{margin:8px 0 48px;padding:24px 26px;background:var(--n);color:var(--i);border-radius:0}
.pl-box .pl-k{color:#f2c94c}.pl-box h2{margin:8px 0 0;font:800 clamp(30px,3vw,42px)/1 'Barlow Condensed',sans-serif;color:var(--i);text-wrap:balance}
.pl-box p{margin:12px 0 0;font:400 17px/1.6 'Public Sans',sans-serif;max-width:64ch}
.pl-box .pl-src a{color:#c9d6e2}
.pl-light{border-top:2px solid var(--n);padding:18px 0 40px}
.pl-light h2,.pl-hol h2{margin:8px 0 0;font:800 clamp(32px,3.4vw,48px)/.98 'Barlow Condensed',sans-serif;text-wrap:balance}
.pl-light p,.pl-hol p{margin:12px 0 0;font:400 17px/1.6 'Public Sans',sans-serif;max-width:64ch}
.pl-chart{margin-top:20px}
.pl-chart svg{display:block;width:100%;height:auto;overflow:visible}
.pl-chart .ax{stroke:var(--n);stroke-width:1}.pl-chart .grid{stroke:var(--hair);stroke-width:1}
.pl-chart .area{fill:#f2c94c}.pl-chart .night{fill:var(--n)}
.pl-chart .today{stroke:var(--r);stroke-width:2.5}
.pl-chart text{font:500 12px/1 var(--mono);fill:var(--soft)}
.pl-chart .lab{fill:var(--n);font-weight:700}
.pl-chart .tlab{fill:var(--r);font-weight:700}
.pl-hol{border-top:6px solid var(--r);padding:18px 0 0;margin-top:8px}
.pl-hol-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--n)}
.pl-hol-list li{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--hair);font:400 16px/1.45 'Public Sans',sans-serif}
.pl-hol-list li span{font:800 19px/1.1 'Barlow Condensed',sans-serif;color:var(--r)}
.pl-hol-list a{color:var(--n);font-weight:700}
.pl-fine{font:500 12px/1.5 var(--mono)!important;color:var(--soft)}
@media(max-width:700px){
 .pl-ribbon em{min-width:0}
 .pl-station{grid-template-columns:1fr}.pl-no{grid-row:auto;font-size:52px;margin-bottom:10px}.pl-text{grid-column:1}
 .pl-text p{font-size:17px}.pl-deck{font-size:18px}
 .pl-hol-list li{grid-template-columns:1fr;gap:4px}
 .pl-st text{font-size:26px}.pl-tick text{font-size:22px}
}
@media(prefers-reduced-motion:reduce){.pl-ribbon b{transition:none}}
@media(max-width:700px){
 .pl-map{overflow-x:auto;-webkit-overflow-scrolling:touch}.pl-strip{min-width:860px}
 .pl-chart{overflow-x:auto}.pl-chart svg{min-width:640px}
}
