@import "https://fonts.googleapis.com/css2?family=Montserrat+Alternates:wght@700&display=swap";:root{--wrightrider-blue:#2aa3dc;--route-start:#f33;--route-end:#3f8}*{box-sizing:border-box}body{color:#fff;background:#050b12;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.page{min-height:100vh}header{z-index:10;position:fixed;top:24px;left:24px}h1{letter-spacing:-.04em;margin:0 0 8px;font-family:Montserrat Alternates,system-ui,sans-serif;font-size:42px;font-style:italic;font-weight:700}p{color:#a9bdcc;margin:0}main{width:100vw;height:100vh}#globe{touch-action:none;width:100%;height:100%;display:block}#coords{color:#fff;white-space:nowrap;background:#000000b3;border-radius:8px;max-width:calc(100vw - 344px);padding:12px 16px;font-size:18px;position:fixed;bottom:20px;left:324px}#nav-compass{z-index:12;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:radial-gradient(circle,#ffffff14,#ffffff05 56%),#1a212bb8;border:1px solid #d2e2ee2e;border-radius:28px;width:154px;height:154px;position:fixed;bottom:34px;right:34px;box-shadow:0 18px 42px #00000052,inset 0 1px #ffffff14}.compass-label,.compass-triangle,.compass-center{position:absolute}.compass-label{color:#ffffffe6;font-size:18px;font-weight:750;line-height:1}.compass-n{top:18px;left:50%;transform:translate(-50%)}.compass-e{top:50%;right:23px;transform:translateY(-50%)}.compass-s{bottom:18px;left:50%;transform:translate(-50%)}.compass-w{top:50%;left:21px;transform:translateY(-50%)}.compass-triangle{border-style:solid;width:0;height:0}.compass-triangle-n{border-width:0 7px 12px;border-color:#0000 #0000 #ffffffe0;top:47px;left:50%;transform:translate(-50%)}.compass-triangle-e{border-width:7px 0 7px 12px;border-color:#0000 #0000 #0000 #ffffffe0;top:50%;right:52px;transform:translateY(-50%)}.compass-triangle-s{border-width:12px 7px 0;border-color:#ffffffe0 #0000 #0000;bottom:47px;left:50%;transform:translate(-50%)}.compass-triangle-w{border-width:7px 12px 7px 0;border-color:#0000 #ffffffe0 #0000 #0000;top:50%;left:52px;transform:translateY(-50%)}.compass-center{background:var(--wrightrider-blue);border:2px solid #ffffffe6;border-radius:50%;width:13px;height:13px;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 18px #2aa3dc75}.summary-start{color:var(--route-start);font-weight:800}.summary-end{color:var(--route-end);font-weight:800}.summary-arrow,.summary-divider{color:#ffffffb8}#route-panel{z-index:20;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(155deg,#212832f0,#0d131ceb);border:1px solid #d2e2ee38;border-radius:14px;width:280px;max-height:calc(100vh - 140px);padding:18px;position:fixed;top:110px;left:24px;overflow-y:auto;box-shadow:0 18px 46px #0000006b,0 0 28px #aec2d214,inset 0 1px #ffffff14}#route-panel h2{margin:0 0 16px;font-family:Montserrat Alternates,system-ui,sans-serif;font-size:22px;font-style:italic;font-weight:700}#route-panel label{color:#a9bdcc;margin-bottom:12px;font-size:14px;display:block}#route-panel .toggle-row{align-items:center;gap:8px;margin:0 0 14px;display:flex}#route-panel .toggle-row input{width:auto;accent-color:var(--wrightrider-blue);margin:0}.lighting-control{color:#a9bdcc;margin:0 0 14px;font-size:14px}.segmented-control{background:#ffffff14;border:1px solid #ffffff29;border-radius:8px;grid-template-columns:1.35fr 1fr 1fr;gap:2px;margin-top:6px;padding:3px;display:grid}#route-panel .segmented-control button{color:#c7d7e3;background:0 0;margin:0;padding:8px 6px;font-size:12px}#route-panel .segmented-control button.is-active{background:var(--wrightrider-blue);color:#fff}#route-panel input{color:#fff;background:#ffffff14;border:1px solid #fff3;border-radius:8px;width:100%;margin-top:6px;padding:10px;font-size:16px}.location-input{position:relative}#route-panel .location-input input{padding-right:42px}#route-panel .clear-location{color:#d9e7f2;background:#ffffff1f;border-radius:50%;width:28px;min-height:28px;margin:3px 0 0;padding:0;font-size:16px;line-height:28px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}#route-panel .clear-location:hover,#route-panel .clear-location:focus{color:#fff;background:#2aa3dcb8}.location-suggestions{z-index:30;background:#050b12f7;border:1px solid #ffffff29;border-radius:8px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 12px 30px #00000059}#route-panel .location-suggestions button{color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;grid-template-columns:44px 1fr;align-items:center;gap:8px;width:100%;margin:0;padding:9px 10px;display:grid}#route-panel .location-suggestions button:hover,#route-panel .location-suggestions button:focus{background:#2aa3dc3d}.location-suggestions span{color:var(--wrightrider-blue);font-weight:700}.location-suggestions small{color:#d9e7f2;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}#route-panel button{background:var(--wrightrider-blue);color:#fff;cursor:pointer;border:0;border-radius:8px;width:100%;margin:6px 0 14px;padding:11px;font-weight:700}#route-panel button:disabled{cursor:not-allowed;opacity:.45}#show-controls{z-index:50;background:var(--wrightrider-blue);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:11px 16px;font-weight:700;position:fixed;bottom:20px;right:20px}#hide-controls{display:none}#route-panel input[type=range]{accent-color:var(--wrightrider-blue);padding:0}.animation-controls{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.animation-controls button,.utility-controls button{margin:0}.utility-controls{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px;display:grid}#route-info{color:#d9e7f2;font-size:14px;line-height:1.45}.route-details{gap:12px;display:grid}.route-title{gap:3px;margin-bottom:4px;font-size:15px;line-height:1.35;display:grid}.route-title-start,.route-title-end{color:#fff;font-weight:750}.route-title-to{color:#a9bdcc}.route-stat{background:#ffffff0e;border:1px solid #ffffff1a;border-radius:8px;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:10px;display:grid}.route-icon{background:#2aa3dc24;border:1px solid #2aa3dc6b;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:relative}.emoji-icon{font-size:17px;line-height:1}.route-stat-label,.route-stat-value,.route-stat-sub{display:block}.route-stat-label{color:#a9bdcc;text-transform:uppercase;font-size:12px;font-weight:700}.route-stat-value{color:#fff;font-size:17px;font-weight:800}.route-stat-sub{color:#c3d4e2;font-size:13px}#about-dialog{color:#fff;background:#050b12f5;border:1px solid #ffffff2e;border-radius:10px;width:min(320px,100vw - 40px);padding:22px}#about-dialog::backdrop{background:#00000094}#about-dialog h3{margin:0 0 12px;font-family:Montserrat Alternates,system-ui,sans-serif;font-size:24px;font-style:italic;font-weight:700}#about-dialog p{color:#d9e7f2;margin:0 0 8px}#about-dialog button{margin:14px 0 0}@media (width<=760px){body{overflow:hidden auto}.page{min-height:100svh;padding:calc(28px + env(safe-area-inset-top)) 16px 110px}header{z-index:30;max-width:100%;position:relative;top:auto;left:auto}h1{max-width:min-content;font-size:clamp(42px,14vw,58px);line-height:.96}main{z-index:0;height:100svh;position:fixed;inset:0}#globe{height:100svh}#coords{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));text-overflow:ellipsis;max-width:none;padding:10px 12px;font-size:14px;left:16px;overflow:hidden}#nav-compass{display:none}#route-panel{z-index:40;width:100%;max-height:none;margin:24px auto 0;padding:16px;position:relative;top:auto;left:auto;right:auto;overflow:visible}body.controls-hidden{overflow:hidden}body.controls-hidden .page{padding-bottom:0}body.controls-hidden header{display:none}#hide-controls{display:block}#show-controls{right:16px;bottom:calc(62px + env(safe-area-inset-bottom));min-height:46px;padding:11px 14px}#route-panel label{margin-bottom:10px;font-size:15px}#route-panel input{padding:11px;font-size:18px}#route-panel button{min-height:48px;margin-bottom:12px}.segmented-control{grid-template-columns:1.4fr 1fr 1fr}#route-panel .segmented-control button{min-height:40px;padding:8px 4px;font-size:14px}.animation-controls,.utility-controls{gap:10px}#route-info{font-size:16px}}@media (width<=420px){.page{padding-left:12px;padding-right:12px}h1{font-size:clamp(38px,13.5vw,50px)}#route-panel{padding:14px}.animation-controls,.utility-controls{grid-template-columns:1fr}#route-panel .segmented-control button{font-size:13px}}
