@font-face{font-family:Big Shoulders Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/big-shoulders-vietnamese-opsz-normal-CcSE2nLi.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Big Shoulders Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/big-shoulders-latin-ext-opsz-normal-Ctdd2Rbx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/big-shoulders-latin-opsz-normal-D0XSQJTG.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Albert Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/albert-sans-latin-ext-wght-normal-BAo4qCk1.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Albert Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/albert-sans-latin-wght-normal-BJ0ssN8N.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Reddit Mono Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/reddit-mono-vietnamese-wght-normal-CEcALQr8.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Reddit Mono Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/reddit-mono-latin-ext-wght-normal-DCLCrQhA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Reddit Mono Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/reddit-mono-latin-wght-normal-BvKtqVOO.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#020515;--ground-2:#050d22;--land:#111d36;--rule:#2f3d58;--ink:#e8f2f8;--ink-2:#b9cad6;--ink-3:#90a4b6;--lit-0:#1b7791;--lit-1:#2198b2;--lit-2:#34bad2;--lit-3:#73ddec;--lit-4:#cefafe;--glass-ceiling:68.11%;--display:"Big Shoulders Variable", "Arial Narrow", sans-serif;--text:"Albert Sans Variable", system-ui, sans-serif;--mono:"Reddit Mono Variable", ui-monospace, monospace;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:40px;--s-7:64px;--s-8:112px;--gutter:clamp(16px, 4vw, 48px);--measure:68ch;--wide:1240px;--hair:1px;--tap:44px;--f-xs:.8125rem;--f-sm:.875rem;--f-md:1rem;--f-lg:1.1875rem;--f-xl:1.5rem;--f-2xl:clamp(2.25rem, 5vw, 3.5rem);--f-grade:clamp(8rem, 30vw, 17rem);--t-fast:.2s;--t-draw:.7s;--ease-out:cubic-bezier(.2, .7, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root{--ground:lab(1.41807% 1.15448 -7.7264);--ground-2:lab(3.79096% 1.82402 -14.1156);--land:lab(10.8864% 1.32221 -17.7734);--rule:lab(25.4604% .0432581 -18.0122);--ink:lab(94.8178% -2.62666 -4.36351);--ink-2:lab(80.3127% -3.9548 -8.17645);--ink-3:lab(66.3533% -4.40323 -11.8785);--lit-0:lab(45.8811% -19.6791 -22.0624);--lit-1:lab(57.6887% -25.6485 -23.2521);--lit-2:lab(69.495% -30.8726 -22.5678);--lit-3:lab(82.2772% -29.1926 -17.0408);--lit-4:lab(95.2017% -13.875 -6.74298)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--ground);color:var(--ink);font:400 var(--f-md)/1.55 var(--text);font-kerning:normal;margin:0}a{color:var(--ink);-webkit-text-decoration-color:var(--lit-1);text-decoration-color:var(--lit-1);text-underline-offset:.2em;text-decoration-thickness:var(--hair)}a:hover{-webkit-text-decoration-color:var(--lit-4);text-decoration-color:var(--lit-4)}:focus-visible{outline:2px solid var(--lit-4);outline-offset:3px}b{font-weight:650}code{font-family:var(--mono);color:var(--ink-2);overflow-wrap:anywhere;font-size:.92em}.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{left:var(--s-4);top:calc(-1 * var(--s-8));background:var(--ink);color:var(--ground);padding:var(--s-2) var(--s-4);z-index:2;position:absolute}.skip:focus{top:var(--s-4)}.bar{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-5);padding:var(--s-3) var(--gutter);border-bottom:var(--hair) solid var(--rule);flex-wrap:wrap;display:flex}.mark{font:800 var(--f-xl)/1 var(--display);text-transform:uppercase;letter-spacing:.06em;min-height:var(--tap);align-items:center;text-decoration:none;display:inline-flex}.nav,.foot-nav{gap:0 var(--s-5);flex-wrap:wrap;display:flex}.nav a,.foot-nav a{min-height:var(--tap);font-size:var(--f-sm);color:var(--ink-2);align-items:center;font-weight:550;text-decoration:none;display:inline-flex}.foot-nav a{min-width:var(--tap)}.skip{min-height:var(--tap);align-items:center;display:inline-flex}.nav a:hover,.foot-nav a:hover{color:var(--ink)}.foot{border-top:var(--hair) solid var(--rule);padding:var(--s-6) var(--gutter) var(--s-7);color:var(--ink-3);font-size:var(--f-sm)}.foot>*{max-width:var(--wide);margin-inline:auto}.credits{max-width:var(--measure);margin-left:0}.foot .credits a{color:var(--ink-2)}.copy{margin-top:var(--s-4);font-family:var(--mono);font-size:var(--f-sm)}.hero{gap:var(--s-5) var(--s-6);padding:var(--s-5) var(--gutter) var(--s-6);align-items:start;max-width:1600px;margin-inline:auto;display:grid}@media (min-width:1100px){.hero{grid-template-columns:minmax(22rem,27rem) 1fr;align-items:center;min-height:calc(100svh - 70px)}}.eyebrow{font:600 var(--f-sm)/1.3 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0}.score{margin-top:var(--s-3)}.grade{font:800 var(--f-grade)/.8 var(--display);font-variation-settings:"opsz" 72;letter-spacing:-.01em;transition:opacity var(--t-fast) linear;align-items:baseline;margin:0;display:flex}.grade-pct{color:var(--ink-2);margin-left:.04em;font-size:.42em}.score[data-state=idle] .grade-num,.score[data-state=pending] .grade-num{color:var(--ink-3)}.score.is-swapping .grade{opacity:.25}.grade-of{margin:var(--s-2) 0 0;font:700 var(--f-xl)/1.15 var(--display);text-transform:uppercase;letter-spacing:.03em}.grade-detail{margin:var(--s-2) 0 0;font-size:var(--f-sm);color:var(--ink-2);max-width:36ch}.grade-detail .num{color:var(--ink)}.score[data-state=faster] .grade-num{color:var(--ink);-webkit-text-decoration:line-through var(--lit-4) .06em;text-decoration:line-through var(--lit-4) .06em}.progress{margin-top:var(--s-5)}.progress-ticks{width:100%;height:10px;display:block}.progress-ticks rect{fill:var(--rule)}.progress-ticks rect.is-measuring{fill:var(--ink)}.progress-ticks rect[class^=lit-]{fill:var(--c)}.progress-ticks rect.is-blocked{fill:var(--ground-2);stroke:var(--rule);stroke-width:1px;vector-effect:non-scaling-stroke}.status{margin:var(--s-2) 0 0;font:400 var(--f-sm)/1.45 var(--mono);color:var(--ink-2);min-height:2.9em}.status b{color:var(--ink);font-weight:600}.from{margin-top:var(--s-4)}.from-line{margin:0}.from-how{color:var(--ink-3);font-size:var(--f-sm)}.from-actions{gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.act{min-height:var(--tap);padding:0 var(--s-4);background:var(--ground-2);color:var(--ink);border:var(--hair) solid var(--rule);font:600 var(--f-sm)/1 var(--text);letter-spacing:.02em;cursor:pointer;border-radius:2px}.act:hover:not(:disabled){border-color:var(--lit-3)}.act:disabled{color:var(--ink-3);cursor:not-allowed}.act[aria-expanded=true]{border-color:var(--lit-4)}.picker{margin-top:var(--s-3)}.picker label{font-size:var(--f-sm);color:var(--ink-2);margin-bottom:var(--s-1);display:block}.picker input{width:100%;min-height:var(--tap);padding:0 var(--s-3);background:var(--ground-2);color:var(--ink);border:var(--hair) solid var(--rule);font:400 var(--f-md) var(--text);border-radius:2px}.picker input::placeholder{color:var(--ink-3)}.picker-note{margin:var(--s-1) 0 0;font-size:var(--f-sm);color:var(--ink-3)}.picker-list{margin:var(--s-2) 0 0;border-top:var(--hair) solid var(--rule);padding:0;list-style:none}.picker-list li{border-bottom:var(--hair) solid var(--rule)}.picker-list button{width:100%;min-height:var(--tap);justify-content:space-between;align-items:center;gap:var(--s-3);padding:0 var(--s-2);color:var(--ink);font:400 var(--f-md) var(--text);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.picker-list button:hover{background:var(--ground-2)}.picker-list .where{color:var(--ink-3);font-size:var(--f-sm)}.privacy{margin:var(--s-4) 0 0;font-size:var(--f-sm);color:var(--ink-3);max-width:44ch}.privacy a{color:var(--ink-2)}.map{min-width:0;margin:0;container-type:inline-size}.pair-map{container-type:inline-size}.map-svg{--k:1;width:100%;height:auto;display:block}@container (width<=1000px){.map-svg{--k:1.15}}@container (width<=760px){.map-svg{--k:1.5}}@container (width<=560px){.map-svg{--k:2}}@container (width<=400px){.map-svg{--k:2.7}}.map-svg text{font:500 calc(var(--k) * 12px) var(--mono);fill:var(--ink);paint-order:stroke;stroke:var(--ground);stroke-width:calc(var(--k) * 4px);stroke-linejoin:round}.sea{fill:var(--ground-2)}.land{fill:var(--land)}.grat{fill:none;stroke:var(--rule);stroke-width:.6px;vector-effect:non-scaling-stroke;opacity:.7}.edge{fill:none;stroke:var(--rule);stroke-width:1px;vector-effect:non-scaling-stroke}.lit-0{--c:var(--lit-0)}.lit-1{--c:var(--lit-1)}.lit-2{--c:var(--lit-2)}.lit-3{--c:var(--lit-3)}.lit-4{--c:var(--lit-4)}.arc{fill:none;stroke:var(--c,var(--rule));stroke-width:calc(var(--k) * 2px);stroke-linecap:round}.arc.is-best{stroke-width:calc(var(--k) * 3.5px)}.arc.is-drawing{stroke-dasharray:1;stroke-dashoffset:1px;animation:draw var(--t-draw) var(--ease-out) forwards}@keyframes draw{to{stroke-dashoffset:0}}.region{fill:none;stroke:var(--c,var(--rule));stroke-width:calc(var(--k) * 8px);stroke-linecap:round}.region.is-measuring{stroke:var(--ink);animation:1.2s ease-in-out infinite alternate breathe}.region.is-blocked{stroke:var(--ink-3);stroke-width:calc(var(--k) * 4px)}@keyframes breathe{0%{opacity:1}to{opacity:.35}}.origin{fill:none;stroke:var(--ink);stroke-width:calc(var(--k) * 13px);stroke-linecap:round}.origin-core{fill:none;stroke:var(--ground);stroke-width:calc(var(--k) * 5px);stroke-linecap:round}.route{fill:none;stroke:var(--lit-4);stroke-width:calc(var(--k) * 2.5px);stroke-linecap:round}.end{fill:none;stroke:var(--ink);stroke-width:calc(var(--k) * 10px);stroke-linecap:round}.legend{gap:var(--s-2);margin-top:var(--s-3);font-size:var(--f-xs);color:var(--ink-2);display:grid}.legend-title{letter-spacing:.04em;text-transform:uppercase;font-weight:600}.scale{max-width:30rem;padding-bottom:var(--s-5);display:block;position:relative}.scale-bins{width:100%;height:10px;display:block}.scale-bins rect{fill:var(--c);stroke:var(--ground);stroke-width:2px;vector-effect:non-scaling-stroke}.ceiling-mark{stroke:var(--ink);stroke-width:2px}.scale-nums,.rule-nums{margin-top:var(--s-1);font-family:var(--mono);color:var(--ink-3);justify-content:space-between;display:flex}.scale-nums span,.rule-nums span{white-space:nowrap;justify-content:center;width:0;display:flex}.scale-ceiling{left:var(--glass-ceiling);font-family:var(--mono);color:var(--ink);white-space:nowrap;position:absolute;bottom:0;transform:translate(-50%)}.band{max-width:var(--wide);padding:var(--s-7) var(--gutter);border-top:var(--hair) solid var(--rule);margin:0 auto}.band-head{align-items:baseline;gap:var(--s-1) var(--s-5);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.band-head h2{font:800 var(--f-2xl)/1 var(--display);text-transform:uppercase;letter-spacing:.02em;margin:0}.receipt{color:var(--ink-2);font-size:var(--f-lg);margin:0}.band-note{max-width:var(--measure);color:var(--ink-2);margin:0 0 var(--s-5)}.empty{color:var(--ink-3);font-family:var(--mono);font-size:var(--f-sm)}.table-wrap{border-top:var(--hair) solid var(--rule);overflow-x:auto}.ledger{border-collapse:collapse;width:100%;font-size:var(--f-sm)}.ledger caption{text-align:left;padding:var(--s-2) 0;color:var(--ink-2);font-weight:600}.ledger th,.ledger td{padding:var(--s-2) var(--s-3);border-bottom:var(--hair) solid var(--rule);text-align:left;vertical-align:baseline;white-space:nowrap}.ledger thead th{color:var(--ink-2);font-weight:600;font-size:var(--f-xs);letter-spacing:.04em;text-transform:uppercase}.ledger .num{text-align:right}.ledger tbody th{font-weight:550}.regions tbody th small{font:400 var(--f-xs) var(--mono);color:var(--ink-3);display:block}.regions th:first-child{background:var(--ground);position:sticky;left:0}.regions tr.is-best th,.regions tr.is-best td{background:var(--ground-2)}.regions td.note{white-space:normal;color:var(--ink-2);min-width:18rem}.regions .dim{color:var(--ink-3)}.grade-cell{align-items:center;gap:var(--s-2);display:inline-flex}.swatch{background:var(--c);border-radius:1px;width:18px;height:6px;display:inline-block}.bars{gap:var(--s-1);display:grid}.bar-row{align-items:center;gap:var(--s-3);grid-template-columns:minmax(7rem,11rem) 1fr 5.5rem;min-height:28px;display:grid}.bar-name{font-size:var(--f-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-svg{width:100%;height:14px;display:block}.bar-total{font:400 var(--f-sm) var(--mono);text-align:right;font-variant-numeric:tabular-nums}.seg-light{fill:var(--lit-4);background:var(--lit-4)}.seg-glass{fill:var(--lit-1);background:var(--lit-1)}.seg-rest{fill:var(--rule);background:var(--rule)}.seg-measured{fill:var(--ink-2);background:var(--ink-2)}.bar-svg rect{stroke:var(--ground);stroke-width:2px;vector-effect:non-scaling-stroke}.bar-axis{gap:var(--s-3);margin-top:var(--s-2);font-size:var(--f-xs);grid-template-columns:minmax(7rem,11rem) 1fr 5.5rem;display:grid}.bar-axis .rule-ticks,.rule-ticks{width:100%;height:10px;display:block}.rule-ticks line{stroke:var(--ink-3);stroke-width:1px}.rule-unit{color:var(--ink-3);font-family:var(--mono)}.key-swatch{vertical-align:middle;border-radius:1px;width:14px;height:8px;display:inline-block}@media (max-width:640px){.bar-row,.bar-axis{grid-template-columns:1fr 4.5rem}.bar-row .bar-svg,.bar-axis>div{grid-area:2/1/auto/-1}.bar-axis>span:first-child{display:none}}.prose{max-width:var(--measure)}.prose h3,.save h3{font:700 var(--f-xl)/1.2 var(--display);text-transform:uppercase;letter-spacing:.02em;margin:var(--s-6) 0 var(--s-2)}.prose p,.prose li{color:var(--ink)}.admit{padding-left:var(--s-5)}.admit li{margin-bottom:var(--s-3)}.areas{padding-left:var(--s-5);margin-top:var(--s-2);color:var(--ink-2);font-size:var(--f-sm)}.areas li{margin-bottom:var(--s-1)}.wire-fig{margin:var(--s-6) 0 var(--s-5);max-width:52rem}.rule-rows{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.rule-row{gap:var(--s-3);grid-template-columns:minmax(10rem,17rem) 1fr 5rem;align-items:center;display:grid}.rule-label{font-size:var(--f-sm)}.rule-bar{width:100%;height:14px;display:block}.rule-value{font:400 var(--f-sm) var(--mono);text-align:right}.rule-axis{gap:0 var(--s-3);margin-top:var(--s-2);font-size:var(--f-xs);grid-template-columns:minmax(10rem,17rem) 1fr 5rem;display:grid}.rule-axis .rule-ticks,.rule-axis .rule-nums{grid-column:2}.rule-axis .rule-unit{text-align:right;grid-area:2/3}.wire-fig figcaption{margin-top:var(--s-4);font-size:var(--f-sm);color:var(--ink-2);max-width:var(--measure)}@media (max-width:640px){.rule-row,.rule-axis{grid-template-columns:1fr 4.5rem}.rule-row .rule-bar{grid-area:2/1/auto/-1}.rule-axis .rule-ticks,.rule-axis .rule-nums{grid-column:1/-1}.rule-axis .rule-unit{grid-area:3/1/auto/-1}}.cites{font-size:var(--f-sm);color:var(--ink-2);max-width:var(--measure);padding-left:var(--s-5)}.cites li{margin-bottom:var(--s-2)}.cites a{color:var(--ink-2)}.save{margin-top:var(--s-7);padding-top:var(--s-5);border-top:var(--hair) solid var(--rule)}.save h3{margin-top:0}.save-actions{gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.save-note{font-size:var(--f-sm);color:var(--ink-3);max-width:var(--measure)}.doc .page{max-width:52rem;padding:var(--s-6) var(--gutter) var(--s-7);margin:0 auto}.doc h1{font:800 var(--f-2xl)/1.02 var(--display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 var(--s-4)}.doc h2{font:700 var(--f-xl)/1.2 var(--display);text-transform:uppercase;letter-spacing:.02em;margin:var(--s-6) 0 var(--s-2)}.doc p{max-width:var(--measure)}.crumb{font-size:var(--f-sm);margin:0 0 var(--s-3)}.crumb a{color:var(--ink-2);min-height:var(--tap);align-items:center;display:inline-flex}.answer{font-size:var(--f-lg)}.answer b{font-family:var(--mono);font-weight:500}.key{color:var(--ink-3);font-size:var(--f-sm)}.pair-map{margin:var(--s-5) 0}.pair-map figcaption{font-size:var(--f-xs);color:var(--ink-3);margin-top:var(--s-2)}.cta{align-items:center;gap:var(--s-2) var(--s-4);margin:var(--s-6) 0;flex-wrap:wrap;display:flex}.door{min-height:var(--tap);padding:0 var(--s-5);background:var(--lit-4);color:var(--ground);font:800 var(--f-lg)/1 var(--display);text-transform:uppercase;letter-spacing:.05em;border-radius:2px;align-items:center;text-decoration:none;display:inline-flex}.door:hover{background:var(--ink)}.cta .receipt{font-size:var(--f-md)}.city{border-bottom:var(--hair) solid var(--rule)}.city summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:600;display:flex}.partners{padding:0 0 var(--s-4);columns:15rem auto;column-gap:var(--s-5);margin:0;list-style:none}.partners a{justify-content:space-between;gap:var(--s-3);min-height:var(--tap);font-size:var(--f-sm);border-bottom:var(--hair) solid var(--ground-2);align-items:center;text-decoration:none;display:flex}.partners a:hover{color:var(--lit-4)}.partners .num{color:var(--ink-2)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.arc.is-drawing{stroke-dasharray:none;stroke-dashoffset:0;animation:none}.region.is-measuring{animation:none}.grade{transition:none}.score.is-swapping .grade{opacity:1}}
