/* HERO TRIPTYCH (Section 1) */
.hero-triptych .container{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(20px, 4vw, 36px);
  align-items: center;
}
.eyebrow{
  font-family: "JetBrains Mono", monospace;
  color: var(--brand);
  letter-spacing: .6px;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.hero-title{
  margin: 6px 0 12px;
  font-size: clamp(28px, 3.2vw, 44px);
  line-height: 1.12;
}
.hero-text{ color: #dfe8ff; margin: 0 0 16px; }
.hero-bullets{
  display: grid; gap: 8px; margin-top: 12px; color: #c9d6ff;
}
.hero-bullets li::marker{ color: var(--ok); }

/* Triptych grid (3 images) */
.triptych{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-content: start;
}
.triptych .shot{ margin:0; position: relative; }
.triptych .shot:nth-child(1){ grid-column: 1; grid-row: 1 / span 2; }
.triptych .shot:nth-child(2){ grid-column: 2; grid-row: 1; }
.triptych .shot:nth-child(3){ grid-column: 2; grid-row: 2; }

.triptych img{
  aspect-ratio: 4 / 5; /* keeps height sensible on mobile */
  object-fit: cover;
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: var(--shadow-1);
  max-width: 350px; /* hard cap per requirements */
}
.triptych figcaption{
  margin-top: 8px; color: var(--muted); font-size: .92rem;
}

/* Decorative scanlines & corner spark */
.scanlines{
  position: absolute; inset: 0; pointer-events:none; opacity:.16;
  background-image:
    repeating-linear-gradient(180deg, rgba(255,255,255,.04) 0 1px, transparent 1px 3px);
  mix-blend-mode: screen;
}
.corner-spark{
  position: absolute; right: -40px; top: -40px; width: 140px; height: 140px;
  background: radial-gradient(closest-side, rgba(107,241,255,.35), transparent 70%),
              radial-gradient(closest-side, rgba(166,124,255,.28), transparent 70%);
  filter: blur(16px);
  border-radius: 50%;
  pointer-events: none;
}

/* Responsive for Section 1 */
@media (max-width: 980px){
  .hero-triptych .container{ grid-template-columns: 1fr; }
  .triptych{
    grid-template-columns: 1fr 1fr;
    justify-items: start;
  }
}
@media (max-width: 620px){
  .triptych{ grid-template-columns: 1fr; }
  .triptych .shot:nth-child(1),
  .triptych .shot:nth-child(2),
  .triptych .shot:nth-child(3){
    grid-column: 1; grid-row: auto;
  }
}
/* ---------- SECTION 2: Sprint-Cup Marquee + Diagonal Collage ---------- */
.tape{
  border-block: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.02);
  overflow: hidden;
}
.tape-track{
  display: inline-block;
  white-space: nowrap;
  padding-block: 10px;
  font-family: "JetBrains Mono", monospace;
  color: #cfe3ff;
  text-transform: uppercase;
  letter-spacing: .5px;
  animation: tape-slide 28s linear infinite;
}
.tape-track span{ margin-inline: 24px; }
.tape:hover .tape-track{ animation-play-state: paused; }

@keyframes tape-slide{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

.sprint-grid{
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(20px,4vw,36px);
  align-items: start;
  margin-top: 20px;
}
.sprint-copy .section-title{ margin: 6px 0 12px; font-size: clamp(24px, 2.8vw, 36px); }
.dash-list{ margin: 14px 0 0; padding-left: 1.2rem; }
.dash-list li{ margin: 6px 0; }
.dash-list li::marker{ content: "— "; color: var(--brand); }

.diag-collage{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: start;
}
.diag-collage .shot:nth-child(1){ grid-column: 1; transform: translateY(8px); }
.diag-collage .shot:nth-child(2){ grid-column: 2; transform: translateY(-6px); }
.diag-collage .shot:nth-child(3){ grid-column: 1 / -1; justify-self: start; }

/* ---------- SECTION 3: BO1 Ladders ---------- */
.bo1-ladders{ overflow: hidden; }
.section-title{ margin: 6px 0 14px; }

.ladder-steps{
  counter-reset: step;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}
.ladder-steps li{
  position: relative;
  padding: 14px 14px 14px 16px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  box-shadow: var(--shadow-1);
}
.ladder-steps li::before{
  counter-increment: step;
  content: counter(step, decimal-leading-zero);
  position: absolute; left: -10px; top: -10px;
  width: 36px; height: 36px; display: grid; place-items: center;
  font-family: "JetBrains Mono", monospace;
  background: linear-gradient(160deg, var(--brand), var(--brand-2));
  color: #0b0d12; border-radius: 12px; box-shadow: var(--shadow-2);
}
.ladder-steps h3{ margin: 0 0 6px; font-size: 1.05rem; }

.ladder-shots{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.bg-glow{
  position: absolute; inset: auto 0 -120px 0; height: 220px;
  background:
    radial-gradient(40% 60% at 30% 40%, rgba(166,124,255,.20), transparent 60%),
    radial-gradient(40% 60% at 70% 60%, rgba(107,241,255,.18), transparent 60%);
  filter: blur(24px);
  pointer-events: none;
}

/* ---------- SECTION 4: Rules Strip ---------- */
.rules-grid{
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
  margin-bottom: 18px;
}
.rule-card{
  position: relative;
  padding: 16px 14px 16px 18px;
  border-radius: var(--radius-xl);
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.08);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.rule-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-2);
  border-color: rgba(255,255,255,.12);
}
.rule-num{
  position: absolute; left: 12px; top: -12px;
  font-family: "JetBrains Mono", monospace;
  font-size: .8rem; color: #0b0d12; font-weight: 700;
  background: linear-gradient(160deg, var(--accent), var(--brand));
  padding: 6px 8px; border-radius: 10px;
  box-shadow: var(--shadow-1);
}
.rules-shots{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

/* ---------- Responsive (Sections 2–4) ---------- */
@media (max-width: 980px){
  .sprint-grid{ grid-template-columns: 1fr; }
  .ladder-steps{ grid-template-columns: 1fr; }
  .ladder-shots{ grid-template-columns: 1fr 1fr; }
  .rules-grid{ grid-template-columns: 1fr 1fr; }
  .rules-shots{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  .diag-collage{ grid-template-columns: 1fr; }
  .ladder-shots{ grid-template-columns: 1fr; }
  .rules-grid{ grid-template-columns: 1fr; }
  .rules-shots{ grid-template-columns: 1fr; }
}
/* Геройская секция содержит декоративные элементы — прячем выступающие части */
.hero-triptych{
  overflow: hidden;
}

/* На узких экранах «искру» прижимаем внутрь */
@media (max-width: 620px){
  .corner-spark{
    right: 0;           /* вместо отрицательного отступа */
    top: -20px;
    width: 120px;
    height: 120px;
  }
}
.hero-triptych{ overflow: hidden; }  /* прячем декоративные вылеты */

@media (max-width: 620px){
  .corner-spark{ right: 0; top: -20px; width: 120px; height: 120px; }
}
/* Сетка текста+коллажа — не даём колонкам упираться в min-content */
.sprint-grid{
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(0,1fr);
  gap: clamp(20px,4vw,36px);
  align-items: start;
  margin-top: 20px;
}

/* Диагональный коллаж — безопасные fr-колонки */
.diag-collage{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
  align-items: start;
}

/* На планшетах раньше уводим в одну колонку, чтобы ничего не вылазило */
@media (max-width: 768px){
  .sprint-grid{ grid-template-columns: 1fr; }
  .diag-collage{ grid-template-columns: 1fr; }
}
/* Бейдж шага мог выходить влево — смещаем внутрь на мобиле */
@media (max-width: 640px){
  .ladder-steps li::before{ left: 8px; top: -12px; }
}
/* Сетки на fr с безопасным minmax, чтобы подписи не распирали колонки */
.rules-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.rules-shots{ grid-template-columns: repeat(3, minmax(0,1fr)); }

@media (max-width: 980px){
  .rules-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .rules-shots{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px){
  .rules-grid, .rules-shots{ grid-template-columns: 1fr; }
}
/* ---------- SECTION 5: Tour Cities — Poster Stack ---------- */
.chip-list{
  display: flex; flex-wrap: wrap; gap: 8px;
  list-style: none; padding: 0; margin: 14px 0 18px;
}
.chip-list li{
  padding: 6px 10px; border-radius: 999px;
  background: rgba(255,255,255,.06); color: #d9e7ff;
  border: 1px solid rgba(255,255,255,.08);
  font-size: .92rem;
}

.poster-stack{
  position: relative; overflow: hidden; /* гарантия без выхода за края */
  display: grid; grid-template-columns: 1fr; place-items: center;
  min-height: 320px; /* пространство для наложения постеров */
  margin-top: 6px;
}
.poster{ position: relative; z-index: 0; }
.poster img{ box-shadow: var(--shadow-2); border: 1px solid rgba(255,255,255,.08); }
.poster.p-a{ transform: rotate(-4deg) translateY(6px); z-index: 3; }
.poster.p-b{ transform: rotate(3deg) translateY(-4px); z-index: 2; }
.poster.p-c{ transform: rotate(-1deg) translateY(10px); z-index: 1; }
.poster:hover{ z-index: 4; } /* наведение вытягивает картинку наверх */

@media (max-width: 560px){
  .poster-stack{ min-height: 0; }
  .poster.p-a, .poster.p-b, .poster.p-c{ transform: none; } /* на узких — ровная колонка */
}

/* ---------- SECTION 6: Broadcast — Snap Row ---------- */
.broadcast-snap{ position: relative; }
.snap-row{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 80%;
  gap: 14px;
  overflow-x: auto;
  padding: 6px 2px 2px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.snap-card{
  scroll-snap-align: start;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  padding: 10px;
}
.snap-card img{ max-width: 350px; }
.snap-hint{
  color: var(--muted);
  margin-top: 8px;
  font-family: "JetBrains Mono", monospace;
  font-size: .9rem;
}
.bg-fade{
  position: absolute; inset: auto 0 -100px 0; height: 180px;
  background:
    radial-gradient(35% 55% at 25% 40%, rgba(166,124,255,.18), transparent 60%),
    radial-gradient(35% 55% at 75% 60%, rgba(107,241,255,.16), transparent 60%);
  filter: blur(20px); pointer-events: none;
}
@media (max-width: 980px){
  .snap-row{ grid-auto-columns: 88%; }
}
@media (max-width: 560px){
  .snap-row{ grid-auto-columns: 92%; }
}

/* ---------- SECTION 7: Community — Zine Grid ---------- */
.zine-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  margin-top: 10px;
}
.zine-item{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  transition: transform .2s ease, box-shadow .2s ease;
}
.zine-item:hover{ transform: translateY(-2px); box-shadow: var(--shadow-2); }
.zine-item img{ filter: saturate(.85); transition: filter .2s ease; }
.zine-item:hover img{ filter: saturate(1.1); }

@media (max-width: 980px){
  .zine-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  .zine-grid{ grid-template-columns: 1fr; }
}
/* ---------- SECTION 8: Creator Zone — Overlay Mosaic ---------- */
.creator-grid{
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
  gap: clamp(20px,4vw,36px);
  align-items: start;
}
.creator-mosaic{
  display: grid;
  grid-template-areas:
    "A B"
    "A C";
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 14px;
}
.mosaic-a{ grid-area: A; }
.mosaic-b{ grid-area: B; }
.mosaic-c{ grid-area: C; }
.creator-mosaic img{
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: var(--shadow-1);
}
@media (max-width: 920px){
  .creator-grid{ grid-template-columns: 1fr; }
  .creator-mosaic{ grid-template-areas: "A" "B" "C"; grid-template-columns: 1fr; }
}

/* ---------- SECTION 9: Mobile Lab ---------- */
.lab-grid{
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
  gap: clamp(20px,4vw,36px);
}
.lab-metrics{
  margin: 12px 0 0;
  list-style: none; padding: 0;
  display: grid; gap: 8px;
}
.lab-metrics li{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  padding: 10px 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}
.lab-panels{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.panel{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  padding: 10px;
}
@media (max-width: 980px){
  .lab-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 700px){
  .lab-panels{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px){
  .lab-panels{ grid-template-columns: 1fr; }
}

/* ---------- SECTION 10: Dayflow — Timeline Rail ---------- */
.rail{
  position: relative;
  list-style: none; padding: 0; margin: 8px 0 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.rail::before{
  content: "";
  position: absolute; left: 0; right: 0; top: 22px;
  height: 2px; background: linear-gradient(90deg, rgba(107,241,255,.35), rgba(166,124,255,.35));
  border-radius: 2px;
}
.rail-step{
  position: relative;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  padding: 16px 14px 14px;
}
.rail-step h3{ margin: 0 0 6px; }
.rail-step::before{
  content: "";
  position: absolute; left: 14px; top: -8px;
  width: 14px; height: 14px; border-radius: 50%;
  background: linear-gradient(160deg, var(--brand), var(--brand-2));
  box-shadow: 0 0 0 4px rgba(255,255,255,.06);
}
.rail-shots{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}

@media (max-width: 980px){
  .rail{ grid-template-columns: 1fr; }
  .rail::before{ display: none; }
}
@media (max-width: 640px){
  .rail-shots{ grid-template-columns: 1fr; }
}
/* ---------- SECTION 11: Partners & Activations ---------- */
.partners-activations{ position: relative; overflow: hidden; }
.ribbon{
  border-block: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.02);
  overflow: hidden;
}
.ribbon-track{
  display: inline-block; white-space: nowrap;
  padding-block: 10px;
  font-family: "JetBrains Mono", monospace;
  color: #cfe3ff; text-transform: uppercase; letter-spacing: .5px;
  animation: ribbon-move 26s linear infinite;
}
.ribbon-track span{ margin-inline: 24px; }
.ribbon:hover .ribbon-track{ animation-play-state: paused; }
@keyframes ribbon-move{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

.partners-grid{
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
  gap: clamp(20px,4vw,36px);
  align-items: start;
  margin-top: 18px;
}
.partners-cards{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}
.p-card{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  padding: 10px;
}
@media (max-width: 920px){
  .partners-grid{ grid-template-columns: 1fr; }
}

/* ---------- SECTION 12: Ops & Safety ---------- */
.ops-grid{
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: clamp(20px,4vw,36px);
  align-items: start;
}
.ops-media{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}
.ops-shot{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  padding: 10px;
}
@media (max-width: 920px){
  .ops-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .ops-media{ grid-template-columns: 1fr; }
}

/* ---------- SECTION 13: Prize Pool & Progression ---------- */
.prize-grid{
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
  gap: clamp(20px,4vw,36px);
  align-items: start;
}
.stat-row{
  display: grid; gap: 10px;
  grid-template-columns: repeat(3, minmax(0,1fr));
  margin: 10px 0 12px;
}
.stat{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  padding: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}
.stat-num{
  display: inline-block;
  font-weight: 700;
  background: linear-gradient(160deg, var(--brand), var(--brand-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.stat-label{ color: #c9d6ff; margin: 6px 0 0; }

.prize-shots{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}
@media (max-width: 960px){
  .prize-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 640px){
  .stat-row{ grid-template-columns: 1fr; }
  .prize-shots{ grid-template-columns: 1fr; }
}
/* ---------- SECTION 14: FAQ — Compact Accordion ---------- */
.faq-grid{
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
  gap: 14px;
  align-items: start;
}
.faq{
  margin: 8px 0;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  padding: 10px 12px;
}
.faq > summary{
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 22px;
}
.faq > summary::-webkit-details-marker{ display: none; }
.faq > summary::after{
  content: "▸";
  position: absolute; right: 0; top: 0;
  transition: transform .2s ease;
}
.faq[open] > summary::after{ transform: rotate(90deg); }
.faq-art img{
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: var(--shadow-1);
}
@media (max-width: 920px){ .faq-grid{ grid-template-columns: 1fr; } }

/* ---------- SECTION 15: Contacts — Signal Beacon ---------- */
.contacts-grid{
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
  gap: 14px;
  align-items: start;
}
.contact-list{
  list-style: none; padding: 0; margin: 8px 0 10px;
  display: grid; gap: 6px;
}
.contact-list li span{ color: #c9d6ff; margin-right: 6px; }
.socials{ color: #c9d6ff; }
.contacts-art img{
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: var(--shadow-2);
}
@media (max-width: 920px){ .contacts-grid{ grid-template-columns: 1fr; } }
/* было:
.diag-collage{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: start;
}
*/

/* стало: */
.diag-collage{
  display: grid;
  grid-template-columns: repeat(2, minmax(200px, 1fr)); /* не даём колонкам схлопываться */
  gap: 14px;
  align-items: start;
}
.diag-collage .shot{ min-width: 200px; }
.diag-collage figcaption{
  overflow-wrap: break-word; /* мягкие переносы, без "по символам" */
  word-break: normal;
  line-height: 1.45;
}
/* было внизу файла:
@media (max-width: 980px){
  .sprint-grid{ grid-template-columns: 1fr; }
  ...
}
@media (max-width: 640px){
  .diag-collage{ grid-template-columns: 1fr; }
  ...
}
*/

/* добавьте/замените так: */
@media (max-width: 900px){
  .sprint-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 780px){
  .diag-collage{ grid-template-columns: 1fr; }
}
.diag-collage img{
  width: 100%;
  max-width: 350px;
  min-width: 200px;   /* мягкий порог читаемости */
  object-fit: cover;
}
/* === Sprint-Cups overflow fix (Section 2) === */

/* Разрешаем грид-элементам сжиматься */
.sprint-grid > *, .diag-collage > * { min-width: 0; }

/* Раньше уходим в одну колонку, исключаем «схлопывание» */
@media (max-width: 1100px){
  .sprint-grid{ grid-template-columns: 1fr !important; }
}
@media (max-width: 900px){
  .diag-collage{ grid-template-columns: 1fr !important; }
}

/* Безопасные размеры картинок и подписей внутри коллажа */
.diag-collage img{ max-width: 100%; height: auto; }
.diag-collage figcaption{
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  line-height: 1.45;
}

/* На узких экранах полностью отключаем минимальные пороги ширины */
@media (max-width: 480px){
  .diag-collage .shot{ min-width: 0 !important; }
}

/* На всякий случай: прячем возможные «вылеты» теней/поворотов */
.sprint-cup .container{ overflow: hidden; }
/* === Sprint-Cups (Section 2) overflow & wrapping fix === */
.sprint-grid > *, .diag-collage > *{ min-width: 0; } /* разрешаем сжиматься колонкам */

/* Фигуры: подпись равна ширине изображения */
.diag-collage figure{ display:flex; flex-direction: column; max-width: 350px; }
.diag-collage img{ width:100%; max-width:350px; }
.diag-collage figcaption{ margin-top:8px; line-height:1.45; }

/* Если ранее задавали min-width:200px — принудительно убираем */
.diag-collage .shot{ min-width: 0 !important; }

/* Раньше уходим в одну колонку, чтобы 2 карточки не давили контейнер */
@media (max-width: 1080px){
  .sprint-grid{ grid-template-columns: 1fr !important; }
}
@media (max-width: 900px){
  .diag-collage{ grid-template-columns: 1fr !important; justify-items: start; }
}
.container{ max-width: var(--container); width:100%; margin-inline:auto; padding-inline: var(--gutter); }
html, body{ overflow-x: hidden; }
/* ==== FIX: Sprint-Cups (Section 2) — no overlap ==== */

/* 1) Коллаж: разрешаем колонкам сжиматься и не выходим за контейнер */
.sprint-cup .diag-collage{
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* убрали мин. 200px */
  align-items: start;
  align-content: start;
  grid-auto-flow: row;
}
.sprint-cup .diag-collage > *{ min-width: 0; }      /* контент не распирает трек */
.sprint-cup .diag-collage figure{
  display: flex; flex-direction: column;
  max-width: 100%;                                  /* подпись шириной с картинку */
}
.sprint-cup .diag-collage img{
  width: 100%; max-width: 350px; height: auto;
}

/* 2) Сбрасываем декоративные сдвиги, из-за которых элементы наезжают */
@media (max-width: 1200px){
  .sprint-cup .diag-collage .shot{ transform: none !important; z-index: 0; }
}

/* 3) Раньше уходим в одну колонку — безопасный мобильный стек */
@media (max-width: 900px){
  .sprint-cup .sprint-grid{ grid-template-columns: 1fr !important; }
  .sprint-cup .diag-collage{ grid-template-columns: 1fr !important; }
}

/* 4) Подписи: нормальные переносы, не «по букве» */
.sprint-cup .diag-collage figcaption{
  margin-top: 8px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}
figure {
    margin: 0;
}