/* «Как мы строим свою цифровую степь» — блок кейса studia-lutik.ru/keysy/shtab-karta/.
   Всё под .stepp, чтобы не задеть остальную страницу. Цвета — палитра сайта. */
.stepp {
  --stepp-ink: #042d50;
  --stepp-red: #ac1414;
  --stepp-blue: #3963a8;
  --stepp-paper: #fffefb;
  --stepp-bg: #fffdf4;
  --stepp-line: rgba(4, 45, 80, 0.12);
  box-sizing: border-box;
  max-width: 1200px;  /* как .wrap страницы кейса: края блока совпадают с остальными разделами */
  margin: 0 auto;
  padding: clamp(40px, 6vw, 88px) 16px;
  color: var(--stepp-ink);
}
.stepp *,
.stepp *::before,
.stepp *::after {
  box-sizing: border-box;
}

.stepp__title {
  margin: 0 0 clamp(20px, 3vw, 36px);
  font-family: var(--display, Impact, sans-serif);
  font-weight: 400;
  font-size: clamp(30px, 4.6vw, 54px);
  line-height: 1.02;
  letter-spacing: 0.01em;
  color: var(--stepp-ink);
  text-wrap: balance;
}

.stepp__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: clamp(10px, 1.6vw, 20px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 720px) {
  .stepp__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1080px) {
  .stepp__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 329px) {
  .stepp__grid { grid-template-columns: minmax(0, 1fr); }
}

.stepp__card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--stepp-paper);
  border: 1px solid var(--stepp-line);
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
@media (hover: hover) {
  .stepp__card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 34px -18px rgba(4, 45, 80, 0.35);
  }
}

/* окно с землёй: снимок лежит снизу, живой 3D-холст проявляется поверх */
.stepp__stage {
  position: relative;
  aspect-ratio: 1 / 1;
  background: radial-gradient(ellipse 70% 62% at 50% 58%, #f4eedb 0%, rgba(244, 238, 219, 0) 72%);
}
.stepp__poster,
.stepp__cv {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  /* тот же «тон» карты, что в Штабе, и вода, растворяющаяся в бумаге */
  filter: saturate(0.86) sepia(0.14) brightness(1.03);
  --stepp-mask: radial-gradient(ellipse 50% 50% at 50% 52%, #000 44%, rgba(0, 0, 0, 0.5) 72%, transparent 100%);
  -webkit-mask-image: var(--stepp-mask);
  mask-image: var(--stepp-mask);
}
.stepp__poster {
  object-fit: cover;
  transition: opacity 0.6s ease;
}
.stepp__cv {
  opacity: 0;
  transition: opacity 0.6s ease;
}
.stepp__card.is-live .stepp__cv { opacity: 1; }
.stepp__card.is-live .stepp__poster { opacity: 0; }

.stepp__text {
  padding: 4px clamp(12px, 1.6vw, 20px) clamp(14px, 1.8vw, 20px);
}
.stepp__name {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0 0 6px;
  font-family: var(--display, Impact, sans-serif);
  font-weight: 400;
  font-size: clamp(19px, 1.9vw, 25px);
  line-height: 1.05;
  color: var(--stepp-ink);
}
.stepp__name::before {
  content: "";
  flex: none;
  width: 9px;
  height: 9px;
  border-radius: 2px;
  transform: translateY(-2px) rotate(45deg);
  background: var(--stepp-dot, var(--stepp-blue));
}
.stepp__line {
  margin: 0;
  font-family: var(--body, var(--text, "Arial Narrow", Arial, sans-serif));
  font-size: clamp(14px, 1.25vw, 16px);
  line-height: 1.35;
  color: rgba(4, 45, 80, 0.82);
  overflow-wrap: anywhere;
}

/* цвет ромбика у названия — по легенде карты Штаба, приглушённый под светлую бумагу */
.stepp__card[data-land="fortified"] { --stepp-dot: #2980b9; }
.stepp__card[data-land="captured"] { --stepp-dot: #27ae60; }
.stepp__card[data-land="assault"] { --stepp-dot: #e67e22; }
.stepp__card[data-land="scouting"] { --stepp-dot: #e2bb22; }
.stepp__card[data-land="potential"] { --stepp-dot: #9aa4b2; }
.stepp__card[data-land="lost"] { --stepp-dot: var(--stepp-red); }
.stepp__card[data-land="tyl"] { --stepp-dot: #6d6f55; }
.stepp__card[data-land="kontra"] { --stepp-dot: #4f5b6b; }

@media (prefers-reduced-motion: reduce) {
  .stepp__card,
  .stepp__poster,
  .stepp__cv { transition: none; }
  .stepp__card:hover { transform: none; }
}

@media (min-width: 768px) { .stepp { padding-left: 32px; padding-right: 32px; } }
