:root{--paper:#e9eef0;--grid:#c6d4da;--ink:#1f3a5f;--muted:#5b7083;--route:#b0197e;color-scheme:light}
*{box-sizing:border-box;margin:0}
html,body{min-height:100%}
body{background:var(--paper);color:var(--ink);font-family:"Avenir Next Condensed","Roboto Condensed","Arial Narrow",sans-serif-condensed,"Helvetica Neue",Arial,sans-serif;font-stretch:condensed}
main{min-height:100vh;max-width:1280px;margin:0 auto;padding:clamp(1.25rem,4vw,4rem);display:grid;gap:2rem;align-content:center}
h1{font-size:clamp(2.6rem,6vw,4.25rem);font-weight:600;line-height:1;letter-spacing:-.01em}
header p{margin-top:1.1rem;max-width:30ch;font-size:clamp(1.1rem,1.8vw,1.35rem);line-height:1.4}
footer{color:var(--muted);font-size:.95rem}
.chart{display:block;width:100%;height:auto;max-height:82vh}
@media (min-width:900px){
main{column-gap:clamp(2.5rem,5vw,5rem);grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:1fr auto;align-content:stretch}
header{align-self:center}
.chart{grid-column:2;grid-row:1/3;align-self:center}
footer{grid-column:1;grid-row:2}
}
.grid{fill:none;stroke:var(--grid);stroke-width:1}
.frame{fill:none;stroke:var(--ink);stroke-width:2}
.route{fill:none;stroke:var(--route);stroke-width:4;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.leg{fill:none;stroke:var(--route);stroke-width:3;stroke-dasharray:10 9}
.wpr{fill:var(--paper);stroke:var(--route);stroke-width:2.5}
.wps{fill:var(--route)}
.fix text{fill:var(--ink);font-size:26px;font-weight:700;letter-spacing:.04em}
.fix .yr{fill:var(--muted);font-size:20px;font-weight:500;letter-spacing:0}
@media (max-width:600px){.fix text{font-size:29px}.fix .yr{font-size:24px}}
@media (prefers-reduced-motion:no-preference){
.route{stroke-dashoffset:1;animation:draw 2.2s linear .3s forwards}
.fix,.leg{opacity:0;animation:show .45s ease-out forwards}
.f1{animation-delay:.3s}.f2{animation-delay:.72s}.f3{animation-delay:1.19s}.f4{animation-delay:1.64s}.f5{animation-delay:2.11s}.f6{animation-delay:2.5s}
.leg{animation-duration:.8s;animation-delay:2.6s}.end{animation-delay:3.1s}
}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes show{to{opacity:1}}
