/* Hero — Startup Neon (Parallax), tmpl-startup-neon--hero--parallax--42
   Layout: full-bleed, max-w-5xl content container, 1 column, min-height 90vh.
   Mobile: scroll-snap carousel. Tablet: 2 columns. */

.hero {
  --hero-container: 64rem;           /* max-w-5xl */
  --hero-heading: clamp(2.25rem, 4.5vw + 1rem, 3rem); /* 5xl */
  --hero-sub: var(--text-xl);
  position: relative;
  isolation: isolate;
  width: 100%;                        /* full-bleed without 100vw overflow */
  min-height: 90vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: var(--space-section) 0;
  color: var(--color-text-on-dark);
  background-color: var(--color-primary-900);
}

/* Background photo, held still while the page scrolls (parallax feel). */
.hero__media {
  position: absolute;
  inset: 0;
  z-index: -3;
}

.hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Parallax drift, scroll-driven where supported and harmless where not. */
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes hero-parallax {
      from { transform: scale(1.08) translateY(-2%); }
      to { transform: scale(1.08) translateY(4%); }
    }
    .hero__image {
      animation: hero-parallax linear both;
      animation-timeline: scroll();
      animation-range: entry 0% exit 100%;
    }
  }
}

/* dark-gradient overlay (DESIGN.md --overlay-hero) */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: var(--overlay-hero);
}

/* noise-texture layer */
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.22;
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 160px 160px;
}

/* decorative: blob-bottom-left */
.hero__blob {
  position: absolute;
  left: -12%;
  bottom: -18%;
  width: min(28rem, 75%);
  aspect-ratio: 1;
  z-index: -1;
  pointer-events: none;
  opacity: 0.5;
  color: var(--color-accent-500);
  filter: blur(2px);
}

.hero__container {
  width: 100%;
  max-width: var(--hero-container);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

/* Mobile: carousel of panels (copy, then photo card). */
.hero__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  gap: var(--space-4);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.hero__track::-webkit-scrollbar { display: none; }

.hero__panel {
  scroll-snap-align: center;
  min-width: 0;
}

.hero__dots {
  display: flex;
  justify-content: center;
  gap: var(--space-2);
  margin-top: var(--space-5);
}

.hero__dot {
  width: 0.625rem;
  height: 0.625rem;
  padding: 0;
  border: 1px solid var(--color-neutral-50);
  border-radius: var(--radius-full);
  background: transparent;
  cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-default);
}

.hero__dot[aria-current='true'] { background: var(--color-neutral-50); }

.hero__dot:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

/* Content card — lg radius, md shadow, color-shift on hover. */
.hero__card {
  text-align: center;
  padding: var(--space-8) var(--space-6);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  background-color: rgba(23, 44, 34, 0.55);
  backdrop-filter: blur(6px);
  transition: background-color var(--duration-normal) var(--ease-default),
    color var(--duration-normal) var(--ease-default);
}

.hero__card:hover,
.hero__card:focus-within {
  background-color: rgba(38, 75, 57, 0.72); /* color-shift */
}

.hero__eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  letter-spacing: var(--letter-wide);
  text-transform: uppercase;
  color: var(--color-accent-200);
  margin-bottom: var(--space-4);
}

.hero__heading {
  font-family: var(--font-heading);
  font-size: var(--hero-heading);
  font-weight: var(--weight-regular); /* weight 400 */
  letter-spacing: 0.02em;
  line-height: var(--leading-tight);
  color: var(--color-neutral-50);
  margin-bottom: var(--space-5);
}

.hero__subheading {
  font-family: var(--font-body);
  font-size: var(--hero-sub);
  line-height: var(--leading-normal);
  color: var(--color-neutral-50);
  max-width: 48ch;
  margin-inline: auto;
}

.hero__ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
  margin-top: var(--space-8);
}

/* CTA hover: none — only the focus ring reacts. */
.hero .btn { transition: none; }
.hero .btn:hover { background-color: inherit; }
.hero .btn--primary:hover { background-color: var(--color-primary-600); }
.hero .btn--secondary:hover { background-color: transparent; }

.hero__meta {
  margin-top: var(--space-6);
  font-size: var(--text-sm);
  color: var(--color-neutral-100);
}

/* Studio card — same color-shift hover as the content card. */
.hero__info {
  text-align: center;
  padding: var(--space-8) var(--space-6);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  background-color: rgba(23, 44, 34, 0.55);
  backdrop-filter: blur(6px);
  transition: background-color var(--duration-normal) var(--ease-default);
}

.hero__info:hover,
.hero__info:focus-within { background-color: rgba(38, 75, 57, 0.72); }

.hero__info dt {
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--letter-wide);
  text-transform: uppercase;
  color: var(--color-accent-200);
}

.hero__info dd {
  margin: 0 0 var(--space-4);
  font-size: var(--text-base);
  color: var(--color-neutral-50);
}

.hero__info dd:last-child { margin-bottom: 0; }

.hero__info a {
  color: var(--color-neutral-50);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Tablet: 2 columns, no carousel. */
@media (min-width: 48em) {
  .hero__track {
    grid-auto-flow: row;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: auto;
    gap: var(--space-8);
    overflow: visible;
    align-items: center;
  }
  .hero__dots { display: none; }
}

/* Desktop: single centred column over the photograph. */
@media (min-width: 64em) {
  .hero__track { grid-template-columns: 1fr; gap: var(--space-6); }
  .hero__card { padding: var(--space-12) var(--space-10); }
  .hero__info { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-2) var(--space-6); padding: var(--space-5) var(--space-8); }
  .hero__info dt { align-self: center; }
  .hero__info dd { margin-bottom: 0; align-self: center; }
}
