:root{color-scheme:light;--bg: #ffffff;--ink: #000000;--ink-mid: #7a7a7a;--line: rgba(0, 0, 0, .2);--line-soft: rgba(0, 0, 0, .08);--line-faint: rgba(0, 0, 0, .04);--font-mono: "IBM Plex Mono", "SFMono-Regular", "SF Mono", "Cascadia Mono", "Liberation Mono", "Menlo", monospace;--layout-margin-x: 10vw;--layout-margin-y: 5vh;--rail-column-width: 15vw;--main-column-width: 65vw;--title-area-height: 11.5vh;--summary-area-height: 6.5vh;--map-area-height: 67vh;--legend-area-height: 7vh;--rail-visible-rows: 11;--rail-row-pitch: 44px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-mono)}body{overflow:hidden}button,input{font:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit}.page-shell{width:100vw;height:100vh;padding:var(--layout-margin-y) var(--layout-margin-x);position:relative;overflow:hidden}.composition-layer{width:100%;height:100%;position:relative;z-index:1}.sprite-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:6}.click-sprite{position:absolute;width:var(--sprite-size, 14px);height:var(--sprite-size, 14px);color:var(--ink);opacity:0;transform:translate(-50%,-50%);transform-origin:center center;will-change:transform,opacity}.click-sprite-glyph{display:block;width:100%;height:100%;fill:currentColor;shape-rendering:crispEdges;image-rendering:pixelated}.layout{display:grid;grid-template-columns:var(--rail-column-width) var(--main-column-width);column-gap:0;height:100%;width:100%}.rail-column{display:flex;align-items:stretch;justify-content:center;min-height:0;width:100%;height:100%}.focus-rail-shell{width:100%;height:100%;display:grid;grid-template-rows:auto auto auto;justify-items:stretch;align-content:center;transition:opacity .32s ease}.focus-rail-shell.is-pristine-hidden,.state-summary.is-pristine-hidden,.map-stage.is-pristine-hidden,.state-labels.is-pristine-hidden{opacity:0;visibility:hidden;pointer-events:none}.focus-rail-shell.is-pristine-entered,.state-summary.is-pristine-entered,.map-stage.is-pristine-entered,.state-labels.is-pristine-entered{visibility:visible;transition:opacity .42s cubic-bezier(.2,.92,.32,1),transform .42s cubic-bezier(.2,.92,.32,1)}.focus-rail-shell.is-intro-ready{pointer-events:none}.rail-control-stack{width:100%;display:flex;flex-direction:column;align-items:center}.rail-control-stack-top{gap:6px;margin-bottom:0}.rail-control-stack-bottom{gap:6px;margin-top:0}.rail-arrow{display:block;position:relative;width:30px;height:26px;padding:0;border:0;transition:opacity .18s ease,transform .18s ease,filter .18s ease;cursor:pointer}.rail-arrow.is-intro-hidden{opacity:0;transform:translateY(-8px);pointer-events:none}.rail-arrow.is-intro-entered{transition:opacity .26s cubic-bezier(.2,.92,.32,1),transform .32s cubic-bezier(.2,.92,.32,1),filter .18s ease}.rail-arrow:before{content:"";position:absolute;left:50%;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;transform:translate(-50%)}.rail-arrow[data-arrow=up-single]:before{top:5px;border-bottom:12px solid var(--ink)}.rail-arrow-top:before{top:3px;border-bottom:12px solid var(--ink)}.rail-arrow-top:after,.rail-arrow-bottom:after{content:"";position:absolute;left:50%;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;transform:translate(-50%)}.rail-arrow-top:after{top:11px;border-bottom:12px solid var(--ink)}.rail-arrow[data-arrow=down-single]:before{bottom:5px;border-top:12px solid var(--ink)}.rail-arrow-bottom:before{bottom:3px;border-top:12px solid var(--ink)}.rail-arrow-bottom:after{bottom:11px;border-top:12px solid var(--ink)}.rail-arrow.is-dimmed{opacity:.18}.rail-arrow:not(.is-dimmed):hover,.rail-arrow:not(.is-dimmed):focus-visible{transform:scale(1.05);filter:opacity(.8);outline:none}.rail-arrow-up{margin-bottom:-1px}.rail-arrow-down{margin-top:-1px}.focus-rail-window{position:relative;width:100%;height:min(calc(var(--rail-row-pitch) * var(--rail-visible-rows) + 4px),64vh);overflow:hidden;outline:none}.focus-rail-track{position:relative;width:100%;transition:filter .32s ease;will-change:filter,transform}.focus-rail-track.is-jumping{filter:blur(.12px)}.focus-rail-track[data-motion=page]{animation:rail-track-page .34s steps(5,end)}.focus-rail-track[data-motion=jump]{animation:rail-track-jump .52s steps(8,end)}.rail-row{position:absolute;left:0;width:100%;height:var(--rail-row-pitch);overflow:hidden;isolation:isolate;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:14px;padding:0 12px;border-radius:0;cursor:pointer;text-align:left;transition:color .18s ease}.rail-row:before,.rail-row:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.rail-row:before{background:var(--ink);transform:scaleX(0);transform-origin:left center;opacity:0;z-index:0}.rail-row:after{width:16px;right:auto;background:var(--ink);opacity:0;z-index:0}.rail-row>*{position:relative;z-index:1}.rail-row.is-intro-hidden{opacity:0;transform:translateY(calc(var(--rail-row-y, 0px) - 6px));pointer-events:none}.rail-row.is-intro-entered{transition:opacity .28s cubic-bezier(.18,.9,.34,1),transform .34s cubic-bezier(.18,.9,.34,1),background-color .18s ease,color .18s ease}.rail-row:disabled{cursor:default;pointer-events:none}.rail-row.is-focused{color:var(--bg)}.rail-row.is-focused:before{transform:scaleX(1);opacity:1}.rail-row.is-intro-swiping{color:var(--bg)}.rail-row.is-intro-swiping:before{opacity:1;animation:rail-row-select-swipe var(--rail-selection-swipe-ms, .32s) cubic-bezier(.22,.9,.32,1) forwards}.rail-row.is-intro-swiping:after{opacity:1;animation:rail-row-cursor-sweep var(--rail-selection-swipe-ms, .32s) cubic-bezier(.22,.9,.32,1) forwards}.rail-row:not(.is-focused):hover,.rail-row:not(.is-focused):focus-visible{background:var(--line-faint);outline:none}.rail-count{font-variant-numeric:tabular-nums}.rail-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-column{display:grid;grid-template-rows:minmax(0,var(--title-area-height)) minmax(0,var(--map-area-height)) minmax(0,var(--legend-area-height));min-height:0;width:100%;height:100%;row-gap:0}.intro{min-height:0;display:flex;flex-direction:column;justify-content:flex-start;gap:10px;padding:1vh 0 0 2.2%}.intro-small{margin:0;font-size:clamp(1rem,1.15vw,1.26rem);letter-spacing:.02em;line-height:1.16}.intro-small.is-intro-hidden,.title-prefix.is-intro-hidden,.search-shell.is-intro-hidden,.title-question.is-intro-hidden,.state-summary-card.is-intro-hidden,.state-summary-count.is-intro-hidden,.state-summary-label.is-intro-hidden{opacity:0;transform:translateY(7px)}.search-shell,.title-question,.state-summary-card,.state-summary-count,.state-summary-label{transition:opacity .36s cubic-bezier(.2,.92,.32,1),transform .42s cubic-bezier(.2,.92,.32,1)}.title-question{display:inline-block}.search-shell.is-intro-entered,.title-question.is-intro-entered,.state-summary-card.is-intro-entered,.state-summary-count.is-intro-entered,.state-summary-label.is-intro-entered{opacity:1;transform:translateY(0)}.title-line{margin:0;display:flex;flex-wrap:nowrap;align-items:baseline;gap:.12em;font-size:clamp(1.08rem,1.72vw,2rem);font-weight:400;line-height:1.06;letter-spacing:-.03em;white-space:nowrap;min-width:0}.title-prefix{font-size:.86em}.search-shell{position:relative;display:inline-flex;align-items:baseline;max-width:min(56vw,26ch);min-width:0}.search-entrance-text{position:absolute;top:.07em;right:.28em;bottom:.17em;left:.18em;display:flex;align-items:center;max-width:calc(100% - .46em);overflow:hidden;color:var(--ink);line-height:1.14;pointer-events:none;white-space:nowrap}.title-search{flex:0 1 auto;width:clamp(14ch,calc(var(--search-chars, 20) * .7ch),26ch);min-width:14ch;max-width:100%;min-height:1.26em;padding:.07em .28em .17em .18em;border:0;border-bottom:2px solid var(--ink);background:#00000008;color:var(--ink);font-size:inherit;font-weight:400;line-height:1.14;outline:none;vertical-align:baseline;caret-color:transparent;transition:background-color .18s ease,box-shadow .22s ease,transform .26s ease}.state-summary{position:absolute;top:clamp(12px,1.9vw,22px);left:clamp(12px,1.9vw,22px);z-index:3;display:flex;align-items:flex-start;justify-content:flex-start;padding:0;transition:opacity .32s cubic-bezier(.2,.92,.32,1),transform .36s cubic-bezier(.2,.92,.32,1)}.state-summary-card{display:inline-grid;grid-template-rows:auto auto;align-items:center;align-content:center;justify-content:center;width:clamp(72px,6.4vw,94px);aspect-ratio:1 / 1;padding:6px 7px 5px;background:var(--ink);color:var(--bg);line-height:.94;letter-spacing:.01em;text-align:center;box-shadow:4px 4px #0000001f}.state-summary-card.is-refreshing{animation:state-summary-refresh .3s steps(4,end)}.state-summary-count{align-self:end;font-size:clamp(1.28rem,2.18vw,2.12rem);line-height:.84;font-variant-numeric:tabular-nums}.state-summary-label{align-self:start;margin-top:1px;font-size:clamp(.5rem,.68vw,.64rem);letter-spacing:.08em;text-transform:lowercase}.title-search:hover,.title-search:focus{background:#00000014}.search-shell.is-settling .title-search{animation:search-settle .36s cubic-bezier(.22,1,.36,1)}.search-shell.is-entrance-active .title-search{color:transparent;pointer-events:none}.search-shell.is-entrance-active .title-search::placeholder{color:transparent}.title-caret{position:absolute;top:.18em;bottom:.24em;right:.22em;width:1.5px;background:var(--ink);opacity:.75;pointer-events:none;animation:phosphor-caret 1.05s steps(1,end) infinite;box-shadow:0 0 3px #0000002e}.search-shell:hover .title-caret,.search-shell:focus-within .title-caret{opacity:1}.search-shell.is-entrance-active .title-caret{opacity:0}.title-search::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.map-stage{min-height:0;display:flex;align-items:stretch;justify-content:stretch;padding:0;transition:opacity .42s cubic-bezier(.2,.92,.32,1),transform .42s cubic-bezier(.2,.92,.32,1)}.map-figure{width:100%;min-height:0;display:flex;align-items:stretch;justify-content:center}.map-frame{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;position:relative;padding:.5% .35%;overflow:visible}.map-svg{width:100%;height:100%;max-width:100%;max-height:100%;display:block;overflow:visible;flex:0 0 auto;transform:translateZ(0);transform-origin:center center;transition:opacity .28s ease,transform .42s ease}.map-svg.is-settling{animation:content-settle .38s cubic-bezier(.2,.92,.32,1)}.map-svg.is-entrance-active .highlighted-state,.map-svg.is-entrance-active .state-borders,.map-svg.is-entrance-active .highlight-borders{opacity:0}.state-labels{width:100%;min-width:0;min-height:0;display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:flex-start;justify-self:start;column-gap:1.1vw;row-gap:.35vh;padding:0 2.2%;overflow:hidden;transition:opacity .32s cubic-bezier(.2,.92,.32,1),transform .36s cubic-bezier(.2,.92,.32,1)}.state-labels.is-settling{animation:content-settle .32s cubic-bezier(.2,.92,.32,1)}.state-label{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:.84rem;line-height:1;opacity:.74;color:#000000c7;font-weight:400;letter-spacing:.01em;transform:translateY(0) scale(1);transform-origin:left center;transition:opacity .18s ease,transform .18s ease,color .18s ease,font-weight .18s ease;outline:none}.state-label-bullet{width:6px;height:6px;background:var(--ink);flex:0 0 auto;transform:scale(1);transform-origin:center;opacity:.78;transition:transform .18s ease,opacity .18s ease}.base-state-shape{fill:var(--bg)}.entrance-state-border{fill:none;stroke:var(--ink);stroke-width:.9;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center center}.highlighted-state-fill{fill:var(--ink);fill-opacity:1;stroke:none;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill-opacity .18s ease}.highlighted-state-outline{fill:none;stroke:var(--ink);stroke-width:.9;stroke-linejoin:round;vector-effect:non-scaling-stroke}.hovered-state-overlay{transform-box:fill-box;transform-origin:center center;transform:translateY(-.6px) scale(1.008);opacity:0;transition:transform .14s cubic-bezier(.16,.84,.32,1),opacity .12s ease-out;pointer-events:auto}.hovered-state-overlay.is-lifted{transform:translateY(-4.5px) scale(1.034);opacity:1}.hovered-state-overlay.is-exiting{transform:translateY(-.8px) scale(1.012);opacity:0;transition:transform .22s cubic-bezier(.28,.08,.32,1),opacity .19s ease-in;pointer-events:none}.hovered-state-overlay-body{transform-box:fill-box;transform-origin:center center}.hovered-state-overlay.is-lifted .hovered-state-overlay-body{animation:state-lifted-drift 2.6s ease-in-out .18s infinite alternate}.hovered-state-fill{fill:var(--ink);opacity:1;stroke:var(--ink);stroke-width:1.25;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 10px 13px rgba(0,0,0,.22)) drop-shadow(0 18px 24px rgba(0,0,0,.1))}.hovered-state-outline{fill:none;stroke-width:2.35;stroke-linejoin:round;stroke-linecap:butt;vector-effect:non-scaling-stroke;opacity:1;stroke-dasharray:8 8}.hovered-state-outline-white{stroke:var(--bg);animation:state-outline-marquee-white 1.15s linear infinite}.hovered-state-outline-black{stroke:var(--ink);animation:state-outline-marquee-black 1.15s linear infinite}.state-labels:has(.state-label:hover) .state-label:not(:hover),.state-labels:has(.state-label:focus-visible) .state-label:not(:focus-visible),.state-labels:has(.state-label.is-hovered) .state-label:not(.is-hovered){opacity:.46}.state-label.is-hovered,.state-label:hover,.state-label:focus-visible{opacity:1;color:var(--ink);font-weight:500;transform:translateY(-1px) scale(1.045)}.state-label.is-hovered .state-label-bullet,.state-label:hover .state-label-bullet,.state-label:focus-visible .state-label-bullet{transform:scale(1.22);opacity:1;animation:label-bullet-pulse 1.7s ease-in-out infinite}.highlight-borders{fill:none;stroke:var(--bg);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:butt}.state-borders{fill:none;stroke:var(--ink);stroke-width:.9;vector-effect:non-scaling-stroke}.error-banner{margin-top:20px;padding:12px 0;border-top:1px solid var(--ink);font-size:.9rem}@keyframes phosphor-caret{0%,46%{opacity:.9}47%,to{opacity:.16}}@keyframes state-lifted-drift{0%{transform:translateY(0) scale(1)}to{transform:translateY(-.35px) scale(1.006)}}@keyframes state-outline-marquee-white{0%{stroke-dashoffset:0}to{stroke-dashoffset:-16}}@keyframes state-outline-marquee-black{0%{stroke-dashoffset:-8}to{stroke-dashoffset:-24}}@keyframes label-bullet-pulse{0%,to{transform:scale(1.14);opacity:.92}50%{transform:scale(1.28);opacity:1}}@keyframes search-settle{0%{transform:translateY(1px) scaleX(.996);box-shadow:0 0 #0000}45%{transform:translateY(0) scaleX(1.002);box-shadow:0 0 10px #0000000f}to{transform:translateY(0) scaleX(1);box-shadow:0 0 #0000}}@keyframes rail-row-select-swipe{0%{transform:scaleX(.045);opacity:1}26%{transform:scaleX(.12);opacity:1}to{transform:scaleX(1);opacity:1}}@keyframes rail-row-cursor-sweep{0%{transform:translate(0);opacity:1}82%{transform:translate(calc(100% - 16px));opacity:1}to{transform:translate(calc(100% - 16px));opacity:0}}@keyframes content-settle{0%{opacity:.76;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes rail-track-page{0%{transform:translate(0) skew(0);filter:none}32%{transform:translate(-2px) skew(-.5deg);filter:contrast(1.03)}49%{transform:translate(-2px) skew(-.5deg);filter:contrast(1.03)}50%{transform:translate(2px) skew(.5deg);filter:contrast(1.05)}82%{transform:translate(2px) skew(.5deg);filter:contrast(1.05)}to{transform:translate(0) skew(0);filter:none}}@keyframes rail-track-jump{0%{transform:translate(0);filter:contrast(1)}18%{transform:translate(-2px);filter:contrast(1.03)}42%{transform:translate(2px);filter:contrast(1.06)}68%{transform:translate(-1px);filter:contrast(1.03)}to{transform:translate(0);filter:none}}@keyframes state-summary-refresh{0%{transform:translate(0);filter:none}24%{transform:translate(-1px,1px);filter:contrast(1.05)}52%{transform:translate(1px,-1px);filter:contrast(1.08)}to{transform:translate(0);filter:none}}@media (max-width: 980px){.focus-rail-window{height:min(calc(var(--rail-row-pitch) * var(--rail-visible-rows) + 4px),64vh)}.title-line{gap:.1em;font-size:clamp(.86rem,1.34vw,1.18rem)}.intro-small{margin-bottom:.8vh;font-size:clamp(.7rem,1.05vw,.9rem)}.title-search{width:clamp(12ch,calc(var(--search-chars, 20) * .56ch),20ch);min-width:12ch}.state-labels{column-gap:1vw;row-gap:.2vh}.state-label{font-size:clamp(.6rem,.9vw,.76rem)}}
