/**
 * Homepage — editorial rhythm, restrained accent, cinematic hero.
 */

/* Hero entrance states */
.hero[data-hero]:not(.is-ready) .hero__line-inner,
.hero[data-hero]:not(.is-ready) [data-hero-item] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
}

.hero__title {
  display: grid;
  gap: 0.015em;
}

.hero__line {
  display: block;
  overflow: hidden;
}

.hero__line-inner {
  display: block;
  will-change: transform, opacity;
}

.hero__brand {
  margin-bottom: 1.15rem;
}

.hero__lede {
  margin-top: 1.5rem;
}

.hero__ctas {
  margin-top: 2.15rem;
}

.hero__note {
  margin-top: 1.85rem;
  max-width: 26rem;
  font-size: var(--mf-text-sm);
  color: var(--mf-faint);
  line-height: 1.55;
}

.hero.is-ready .hero__line-inner,
.hero.is-ready [data-hero-item] {
  transition:
    opacity 880ms var(--mf-ease),
    transform 880ms var(--mf-ease);
}

.hero.is-ready .is-in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
  .hero[data-hero]:not(.is-ready) .hero__line-inner,
  .hero[data-hero]:not(.is-ready) [data-hero-item],
  .hero.is-ready .hero__line-inner,
  .hero.is-ready [data-hero-item] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

html:not(.js) .hero__line-inner,
html:not(.js) .hero [data-hero-item] {
  opacity: 1;
  transform: none;
}

/* Explain — dense, quiet beat after hero */
.home-explain {
  padding-block: var(--mf-space-dense);
}

.home-explain h2 {
  max-width: 12ch;
  font-size: var(--mf-text-3xl);
}

.home-explain__copy {
  margin-top: 2rem;
  display: grid;
  gap: 1rem;
}

.home-explain__copy .mf-lede {
  color: var(--mf-ink);
  font-weight: 500;
}

/* Categories — airy, visual-led */
.home-categories {
  padding-block: var(--mf-space-airy);
}

.home-categories .section-head {
  margin-bottom: clamp(2.5rem, 6vw, 4rem);
}

.home-cat {
  display: grid;
  gap: 1rem;
  color: inherit;
  padding-bottom: 0.25rem;
}

.home-cat:hover {
  color: inherit;
}

.home-cat h3 {
  margin-top: 0.1rem;
  font-size: var(--mf-text-xl);
}

.home-cat p {
  color: var(--mf-muted);
  max-width: 26rem;
  font-size: var(--mf-text-sm);
  line-height: 1.6;
}

.home-cat__visual {
  aspect-ratio: 16 / 10;
  border: 1px solid var(--mf-border);
  border-radius: var(--mf-radius);
  overflow: hidden;
  transition:
    border-color var(--mf-duration) var(--mf-ease),
    transform var(--mf-duration-slow) var(--mf-ease);
}

@media (hover: hover) and (pointer: fine) {
  .home-cat:hover .home-cat__visual {
    border-color: var(--mf-border-strong);
    transform: translateY(-2px);
  }
}

/* Category previews — structure over glow */
.viz-sites {
  background: linear-gradient(165deg, #131313 0%, #1a1a1a 48%, #0e0e0e 100%);
  position: relative;
}

.viz-sites::before,
.viz-sites::after {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  border: 1px solid rgba(245, 245, 245, 0.16);
}

.viz-sites::before {
  top: 18%;
  height: 10%;
  background: rgba(245, 245, 245, 0.1);
}

.viz-sites::after {
  top: 36%;
  bottom: 16%;
  background: linear-gradient(90deg, rgba(245, 245, 245, 0.07), transparent 42%);
}

.viz-sections {
  background:
    repeating-linear-gradient(
      180deg,
      #151515 0 15%,
      #0f0f0f 15% 17%,
      #151515 17% 34%,
      #0c0c0c 34% 36%,
      #151515 36% 100%
    );
}

.viz-effects {
  background:
    radial-gradient(circle at 30% 42%, rgba(255, 255, 255, 0.1), transparent 32%),
    radial-gradient(circle at 70% 60%, rgba(200, 245, 66, 0.12), transparent 36%),
    #0b0b0b;
}

.viz-bg {
  background:
    conic-gradient(from 210deg at 50% 50%, #101010 0deg, #181818 90deg, #0a0a0a 180deg, #121612 270deg, #101010 360deg);
}

/* Featured */
.home-featured {
  padding-block: var(--mf-space-8);
  border-top: 1px solid var(--mf-border-soft);
}

.feat-a {
  background: linear-gradient(135deg, #101010, #151515 42%, rgba(255, 255, 255, 0.04));
}

.feat-b {
  background:
    linear-gradient(180deg, #0e0e0e, #171717),
    repeating-linear-gradient(90deg, transparent 0 24px, rgba(255, 255, 255, 0.028) 24px 25px);
  background-blend-mode: normal;
}

.feat-c {
  background:
    radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.06), transparent 42%),
    #0b0b0b;
}

.home-featured__action {
  margin-top: 2.75rem;
}

.home-featured__card:hover .asset-card__media {
  border-color: var(--mf-border-strong);
}

/* Showcase — ambient without neon fog */
.home-showcase {
  padding-block: var(--mf-space-dense);
}

.showcase-stage {
  position: relative;
  min-height: 24rem;
  padding: clamp(2rem, 4.5vw, 3.25rem);
  border: 1px solid var(--mf-border);
  border-radius: var(--mf-radius);
  overflow: hidden;
  background:
    radial-gradient(
      circle at var(--mx, 50%) var(--my, 42%),
      rgba(255, 255, 255, 0.045),
      transparent 38%
    ),
    var(--mf-surface-alt);
}

.showcase-cues {
  display: grid;
  gap: 0.4rem;
  margin-bottom: 2.5rem;
}

.showcase-cues li {
  font-size: clamp(1.2rem, 2.8vw, 1.75rem);
  font-weight: 650;
  letter-spacing: -0.03em;
  color: var(--mf-ink);
}

.showcase-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.showcase-card {
  min-width: 9rem;
  min-height: 3.5rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid var(--mf-border);
  border-radius: var(--mf-radius);
  background: rgba(10, 10, 10, 0.78);
  font-weight: 600;
  letter-spacing: -0.02em;
  transition:
    border-color var(--mf-duration) var(--mf-ease),
    background var(--mf-duration) var(--mf-ease);
}

.showcase-card:hover,
.showcase-card[aria-pressed="true"] {
  border-color: var(--mf-accent-line);
  background: rgba(10, 10, 10, 0.92);
}

.showcase-note {
  margin-top: 2.5rem;
  color: var(--mf-muted);
  max-width: 26rem;
  font-size: var(--mf-text-sm);
}

/* How */
.home-how {
  padding-block: var(--mf-space-8);
}

.home-steps {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--mf-border);
  margin-top: 0.5rem;
}

.home-step {
  display: grid;
  grid-template-columns: 3.25rem 1fr;
  gap: 1.15rem;
  padding: 1.65rem 0;
  border-bottom: 1px solid var(--mf-border);
}

.home-step__num {
  font-size: var(--mf-text-sm);
  font-weight: 700;
  color: var(--mf-accent);
  letter-spacing: 0.04em;
}

.home-step h3 {
  font-size: var(--mf-text-xl);
  margin-bottom: 0.4rem;
}

.home-step p {
  color: var(--mf-muted);
  font-size: var(--mf-text-sm);
  max-width: 34rem;
}

/* Tools */
.home-tools {
  padding-block: var(--mf-space-dense);
}

.home-tools__list {
  border-top: 1px solid var(--mf-border);
}

.home-tool {
  display: grid;
  gap: 0.45rem;
  padding: 1.65rem 0;
  border-bottom: 1px solid var(--mf-border);
}

.home-tool h3 {
  font-size: var(--mf-text-md);
  font-weight: 650;
}

.home-tool p {
  color: var(--mf-muted);
}

@media (min-width: 720px) {
  .home-tool {
    grid-template-columns: 11rem 1fr;
    gap: 2.25rem;
    align-items: baseline;
  }
}

/* Drops */
.home-drops {
  padding-block: var(--mf-space-airy);
  border-top: 1px solid var(--mf-border-soft);
}

.home-drops__list {
  margin: 2rem 0 1.35rem;
  display: grid;
  gap: 0.4rem;
}

.home-drops__list li {
  font-size: clamp(1.35rem, 3.4vw, 2.1rem);
  font-weight: 650;
  letter-spacing: -0.03em;
}

.home-drops .mf-body {
  margin-bottom: 1.85rem;
}

/* Pricing — panel without green wash */
.home-pricing {
  padding-block: clamp(3.25rem, 8vw, 5.5rem);
}

.home-pricing__panel {
  padding: clamp(2.5rem, 5.5vw, 3.75rem);
  border: 1px solid var(--mf-border);
  border-radius: var(--mf-radius);
  background:
    linear-gradient(155deg, #0a0a0a 0%, #121212 60%, #0e0e0e 100%);
}

.home-pricing__panel h2 {
  max-width: 13ch;
}

.home-pricing__lead {
  margin-top: 1.25rem;
  color: var(--mf-muted);
  max-width: 28rem;
}

.home-pricing__perks {
  margin: 2rem 0 2.25rem;
  display: grid;
  gap: 0.55rem;
}

.home-pricing__perks li {
  font-weight: 600;
  letter-spacing: -0.02em;
  padding-left: 1.1rem;
  position: relative;
}

.home-pricing__perks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.4rem;
  height: 0.4rem;
  background: var(--mf-accent);
  border-radius: 1px;
}

/* Final — quiet close */
.home-final {
  padding-block: var(--mf-space-airy) clamp(4rem, 10vw, 7rem);
}

.home-final .mf-lede {
  margin: 1.25rem 0 2rem;
  color: var(--mf-ink);
  font-weight: 500;
}

.home-final h2 {
  max-width: 14ch;
  font-size: var(--mf-text-3xl);
}
