.sprint-pitch {
  --pitch-ink: #182923;
  --pitch-green: #234b39;
  --pitch-deep: #19362c;
  --pitch-muted: #485a51;
  --pitch-rule: #cad3c5;
  --pitch-accent: #d9f087;
  color: var(--pitch-ink);
  margin-bottom: clamp(3rem, 7vw, 6rem);
}
.sprint-pitch :where(section[id]) { scroll-margin-top: 1.25rem; }
.pitch-crumb, .pitch-byline {
  display: flex;
  justify-content: space-between;
  gap: .5rem 1.25rem;
  flex-wrap: wrap;
  color: var(--pitch-muted);
}
.pitch-crumb { align-items: center; padding: 1.35rem 0; font: .75rem/1.6 var(--mono); }
.pitch-crumb > span span { margin: 0 .45rem; color: #788b7e; }
.pitch-crumb a:hover, .pitch-byline a:hover { color: var(--pitch-ink); }
.pitch-hero {
  display: grid;
  grid-template-columns: 1.17fr 1fr;
  background: var(--pitch-deep);
  color: #fff;
}
.pitch-hero-copy { padding: clamp(2rem, 3.9vw, 3.75rem); align-self: center; }
.pitch-kicker {
  display: block;
  color: var(--pitch-green);
  font: 600 .7rem/1.5 var(--mono);
  letter-spacing: .115em;
  text-transform: uppercase;
  margin: 0 0 .9rem;
}
.pitch-hero .pitch-kicker { color: var(--pitch-accent); }
.pitch-hero h1 {
  color: #fffef5;
  font-size: clamp(2.75rem, 4.8vw, 4.5rem);
  letter-spacing: -.06em;
  line-height: 1.02;
  font-weight: 550;
  margin: 1.6rem 0 1.35rem;
}
.pitch-hero h1 em { color: var(--pitch-accent); font-style: normal; }
.pitch-hero .pitch-lede {
  color: #ebf0e6;
  font-size: clamp(1rem, 1.45vw, 1.2rem);
  line-height: 1.55;
  max-width: 36rem;
}
.pitch-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem 1.3rem; margin-top: 2rem; }
.pitch-actions a, .pitch-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: .7em;
  min-height: 44px; font-size: .86rem; font-weight: 550;
}
.pitch-actions a:not(.pitch-primary) { color: white; text-decoration: underline; text-underline-offset: .3em; }
.pitch-actions a:not(.pitch-primary):hover { color: var(--pitch-accent); }
.pitch-actions .pitch-primary { background: var(--pitch-accent); color: var(--pitch-deep); padding: .7rem 1.1rem; }
.pitch-actions .pitch-primary:hover { background: #eefab8; }
.pitch-actions a:focus-visible, .pitch-photo a:focus-visible { outline-color: #fff; }
.pitch-photo { position: relative; min-width: 0; min-height: 21rem; }
.pitch-cover-image { position: absolute; inset: 0; }
.pitch-cover-image:focus-visible { outline-offset: -5px; }
.pitch-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.pitch-photo figcaption {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 2.4rem 1.35rem .95rem;
  color: #fff;
  background: linear-gradient(transparent, rgba(8, 20, 13, .88));
  font: .72rem/1.6 var(--mono);
}
.pitch-photo a { color: #fff; text-decoration: underline; text-underline-offset: .23em; }
.pitch-byline { padding: 1.1rem 0; border-bottom: 1px solid var(--pitch-rule); font-size: .8rem; }
.pitch-byline a, .pitch-source-link, .pitch-sources a, .pitch-report a, .pitch-case a:not(.pitch-image-link) {
  color: var(--pitch-green); text-decoration: underline; text-underline-offset: .2em;
}
.pitch-proposal, .pitch-buildathons, .pitch-case, .pitch-infographic, .pitch-report, .sprint-pitch .pitch-slides {
  padding: clamp(2.75rem, 5vw, 4.75rem) 0; border-bottom: 1px solid var(--pitch-rule);
}
.sprint-pitch .pitch-slides { margin-block: 0; }
.pitch-proposal { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); }
.sprint-pitch h2 { color: var(--pitch-ink); font-size: clamp(2rem, 3.3vw, 3.1rem); line-height: 1.06; }
.pitch-intro h2, .pitch-section-head h2, .pitch-report header h2, .pitch-case h2 { margin: 0 0 1rem; }
.pitch-intro > p:last-child, .pitch-report header > p, .pitch-case-intro > p:last-child {
  color: var(--pitch-muted); font-size: 1.05rem; line-height: 1.65; max-width: 66ch;
}
.pitch-timeline { list-style: none; padding: 0; margin: 0; }
.pitch-timeline li { padding: .9rem 0; border-top: 1px solid var(--pitch-rule); display: grid; gap: 1rem; grid-template-columns: 6rem 1fr; }
.pitch-timeline li:first-child { border-top: 2px solid var(--pitch-green); }
.pitch-weeks { color: var(--pitch-green); padding-top: .18rem; font: 600 .76rem/1.5 var(--mono); white-space: nowrap; }
.pitch-timeline h3 { font-size: 1.25rem; margin: 0 0 .34rem; letter-spacing: -.025em; }
.pitch-timeline p { margin: 0; color: var(--pitch-muted); line-height: 1.53; font-size: .95rem; }
.pitch-section-head { display: flex; justify-content: space-between; gap: 1rem 2rem; align-items: end; flex-wrap: wrap; margin-bottom: 1.6rem; }
.pitch-section-head h2 { margin-bottom: 0; }
.pitch-outline {
  color: var(--pitch-green); border: 1px solid var(--pitch-rule); padding: .55rem .95rem; white-space: nowrap;
}
.pitch-outline:hover { background: #edf2df; color: var(--pitch-ink); border-color: var(--pitch-green); }
.pitch-framework { border: 1px solid var(--pitch-rule); background: #fff; }
.pitch-framework img { display: block; width: 100%; height: auto; }
.pitch-framework figcaption { padding: 1rem 1.3rem; border-top: 1px solid var(--pitch-rule); background: #eff3e7; }
.pitch-framework figcaption p { color: var(--pitch-muted); font-size: .87rem; line-height: 1.55; margin: 0; }
.pitch-framework figcaption strong { color: var(--pitch-ink); }
.pitch-framework .pitch-sources { display: flex; gap: .3rem 1.25rem; flex-wrap: wrap; margin: .55rem 0 0; }
.pitch-image-text, .pitch-report details { border-bottom: 1px solid var(--pitch-rule); }
.pitch-report details:first-of-type { border-top: 1px solid var(--pitch-rule); }
.pitch-image-text summary, .pitch-report summary {
  padding: 1rem 0; color: var(--pitch-ink); font-weight: 600; line-height: 1.5; cursor: pointer;
}
.pitch-image-text summary:focus-visible, .pitch-report summary:focus-visible { outline: 3px solid var(--pitch-green); outline-offset: 2px; }
.pitch-image-text summary::marker, .pitch-report summary::marker { color: var(--pitch-green); }
.pitch-image-text > div, .pitch-report .report-body { max-width: 76ch; padding: .25rem 0 1.25rem; }
.pitch-report header { max-width: 58rem; margin: 0 0 1.8rem; }
.pitch-image-text :is(p, ol), .pitch-report .report-body :is(p, ul, ol) { color: var(--pitch-muted); margin: 0 0 1rem; }
.pitch-image-text li, .pitch-report li { margin: .45rem 0; }
.pitch-image-text ol, .pitch-report :is(ol, ul) { padding-inline-start: 1.5rem; }
.pitch-report .report-body h3 { font-size: 1.33rem; font-weight: 600; margin: 1.4rem 0 .65rem; }
.pitch-report table { width: 100%; border-collapse: collapse; font-size: .9rem; margin: 1rem 0 1.4rem; }
.pitch-report caption { text-align: left; font-weight: 600; padding-bottom: .65rem; }
.pitch-report :is(th, td) { text-align: left; vertical-align: top; padding: .6rem .7rem .6rem 0; border-bottom: 1px solid var(--pitch-rule); }
.pitch-report .report-source { display: flex; flex-wrap: wrap; gap: .4rem 1.3rem; margin: 1.25rem 0 0; font-size: .88rem; }
.pitch-case-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 3rem; align-items: end; }
.pitch-case-intro h2 { max-width: 23ch; }
.pitch-case-intro > p { margin: 0 0 1rem; }
.pitch-gallery { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.15rem; margin: 1rem 0 1.4rem; }
.pitch-gallery img { display: block; width: 100%; height: auto; }
.pitch-gallery figcaption { padding: .5rem 0; font-size: .78rem; color: var(--pitch-muted); }
.pitch-image-link { display: block; }
.pitch-judges { border-top: 1px solid var(--pitch-rule); padding-top: 1rem; }
.pitch-judges h3 { font-size: 1.2rem; margin: 0 0 .6rem; }
.pitch-judges ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; list-style: none; padding: 0; margin: 0; }
.pitch-judges li { color: var(--pitch-muted); font-size: .91rem; }
.pitch-judges strong { display: block; color: var(--pitch-ink); }
.pitch-case .pitch-recap { display: flex; flex-wrap: wrap; gap: .35rem 1.4rem; margin: 1.25rem 0 0; font-size: .86rem; }
@media (max-width: 820px) {
  .pitch-hero { grid-template-columns: 1.15fr 1fr; }
  .pitch-hero-copy { padding: 1.9rem; }
  .pitch-hero h1 { font-size: clamp(2.35rem, 5.3vw, 3.1rem); }
  .pitch-actions { column-gap: .85rem; }
  .pitch-timeline li { grid-template-columns: 4.8rem 1fr; gap: .7rem; }
}
@media (max-width: 680px) {
  .pitch-hero, .pitch-proposal, .pitch-case-intro { grid-template-columns: 1fr; }
  .pitch-hero-copy { padding: 2rem 1.35rem; }
  .pitch-hero h1 { font-size: clamp(2.6rem, 8.8vw, 3.75rem); margin: 1.15rem 0; }
  .pitch-photo { min-height: 0; aspect-ratio: 1.9; }
  .pitch-crumb { font-size: .66rem; padding: 1rem 0; }
  .pitch-byline { display: grid; gap: .2rem; }
  .pitch-proposal { gap: .65rem; }
  .pitch-judges ul { grid-template-columns: 1fr; gap: .65rem; }
  .pitch-case-intro { gap: 0; }
  .pitch-gallery { grid-template-columns: 1fr; gap: .7rem; }
  .pitch-framework figcaption { padding: .85rem; }
}

.pitch-series-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 3rem; }
.pitch-series-intro h2 { margin: 0 0 1rem; }
.pitch-series-intro p:not(.pitch-kicker) { color: var(--pitch-muted); margin-bottom: .75rem; }
.pitch-calendar-title { font-size: 1.35rem; margin: 1.55rem 0 .8rem; }
.pitch-calendar { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--pitch-green); }
.pitch-calendar li { display: grid; grid-template-columns: 7.2rem 1fr auto; gap: 1.15rem; padding: 1.2rem 0; align-items: start; border-bottom: 1px solid var(--pitch-rule); }
.pitch-calendar time { font: 650 .9rem/1.6 var(--mono); color: var(--pitch-green); }
.pitch-calendar time span { display: block; font-size: .73rem; font-weight: 400; }
.pitch-calendar h4 { margin: 0 0 .25rem; font-size: 1.1rem; line-height: 1.3; }
.pitch-calendar li p { color: var(--pitch-muted); margin: 0; line-height: 1.5; font-size: .94rem; }
.pitch-calendar a, .pitch-series-sources a { color: var(--pitch-green); text-decoration: underline; text-underline-offset: .2em; font-size: .85rem; }
.pitch-calendar a { display: inline-flex; align-items: center; min-height: 44px; }
.pitch-series-sources { margin: .85rem 0 0; display: flex; gap: .4rem 1.35rem; flex-wrap: wrap; }
@media (max-width: 680px) {
  .pitch-series-intro { grid-template-columns: 1fr; gap: 0; }
  .pitch-calendar li { grid-template-columns: 4.5rem 1fr; gap: .1rem .7rem; }
  .pitch-calendar li > a { grid-column: 2; }
  .pitch-actions { display: grid; grid-template-columns: max-content max-content; justify-content: start; column-gap: 1.25rem; }
  .pitch-actions a:not(.pitch-primary) { justify-content: flex-start; }
}
