:root{--indigo-950:#121833;--indigo-900:#1b2340;--indigo-800:#272f56;--indigo-700:#3a4575;--indigo-500:#5c6385;--indigo-400:#a3aacb;--indigo-300:#c9cde3;--indigo-200:#e0e3ef;--indigo-100:#eaecf5;--indigo-50:#f3f4fa;--lamp-700:#a35e00;--lamp-600:#d98500;--lamp-500:#f29a00;--lamp-400:#ffc66b;--lamp-300:#ffd68f;--lamp-200:#ffe6a6;--lamp-100:#fff4d6;--white:#fff;--night-text:#eef0fa;--bg-page:var(--indigo-50);--bg-surface:var(--white);--bg-raised:var(--white);--bg-field:var(--indigo-100);--bg-hover:var(--indigo-100);--bg-thumb:var(--white);--bg-selected:var(--lamp-100);--border-subtle:var(--indigo-200);--border-card:#1b23400f;--border-control:#7e85a6;--border-selected:var(--indigo-900);--text-strong:var(--indigo-900);--text-body:var(--indigo-900);--text-muted:var(--indigo-500);--text-disabled:var(--indigo-300);--text-warm:var(--lamp-700);--accent:var(--indigo-900);--accent-hover:#2a3463;--accent-pressed:var(--indigo-950);--on-accent:var(--white);--accent-text:#3a47a8;--highlight:var(--lamp-200);--on-highlight:var(--indigo-900);--focus-ring:var(--lamp-700);--logo-loop:var(--lamp-500);--logo-dot:var(--indigo-900);--logo-word:var(--indigo-900);--logo-run:var(--lamp-500);--success:#18744b;--success-bg:#e2f4ea;--success-border:#9ed3b5;--warning:#9a3412;--warning-edge:#c2410c;--warning-bg:#fde9da;--danger:#b83232;--danger-bg:#fbe6e6;--danger-border:#eba9a9;--info:#2a63c7;--info-bg:#e5eefc;--info-border:#a9c4f2;--map-land:#f4f5f9;--map-water:#c3d9f0;--map-green:#d3e8cc;--map-wood:#bcdbb3;--map-sand:#eee3c4;--map-building:#e3e5ee;--map-road:#fff;--map-road-major:#fff;--map-road-edge:#e0e3ef;--map-cycleway:#7f89c9;--map-path:#7fae7a;--map-label:var(--indigo-500);--map-lamp:var(--lamp-500);--route-line:var(--indigo-900);--route-hover:#3a47a8;--route-casing:var(--white);--route-alt:var(--indigo-500);--route-warn:#c2410c59;--route-near:#1b23400d;--route-near-edge:#1b23408c;--marker-start:var(--lamp-500);--marker-km:var(--indigo-900);--marker-signal-off:var(--indigo-300);--elev-line:var(--indigo-900);--elev-fill:#1b234014;--chart-grid:var(--indigo-200);--surface-paved:#8c92b0;--surface-unpaved:#b07a4a;--surface-trail:#3f9a63;--surface-unknown:#d3d6e4;--surface-asphalt:var(--indigo-700);--breakdown-water:#2f72b5;--breakdown-forest:#22633e;--breakdown-grass:#4f9230;--breakdown-scrub:#8a7a22;--breakdown-lit:var(--lamp-700);--breakdown-likely:var(--lamp-400);--breakdown-unlit:var(--indigo-500);--breakdown-paths:#4f5bb0;--breakdown-streets:#737a9e;--breakdown-roads:#c2410c;--shadow-card:0 1px 2px #1b23400f, 0 6px 20px -8px #1b234038;--shadow-panel:0 2px 4px #1b234014, 0 12px 32px -10px #1b234052;--shadow-popover:0 4px 14px -2px #1b234038;--shadow-thumb:0 1px 3px #1b23402e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--control-sm:32px;--control-md:40px;--control-lg:48px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--planner-panel:384px;--content-max:1280px;--bp-sm:640px;--bp-md:960px;--bp-lg:1280px;--font-sans:"Atkinson Hyperlegible Next", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg-page:var(--indigo-950);--bg-surface:var(--indigo-900);--bg-raised:var(--indigo-800);--bg-field:var(--indigo-800);--bg-hover:#303a66;--bg-thumb:var(--indigo-700);--bg-selected:#33304f;--border-subtle:var(--indigo-700);--border-card:#ffffff0a;--border-control:#737db3;--border-selected:var(--lamp-400);--text-strong:var(--night-text);--text-body:var(--night-text);--text-muted:var(--indigo-400);--text-disabled:var(--indigo-700);--text-warm:var(--lamp-400);--accent:var(--lamp-400);--accent-hover:var(--lamp-300);--accent-pressed:var(--lamp-600);--on-accent:var(--indigo-900);--accent-text:var(--lamp-400);--highlight:var(--lamp-400);--on-highlight:var(--indigo-900);--focus-ring:var(--white);--logo-loop:var(--lamp-400);--logo-dot:var(--night-text);--logo-word:var(--night-text);--logo-run:var(--lamp-400);--success:#4cc38a;--success-bg:#173a33;--success-border:#2f6b55;--warning:#ffb088;--warning-edge:#ff8a4c;--warning-bg:#3e2a2e;--danger:#ff8a8a;--danger-bg:#3d2133;--danger-border:#7a3348;--info:#8db0ff;--info-bg:#24305e;--info-border:#3d5299;--map-land:#1e274a;--map-water:#2a2f6b;--map-green:#223b4a;--map-wood:#1b3638;--map-sand:#383650;--map-building:#232c52;--map-road:#2e3863;--map-road-major:#3a4575;--map-road-edge:#1e274a;--map-cycleway:#6f7ab8;--map-path:#4c7f6b;--map-label:var(--indigo-400);--map-lamp:var(--lamp-400);--route-line:var(--lamp-400);--route-hover:var(--lamp-300);--route-casing:var(--indigo-900);--route-alt:var(--indigo-400);--route-warn:#ff8a4c61;--route-near:#ffc66b14;--route-near-edge:#ffc66b99;--marker-start:var(--night-text);--marker-km:var(--lamp-400);--marker-signal-off:#5a6599;--elev-line:var(--lamp-400);--elev-fill:#ffc66b29;--chart-grid:var(--indigo-700);--surface-paved:#c9cde3;--surface-unpaved:#c99366;--surface-trail:#5dbb82;--surface-unknown:#3a4575;--surface-asphalt:#8790c4;--breakdown-water:#6fa8e6;--breakdown-forest:#4fb47a;--breakdown-grass:#a3d67a;--breakdown-scrub:#cdbb62;--breakdown-lit:var(--lamp-400);--breakdown-likely:var(--lamp-700);--breakdown-unlit:#7e87bd;--breakdown-paths:#97a0e8;--breakdown-streets:#b9bed8;--breakdown-roads:#ff8a4c;--shadow-card:0 8px 24px -10px #0000008c;--shadow-panel:0 12px 32px -8px #000000a6;--shadow-popover:0 6px 18px -2px #0009;--shadow-thumb:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-page:var(--indigo-950);--bg-surface:var(--indigo-900);--bg-raised:var(--indigo-800);--bg-field:var(--indigo-800);--bg-hover:#303a66;--bg-thumb:var(--indigo-700);--bg-selected:#33304f;--border-subtle:var(--indigo-700);--border-card:#ffffff0a;--border-control:#737db3;--border-selected:var(--lamp-400);--text-strong:var(--night-text);--text-body:var(--night-text);--text-muted:var(--indigo-400);--text-disabled:var(--indigo-700);--text-warm:var(--lamp-400);--accent:var(--lamp-400);--accent-hover:var(--lamp-300);--accent-pressed:var(--lamp-600);--on-accent:var(--indigo-900);--accent-text:var(--lamp-400);--highlight:var(--lamp-400);--on-highlight:var(--indigo-900);--focus-ring:var(--white);--logo-loop:var(--lamp-400);--logo-dot:var(--night-text);--logo-word:var(--night-text);--logo-run:var(--lamp-400);--success:#4cc38a;--success-bg:#173a33;--success-border:#2f6b55;--warning:#ffb088;--warning-edge:#ff8a4c;--warning-bg:#3e2a2e;--danger:#ff8a8a;--danger-bg:#3d2133;--danger-border:#7a3348;--info:#8db0ff;--info-bg:#24305e;--info-border:#3d5299;--map-land:#1e274a;--map-water:#2a2f6b;--map-green:#223b4a;--map-wood:#1b3638;--map-sand:#383650;--map-building:#232c52;--map-road:#2e3863;--map-road-major:#3a4575;--map-road-edge:#1e274a;--map-cycleway:#6f7ab8;--map-path:#4c7f6b;--map-label:var(--indigo-400);--map-lamp:var(--lamp-400);--route-line:var(--lamp-400);--route-hover:var(--lamp-300);--route-casing:var(--indigo-900);--route-alt:var(--indigo-400);--route-warn:#ff8a4c61;--route-near:#ffc66b14;--route-near-edge:#ffc66b99;--marker-start:var(--night-text);--marker-km:var(--lamp-400);--marker-signal-off:#5a6599;--elev-line:var(--lamp-400);--elev-fill:#ffc66b29;--chart-grid:var(--indigo-700);--surface-paved:#c9cde3;--surface-unpaved:#c99366;--surface-trail:#5dbb82;--surface-unknown:#3a4575;--surface-asphalt:#8790c4;--breakdown-water:#6fa8e6;--breakdown-forest:#4fb47a;--breakdown-grass:#a3d67a;--breakdown-scrub:#cdbb62;--breakdown-lit:var(--lamp-400);--breakdown-likely:var(--lamp-700);--breakdown-unlit:#7e87bd;--breakdown-paths:#97a0e8;--breakdown-streets:#b9bed8;--breakdown-roads:#ff8a4c;--shadow-card:0 8px 24px -10px #0000008c;--shadow-panel:0 12px 32px -8px #000000a6;--shadow-popover:0 6px 18px -2px #0009;--shadow-thumb:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@font-face{font-family:Atkinson Hyperlegible Next;src:url(/assets/AtkinsonHyperlegibleNext-Variable-BcXVPD7q.woff2)format("woff2");font-weight:200 800;font-display:swap}body{font-family:var(--font-sans);color:var(--text-body);background:var(--bg-page);font-size:16px;font-weight:400;line-height:1.6}.msr-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.msr-stack{gap:var(--space-3);flex-direction:column;display:flex}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.msr-btn{font-family:var(--font-sans);height:var(--control-md);padding:0 var(--space-5);border-radius:var(--radius-full);color:var(--text-strong);justify-content:center;align-items:center;gap:var(--space-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;font-size:15px;font-weight:700;line-height:1.2;transition:background-color .12s ease-out,box-shadow .12s ease-out,color .12s ease-out;display:inline-flex}.msr-btn-lg{height:var(--control-lg);padding:0 var(--space-6);font-size:16px}.msr-btn-sm{height:var(--control-sm);padding:0 var(--space-4);font-size:14px}.msr-btn-primary{background:var(--accent);color:var(--on-accent)}.msr-btn-primary:hover{background:var(--accent-hover)}.msr-btn-primary:active{background:var(--accent-pressed)}.msr-btn-secondary{box-shadow:inset 0 0 0 1.5px var(--border-control)}.msr-btn-secondary:hover,.msr-btn-ghost:hover{background:var(--bg-hover)}.msr-btn-danger{box-shadow:inset 0 0 0 1.5px var(--danger-border);color:var(--danger)}.msr-btn-danger:hover{background:var(--danger-bg)}.msr-btn:disabled,.msr-btn:disabled:hover{color:var(--text-disabled);box-shadow:inset 0 0 0 1.5px var(--border-subtle);cursor:not-allowed;background:0 0}.msr-btn-primary:disabled,.msr-btn-primary:disabled:hover{background:var(--bg-field);box-shadow:none}.msr-btn-block{width:100%}.msr-iconbtn{width:var(--control-md);padding:0}.msr-iconbtn.msr-btn-sm{width:var(--control-sm)}.msr-field{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.msr-field-label{color:var(--text-strong);font-size:15px;font-weight:700}.msr-field-control{height:var(--control-md);background:var(--bg-field);border:1px solid var(--border-control);border-radius:var(--radius-md);align-items:center;transition:border-color .12s ease-out;display:flex}.msr-field-control:hover{border-color:var(--text-muted)}.msr-field-control:focus-within{border-color:var(--focus-ring);box-shadow:0 0 0 1px var(--focus-ring)}.msr-field-control>svg{width:var(--icon-md);height:var(--icon-md);margin-left:var(--space-3);color:var(--text-muted);flex:none}.msr-field input{min-width:0;height:100%;color:var(--text-strong);font:inherit;padding:0 var(--space-3);background:0 0;border:0;outline:none;flex:1;font-size:16px}.msr-field input::placeholder{color:var(--text-muted)}.msr-field-unit{padding-right:var(--space-3);color:var(--text-muted);font-size:14px}.msr-field-hint{color:var(--text-muted);font-size:14px}.msr-field-invalid .msr-field-control{border-color:var(--danger)}.msr-field-invalid .msr-field-hint{color:var(--danger)}.msr-seg{background:var(--bg-field);border:1px solid var(--border-control);border-radius:var(--radius-md);gap:2px;padding:3px;display:inline-flex}.msr-seg button{height:calc(var(--control-md) - 8px);padding:0 var(--space-4);border-radius:calc(var(--radius-md) - 4px);color:var(--text-body);font-family:var(--font-sans);cursor:pointer;background:0 0;border:0;font-size:15px;font-weight:400}.msr-seg button:hover{background:var(--bg-hover)}.msr-seg button[aria-pressed=true]{background:var(--bg-thumb);color:var(--text-strong);box-shadow:var(--shadow-thumb);font-weight:700}.msr-chip{height:var(--control-sm);padding:0 var(--space-3) 0 10px;border-radius:var(--radius-full);background:var(--bg-field);color:var(--text-strong);font-family:var(--font-sans);cursor:pointer;border:0;align-items:center;gap:6px;font-size:14px;font-weight:700;transition:background-color .12s ease-out;display:inline-flex}.msr-chip svg{width:var(--icon-sm);height:var(--icon-sm);flex:none}.msr-chip:hover{background:var(--bg-hover)}.msr-chip[aria-pressed=true]{background:var(--highlight);color:var(--on-highlight)}.msr-slider{gap:var(--space-2);flex-direction:column;display:flex}.msr-slider-head{justify-content:space-between;align-items:baseline;display:flex}.msr-slider-value{letter-spacing:-.25px;color:var(--text-strong);text-align:right;font-variant-numeric:tabular-nums;min-width:3.4em;font-size:24px;font-weight:700;line-height:1}.msr-slider-value small{letter-spacing:0;color:var(--text-muted);margin-left:var(--space-1);font-size:14px;font-weight:400}.msr-slider input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;margin:0}.msr-slider input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--pct), var(--bg-field) var(--pct));height:6px;box-shadow:inset 0 0 0 1px var(--border-subtle);border-radius:3px}.msr-slider input[type=range]::-moz-range-track{background:var(--bg-field);border-radius:3px;height:6px}.msr-slider input[type=range]::-moz-range-progress{background:var(--accent);border-radius:3px;height:6px}.msr-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);background:var(--bg-surface);border:6px solid var(--accent);width:24px;height:24px;box-shadow:var(--shadow-thumb);margin-top:-9px}.msr-slider input[type=range]::-moz-range-thumb{border-radius:var(--radius-full);background:var(--bg-surface);border:6px solid var(--accent);width:12px;height:12px}.msr-slider-scale{color:var(--text-muted);justify-content:space-between;font-size:14px;display:flex}.msr-badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);background:var(--bg-field);height:26px;color:var(--text-body);white-space:nowrap;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.msr-badge svg{width:14px;height:14px}.msr-badge-accent{background:var(--accent);color:var(--on-accent)}.msr-badge-success{background:var(--success-bg);color:var(--success)}.msr-badge-warning{background:var(--warning-bg);color:var(--warning);box-shadow:inset 0 0 0 1.5px var(--warning-edge)}.msr-badge-warning svg{color:var(--warning-edge)}.msr-badge-danger{background:var(--danger-bg);color:var(--danger)}.msr-badge-info{background:var(--info-bg);color:var(--info)}.msr-badge-dot{border-radius:var(--radius-full);width:8px;height:8px}.msr-alert{grid-template-columns:var(--icon-md) 1fr;gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid;display:grid}.msr-alert>svg{width:var(--icon-md);height:var(--icon-md);margin-top:2px}.msr-alert-title{color:var(--text-strong);font-weight:700}.msr-alert-body{color:var(--text-body);grid-column:2;font-size:15px}.msr-alert-success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.msr-alert-warning{background:var(--warning-bg);box-shadow:inset 4px 0 0 var(--warning-edge);color:var(--warning-edge);border-color:#0000}.msr-alert-warning .msr-alert-title{color:var(--warning)}.msr-alert-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.msr-alert-info{background:var(--info-bg);border-color:var(--info-border);color:var(--info)}.msr-card{background:var(--bg-surface);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);gap:var(--space-4);text-align:left;flex-direction:column;min-width:0;display:flex}.msr-card-interactive{cursor:pointer;transition:box-shadow .12s ease-out,background-color .12s ease-out}.msr-card-interactive:hover{box-shadow:var(--shadow-panel)}.msr-card-selected,.msr-card-selected:hover{background:var(--bg-selected);border:2px solid var(--border-selected);padding:calc(var(--space-5) - 1px)}.msr-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.msr-card-title{color:var(--text-strong);margin:0;font-size:18px;font-weight:700;line-height:1.35}.msr-card-sub{color:var(--text-muted);font-size:14px}.msr-card-stats{gap:var(--space-5);flex-wrap:wrap;display:flex}.msr-metric{flex-direction:column-reverse;gap:2px;display:flex}.msr-metric-label{color:var(--text-muted);font-size:13px;font-weight:400}.msr-metric-value{letter-spacing:-.25px;color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1.1}.msr-metric-xl .msr-metric-value{letter-spacing:-1px;font-size:56px;font-weight:800;line-height:1}.msr-metric-lg .msr-metric-value{letter-spacing:-.5px;font-size:36px;font-weight:800;line-height:1}.msr-metric-unit{letter-spacing:0;color:var(--text-muted);margin-left:var(--space-1);font-size:14px;font-weight:400}.msr-metric-accent .msr-metric-value{color:var(--accent-text)}.msr-surf{gap:var(--space-2);flex-direction:column;display:flex}.msr-surf-bar{gap:3px;height:10px;display:flex}.msr-surf-bar span{height:100%;display:block}.msr-surf-bar span:first-child{border-radius:5px 0 0 5px}.msr-surf-bar span:last-child{border-radius:0 5px 5px 0}.msr-surf-legend{gap:var(--space-1) var(--space-4);color:var(--text-body);flex-wrap:wrap;font-size:14px;display:flex}.msr-surf-legend b{color:var(--text-strong);margin-left:var(--space-1);font-weight:700}.msr-surf-legend i{border-radius:var(--radius-full);width:8px;height:8px;margin-right:var(--space-2);display:inline-block}.msr-elev{width:100%;display:block}.msr-elev .grid{stroke:var(--chart-grid);stroke-width:1px}.msr-elev .area{fill:var(--elev-fill)}.msr-elev .line{fill:none;stroke:var(--elev-line);stroke-width:2px;stroke-linejoin:round}.msr-elev .peak{fill:var(--elev-line);stroke:var(--bg-surface);stroke-width:2px}.msr-elev text{fill:var(--text-muted);font-family:var(--font-sans);font-size:13px}.msr-elev .peak-label{fill:var(--text-strong);font-weight:700}.msr-map{border-radius:var(--radius-lg);background:var(--map-land);position:relative;overflow:hidden}.msr-map>svg{width:100%;height:auto;display:block}.msr-map .land{fill:var(--map-land)}.msr-map .water{fill:var(--map-water)}.msr-map .canal{fill:none;stroke:var(--map-water);stroke-width:22px}.msr-map .green{fill:var(--map-green)}.msr-map .bld{fill:var(--map-building)}.msr-map .road{fill:none;stroke:var(--map-road);stroke-width:8px;stroke-linecap:round}.msr-map .road-edge{fill:none;stroke:var(--map-road-edge);stroke-width:14px;stroke-linecap:round}.msr-map .road-major{fill:none;stroke:var(--map-road-major);stroke-width:12px;stroke-linecap:round}.msr-map .cycleway{fill:none;stroke:var(--map-cycleway);stroke-width:2.5px;stroke-dasharray:5 4;stroke-linecap:round}.msr-map .path{fill:none;stroke:var(--map-path);stroke-width:2.5px;stroke-dasharray:1 6;stroke-linecap:round}.msr-map .lamps{fill:var(--map-lamp);opacity:.8}.msr-map .label{fill:var(--map-label);font-family:var(--font-sans);font-size:12px;font-weight:700}.msr-map .label-water{font-style:italic;font-weight:400}.msr-map .alt{fill:none;stroke:var(--route-alt);stroke-width:4px;stroke-linejoin:round;stroke-linecap:round}.msr-map .warn{fill:none;stroke:var(--route-warn);stroke-width:20px;stroke-linecap:round}.msr-map .casing{fill:none;stroke:var(--route-casing);stroke-width:10px;stroke-linejoin:round}.msr-map .route{fill:none;stroke:var(--route-line);stroke-width:5.5px;stroke-linejoin:round}.msr-map .m-start{fill:var(--marker-start);stroke:var(--route-casing);stroke-width:3px}.msr-map .km circle{fill:var(--route-casing);stroke:var(--marker-km);stroke-width:2.5px}.msr-map .km text{fill:var(--marker-km);font-family:var(--font-sans);font-size:10px;font-weight:700}.msr-map .m-warn circle{fill:var(--warning-edge);stroke:var(--route-casing);stroke-width:2.5px}.msr-map .m-warn text{fill:#fff;font-family:var(--font-sans);font-size:13px;font-weight:800}.msr-map .signal rect{fill:var(--route-casing);stroke:var(--route-line);stroke-width:1.5px}.msr-map .signal circle{fill:var(--route-line)}.msr-map .signal-off rect{fill:var(--map-land);stroke:var(--marker-signal-off);stroke-width:1.5px}.msr-map .signal-off circle{fill:var(--marker-signal-off)}.msr-map .signal circle+circle,.msr-map .signal-off circle+circle{opacity:.5}.msr-map-panel{left:var(--space-4);bottom:var(--space-4);background:var(--bg-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);padding:var(--space-3) var(--space-5);gap:var(--space-5);display:flex;position:absolute}.msr-map-tools{right:var(--space-4);top:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex;position:absolute}.msr-map-tools .msr-btn{background:var(--bg-raised);box-shadow:var(--shadow-panel)}.msr-map-chips{left:var(--space-4);top:var(--space-4);gap:var(--space-2);flex-wrap:wrap;display:flex;position:absolute}.msr-map-chips .msr-chip:not([aria-pressed=true]){background:var(--bg-raised);box-shadow:var(--shadow-popover)}.msr-map-credit{padding:2px var(--space-2);color:var(--text-muted);background:var(--bg-raised);border-top-left-radius:var(--radius-sm);font-size:12px;position:absolute;bottom:0;right:0}.msr-logo{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--logo-word);white-space:nowrap;align-items:center;gap:.06em;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.msr-logo svg{flex:none;width:1.4em;height:1.4em;transform:translateY(.06em)}.msr-logo .mk-line{fill:none;stroke:var(--logo-loop);stroke-width:6.5px;stroke-linecap:round}.msr-logo .mk-dot{fill:var(--logo-dot)}.msr-logo .run{color:var(--logo-run)}.msr-nav{align-items:center;gap:var(--space-6);height:60px;padding:0 var(--space-5);background:var(--bg-surface);box-shadow:var(--shadow-card);display:flex}.msr-nav .msr-logo{font-size:20px}.msr-nav-links{gap:var(--space-1);flex:1;display:flex}.msr-nav-links a{height:var(--control-sm);padding:0 var(--space-4);border-radius:var(--radius-full);color:var(--text-muted);align-items:center;font-size:15px;font-weight:700;text-decoration:none;transition:background-color .12s ease-out,color .12s ease-out;display:inline-flex}.msr-nav-links a:hover{color:var(--text-strong);background:var(--bg-hover)}.msr-nav-links a[aria-current=page]{color:var(--text-strong);background:var(--bg-field)}@media (width<=959px){.msr-nav-links{display:none}.msr-nav{justify-content:space-between}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}html,body,#root{height:100%;margin:0}.app{background:var(--bg-page);height:100%;position:relative;overflow:hidden}.map-area{background:var(--map-land);position:absolute;inset:0}.planner{z-index:2;top:var(--space-4);left:var(--space-4);width:var(--planner-panel);max-height:calc(100% - 2 * var(--space-4));box-sizing:border-box;background:var(--bg-surface);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);flex-direction:column;display:flex;position:absolute}.planner-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex}.planner-brand{margin:0;font-size:20px;line-height:1;display:flex}.day-night button{height:26px;padding:0 var(--space-2);align-items:center;display:inline-flex}.day-night svg{width:var(--icon-sm);height:var(--icon-sm)}.planner-body{gap:var(--space-5);min-height:0;margin-bottom:var(--radius-lg);padding:var(--space-4) var(--space-4) 0;scrollbar-width:thin;scrollbar-color:var(--border-control) transparent;flex-direction:column;display:flex;overflow-y:auto}.planner-body::-webkit-scrollbar{width:8px}.planner-body::-webkit-scrollbar-thumb{background:var(--border-control);border:2px solid var(--bg-surface);border-radius:var(--radius-full)}.planner-group{gap:var(--space-3);flex-direction:column;display:flex}.planner-group-head{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--control-sm);display:flex}.planner-group-actions{gap:var(--space-1);display:flex}.planner-title{color:var(--text-strong);margin:0;font-size:16px;font-weight:700;line-height:1.3}.planner-hint{color:var(--text-muted);margin:0;font-size:14px;line-height:1.45}.locate-button{align-self:flex-start}.planner-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.mode-switch{display:flex}.mode-switch button{padding:0 var(--space-2);white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:6px;display:inline-flex}.mode-switch svg{width:var(--icon-sm);height:var(--icon-sm);flex:none}.distance-value{align-items:baseline;gap:var(--space-1);background:var(--bg-field);border:1px solid var(--border-control);border-radius:var(--radius-sm);padding:2px 10px;display:flex}.distance-value:focus-within{border-color:var(--focus-ring)}.distance-value input{width:4.2ch;color:var(--text-strong);font:inherit;font-variant-numeric:tabular-nums;text-align:right;-moz-appearance:textfield;background:0 0;border:0;outline:none;padding:0;font-size:22px;font-weight:700}.distance-value input::-webkit-inner-spin-button{display:none}.distance-value span{color:var(--text-muted);font-size:14px}.distance-preset{height:28px;padding:0 var(--space-3);font-size:13px}.generate-option{align-items:center;gap:var(--space-3);display:flex}.generate-option>span{width:48px;color:var(--text-muted);flex:none;font-size:14px}.generate-option .msr-seg{flex:1;min-width:0;display:flex}.generate-option .msr-seg button{height:28px;padding:0 var(--space-2);white-space:nowrap;flex:1;font-size:13px}.planner-foot{margin-top:calc(-1 * var(--radius-lg));padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--border-subtle)}.msr-btn-primary:disabled[aria-busy=true]{background:var(--accent);color:var(--on-accent);opacity:.85;cursor:progress}.spinner{width:var(--icon-sm);height:var(--icon-sm);box-sizing:border-box;border-radius:var(--radius-full);border:2px solid;border-top-color:#0000;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.msr-btn svg{width:var(--icon-sm);height:var(--icon-sm);flex:none}.stop-key{gap:var(--space-2) var(--space-4);color:var(--text-muted);flex-wrap:wrap;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.stop-key li{align-items:center;gap:6px;display:flex}.stop-key .stop-glyph{width:20px;height:20px}.near-glyph{width:20px;height:20px;fill:var(--route-near);stroke:var(--route-near-edge);stroke-width:2px;stroke-dasharray:3 2.4}.near-option{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.near-option .msr-seg,.stop-popover-body .msr-seg{padding:2px}.near-option .msr-seg button,.stop-popover-body .msr-seg button{height:calc(var(--control-sm) - 6px);padding:0 var(--space-2);white-space:nowrap;font-size:13px}.stop-marker-button{border-radius:var(--radius-full);cursor:grab;background:0 0;border:0;padding:0;display:block}.stop-popover .maplibregl-popup-content{padding:var(--space-3);border-radius:var(--radius-md);background:var(--bg-raised);box-shadow:var(--shadow-popover)}.stop-popover .maplibregl-popup-tip{display:none}.stop-popover-body{gap:var(--space-2);font-family:var(--font-sans);flex-direction:column;display:flex}.stop-popover-body .msr-seg{display:flex}.stop-popover-body .msr-seg button{flex:1}.stop-popover-title{color:var(--text-strong);margin:0;font-size:14px;font-weight:700}.stop-marker{cursor:grab;filter:drop-shadow(0 1px 2px #0000004d);display:block}.stop-marker .stop-glyph{display:block}.stop-marker-start .stop-glyph{width:34px;height:34px}.stop-marker-finish .stop-glyph{width:30px;height:30px}.stop-marker-stop .stop-glyph{width:26px;height:26px}.stop-glyph-start{fill:var(--marker-start);stroke:var(--route-casing);stroke-width:3px}.stop-glyph-play{fill:var(--indigo-900)}.stop-glyph-ring{fill:var(--route-casing);stroke:var(--route-line);stroke-width:2px;stroke-dasharray:3 2.4}.stop-glyph-finish{fill:var(--route-line);stroke:var(--route-casing);stroke-width:3px}.stop-glyph-flag{fill:var(--route-casing)}.stop-glyph-via{fill:var(--route-casing);stroke:var(--route-line);stroke-width:2.5px}.stop-glyph-number{font-family:var(--font-sans);fill:var(--route-line);font-size:12px;font-weight:800}.fine-tune{gap:var(--space-3);padding:var(--space-3);background:var(--bg-page);border-radius:var(--radius-md);flex-direction:column;display:flex}.fine-tune .msr-seg{scrollbar-width:none;align-self:stretch;overflow-x:auto}.fine-tune .msr-seg button{white-space:nowrap;padding:0 var(--space-2);flex:auto;font-size:14px}.fine-tune-changed:after{content:"";width:6px;height:6px;margin-left:var(--space-1);vertical-align:middle;border-radius:var(--radius-full);background:var(--marker-start);display:inline-block}.fine-tune-row{align-items:center;gap:var(--space-3);color:var(--text-body);grid-template-columns:4.5em 1fr auto;font-size:14px;display:grid}.fine-tune-row.is-off{color:var(--text-disabled)}.fine-tune-row.is-off input[type=range]{cursor:not-allowed;opacity:.4}.fine-tune-value{align-items:baseline;gap:var(--space-1);color:var(--text-muted);font-size:12px;display:flex}.fine-tune-value span{width:3.4em}.fine-tune-value input{box-sizing:border-box;width:4.2em;height:28px;padding:0 var(--space-2);font:inherit;font-variant-numeric:tabular-nums;text-align:right;color:var(--text-strong);background:var(--bg-field);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);appearance:textfield;font-size:14px;font-weight:700}.fine-tune-value input::-webkit-inner-spin-button{appearance:none}.fine-tune-block{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;font-size:14px;display:flex}.fine-tune-block b{color:var(--text-strong);display:block}.fine-tune-block span span{color:var(--text-muted);font-size:13px}.fine-tune-foot{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:13px;line-height:1.4;display:flex}.switch{appearance:none;background:var(--bg-field);border:1px solid var(--border-control);border-radius:var(--radius-full);cursor:pointer;flex:none;width:40px;height:24px;margin:0;transition:background-color .12s ease-out;position:relative}.switch:after{content:"";border-radius:var(--radius-full);background:var(--bg-thumb);width:18px;height:18px;box-shadow:var(--shadow-thumb);transition:transform .12s ease-out;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent);border-color:var(--accent)}.switch:checked:after{transform:translate(16px)}.route-result{gap:var(--space-3);padding:var(--space-4);background:var(--bg-selected);border-radius:var(--radius-md);flex-direction:column;display:flex}:root[data-theme=dark] .route-result{background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--border-selected)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .route-result{background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--border-selected)}}.route-result-metrics{justify-content:space-between;align-items:start;gap:var(--space-3);grid-auto-flow:column;display:grid}.route-result-details svg{transition:transform .12s ease-out}.route-result-details[aria-expanded=true] svg{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.route-result-details svg{transition:none}}.route-result-bars{gap:var(--space-4);flex-direction:column;display:flex}.route-result-bar-title{color:var(--text-muted);margin:0;font-size:13px;font-weight:400}.route-result-bars .msr-surf-bar span:only-child{border-radius:5px}:root{--breakdown-lit-likely:repeating-linear-gradient(-45deg, var(--breakdown-lit) 0 2px, var(--breakdown-likely) 2px 4px)}.route-result-likely{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:13px}@media (width<=639px){.planner{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:auto;max-height:55%;inset:auto 0 0}.planner-head{padding-block:var(--space-2)}.planner-body{padding-bottom:var(--space-4);margin-bottom:0}.planner-foot{padding-bottom:max(var(--space-4), env(safe-area-inset-bottom,0px));margin-top:0}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background:var(--bg-raised);color:var(--text-muted);font-family:var(--font-sans);border-top-left-radius:var(--radius-sm);font-size:12px}.maplibregl-ctrl-attrib a{color:var(--text-body)}fieldset.msr-seg,fieldset.planner-chips{min-inline-size:0;margin:0}fieldset.planner-chips{border:0;padding:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site{flex-direction:column;min-height:100%;display:flex}.site main{flex:1}.site-wrap{box-sizing:border-box;width:100%;max-width:1200px;padding-inline:var(--space-4);margin-inline:auto}.site h1,.site h2,.site h3{color:var(--text-strong);text-wrap:balance;margin:0}.site p{margin:0}.site a:not(.msr-btn,.msr-logo){color:var(--accent-text);text-underline-offset:3px}.site a.msr-btn{text-decoration:none}.site-nav{z-index:3;justify-content:space-between;position:sticky;top:0}.site-nav-end{align-items:center;gap:var(--space-3);display:flex}.hero{background:var(--map-land);height:max(520px,100svh - 60px);position:relative;overflow:hidden}.hero-map,.example-map{position:absolute;inset:0}.hero-in{pointer-events:none;align-items:center;height:100%;display:flex;position:relative}.hero-card{gap:var(--space-4);box-sizing:border-box;width:min(560px,100%);padding:var(--space-6);pointer-events:auto;background:var(--bg-surface);border:1px solid var(--border-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.site a.gold-cta{color:var(--indigo-900);background:var(--lamp-500)}.site a.gold-cta:hover{background:var(--lamp-400)}.site a.gold-cta:active{background:var(--lamp-600)}:root[data-theme=dark] .site a.gold-cta{background:var(--accent)}:root[data-theme=dark] .site a.gold-cta:hover{background:var(--accent-hover)}:root[data-theme=dark] .site a.gold-cta:active{background:var(--accent-pressed)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .site a.gold-cta{background:var(--accent)}:root:not([data-theme=light]) .site a.gold-cta:hover{background:var(--accent-hover)}:root:not([data-theme=light]) .site a.gold-cta:active{background:var(--accent-pressed)}}.hero-card h1{letter-spacing:-.035em;font-size:clamp(38px,5.2vw,60px);font-weight:800;line-height:1.02}.hero-lede{max-width:44ch;color:var(--text-muted);font-size:18px}.site a.hero-more{bottom:var(--space-5);align-items:center;gap:var(--space-2);height:var(--control-lg);padding:0 var(--space-4) 0 var(--space-5);color:var(--night-text);white-space:nowrap;background:var(--indigo-900);border-radius:var(--radius-full);box-shadow:var(--shadow-panel);font-size:16px;font-weight:700;text-decoration:none;display:inline-flex;position:absolute;left:50%;translate:-50%}.hero-more svg{width:var(--icon-md);height:var(--icon-md);fill:none;stroke:var(--lamp-400);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.site a.hero-more:hover{background:var(--indigo-800)}:root[data-theme=dark] .site a.hero-more{color:var(--indigo-900);background:var(--night-text)}:root[data-theme=dark] .site a.hero-more:hover{background:var(--white)}:root[data-theme=dark] .hero-more svg{stroke:var(--lamp-700)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .site a.hero-more{color:var(--indigo-900);background:var(--night-text)}:root:not([data-theme=light]) .site a.hero-more:hover{background:var(--white)}:root:not([data-theme=light]) .hero-more svg{stroke:var(--lamp-700)}}@media (prefers-reduced-motion:no-preference){.hero-more svg{animation:2s ease-in-out infinite hero-more-nudge}}@keyframes hero-more-nudge{50%{translate:0 3px}}@media (prefers-reduced-motion:no-preference){html:has(.hero){scroll-behavior:smooth}}.site-sect{padding-block:72px;scroll-margin-top:60px}.site-sect-head{gap:var(--space-2);max-width:640px;margin-bottom:var(--space-6);flex-direction:column;display:flex}.site-sect-head h2,.closer h2{letter-spacing:-.02em;font-size:clamp(28px,3.4vw,40px);font-weight:800;line-height:1.1}.site-sect-head p{color:var(--text-muted);font-size:18px}.benefits{gap:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.benefit{background:var(--bg-surface);border:1px solid var(--border-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.benefit-body{gap:var(--space-2);padding:var(--space-5) var(--space-5) var(--space-6);flex-direction:column;flex:1;display:flex}.benefit h3{letter-spacing:-.01em;font-size:24px;font-weight:800}.benefit-body p{color:var(--text-muted);font-size:16px}.benefit-map{aspect-ratio:16/11;background:var(--map-land);position:relative;overflow:hidden}.benefit-map.is-night{--route-line:var(--lamp-400);--route-casing:var(--indigo-900);--route-alt:var(--indigo-400);--bg-raised:var(--indigo-800);--text-strong:var(--night-text)}.benefit-key{bottom:var(--space-2);left:var(--space-2);flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex;position:absolute}.benefit-key li{height:26px;color:var(--text-strong);background:var(--bg-raised);border-radius:var(--radius-full);box-shadow:var(--shadow-thumb);align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.benefit-key i{background:var(--route-line);border-radius:2px;width:14px;height:4px;display:inline-block}.benefit-key .benefit-key-alt{border-top:2px dashed var(--route-alt);background:0 0;height:0}.benefit-cmp{gap:var(--space-3);padding-top:var(--space-3);margin:auto 0 0;display:grid}.benefit-cmp>div{align-items:center;gap:var(--space-3);grid-template-columns:88px minmax(0,1fr) auto;font-size:14px;display:grid}.benefit-cmp dt{color:var(--text-muted);font-weight:700}.benefit-cmp dd{display:contents}.benefit-cmp b{text-align:right;font-variant-numeric:tabular-nums;min-width:48px;color:var(--text-muted);font-weight:800}.benefit-cmp .is-ours dt,.benefit-cmp .is-ours b{color:var(--text-strong)}.benefit-bar{background:var(--bg-field);border-radius:var(--radius-full);height:12px;overflow:hidden}.benefit-bar i{background:var(--route-alt);border-radius:inherit;height:100%;display:block}.benefit-dots{flex-wrap:wrap;gap:6px;display:flex}.benefit-dots i{background:var(--route-alt);border-radius:50%;width:12px;height:12px}.is-ours .benefit-bar i,.is-ours .benefit-dots i{background:var(--logo-loop)}.closer{color:var(--night-text);background:var(--indigo-900);position:relative;overflow:hidden}.closer-in{justify-content:space-between;align-items:center;gap:var(--space-5) var(--space-7);flex-wrap:wrap;padding-block:64px;display:flex;position:relative}.closer h2{color:var(--night-text)}.closer h2 em{color:var(--lamp-400);font-style:normal}.closer p{max-width:560px;margin-top:var(--space-3);color:var(--indigo-400);font-size:18px}.closer-loop{fill:none;width:400px;stroke:var(--indigo-800);stroke-width:6.5px;stroke-linecap:round;position:absolute;top:-70px;right:max(40px,50% - 600px)}.site-foot{color:var(--text-muted);border-top:1px solid var(--border-subtle);padding-block:28px;font-size:14px}.site-foot-in{align-items:center;gap:var(--space-4) var(--space-6);flex-wrap:wrap;display:flex}.site-foot-links{gap:var(--space-5);display:flex}.site .site-foot-links a{color:var(--text-body);font-weight:700;text-decoration:none}.site .site-foot-links a:hover{color:var(--text-strong);text-decoration:underline}.site-foot-credits{margin-left:auto}.site .site-foot a{color:var(--text-muted)}.about{gap:var(--space-7);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);padding-block:64px 88px;display:grid}.about-prose{gap:var(--space-4);flex-direction:column;max-width:62ch;font-size:17px;display:flex}.about-prose h1{margin-bottom:var(--space-2);letter-spacing:-.03em;font-size:clamp(34px,4.4vw,52px);font-weight:800;line-height:1.05}.about-prose h2{margin-top:var(--space-4);font-size:22px;font-weight:800}.about-prose h3{margin-top:var(--space-2);font-size:18px;font-weight:700}.about-prose ul{gap:var(--space-3);flex-direction:column;padding-left:1.2em;display:flex}.about-side{gap:var(--space-3);padding:var(--space-5);background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;align-self:start;display:flex}.about-side h2{font-size:19px;font-weight:800}.privacy-short{gap:var(--space-2);flex-direction:column;padding-left:1.2em;display:flex}.about-hint{color:var(--text-muted);font-size:15px}.about-email{align-items:center;gap:var(--space-2);padding:6px 6px 6px var(--space-3);background:var(--bg-field);border-radius:var(--radius-md);font-weight:700;display:flex}.site .about-email a{text-overflow:ellipsis;min-width:0;color:var(--text-strong);flex:1;text-decoration:none;overflow:hidden}@media (width<=959px){.benefits{gap:var(--space-5);grid-template-columns:1fr}.about{grid-template-columns:1fr}}@media (width<=639px){.site-nav{padding-inline:var(--space-4)}.hero{flex-direction:column;height:auto;display:flex;overflow:visible}.hero-map{height:240px;position:relative}.site a.hero-more{display:none}.closer-loop{width:260px;top:auto;bottom:-90px;right:-110px}.hero-in{margin-top:calc(-1 * var(--space-7));padding-bottom:var(--space-4)}.hero-card{padding:var(--space-5);border-radius:var(--radius-lg)}.site-sect{padding-block:56px}}
