@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#173e3b;--muted:#6f7c75;--paper:#f5f5ed;--line:#d9dfd2;--green:#275b48}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4%}a{color:inherit}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:800 23px 'Manrope',sans-serif;letter-spacing:-1px}.brand-icon{background:var(--green);color:#fff;width:36px;height:37px;display:grid;place-items:center;font-size:22px;position:relative}.brand-icon span{position:absolute;font-size:15px;right:1px;top:0}.header-note,.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.header-note{color:var(--muted)}.about{text-decoration:none;font-size:12px}main{max-width:1600px;margin:auto;padding:0 4%}.intro{display:flex;justify-content:space-between;padding:50px 0 38px}.intro h1{font:500 clamp(42px,4.5vw,68px)/1.04 'Manrope',sans-serif;letter-spacing:-3px;margin:18px 0}.intro p{color:var(--muted);line-height:1.7;font-size:15px}.intro-right{text-align:right;padding-top:12px;font-size:12px}.intro-right p{font-size:20px;color:var(--ink);line-height:1.5;margin:24px 0}.badge{border:1px solid #b9c8b5;border-radius:20px;padding:8px 14px;font-size:9px;letter-spacing:1.5px}.dot{display:inline-block;width:7px;height:7px;background:#66864c;border-radius:50%;margin-right:5px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 325px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fcfcf6}.map-card{min-width:0;display:flex;flex-direction:column}.map-top{display:flex;justify-content:space-between;align-items:center;padding:26px 28px 12px;gap:14px}h2{font:600 20px 'Manrope',sans-serif;letter-spacing:-.6px;margin:9px 0}.view-toggle{display:flex;background:#e9ede4;border-radius:5px;padding:3px}.view-toggle button{border:0;background:transparent;padding:8px 11px;border-radius:3px;font:inherit;font-size:11px;color:var(--muted);cursor:pointer}.view-toggle button.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #0001}.map-wrap{position:relative;background:#f5f7f0;overflow:hidden;margin:10px 15px 0;border-radius:4px}svg{display:block;width:100%;height:auto;min-height:390px}svg text{font:10px 'DM Sans',sans-serif;fill:#33514b;paint-order:stroke;stroke:#f5f7f0;stroke-width:3px;stroke-linejoin:round}svg .water-label{font:italic 14px Georgia,serif;fill:#87a6aa;stroke:none;letter-spacing:3px}svg .route{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;transition:opacity .2s}svg .route.dim{opacity:.13}svg .station{fill:#fcfcf6;stroke:#48655e;stroke-width:1.5}.map-stamp{position:absolute;left:20px;bottom:20px;font:700 19px 'Manrope',sans-serif;letter-spacing:3px;color:#829086;pointer-events:none}.map-stamp span{font-size:7px;letter-spacing:1px}.map-controls{position:absolute;right:14px;bottom:14px;display:flex;gap:3px}.map-controls button{background:#fff;border:1px solid var(--line);width:30px;height:30px;color:var(--ink);border-radius:3px;cursor:pointer}#selection{padding:15px 28px 4px;color:var(--muted);font-size:12px;min-height:45px}.legend{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:12px 24px 22px}.legend button{display:flex;align-items:center;gap:7px;text-align:left;background:none;border:1px solid transparent;font:inherit;font-size:10px;padding:5px;cursor:pointer;color:var(--ink);border-radius:4px}.legend button[aria-pressed=true]{border-color:#aebfaf;background:#e9eee4}.legend i{width:18px;height:3px;flex-shrink:0}.map-footer{margin-top:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:14px 25px;font-size:9px;color:var(--muted)}aside{background:#eaf0e3;border-left:1px solid var(--line);padding:28px 25px}.scenario-heading h2{font-size:32px;line-height:1.15;letter-spacing:-1px;margin:16px 0}.scenario-heading p{font-size:12px;color:var(--muted);line-height:1.7}.slider-label{display:flex;justify-content:space-between;margin:26px 0 12px;font-size:11px;font-weight:600}output{font-size:17px;color:var(--green)}input[type=range]{width:100%;accent-color:var(--green)}.range-label{display:flex;justify-content:space-between;color:var(--muted);font-size:9px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.fields label,details label{font-size:10px;display:block;color:#53695d;line-height:1.5}input[type=number]{width:100%;background:#f9fbf6;border:1px solid #cfd8c8;border-radius:4px;padding:10px 8px;margin-top:7px;color:var(--ink);font:inherit;font-size:14px}.metrics>div{padding:19px 0;border-top:1px solid #ced9c6}.metrics strong{display:block;font:500 39px 'Manrope',sans-serif;letter-spacing:-1px;margin:5px 0}.metrics span{font-size:10px;color:var(--muted)}.metrics .metric-label{font-size:9px;letter-spacing:1px;color:#42634d}.metrics .small-metric strong{font-size:24px}.small-metric{display:flex;align-items:center;gap:12px}.small-metric span{max-width:100px;line-height:1.5}details{border-top:1px solid #ced9c6;padding-top:17px;font-size:11px;line-height:1.6}summary{cursor:pointer;font-weight:600}details label{margin-top:12px}details p{color:#58705d}.scenario-foot{font-size:8px;letter-spacing:1px;margin-top:20px;color:var(--muted)}#error{color:#9a3030;font-size:12px}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;padding:42px 0}.benefits article+article{border-left:1px solid var(--line);padding-left:30px}.benefits span{font-size:9px;letter-spacing:1.5px;color:#6d805f}.benefits h3{font:600 19px 'Manrope',sans-serif;letter-spacing:-.5px}.benefits p{color:var(--muted);font-size:12px;line-height:1.8;max-width:350px}footer{border-top:1px solid var(--line);padding:22px 0 30px;font-weight:700;display:flex;justify-content:space-between;gap:15px}footer span{font-weight:400;color:var(--muted);font-size:10px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #a77d26;outline-offset:3px}@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 290px}.legend{grid-template-columns:repeat(2,1fr)}.map-top{flex-wrap:wrap}.header-note{display:none}}@media(max-width:760px){header{height:70px}.intro{padding-top:30px}.intro-right{display:none}.workspace{grid-template-columns:1fr}aside{border-left:0;border-top:1px solid var(--line)}.benefits{grid-template-columns:1fr;gap:12px}.benefits article+article{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.intro h1{letter-spacing:-2px}.map-top{padding:20px}.map-footer{gap:15px}footer{flex-wrap:wrap}svg{min-height:0}.about{font-size:10px}}
[hidden]{display:none!important}.traffic-context{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;padding:24px 28px;margin:0 0 22px;background:#e8ede2;border:1px solid var(--line);border-radius:8px}.traffic-context h2{font-size:29px;margin:10px 0}.traffic-context p{font-size:11px;line-height:1.7;color:#5b7063;margin:8px 0}.traffic-context strong{font-size:12px}.traffic-context a{font-size:11px}.baseline-picker{display:block;font-size:11px;margin:18px 0 10px;line-height:1.5}.baseline-picker select{width:100%;margin-top:8px;padding:10px 5px;border:1px solid #bcccb6;border-radius:4px;background:#f9fbf6;color:var(--ink);font:inherit}.baseline-picker small{display:block;color:#5b7063;font-size:10px;margin-top:7px}.baseline-note{font-size:10px;color:#5b7063;line-height:1.6}.metrics strong{font-size:clamp(24px,2.4vw,34px)}@media(max-width:760px){.traffic-context{grid-template-columns:1fr;gap:14px}.traffic-context>div+div{border-top:1px solid #ced9c6;padding-top:16px}.metrics strong{font-size:34px}}
/* Regional geography and rail overlay */
.map-wrap{background:#dcecef;border:1px solid #d2deda;margin:10px 15px 0}#map{cursor:grab;touch-action:pan-y;min-height:0}#map:active{cursor:grabbing}svg .region-shape{fill:#e8eae2;stroke:#b8c3b3;stroke-width:.85}svg .focus-region{fill:#f5f5e9}svg .michigan-region{fill:#ebf0db;stroke:#a7b69b;stroke-width:1.2}svg .lake-shape{fill:#dcecef;stroke:#c3dce0;stroke-width:.5}svg .region-label{font:600 19px 'Manrope',sans-serif;letter-spacing:4px;fill:#9ba88c;stroke:none}svg .country-label{font:500 9px 'DM Sans',sans-serif;letter-spacing:3px;fill:#9ba88c;stroke:none}svg .lake-label{font:italic 16px Georgia,serif;letter-spacing:1px;fill:#7ba1aa;stroke:none}svg .context-city{fill:#899789}svg .context-label{font:11px 'DM Sans',sans-serif;fill:#899789;stroke:#f5f5e9;stroke-width:3px}svg .station-label{font:600 12px 'DM Sans',sans-serif;fill:#294e42;stroke:#f6f8ee;stroke-width:4px}svg .route{stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round;fill:none}svg .route-casing{stroke:#fffff5;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.9}svg .dim{opacity:.16}svg .station{stroke:#3d5a4b;stroke-width:1.2;fill:#fffef4}.map-stamp{font-size:16px;left:18px;bottom:18px;color:#697c71;background:#f5f5e9d9;padding:10px;border-radius:3px}.map-stamp span{font-size:8px}.map-controls{align-items:center;background:#f5f5e9ed;padding:5px;border-radius:5px}.map-controls span{font-size:10px;margin:0 5px}.map-footer a{color:var(--muted)}@media(max-width:760px){.map-wrap{margin:8px 8px 0}.map-stamp{font-size:11px;padding:6px;bottom:10px;left:10px}.map-stamp span{font-size:6px}.map-controls{right:8px;bottom:8px}.map-controls button{width:27px;height:27px}}
.network-summary{padding:4px 28px 12px}.network-summary strong{font-size:12px;color:#466d50}.network-summary p{font-size:10px;line-height:1.6;color:var(--muted);max-width:640px;margin:6px 0 0}.corridor-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 24px 0}.corridor-tools label{font-size:11px;font-weight:600}.corridor-tools input{flex:1;min-width:150px;padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:#fffef8;color:var(--ink);font:inherit;font-size:12px}.corridor-tools span{font-size:10px;color:var(--muted)}.legend{max-height:290px;overflow:auto;align-content:start;border-bottom:1px solid var(--line)}.legend button{min-height:30px}svg .route{stroke-width:2.2}svg .route-casing{stroke-width:3.9}
