@font-face{
  font-family:'Unbounded'; font-style:normal; font-weight:400 700;
  font-display:swap; src:url('/fonts/unbounded-var.woff2') format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:100 900;
  font-display:swap; src:url('/fonts/inter-var.woff2') format('woff2');
}
:root{
  --paper:#F2F2EE; --ink:#1A1A1A; --teal:#0F766E; --chart:#D4E157;
  --hair:#00000022; --dim:#00000099;
  --display:'Unbounded','Trebuchet MS',sans-serif;
  --body:'Inter','Helvetica Neue',Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#141517; --ink:#EDEDE8; --teal:#2DB3A8; --chart:#C7D944;
    --hair:#FFFFFF2b; --dim:#FFFFFF99;}
}
:root[data-theme="dark"]{
  --paper:#141517; --ink:#EDEDE8; --teal:#2DB3A8; --chart:#C7D944;
  --hair:#FFFFFF2b; --dim:#FFFFFF99;}
.mode{background:none; border:1px solid var(--hair); color:var(--ink);
  line-height:0; padding:.42em .5em; cursor:pointer;}
.mode:hover{border-color:var(--teal); color:var(--teal);}
.mode svg{transition:transform .25s ease;}
:root[data-theme="dark"] .mode svg{transform:rotate(180deg);}
*{box-sizing:border-box; border-radius:0 !important;}
body{margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body);
  font-variant-numeric:tabular-nums; line-height:1.45;}
a{color:inherit;}
.mast{display:flex; align-items:baseline; gap:1rem; padding:1.1rem 1.5rem;
  border-bottom:1px solid var(--hair); flex-wrap:wrap;}
.brand{font-family:var(--display); font-weight:600; letter-spacing:.1em;
  text-decoration:none; font-size:.85rem;}
.tag{color:var(--dim); font-size:.85rem;}
.mast nav{margin-left:auto; display:flex; gap:1.4rem; font-size:.8rem;
  text-transform:uppercase; letter-spacing:.08em;}
.mast nav a{text-decoration:none; color:var(--teal);}
.wrap{max-width:960px; margin:0 auto; padding:2.5rem 1.5rem 4rem;}
h1{font-family:var(--display); font-size:clamp(1.6rem,4.5vw,2.7rem);
  line-height:1.16; letter-spacing:0; margin:.4em 0 .5em; font-weight:600;}
h2{margin-top:2.5em; font-size:1.15rem;}
.lede{max-width:38em; color:var(--dim);}
.doclink{color:var(--teal); text-decoration:underline;
  text-underline-offset:3px;}
.hero-stat{display:flex; align-items:flex-end; gap:1.2rem; margin:2.2rem 0
  1rem; flex-wrap:wrap;}
.big{font-family:var(--display); font-size:clamp(3rem,10vw,5.5rem);
  font-weight:600; line-height:.95; color:var(--teal);
  font-variant-numeric:tabular-nums;}
.big .unit{font-size:.25em; margin-left:.15em; font-weight:400;}
.hero-sub{max-width:20em; color:var(--dim); font-size:.9rem;
  padding-bottom:.6rem;}
.rule{display:block; height:10px; background:var(--chart); margin-top:.8rem;}
.stat-row{display:grid; grid-template-columns:repeat(auto-fit,
  minmax(220px,1fr)); gap:1px; background:var(--hair);
  border:1px solid var(--hair); margin:1.6rem 0;}
.stat-row>div{background:var(--paper); padding:.9rem 1rem; font-size:.85rem;
  color:var(--dim);}
.stat-row b{display:block; font-size:1.5rem; color:var(--ink);}
.tablewrap{overflow-x:auto; contain:content;}
table{width:100%; border-collapse:collapse; font-size:.9rem;}
th{ text-align:left; font-size:.7rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--dim); font-weight:600;
  border-bottom:1px solid var(--ink); padding:.5rem .6rem;}
td{padding:.55rem .6rem; border-bottom:1px solid var(--hair);
  vertical-align:middle;}
td a{text-decoration:none; color:var(--teal); font-weight:600;}
.num{text-align:right; font-variant-numeric:tabular-nums;}
th.num{text-align:right;}
.badge{background:var(--teal); color:var(--paper); font-weight:700;
  padding:.1em .45em; font-size:.8rem; letter-spacing:.03em;}
.chip{background:var(--chart); color:#1A1A1A; font-size:.7rem;
  text-transform:uppercase; letter-spacing:.06em; padding:.15em .5em;
  font-weight:600; white-space:nowrap; display:inline-block;}
.chip.dim{background:transparent; border:1px solid var(--hair);
  color:var(--dim);}
.rapid{font-size:.6em; vertical-align:middle; background:var(--ink);
  color:var(--paper); padding:.2em .5em; letter-spacing:.1em;}
.spark{display:block; touch-action:pan-y; cursor:crosshair;}
#tip{position:absolute; z-index:50; background:var(--paper);
  color:var(--ink); border:1px solid var(--ink); padding:.45em .65em;
  font-size:.78rem; line-height:1.45; pointer-events:none;
  font-variant-numeric:tabular-nums; max-width:16em;}
#tip b{font-size:.85rem;}
#tip .tr{background:var(--ink); color:var(--paper); font-size:.6rem;
  padding:.1em .4em; letter-spacing:.08em; text-transform:uppercase;}
#tip .tgo{color:var(--teal); font-size:.7rem;}
.citymap a.sel path{stroke:var(--ink); opacity:1;}
.citymap.dimmed a:not(.sel) path{opacity:.22;}
.citymap a.ctx:hover path,.citymap a.ctx:focus path,
.citymap a.ctx.sel path{stroke:var(--teal); stroke-width:2.5;}
.hint-touch{display:none;}
@media (hover: none), (max-width:640px){
  .hint-hover{display:none;}
  .hint-touch{display:inline;}
}
.citymap{display:block; margin:1.6rem auto 0;}
.citymap a path{transition:opacity .15s, stroke .15s; cursor:pointer;}
.citymap a:hover path,.citymap a:focus path{stroke:var(--ink); opacity:1;}
.citymap a:focus{outline:none;}
.locator{margin:1.6rem 0 0;}
.locator .citymap{margin:0;}
.maplegend{color:var(--dim); font-size:.78rem; margin:.5rem 0 1.6rem;}
.lgi{white-space:nowrap; margin-right:1.1rem;}
.lgi:last-child{margin-right:0;}
.lgline{display:inline-block; width:22px; height:0; vertical-align:middle;
  border-top:3px solid var(--teal); margin-right:.3em;}
.lgline.chart{border-top-color:var(--chart);}
.lgline.dashed{border-top-style:dashed;}
.lgline.hair{border-top-width:1px; border-top-color:var(--dim);}
th.sortable{cursor:pointer; position:relative; padding-right:1.3rem;
  user-select:none;}
th.sortable:hover,th.sortable:focus-visible{color:var(--teal);}
th.sortable::after{content:"\2195"; position:absolute; right:.9rem;
  color:var(--dim);}
th[aria-sort]::after{content:"\25B4"; color:var(--teal);}
th[aria-sort="descending"]::after{content:"\25BE";}
.rowfilter{width:100%; max-width:26em; padding:.5em .7em; font-size:.9rem;
  font-family:var(--body); background:transparent; color:var(--ink);
  border:1px solid var(--hair); margin:.4rem 0 .8rem;}
.rowfilter:focus{outline:none; border-color:var(--teal);}
.boro-inline{display:none; font-size:.68rem; color:var(--dim);
  letter-spacing:.06em; margin-left:.3em;}
.rsz{position:absolute; top:0; right:0; width:9px; height:100%;
  cursor:col-resize;}
.rsz:hover{background:var(--hair);}
.cnum{color:var(--dim); font-weight:400;}
.crumb{font-size:.8rem;}
.crumb a{color:var(--teal); text-decoration:none;}
.ivs{list-style:none; padding:0;}
.ivs li{border-left:3px solid var(--chart); padding:.5rem .9rem;
  margin:.6rem 0; font-size:.92rem;}
.ivs small{color:var(--dim);}
.note{color:var(--dim); font-size:.85rem;}
.prov{margin-top:2.5rem; font-size:.85rem; color:var(--dim);}
.prov summary{cursor:pointer; color:var(--teal);}
.prose{max-width:44em;}
.prose li{margin:.5em 0;}
.foot{display:flex; justify-content:space-between; gap:1rem; padding:1rem
  1.5rem; border-top:1px solid var(--hair); color:var(--dim);
  font-size:.75rem; flex-wrap:wrap;}
.measure{border:1px solid var(--hair); margin:1.4rem 0; padding:1.3rem
  1.4rem;}
.measure .mhead{display:flex; align-items:baseline; gap:.8rem;
  flex-wrap:wrap; margin-bottom:.6rem;}
.measure .mname{font-family:var(--display); font-size:1.15rem;
  font-weight:600; text-decoration:none; color:var(--ink);}
a.mname:hover{color:var(--teal);}
.measure blockquote{margin:.4rem 0 .9rem; padding-left:.9rem;
  border-left:3px solid var(--chart); font-size:.95rem; max-width:40em;}
.measure .msrc{color:var(--dim); font-size:.8rem;}
.mfacts{display:flex; gap:2rem; flex-wrap:wrap; font-size:.85rem;
  color:var(--dim); margin-top:.7rem; align-items:center;}
.mfacts b{color:var(--ink); font-size:1.05rem; display:block;}
@media (max-width:900px){
  .t-corridors td:nth-child(7),.t-corridors th:nth-child(7){display:none;}
}
@media (max-width:640px){
  .mast nav{margin-left:0; flex-wrap:wrap; gap:.7rem 1.1rem;
    font-size:.72rem;}
  .mast{padding:1rem 1.2rem; gap:.6rem;}
  .mast .tag{display:none;}
  .wrap{padding:1.8rem 1.1rem 3rem;}
  h1{line-height:1.2;}
  h2{margin-top:2em;}
  .stat-row{grid-template-columns:1fr 1fr;}
  .stat-row>div:last-child:nth-child(odd){grid-column:1 / -1;}
  .stat-row b{font-size:1.25rem;}
  .stat-row>div{padding:.75rem .8rem;}
  .mfacts{display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1rem;}
  .mfacts>div:last-child{grid-column:1 / -1;}
  .chip{font-size:.62rem; white-space:normal;}
  .rowfilter{font-size:1rem;}
  .rsz{display:none;}
  .prov summary{padding:.5rem 0;}
  .foot{flex-direction:column; gap:.4rem;}
  table{font-size:.82rem;}
  .t-corridors td:nth-child(1),.t-corridors th:nth-child(1),
  .t-corridors td:nth-child(3),.t-corridors th:nth-child(3),
  .t-corridors td:nth-child(4),.t-corridors th:nth-child(4),
  .t-corridors td:nth-child(8),.t-corridors th:nth-child(8){display:none;}
  .boro-inline{display:inline;}
  .t-routes td:nth-child(4),.t-routes th:nth-child(4),
  .t-routes td:nth-child(5),.t-routes th:nth-child(5){display:none;}
  .chip{white-space:normal;}
  th{padding:.5rem .25rem; font-size:.62rem; letter-spacing:.05em;}
  td{padding:.55rem .25rem;}
  th.sortable{padding-right:.8rem;}
  th.sortable::after{right:.05rem;}
}
