:root{--ink:#193a32;--green:#173e35;--paper:#f7f5ee;--muted:#5c6b60;--line:#d8ddd2;--orange:#a9492c;--white:#fffef9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange);outline-offset:4px}a{color:inherit}button{min-height:44px}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}.skip-link{position:absolute;top:-70px;left:10px;z-index:10;padding:12px;background:white}.skip-link:focus{top:10px}.research-banner{padding:8px 24px;background:var(--green);color:#fff;text-align:center;font-size:11px;letter-spacing:.03em}.research-banner span{opacity:.85;margin-left:16px}.site-header{max-width:1440px;margin:auto;padding:24px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand>span{font-size:27px;letter-spacing:-1.3px;font-weight:700;line-height:1}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:8px;font-weight:400}.site-header nav{display:flex;gap:34px;font-size:13px}.site-header nav a{text-decoration:none;padding:12px 0}.site-header nav a[aria-current]{border-bottom:1px solid var(--green)}.header-note{font-size:12px;color:var(--muted)}.header-note span{margin-left:15px}main{max-width:1440px;margin:auto;padding:0 5%}.intro{display:flex;justify-content:space-between;align-items:flex-end;padding:51px 0 40px;gap:40px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.9px}.intro .eyebrow{margin:0 0 20px}.intro h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,4.8vw,70px);font-weight:400;line-height:1.07;letter-spacing:-2.6px;margin:0}.intro h1 em{font-weight:400;color:var(--orange)}.intro-aside{max-width:300px;padding-bottom:5px}.intro-aside p{margin:0 0 12px}.muted{color:var(--muted);font-size:13px}.text-link{display:inline-flex;justify-content:space-between;gap:30px;text-decoration:none;font-size:12px;border-bottom:1px solid #b6c1b3;padding:7px 0}.explorer{display:grid;grid-template-columns:minmax(0,1fr) 350px;border:1px solid #c8d0c3;border-radius:4px;overflow:hidden;background:var(--white)}.map-column{display:flex;flex-direction:column;min-width:0}.map-top{min-height:60px;display:flex;justify-content:space-between;align-items:center;padding:10px 21px;border-bottom:1px solid var(--line);gap:8px}.map-top .eyebrow{font-size:8px}.view-toggle{display:flex;border:1px solid var(--line);border-radius:4px;padding:3px}.view-toggle button{border:0;background:none;min-height:31px;padding:3px 15px;font-size:11px;border-radius:2px}.view-toggle button[aria-pressed=true]{background:var(--green);color:white}.map-wrap{position:relative;background:#e3ece2;flex:1;min-height:570px;overflow:hidden}#rail-map{width:100%;height:100%;position:absolute;inset:0;touch-action:none;cursor:grab;user-select:none}#rail-map.dragging{cursor:grabbing}.land path{fill:#f5f4e9;stroke:#bdc9b9;stroke-width:1}.map-labels text{fill:#698171;font-size:9px;letter-spacing:3px}.route-line{fill:none;stroke:#6c8d73;stroke-width:1.8;vector-effect:non-scaling-stroke;transition:opacity .15s;pointer-events:none}.route-hit{stroke:transparent;stroke-width:18;fill:none;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:stroke}.route-line.selected{stroke:var(--orange);stroke-width:3}.route-line.dimmed{opacity:.12}.city-marker{cursor:pointer}.city-marker .halo{fill:transparent;stroke:none}.city-marker .dot{fill:var(--white);stroke:var(--green);stroke-width:1.5}.city-marker.selected .dot{fill:var(--orange);stroke:var(--orange)}.city-marker text{fill:var(--ink);font-size:10px;paint-order:stroke;stroke:#f5f4e9;stroke-width:3;stroke-linejoin:round;font-weight:700}.city-marker.uncovered text{fill:#5c6b60;font-weight:400}.map-hint{position:absolute;left:20px;top:16px;background:#fffef9ed;border:1px solid #d5dfd1;border-radius:3px;padding:6px 10px;font-size:10px;pointer-events:none}.map-hint span{font-size:15px;margin-right:8px}.map-controls{position:absolute;right:17px;bottom:42px;display:grid;border:1px solid #bdc9b9;box-shadow:0 3px 12px #173e3510;background:var(--white);border-radius:4px;overflow:hidden}.map-controls button{border:0;border-bottom:1px solid var(--line);background:none;min-width:44px;min-height:44px;font-size:22px}.map-controls button:last-child{border:0;font-size:20px}.map-credit{position:absolute;bottom:8px;left:12px;font-size:9px;background:#f7f5eeeb;padding:3px 5px;color:#465a4c}.map-bottom{min-height:44px;padding:10px 20px;display:flex;justify-content:space-between;font-size:9px;color:var(--muted);border-top:1px solid var(--line)}.map-bottom i{display:inline-block;width:15px;border-top:2px solid #6c8d73;margin:0 7px 3px 0}.results{border-left:1px solid var(--line);padding:22px 23px;background:var(--white)}.sheet-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.sheet-top .eyebrow{font-size:8px}#sheet-toggle{display:none;border:0;background:none;font-size:11px;padding:0 4px}.search-fields{display:grid;gap:12px}.search-fields label{font-size:11px;font-weight:700}.search-fields select{display:block;background:var(--paper);border:1px solid var(--line);border-radius:3px;width:100%;padding:11px 10px;margin-top:5px;min-height:46px;font-size:13px}.filters{display:flex;gap:7px;margin:19px 0 20px}.filters button{background:none;border:1px solid var(--line);border-radius:22px;font-size:11px;padding:5px 12px;min-height:38px}.filters button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.result-heading{display:flex;justify-content:space-between;align-items:center}.result-heading h2{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:0}.text-button{border:0;background:none;font-size:11px;text-decoration:underline;min-width:44px}.result-status{font-size:11px;color:var(--muted);margin:4px 0 13px}#route-results{max-height:388px;overflow:auto;padding-right:5px}.route-card{display:block;text-align:left;width:100%;padding:15px 1px;border:0;border-top:1px solid var(--line);background:none}.route-card:hover{background:#edf1e8}.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.route-card strong{font-weight:500;font-size:14px}.route-card span.arrow{color:var(--orange);font-size:19px}.route-card small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.empty-state{border-top:1px solid var(--line);padding-top:18px}.empty-state h3{font-family:Georgia,serif;font-weight:400;font-size:22px;margin:0 0 10px}.empty-state p{font-size:12px;color:var(--muted)}.guide-detail{border-top:1px solid var(--line);margin-top:5px;padding-top:16px}.guide-detail h3{font-family:Georgia,serif;font-size:29px;font-weight:400;line-height:1.2;margin:13px 0}.guide-detail p{font-size:12px}.guide-detail .badge{display:inline-block;background:#f7ebdf;color:#7a3922;border:1px solid #e7cbb5;padding:3px 7px;font-size:10px}.guide-detail h4{font-size:12px;margin:20px 0 5px}.guide-detail ul{padding-left:18px;font-size:12px;color:var(--muted)}.guide-detail .text-link{font-size:12px;display:flex}.solid-button{background:var(--green);color:white;border:0;padding:10px 16px;border-radius:3px;font-size:12px}.list-intro{min-height:570px;padding:90px 12%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:#edf1e8}.list-symbol{font-size:55px;color:var(--orange);line-height:1}.list-intro h2{font-family:Georgia,serif;font-size:40px;font-weight:400;line-height:1.1}.list-intro p{color:var(--muted);font-size:14px;margin-bottom:30px}.approach{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:65px 0}.approach h2{font-family:Georgia,serif;font-weight:400;font-size:34px;line-height:1.2;margin:20px 0}.approach-copy{max-width:440px;padding-top:17px;font-size:14px}.approach-copy p+p{font-size:12px;color:var(--muted)}footer{max-width:1440px;margin:auto;padding:25px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:10px}.brand-footer{font-weight:700;font-size:20px;letter-spacing:-.8px;color:var(--green)}.no-script{max-width:700px;margin:20px auto;padding:20px}
@media(min-width:901px){#sheet-content{display:block!important}.view-toggle button{min-height:36px}.view-toggle{padding:0}}
@media(max-width:900px){main{padding:0 4%}.site-header{padding:20px 4%}.header-note{display:none}.intro{padding:35px 0 28px;gap:25px}.intro-aside{max-width:240px}.intro h1{font-size:53px}.explorer{grid-template-columns:1fr}.map-wrap{min-height:440px}.results{border-left:0;border-top:1px solid var(--line);padding:20px 22px}.sheet-top{margin-bottom:10px}#sheet-toggle{display:block}#route-results{max-height:320px}.search-fields{grid-template-columns:1fr 1fr}.list-intro{min-height:280px;padding:35px 10%}.list-intro h2{font-size:32px;margin:15px 0}.approach{gap:30px;padding:45px 0}.approach h2{font-size:29px}.map-bottom{min-height:40px}}
@media(max-width:560px){.research-banner{font-size:10px;padding:7px 10px}.research-banner span{display:block;margin:0;font-size:9px}.site-header{padding:17px 5%}.brand>span{font-size:24px}.site-header nav{gap:18px;font-size:11px}.site-header nav a{min-height:44px;display:inline-flex;align-items:center}.intro{display:block;padding:31px 0 25px}.intro .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:15px}.intro h1{font-size:49px;letter-spacing:-2px}.intro-aside{max-width:none;margin-top:21px}.intro-aside>p:first-child{font-size:13px;margin-bottom:7px}.intro-aside .muted{font-size:12px;max-width:290px}.intro-aside .text-link{display:none}.map-top{padding:9px 12px}.map-top .eyebrow{letter-spacing:1.1px;font-size:7px}.map-wrap{min-height:390px}.map-hint{top:12px;left:12px;font-size:9px;padding:4px 7px}.map-credit{max-width:230px;font-size:8px}.map-controls{right:12px;bottom:42px}.map-bottom{padding:10px 12px;font-size:8px}.results{padding:15px 16px}.search-fields{gap:9px}.search-fields select{font-size:12px;padding-left:6px}.approach{display:block;padding:32px 5px}.approach h2{font-size:31px}.approach-copy{padding-top:0}footer{flex-wrap:wrap;padding:22px 5%;gap:12px}footer span:last-child{width:100%}.filters button{min-height:44px}.view-toggle button{min-height:44px;padding:3px 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Mobile app shell; public guides remain readable independently of the map. */
.install-button{background:transparent;border:1px solid #b6c1b3;border-radius:4px;padding:8px 14px;font-size:12px;min-height:44px}
.app-status-bar{max-width:1440px;margin:auto;padding:9px 5%;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}
.app-status-bar p{margin:0;font-size:11px;color:var(--muted)}
.app-status-bar p[data-offline=true]{color:#7a3922}
.install-help,.app-message{max-width:1050px;margin:16px auto;padding:20px 24px;background:#edf1e8;border:1px solid var(--line);border-radius:4px}
.install-help h2{font:400 29px Georgia,serif;margin:0 0 12px}.install-help p{font-size:14px;max-width:780px}
.app-message{background:#fff6e9;font-size:13px}.app-nav{display:none}
.app-list-mode{display:block;margin-top:28px;min-height:55vh}
.app-list-mode .map-column{display:none}
.app-list-mode .results{border-left:0;padding:30px clamp(20px,5vw,64px)}
.app-list-mode .sheet-top{margin-bottom:22px}
.app-list-mode #sheet-toggle{display:none}
.app-list-mode .search-fields{grid-template-columns:1fr 1fr;max-width:720px}
.app-list-mode #route-results{max-height:none;overflow:visible;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;padding:0}
.app-list-mode .route-card{padding:22px 8px;min-height:88px}
.app-list-mode .route-card strong{font-size:18px}
.app-list-mode .route-card small{font-size:12px;margin-top:8px}
.app-list-mode .empty-state{grid-column:1/-1;padding:35px 0}
.app-list-mode .empty-state p{font-size:15px;max-width:600px}
.app-list-mode .result-heading h2{font-size:32px}
.app-list-mode .result-status{font-size:12px;margin-bottom:23px}
.saved-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-top:1px solid var(--line)}
.saved-row .route-card{border:0}.saved-row .text-button{padding:8px;min-height:48px}
.guide-detail{max-width:760px;margin:0 auto;border:0;padding-top:0}
.guide-detail h3{font-size:clamp(32px,5vw,49px);margin:20px 0;letter-spacing:-1px}
.guide-detail .guide-intro{font-size:19px;line-height:1.7;margin-top:28px}
.guide-detail h4{font:400 27px Georgia,serif;margin:32px 0 13px;line-height:1.3}
.guide-detail p{font-size:16px;line-height:1.8}
.guide-detail .verification-note{font-size:13px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:18px}
.guide-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}
.guide-actions .solid-button{font-size:14px;min-height:48px;padding:12px 20px}
.guide-detail .download-note{font-size:12px;color:var(--muted)}
.guide-detail .offline-note{font-size:13px;color:#7a3922;background:#fff0df;border-left:3px solid var(--orange);padding:12px 16px}
.guide-detail .text-link{font-size:14px;line-height:1.6;min-height:48px;align-items:center;overflow-wrap:anywhere}
.standalone-guide{max-width:800px;padding:32px 24px 80px}.standalone-guide h1{font:400 44px Georgia,serif;line-height:1.15}
.standalone-guide h2{font:400 28px Georgia,serif;margin-top:35px}.standalone-guide p{font-size:17px;line-height:1.8}
.standalone-guide li{margin:14px 0}
.guide-section p,.standalone-guide p,.standalone-guide a{overflow-wrap:anywhere}
@media(max-width:900px){
  body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
  .app-nav{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;z-index:20;left:0;right:0;bottom:0;padding:5px 15px calc(6px + env(safe-area-inset-bottom,0px));background:#fffef9f5;border-top:1px solid #bccbbd;box-shadow:0 -3px 18px #173e3508}
  .app-nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:61px;text-decoration:none;font-size:11px;color:var(--muted);gap:1px;border-radius:6px}
  .app-nav a>span:first-child{font-size:23px;line-height:1.2}
  .app-nav a[aria-current=page]{background:#e9eee3;color:var(--green);font-weight:700}
  .app-nav .saved-count{position:absolute;top:4px;left:calc(50% + 14px);font-size:10px;min-width:17px;min-height:17px;text-align:center;border-radius:12px;color:white;background:var(--green);padding:0 4px}
  .site-header nav{display:none}.site-header{padding-top:max(17px,env(safe-area-inset-top,0px))}
  .app-list-mode{margin-top:20px}.app-list-mode .results{padding:22px}
  .app-list-mode #route-results{grid-template-columns:1fr}.app-list-mode .route-card{padding:20px 4px}
  .search-fields select{font-size:16px;min-height:48px}.filters button{min-height:44px}
  .guide-detail h3{font-size:36px}.guide-detail .guide-intro{font-size:18px}
  .guide-detail p{font-size:16px}.guide-detail h4{font-size:25px}
  .install-help,.app-message{margin:12px 4%;padding:16px}.app-status-bar{padding:10px 4%}
}
@media(max-width:560px){
  .install-button{font-size:11px;padding:8px 10px;max-width:145px}.brand>span{font-size:26px}.brand small{font-size:7px;letter-spacing:1.2px}
  .intro{padding-top:25px}.intro h1{font-size:43px}.intro .eyebrow{font-size:7px}
  .intro-aside{margin-top:15px}.intro-aside .muted{display:none}
  .map-wrap{min-height:360px}.app-list-mode .results{padding:20px 16px}.app-list-mode .result-heading h2{font-size:28px}
  .app-list-mode .search-fields{grid-template-columns:1fr}.app-list-mode .route-card strong{font-size:17px}
  .guide-detail h3{font-size:33px}.guide-detail .guide-intro{font-size:17px}
  .guide-actions{gap:8px}.guide-actions .solid-button{padding:12px 15px}
  .guide-detail .text-button{font-size:12px}.app-status-bar p{font-size:10px}
}
