@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#153b36;--muted:#61746c;--paper:#f6f6ed;--line:#dce3d7;--accent:#b3e45e;--ocean:#dce9e9}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper)}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #168a77;outline-offset:3px}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:1001}.brand{text-decoration:none;display:flex;gap:13px;align-items:center;color:var(--ink);font-size:12px;font-weight:700;letter-spacing:2px;line-height:1.4}.brand-mark{background:var(--ink);color:var(--accent);font-size:31px;height:42px;width:42px;display:grid;place-items:center}.edition{display:flex;align-items:center;gap:24px}.edition>span{font-size:10px;letter-spacing:2px}.edition strong{font-family:'Space Grotesk',sans-serif;font-size:38px;font-weight:500}.edition strong span{color:#9aac9e}.about-button{border:0;background:none;color:var(--ink);font-size:12px}.about-button span{padding-left:18px}main{height:calc(100dvh - 86px);display:grid;grid-template-columns:330px minmax(0,1fr)}aside{overflow:auto;background:var(--paper);border-right:1px solid var(--line);scrollbar-width:thin;z-index:800}.intro{padding:30px 26px 20px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:700}.intro h1{font:500 40px/1.07 'Space Grotesk',sans-serif;letter-spacing:-2px;margin:18px 0}.intro p{color:var(--muted);font-size:13px;line-height:1.65;margin:0}.scenario{padding:0 26px 18px}.scenario label{display:block;font-size:11px;font-weight:600;margin-bottom:8px}.scenario select{width:100%;font-size:12px;padding:11px 9px;border:1px solid #bacabc;border-radius:0;background:transparent;color:var(--ink)}.search-wrap{margin:0 26px 24px;border-bottom:1px solid #bacabc;display:flex;gap:10px;align-items:center}.search-wrap span{font-size:24px}.search-wrap input{width:100%;padding:11px 0;font-size:12px;color:var(--ink);border:0;outline:0;background:transparent}.list-heading{display:flex;justify-content:space-between;padding:0 26px 12px;font-size:9px;letter-spacing:1.4px;color:var(--muted)}.route-card{border:0;border-top:1px solid var(--line);width:100%;padding:15px 26px;background:transparent;text-align:left;color:var(--ink);display:flex;gap:13px;position:relative}.route-card:hover{background:#e9efdf}.route-card.selected{background:#e3eed3}.route-stripe{width:4px;align-self:stretch;min-height:32px;flex-shrink:0;background:var(--route-color)}.route-card .route-text{flex:1}.route-name{display:block;font-size:13px;font-weight:600;line-height:1.3}.route-meta{font-size:10px;line-height:1.5;color:var(--muted);display:block;margin-top:5px}.arrow{font-size:17px;font-weight:400}.empty{padding:25px;font-size:13px}.sidebar-footer{padding:24px 26px;font-size:10px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line)}.map-area{position:relative;min-width:0;overflow:hidden}#map{width:100%;height:100%;background:var(--ocean)}.leaflet-container{font-family:'DM Sans',sans-serif}.leaflet-control-attribution{font-size:9px!important}.leaflet-popup-content-wrapper{border-radius:4px;box-shadow:0 3px 20px #14392d2a;background:var(--paper);color:var(--ink)}.station-popup h3{font-size:15px;margin:0 0 7px}.station-popup p{font-size:11px;margin:5px 0;line-height:1.5}.station-popup a{color:#096651}.station-label{border:0;background:#f6f6edee;box-shadow:none;color:#153b36;font-size:11px;padding:2px 5px}.map-toolbar{position:absolute;top:22px;left:22px;z-index:700;display:flex;background:var(--paper);padding:4px;box-shadow:0 2px 12px #14392d14}.map-toolbar button{border:0;background:none;font-size:11px;padding:10px 13px;color:var(--ink)}.map-toolbar button.active{background:var(--ink);color:var(--paper)}.map-title{position:absolute;left:26px;top:93px;z-index:500;pointer-events:none;background:#f6f6eddd;padding:10px 14px}.map-title span{display:block;font-size:8px;letter-spacing:2px}.map-title strong{font:500 21px 'Space Grotesk',sans-serif;display:block;margin-top:3px}.map-legend{position:absolute;left:22px;bottom:32px;z-index:700;background:#f6f6edf5;padding:12px 15px;display:flex;flex-wrap:wrap;gap:12px 17px;max-width:610px;font-size:10px;box-shadow:0 2px 12px #14392d14}.map-legend div{display:flex;align-items:center;gap:8px}.sample{display:inline-block;width:23px;height:0;border-top:3px solid #2d7265}.sample.dash{border-top-style:dashed;border-top-color:#2d7265}.sample.area{height:9px;background:#e7b55140;border:1px dashed #977735}.sample.dot{width:7px;height:7px;border:2px solid #2d7265;border-radius:100%;background:var(--paper)}.sample.diamond{height:6px;width:6px;transform:rotate(45deg);border:1px solid #8e743f;background:#e7b55140}.map-legend button{border:0;background:var(--ink);color:var(--paper);font-size:10px;padding:5px 8px}.detail{position:absolute;top:22px;right:22px;width:310px;max-height:calc(100% - 100px);overflow:auto;z-index:800;background:var(--paper);box-shadow:0 8px 35px #153b3626;padding:24px}.hidden{display:none!important}.detail .close{position:absolute;right:12px;top:9px;background:none;border:0;font-size:22px;color:var(--ink)}.detail .kicker{display:flex;gap:8px;align-items:center;font-size:9px;letter-spacing:1.3px;margin-bottom:13px}.detail .kicker i{width:20px;height:4px;background:var(--route-color)}.detail h2{font:500 25px/1.13 'Space Grotesk',sans-serif;margin:0 0 8px;letter-spacing:-.7px}.detail p{font-size:12px;line-height:1.6;color:var(--muted)}.detail .assessment{background:#e9efdf;margin:18px -24px 0;padding:16px 24px;font-size:11px}.assessment strong{display:block;margin-bottom:6px}.detail dl{margin:16px 0}.detail dt{font-size:9px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);margin-top:16px}.detail dd{font-size:11px;margin:6px 0;line-height:1.5}.detail details{border-top:1px solid var(--line);padding:13px 0;font-size:12px}.detail summary{cursor:pointer;font-weight:600}.station-list{display:flex;flex-direction:column;gap:0;max-height:200px;overflow:auto;margin-top:10px}.station-list button{background:none;border:0;border-bottom:1px solid var(--line);text-align:left;font-size:11px;padding:9px 1px;color:var(--ink)}.detail a{font-size:11px;color:#096651;line-height:1.8;display:block}.detail .no-stations{font-size:11px;padding-top:10px}.leaflet-top.leaflet-right{top:auto;bottom:120px}.leaflet-control-zoom{border:0!important;box-shadow:0 2px 12px #14392d14!important}.leaflet-control-zoom a{background:var(--paper)!important;color:var(--ink)!important}#map-status{position:absolute;bottom:5px;left:22px;z-index:700;font-size:9px;max-width:65%;color:var(--ink);background:#f6f6eddd;padding:3px 6px}#mobile-explore{display:none}dialog{max-width:800px;width:calc(100% - 32px);max-height:90dvh;border:0;padding:42px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#12352bcc;backdrop-filter:blur(3px)}dialog .close{position:absolute;right:20px;top:16px;background:none;border:0;font-size:28px;color:var(--ink)}dialog h2{font:500 36px/1.1 'Space Grotesk',sans-serif;letter-spacing:-1px}dialog p{font-size:13px;line-height:1.7;color:var(--muted)}dialog h3{font-size:14px}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 28px}#sources{display:grid;gap:10px}#sources a{font-size:12px;color:#096651}.footnote{font-size:10px!important}.place-icon{width:auto!important;white-space:nowrap;font-size:11px;color:#4d644c;text-shadow:0 1px #fff}.place-icon .diamond{display:inline-block;width:6px;height:6px;background:#a98c49;transform:rotate(45deg);margin-right:5px}.leaflet-interactive{cursor:pointer}
@media(min-width:1500px){main{grid-template-columns:360px 1fr}.intro{padding-top:40px}.intro h1{font-size:48px}.detail{width:340px}}
@media(max-width:1000px){.detail{width:270px}.map-title{top:83px}.map-toolbar{gap:0}.map-toolbar button{padding:9px;font-size:10px}main{grid-template-columns:280px 1fr}.intro{padding:24px 20px 20px}.intro h1{font-size:35px}.route-card{padding-left:20px;padding-right:20px}.scenario,.list-heading{padding-left:20px;padding-right:20px}.search-wrap{margin-left:20px;margin-right:20px}.edition>span{display:none}}
@media(max-width:720px){header{height:68px;padding:0 16px}.brand{font-size:9px;gap:9px;letter-spacing:1.3px}.brand-mark{height:33px;width:33px;font-size:25px}.edition strong{font-size:29px}.about-button{font-size:10px;max-width:95px;text-align:right}.about-button span{display:none}main{height:calc(100dvh - 68px);display:block}.map-area{height:100%}aside{position:absolute;top:68px;bottom:0;left:0;width:85%;max-width:330px;transform:translateX(-102%);transition:transform .22s;z-index:1000;box-shadow:5px 0 30px #153b3630}aside.open{transform:translateX(0)}.map-toolbar{top:12px;left:12px}.map-toolbar button{font-size:10px;padding:9px}.map-title{top:64px;left:12px;padding:8px 11px}.map-title strong{font-size:18px}.map-legend{left:12px;right:12px;bottom:52px;padding:10px;gap:9px 12px;font-size:9px;max-width:100%}.map-legend .sample{width:16px}.map-legend .sample.dot{width:7px}.map-legend .sample.diamond{width:6px}#mobile-explore{display:flex;justify-content:space-between;gap:24px;position:absolute;left:12px;bottom:13px;z-index:850;border:0;padding:10px 15px;color:var(--paper);background:var(--ink);font-size:11px}.detail{top:113px;left:12px;right:12px;width:auto;max-height:calc(100% - 252px);padding:20px}.detail h2{font-size:22px}.detail .assessment{margin-left:-20px;margin-right:-20px;padding:12px 20px}.leaflet-top.leaflet-right{bottom:160px}#map-status{bottom:1px;left:12px;max-width:60%;font-size:8px}.method-grid{grid-template-columns:1fr}dialog{padding:25px}dialog h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.sample.double{height:7px;border-top:2px solid #376855;border-bottom:2px solid #376855;background:transparent;box-sizing:border-box}

.station-media{margin:12px 0;max-height:300px;overflow-y:auto;scrollbar-width:thin}.station-media figure{margin:0 0 16px}.station-media img{display:block;width:100%;height:170px;object-fit:contain;background:#e9eee5;border:1px solid #d5dfd1;border-radius:3px}.media-kind{display:block;font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;margin-bottom:5px;color:#3f6858}.station-media figcaption{font-size:11px;line-height:1.5;margin-top:6px}.station-media small{display:block;color:#61746c;font-size:10px;margin:4px 0}.station-media figcaption a{font-size:10px}.media-unavailable{font-size:11px!important;color:#61746c}.station-list button span{font-size:9px;white-space:nowrap}.station-popup{max-width:320px}
@media(max-width:720px){.station-media{max-height:235px}.station-media img{height:145px}}

.route-group{border-top:1px solid var(--line)}
.route-group>summary{list-style:none;display:flex;align-items:center;gap:11px;padding:16px 26px;cursor:pointer;font-size:13px;font-weight:600;line-height:1.4;user-select:none}
.route-group>summary::-webkit-details-marker{display:none}
.route-group>summary:hover{background:#e9efdf}
.route-group>summary:focus-visible{outline:3px solid #168a77;outline-offset:-3px}
.group-chevron{display:inline-block;font-size:10px;transition:transform .15s;color:var(--muted);flex-shrink:0}
.route-group[open]>summary .group-chevron{transform:rotate(90deg)}
.group-name{flex:1}.group-count{font-size:10px;font-weight:400;color:var(--muted);border:1px solid var(--line);border-radius:12px;padding:1px 6px}
.route-group.has-selection>summary{background:#e3eed3}
.group-lines .route-card{padding-left:44px;padding-top:12px;padding-bottom:12px;border-top:0}
.group-lines .route-name{font-size:12px}.group-lines .route-stripe{width:3px}.group-lines{padding-bottom:6px}
@media(max-width:1000px){.route-group>summary{padding-left:20px;padding-right:20px}.group-lines .route-card{padding-left:38px}}

.group-actions{display:flex;gap:8px;padding:0 26px 14px}
.group-actions button{border:1px solid #bacabc;background:transparent;color:var(--ink);font-size:11px;padding:7px 10px;border-radius:3px}
.group-actions button:hover{background:#e9efdf;border-color:#61746c}
@media(max-width:1000px){.group-actions{padding-left:20px;padding-right:20px}}
