@font-face{font-family:"Oswald";src:url("assets/oswald.ttf") format("truetype");font-weight:200 700;font-display:swap}
@font-face{font-family:"DM Serif";src:url("assets/dm-serif.ttf") format("truetype");font-display:swap}
@font-face{font-family:"Work Sans";src:url("assets/work-sans.ttf") format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("assets/ibm-plex-mono.ttf") format("truetype");font-display:swap}
@font-face{font-family:"Literata";src:url("assets/literata.ttf") format("truetype");font-weight:200 900;font-display:swap}
:root{--paper:#f2efe6;--cream:#f9f6ec;--ink:#173c36;--muted:#5d6d63;--line:#bac4b7;--lime:#dbef72;--coral:#ed704f;--dark:#102c2a;--mono:"IBM Plex Mono",monospace;--sans:"Work Sans",Arial,sans-serif;--display:"DM Serif",Georgia,serif;--condensed:"Oswald",Impact,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.detail-open{overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}img{display:block;max-width:100%}::selection{background:var(--coral);color:var(--dark)}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}#route{scroll-margin-top:20px}
.site-header{height:72px;padding:0 clamp(22px,4.1vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ink);background:var(--paper);position:relative;z-index:2}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:var(--condensed);font-size:27px;line-height:1;letter-spacing:-.025em;font-weight:600}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--ink);border-radius:50%;font-family:var(--sans);font-size:28px;font-weight:400;line-height:1}.header-note,.header-link{font-family:var(--mono);font-size:11px;letter-spacing:.075em}.header-note{margin-left:-10%}.header-link{text-decoration:none;border-bottom:1px solid var(--ink);padding:8px 0}.header-link span{font-family:var(--sans);font-size:18px;vertical-align:-1px;margin-left:8px}.header-link:hover{color:#be482b;border-color:#be482b}
.hero{position:relative;min-height:570px;background:var(--ink);color:var(--cream);display:grid;grid-template-columns:57% 43%;overflow:hidden}.hero-copy{position:relative;padding:50px 5vw 42px clamp(30px,6.2vw,108px);display:flex;flex-direction:column;z-index:1}.hero-eyebrow{display:flex;align-items:center;gap:12px;color:var(--lime);font-family:var(--mono);font-size:11px;letter-spacing:.08em;white-space:nowrap}.eyebrow-dot{width:8px;height:8px;background:var(--lime);border-radius:50%}.eyebrow-rule{width:40px;height:1px;background:var(--lime);opacity:.8}.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(80px,8.25vw,132px);line-height:.96;letter-spacing:-.055em;margin:55px 0 36px;max-width:820px}.hero h1 em{color:var(--lime);font-weight:400}.hero-bottom{display:flex;align-items:end;gap:30px;justify-content:space-between;margin-top:auto}.hero-bottom p{max-width:280px;font-size:16px;line-height:1.5;margin:0;color:#e2e9dd}.hero-action{min-width:174px;color:var(--dark);background:var(--lime);border:1px solid var(--lime);text-decoration:none;display:flex;align-items:center;justify-content:space-between;padding:12px 14px 12px 18px;gap:20px;font:12px var(--mono);letter-spacing:.04em}.hero-action:hover{background:var(--cream);border-color:var(--cream)}.action-arrow{font:27px var(--sans);line-height:1}.hero-art{position:relative;overflow:hidden;background:#5f7066}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center 52%;filter:grayscale(1) contrast(1.08)}.hero-art-wash{position:absolute;inset:0;background:#b4b760;mix-blend-mode:multiply;opacity:.5}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,60,54,.3),transparent 40%)}.map-line{position:absolute;border:8px solid var(--lime);z-index:1;opacity:.96}.map-line-one{left:-4%;top:10%;width:63%;height:51%;border-top:0;border-right:0;border-radius:0 0 0 80px}.map-line-two{left:26%;top:59%;width:59%;height:29%;border-bottom:0;border-left:0;border-radius:0 65px 0 0}.map-line-three{left:81%;top:86%;width:35%;height:30%;border-top:0;border-right:0;border-radius:0 0 0 50px}.map-stop{position:absolute;z-index:2;width:44px;height:44px;border-radius:50%;background:var(--lime);border:5px solid var(--ink);color:var(--ink);display:grid;place-items:center;font:11px var(--mono)}.map-stop-a{left:24%;top:54%}.map-stop-b{left:78%;top:59%}.map-stop-c{left:76%;top:85%}.art-corner{position:absolute;bottom:28px;left:30px;z-index:3;color:white;font:10px/1.7 var(--mono);letter-spacing:.08em;text-shadow:0 1px 4px #1f332d}.hero-side-note{position:absolute;right:12px;top:30px;z-index:3;writing-mode:vertical-rl;font:10px var(--mono);letter-spacing:.11em;color:white}
.route-section{max-width:1440px;margin:auto;padding:0 clamp(22px,6.2vw,108px) 112px}.section-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;padding:67px 0 31px}.section-kicker{font:11px var(--mono);letter-spacing:.08em}.section-kicker span{font:18px var(--sans)}.section-intro h2{font:400 clamp(48px,5vw,75px)/1.05 var(--display);letter-spacing:-.045em;margin:16px 0 0}.section-intro p{max-width:300px;font-size:16px;line-height:1.52;margin:0 0 6px;color:var(--muted)}.route-controls{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);display:grid;grid-template-columns:1.35fr 1fr auto;min-height:90px}.field{padding:14px 22px 12px 0;display:flex;flex-direction:column;gap:7px;min-width:0}.field+.field{border-left:1px solid var(--line);padding-left:22px}.field>span:first-child{font:10px var(--mono);letter-spacing:.08em}.input-wrap,.select-wrap{display:flex;align-items:center;gap:8px;min-width:0}.input-wrap>span{font-size:29px;line-height:1}.input-wrap input,.select-wrap select{height:33px;width:100%;min-width:0;background:none;border:0;color:var(--ink);outline:0;font-size:17px}.input-wrap input::placeholder{color:#67776d;opacity:1}.select-wrap select{appearance:none;cursor:pointer}.select-wrap>span{font-size:25px;line-height:1;pointer-events:none}.field:focus-within{background:rgba(219,239,114,.32)}.field:focus-within input,.field:focus-within select{outline:2px solid var(--coral);outline-offset:1px}.route-controls button{border:0;border-left:1px solid var(--line);background:transparent;padding:0 21px;display:flex;align-items:center;gap:13px;color:var(--ink);font:12px var(--mono);letter-spacing:.03em;white-space:nowrap}.saved-filter-icon{font-size:29px;line-height:1}.route-controls button small{font:11px var(--mono);padding-left:4px}.route-controls button:hover,.route-controls button[aria-pressed="true"]{background:var(--lime)}.route-status{display:flex;justify-content:space-between;padding:24px 0 20px;font:11px var(--mono);letter-spacing:.06em}.route-status span:last-child span{font:17px var(--sans)}
.story-list{position:relative}.story-list:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--ink);transform:translateX(-50%)}.story-row{display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:center;min-height:375px;padding:29px 0;border-top:1px solid var(--line);position:relative}.story-row:last-child{border-bottom:1px solid var(--line)}.story-marker{grid-column:2;grid-row:1;display:grid;place-items:center;z-index:1}.story-marker span{width:47px;height:47px;border:3px solid var(--ink);border-radius:50%;display:grid;place-items:center;background:var(--paper);font:13px var(--mono)}.story-visual{grid-row:1;height:310px;position:relative;overflow:hidden}.story-visual img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08)}.story-visual:after{content:"";position:absolute;inset:0;background:#7b8a65;mix-blend-mode:multiply;opacity:.16;pointer-events:none}.photo-caption{position:absolute;bottom:11px;left:12px;z-index:1;background:var(--lime);padding:7px 9px;font:9px var(--mono);letter-spacing:.04em;color:var(--ink)}.story-copy{grid-row:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:310px;padding:20px clamp(18px,4.2vw,66px)}.story-row.is-odd .story-visual{grid-column:1}.story-row.is-odd .story-copy{grid-column:3}.story-row.is-even .story-copy{grid-column:1;padding-left:0}.story-row.is-even .story-visual{grid-column:3}.story-meta{display:flex;gap:17px;align-items:center;font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase}.story-meta span:first-child{background:var(--lime);padding:5px 8px}.story-copy h3{font:400 clamp(31px,3.1vw,47px)/1.06 var(--display);letter-spacing:-.04em;margin:18px 0 14px;max-width:530px}.story-copy p{font-size:16px;line-height:1.5;color:var(--muted);margin:0 0 27px;max-width:400px}.open-story{display:flex;align-items:center;justify-content:space-between;gap:36px;background:none;color:var(--ink);border:0;border-bottom:2px solid var(--ink);padding:8px 0;font:12px var(--mono);letter-spacing:.04em}.open-story span:last-child{font:23px var(--sans);line-height:.75}.open-story:hover{color:#bb4b30;border-color:#bb4b30}.poster{display:flex;flex-direction:column;justify-content:space-between;padding:22px 25px;color:var(--paper)}.poster:after{display:none}.poster-repair{background:#496b80}.poster-walk{background:#e8744d;color:var(--dark)}.poster-small{font:10px var(--mono);letter-spacing:.07em}.poster strong{font:600 clamp(56px,6.4vw,94px)/.92 var(--condensed);letter-spacing:-.045em}.poster-arrow{position:absolute;bottom:13px;right:22px;font:62px var(--sans);line-height:1}
.poster-garden{background:#799b68;color:var(--dark)}.poster-signs{background:#dfd682;color:var(--dark)}
.empty-state{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:65px 30px 80px;text-align:center}.empty-state[hidden]{display:none}.empty-glyph{font-size:70px;line-height:1}.empty-state h3{font:400 48px var(--display);margin:8px 0}.empty-state p{color:var(--muted);margin:0 auto 26px;max-width:400px;line-height:1.5}.empty-state button{background:var(--lime);border:1px solid var(--ink);padding:14px 18px;font:12px var(--mono);color:var(--ink)}.empty-state button:hover{background:var(--cream)}
.site-footer{background:var(--dark);color:var(--cream);padding:46px clamp(22px,6.2vw,108px) 24px}.footer-top{display:flex;gap:30px;align-items:center;padding-bottom:85px}.footer-mark{font-size:100px;line-height:1;color:var(--lime)}.footer-top p{font:400 clamp(32px,4vw,55px)/1.05 var(--display);letter-spacing:-.035em;margin:0}.footer-bottom{border-top:1px solid #638078;display:flex;justify-content:space-between;gap:20px;padding-top:20px;font:10px var(--mono);letter-spacing:.06em}.footer-bottom a{text-decoration:none;border-bottom:1px solid var(--lime);padding-bottom:5px}
dialog{border:0;padding:0;color:var(--ink);background:var(--cream);width:min(980px,calc(100% - 40px));max-height:min(900px,calc(100dvh - 50px));box-shadow:0 25px 80px #071b19aa;overflow:auto}dialog::backdrop{background:rgba(8,28,25,.78)}.detail-shell{display:grid;grid-template-columns:180px minmax(0,1fr);min-height:650px}.detail-spine{position:relative;background:var(--lime);padding:28px 22px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.detail-spine-top{display:flex;flex-direction:column;gap:36px}.detail-brand{font:500 22px var(--condensed);white-space:nowrap}.detail-stop{font:400 105px/1 var(--display);letter-spacing:-.09em}.detail-spine-line{position:absolute;left:49%;top:208px;bottom:120px;width:5px;background:var(--ink)}.detail-spine-line:before,.detail-spine-line:after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:24px;height:24px;border:5px solid var(--ink);border-radius:50%;background:var(--lime)}.detail-spine-line:before{top:0}.detail-spine-line:after{bottom:0}.detail-spine p{font:11px/1.6 var(--mono);margin:0}.detail-article{padding:30px clamp(28px,5vw,75px) 60px}.detail-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;font:11px var(--mono);letter-spacing:.06em}.detail-topline button{border:1px solid var(--ink);background:none;padding:8px 10px;color:var(--ink);font:11px var(--mono);display:flex;align-items:center;gap:10px}.detail-topline button span{font:23px var(--sans);line-height:.7}.detail-topline button:hover{background:var(--lime)}.detail-article h2{font:400 clamp(46px,5vw,69px)/1.03 var(--display);letter-spacing:-.045em;margin:47px 0 20px}.detail-summary{font:20px/1.45 var(--sans);max-width:620px;margin:0 0 30px;color:#456058}.detail-byline{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:15px 0;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font:10px var(--mono);letter-spacing:.04em}.detail-body{max-width:640px;margin:36px auto 48px;font:18px/1.72 var(--literata,"Literata",Georgia,serif)}.detail-body p{margin:0 0 1.35em}.detail-body p:first-child:first-letter{float:left;font:400 77px/.85 var(--display);padding:9px 7px 0 0;color:#c65837}.detail-end{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:17px 0 22px;font:10px var(--mono);letter-spacing:.06em}.detail-end span:first-child{font:27px var(--sans);line-height:1}.detail-article #save-item{width:100%;border:2px solid var(--ink);background:var(--lime);color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;text-align:left;font:12px var(--mono);letter-spacing:.03em}.detail-article #save-item:hover{background:var(--paper)}.detail-article #save-item[aria-pressed="true"]{background:var(--ink);color:var(--cream)}.detail-article #save-item span{font:23px var(--sans);line-height:1}
@media(max-width:900px){.header-note{display:none}.hero{grid-template-columns:60% 40%}.hero h1{font-size:clamp(66px,9vw,94px)}.hero-copy{padding-left:5vw}.hero-bottom{align-items:start;flex-direction:column}.story-row{grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr)}.story-copy{padding:20px}.story-copy h3{font-size:34px}.story-visual{height:280px}.story-row{min-height:340px}.poster strong{font-size:58px}}
@media(max-width:680px){.site-header{height:62px;padding:0 20px}.brand{font-size:23px;gap:8px}.brand-mark{width:32px;height:32px;font-size:22px}.header-link{font-size:0;padding:5px;border:0}.header-link span{font-size:24px;margin:0}.hero{display:block;min-height:0}.hero-copy{padding:33px 22px 35px}.hero h1{font-size:clamp(64px,14.9vw,83px);margin:48px 0 31px;line-height:.96}.hero-bottom{flex-direction:row;align-items:end;gap:12px}.hero-bottom p{font-size:14px;max-width:205px}.hero-action{min-width:0;padding:10px 11px;gap:8px;font-size:10px}.action-arrow{font-size:22px}.hero-art{height:214px}.hero-art img{object-position:center 44%}.map-line{border-width:6px}.map-stop{width:33px;height:33px;border-width:4px;font-size:9px}.art-corner{bottom:14px;left:19px;font-size:8px}.hero-side-note{display:none}.route-section{padding:0 20px 70px}.section-intro{display:block;padding:43px 0 28px}.section-intro h2{font-size:52px;margin-top:12px}.section-intro p{margin:13px 0 0;font-size:15px}.route-controls{grid-template-columns:1fr 1fr}.field{padding:12px 13px 12px 0}.field+.field{padding-left:13px}.field>span:first-child{font-size:9px}.input-wrap input,.select-wrap select{font-size:14px}.input-wrap>span{font-size:23px}.route-controls button{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);height:51px;padding:0 12px;justify-content:space-between}.saved-filter-icon{font-size:23px}.route-status{padding:22px 0;font-size:10px}.route-status>span:last-child{display:none}.story-list:before{left:22px;transform:none;width:2px}.story-row{grid-template-columns:45px minmax(0,1fr);align-items:start;min-height:0;padding:25px 0 35px}.story-marker{grid-column:1;grid-row:1/3;justify-content:start;padding-top:12px}.story-marker span{width:44px;height:44px;background:var(--paper);font-size:12px}.story-row.is-odd .story-visual,.story-row.is-even .story-visual{grid-column:2;grid-row:1}.story-row.is-odd .story-copy,.story-row.is-even .story-copy{grid-column:2;grid-row:2;padding:19px 0 0;min-height:0}.story-visual{height:auto;aspect-ratio:1.5}.story-copy h3{font-size:clamp(32px,9vw,42px);margin:13px 0 12px}.story-copy p{font-size:15px;margin-bottom:18px}.story-meta{font-size:10px}.poster{min-height:210px;padding:15px}.poster strong{font-size:clamp(50px,17vw,76px)}.poster-small{font-size:8px}.photo-caption{font-size:8px;left:7px;bottom:7px}.footer-top{padding-bottom:70px}.footer-mark{font-size:76px}.footer-bottom{flex-wrap:wrap;line-height:1.5}.footer-bottom span:nth-child(2){display:none}dialog{width:100%;max-height:100dvh;height:100dvh;margin:0;box-shadow:none}.detail-shell{display:block}.detail-spine{height:75px;padding:13px 20px;flex-direction:row;align-items:center}.detail-spine-top{width:100%;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.detail-brand{font-size:21px}.detail-stop{font-size:49px}.detail-spine-line,.detail-spine p{display:none}.detail-article{padding:19px 23px 60px}.detail-article h2{font-size:clamp(43px,12vw,59px);margin:35px 0 20px}.detail-summary{font-size:17px}.detail-byline{font-size:9px;justify-content:flex-start;column-gap:15px;row-gap:8px}.detail-body{font-size:17px;line-height:1.7;margin:31px auto 43px}.detail-body p:first-child:first-letter{font-size:69px}.detail-article #save-item{font-size:10px}}
@media(max-width:380px){.hero h1{font-size:62px}.hero-bottom p{max-width:180px}.story-meta{gap:9px}.detail-article h2{font-size:42px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
