@font-face{font-family:raleway;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Raleway-VariableFont_wght.ttf)format("truetype")}:root{--bg:#130d28;--bg-raised:#1c1636;--bg-sunken:#0b061a;--line:#3a335a;--line-strong:#59517d;--text:#d6d2e6;--text-muted:#9c94bb;--heading:#f0eefa;--accent:#62b6dd;--accent-hi:#9ad6f2;--phosphor:#8ee39a;--amber:#ffbf5f;--pin:#ff5fae;--error:#ff6b6b;--hover:#655395;--font-body:Verdana, "DejaVu Sans", "Bitstream Vera Sans", Geneva, sans-serif;--font-head:Raleway, var(--font-body);--font-mono:ui-monospace, "JetBrains Mono", "Cascadia Mono", "DejaVu Sans Mono", Menlo, Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:40px;--radius:4px;--content-width:880px}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;padding:0 var(--space-3);background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6}::selection{background:var(--hover);color:#fff}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hi);text-decoration:underline;text-underline-offset:3px}a:focus-visible,.menu-parent:focus-visible{outline:2px solid var(--amber);outline-offset:2px}img{max-width:100%;height:auto}hr{border:0;border-top:1px dashed var(--line-strong);margin:var(--space-5)0}#main{max-width:var(--content-width);margin:var(--space-4)auto;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);box-shadow:0 0 0 4px var(--bg),0 0 0 5px var(--line)}#content{padding:var(--space-4)var(--space-5)var(--space-5)}h1,h2,h3,h4{font-family:var(--font-mono);color:var(--heading);line-height:1.3;font-weight:700}h1{font-size:1.5rem;margin:var(--space-4)0 var(--space-3)}h2{font-size:1.2rem;margin:var(--space-5)0 var(--space-3);padding-bottom:var(--space-1);border-bottom:1px solid var(--line)}h3{font-size:1.05rem;margin:var(--space-4)0 var(--space-2)}h4{font-size:1rem;margin:var(--space-3)0 var(--space-2)}h1,h2{font-family:var(--font-head);font-weight:600;color:var(--accent);letter-spacing:.01em}h1{font-size:1.7rem}h2{font-size:1.35rem}#content h1::before,#content h2::before,#content h3::before{font-family:var(--font-mono);color:var(--text-muted);font-weight:400}#content h1::before{content:"# "}#content h2::before{content:"## "}#content h3::before{content:"### "}#content>:first-child{margin-top:0}p{margin:0 0 var(--space-3)}ul,ol{margin:0 0 var(--space-3);padding-left:1.6em}li{margin-bottom:var(--space-1)}li::marker{color:var(--accent)}strong{color:var(--heading)}code,kbd,samp,.mono{font-family:var(--font-mono);font-size:.9em}code{background:var(--bg-raised);color:var(--phosphor);padding:.1em .35em;border-radius:3px}pre{background:var(--bg-sunken);color:var(--phosphor);border:1px solid var(--line);border-left:3px solid var(--phosphor);border-radius:var(--radius);padding:var(--space-3);margin:0 0 var(--space-4);overflow-x:auto;font-size:13px;line-height:1.5}pre code{background:0 0;padding:0;font-size:inherit;color:inherit}.table-wrap{overflow-x:auto;margin:0 0 var(--space-4);border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.9em}th,td{padding:var(--space-2)var(--space-3);text-align:left;vertical-align:top}thead th{background:var(--bg-raised);color:var(--heading);font-family:var(--font-mono);font-size:.85em;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--accent);white-space:nowrap}tbody td{border-top:1px solid var(--line)}tbody tr:nth-child(even){background:rgba(255,255,255,.025)}tbody tr:hover{background:rgba(98,182,221,8%)}td.num,th.num{text-align:right}td.mono{white-space:nowrap}.table-caption{font-family:var(--font-mono);font-size:.85em;color:var(--text-muted);margin-bottom:var(--space-2)}.table-caption::before{content:"$ ";color:var(--phosphor)}th button.sort{all:unset;cursor:pointer}th button.sort::after{content:" \2195";color:var(--text-muted)}th[aria-sort=ascending] button.sort::after{content:" \25B4";color:var(--amber)}th[aria-sort=descending] button.sort::after{content:" \25BE";color:var(--amber)}th button.sort:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.memberlist td{vertical-align:baseline}.memberlist .addr{display:inline-block}.memberlist td.v4 .addr{min-width:14ch}.memberlist td.v6 .addr{min-width:18ch}.sess-group{white-space:nowrap}.sess{display:inline-block;min-width:1.6em;margin:0 0 0 3px;padding:0 4px;border:1px solid transparent;border-radius:2px;font:700 .75em/1.3 var(--font-mono);text-align:center;vertical-align:baseline;color:var(--bg-sunken)}button.sess{cursor:pointer}button.sess:hover{filter:brightness(1.2)}button.sess:focus-visible,button.sess[aria-expanded=true]{outline:2px solid var(--amber);outline-offset:1px}.s-up{background:var(--phosphor)}.s-waiting{background:var(--amber)}.s-error{background:var(--error)}.s-down{background:var(--line-strong);color:var(--text)}.s-missing,.s-unknown{background:0 0;color:var(--text-muted);border:1px dashed var(--line-strong)}.sess-pop{position:absolute;z-index:20;width:min(46em,calc(100vw - 16px));max-height:80vh;overflow:auto;padding:var(--space-2)var(--space-3)var(--space-3);background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 8px 28px rgba(0,0,0,.55);font-size:.85em}.sess-pop[hidden]{display:none}@media(max-width:600px){.sess-pop{position:fixed;left:8px;right:8px;bottom:8px;width:auto;max-height:75vh}}.pop-head{display:flex;align-items:baseline;gap:var(--space-2)}.pop-head strong{flex:1;font-family:var(--font-mono);overflow-wrap:anywhere}.pop-head .sess{margin:0}.pop-close{background:0 0;border:0;color:var(--text-muted);font-size:1.4em;line-height:1;cursor:pointer}.pop-close:hover{color:var(--heading)}.sess-pop dl{display:grid;grid-template-columns:max-content 1fr;gap:2px var(--space-3);margin:var(--space-2)0 var(--space-3)}.sess-pop dt{color:var(--text-muted)}.sess-pop dd{margin:0;font-family:var(--font-mono);overflow-wrap:anywhere}.pop-tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line)}.pop-tabs button{background:0 0;border:1px solid transparent;border-bottom:0;border-radius:2px 2px 0 0;padding:2px var(--space-2);color:var(--accent);font:inherit;font-family:var(--font-mono);cursor:pointer}.pop-tabs button[aria-selected=true]{background:var(--bg-sunken);border-color:var(--line);color:var(--heading)}.pop-tabs button:focus-visible{outline:2px solid var(--amber)}.pop-body{background:var(--bg-sunken);border:1px solid var(--line);border-top:0;padding:var(--space-2);max-height:50vh;overflow:auto;font-family:var(--font-mono)}.pop-body p{margin:0 0 var(--space-1)}.pop-body .muted,.pop-body .cmd{color:var(--text-muted)}.pop-body pre{margin:0;padding:0;border:0;background:0 0;font-size:1em;white-space:pre;overflow:visible}.pop-body table{width:auto;font-size:1em}.pop-body th,.pop-body td{padding:1px var(--space-3)1px 0;border:0;white-space:nowrap}.pop-body thead th{background:0 0;border:0;color:var(--text-muted);font-size:1em}.pop-body tbody tr:nth-child(n),.pop-body tbody tr:hover{background:0 0}#header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-4);padding:var(--space-4)var(--space-5)var(--space-3)}#header .logo{width:200px;display:block}.tagline{font-family:var(--font-mono);font-size:.95rem;line-height:1.25;color:var(--text-muted);text-transform:lowercase;justify-self:end;text-align:right}.cursor{color:var(--phosphor);animation:blink 1.1s steps(1)infinite}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.cursor{animation:none}}#lang{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-1);font-family:var(--font-mono);font-size:.85rem}#lang li{margin:0}#lang a{display:block;padding:2px var(--space-2);border:1px solid var(--line);border-radius:3px;color:var(--text-muted)}#lang a[aria-current]{border-color:var(--accent);color:var(--accent)}#lang a:hover{text-decoration:none;color:var(--heading);border-color:var(--line-strong)}#menu{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-raised);padding:0 var(--space-4);font-family:var(--font-mono);font-size:.9rem}#menu ul{list-style:none;margin:0;padding:0}#menu>ul{display:flex;flex-wrap:wrap}#menu li{position:relative;margin:0}#menu a,.menu-parent{display:block;padding:var(--space-2)var(--space-3);color:var(--text);cursor:pointer;border-bottom:2px solid transparent}#menu a:hover,.menu-parent:hover{background:var(--hover);color:#fff;text-decoration:none}#menu li.active>a,#menu li.active>.menu-parent{color:var(--accent-hi);border-bottom-color:var(--accent)}#menu li.active>a::before{content:"> ";color:var(--phosphor)}.has-sub>.menu-parent::after{content:" \25BE";color:var(--text-muted)}.sub-menu{display:none;position:absolute;top:100%;left:0;z-index:10;min-width:220px;background:var(--bg-raised);border:1px solid var(--line-strong);box-shadow:4px 4px rgba(0,0,0,.35)}.has-sub:hover>.sub-menu,.has-sub:focus-within>.sub-menu{display:block}.sub-menu a{border-bottom:0;white-space:nowrap}.post-list{list-style:none;padding:0}.post-list li{display:grid;grid-template-columns:7.5em 1fr;gap:var(--space-3);padding:var(--space-3)0;border-bottom:1px dashed var(--line)}.post-list time,.post-meta{font-family:var(--font-mono);font-size:.85em;color:var(--text-muted)}.post-list p{margin:var(--space-1)0 0;color:var(--text-muted)}.post-image{border-radius:var(--radius);margin-bottom:var(--space-3)}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.stats .wide{grid-column:1/-1}.stats a{display:block;padding:var(--space-2);background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius)}.stats a:hover{border-color:var(--accent)}.stats img{display:block;width:100%}.location-map{margin:0 0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-sunken);overflow:hidden}.location-map svg{display:block;width:100%;height:auto}.location-map figcaption{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-align:right;padding:var(--space-1)var(--space-2);border-top:1px solid var(--line)}.m-water{fill:#173a5e;stroke:none}.m-river{fill:none;stroke:#2b5f8f;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.m-primary{fill:none;stroke:#6b5a22;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.m-major{fill:none;stroke:#d9b740;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.m-rail{fill:none;stroke:#5d5873;stroke-width:1.2;stroke-dasharray:5 3}.m-grid{stroke:rgba(98,182,221,7%);stroke-width:1}.m-label{font-family:var(--font-mono);font-size:13px;fill:var(--text-muted);letter-spacing:.08em}.m-pin circle.halo{fill:rgba(255,95,174,.2)}.m-pin circle.dot{fill:var(--pin);stroke:var(--bg-sunken);stroke-width:2}.m-pin text{font-family:var(--font-mono);font-size:14px;font-weight:700;fill:var(--pin);paint-order:stroke;stroke:var(--bg-sunken);stroke-width:4px}.m-pin:hover circle.halo,.m-pin:focus circle.halo{fill:rgba(255,95,174,.45)}.locations td:first-child{white-space:nowrap;font-family:var(--font-mono);color:var(--pin)}#footer{border-top:1px solid var(--line);padding:var(--space-4)var(--space-5);font-size:.8rem;color:var(--text-muted)}#footer .logos{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:var(--space-4);align-items:start}#footer .label{display:block;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2)}#footer img{height:26px;width:auto;padding:3px 5px;background:#fff;vertical-align:middle;margin-right:var(--space-1)}#footer img.bg-none{background:0 0;padding:0}#footer .legal{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px dashed var(--line);text-align:center}@media screen and (max-width:760px){body{padding:0;font-size:15px}#main{margin:0;border:0;border-radius:0;box-shadow:none}#header{grid-template-columns:1fr auto;padding:var(--space-3)}#header .logo{width:150px}.big-only{display:none}#menu{padding:0 var(--space-2)}#menu a,.menu-parent{padding:var(--space-2)}#content{padding:var(--space-3)}#footer{padding:var(--space-3)}#footer .logos{grid-template-columns:1fr}.post-list li{grid-template-columns:1fr;gap:var(--space-1)}}