/* Shape Chicago: shared look for every page (housing, transit, and pages to come).
   White panels and Instrument Sans, with City Hall accents: the red six-point star, two flag-blue rules, navy for main actions.
   Layout: a header (brand, page tabs, Sources, Share), a metrics bar across the top, a left panel for options, the map filling the rest.
   On phones: a slim metrics strip under the header and a bottom sheet for options.
   Header and bar are position:absolute (pages are full-screen, no scrolling): position:fixed made Chrome clip the WebGL map by the bar's height. */
:root{
  --sc-ink:#1a1d21; --sc-ink2:#3d434b; --sc-mute:#5a6069; --sc-faint:#6a7079; --sc-line:#e6e9ed; --sc-line2:#d5d9de;
  --sc-chip:#f6f7f9; --sc-seg:#f1f2f4; --sc-map:#eef0ec; --sc-navy:#2b5da0; --sc-navy2:#1d4580; --sc-flag:#41b6e6; --sc-star:#e4002b;
  --sc-green:#1f6b44; --sc-greenbg:#eef7f1; --sc-greenmute:#3f5a4b; --sc-warn:#7a4b00; --sc-warnbg:#fdf3e1; --sc-hard:#b3001e;
  --sc-shadow:0 10px 30px rgba(20,28,40,.14); --sc-shadow2:0 4px 14px rgba(20,28,40,.12);
  --sc-head:60px; --sc-font:'Instrument Sans',system-ui,-apple-system,sans-serif;
}
@media (max-width:859px){ :root{--sc-head:56px} }

/* header */
.sc-head{position:absolute;left:0;right:0;top:0;height:var(--sc-head);background:#fff;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 20px 0;box-sizing:border-box;font-family:var(--sc-font);color:var(--sc-ink)}
.sc-head::before,.sc-head::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--sc-flag)}
.sc-head::before{top:0} .sc-head::after{top:3px}
.sc-head .sc-l{display:flex;align-items:center;gap:20px;min-width:0}
.sc-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--sc-ink);text-decoration:none;white-space:nowrap}
.sc-brand svg{width:22px;height:22px;flex:none}
.sc-nav{display:flex;gap:4px;padding:4px;background:var(--sc-seg);border-radius:20px;font-size:14px}
.sc-nav a{padding:7px 14px;border-radius:16px;color:var(--sc-mute);text-decoration:none;white-space:nowrap}
.sc-nav a[aria-current="page"]{background:#fff;color:var(--sc-ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.sc-head .sc-r{display:flex;align-items:center;gap:8px}
.sc-fan{font-size:12px;color:var(--sc-faint);margin-right:6px;white-space:nowrap}
.sc-btn{font:inherit;font-family:var(--sc-font);font-size:14px;font-weight:600;min-height:38px;padding:0 16px;border-radius:20px;border:1px solid var(--sc-line2);background:#fff;color:var(--sc-ink);cursor:pointer;white-space:nowrap}
.sc-btn:hover{background:var(--sc-seg)}
a.sc-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--sc-ink);box-sizing:border-box}a.sc-btn.primary{color:#fff}
.sc-btn.primary{background:var(--sc-navy);border-color:var(--sc-navy);color:#fff}
.sc-btn.primary:hover{background:var(--sc-navy2)}
@media (max-width:1180px){ .sc-fan{display:none} }
@media (max-width:859px){
  .sc-head{padding:4px 12px 0}
  .sc-brand span{display:none}
  .sc-nav{font-size:13px} .sc-nav a{padding:7px 9px}
  .sc-btn{min-height:36px;padding:0 12px}
  .sc-head .sc-share,.sc-head .sc-fan{display:none}
  .sc-head .sc-l{gap:10px}
}
@media (max-width:440px){ .sc-nl{display:none} .sc-nav a{padding:7px 8px} }

/* metrics bar */
.sc-bar{position:absolute;left:0;right:0;top:var(--sc-head);background:#fff;border-top:1px solid var(--sc-line);border-bottom:1px solid var(--sc-line);z-index:4;display:flex;align-items:center;gap:24px;padding:0 20px;min-height:76px;box-sizing:border-box;font-family:var(--sc-font);color:var(--sc-ink)}
.sc-m{display:flex;flex-direction:column;gap:1px;flex:none}
.sc-m b{font-size:22px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
.sc-m span{font-size:12.5px;color:var(--sc-mute);white-space:nowrap}
.sc-m.g b{color:var(--sc-green)} .sc-m.g span{color:var(--sc-greenmute)}
.sc-sep{width:1px;height:44px;background:var(--sc-line);flex:none}
.sc-push{margin-left:auto}
.sc-seg{display:flex;gap:2px;padding:3px;background:var(--sc-seg);border-radius:18px;font-size:13.5px;font-weight:600}
.sc-seg button{font:inherit;border:0;padding:7px 14px;border-radius:15px;background:transparent;color:var(--sc-ink2);cursor:pointer;white-space:nowrap}
.sc-seg button[aria-checked="true"]{background:#fff;color:var(--sc-ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.sc-seg button.hard{color:var(--sc-hard)}
.sc-seg button.hard[aria-checked="true"]{background:var(--sc-hard);color:#fff}

/* info button and pop-up */
.ib{flex:none;width:22px;height:22px;border-radius:50%;border:1px solid var(--sc-line2);background:#fff;color:var(--sc-mute);font:italic 600 12px/1 Georgia,serif;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;vertical-align:middle}
.ib:hover{color:var(--sc-ink);border-color:var(--sc-ink)}
dialog.sc-info{border:0;border-radius:20px;box-shadow:var(--sc-shadow);padding:0;width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 64px);font-family:var(--sc-font);color:var(--sc-ink)}
dialog.sc-info::backdrop{background:rgba(20,24,30,.35)}
dialog.sc-info .sc-ibody{padding:22px 24px;overflow:auto;max-height:calc(100vh - 64px);font-size:14.5px;line-height:1.55}
dialog.sc-info h2{font-size:19px;margin:0 0 12px;padding-right:80px;font-weight:600;letter-spacing:-.01em}
dialog.sc-info p{margin:0 0 10px;color:var(--sc-ink2);font-size:14.5px;line-height:1.55}
dialog.sc-info a{color:var(--sc-navy)}
dialog.sc-info .sc-x{float:right;margin:-4px -6px 0 12px}
@media (max-width:859px){
  dialog.sc-info{margin:auto 0 0;width:100vw;max-width:100vw;border-radius:22px 22px 0 0;max-height:85vh}
  dialog.sc-info .sc-ibody{max-height:85vh;padding:18px 20px calc(24px + env(safe-area-inset-bottom))}
}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* motion: things respond when you point at them, and open smoothly */
:where(.sc-head, .sc-bar) :where(button, a){transition:background-color .15s, border-color .15s, color .15s, box-shadow .15s, transform .15s}
.sc-btn:active{transform:translateY(1px)}
.sc-btn.primary:hover{box-shadow:0 2px 10px rgba(43,93,160,.28)}
.sc-nav a:not([aria-current]):hover{color:var(--sc-ink);background:rgba(255,255,255,.65)}
.sc-seg button{transition:background-color .15s, color .15s, box-shadow .15s}
.sc-seg button:not([aria-checked="true"]):hover{background:rgba(255,255,255,.7)}
.sc-seg button.hard:not([aria-checked="true"]):hover{background:#fbe9ec}
.ib{transition:color .15s, border-color .15s, background-color .15s, transform .15s}
.ib:hover{transform:scale(1.08);background:var(--sc-seg)}
dialog.sc-info[open]{animation:scPop .24s cubic-bezier(.2,.8,.2,1)}
dialog.sc-info[open]::backdrop{animation:scFade .24s ease-out}
@keyframes scPop{from{opacity:0;transform:translateY(10px) scale(.98)}}
@keyframes scFade{from{opacity:0}}
@media (max-width:859px){ dialog.sc-info[open]{animation:scSheet .28s cubic-bezier(.2,.8,.2,1)} @keyframes scSheet{from{transform:translateY(40px);opacity:.4}} }
@media (prefers-reduced-motion:reduce){ dialog.sc-info[open], dialog.sc-info[open]::backdrop{animation:none} .ib:hover{transform:none} }

/* Moving between Shape Chicago pages: the header stays put while the page underneath cross-fades (browsers that support it) */
@view-transition { navigation: auto; }
.sc-head { view-transition-name: sc-head; }
::view-transition-old(root) { animation: 220ms cubic-bezier(.4,0,1,1) both sc-vt-out; }
::view-transition-new(root) { animation: 320ms cubic-bezier(.2,.8,.2,1) both sc-vt-in; }
@keyframes sc-vt-out { to { opacity: 0; transform: translateX(-4%) scale(.985); } }
@keyframes sc-vt-in { from { opacity: 0; transform: translateX(4%) scale(.985); } }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

/* the on/off switch every tool uses (housing policies, transit proposals and routes, budget options) */
.sc-switch{flex:none;width:46px;height:28px;border-radius:14px;border:0;background:var(--sc-line2);position:relative;padding:0;cursor:pointer;transition:background .15s}
.sc-switch::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .18s}
.sc-switch[aria-checked="true"]{background:var(--sc-navy)}
.sc-switch[aria-checked="true"]::after{transform:translateX(18px)}
.sc-switch:focus-visible{outline:2px solid var(--sc-navy);outline-offset:2px}
@media (prefers-reduced-motion:reduce){ .sc-switch,.sc-switch::after{transition:none} }
/* six tools: the page tabs scroll sideways on narrow screens instead of widening the page */
.sc-nav{min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sc-nav::-webkit-scrollbar{display:none}
@media (max-width:440px){ .sc-nav a{padding:7px 7px} .sc-nav{font-size:12.5px} }

/* local sponsor card and support button (shape.js fills [data-ad] and [data-support]) */
.sc-ad{display:block;margin:14px 0;font-family:var(--sc-font)}
.sc-ad-l{display:block;font-size:11px;font-weight:600;color:var(--sc-mute);margin:0 0 4px 2px}
.sc-ad-b{display:flex;gap:12px;align-items:center;background:#fff;border:1px dashed var(--sc-line2);border-radius:14px;padding:10px 14px;text-decoration:none;color:var(--sc-ink);transition:border-color .15s,background .15s}
.sc-ad-b:hover{border-color:var(--sc-navy);background:#f8fbff}
.sc-ad-b img{width:72px;height:48px;object-fit:contain;flex:none;border-radius:8px}
.sc-ad-b b{display:block;font-size:14.5px;font-weight:600;line-height:1.3}
.sc-ad-b span span{display:block;font-size:13px;color:var(--sc-ink2);line-height:1.4;margin-top:1px}
.sc-support{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.sc-support svg{width:15px;height:15px;color:var(--sc-star)}
.sc-foot-extra{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:12px 0 0;font-size:13px}
/* the tab bar scrolls sideways on narrow screens: fade the edge that has more tabs past it */
.sc-nav.more-r{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}
.sc-nav.more-l{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent)}
.sc-nav.more-l.more-r{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent)}
/* the edge fade would also hide an open menu, which hangs below the bar */
.sc-nav:has(.sc-simbtn[aria-expanded="true"]){-webkit-mask-image:none !important;mask-image:none !important}
.sc-head .sc-l{flex:1 1 auto}
.sc-head .sc-r{flex:none}
/* first-visit tool intro */
dialog.sc-intro{width:min(520px,calc(100vw - 32px));padding:0;overflow:hidden}
@media (max-width:640px){ dialog.sc-intro{width:100vw} }
@media (min-width:641px){ dialog.sc-intro{margin:auto;border-radius:20px} }   /* tablets: a centered card, not a left-aligned sheet */
.sc-intro-art{background:linear-gradient(180deg,#f6f8f5,#e8ede7);aspect-ratio:800/380}
.sc-intro-art img{width:100%;height:100%;object-fit:contain;display:block}
.sc-intro h2{margin:0 0 10px;font-size:22px;letter-spacing:-.01em;font-weight:600}
.sc-intro p{margin:0 0 10px;font-size:15px;line-height:1.55;color:var(--sc-ink2)}
.sc-intro ul{margin:0 0 10px;padding-left:20px;font-size:14.5px;line-height:1.55;color:var(--sc-ink2)}
.sc-intro-go{display:flex;justify-content:flex-end;margin-top:14px}
/* Simulators menu in the header (v61): Housing, Transit, Budget, Pensions, Your lot */
.sc-sims{display:flex}
.sc-simbtn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:0;border-radius:16px;background:transparent;color:var(--sc-mute);font:inherit;white-space:nowrap;cursor:pointer}
.sc-simbtn svg{width:10px;height:6px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.sc-simbtn[aria-expanded="true"] svg{transform:rotate(180deg)}
.sc-simbtn[aria-current="page"]{background:#fff;color:var(--sc-ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.sc-simbtn:not([aria-current]):hover,.sc-simbtn[aria-expanded="true"]:not([aria-current]){color:var(--sc-ink);background:rgba(255,255,255,.65)}
.sc-simmenu{position:fixed;z-index:1000;min-width:190px;padding:6px;background:#fff;border:1px solid var(--sc-line,#e3e5e8);border-radius:12px;box-shadow:0 10px 30px rgba(20,30,50,.16);display:flex;flex-direction:column;gap:2px;font-size:15px}
.sc-simmenu[hidden]{display:none}
.sc-simhd{padding:6px 10px 4px;font-size:12px;color:var(--sc-mute)}
.sc-simmenu a{padding:9px 10px;border-radius:8px;color:var(--sc-ink);text-decoration:none}
.sc-simmenu a:hover,.sc-simmenu a:focus-visible{background:var(--sc-chip)}
.sc-simmenu a[aria-current="page"]{font-weight:600;color:var(--sc-navy)}
@media (max-width:860px){ .sc-simbtn{padding:7px 9px} }
@media (max-width:440px){ .sc-simbtn{padding:7px 8px} }
@media (prefers-reduced-motion:no-preference){ .sc-simmenu:not([hidden]){animation:scMenuIn .14s ease-out} @keyframes scMenuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}} }

/* Nov 8 (Kyle picked A): what's selected is solid navy everywhere, so it never reads as white on white */
.sc-nav a[aria-current="page"],.sc-simbtn[aria-current="page"]{background:var(--sc-navy);color:#fff;box-shadow:none}
.sc-simbtn[aria-current="page"] svg{stroke:#fff}
.sc-seg button[aria-checked="true"]{background:var(--sc-navy);color:#fff;box-shadow:none}
.sc-seg button.hard[aria-checked="true"]{background:var(--sc-hard);color:#fff}
.sc-seg button:not([aria-checked="true"]):hover{background:#e3e7ec;color:var(--sc-ink)}
.sc-nav a:not([aria-current]):hover,.sc-simbtn:not([aria-current]):hover{background:#e3e7ec}
/* one hover rule: things you can open lift a little and get a navy edge; buttons darken; switches and sliders stay put */
@media (hover:hover){
  .sc-lift{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
  .sc-lift:hover{transform:translateY(-2px);border-color:var(--sc-navy) !important;box-shadow:0 6px 16px rgba(43,93,160,.14) !important}
  .sc-btn{transition:background-color .15s ease,border-color .15s ease}
  .sc-btn:not(.primary):not(:disabled):hover{background:#e9ecf0;border-color:#c4cad2}
}
@media (prefers-reduced-motion:reduce){ .sc-lift:hover{transform:none} }
/* reading pages: a light gray page so white cards stand off it (maps keep their own look) */
:root{--sc-page:#f3f5f7}
/* reading pages share three widths and two headline sizes (Nov 9 review): text 720, lists 860, everything else 1180;
   page titles 40px (heroes on the home page and the tracker are bigger on purpose), card titles 20px */
:root{--sc-w-text:720px; --sc-w-list:860px; --sc-w-wide:1180px; --sc-h1:40px; --sc-h2:20px}
body.sc-gray{background:var(--sc-page)}


/* plan cards (shape/plans.js): home page and /plans/ */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--sc-line);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--sc-ink);font-family:var(--sc-font)}
@media (hover:hover){ .pcard{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease} .pcard:hover{transform:translateY(-2px);border-color:var(--sc-navy);box-shadow:0 6px 16px rgba(43,93,160,.14)} }
.pmapw{position:relative;background:#f3f5f7;display:flex;justify-content:center;padding:12px 0 6px;border-bottom:1px solid var(--sc-line)}
.pmap{height:170px;width:auto;display:block}
.pmap.empty{height:170px}
.pgr{position:absolute;left:12px;top:10px;width:46px;height:46px;display:grid;place-items:center}
.pgr svg{position:absolute;inset:0;width:100%;height:100%;fill:var(--sc-star)}
.pgr i{position:relative;font-style:normal;font-weight:700;font-size:14px;color:#fff;margin-top:1px}
.pgr[data-g="F"] svg,.pgr[data-g="–"] svg{fill:#fff;stroke:var(--sc-star);stroke-width:1.4} .pgr[data-g="F"] i,.pgr[data-g="–"] i{color:var(--sc-star)}
.pmode{position:absolute;right:10px;top:10px;font-size:12px;font-weight:600;background:#fff;border:1px solid var(--sc-line2);border-radius:10px;padding:2px 8px;color:var(--sc-navy)}
.pmode.hard{color:var(--sc-hard)}
.pbody{display:flex;flex-direction:column;gap:8px;padding:14px 16px 14px;flex:1}
.pt{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.pwho{font-size:13px;color:var(--sc-mute);margin-top:-4px}
.pnums{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13.5px;color:var(--sc-ink2)}
.pnums b{font-size:20px;font-weight:600;color:var(--sc-ink);letter-spacing:-.01em}
.pnums span{display:flex;align-items:baseline;gap:5px}
.pchips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:5px}
.pchips li{font-size:12.5px;line-height:1.2;padding:4px 8px;border-radius:8px;background:#eef3fa;color:#1d4580}
.pchips li.policy{background:#eef7f1;color:#1f6b44}
.pchips li.cut{background:#fdecef;color:#a0001b}
.pchips li.more{background:var(--sc-seg);color:var(--sc-mute)}
.pwarn{font-size:12.5px;color:#a0001b}
.pfoot{margin-top:auto;padding-top:6px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.popen{font-size:14px;font-weight:600;color:var(--sc-navy)}
.pend{display:inline-flex;align-items:center;gap:7px;font:600 14px var(--sc-font);min-height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--sc-line2);background:#fff;color:var(--sc-ink);cursor:pointer}
.pend svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.pend b{font-weight:600;color:var(--sc-mute);padding-left:7px;border-left:1px solid var(--sc-line2)}
.pend:not(:disabled):hover{border-color:var(--sc-navy);color:var(--sc-navy)}
.pend.on{background:var(--sc-navy);border-color:var(--sc-navy);color:#fff;cursor:default}
.pend.on b{color:#fff;border-left-color:rgba(255,255,255,.4)}
.pend.on svg{fill:rgba(255,255,255,.25)}
.sc-simmenu a.sc-simalt{margin-top:4px;border-top:1px solid var(--sc-line);border-radius:0 0 8px 8px;padding-top:10px}
/* transit, budget and pensions plan cards: a chart instead of a map, and the simulator's name in the corner */
.pmap.wide{height:auto;width:calc(100% - 28px);max-width:420px;align-self:center}
.pmap.wide text,svg.big.wide text{font-family:var(--sc-font)}
.pcard[class*="sim-"] .pmapw{min-height:189px;align-items:center}
.pmode.sim{color:var(--sc-ink2)}
.pchips li.more{background:var(--sc-seg);color:var(--sc-ink2)}
/* the "share with neighbors" box in each simulator (SCPlans.shareBox) */
.pshare{display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-family:var(--sc-font)}
.pshn{margin:0;font-size:15px;line-height:1.4;color:var(--sc-ink2);display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.pshn b{color:var(--sc-ink);font-weight:600}
.pshalt{font:inherit;font-size:14px;font-weight:600;color:var(--sc-navy);background:none;border:0;padding:6px 0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.pshfine,.pshmsg{margin:0;font-size:13px;color:var(--sc-mute);line-height:1.45}
.pshmsg:empty{display:none} .pshmsg{color:var(--sc-ink2);font-size:14px} .pshmsg a{font-weight:600}
.pshl{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;color:var(--sc-ink);width:100%;max-width:420px}
.pshl i{font-style:normal;font-weight:400;color:var(--sc-mute)}
.pshl input{font:inherit;font-size:16px;font-weight:400;color:var(--sc-ink);background:#fff;border:1px solid #c9cfd6;border-radius:8px;padding:9px 11px;min-height:42px;box-sizing:border-box;width:100%}
.pshl input:focus{outline:2px solid var(--sc-navy);outline-offset:1px;border-color:var(--sc-navy)}
.pshl input[aria-invalid="true"]{border-color:#c4001f;box-shadow:0 0 0 1px #c4001f}
.pshalt{margin-top:-4px}
.pshafter:empty{display:none}
.pdel,.prep{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;color:var(--sc-ink2)}
.pdel button,.prep button{font:inherit;font-size:14px;font-weight:600;background:none;border:0;padding:6px 0;cursor:pointer;text-decoration:underline;text-underline-offset:2px;color:var(--sc-navy)}
.pdel .pdelgo,.pdel .pdelyes{color:#b0001c}
.pdel .pdelyes{background:#b0001c;color:#fff;text-decoration:none;border-radius:999px;padding:6px 14px}
.prep button{color:var(--sc-mute);font-weight:500}
.pdelmsg:empty,.prep span:empty{display:none}
.pkind{align-self:flex-start;font-size:12px;font-weight:600;padding:2px 8px;border-radius:8px;background:#eef3fa;color:#1d4580}
.pkind.k-tall{background:#e3f1f2;color:#0b5f67} .pkind.k-mm{background:#e8f5fb;color:#14607f} .pkind.k-hood{background:#f1ecf8;color:#5b3e8c}
.pkind.k-main{background:#fff3e0;color:#8a4b00} .pkind.k-pol{background:#eef7f1;color:#1f6b44} .pkind.k-all{background:#1a1d21;color:#fff} .pkind.k-cut{background:#fdecef;color:#a0001b}
.psum{font-size:13.5px;color:var(--sc-ink2);line-height:1.35;margin-top:-4px}
.sc-btn:disabled{opacity:.45;cursor:default}

/* Nov 9 review: "Not affiliated" stays in view at every width. Reading pages get the shared footer
   (<footer class="sc-foot" data-sc-foot>, filled by shape.js); tools show .sc-fanline in their panel once the header drops its copy. */
.sc-foot{border-top:1px solid var(--sc-line);margin-top:12px;font-family:var(--sc-font);background:#fff}
.sc-foot-in{max-width:1200px;margin:0 auto;padding:32px 20px 28px;display:grid;grid-template-columns:minmax(200px,1.2fr) 3.8fr;gap:24px 32px;font-size:14px;color:var(--sc-mute)}
.sc-fbrand p{margin:10px 0 0;font-size:13px;line-height:1.45;max-width:240px}
.sc-foot a.sc-brand,.sc-foot a.sc-brand:visited,.sc-foot a.sc-brand:hover{font-size:16px;color:var(--sc-ink);text-decoration:none} .sc-foot .sc-brand svg{width:18px;height:18px} .sc-foot .sc-brand span{display:inline}
.sc-foot nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 24px}
.sc-fcol{display:flex;flex-direction:column;gap:2px;min-width:0}
.sc-fcol h2{font-size:13px;font-weight:600;color:var(--sc-ink);margin:0 0 6px;letter-spacing:0}
.sc-foot nav a{color:var(--sc-ink2);text-decoration:none;padding:4px 0;line-height:1.3}
.sc-foot nav a:hover{color:var(--sc-navy);text-decoration:underline}
.sc-fextra{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;border-top:1px solid var(--sc-line);padding-top:16px;font-size:13px}
.sc-fextra:empty{display:none}
.sc-fextra a{color:var(--sc-ink2);text-decoration:none} .sc-fextra a:hover{color:var(--sc-navy);text-decoration:underline}
.sc-fextra .sc-fblink{margin-right:auto}
.sc-fextra .sc-foot-extra{margin:0}
@media (max-width:860px){ .sc-foot-in{grid-template-columns:1fr} .sc-fbrand p{max-width:none} }
@media (max-width:560px){ .sc-foot-in{padding:26px 16px 22px} .sc-foot nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px} }
.sc-fanline{display:none;margin:14px 0 0;font-size:12px;line-height:1.4;color:var(--sc-mute)}
@media (max-width:1180px){ .sc-fanline{display:block} }
/* touch targets: nav pills 36 px; on touch screens option pills and buttons are at least 40 px tall, footer links sit in 44 px rows,
   and the small (i) keeps its size but answers taps within a 44 px square */
.sc-nav > a,.sc-simbtn{min-height:36px;box-sizing:border-box;display:inline-flex;align-items:center}
.sc-nav > a .sc-nl{white-space:pre}   /* keeps the space in "Permit tracker" now that the pill is a flex box */
@media (pointer:coarse){
  .ib{position:relative}
  .ib::after{content:"";position:absolute;inset:-14px;border-radius:50%}
  .sc-seg button,.seg2 button,.opts button,.chip,.chips button,.tabs button,.sc-btn{min-height:40px !important;box-sizing:border-box}
  footer nav{row-gap:0 !important}
  footer nav a,.sc-fextra a{display:flex;align-items:center;min-height:40px;box-sizing:border-box;padding:0}
}

/* feedback button and form (shape.js scFeedback) */
.sc-fbbtn{display:inline-flex;align-items:center;gap:6px}
@media (max-width:1320px){ .sc-fbbtn span{display:none} .sc-fbbtn{padding-inline:9px !important} }
dialog.sc-fb textarea{display:block;width:100%;box-sizing:border-box;margin:0 0 8px;padding:10px 12px;border:1px solid var(--sc-line);border-radius:12px;font:15px/1.45 var(--sc-font);color:var(--sc-ink);resize:vertical;min-height:110px}
dialog.sc-fb textarea:focus-visible{outline:2px solid var(--sc-navy);outline-offset:1px}
dialog.sc-fb .sc-fbl{display:block;font-size:13px;font-weight:600;margin:4px 0 6px}
dialog.sc-fb .sc-fbn{font-size:12.5px;color:var(--sc-mute)}
dialog.sc-fb .sc-fbm{min-height:1.4em;font-weight:600;color:var(--sc-navy);margin:0 0 6px}
dialog.sc-fb .sc-fbr{display:flex;justify-content:flex-end}
dialog.sc-fb .sc-fbsend{background:var(--sc-navy);border-color:var(--sc-navy);color:#fff;padding:9px 20px;font-weight:600}
dialog.sc-fb .sc-fbsend:disabled{opacity:.6}

/* One look for the zoom and compass buttons and the credit on every MapLibre map (transit, lot, street, Bears) */
.maplibregl-ctrl-group{border-radius:12px !important;border:1px solid var(--sc-line,#e3e5e8);box-shadow:0 1px 4px rgba(20,30,50,.14) !important;overflow:hidden;background:#fff}
.maplibregl-ctrl-group button[class^="maplibregl-ctrl-"]{width:36px !important;height:36px !important}   /* MapLibre's own buttons only; a page's text buttons keep their width */
.maplibregl-ctrl-group button + button{border-top:1px solid var(--sc-line,#e3e5e8) !important}
.maplibregl-ctrl-attrib{font:11px/1.4 var(--sc-font,system-ui,sans-serif)}
.maplibregl-ctrl-attrib.maplibregl-compact{border-radius:12px !important}
.maplibregl-popup-content{border-radius:14px !important;box-shadow:0 8px 28px rgba(20,30,50,.18) !important;font-family:var(--sc-font,system-ui,sans-serif)}

/* One look for map keys (housing, transit, Bears) and for the housing camera buttons, matching the MapLibre controls above */
.sc-mapkey{background:rgba(255,255,255,.96) !important;border:1px solid var(--sc-line,#e3e5e8) !important;border-radius:12px !important;box-shadow:0 1px 4px rgba(20,30,50,.14) !important;padding:9px 12px !important;font-family:var(--sc-font,system-ui,sans-serif) !important;font-size:12.5px !important;line-height:1.3;color:var(--sc-ink2,#3d434b) !important}
.mapctl{background:#fff !important;border:1px solid var(--sc-line,#e3e5e8) !important;border-radius:12px !important;box-shadow:0 1px 4px rgba(20,30,50,.14) !important}
.mapctl button{width:36px !important;height:36px !important}

/* Phones: Menu button + sheet (shape.js); the tab bar hides */
.sc-menubtn{display:none;align-items:center;gap:7px;border:1px solid var(--sc-line2);background:#fff;color:var(--sc-ink);border-radius:20px;padding:0 14px;min-height:40px;font:600 14px var(--sc-font);cursor:pointer}
.sc-menubtn svg{width:18px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
dialog.sc-menu{border:0;padding:0;margin:0 0 0 auto;width:min(360px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;background:#fff;color:var(--sc-ink);font-family:var(--sc-font);overflow-y:auto;box-shadow:-10px 0 40px rgba(20,30,50,.18)}
dialog.sc-menu::backdrop{background:rgba(20,30,50,.35)}
.sc-menu-top{position:sticky;top:0;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--sc-line)}
.sc-menu-top b{font-size:16px}
dialog.sc-menu h2{font-size:13px;font-weight:600;color:var(--sc-mute);margin:16px 16px 4px}
.sc-menu-g{display:flex;flex-direction:column;padding:0 8px}
dialog.sc-menu .sc-menu-g a{display:flex;align-items:center;min-height:44px;padding:0 10px;border-radius:10px;color:var(--sc-ink);text-decoration:none;font-size:16px}
dialog.sc-menu .sc-menu-g a.alt{margin-top:6px;border-top:1px solid var(--sc-line);border-radius:0 0 10px 10px}
dialog.sc-menu .sc-menu-g a[aria-current="page"]{background:var(--sc-navy);color:#fff;font-weight:600;border-radius:10px}
dialog.sc-menu .sc-menu-g a:not([aria-current]):hover{background:var(--sc-chip)}
.sc-menu-more{margin:14px 0 24px;border-top:1px solid var(--sc-line);padding-top:10px}
@media (max-width:640px){ .sc-head .sc-nav{display:none !important} .sc-menubtn{display:inline-flex} .sc-head .sc-l{flex:1;min-width:0} .sc-head .sc-brand span{display:inline;font-size:17px} }
@media (max-width:340px){ .sc-head .sc-brand span{display:none} }
@media (prefers-reduced-motion:no-preference){ dialog.sc-menu[open]{animation:scMenuSlide .2s ease-out} @keyframes scMenuSlide{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}} }

/* language switch (shape.js "Languages") */
.sc-langw{position:relative;display:inline-flex}
.sc-langmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:1000;min-width:150px;padding:6px;background:#fff;border:1px solid var(--sc-line,#e3e5e8);border-radius:12px;box-shadow:0 10px 30px rgba(20,30,50,.16);display:flex;flex-direction:column;gap:2px}
.sc-langmenu[hidden]{display:none}
.sc-langmenu button{all:unset;box-sizing:border-box;cursor:pointer;padding:9px 12px;border-radius:8px;font:15px var(--sc-font);color:var(--sc-ink);min-height:40px;display:flex;align-items:center}
.sc-langmenu button:hover,.sc-langmenu button:focus-visible{background:var(--sc-chip,#eef2f7)}
.sc-langmenu button:focus-visible{outline:2px solid var(--sc-navy);outline-offset:-2px}
.sc-langmenu button[aria-current]{background:var(--sc-navy);color:#fff;font-weight:600}
html.sc-zh body{word-break:normal;line-break:strict}
.sc-head .sc-lang{min-height:32px;padding:0 10px;font-size:13px;font-weight:700;letter-spacing:.02em}
@media (pointer:coarse){ .sc-head .sc-lang{min-height:40px;min-width:40px} }
.sc-langoffer{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center;background:#fff;border:1px solid var(--sc-line);border-radius:16px;box-shadow:0 10px 30px rgba(20,30,50,.18);padding:10px 12px 10px 16px;font:14px var(--sc-font);color:var(--sc-ink);max-width:calc(100vw - 24px)}

/* "Your address" tabs on the lot tool, grants finder and deal check (shape.js) */
.sc-atabs{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 18px}
.sc-athd{font-size:13px;color:var(--sc-mute);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.sc-athd b{color:var(--sc-ink);font-weight:600}
.sc-atl{display:inline-flex;background:#fff;border:1px solid var(--sc-line);border-radius:999px;padding:3px;gap:2px}
.sc-atl a{font-size:14px;font-weight:500;color:var(--sc-ink);text-decoration:none;border-radius:999px;padding:7px 13px;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center}
.sc-atl a:hover{background:#eef1f4}
.sc-atl a[aria-current="page"]{background:var(--sc-navy);color:#fff}
.sc-atshort{display:none}
@media (max-width:560px){ .sc-atl{display:flex;width:100%;box-sizing:border-box} .sc-atl a{flex:1;justify-content:center;padding:7px 6px;text-align:center} .sc-atlong{display:none} .sc-atshort{display:inline} }
@media print{ .sc-atabs{display:none} }

/* bigger tap areas found in the Nov. 12 sweep (links in tables, Springfield bill numbers, deal check assumption rows) */
@media (pointer:coarse){
  td a,.pg .bid{display:inline-block;padding:10px 0;margin:-10px 0}
  .prow{grid-template-columns:minmax(0,1fr) 96px 40px} .prow input{min-height:40px} .prow .rst{width:40px;height:40px}
  .tbtn{min-height:40px}
}

/* skip link (shape.js): hidden until it has keyboard focus */
.sc-skip{position:fixed;left:12px;top:-60px;z-index:1000;background:var(--sc-navy);color:#fff;font:600 15px var(--sc-font);padding:10px 16px;border-radius:10px;text-decoration:none;transition:top .15s}
.sc-skip:focus{top:12px;outline:2px solid #fff;outline-offset:-4px}
[tabindex="-1"]:focus{outline:none}

/* Page header with a clay picture beside the title (grants, deal check, plans, 404). Phones: the picture sits small above the title. */
.sc-pghead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:28px;align-items:center}
.sc-pghead .sc-pgart{width:100%;height:auto;display:block}
@media (max-width:760px){.sc-pghead{grid-template-columns:minmax(0,1fr);gap:4px}.sc-pghead .sc-pgart{order:-1;max-height:140px;width:auto;max-width:100%;justify-self:start}}
@media print{.sc-pghead{display:block}.sc-pghead .sc-pgart{display:none}}
.sc-head.sc-tight .sc-brand span{display:none}

/* the name is ink on every page (some pages color every link navy) */
a.sc-brand,a.sc-brand:visited,a.sc-brand:hover{color:var(--sc-ink) !important;text-decoration:none !important}

/* phones: the header is the name plus one Menu button; language and feedback sit at the foot of the menu */
.sc-menu-foot{border-top:1px solid var(--sc-line);margin:0 6px 24px;padding-top:14px;display:flex;flex-direction:column;gap:12px}
.sc-menu-lang{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:var(--sc-seg,#eef1f4);border-radius:12px;padding:3px}
.sc-menu-lang button{all:unset;box-sizing:border-box;text-align:center;min-height:40px;border-radius:9px;font:600 14px var(--sc-font);color:var(--sc-ink2);cursor:pointer}
.sc-menu-lang button[aria-pressed="true"]{background:var(--sc-navy);color:#fff}
.sc-menu-lang button:focus-visible{outline:2px solid var(--sc-navy);outline-offset:1px}
.sc-menu-fb{align-self:flex-start}
dialog.sc-menu .sc-menu-more{margin-bottom:10px}
@media (max-width:640px){ .sc-head .sc-langw,.sc-head .sc-fbbtn{display:none !important} }

/* ======================================================================================================
   ONE SET OF CONTROLS (Nov. 12, 2026). Every page's buttons, switches, chips, menus and fields look the same.
   Pages kept their own class names, so this maps them all here; "html body" + !important wins over page styles.
     Button       .sc-btn .btn .nbtn button.more          40 px pill, white with a gray edge; primary = navy
     Switch row   .sc-seg .seg .seg2 .tabs .stabs #layers  gray track, options 34 px pills, picked = navy
     Chips        .chips .opts .tryrow .chiprow .bfilt      34 px pills with a gray edge, picked = navy
     Fields       select, text/search/number inputs         40 px, 10 px corners, gray edge
     (i)          .ib                                       22 px circle
   On touch screens options and chips grow to 40 px. New pages: use .sc-btn, .sc-seg, .chips and plain fields.
   ====================================================================================================== */
html{accent-color:var(--sc-navy)}
html body :is(.sc-btn,.btn,button.nbtn,button.more):not(.sc-head *):not(.sc-switch){min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--sc-line2);background:#fff;color:var(--sc-ink);font:600 14px/1.2 var(--sc-font);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;white-space:nowrap}
html body :is(.sc-btn,.btn,button.nbtn,button.more):not(.sc-head *):not(.sc-switch):hover{background:var(--sc-seg)}
html body :is(.sc-btn.primary,.sc-btn.sc-primary,.btn.primary,.btn.dark,button.nbtn):not(.sc-head *){background:var(--sc-navy);border-color:var(--sc-navy);color:#fff}
html body :is(.sc-btn.primary,.sc-btn.sc-primary,.btn.primary,.btn.dark,button.nbtn):not(.sc-head *):hover{background:var(--sc-navy2);border-color:var(--sc-navy2)}
html body .btn.quiet{background:transparent !important;border-color:transparent !important;color:var(--sc-navy) !important;border-radius:999px !important}
html body #playRow > button{border-radius:999px !important}
html body .btn.quiet:hover{background:var(--sc-seg)}
/* buttons on the dark walkthrough tip: light text and a white main button so both read on the dark card */
html body .tip .btn.quiet{color:#d6e4f5 !important}
html body .tip .btn.quiet:hover{background:rgba(255,255,255,.12) !important}
html body .tip .btn.primary{background:#fff !important;border-color:#fff !important;color:var(--sc-ink) !important}
html body .tip .btn.primary:hover{background:#e8eef6 !important;border-color:#e8eef6 !important}
html body :is(.sc-btn,.btn):disabled{opacity:.45;cursor:default}
html body .btn[aria-pressed="true"]{background:var(--sc-navy);border-color:var(--sc-navy);color:#fff}

html body :is(.sc-seg,.seg,.seg2,.tabs,.stabs):not(.sc-head *){background:var(--sc-seg) !important;border:0 !important;border-radius:999px !important;padding:3px !important;gap:2px !important;box-shadow:none !important}
html body :is(.sc-seg,.seg,.seg2,.tabs,.stabs):not(.sc-head *) > button{min-height:34px;padding:0 14px !important;border:0 !important;border-radius:999px !important;background:transparent !important;color:var(--sc-ink2) !important;font:600 14px/1.15 var(--sc-font) !important;box-shadow:none !important;box-sizing:border-box;cursor:pointer}
html body :is(.sc-seg,.seg,.seg2,.tabs,.stabs):not(.sc-head *) > button:is([aria-pressed="true"],[aria-checked="true"],[aria-selected="true"],[aria-current="page"],.on){background:var(--sc-navy) !important;color:#fff !important}
html body :is(.sc-seg,.seg,.seg2,.tabs,.stabs):not(.sc-head *) > button:not([aria-pressed="true"]):not([aria-checked="true"]):not([aria-selected="true"]):not(.on):hover{background:rgba(255,255,255,.75) !important;color:var(--sc-ink) !important}
html body .sc-seg > button.hard{color:var(--sc-hard,#b3001e) !important}
html body .sc-seg > button.hard[aria-checked="true"]{background:var(--sc-hard,#b3001e) !important;color:#fff !important}
html body .seg::before{display:none !important}
html body .sheet .tabs > button{padding:0 9px !important;font-size:13.5px !important}
html body #layers{gap:4px !important}

html body :is(.chips,.opts,.tryrow,.chiprow,.vote,#layers,.bfilt:not(.seg)) > button:not(.sc-switch),html body button.chip{min-height:34px;padding:0 14px !important;border:1px solid var(--sc-line2) !important;border-radius:999px !important;background:#fff !important;color:var(--sc-ink2) !important;font:600 14px/1.2 var(--sc-font) !important;box-sizing:border-box;cursor:pointer;box-shadow:none !important}
html body :is(.chips,.opts,.tryrow,.chiprow,.vote,#layers,.bfilt:not(.seg)) > button:not(.sc-switch):is([aria-pressed="true"],[aria-checked="true"],.on),html body button.chip[aria-pressed="true"]{background:var(--sc-navy) !important;border-color:var(--sc-navy) !important;color:#fff !important}
html body :is(.chips,.opts,.tryrow,.chiprow,.vote,#layers,.bfilt:not(.seg)) > button:not(.sc-switch):not([aria-pressed="true"]):not([aria-checked="true"]):not(.on):hover,html body button.chip:not([aria-pressed="true"]):hover{border-color:var(--sc-navy) !important;color:var(--sc-ink) !important}
html body :is(.chips,.opts,.tryrow,.chiprow,.bfilt:not(.seg)) > button span{font-weight:400;opacity:.75}
html body .bfilt.seg > button{border:0 !important}

html body :is(select,input[type=text],input[type=search],input[type=number],input[type=email],input[type=url],input:not([type]),textarea):not(.sc-head *):not(.maplibregl-ctrl *):not(.incbox input):not(dialog.sc-menu *){min-height:40px;box-sizing:border-box;border:1px solid var(--sc-line2);border-radius:10px;background-color:#fff;color:var(--sc-ink);font:400 15px/1.3 var(--sc-font);padding:0 12px}
html body textarea:not(.sc-head *){padding:10px 12px;min-height:96px}
html body :is(select,input,textarea):not(.sc-head *):focus-visible{outline:2px solid var(--sc-navy);outline-offset:1px;border-color:var(--sc-navy)}
html body button.ib{width:22px !important;height:22px !important;min-height:0 !important;padding:0 !important;border-radius:50% !important;border:1px solid var(--sc-line2) !important;background:#fff !important;color:var(--sc-ink2) !important;font:700 12px/1 var(--sc-font) !important;display:inline-grid;place-items:center;flex:none;cursor:pointer}
html body button.ib:hover{border-color:var(--sc-navy) !important;color:var(--sc-navy) !important}
@media (pointer:coarse){
  html body :is(.sc-seg,.seg,.seg2,.tabs,.stabs):not(.sc-head *) > button,html body :is(.chips,.opts,.tryrow,.chiprow,.vote,#layers,.bfilt) > button:not(.sc-switch),html body button.chip{min-height:40px}
  html body :is(.sc-btn,.btn,button.nbtn,button.more):not(.sc-head *){min-height:44px}
}
@media (max-width:640px){ html body :is(select,input[type=text],input[type=search],input[type=number],input[type=email],input:not([type]),textarea):not(.sc-head *){font-size:16px} }

html.sc-nofan .sc-head .sc-fan{display:none !important}
html.sc-nofan .sc-fanline,html.sc-nofan .fan2{display:block !important}
html.sc-nofan .credit .cfan{display:inline !important}

/* ======================================================================================================
   ONE PAGE HEADER AND ONE PAGE WIDTH (Nov. 12, 2026). Every reading page:
     <main class="sc-main [sc-narrow]">
       <div class="sc-pghead"><div>
         <p class="sc-trail"><a href="/">Home</a> › …</p>     where you are (the address pages use their tab row instead)
         <h1>Short page name</h1>
         <p class="sc-lede">One or two sentences: what this page answers.</p>
         <p class="sc-updated">Updated … / Data through …</p>  when the page has data
       </div><img class="sc-pgart" …></div>                   the page's clay picture
   .sc-main is 1180 px wide with the same padding everywhere; .sc-narrow keeps text below the header at 720 px.
   ====================================================================================================== */
html body main.sc-main{max-width:var(--sc-w-wide) !important;margin:0 auto !important;padding:36px max(24px,env(safe-area-inset-left)) 72px !important;box-sizing:border-box !important}
html body main.sc-main.sc-narrow > :not(.sc-pghead):not(.sc-atabs){max-width:var(--sc-w-text) !important}
html body main.sc-main.sc-listw > :not(.sc-pghead){max-width:var(--sc-w-list) !important}
html body .sc-pghead{display:grid !important;grid-template-columns:minmax(0,1fr) minmax(0,340px) !important;gap:36px !important;align-items:center !important;margin:0 0 28px !important;padding:0 !important}
html body .sc-pghead > div{min-width:0 !important}
html body .sc-pghead .sc-pgart{width:100% !important;height:auto !important;max-height:220px !important;object-fit:contain !important;justify-self:end !important;display:block !important}
html body .sc-pghead :is(.sc-trail,.eyebrow){font:500 13.5px/1.4 var(--sc-font) !important;color:var(--sc-mute) !important;margin:0 0 10px !important;letter-spacing:0 !important;text-transform:none !important}
html body .sc-pghead :is(.sc-trail,.eyebrow) a{color:var(--sc-mute) !important;text-decoration:underline !important;text-decoration-color:var(--sc-line2) !important;text-underline-offset:3px !important}
html body .sc-pghead :is(.sc-trail,.eyebrow) a:hover{color:var(--sc-navy) !important;text-decoration-color:currentColor !important}
html body .sc-pghead h1{font:600 40px/1.1 var(--sc-font) !important;letter-spacing:-.025em !important;color:var(--sc-ink) !important;margin:0 0 12px !important;max-width:none !important}
html body .sc-pghead .sc-lede{font:400 18px/1.5 var(--sc-font) !important;color:var(--sc-ink2) !important;margin:0 !important;max-width:64ch !important}
html body .sc-pghead .sc-updated{font:400 13px/1.45 var(--sc-font) !important;color:var(--sc-mute) !important;margin:12px 0 0 !important}
html body .sc-pghead .sc-lede + .sc-lede{margin-top:10px !important}
@media (max-width:760px){
  html body main.sc-main{padding:20px 16px 56px !important}
  html body .sc-pghead{grid-template-columns:minmax(0,1fr) !important;gap:10px !important;margin-bottom:20px !important}
  html body .sc-pghead .sc-pgart{order:-1 !important;max-height:150px !important;width:auto !important;max-width:100% !important;justify-self:start !important}
  html body .sc-pghead h1{font-size:30px !important}
  html body .sc-pghead .sc-lede{font-size:17px !important}
}
@media print{ html body .sc-pghead{display:block !important} html body .sc-pghead .sc-pgart{display:none !important} }
html body .sc-pghead.noart{grid-template-columns:minmax(0,1fr) !important}

/* clay motion (shape.js): loaders, pop-in, hover tip, A+ burst, page slide */
.sc-loading{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 12px;text-align:center;font:600 15px/1.4 var(--sc-font);color:var(--sc-ink2)}
.sc-loading img{width:192px;height:auto;max-width:70%}
.sc-spinrow{display:inline-flex;align-items:center;gap:10px;font:inherit;color:var(--sc-ink2)}
.sc-spin{width:28px;height:auto;flex:none}
[data-popin].sc-popready :is(img,svg.picon){opacity:0;transform:scale(.6) translateY(8px)}
[data-popin].sc-popgo :is(img,svg.picon){animation:sc-pop .5s cubic-bezier(.3,1.6,.5,1) forwards}
[data-popin].sc-popgo > :nth-child(2) :is(img,svg.picon),[data-popin].sc-popgo > :nth-child(2):is(img){animation-delay:.06s}
[data-popin].sc-popgo > :nth-child(3) :is(img,svg.picon),[data-popin].sc-popgo > :nth-child(3):is(img){animation-delay:.12s}
[data-popin].sc-popgo > :nth-child(4) :is(img,svg.picon),[data-popin].sc-popgo > :nth-child(4):is(img){animation-delay:.18s}
[data-popin].sc-popgo > :nth-child(5) :is(img,svg.picon),[data-popin].sc-popgo > :nth-child(5):is(img){animation-delay:.24s}
[data-popin].sc-popgo > :nth-child(6) :is(img,svg.picon),[data-popin].sc-popgo > :nth-child(6):is(img){animation-delay:.3s}
[data-popin].sc-popgo > :nth-child(n+7) :is(img,svg.picon){animation-delay:.36s}
@keyframes sc-pop{to{opacity:1;transform:none}}
/* hover tip: the clay picture in a card you can open tips a little */
@media (hover:hover){
  :is([data-popin] a,[data-popin] button,.dmodes button,.tier,a.pcard) img{transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
  :is([data-popin] a,[data-popin] button,.dmodes button,.tier,a.pcard):hover img{transform:rotate(-5deg) scale(1.07)}
}
.sc-burst{position:fixed;z-index:200;pointer-events:none;width:0;height:0}
.sc-burst i{position:absolute;left:-15px;top:-15px;width:30px;height:30px;background:url(/shape/art/motion/star_still.png) center/contain no-repeat;opacity:0;animation:sc-fly 1.1s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes sc-fly{0%{opacity:0;transform:translate(0,0) scale(.3) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(1) rotate(var(--r))}}
.sc-stamp{animation:sc-gpop .5s cubic-bezier(.3,1.7,.5,1)}
@keyframes sc-gpop{from{transform:scale(.5) rotate(-12deg)}to{transform:none}}
@media (prefers-reduced-motion:reduce){ [data-popin].sc-popready :is(img,svg.picon){opacity:1;transform:none;animation:none !important} .sc-stamp{animation:none} }
/* touch targets on (i) reach 14px past the button; never let that widen the page */
@media (pointer:coarse){ html{overflow-x:clip} }

.sc-fcol a{white-space:normal !important;overflow-wrap:anywhere;max-width:100%}

/* sliding highlight in every switch row (shape.js "Switch rows slide") */
.sc-slide > .sc-thumb{position:absolute;left:0;top:0;z-index:0;border-radius:999px;background:var(--sc-navy);pointer-events:none;opacity:0;transition:transform .3s cubic-bezier(.3,.8,.25,1),width .3s cubic-bezier(.3,.8,.25,1),height .3s,background-color .3s,opacity .15s}
.sc-slide > .sc-thumb.hard{background:var(--sc-hard,#b3001e)}
html body .sc-slide > button{position:relative;z-index:1;transition:color .2s}
html body :is(.sc-seg,.seg,.seg2,.tabs,.stabs).sc-slide.sc-slide:not(.sc-head *) > button{background:transparent !important}
@media (prefers-reduced-motion:reduce){ .sc-slide > .sc-thumb{transition:none} }
/* the on/off switch keeps its shape everywhere, whatever row it sits in (an iPad touch rule had stretched it into a pill) */
html body button.sc-switch{width:46px !important;height:28px !important;min-height:0 !important;min-width:0 !important;padding:0 !important;border:0 !important;border-radius:14px !important;flex:none !important;box-sizing:border-box !important}
/* the address tabs use their short names whenever their own box is narrow (the lot tool's panel on an iPad), not only on phones */
.sc-atabs{container-type:inline-size}
@container (max-width:600px){ .sc-atl{display:flex;width:100%;box-sizing:border-box} .sc-atl a{flex:1;justify-content:center;padding:7px 6px;text-align:center} .sc-atlong{display:none} .sc-atshort{display:inline} }
