*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#c3ced0;font-family:Segoe UI,Arial,sans-serif;color:#ecede3;font-size:13px}button,input,select{font:inherit}button{cursor:pointer;border:0;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #cfad75;outline-offset:3px}[hidden]{display:none!important}#world{width:100vw;height:100dvh;position:fixed;inset:0;touch-action:none}.top{position:absolute;left:32px;right:32px;top:25px;display:flex;align-items:center;gap:25px;pointer-events:none}.brand{font-size:32px;font-weight:800;letter-spacing:-1.8px;color:#f7f4e9;text-shadow:0 2px 12px #0008}.brand span{font-weight:300}.brand i{font-style:normal;color:#d3b78c;font-size:26px;margin-left:3px}.chapter{border-left:1px solid #fff5;padding-left:25px;font-size:11px;letter-spacing:2px;text-shadow:0 1px 10px #000}.chapter span{display:block;font-size:8px;letter-spacing:1px;opacity:.7;margin-top:7px}.top>button{pointer-events:auto;margin-left:auto;padding:13px 19px;background:#f1eee0;color:#263f3d;border-radius:7px;font-size:11px}.top>button span{margin-left:30px;font-size:17px}.location{position:absolute;left:35px;top:132px;pointer-events:none;text-shadow:0 2px 20px #142527}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:#d4c9ab}.location h1{font-family:Georgia,serif;font-weight:400;font-size:38px;letter-spacing:-.8px;margin:12px 0}.location p{margin:0;color:#f0efdf;font-size:13px}.location-meta{font-size:10px;letter-spacing:.4px;display:flex;align-items:center;gap:7px;margin-top:20px}.dot{width:5px;height:5px;background:#d4c08f;border-radius:50%}.mapcard{position:absolute;right:30px;bottom:85px;width:228px;background:#1c3032e8;border:1px solid #ffffff21;backdrop-filter:blur(18px);border-radius:11px;padding:13px}.mapcard>div{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#b9c6be;margin-bottom:10px}.mapcard canvas{width:200px;height:163px;background:#253c3d;border-radius:5px}.mapcard footer{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#b7c4b9;padding-top:7px}.mapcard button{background:none;font-size:19px}.tools{position:absolute;left:32px;bottom:85px;display:flex;gap:8px}.tools button{padding:12px 15px;background:#1b3031de;border:1px solid #ffffff25;border-radius:8px;font-size:21px}.tools span{font-size:10px;margin-left:5px;vertical-align:middle}.controls{position:absolute;bottom:42px;left:32px;right:32px;display:flex;gap:22px;font-size:10px;text-shadow:0 1px 8px #000;background:#1d303344;border-radius:7px;padding:9px 12px;pointer-events:none}.controls span:last-child{margin-left:auto}kbd{font:inherit;background:#f4f1de22;border:1px solid #e5e6d433;padding:3px 6px;border-radius:3px}.attribution{position:absolute;bottom:12px;left:32px;right:32px;display:flex;gap:12px;font-size:8px;align-items:center;text-shadow:0 1px 3px #000;background:#1d3033b8;width:fit-content;padding:4px 7px;border-radius:3px}.attribution a{color:#dee0d2;text-decoration:none}.attribution button{background:none;color:#d4c299;font-size:8px;padding:0}#loading{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);background:#1b3031ed;border:1px solid #bbc7bb33;padding:28px 40px;min-width:290px;border-radius:12px;display:flex;align-items:center;flex-direction:column;gap:13px;text-align:center}#loading strong{font-family:Georgia,serif;font-size:26px;font-weight:400}#load-detail{font-size:11px;line-height:1.7;color:#b9c7bd;max-width:320px}.spinner{border:2px solid #c6c9b433;border-top-color:#d4bc86;border-radius:50%;width:23px;height:23px;animation:spin 1s linear infinite}#retry{background:#d7c392;color:#243d35;border-radius:6px;padding:10px 18px}#panel-backdrop{position:fixed;inset:0;display:grid;place-items:center;background:#0f222663;backdrop-filter:blur(7px);padding:20px;z-index:5}#panel{width:570px;max-width:100%;max-height:88dvh;overflow:auto;background:#f0eee3;color:#283f3b;border-radius:14px;box-shadow:0 30px 80px #071b2455}#panel>header{padding:25px 28px;display:flex;justify-content:space-between;border-bottom:1px solid #ced6c8}#panel .eyebrow{color:#8c967d;font-size:8px}#panel h2{font:32px Georgia,serif;margin:9px 0 0}#close-panel{width:30px;height:30px;font-size:23px;border-radius:50%;background:#dfe4d6;color:#344f42}#panel-body{padding:22px 28px 28px}.intro{font-size:12px;line-height:1.8;color:#77816f;margin:0 0 18px}.destinations{display:grid;grid-template-columns:1fr 1fr;gap:8px}.destination{padding:14px;text-align:left;background:#e0e5d8;border-radius:8px;color:#304e43}.destination strong{display:block;font-size:13px;font-weight:600}.destination span{font-size:9px;color:#7e8b73;display:block;margin-top:6px}.destination:hover{background:#d2dcc8}.section-label{font-size:9px;letter-spacing:1.4px;font-weight:700;color:#829276;margin:18px 0 12px}input,select{padding:12px;border:1px solid #c3cebb;border-radius:7px;width:100%;background:#faf9f1;color:#2d493b;margin:7px 0 15px}.search-row{display:flex;gap:8px}.search-row input{flex:1;min-width:0}.search-row button{padding:0 15px;border-radius:7px;background:#294e3f;color:#fff;height:42px;margin-top:7px}.stat{display:flex;justify-content:space-between;border-bottom:1px solid #d3dacb;padding:10px 0;font-size:12px}.stat strong{font-weight:600}label{font-size:10px;display:block;margin-top:15px}.primary{background:#294e3f;color:white;padding:13px 18px;border-radius:7px;width:100%;margin-top:12px}#toast{position:absolute;bottom:145px;left:50%;transform:translateX(-50%);max-width:90vw;background:#1b3031ed;border:1px solid #c2c9b833;padding:13px 20px;border-radius:8px;font-size:12px;z-index:10}#joystick,#run-touch{display:none}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.top{left:16px;right:16px;top:17px;gap:14px}.brand{font-size:27px}.chapter{display:none}.top>button{padding:10px 12px;font-size:10px}.top>button span{margin-left:8px}.location{top:100px;left:18px;max-width:85%}.location h1{font-size:29px}.location .eyebrow{font-size:7px}.location p{font-size:11px}.location-meta{font-size:8px;margin-top:12px}.mapcard{width:157px;right:14px;bottom:75px;padding:10px}.mapcard canvas{width:135px;height:110px}.mapcard>div{font-size:6px}.mapcard footer{font-size:7px}.tools{left:14px;bottom:75px;gap:4px}.tools button{padding:10px 11px;font-size:21px}.tools span{display:none}.controls{left:14px;right:14px;bottom:36px;gap:10px;font-size:8px}.controls span:nth-child(3){display:none}.controls span:nth-child(2){display:none}.attribution{left:14px;right:14px;bottom:7px;font-size:6px;gap:8px}.attribution button{font-size:6px}.mapcard #heading{display:none}#panel-backdrop{padding:12px}#panel>header{padding:20px}#panel-body{padding:18px 20px}#panel h2{font-size:29px}.destination{padding:12px}.destination strong{font-size:12px}.destinations{gap:6px}#toast{bottom:230px;font-size:10px}#loading{padding:25px;min-width:270px}}
@media(pointer:coarse){#joystick{display:block;position:absolute;left:22px;bottom:170px;width:105px;height:105px;border-radius:50%;border:1px solid #efefde77;background:#d1d8ce33;touch-action:none}#stick{position:absolute;left:31px;top:31px;width:42px;height:42px;border-radius:50%;background:#ecebdaa8;pointer-events:none}#run-touch{display:block;position:absolute;right:29px;bottom:255px;padding:14px 10px;border-radius:50%;background:#e3d8b899;color:#253e37;font-size:10px}.controls span:not(:last-child){display:none}}
@media(max-width:420px) and (max-height:650px){.mapcard{width:112px;padding:7px;bottom:75px}.mapcard canvas{width:96px;height:72px}.mapcard>div{display:none}.mapcard footer{font-size:6px}.location{top:82px}.location h1{font-size:24px;margin:8px 0}.location-meta{margin-top:8px}}

/* Compact modern HUD; the geographic source is independent of interface styling. */
.location h1,#panel h2,#loading strong{font-family:Segoe UI,Arial,sans-serif;font-weight:650;letter-spacing:-1.3px}.location h1{font-size:32px}.eyebrow{letter-spacing:1.5px}.location{top:116px}.tools button,.mapcard{background:#10202dde;backdrop-filter:blur(18px)}.brand i{color:#78e6b7}.top>button{background:#defff0;color:#153b33}.movement-pill{position:absolute;left:34px;bottom:152px;border:1px solid #ffffff26;background:#10202dcc;border-radius:20px;padding:9px 13px;font-size:11px;font-variant-numeric:tabular-nums}#run-mode{font-size:11px;letter-spacing:.5px}#run-mode[aria-pressed=true],#run-touch[aria-pressed=true]{background:#8cebc3;color:#102b25}.controls{gap:15px}
@media(max-width:700px){.movement-pill{left:16px;bottom:138px;font-size:9px}.tools{gap:3px}.tools button{padding:9px}#run-mode{font-size:9px}.mapcard{bottom:198px;width:116px;padding:7px}.mapcard canvas{width:100px;height:82px}.mapcard>div{display:none}.location h1{font-size:27px}}
@media(pointer:coarse){.movement-pill{bottom:290px}#run-touch{bottom:155px}.mapcard{bottom:270px}}

.source-status{position:absolute;left:34px;top:86px;font-size:10px;background:#10202dd9;padding:6px 10px;border-radius:4px;max-width:80vw}#google-attribution{position:absolute;bottom:118px;right:20px;max-width:50vw;padding:9px;background:#ffffffed;color:#202124;font-size:12px;z-index:3;border-radius:4px}.source-config{border:1px solid #bfcbbb;padding:15px;border-radius:10px;margin-bottom:20px}.source-config .intro{margin-top:12px}.source-config a{color:#245744}.source-config button{margin-top:6px}
@media(max-width:700px){.source-status{top:73px;left:16px;font-size:8px}.location{top:113px}#google-attribution{bottom:190px;left:12px;right:12px;max-width:none;font-size:10px}.source-config{padding:12px}}
#panel{width:min(570px,calc(100vw - 24px));min-width:0}#panel>header>div{min-width:0}#close-panel{flex-shrink:0}.stat{gap:14px}.stat>span:first-child{min-width:0;overflow-wrap:anywhere}.stat>span:last-child{flex-shrink:0}
.station-card{padding:14px 0;border-bottom:1px solid #ced6c8}.station-card p{font-size:11px;margin:7px 0}.route-name{display:flex;align-items:center;gap:8px;font-size:12px;margin:6px 0}.route-chip{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:50%;font-weight:700;flex-shrink:0}
#jump-touch{display:none}#jump-mode{font-size:10px}
@media(pointer:coarse){#jump-touch{display:block;position:absolute;right:24px;bottom:216px;width:60px;height:52px;border-radius:18px;background:#defff0dc;color:#153b33;font-weight:700;font-size:11px;touch-action:manipulation}#jump-mode{display:none}}
@media(max-width:700px){.tools{max-width:calc(100vw - 24px)}.tools button{padding:8px 7px}.tools #camera span,.tools #photo span{display:none}}
