*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 Archivo,system-ui,sans-serif;overflow-wrap:anywhere}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
img{max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mock-flag{background:#c8102e;color:#fff;font:600 11px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;text-align:center}
mark.ph{background:#c8102e;color:#fff;font:600 10px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;padding:3px 5px;vertical-align:middle}
.site{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(16px,4vw,48px);border-bottom:2px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand .logo{width:68px;height:auto;display:block}
.wordmark{font:800 20px/1 Archivo,sans-serif;letter-spacing:-.01em}
.site nav{display:flex;gap:clamp(10px,2vw,28px);font:600 13px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}
.site nav a{text-decoration:none}
.site nav a:hover{text-decoration:underline}
@media(max-width:620px){.site{flex-wrap:wrap}.site nav{width:100%;justify-content:space-between;font-size:11px}.brand .logo{width:46px}}
.crumbs ol{list-style:none;margin:0;padding:14px 0 0;display:flex;flex-wrap:wrap;gap:6px;font:400 12px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.5}
.truss{display:block;width:100%;height:28px;stroke:var(--accent);stroke-width:2;fill:none}
.smap{width:100%;height:auto;display:block;background:var(--paper2);border:2px solid var(--line)}
.smap .river{fill:var(--soft)}.smap .xst{stroke:var(--soft);stroke-width:1}.smap .st{stroke:var(--ink);stroke-width:5}
.smap .stl{font:600 11px "IBM Plex Mono",monospace;fill:var(--ink);letter-spacing:.08em}.smap .lbl{font:400 10px "IBM Plex Mono",monospace;fill:var(--muted)}
.smap .pin rect{fill:var(--accent);stroke:var(--ink);stroke-width:2}.smap .pin text{font:800 17px Archivo,sans-serif;fill:var(--accent-ink)}
figcaption{font:400 12px/1.4 "IBM Plex Mono",monospace;color:var(--muted);margin-top:6px}
.news{border:2px solid var(--line);padding:20px;margin:24px 0;background:var(--paper)}
.news h2{margin:0 0 6px}.news p{margin:0 0 12px;font-size:15px}
.news input{width:100%;font:inherit;padding:12px;border:2px solid var(--line);background:#fff;margin-bottom:8px}
.news button,.share button{font:700 14px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;background:var(--ink);color:var(--paper);border:0;padding:14px 18px;cursor:pointer;width:100%}
.sponsor{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:24px 0;font:400 13px/1.5 "IBM Plex Mono",monospace;color:var(--muted)}
.sponsor span{text-transform:uppercase;letter-spacing:.08em;color:var(--ink);font-weight:600}
.sponsor small{display:block}
.upd{list-style:none;margin:0;padding:0}
.upd li{padding:14px 0;border-top:1px solid var(--soft)}
.upd time,.upd .kind{font:600 12px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}
.upd .kind{margin-left:10px;color:var(--muted)}
.upd h3{margin:6px 0 4px;font-size:17px;line-height:1.3}.upd p{margin:0;font-size:14px;color:var(--muted)}
.hours{width:100%;border-collapse:collapse;font:400 15px/1.4 "IBM Plex Mono",monospace}
.hours th,.hours td{text-align:left;padding:8px 0;border-bottom:1px solid var(--soft);font-weight:400}.hours td{text-align:right}
.hours caption{text-align:left;font-size:12px;color:var(--muted);padding-bottom:6px}
footer.site{display:block;border-top:2px solid var(--line);border-bottom:0;padding:28px clamp(16px,4vw,48px);margin-top:48px;font-size:14px}
.foot-brand{display:flex;gap:16px;align-items:flex-start;max-width:760px}.foot-brand .logo{width:64px;height:auto;flex:none}.foot-brand p{margin:0}
.foot-links{font:400 13px "IBM Plex Mono",monospace}
