:root{--ink:#1a1a1a;--muted:#656565;--line:#d4d4d0;--paper:#fafaf7;--red:#b52c31}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;word-break:keep-all;overflow-wrap:normal}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:4px}button:disabled{opacity:.45;cursor:wait}header{display:flex;align-items:center;justify-content:space-between;padding:15px 3.5%;border-bottom:1px solid var(--ink);gap:15px}.brand{font-size:26px;font-weight:800;color:inherit;text-decoration:none;letter-spacing:-1px;display:flex;align-items:baseline;gap:18px;white-space:nowrap}.brand span{font-size:12px;font-weight:500;letter-spacing:0}nav{display:flex;gap:25px}nav button{padding:4px 0;border-bottom:1px solid var(--ink);font-size:12px;white-space:nowrap}main{padding:0 3.5% 30px}.opening{display:grid;grid-template-columns:1fr 1.25fr;gap:6%;padding:24px 0}.eyebrow{font-size:11px;letter-spacing:.08em;margin:0 0 8px}.opening h1{font-size:clamp(32px,3.4vw,50px);line-height:1.2;letter-spacing:-.06em;margin:0;font-weight:800}.intro{font-size:12px;margin:13px 0 0;max-width:450px}.headline{align-self:center}.headline-label{font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:8px}.text-button{font-size:11px;white-space:nowrap;border-bottom:1px solid}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:12px}.comparison article{border-top:1px solid var(--ink);padding-top:8px;min-width:0}.comparison article>span{font-size:11px;display:block}.comparison small{display:block;color:var(--muted);font-size:10px}.comparison strong{display:block;font-size:clamp(23px,2.9vw,42px);line-height:1.25;letter-spacing:-.055em;font-weight:650;font-variant-numeric:tabular-nums;color:var(--red);white-space:nowrap}.comparison strong em{font-size:12px;font-style:normal;letter-spacing:0}.comparison p{font-size:10px;margin:5px 0;white-space:nowrap}.difference{font-size:11px;color:var(--muted);margin:10px 0 0}.map-section{position:relative;height:clamp(280px,33vh,370px);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:#e9e9e4;overflow:hidden}#city{height:100%;width:100%}#city canvas{display:block;width:100%;height:100%;touch-action:none}#mapLoading{position:absolute;top:45%;left:10%;right:10%;text-align:center;font-size:13px}.map-top,.map-bottom{position:absolute;left:15px;right:15px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none}.map-top{top:12px}.map-top>*{pointer-events:auto}.segmented{display:flex;border:1px solid #aaa;background:#fafaf7e6;padding:2px;gap:2px}.segmented button{font-size:11px;white-space:nowrap;padding:5px 10px}.segmented button[aria-pressed=true]{background:var(--ink);color:white}#homeView{font-size:11px;background:#fafaf7e6;padding:6px 12px;white-space:nowrap}.map-bottom{bottom:9px;font-size:10px;background:#fafaf7c9;padding:4px 8px}.map-bottom i{display:inline-block;width:7px;height:7px;background:var(--red);margin-right:4px}#buildingHint{position:absolute;left:15px;bottom:42px;background:var(--paper);padding:12px;border:1px solid var(--line);max-width:300px;font-size:12px}.time-row{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:10px 0}.time-row button{font-size:11px;white-space:nowrap;border:1px solid var(--ink);padding:4px 9px}.time-row label{font-size:11px}.time-row input{accent-color:var(--ink);flex:1;min-width:40px}.time-row output{font-size:14px;font-weight:700;white-space:nowrap}#trajectory{width:200px;height:36px}.policy-title{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:15px 0 8px;font-size:12px}.policy-title small{font-size:10px;color:var(--muted);font-weight:400;margin-left:8px}.policy-title #status{font-size:10px;color:var(--muted);flex:1;text-align:right}.policy-title button{font-size:10px;white-space:nowrap;text-decoration:underline}.presets{display:flex;gap:15px;align-items:center;margin-bottom:12px;font-size:11px;flex-wrap:wrap}.presets>span{color:var(--muted)}.presets button{border-bottom:1px solid #777;padding:0 0 2px;white-space:nowrap}.presets button.active{font-weight:700;border-bottom-width:2px}.controls{display:grid;grid-template-columns:1.25fr 1.25fr .8fr 1fr 1.1fr .95fr;gap:18px;border-bottom:1px solid var(--line);padding-bottom:13px}.controls label{display:flex;flex-direction:column;font-size:11px;gap:4px;min-width:0}.controls label>small{font-size:9px;color:var(--muted)}select{width:100%;background:transparent;border:0;border-bottom:1px solid #999;padding:5px 18px 5px 0;border-radius:0;font-size:11px;min-width:0}.controls #zone{font-size:10px;padding:0}.more{border:1px solid var(--ink);font-size:11px;line-height:1.8;align-self:start;min-height:60px;padding:8px}.caution{font-size:10px;color:var(--muted);margin:10px 0}.lower-summary{display:flex;border-top:1px solid var(--line);margin-top:12px;justify-content:space-between;gap:15px;padding-top:10px}.lower-summary button{font-size:11px;text-align:left}.lower-summary span{display:block;font-size:12px;font-weight:600}.footnote{font-size:10px;color:var(--muted)}dialog{border:1px solid var(--ink);background:var(--paper);color:var(--ink);width:min(960px,calc(100% - 24px));max-height:85vh;padding:24px;word-break:keep-all;overflow-wrap:normal}dialog::backdrop{background:#0008}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--ink);padding-bottom:12px;margin-bottom:18px}.dialog-head h2{font-size:22px;margin:0}.dialog-head button{font-size:12px;white-space:nowrap}.dialog-body p{max-width:65em}dialog p{font-size:13px}dialog h3{font-size:16px;margin-top:25px}dialog a{color:inherit;text-underline-offset:3px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}th{font-size:11px;background:#eee}td.number{white-space:nowrap;font-variant-numeric:tabular-nums}td small{display:block;color:var(--muted);font-size:10px}.detail-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.detail-controls label{font-size:12px;display:flex;flex-direction:column}.detail-controls input{width:100%;accent-color:var(--ink)}.check-row{display:flex;gap:10px;align-items:center;margin:10px 0}.check-row input{width:auto}.catalog-item{padding:15px 0;border-bottom:1px solid var(--line)}.catalog-item summary{cursor:pointer;font-size:13px}.catalog-item p{font-size:12px}.tag{font-size:10px;border:1px solid #aaa;padding:1px 4px;display:inline-block;margin:2px 4px 2px 0}.catalog-filter{display:flex;gap:15px;align-items:center}.catalog-filter input{flex:1;min-width:40px;padding:8px;border:1px solid #aaa;background:transparent}.apply-button{background:var(--ink);color:#fff;padding:8px 16px;margin:14px 8px 0 0}.bad{font-weight:700}.method-note{padding:12px;border-left:2px solid var(--ink);background:#eee}.active-conditions{font-size:11px}.kpi-link{border-bottom:1px solid;padding:0}.loading-dots{opacity:.7}@media(min-width:1500px){main,header{padding-left:max(3.5%,calc((100vw - 1600px)/2));padding-right:max(3.5%,calc((100vw - 1600px)/2))}}@media(max-width:1000px){.opening{gap:4%;grid-template-columns:1fr 1.4fr}.comparison{gap:15px}.comparison strong{font-size:29px}.controls{gap:10px}.map-section{height:330px}.intro{max-width:290px}.brand{gap:12px}.brand span{font-size:10px}nav{gap:15px}}@media(max-width:650px){header{padding:12px 5%;display:block}.brand{font-size:25px;gap:12px}.brand span{font-size:10px}nav{margin-top:8px;gap:18px}nav button{font-size:10px}main{padding:0 5% 22px}.opening{grid-template-columns:1fr;gap:23px;padding:24px 0 18px}.opening h1{font-size:39px}.intro{font-size:11px;max-width:none}.headline-label{font-size:13px}.comparison{gap:15px;margin-top:10px}.comparison strong{font-size:28px}.comparison p{font-size:9px}.comparison small{font-size:9px}.difference{font-size:10px}.map-section{height:330px;margin:0 -5.6%;border-bottom:1px solid var(--ink)}.map-top{left:9px;right:9px}.segmented button{padding:5px 6px;font-size:10px}#homeView{font-size:10px;padding:6px 8px}.map-bottom{left:8px;right:8px;font-size:9px;display:block}.map-bottom span{display:block}.time-row{gap:9px}.time-row button{font-size:10px;padding:4px 7px}.time-row output{font-size:12px}#trajectory{display:none}.policy-title{flex-wrap:wrap}.policy-title #status{flex-basis:100%;order:3;text-align:left}.policy-title small{display:block;margin:0}.presets{gap:10px 15px;font-size:10px}.presets>span{width:100%}.controls{grid-template-columns:1fr 1fr;gap:15px 18px}.controls label,.controls select{font-size:12px}.controls label>small{font-size:10px}.more{font-size:12px}.caution{font-size:10px;line-height:1.9}.lower-summary{display:grid;grid-template-columns:1fr 1fr;gap:15px}dialog{padding:18px 14px;max-height:90vh}.dialog-head h2{font-size:19px}.detail-controls{grid-template-columns:1fr 1fr}dialog p{font-size:12px}table{font-size:11px}th,td{padding:9px 7px}.catalog-filter{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.map-bottom{background:var(--paper);border:1px solid #b8b8b1;color:var(--ink);box-shadow:0 1px 4px #0002}.map-bottom span{background:var(--paper);line-height:1.65}.map-bottom #mapCaption{text-align:right}@media(max-width:650px){.map-bottom #mapCaption{text-align:left}}

.growth-controls{border-top:1px solid var(--line);padding:8px 0;font-size:11px}.growth-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.growth-heading .check-row{margin:0;font-weight:600}.growth-heading small{color:var(--muted);font-size:10px}.growth-controls input{accent-color:var(--ink)}.growth-controls details{margin-top:5px}.growth-controls summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.growth-controls p{max-width:80em;margin:8px 0}.growth-sliders{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:700px;margin-top:12px}.growth-sliders label{display:grid;grid-template-columns:1fr auto;gap:4px 12px}.growth-sliders input{grid-column:1/-1;width:100%;min-width:0}.growth-controls a{color:inherit}#growthComparison{margin:12px 0}#growthComparison table{font-size:11px}.map-bottom #growthLegend{font-weight:600}[hidden]{display:none!important}@media(max-width:650px){.growth-sliders{grid-template-columns:1fr;gap:12px}.growth-heading small{flex-basis:100%}.map-bottom{max-width:calc(100% - 16px)}}

.dialog-head h2{min-width:0}.difference{text-wrap:pretty}.nowrap{white-space:nowrap}@media(max-width:650px){.controls>label:first-child{grid-column:1/-1}}

#growthComparison td{white-space:nowrap}

.map-bottom{flex-wrap:wrap}.map-bottom #roadLegend{white-space:nowrap}.map-bottom #roadLegend i{width:16px;height:7px;background:#8b8b86}.map-bottom #mapCaption{margin-left:auto}

/* Keep the city and its controls together, with the explanation beside it. */
@media(min-width:1001px){
  main{display:grid;grid-template-columns:clamp(300px,26vw,360px) minmax(0,1fr);column-gap:28px;padding-top:24px}
  main>section,main>.footnote,main>#appliedActions{grid-column:1/-1;min-width:0}
  main>.opening{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;gap:40px;padding:0 0 22px}
  .opening h1{font-size:clamp(32px,2.7vw,39px)}
  .intro{font-size:11px}
  .headline{align-self:stretch}
  .headline-label{font-size:13px;flex-wrap:wrap}
  .comparison{gap:16px}
  .comparison strong{font-size:30px}
  .comparison p{font-size:9px}
  main>.map-section{grid-column:2;grid-row:1;height:clamp(440px,62vh,680px);border:1px solid var(--ink)}
  main>.time-row{grid-column:2;grid-row:2}
  #trajectory{width:150px;flex-shrink:0}
  .map-bottom #mapCaption{flex-basis:100%;text-align:left;margin-left:0}
}
@media(min-width:651px) and (max-width:1000px){.map-section{height:clamp(420px,62vh,620px)}}
@media(max-width:650px){
  main{display:flex;flex-direction:column}
  main>*{order:4}
  .opening{display:contents}
  .opening>div:first-child{order:0;padding:18px 0}
  .opening>.headline{order:3;align-self:stretch;padding:18px 0 8px}
  .opening h1{font-size:32px}
  .intro{margin-top:10px}
  main>.map-section{order:1;height:clamp(420px,62svh,560px);width:100vw;margin-left:-5vw;margin-right:-5vw}
  main>.time-row{order:2}
  .map-bottom{display:flex;gap:2px 10px}
  .map-bottom #mapCaption,.map-bottom #growthLegend{flex-basis:100%}
}

.map-actions{display:flex;gap:6px}.map-actions button{background:#fafaf7ed;border:1px solid #b8b8b1;padding:6px 10px;font-size:11px;white-space:nowrap}
.map-help{position:absolute;top:48px;left:15px;margin:0;padding:3px 7px;background:#fafaf7e6;font-size:10px;pointer-events:none;color:#45453f}
.station-label{position:absolute;transform:translate(-50%,-120%);background:#1a1a1a;color:white;border:1px solid #fafaf7;padding:2px 8px;font-size:11px;font-weight:600;pointer-events:none;white-space:nowrap}
nav{flex-wrap:wrap}nav a{font-size:12px;padding:4px 0;color:inherit;text-underline-offset:5px;white-space:nowrap}
@media(max-width:650px){nav a{font-size:10px}}
#scopeLegend{font-size:9px}#scopeLegend i{background:none;border-top:1px solid #30302b;width:16px;height:3px}
.time-row input:disabled{opacity:.4}.time-row button:disabled{cursor:default}
@media(max-width:650px){.map-top{flex-wrap:wrap;justify-content:flex-start}.map-actions{margin-left:auto}.map-actions button{font-size:10px;padding:5px 7px}.map-help{top:78px;left:9px;right:9px;font-size:9px}.map-bottom #scopeLegend{flex-basis:100%}}
