.concept {
  background: #07111e; color: #edf3ff;
  padding: clamp(80px, 8vw, 120px) 5% 120px; position: relative;
}
.concept::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 70vh; pointer-events: none;
  background: radial-gradient(ellipse at 50% 0, #24416638, transparent 65%);
  mask-image: linear-gradient(to bottom, transparent, #000 30%);
}
.concept-cards {
  max-width: 1440px; margin: 0 auto; padding: 0; list-style: none;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(32px, 3vw, 40px);
}
.concept-cards li { position: relative; min-width: 0; }
.concept-cards img {
  display: block; width: 100%; height: auto; object-fit: contain;
  clip-path: inset(var(--card-trim-top, .34%) .73% .4% round 7% / 4.3%);
}
.concept-cards li:first-child { --card-trim-top: .73%; }
.concept-cards .concept-motion-card { display: none; }
.concept-cards.is-revealing li { animation: concept-enter 800ms both ease-out; }
.concept-cards.is-revealing li:nth-child(2) { animation-delay: 100ms; }
.concept-cards.is-revealing li:nth-child(3) { animation-delay: 200ms; }
@keyframes concept-enter {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 1000px) {
  .concept { padding: 56px 8% 96px; }
  .concept-cards { grid-template-columns: 1fr; max-width: 550px; gap: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .concept-cards.is-revealing li { animation: none; }
}
