@import url('https://fonts.googleapis.com/css2?family=Questrial&family=Raleway:wght@400;600;700&display=swap');
:root{--paper:#FAFAF8;--ink:#111318;--rule:#DDDDDA;--blue:#0F4C75;--blue-dark:#0B3A58;--sea:#E9F1F6;--land:#E7E1D7;--coast:#9A938B;--muted:#5B6167;--amber:#8A5A00;--amber-bg:#FFF7E6;--max:1180px;--pad:clamp(16px,4vw,48px);font-family:'Manrope',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-feature-settings:'tnum';}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;font-size:16px;line-height:1.55}.skip{position:absolute;left:-1000px;top:8px;background:#fff;padding:12px;z-index:20}.skip:focus{left:10px}.sitehead{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);border-bottom:1px solid var(--rule);max-width:var(--max);margin:auto}.wordmark{font-size:13px;font-weight:800;letter-spacing:.11em;text-decoration:none;color:var(--ink)}.scope,.kicker{font-size:11px;letter-spacing:.11em;font-weight:800;color:var(--muted)}main{max-width:var(--max);margin:auto;padding:0 var(--pad)}.hero{display:grid;grid-template-columns:1fr;gap:14px;padding:24px 0 42px}.hero-copy{padding:10px 0 0}.hero h1{font-size:clamp(34px,6vw,54px);line-height:1.05;letter-spacing:-.05em;margin:12px 0}.hero p{margin:10px 0 14px;color:var(--muted);max-width:42ch}.hero-tags{display:flex;gap:8px;flex-wrap:wrap}.hero-tags span{font-size:12px;border:1px solid var(--rule);padding:5px 10px}.hero-action{display:inline-flex;align-items:center;text-decoration:none;margin-top:8px}.hero-img{width:100%;height:clamp(155px,28vw,265px);object-fit:cover}.tool-section{border-top:1px solid var(--ink);padding:34px 0 54px}.sectionhead{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}.sectionhead h2,.trust h2,.sources h2{font-size:clamp(24px,4vw,36px);line-height:1.15;letter-spacing:-.04em;margin:6px 0}.sectionhead p{color:var(--muted);margin:0}.tabbar{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--rule);scrollbar-width:thin;-webkit-overflow-scrolling:touch}.tab{border:0;background:transparent;color:var(--muted);font:600 14px Manrope,system-ui,sans-serif;padding:12px 14px;min-height:48px;white-space:nowrap;cursor:pointer;border-bottom:3px solid transparent}.tab.active{color:var(--blue);border-color:var(--blue)}.shared-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 0;border-bottom:1px solid var(--rule)}label{display:block;font-size:13px;font-weight:700;color:var(--ink)}input,select{font:400 16px Manrope,system-ui,sans-serif;color:var(--ink);background:#fff;border:1px solid #96999b;border-radius:2px;min-height:48px;width:100%;padding:10px;margin-top:5px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #4285f4;outline-offset:2px}.panel{padding:24px 0}.panel[hidden]{display:none}.panel h3{font-size:22px;margin:0 0 6px;letter-spacing:-.03em}.panel>p{color:var(--muted);margin:0 0 16px}.route-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.route-intro p{color:var(--muted);margin:2px 0}.map-wrap{position:relative;width:100%;height:clamp(300px,62vw,560px);background:var(--sea);border:1px solid var(--rule);overflow:hidden;touch-action:none}.map-wrap canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}.map-legend{position:absolute;left:8px;bottom:8px;background:rgba(250,250,248,.94);padding:8px 10px;display:flex;gap:12px;font-size:11px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.dot.start{background:#087f5b}.dot.end{background:#c0392b}.routekey{display:inline-block;width:17px;border-top:3px solid var(--blue);margin:0 5px 3px 0}.map-controls{position:absolute;right:8px;top:8px;display:grid;gap:5px}.map-controls button{width:44px;height:44px;background:white;border:1px solid var(--rule);font-size:24px;cursor:pointer}.route-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:12px 0}.button{font:700 14px Manrope,system-ui,sans-serif;min-height:48px;padding:0 16px;border:1px solid var(--blue);cursor:pointer}.button.primary{color:#fff;background:var(--blue)}.button.secondary{color:var(--blue);background:transparent}.button:hover{background:var(--blue-dark);color:#fff}.unit-toggle,.checkline{display:flex;align-items:center;gap:8px;min-height:44px}.unit-toggle input,.checkline input{width:24px;height:24px;min-height:24px;margin:0;flex:none}.status{font-size:14px;color:var(--muted)}.results{margin:12px 0 0;border-top:1px solid var(--rule)}.result-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--rule)}.result-row strong{font-variant-numeric:tabular-nums}.fieldgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.hint{font-size:13px!important;color:var(--muted)!important}.charter-input{padding:16px 0;border-bottom:1px solid var(--ink);margin-bottom:14px}.charter-input label{font-size:15px}.prominent{display:block;color:var(--muted);font-size:12px;font-weight:400}.inline{display:flex;gap:8px}.inline input{flex:1}.inline select{width:130px}.period-explain{font-size:13px;color:var(--muted);padding:8px 0}.cost-line{display:grid;grid-template-columns:28px minmax(110px,1.3fr) repeat(3,minmax(80px,1fr));gap:9px;align-items:center;padding:12px 0;border-bottom:1px solid var(--rule)}.cost-line .cost-toggle{width:20px;height:20px;min-height:20px;margin:0}.cost-line input,.cost-line select{margin:0}.cost-line .cost-name{font-weight:700}.cost-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:16px}.total-row{font-size:19px;font-weight:800;border-top:2px solid var(--ink);margin-top:8px}.trust{padding:36px 0;display:grid;grid-template-columns:1fr;gap:20px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.trust-copy p{background:var(--amber-bg);color:var(--amber);padding:14px;border-left:3px solid #c18b26}.trust-copy{min-width:0}.trust-copy p{max-width:48ch;overflow-wrap:anywhere}.trust img{min-width:0;width:100%;height:240px;object-fit:cover}.sources{display:grid;grid-template-columns:1fr;gap:10px;padding:36px 0}.sources p{font-size:14px;color:var(--muted)}footer{max-width:var(--max);margin:auto;border-top:1px solid var(--rule);padding:20px var(--pad) 80px;display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;font-size:11px;color:var(--muted)}[data-symphony-badge]{position:fixed;right:8px;bottom:8px;z-index:30;background:rgba(250,250,248,.94);border:1px solid var(--rule);color:var(--muted);font-size:11px;text-decoration:none;padding:6px 9px}#wixheadless-banner-container{display:none!important}
@media(min-width:760px){.hero{grid-template-columns:1fr;align-items:start}.hero-copy{padding:10px 0 0}.hero-img{width:100%;height:clamp(155px,28vw,265px);object-fit:cover}.hero-copy{padding:20px 10px 20px 0}.sectionhead{grid-template-columns:.7fr 1.3fr;gap:20px}.trust{grid-template-columns:1fr 1fr;align-items:center}.sources{grid-template-columns:.7fr 1.3fr}.shared-fields{max-width:680px}.map-wrap{height:500px}}
@media(max-width:600px){.scope{font-size:9px}.shared-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.shared-fields label{font-size:11px}.shared-fields input{font-size:14px;padding:8px}.fieldgrid{grid-template-columns:1fr}.cost-line{grid-template-columns:24px 1fr 1fr}.cost-line>*:nth-child(4),.cost-line>*:nth-child(5){grid-column:auto}.cost-line select{font-size:13px}.cost-line .cost-name{grid-column:span 2}.route-intro{align-items:flex-start;flex-direction:column}.inline select{width:118px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.cost-line .line-basis{grid-column:2/-1}.cost-line .line-value{min-width:0}
/* Shared John Belesis website shell, hand-mirrored from its public desktop/mobile page. */
:root{--jb-green:#35cf7c;--jb-black:#000000;--jb-paper:#fffcf8;--jb-body:'Raleway',Arial,sans-serif;--jb-head:'Questrial',Arial,sans-serif;}
body{font-family:var(--jb-body);color:#000;background:var(--jb-paper)}h1,h2,h3,.kicker,.wordmark,.sitehead{font-family:var(--jb-head)}
.jb-header{background:var(--jb-paper);color:#000;border-bottom:1px solid #e8e4de;position:relative;z-index:60}.jb-headrow{max-width:1180px;margin:auto;padding:14px var(--pad);display:flex;align-items:center;gap:14px;min-height:66px}.jb-logo,.jb-foot-logo{font-family:var(--jb-head);font-weight:700;font-size:21px;letter-spacing:.1em;color:#000;text-decoration:none;display:flex;align-items:center;gap:9px}.branddot{width:9px;height:9px;border-radius:50%;background:#000}.jb-menu-button{font-family:var(--jb-body);font-size:15px;font-weight:600;min-height:46px;padding:8px 14px;border:1px solid #000;background:transparent;color:#000;cursor:pointer;margin-left:auto}.jb-menu-button span{margin-left:10px}.jb-head-actions{display:flex;gap:8px}.jb-cta{font-family:var(--jb-body);background:#000;color:#fff;text-decoration:none;padding:11px 15px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;transition:background .15s,color .15s}.jb-cta:hover{background:var(--jb-green);color:#000}.jb-cta-outline{background:transparent;color:#000;border:1px solid #000}.jb-member{font-family:var(--jb-body);color:#000;border:1px solid #000;text-decoration:none;min-height:44px;padding:10px 12px;font-size:13px;font-weight:700}.jb-member:hover,.jb-close:hover{background:var(--jb-green)}.jb-menu{position:absolute;top:100%;right:max(0px,calc((100vw - 1180px)/2));width:min(720px,100vw);max-height:calc(100vh - 75px);overflow:auto;background:var(--jb-paper);border:1px solid #d5d2cd;box-shadow:0 12px 30px #0002;padding:24px}.jb-menu[hidden]{display:none}.jb-close{position:absolute;right:12px;top:8px;width:44px;height:44px;background:white;border:1px solid #aaa;font-size:26px;cursor:pointer}.jb-menu nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.jb-toplink,.jb-group summary{font-family:var(--jb-head);font-size:16px;font-weight:700;color:#000;text-decoration:none;min-height:45px;padding:10px 5px;border-bottom:1px solid #dcd7d0;cursor:pointer}.jb-toplink:hover,.jb-sub a:hover{color:#168843}.jb-group summary::marker{font-size:12px}.jb-sub{display:grid;padding:4px 6px 12px;gap:3px}.jb-sub a{color:#000;text-decoration:none;font:400 14px/1.45 var(--jb-body);padding:5px 0}.jb-menu-actions{display:flex;gap:8px;margin-top:18px}.jb-footer{position:relative;background:var(--jb-paper);color:#000;border-top:2px solid #000;padding:35px var(--pad) 80px;font:400 14px/1.6 var(--jb-body)}.jb-footgrid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.jb-footer h2,.jb-footer h3{font:700 18px/1.25 var(--jb-head);margin:0 0 11px}.jb-footer p{margin:0 0 9px}.jb-footer a{color:#000;text-decoration:none}.jb-footer a:hover{text-decoration:underline;color:#168843}.jb-footer ul{list-style:none;padding:0;margin:0 0 18px}.jb-footer li{margin:0 0 5px}.jb-footbrand{border-right:1px solid #ddd;padding-right:14px}.jb-copyright{border-top:1px solid #ddd;max-width:1180px;margin:18px auto 0;padding-top:12px;font-size:12px}.jb-footer [data-symphony-badge]{position:fixed;right:8px;bottom:8px;z-index:2147483000;background:rgba(255,255,255,.92);color:#1f1f1f;border:1px solid #ddd;border-radius:999px;font:500 12px/1.3 var(--jb-body);padding:6px 12px;box-shadow:0 1px 4px #0003}.menu-open{overflow:hidden}.saved-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.saved-list{display:grid;gap:10px}.saved-card{border:1px solid var(--rule);padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.saved-card h3{margin:0}.saved-card-actions{display:flex;gap:6px;flex-wrap:wrap}.privacy{max-width:900px;margin:auto;padding:26px 0}.privacy h1{font-size:clamp(28px,5vw,44px)}.privacy p,.privacy li{max-width:72ch}.account-panel{max-width:700px;margin:24px auto;padding:24px;border:1px solid var(--rule)}
@media(max-width:900px){.jb-footgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.jb-head-actions{display:none}}
@media(max-width:600px){.jb-headrow{padding:10px 14px}.jb-logo{font-size:18px}.jb-menu{left:0;right:0;width:100%;padding:58px 18px 22px}.jb-menu nav{grid-template-columns:1fr}.jb-footer{padding:26px 16px 80px}.jb-footgrid{grid-template-columns:1fr;gap:20px}.jb-footbrand{border:0;border-bottom:1px solid #ddd;padding:0 0 14px}.saved-card{grid-template-columns:1fr}.saved-card-actions button{flex:1}}
.inner-page-image{width:100%;height:220px;object-fit:cover;margin:16px 0 25px}.privacy h2{font-size:clamp(20px,3vw,28px);font-family:var(--jb-head)}.privacy a:not(.button){color:#111}

.route-mode{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--rule)}.mode-button{min-height:44px;padding:8px 12px;border:1px solid var(--rule);background:#fff;font:600 13px var(--jb-body);cursor:pointer}.mode-button.active{border-color:var(--blue);background:var(--blue);color:#fff}.map-wrap canvas{touch-action:none}.map-wrap.draw-active canvas{touch-action:none;cursor:crosshair}.map-wrap canvas.draw-cursor{cursor:crosshair}#rawLineResult{font-size:13px}.world-note{padding:10px 0;color:var(--muted);font-size:13px}

.visual-break{display:grid;grid-template-columns:1fr;gap:0;margin:6px 0 42px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.visual-break img{display:block;width:100%;height:clamp(210px,38vw,440px);object-fit:cover}.visual-break-copy{padding:18px 0 22px;max-width:62ch}.visual-break-copy h2{font-size:clamp(26px,4vw,36px);line-height:1.15;letter-spacing:-.04em;margin:8px 0}.visual-break-copy p{color:var(--muted);max-width:48ch}@media(min-width:760px){.hero{grid-template-columns:1fr 1fr;align-items:center;gap:30px}.hero-img{height:clamp(330px,38vw,460px)}.visual-break{grid-template-columns:1.3fr .7fr;align-items:center;gap:30px}.visual-break img{height:300px}.visual-break-copy{padding:25px 20px 25px 0}}

.route-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.route-metric{border:1px solid var(--rule);padding:10px 12px;min-width:0}.route-metric span{display:block;color:var(--muted);font-size:12px}.route-metric strong{display:block;font-variant-numeric:tabular-nums;font-size:17px}.legs-details{margin:12px 0}.legs-details>summary{cursor:pointer;min-height:44px;display:inline-flex;align-items:center;color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:8px 0}.legs-details[open]>summary{margin-bottom:6px}.legs-details .results{margin-top:0}.route-summary:empty{display:none}

.route-summary{margin:14px 0}.route-summary-details{border:1px solid var(--rule);padding:0 12px}.route-summary-toggle{cursor:pointer;min-height:48px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 0}.route-summary-toggle>strong{color:var(--blue)}.route-summary-toggle span{font-size:13px;font-variant-numeric:tabular-nums}.route-summary-expanded{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 0 12px}.route-summary-expanded .route-metric{border:1px solid var(--rule);padding:10px 12px;min-width:0}.route-summary-expanded .route-metric span{display:block;color:var(--muted);font-size:12px}.route-summary-expanded .route-metric strong{display:block;font-variant-numeric:tabular-nums;font-size:17px}.route-summary:empty{display:none}.legs-details{margin:12px 0}.legs-details>summary{cursor:pointer;min-height:44px;display:inline-flex;align-items:center;color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:8px 0}.legs-details[open]>summary{margin-bottom:6px}.legs-details .results{margin-top:0}
