.home-hero {
  position: relative;
}

.home-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: var(--grid-gap-xl);
  align-items: center;
}

.home-hero-copy,
.home-hero-media {
  min-width: 0;
}

.home-hero-title {
  background: linear-gradient(120deg, #b37bff, #ff4bff, #00f5ff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.home-hero-tagline-group {
  margin-bottom: var(--space-md);
}

.home-hero-pill {
  background: radial-gradient(circle at 0 0, rgba(255, 0, 122, 0.4), transparent 55%), rgba(5, 6, 10, 0.9);
  border-color: rgba(255, 0, 122, 0.7);
}

.home-hero-cta {
  margin-top: var(--space-xl);
}

.home-hero-cta-group {
  align-items: stretch;
}

.home-hero-btn-primary,
.home-hero-btn-secondary,
.home-cta-btn-primary,
.home-cta-btn-secondary,
.home-gallery-btn {
  max-width: 100%;
}

.home-hero-meta {
  margin-top: var(--space-md);
  flex-wrap: wrap;
}

.home-hero-meta-item {
  min-width: min(160px, 100%);
}

.home-hero-media-inner {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: radial-gradient(circle at 0 0, rgba(0, 245, 255, 0.25), transparent 55%), rgba(5, 6, 10, 0.96);
  box-shadow: var(--shadow-strong), var(--shadow-glow-secondary);
}

.home-hero-figure {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.home-hero-image {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: cover;
}

.home-hero-figcaption {
  padding: 0 var(--space-lg) var(--space-lg);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.home-section-header {
  max-width: 46rem;
  margin-inline: auto;
}

.home-what-layout {
  align-items: flex-start;
}

.home-what-main,
.home-what-side {
  min-width: 0;
}

.home-what-columns {
  margin-top: var(--space-lg);
}

.home-what-heading {
  margin-bottom: var(--space-sm);
}

.home-what-list {
  list-style: disc;
  padding-left: 1.1rem;
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--text-sm);
}

.home-what-list--compact {
  margin-top: var(--space-sm);
}

.home-what-list li + li {
  margin-top: 0.35em;
}

.home-what-card {
  height: 100%;
}

.home-why-row {
  align-items: center;
}

.home-why-media-inner {
  box-shadow: var(--shadow-soft), var(--shadow-glow-primary);
}

.home-why-figure {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.home-why-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-why-figcaption {
  padding: 0 var(--space-md) var(--space-md);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.home-why-grid {
  margin-bottom: var(--space-xl);
}

.home-why-point {
  min-width: 0;
}

.home-gallery-layout {
  align-items: stretch;
}

.home-gallery-media,
.home-gallery-copy {
  min-width: 0;
}

.home-gallery-media-inner {
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--color-bg-subtle);
  box-shadow: var(--shadow-soft);
}

.home-gallery-figure {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.home-gallery-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-gallery-figcaption {
  padding: 0 var(--space-md) var(--space-md);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.home-gallery-card {
  height: 100%;
}

.home-gallery-cta {
  margin-top: var(--space-md);
}

.home-cta-surface {
  position: relative;
}

.home-cta-actions {
  margin-top: var(--space-sm);
}

.home-cta-note {
  max-width: 40rem;
}

@media (max-width: 1023.98px) {
  .home-hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .home-hero-media-inner {
    max-width: 480px;
    margin-inline: auto;
  }
}

@media (max-width: 767.98px) {
  .home-hero {
    padding-top: var(--space-3xl);
  }
  .home-hero-cta-group {
    flex-direction: column;
  }
  .home-hero-meta {
    flex-direction: row;
  }
  .home-hero-figcaption {
    padding-inline: var(--space-md);
  }
  .home-gallery-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (min-width: 1280px) {
  .home-hero-image {
    max-height: 580px;
  }
}
