:root{font-family:Avenir Next,Arial,sans-serif;color:#16342b;background:#bdd3cd;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit;background:#f8faf3;border-radius:8px;padding:12px 17px;font-weight:600}button:hover{background:#e4edda}button:focus-visible,a:focus-visible{outline:3px solid #f3b53b;outline-offset:3px}canvas{display:block;width:100vw;height:100vh}header{position:absolute;top:0;left:0;width:100%;display:flex;align-items:center;gap:28px;padding:26px 32px;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;gap:11px;text-decoration:none;color:#16342b;align-items:center;font-size:12px;font-weight:800;letter-spacing:1px;line-height:1.2}.brandmark{background:#18392e;color:#fff4c8;border-radius:8px;padding:11px;font:700 21px Avenir Next,Arial,sans-serif}.edition{font-size:10px;letter-spacing:2px;font-weight:700;opacity:.6}nav{margin-left:auto;display:flex;gap:8px}kbd{font:11px Avenir Next,Arial,sans-serif;padding:4px 6px;border:1px solid #c2cfc2;border-radius:4px;margin-left:4px}.location{position:absolute;left:33px;top:121px;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#547165}h1{font:600 clamp(28px,3vw,45px) "Avenir Next",Arial,sans-serif;letter-spacing:-2px;margin:9px 0 8px;max-width:520px}h2{font:600 30px Avenir Next,Arial,sans-serif;letter-spacing:-1px;margin:10px 0 14px}.location p{font-size:10px;letter-spacing:2px;margin:0 0 18px}.badge{display:inline-flex;align-items:center;justify-content:center;background:var(--line);color:#fff;width:28px;height:28px;border-radius:50%;font-weight:700;font-size:15px;margin-right:5px}.badge.bus{width:auto;border-radius:5px;padding:0 7px;color:#173a2d;font-size:11px}.passport{position:absolute;right:32px;top:124px;width:218px;background:#f7f8efed;padding:21px 22px;border-radius:3px;box-shadow:0 10px 50px #16342b0d}.passport>strong{display:block;font:500 32px Avenir Next,Arial,sans-serif;margin:10px 0 1px}.passport>span:not(.eyebrow){font-size:12px;color:#6b796d}#stamps{display:flex;gap:5px;margin-top:19px}#stamps span{width:22px;height:22px;border-radius:50%;border:1px dashed #9bab9a;display:grid;place-items:center;font-size:12px;color:#acb6a4}#stamps .earned{color:#fff;background:#234e3b;border:1px solid #234e3b}.passport p{font-size:11px;line-height:1.6;border-top:1px solid #dbe2d5;padding-top:13px;margin-bottom:0}.compass{position:absolute;left:34px;bottom:116px;font-size:12px;display:flex;align-items:center;gap:10px}.compass span{font-size:30px}.compass small{font-size:8px;letter-spacing:2px;color:#547165}footer{position:absolute;bottom:0;left:0;width:100%;padding:21px 32px;background:linear-gradient(transparent,#e1e9ddb0);display:flex;align-items:center;gap:22px}.controls{display:flex;gap:20px;font-size:10px;color:#496353;align-items:center}.controls kbd{background:#f8faf0b0}.dataNote{font-size:9px;letter-spacing:.5px;position:absolute;bottom:7px;right:33px}#interact{margin-left:auto;background:#183d2e;color:#fff7dd;padding:15px 23px;box-shadow:0 4px 20px #193b3320}#interact kbd{border-color:#698472}#toast{position:absolute;bottom:100px;left:50%;transform:translate(-50%);padding:12px 23px;background:#163c2deb;color:#fff7dd;border-radius:7px;font-size:12px;opacity:0;transition:opacity .3s;pointer-events:none}#toast.show{opacity:1}dialog{border:0;border-radius:12px;background:#f8faf2;color:#16342b;padding:35px;width:min(620px,92vw);max-height:85vh;box-shadow:0 30px 130px #092b3b50}dialog::backdrop{background:#102e305c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.close{position:absolute;top:13px;right:14px;font-size:22px;padding:4px 12px;background:transparent}.muted{font-size:13px;line-height:1.65;color:#677c6d}.fine{font-size:10px;color:#728272;line-height:1.7}a{color:#315e4a}#lineChoices{display:flex;gap:6px;margin:22px 0;flex-wrap:wrap}#lineChoices button{border:1px solid #d5dfce;padding:7px 12px;background:transparent}#lineChoices .selected{background:#e2eadb;border-color:#618167}.direction{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:12px 0;border-bottom:1px solid #d9e1d3}.direction small{font-size:9px;color:#75836d}#destinations{max-height:37vh;overflow:auto}#destinations button{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;border-bottom:1px solid #e0e7d9;border-radius:0;background:transparent;font-size:13px;padding:14px 4px}#destinations button:hover{background:#e4ecdb}#destinations small{color:#7b8978;font-size:10px}#map{width:min(1100px,95vw)}.mapLayout{display:grid;grid-template-columns:1fr 220px;gap:20px}#network{width:100%;max-height:62vh;background:#e7eee0;border-radius:8px}#network text{font:10px Avenir Next,Arial,sans-serif;fill:#284839}#network .stop{cursor:pointer}#network .stop:hover circle{fill:#f4c453}#legend{margin-top:20px}#legend div{font-size:11px;margin:10px 0}.helpGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:25px 0}.helpGrid b{font-size:10px;letter-spacing:1px}.helpGrid p,#help>p{font-size:13px;line-height:1.7;color:#637365}.primary{background:#204f39;color:#fff3d4;width:100%;margin-top:10px}#rideHud{position:absolute;bottom:95px;left:50%;transform:translate(-50%);background:#f7f9efef;border-radius:10px;padding:18px;display:flex;gap:15px;align-items:center;width:min(520px,90vw);box-shadow:0 10px 50px #12352e30}#rideHud[hidden]{display:none}#rideHud>div{flex:1}#rideHud small{font-size:9px;letter-spacing:2px}#rideHud strong{display:block;font:600 18px Avenir Next,Arial,sans-serif;margin:5px 0}#rideHud p{font-size:11px;margin:3px 0 8px;color:#607666}progress{width:100%;height:4px;accent-color:#25563c}#exitRide{font-size:10px;background:#e4ebdb;padding:12px;max-width:100px}.touch{display:none}@media(max-width:760px){header{padding:16px;gap:10px}.edition{display:none}nav{gap:4px}nav button{padding:9px;font-size:10px}nav kbd{display:none}.brand{font-size:9px}.brandmark{font-size:17px;padding:8px}.location{left:18px;top:94px}h1{font-size:28px;max-width:65vw;letter-spacing:-1px}.passport{top:auto;bottom:142px;right:15px;width:145px;padding:13px}.passport .eyebrow{font-size:7px;letter-spacing:1px}.passport>strong{font-size:25px}.passport>span:not(.eyebrow){font-size:10px}#stamps{gap:3px}#stamps span{width:17px;height:17px;font-size:9px}.passport p{font-size:9px}.controls,.compass{display:none}footer{padding:17px;bottom:15px}.dataNote{bottom:-4px;right:18px;font-size:8px}#interact{font-size:11px;padding:12px 15px}.touch{display:block;position:absolute;left:15px;bottom:92px;text-align:center}.touch button{width:40px;height:40px;padding:8px;background:#f8faf0b0;margin:2px;touch-action:none}.mapLayout{grid-template-columns:1fr}.mapLayout>div{display:none}#network{max-height:65vh}dialog{padding:25px 20px}.helpGrid{gap:10px}#rideHud{bottom:218px;padding:12px}#rideHud strong{font-size:15px}#rideHud small{font-size:8px}#toast{bottom:73px;width:90vw;text-align:center}.location p{max-width:70vw;line-height:1.6;font-size:8px}h2{font-size:24px}}header{background:linear-gradient(#e4eed9a6,transparent)}.location{padding:17px 20px 13px;left:17px;top:112px;background:#f7f9eced;border-radius:3px;box-shadow:0 10px 40px #244a2c08}.location h1{font-size:36px}.location p{font-size:9px;letter-spacing:1.2px}#mapInfo h3{font-size:17px}#network text{paint-order:stroke;stroke:#e7eee0;stroke-width:2px;stroke-linejoin:round}@media(max-width:760px){.location{left:15px;top:85px;padding:13px 15px 10px;max-width:calc(100vw - 30px)}.location h1{font-size:25px}.location .eyebrow{font-size:8px;letter-spacing:1.2px}.location p{font-size:8px}.mapLayout{display:block;overflow:auto}#network{width:660px;max-width:none;max-height:none;height:565px}.mapLayout>div{display:block}#legend{display:none}#mapInfo{margin-top:8px}#mapInfo h3{margin:0 0 5px}.mapLayout>div>.muted,.mapLayout>div>.fine,.mapLayout>div>a{display:none}#map{max-height:90vh}#map h2{font-size:22px}.touch{z-index:1}}.mapCanvas{min-width:0}.mapLayout>.mapCanvas{display:block}@media(max-width:760px){.mapLayout{overflow:visible}.mapCanvas{overflow:auto;max-height:49vh;width:100%;border-radius:8px}.mapLayout>.mapCanvas{display:block}#mapInfo{padding-top:8px}#mapInfo .fine,#mapInfo .muted{margin:5px 0}.mapLayout>div>.muted{display:block;font-size:11px;margin:7px 0}}
