.software-main {
  padding-top: var(--header-height);
  overflow: clip;
  background: var(--ink);
}

.software-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: calc(88dvh - var(--header-height));
  border-bottom: 1px solid var(--line);
}

.software-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(72px, 8vw, 132px);
}

.hero-mark {
  margin: 0 0 42px;
  color: var(--accent);
  font: 500 10px/1 Arial, sans-serif;
  letter-spacing: 0.2em;
}

.software-hero h1 {
  margin: 0;
  font-size: clamp(52px, 6.2vw, 88px);
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.08;
  text-wrap: balance;
}

.software-hero-copy > p:last-child {
  max-width: 410px;
  margin: 38px 0 0;
  color: #b9bbb9;
  font-size: 15px;
  letter-spacing: 0.06em;
  line-height: 1.9;
}

.software-register {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(72px, 8vw, 132px);
}

.software-register a {
  display: grid;
  grid-template-columns: minmax(92px, 0.6fr) 1fr;
  min-height: 118px;
  align-items: center;
  gap: 32px;
  border-top: 1px solid var(--line);
  text-decoration: none;
}

.software-register a:last-child { border-bottom: 1px solid var(--line); }

.software-register span {
  color: #747775;
  font: 500 9px/1 Arial, sans-serif;
  letter-spacing: 0.16em;
}

.software-register strong {
  font-size: clamp(20px, 2vw, 30px);
  font-weight: 400;
  letter-spacing: 0.07em;
}

.hero-signal,
.chapter-signal {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(240, 68, 33, 0.82);
  pointer-events: none;
}

.hero-signal::after,
.chapter-signal::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border: 1px solid var(--accent);
  background: var(--ink);
  content: "";
  transform: translate(-50%, -50%) rotate(45deg);
}

.product-chapter {
  position: relative;
  scroll-margin-top: 72px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: min(820px, 92dvh);
  border-bottom: 1px solid var(--line);
}

.artifact-media {
  position: relative;
  min-height: 640px;
  overflow: hidden;
  background: #070809;
}

.artifact-media::before,
.artifact-media::after {
  position: absolute;
  z-index: 2;
  content: "";
  pointer-events: none;
}

.artifact-media::before {
  top: 50%;
  right: 0;
  width: 34%;
  height: 1px;
  background: rgba(243, 243, 241, 0.28);
}

.artifact-media::after {
  inset: 0;
  background: rgba(7, 8, 9, 0.14);
}

.artifact-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  filter: grayscale(1) invert(0.94) contrast(1.2) brightness(0.68);
  mix-blend-mode: screen;
  object-fit: cover;
  opacity: 0.7;
  transition: opacity 500ms ease, transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.artifact-concept {
  width: 92%;
  height: 86%;
  inset: 7% auto auto 4%;
  object-fit: contain;
}

.product-chapter:hover .artifact-image {
  opacity: 0.84;
  transform: scale(1.012);
}

.media-label,
.media-coordinate {
  position: absolute;
  z-index: 3;
  color: #a5a8a6;
  font: 500 9px/1 Arial, sans-serif;
  letter-spacing: 0.16em;
}

.media-label { top: clamp(34px, 4vw, 62px); left: clamp(28px, 5vw, 80px); }
.media-coordinate { right: clamp(28px, 5vw, 80px); bottom: clamp(34px, 4vw, 62px); }

.product-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(72px, 8vw, 136px);
}

.product-code {
  margin: 0 0 38px;
  color: var(--accent);
  font: 500 10px/1 Arial, sans-serif;
  letter-spacing: 0.2em;
}

.product-copy h2 {
  margin: 0;
  font-size: clamp(48px, 6vw, 86px);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.02;
  text-wrap: balance;
}

.product-line {
  max-width: 470px;
  margin: 38px 0 0;
  color: #c1c3c1;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.9;
  text-wrap: pretty;
}

.product-meta {
  margin: 22px 0 52px;
  color: #727573;
  font: 500 9px/1.5 Arial, sans-serif;
  letter-spacing: 0.16em;
}

.product-chapter-reverse .artifact-media { grid-column: 2; }
.product-chapter-reverse .product-copy { grid-column: 1; grid-row: 1; }
.product-chapter-reverse .artifact-media::before { right: auto; left: 0; }
.product-chapter-reverse h2 { font-size: clamp(44px, 5vw, 76px); letter-spacing: 0.015em; }

@media (prefers-reduced-motion: no-preference) {
  .software-hero-copy { animation: software-copy-in 780ms 80ms cubic-bezier(0.16, 1, 0.3, 1) both; }
  .software-register { animation: software-register-in 900ms 140ms cubic-bezier(0.16, 1, 0.3, 1) both; }

  @supports (animation-timeline: view()) {
    .product-copy,
    .artifact-image {
      animation: chapter-reveal linear both;
      animation-timeline: view();
      animation-range: entry 8% cover 32%;
    }
  }
}

@keyframes software-copy-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes software-register-in {
  from { opacity: 0; transform: translateX(22px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes chapter-reveal {
  from { opacity: 0.48; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
  .software-hero {
    grid-template-columns: 1fr;
    min-height: 780px;
  }

  .software-hero-copy { padding: 88px 24px 54px; }
  .software-register { justify-content: flex-start; padding: 0 24px 96px 70px; }
  .hero-signal { left: 24px; top: 52%; }

  .product-chapter {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .artifact-media,
  .product-chapter-reverse .artifact-media {
    grid-column: 1;
    grid-row: 1;
    min-height: 620px;
  }

  .product-copy,
  .product-chapter-reverse .product-copy {
    grid-column: 1;
    grid-row: 2;
    min-height: 560px;
    padding: 78px 24px 106px 70px;
  }

  .chapter-signal { left: 24px; top: 50%; }
  .artifact-concept { width: 94%; right: auto; left: 3%; }
}

@media (max-width: 560px) {
  .software-hero { min-height: 700px; }
  .software-hero-copy { padding-top: 70px; }
  .software-hero h1 { font-size: clamp(48px, 14vw, 66px); }
  .software-register { padding-left: 58px; }
  .software-register a { grid-template-columns: 82px 1fr; min-height: 102px; gap: 18px; }

  .artifact-media,
  .product-chapter-reverse .artifact-media { min-height: 470px; }

  .artifact-concept {
    width: 96%;
    height: 88%;
    inset: 6% auto auto 2%;
  }

  .product-copy,
  .product-chapter-reverse .product-copy {
    min-height: 500px;
    padding: 68px 20px 96px 58px;
  }

  .product-copy h2 { font-size: clamp(46px, 14vw, 68px); }
  .product-line { font-size: 15px; }
  .hero-signal,
  .chapter-signal { left: 20px; }
  .media-label { left: 20px; }
  .media-coordinate { right: 20px; }
}
