:root{color-scheme:dark;--bg:#10141b;--panel:#181e28;--line:#303846;--ink:#eef2f7;--muted:#a5b0c0;--a:#ffb58b;--b:#7de1dc}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}a{color:inherit}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,svg circle:focus-visible{outline:3px solid var(--b);outline-offset:4px}.site-nav{height:60px;padding:0 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#0c1016}.brand{display:flex;align-items:center;text-decoration:none;font-weight:800;font-size:17px;gap:5px}.brand-icon{background:#294aff;border-radius:7px;display:grid;place-items:center;width:27px;height:27px;margin-right:5px}.dim{opacity:.5}.site-nav nav{display:flex;align-self:stretch;gap:24px;font-size:13px}.site-nav nav a{display:flex;align-items:center;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}.site-nav nav a[aria-current]{border-color:var(--b);color:var(--ink)}main{max-width:1160px;margin:auto;padding:0 30px}.intro{display:flex;justify-content:space-between;align-items:center;padding:58px 0 38px;gap:50px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:.16em;margin:0 0 12px;color:var(--muted)}.tag{font-size:9px;letter-spacing:.08em;margin-left:7px;border:1px solid #4f5e73;padding:3px 6px;border-radius:4px;color:var(--b)}h1{font-size:clamp(42px,5.6vw,70px);line-height:1.03;letter-spacing:-.055em;margin:15px 0 22px;font-weight:760}h1 span{color:var(--b)}.lede{font-size:16px;max-width:500px;color:var(--muted);margin:0;line-height:1.65}.ticket{transform:rotate(7deg);border:1px solid #536072;background:linear-gradient(140deg,#26313d,#18202a);border-radius:17px;padding:25px 28px;min-width:230px;box-shadow:0 20px 60px #0004;color:#ced6e1}.ticket>span{display:block;font-size:10px;letter-spacing:.12em}.ticket strong{font-size:64px;display:block;color:var(--a);letter-spacing:-.05em;white-space:nowrap}.ticket strong i{font-style:normal;color:var(--b);font-weight:400}.ticket-dots{height:18px;margin-top:22px;border-top:1px dashed #667080;background:repeating-linear-gradient(90deg,transparent 0 3px,#748293 3px 4px,transparent 4px 7px);background-clip:content-box;padding-top:8px}.controls,.race-panel,.chart-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:25px}.section-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}h2,h3,p{overflow-wrap:anywhere}h2{font-size:19px;letter-spacing:-.025em;margin:0}h3{font-size:18px;letter-spacing:-.025em;margin:0}.text-button{color:var(--b);border:0;background:none;font-size:12px;font-weight:650;padding:8px 0}.fields{display:grid;gap:15px;margin-bottom:16px}.route-fields{grid-template-columns:1fr 2fr 1fr}.stop-fields{grid-template-columns:1fr 20px 1fr;align-items:end}.arrow{color:var(--muted);padding-bottom:12px}.date-fields{grid-template-columns:1.2fr 1.2fr 1fr 1fr 1.2fr;align-items:end;margin-bottom:0}label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:650;color:var(--muted);min-width:0}select,input{width:100%;height:44px;background:#10151d;border:1px solid #3b4555;border-radius:7px;color:var(--ink);padding:0 10px;font-size:13px;min-width:0}select{padding-right:22px}label b{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:4px;color:#10141b;margin-right:4px}.date-a b{background:var(--a)}.date-b b{background:var(--b)}.primary{height:44px;border:0;border-radius:7px;background:var(--b);color:#102421;font-weight:750;font-size:13px;white-space:nowrap}.primary span{margin-left:10px}.secondary{background:#202936;color:var(--ink);border:1px solid #48556a;border-radius:7px;padding:9px 13px;font-size:12px;white-space:nowrap}.fine{font-size:12px;color:var(--muted);line-height:1.6;margin:10px 0 0}.muted{color:var(--muted);font-size:13px}.mono{font-variant-numeric:tabular-nums}#status{font-size:13px;color:var(--muted);margin:20px 0}#status.error{color:#ffb5a5;border:1px solid #704940;background:#342420;padding:15px;border-radius:8px}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:42px 0 22px}.result-heading h2{font-size:32px;letter-spacing:-.04em}.result-heading .eyebrow{color:var(--b)}.warnings{background:#2a261e;border:1px solid #665537;color:#ebd3aa;padding:14px 18px;border-radius:10px;font-size:12px;margin-bottom:20px}.warnings p{margin:4px 0}.race-panel{padding-bottom:18px;overflow:hidden}.race-meta{display:flex;justify-content:space-between;gap:40px;margin:22px 0 0;font-size:11px;color:var(--muted)}.race-meta span{max-width:45%}.race-meta span:last-child{text-align:right}#race{display:block;width:100%;height:auto;min-height:120px}.a{color:var(--a);fill:var(--a)}.b{color:var(--b);fill:var(--b)}.bus .window{fill:#17212a}.bus circle{fill:#111820;stroke:#8c9bae;stroke-width:2}.lane-label{font-size:23px;font-weight:800}.finish{font-size:18px;font-weight:650}.race-footer{display:flex;gap:24px;align-items:center;font-size:12px;color:var(--muted);flex-wrap:wrap}.race-footer>span{display:flex;align-items:center;gap:7px}.race-footer>span:last-child{margin-left:auto}.swatch{display:inline-block;width:9px;height:9px;border-radius:50%}.swatch.a{background:var(--a)}.swatch.b{background:var(--b)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0 26px}.stat-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:21px}.stat-card>p:first-child{font-size:11px;letter-spacing:.04em;margin:0 0 13px}.stat-card strong{font-size:40px;line-height:1.2;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.stat-card div>span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.difference{background:#202936;color:var(--ink)}.chart-panel{padding:26px}.chart-panel .eyebrow{font-size:10px}.chart-panel svg{width:100%;height:auto;display:block}.chart-panel svg text{font-size:12px;fill:var(--muted);font-family:inherit}.chart-panel svg .tick{stroke:#303b4a}.chart-panel svg circle{stroke:var(--panel);stroke-width:2;cursor:help}.table-scroll{overflow:auto}table{width:100%;text-align:left;font-size:12px;border-collapse:collapse;margin-top:14px}th,td{padding:9px 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}caption{text-align:left;color:var(--muted);padding:10px}summary{font-size:12px;color:var(--b);cursor:pointer;margin-top:15px}.method{margin:56px 0 32px;border-top:1px solid var(--line);padding-top:30px}.method h2{font-size:22px}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:26px 0}.method-number{font-size:12px;color:var(--b);font-variant-numeric:tabular-nums}.method h3{font-size:14px;margin:10px 0}.method p{font-size:12px;color:var(--muted);line-height:1.7}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:24px 0 35px;color:var(--muted);font-size:11px}footer a{text-decoration:none}[hidden]{display:none!important}@media(max-width:760px){main{padding:0 18px}.site-nav{padding:0 15px;height:56px}.site-nav nav{gap:15px;font-size:12px}.brand{font-size:14px}.brand-icon{width:23px;height:23px}.intro{padding:32px 0 27px;gap:12px}.ticket{display:none}.lede{font-size:14px}.controls,.race-panel,.chart-panel{padding:18px}.route-fields{grid-template-columns:1fr 1fr}.route-fields label:nth-child(2){grid-column:1/-1;grid-row:2}.stop-fields{grid-template-columns:1fr;gap:12px}.arrow{display:none}.date-fields{grid-template-columns:1fr 1fr}.primary{grid-column:1/-1}.result-heading{align-items:flex-start;flex-direction:column;margin-top:30px}.result-heading h2{font-size:28px}.cards{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:16px}.stat-card strong{font-size:34px}.difference{grid-column:1/-1}.difference div{display:flex;align-items:baseline;gap:12px}.difference div>span{display:inline}.section-top{gap:10px;align-items:flex-start}.section-top h2{font-size:17px}.race-panel h3{font-size:16px}.race-panel .fine{font-size:11px}.race-footer{gap:9px;font-size:11px}.race-footer>span:last-child{margin-left:0;width:100%}.chart-panel .section-top{flex-direction:column}.chart-panel svg text{font-size:15px}.method-grid{grid-template-columns:1fr;gap:15px}.method-grid p{margin-top:5px}.method-grid h3{margin-top:3px}.method-number{float:right}footer{flex-wrap:wrap}footer span{order:3;width:100%}}

#race-map{height:430px;margin:18px 0 0;border-radius:10px;background:#202936;z-index:0}.race-marker{background:none;border:0}.race-marker span{display:block;background:var(--a);color:#10141b;border:2px solid #fff;border-radius:7px;text-align:center;font-size:14px;font-weight:800;box-shadow:0 3px 10px #0008;white-space:nowrap}.race-marker.b span{background:var(--b)}.finish-times{display:flex;justify-content:space-between;gap:10px;min-height:30px;font-size:13px;font-weight:700}.chart-scroll{overflow-x:auto}#chart{min-width:620px}#chart-legend{margin:16px 0}#chart-legend>span:last-child{margin-left:0}#chart-tooltip{min-height:20px;color:var(--ink)}@media(max-width:760px){#race-map{height:350px}#chart-legend>span{width:100%}.finish-times{font-size:11px}}
.chart-panel svg circle{pointer-events:all}

#share-dialog{width:min(500px,calc(100% - 32px));max-height:90vh;overflow:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 24px 100px #0008}#share-dialog::backdrop{background:#060b12bb;backdrop-filter:blur(4px)}#share-summary{font-size:14px;line-height:1.6}.share-link-label{margin:22px 0 16px}.share-actions{display:flex;gap:12px;flex-wrap:wrap}.share-actions .primary{padding:0 20px}#share-status{min-height:20px}

.pace-readout{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:12px;font-size:12px;min-height:40px}.pace-readout span:last-child{text-align:right}#segment-table td:first-child{min-width:220px;max-width:420px}#race-map .leaflet-popup-content{color:#17212a;font-size:13px;line-height:1.6}@media(max-width:760px){.pace-readout{grid-template-columns:1fr;gap:5px}.pace-readout span:last-child{text-align:left}}
