/* Curb and Container — dsnycolumbia.org — curbside signage direction.
   asphalt grey / sanitation white-green / safety orange / stencil numerals.
   System type only, zero external request. Prefix ccb- everywhere. */
:root{
  --ccb-asphalt:#2b2f33; --ccb-asphalt-deep:#1d2023; --ccb-concrete:#e8e9e4;
  --ccb-paper:#f6f7f2; --ccb-sanwhite:#f2f5ef; --ccb-sangreen:#0e6e4e;
  --ccb-sangreen-deep:#0a4f38; --ccb-safety:#e85d04; --ccb-safety-deep:#b34400;
  --ccb-stencil:#f4a300; --ccb-ink:#22262a; --ccb-ink-soft:#4c545b;
  --ccb-line:#c9cdc2; --ccb-line-strong:#9aa098; --ccb-select:#ffe1c2;
  --ccb-ok:#0e6e4e; --ccb-warn:#e85d04;
  --ccb-serif:Georgia,"Times New Roman",serif;
  --ccb-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Verdana,Arial,sans-serif;
  --ccb-cond:"Arial Narrow","Helvetica Neue Condensed",Impact,Haettenschweiler,sans-serif;
  --ccb-frame:72rem; --ccb-measure:42rem; --ccb-gutter:1.5rem; --ccb-step:1.5rem;
  --ccb-radius:.25rem;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ccb-paper);color:var(--ccb-ink);font-family:var(--ccb-serif);font-size:1.075rem;line-height:1.6}
::selection{background:var(--ccb-select)}
img{max-width:100%;height:auto;display:block}
a{color:var(--ccb-sangreen-deep);text-decoration-thickness:.09em;text-underline-offset:.14em}
a:hover{color:var(--ccb-safety-deep)}
h1,h2,h3,h4{font-family:var(--ccb-sans);line-height:1.18;color:var(--ccb-asphalt-deep);text-wrap:balance}
h1{font-size:clamp(1.9rem,4.5vw,2.9rem);letter-spacing:-.01em;margin:0 0 .7rem}
h2{font-size:clamp(1.3rem,2.6vw,1.7rem);margin:2.2rem 0 .6rem;padding-top:1rem;border-top:.1875rem solid var(--ccb-asphalt)}
h3{font-size:1.15rem;margin:1.4rem 0 .4rem}
p{margin:.8rem 0}
ul,ol{margin:.8rem 0;padding-left:1.4rem}
li{margin:.3rem 0}
.ccb-jump{position:absolute;left:-9999px;top:0;background:var(--ccb-asphalt);color:#fff;padding:.6rem 1rem;z-index:99}
.ccb-jump:focus{left:.5rem;top:.5rem}
.ccb-ledge{max-width:var(--ccb-frame);margin:0 auto;padding:0 1.25rem}
/* tape strip above header */
.ccb-tape{background:repeating-linear-gradient(-45deg,var(--ccb-stencil) 0 1.1rem,var(--ccb-asphalt-deep) 1.1rem 2.2rem);height:.55rem}
/* header */
.ccb-studio{background:var(--ccb-asphalt);color:#fff;border-bottom:.375rem solid var(--ccb-safety)}
.ccb-studio__row{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;padding:.9rem 1.25rem}
.ccb-signet{color:#fff;text-decoration:none;font-family:var(--ccb-cond);font-weight:700;font-size:1.5rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.05}
.ccb-signet small{display:block;font-family:var(--ccb-sans);font-weight:400;font-size:.72rem;letter-spacing:.02em;text-transform:none;color:var(--ccb-concrete)}
.ccb-signet__no{display:inline-block;background:var(--ccb-safety);color:#fff;font-size:.8rem;padding:.05rem .5rem;margin-right:.5rem;letter-spacing:.12em}
.ccb-porch{margin-left:auto;position:relative}
.ccb-porch__toggle{position:absolute;opacity:0;pointer-events:none}
.ccb-porch__handle{display:none;font-family:var(--ccb-cond);text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;border:.125rem solid #fff;color:#fff;padding:.4rem .9rem;cursor:pointer;background:transparent}
.ccb-porch ul{display:flex;gap:.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.ccb-porch li{margin:0}
.ccb-porch a{display:block;color:#fff;text-decoration:none;font-family:var(--ccb-sans);font-size:.92rem;font-weight:600;padding:.55rem .8rem;border:.125rem solid transparent}
.ccb-porch a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35)}
.ccb-porch a[aria-current="page"]{background:var(--ccb-safety);border-color:var(--ccb-safety)}
/* breadcrumb */
.ccb-trail{background:var(--ccb-sanwhite);border-bottom:1px solid var(--ccb-line)}
.ccb-trail ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:.55rem 0;font-family:var(--ccb-sans);font-size:.85rem}
.ccb-trail li{margin:0}
.ccb-trail li+li::before{content:"›";margin-right:.4rem;color:var(--ccb-ink-soft)}
.ccb-trail [aria-current="page"]{color:var(--ccb-ink-soft)}
/* hero: photo BESIDE h1 */
.ccb-front{background:var(--ccb-asphalt);color:#fff}
.ccb-front__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center;padding:2.2rem 1.25rem 2.4rem}
.ccb-front__kicker{font-family:var(--ccb-cond);text-transform:uppercase;letter-spacing:.14em;font-size:.85rem;color:var(--ccb-stencil);margin:0 0 .5rem}
.ccb-front h1{color:#fff;margin:0 0 .6rem}
.ccb-front__deck{font-size:1.12rem;color:var(--ccb-concrete);margin:0 0 1.1rem;max-width:34rem}
.ccb-front__meta{display:flex;gap:.6rem;flex-wrap:wrap;font-family:var(--ccb-sans);font-size:.83rem;color:var(--ccb-concrete)}
.ccb-front__meta span{border:1px solid rgba(255,255,255,.35);padding:.15rem .6rem}
.ccb-front__cta{display:inline-block;background:var(--ccb-safety);color:#fff;text-decoration:none;font-family:var(--ccb-sans);font-weight:700;padding:.7rem 1.4rem;margin-top:1.1rem;border:.125rem solid var(--ccb-safety)}
.ccb-front__cta:hover{background:var(--ccb-safety-deep);color:#fff}
.ccb-front__ghost{display:inline-block;color:#fff;text-decoration:none;font-family:var(--ccb-sans);font-weight:600;padding:.7rem 1.2rem;margin-top:1.1rem;margin-left:.6rem;border:.125rem solid rgba(255,255,255,.6)}
.ccb-front__ghost:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.ccb-front figure{margin:0;border:.375rem solid #fff;box-shadow:0 .4rem 1.4rem rgba(0,0,0,.35)}
.ccb-front img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ccb-front figcaption{font-family:var(--ccb-sans);font-size:.78rem;background:#fff;color:var(--ccb-ink-soft);padding:.35rem .7rem}
/* stencil numerals */
.ccb-stencil{font-family:var(--ccb-cond);letter-spacing:.18em;color:var(--ccb-stencil)}
/* section bands */
.ccb-band{padding:2.4rem 0}
.ccb-band--paper{background:var(--ccb-paper)}
.ccb-band--wash{background:var(--ccb-sanwhite);border-top:1px solid var(--ccb-line);border-bottom:1px solid var(--ccb-line)}
.ccb-band--dark{background:var(--ccb-asphalt-deep);color:#f0f1ec}
.ccb-band--dark h2,.ccb-band--dark h3{color:#fff;border-top-color:var(--ccb-stencil)}
.ccb-band--dark a{color:var(--ccb-stencil)}
.ccb-band--dark a:hover{color:#fff}
.ccb-band--dark .ccb-card{background:#262b30;border-color:#454c53;color:#eef0ea}
.ccb-band--dark .ccb-card p{color:#cfd4cc}
.ccb-band--dark .ccb-kicker{color:var(--ccb-stencil)}
.ccb-band__head{display:grid;grid-template-columns:auto 1fr;gap:0 1.25rem;align-items:baseline;margin-bottom:1.2rem}
.ccb-band__no{font-family:var(--ccb-cond);font-size:1rem;letter-spacing:.2em;color:#fff;background:var(--ccb-asphalt);padding:.2rem .7rem;text-transform:uppercase}
.ccb-band--wash .ccb-band__no{background:var(--ccb-sangreen)}
.ccb-band--dark .ccb-band__no{background:var(--ccb-safety)}
.ccb-kicker{font-family:var(--ccb-cond);text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;color:var(--ccb-safety-deep);margin:0}
.ccb-band__head h2{border:0;padding:0;margin:.2rem 0 .3rem;grid-column:2}
.ccb-band__head .ccb-chapo{grid-column:2;margin:0 0 .4rem;color:var(--ccb-ink-soft);font-family:var(--ccb-sans);font-size:.98rem;max-width:46rem}
.ccb-band--dark .ccb-band__head .ccb-chapo{color:#c8cec6}
/* tiles: numbered photo sections */
.ccb-tiles{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.ccb-tile{margin:0;background:#fff;border:1px solid var(--ccb-line);border-top:.375rem solid var(--ccb-safety);display:flex;flex-direction:column}
.ccb-tile__face{overflow:hidden}
.ccb-tile__face img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ccb-tile__body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.ccb-tile__num{font-family:var(--ccb-cond);letter-spacing:.2em;font-size:.8rem;color:var(--ccb-safety-deep);text-transform:uppercase}
.ccb-tile h3{margin:0;font-size:1.08rem}
.ccb-tile h3 a{text-decoration:none;color:var(--ccb-asphalt-deep)}
.ccb-tile h3 a:hover{color:var(--ccb-safety-deep);text-decoration:underline}
.ccb-tile__note{font-size:.92rem;color:var(--ccb-ink-soft);margin:0}
.ccb-tile__cap{font-family:var(--ccb-sans);font-size:.8rem;color:var(--ccb-ink-soft);border-top:1px dashed var(--ccb-line);padding-top:.5rem;margin:.3rem 0 0}
/* cards grid */
.ccb-cards{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.ccb-card{margin:0;background:#fff;border:1px solid var(--ccb-line);display:flex;flex-direction:column}
.ccb-card__face img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ccb-card__body{padding:.95rem 1.05rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.ccb-card__tag{font-family:var(--ccb-cond);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ccb-sangreen-deep);margin:0}
.ccb-card h3{margin:0;font-size:1.02rem}
.ccb-card h3 a{text-decoration:none;color:var(--ccb-asphalt-deep)}
.ccb-card h3 a:hover{color:var(--ccb-sangreen-deep);text-decoration:underline}
.ccb-card p{font-size:.9rem;color:var(--ccb-ink-soft);margin:0}
.ccb-card__cap{font-family:var(--ccb-sans);font-size:.79rem;color:var(--ccb-ink-soft);border-top:1px dashed var(--ccb-line);padding-top:.45rem;margin-top:.3rem}
/* curated strip: two explicit columns */
.ccb-curate__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}
.ccb-curate__col{background:#fff;border:1px solid var(--ccb-line);padding:1.2rem 1.3rem}
.ccb-curate__col h3{margin-top:0;border-top:.25rem solid var(--ccb-safety);padding-top:.6rem}
.ccb-curate__col ul{margin:.5rem 0;padding-left:1.2rem}
.ccb-curate__col li{font-size:.95rem}
.ccb-curate__photo{margin:0}
.ccb-curate__photo img{width:100%;aspect-ratio:16/9;object-fit:cover;border:.25rem solid var(--ccb-asphalt)}
.ccb-curate__photo figcaption{font-family:var(--ccb-sans);font-size:.78rem;color:var(--ccb-ink-soft);padding-top:.35rem}
/* signal strip: two explicit columns */
.ccb-signal__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:stretch}
.ccb-signal__col{background:#23282d;border:1px solid #454c53;padding:1.3rem 1.4rem;color:#eef0ea}
.ccb-signal__col h3{color:#fff;margin-top:0}
.ccb-signal__col p{font-size:.95rem;color:#cfd4cc}
.ccb-signal__col ul{margin:.5rem 0;padding-left:1.2rem;font-size:.93rem}
.ccb-signal__list{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.55rem}
.ccb-signal__list li{margin:0}
.ccb-signal__list a{display:block;background:#2c3238;border-left:.375rem solid var(--ccb-stencil);color:#fff;text-decoration:none;padding:.6rem .9rem;font-family:var(--ccb-sans);font-size:.93rem;font-weight:600}
.ccb-signal__list a:hover{background:#343b42}
.ccb-signal__list small{display:block;font-weight:400;color:#b9c0b8;font-size:.8rem}
/* article plate */
.ccb-plate{background:#fff;border:1px solid var(--ccb-line);border-top:.5rem solid var(--ccb-asphalt);margin:1.6rem 0;padding:0}
.ccb-plate__head{padding:1.6rem 1.8rem .4rem;max-width:var(--ccb-measure)}
.ccb-plate__head h1{margin-bottom:.5rem}
.ccb-plate__chapo{font-size:1.12rem;color:var(--ccb-ink-soft);font-family:var(--ccb-sans)}
.ccb-plate__meta{list-style:none;display:flex;gap:.8rem;flex-wrap:wrap;margin:.8rem 0 0;padding:0;font-family:var(--ccb-sans);font-size:.82rem;color:var(--ccb-ink-soft)}
.ccb-plate__meta li{margin:0;background:var(--ccb-sanwhite);border:1px solid var(--ccb-line);padding:.15rem .6rem}
.ccb-plate__hero{margin:1rem 1.8rem 0;border:.25rem solid var(--ccb-asphalt)}
.ccb-plate__hero img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ccb-plate__hero figcaption{font-family:var(--ccb-sans);font-size:.8rem;color:var(--ccb-ink-soft);padding:.4rem .2rem 0}
.ccb-plate__cols{display:grid;grid-template-columns:minmax(0,1fr) 17rem;gap:2rem;padding:1.2rem 1.8rem 1.8rem;align-items:start}
.ccb-stack{max-width:var(--ccb-measure);font-size:1.04rem}
.ccb-stack h2:first-child{margin-top:.4rem}
.ccb-stack table{width:100%;border-collapse:collapse;font-size:.92rem;font-family:var(--ccb-sans)}
.ccb-stack th,.ccb-stack td{border:1px solid var(--ccb-line);padding:.45rem .6rem;text-align:left}
.ccb-stack th{background:var(--ccb-sanwhite)}
.ccb-stack tr:nth-child(even) td{background:#fafbf8}
.ccb-rail{border:1px solid var(--ccb-line);background:var(--ccb-sanwhite);padding:1rem 1.1rem;font-family:var(--ccb-sans);font-size:.88rem}
.ccb-rail h2{font-size:.95rem;border:0;padding:0;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.1em;font-family:var(--ccb-cond)}
.ccb-rail ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.ccb-rail li{margin:0}
.ccb-rail a{text-decoration:none;font-weight:600}
.ccb-rail a:hover{text-decoration:underline}
.ccb-rail img{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:.3rem}
.ccb-rail small{color:var(--ccb-ink-soft)}
.ccb-onward{border-top:.25rem solid var(--ccb-safety);margin-top:1.8rem;padding-top:1rem}
.ccb-onward h2{border:0;padding:0;margin:0 0 .5rem;font-size:1.1rem}
.ccb-onward ul{margin:.4rem 0;padding-left:1.2rem}
/* hub list rows */
.ccb-rows{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:1rem}
.ccb-row{margin:0;display:grid;grid-template-columns:16rem 1fr;gap:1.2rem;background:#fff;border:1px solid var(--ccb-line);padding:.9rem;align-items:start}
.ccb-row img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ccb-row h3{margin:0 0 .3rem}
.ccb-row h3 a{text-decoration:none;color:var(--ccb-asphalt-deep)}
.ccb-row p{margin:.2rem 0;font-size:.93rem;color:var(--ccb-ink-soft)}
.ccb-row__cap{font-family:var(--ccb-sans);font-size:.79rem;color:var(--ccb-ink-soft)}
/* gallery band */
.ccb-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;list-style:none;margin:1rem 0 0;padding:0}
.ccb-gallery li{margin:0}
.ccb-gallery figure{margin:0;background:#fff;border:1px solid var(--ccb-line);padding:.5rem}
.ccb-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ccb-gallery figcaption{font-family:var(--ccb-sans);font-size:.78rem;color:var(--ccb-ink-soft);padding-top:.35rem}
/* footer */
.ccb-mount{background:var(--ccb-asphalt-deep);color:#e9ebe4;border-top:.375rem solid var(--ccb-safety)}
.ccb-mount__row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;padding:2rem 1.25rem 1.4rem}
.ccb-mount h2{font-family:var(--ccb-cond);font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ccb-stencil);border:0;padding:0;margin:0 0 .6rem}
.ccb-mount ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.ccb-mount li{margin:0}
.ccb-mount a{color:#e9ebe4;text-decoration:none;font-family:var(--ccb-sans);font-size:.9rem}
.ccb-mount a:hover{color:var(--ccb-stencil);text-decoration:underline}
.ccb-mount p{font-size:.88rem;color:#b9c0b8;font-family:var(--ccb-sans)}
.ccb-mount__foot{border-top:1px solid #454c53;padding:1rem 1.25rem;font-family:var(--ccb-sans);font-size:.83rem;color:#b9c0b8;display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between}
/* 404 */
.ccb-lost{padding:3rem 0;text-align:left}
/* responsive */
@media (max-width:56rem){
  .ccb-front__grid{grid-template-columns:1fr}
  .ccb-tiles,.ccb-cards{grid-template-columns:1fr 1fr}
  .ccb-plate__cols{grid-template-columns:1fr}
  .ccb-curate__grid,.ccb-signal__grid{grid-template-columns:1fr}
  .ccb-mount__row{grid-template-columns:1fr 1fr}
  .ccb-gallery{grid-template-columns:1fr 1fr}
  .ccb-row{grid-template-columns:12rem 1fr}
}
/* mobile menu: collapsed under threshold, bar above */
@media (max-width:52rem){
  .ccb-porch__handle{display:inline-block}
  .ccb-porch ul{display:none;position:absolute;right:0;top:calc(100% + .5rem);background:var(--ccb-asphalt-deep);border:1px solid #454c53;min-width:15rem;z-index:50;padding:.5rem}
  .ccb-porch__toggle:checked ~ ul{display:grid;gap:.15rem}
  .ccb-porch a{padding:.6rem .8rem}
}
@media (min-width:52.01rem){
  .ccb-porch__handle{display:none}
  .ccb-porch ul{display:flex}
}
@media (max-width:38rem){
  .ccb-tiles,.ccb-cards{grid-template-columns:1fr}
  .ccb-mount__row{grid-template-columns:1fr}
  .ccb-row{grid-template-columns:1fr}
  .ccb-band__head{grid-template-columns:1fr}
  .ccb-band__head h2,.ccb-band__head .ccb-chapo{grid-column:1}
}
@media print{
  .ccb-porch,.ccb-tape,.ccb-front__cta,.ccb-front__ghost,.ccb-signal{display:none}
  body{background:#fff}
}
.ccb-signal__title{font-size:1.25rem;color:#fff;border:0;padding:0;margin:.3rem 0 .5rem}
.ccb-curate__title{font-size:1.3rem;margin:.2rem 0 .5rem}
