/* ============================================================
   STRATUM LABS — SECTIONS
   Section-specific styles for the homepage scroll
   ============================================================ */

/* ── Scroll reveal (shared) ──────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity var(--duration-story) var(--ease-out),
    transform var(--duration-story) var(--ease-out);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delays for children */
.reveal-group .reveal:nth-child(1) { transition-delay: 0ms; }
.reveal-group .reveal:nth-child(2) { transition-delay: 100ms; }
.reveal-group .reveal:nth-child(3) { transition-delay: 200ms; }
.reveal-group .reveal:nth-child(4) { transition-delay: 300ms; }
.reveal-group .reveal:nth-child(5) { transition-delay: 400ms; }
.reveal-group .reveal:nth-child(6) { transition-delay: 500ms; }

/* ── HERO ────────────────────────────────────────────────── */
.hero {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: calc(var(--nav-height) + var(--space-7)) var(--section-pad-x) var(--space-8);
  background: var(--white);
  text-align: center;
  gap: var(--space-6);
  overflow: hidden;
}

/* ── "Same Subject. Many Truths." headline ── */
.hero__headline-wrap {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.hero__kicker {
  font-family: var(--font-display);
  font-size: clamp(0.75rem, 1.2vw, 0.9375rem);
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--stone-500);
  margin-bottom: var(--space-1);
}

.hero__headline {
  font-family: var(--font-body);
  font-size: clamp(3.5rem, 8vw, 7rem);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: var(--ink);
}

/* ── Slide-3 layout: left context · apple · right context ── */
.hero__stage {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--space-5);
  width: 100%;
  max-width: 960px;
}

/* Context — open, no box, no background */
.hero__context {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--space-2) 0;
  background: transparent;
  border: none;
  cursor: default;
  transition: transform 0.55s var(--ease-spring);
}

.hero__context--left  { text-align: right;  transform-origin: right center; }
.hero__context--right { text-align: left;   transform-origin: left center; }

/* Hover: gentle magnify */
.hero__context--left:hover  { transform: scale(1.07) translateX(-5px); }
.hero__context--right:hover { transform: scale(1.07) translateX(5px); }

.hero__context-label {
  font-family: var(--font-display);
  font-size: var(--text-caption);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--stone-500);
  transition: color 0.3s var(--ease-out);
}

.hero__context:hover .hero__context-label {
  color: var(--color-accent);
}

.hero__context-text {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  font-style: italic;
  color: var(--ink);
  line-height: 1.35;
  transition: color 0.3s var(--ease-out);
}

.hero__context-tag {
  font-family: var(--font-display);
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--stone-500);
  transition: color 0.3s var(--ease-out);
}

.hero__context:hover .hero__context-tag {
  color: var(--color-accent);
}

/* ── Real apple photo — floating + 3D ── */
.hero__apple-wrap {
  position: relative;
  width: clamp(200px, 24vw, 320px);
  flex-shrink: 0;
}

.hero__apple-img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 40px 60px rgba(0,0,0,0.16)) drop-shadow(0 8px 24px rgba(0,0,0,0.10));
  will-change: transform;
  /* JS owns all transforms — no CSS animation on this element */
}

.hero__apple-shadow {
  position: absolute;
  bottom: -14px;
  left: 50%;
  transform: translateX(-50%) scaleX(1);
  width: 58%;
  height: 18px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.22) 0%, transparent 70%);
  will-change: transform, opacity;
  /* JS drives the shadow in sync with the float */
}


/* ── Thesis + bridge lines ── */
.hero__thesis-wrap {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  max-width: 680px;
}

.hero__thesis {
  font-family: var(--font-body);
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  color: var(--ink);
  line-height: 1.4;
  letter-spacing: -0.01em;
}

.hero__thesis em {
  font-style: normal;
  color: var(--color-accent);
}

.hero__bridge {
  font-family: var(--font-display);
  font-size: var(--text-small);
  font-weight: 300;
  color: var(--stone-500);
  line-height: 1.7;
  letter-spacing: 0.01em;
}

/* ── Shared reveal state for all .hero__line elements ── */
.hero__line {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.75s var(--ease-out),
    transform 0.75s var(--ease-out);
}

.hero__line.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .hero__stage {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: var(--space-4);
  }

  .hero__context--left,
  .hero__context--right {
    text-align: center;
    transform-origin: center;
  }

  .hero__context--left:hover,
  .hero__context--right:hover {
    transform: scale(1.04) translateX(0);
  }

  .hero__apple-wrap {
    width: clamp(160px, 50vw, 240px);
    margin: 0 auto;
    order: -1;
  }

  .hero__context--left  { order: 0; }
  .hero__context--right { order: 1; }
}

/* ── REFRAME (interactive environment shift) ─────────────── */
.reframe {
  background: var(--stone-50);
  padding: var(--space-9) var(--section-pad-x);
}

.reframe__statement-wrap {
  text-align: center;
  padding: var(--space-6) 0 var(--space-7);
}

.reframe__prelude {
  font-family: var(--font-display);
  font-size: var(--text-caption);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--stone-500);
  margin-bottom: var(--space-3);
}

.reframe__statement {
  display: inline-block;
  font-family: var(--font-body);
  font-size: var(--text-h1);
  font-style: italic;
  color: var(--ink);
  max-width: 720px;
  line-height: 1.4;
  padding: var(--space-4) var(--space-5);
  background: var(--white);
  border-left: var(--rule-accent) solid var(--color-accent);
}

.reframe__divider {
  text-align: center;
  font-family: var(--font-display);
  font-size: var(--text-caption);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--stone-500);
  margin-bottom: var(--space-5);
}

.reframe__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  max-width: var(--content-max);
  margin: 0 auto;
}

.reframe__unchanged {
  text-align: center;
  padding-top: var(--space-6);
}

.reframe__unchanged-text {
  font-family: var(--font-display);
  font-size: var(--text-body);
  color: var(--stone-500);
  font-style: italic;
}

.reframe__unchanged-text em {
  font-style: normal;
  color: var(--ink);
  font-weight: 500;
}

@media (max-width: 768px) {
  .reframe__cards { grid-template-columns: 1fr; }
}

/* ── CASE STUDIES ────────────────────────────────────────── */
.cases {
  background: var(--white);
}

.cases__intro {
  max-width: var(--content-narrow);
  margin: 0 auto var(--space-8);
  text-align: center;
}

.cases__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
}

.cases__closing {
  text-align: center;
  padding: var(--space-8) 0 0;
  max-width: 720px;
  margin: 0 auto;
}

.cases__closing-text {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-style: italic;
  color: var(--stone-800);
  line-height: 1.5;
}

@media (max-width: 900px) {
  .cases__grid { grid-template-columns: 1fr; max-width: 600px; margin: 0 auto; }
}

/* ── GAP ─────────────────────────────────────────────────── */
.gap-section {
  background: var(--stone-50);
}

.gap-section__columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  margin-bottom: var(--space-8);
}

/* "Nobody simulates" pivot */
.gap-pivot {
  min-height: 60svh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--white);
  padding: var(--space-9) var(--section-pad-x);
}

.gap-pivot__inner {
  max-width: 800px;
}

.gap-pivot__line {
  font-family: var(--font-body);
  font-size: var(--text-d2);
  font-weight: 400;
  color: var(--ink);
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.gap-pivot__line em {
  font-style: normal;
  color: var(--color-accent);
}

.gap-pivot__sub {
  margin-top: var(--space-4);
  font-size: var(--text-body);
  color: var(--stone-500);
  font-style: italic;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 768px) {
  .gap-section__columns { grid-template-columns: 1fr; }
}

/* ── READ. THINK. SIMULATE. ──────────────────────────────── */
.rts-section {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--ink);
  padding: var(--space-9) var(--section-pad-x);
  color: var(--white);
  position: relative;
  overflow: hidden;
}

/* Subtle background texture */
.rts-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(212, 43, 37, 0.06) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 50%, rgba(212, 43, 37, 0.04) 0%, transparent 60%);
  pointer-events: none;
}

.rts-section__words {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-7);
}

.rts-word {
  font-family: var(--font-body);
  font-size: var(--text-d1);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1;
  color: var(--white);
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity var(--duration-story) var(--ease-out),
    transform var(--duration-story) var(--ease-out);
}

.rts-word.is-visible { opacity: 1; transform: translateY(0); }
.rts-word:nth-child(1) { transition-delay: 0ms; }
.rts-word:nth-child(2) {
  transition-delay: 180ms;
  color: var(--stone-500);
}
.rts-word:nth-child(3) { transition-delay: 360ms; }
.rts-word:nth-child(4) {
  transition-delay: 540ms;
  color: var(--stone-500);
}
.rts-word:nth-child(5) { transition-delay: 720ms; }

.rts-section__sub {
  position: relative;
  z-index: 1;
  max-width: 640px;
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-style: italic;
  color: var(--stone-500);
  line-height: 1.6;
}

.rts-section__sub em {
  font-style: normal;
  color: var(--stone-200);
}

/* ── ARCHITECTURE ────────────────────────────────────────── */
.arch-section {
  background: var(--white);
}

.arch-section__intro {
  max-width: var(--content-narrow);
  margin: 0 auto var(--space-9);
  text-align: center;
}

.arch-section__blocks {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: var(--content-max);
  margin: 0 auto;
}

/* Each architecture block gets alternating treatment */
.arch-module {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  align-items: start;
  padding: var(--space-8) 0;
  border-top: var(--rule-thin) solid var(--color-border);
}

.arch-module:nth-child(even) .arch-module__content {
  order: 2;
}
.arch-module:nth-child(even) .arch-module__artifact {
  order: 1;
}

.arch-module__eyebrow {
  font-family: var(--font-display);
  font-size: var(--text-caption);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-2);
}

.arch-module__name {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: 500;
  color: var(--ink);
  margin-bottom: var(--space-1);
}

.arch-module__descriptor {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-style: italic;
  color: var(--stone-500);
  margin-bottom: var(--space-4);
}

.arch-module__body {
  margin-bottom: var(--space-4);
  max-width: 520px;
}

.arch-module__counterfactual {
  border-left: var(--rule-accent) solid var(--color-border);
  padding-left: var(--space-3);
  margin-top: var(--space-3);
}

.arch-module__cf-label {
  font-family: var(--font-display);
  font-size: var(--text-caption);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--stone-500);
  margin-bottom: 6px;
}

.arch-module__cf-text {
  font-family: var(--font-body);
  font-size: var(--text-small);
  font-style: italic;
  color: var(--stone-500);
  line-height: 1.65;
}

.arch-module__artifact {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-5));
}

/* Integration thread */
.arch-integration {
  text-align: center;
  padding: var(--space-8) 0 0;
  border-top: var(--rule-thin) solid var(--color-border);
}

.arch-integration__text {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-style: italic;
  color: var(--stone-500);
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.7;
}

.arch-integration__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-family: var(--font-display);
  font-size: var(--text-caption);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
  margin-top: var(--space-4);
  border-bottom: var(--rule-thin) solid var(--color-border);
  padding-bottom: 2px;
  transition: border-color var(--duration-fast) var(--ease-out);
}

.arch-integration__link:hover {
  border-color: var(--ink);
}

@media (max-width: 900px) {
  .arch-module {
    grid-template-columns: 1fr;
  }
  .arch-module:nth-child(even) .arch-module__content,
  .arch-module:nth-child(even) .arch-module__artifact {
    order: unset;
  }
  .arch-module__artifact {
    position: static;
  }
}

/* ── PROPAGATION ANIMATION (Medha) ───────────────────────── */
.prop-animation {
  width: 100%;
  aspect-ratio: 16/9;
  max-height: 360px;
  position: relative;
  background: var(--stone-50);
  border: var(--rule-thin) solid var(--color-border);
  overflow: hidden;
}

.prop-animation svg {
  width: 100%;
  height: 100%;
}

/* Node styles */
.prop-node {
  cursor: default;
}

.prop-node circle {
  transition: r 0.3s var(--ease-out);
}

/* Connection lines */
.prop-line {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  transition: stroke-dashoffset 0.8s var(--ease-out);
}

.prop-line.animate {
  stroke-dashoffset: 0;
}

/* Label bubbles */
.prop-label {
  opacity: 0;
  transition: opacity 0.5s var(--ease-out);
}

.prop-label.animate {
  opacity: 1;
}

/* Replay button */
.prop-replay {
  position: absolute;
  bottom: var(--space-2);
  right: var(--space-2);
  font-family: var(--font-display);
  font-size: 0.625rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--stone-500);
  background: var(--white);
  border: var(--rule-thin) solid var(--color-border);
  padding: 6px 12px;
  cursor: pointer;
  transition: color var(--duration-fast) var(--ease-out),
              border-color var(--duration-fast) var(--ease-out);
}

.prop-replay:hover {
  color: var(--ink);
  border-color: var(--stone-500);
}

/* ── STANDARD ────────────────────────────────────────────── */
.standard-section {
  background: var(--stone-50);
}

.standard-section__intro {
  max-width: var(--content-narrow);
  margin: 0 auto var(--space-7);
  text-align: center;
}

.standard-section__items {
  max-width: 800px;
  margin: 0 auto;
}

.standard-section__link-row {
  text-align: center;
  padding-top: var(--space-6);
}

/* ── WHO WE SERVE ────────────────────────────────────────── */
.serves-section {
  background: var(--white);
}

.serves-section__statement {
  max-width: var(--content-narrow);
  margin: 0 auto var(--space-6);
  text-align: center;
}

.serves-section__headline {
  font-family: var(--font-body);
  font-size: var(--text-d2);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ink);
  margin-bottom: var(--space-3);
}

.serves-section__stakes {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  margin-bottom: var(--space-2);
}

.serves-section__sub {
  font-family: var(--font-display);
  font-size: var(--text-body);
  font-weight: 300;
  color: var(--stone-500);
  max-width: 480px;
  margin: 0 auto;
}

.serves-section__industries {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: var(--space-7);
}

.industry-link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  border-bottom: var(--rule-thin) solid var(--color-border);
  text-decoration: none;
  color: var(--stone-800);
  transition: color 0.22s ease, transform 0.25s var(--ease-spring);
}

.industry-link:hover {
  color: var(--color-accent);
  transform: translateX(8px);
}

/* Small always-visible dot icon */
.industry-link__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--stone-500);
  flex-shrink: 0;
  transition: background 0.22s ease, transform 0.25s var(--ease-spring);
}

.industry-link:hover .industry-link__dot {
  background: var(--color-accent);
  transform: scale(1.4);
}

.industry-link__name {
  font-family: var(--font-display);
  font-size: var(--text-body);
  font-weight: 400;
  line-height: 1.4;
}

@media (max-width: 860px) {
  .serves-section__industries { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
  .serves-section__industries { grid-template-columns: 1fr; }
}

/* ── ORIGIN + INVITATION ─────────────────────────────────── */
.origin-section {
  background: var(--stone-50);
}

.origin-section__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-9);
  align-items: start;
}

.origin-section__eyebrow {
  font-family: var(--font-display);
  font-size: var(--text-caption);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--stone-500);
  margin-bottom: var(--space-3);
}

.origin-section__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* Invitation side */
.invitation {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-6);
  background: var(--white);
  border-top: var(--rule-heavy) solid var(--color-accent);
}

.invitation__line {
  font-family: var(--font-body);
  font-size: var(--text-d2);
  font-style: italic;
  color: var(--ink);
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.invitation__ctas {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.invitation__email {
  font-family: var(--font-display);
  font-size: var(--text-small);
  color: var(--stone-500);
  letter-spacing: 0.02em;
}

.invitation__email a {
  color: var(--ink);
  border-bottom: var(--rule-thin) solid var(--color-border);
  padding-bottom: 2px;
  transition: border-color var(--duration-fast) var(--ease-out);
}

.invitation__email a:hover {
  border-color: var(--ink);
}

@media (max-width: 900px) {
  .origin-section__layout {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }
}

/* ── MISSION closing line ─────────────────────────────────── */
.mission-close {
  background: var(--ink);
  padding: var(--space-9) var(--section-pad-x);
  text-align: center;
}

.mission-close__text {
  font-family: var(--font-body);
  font-size: var(--text-d2);
  font-style: italic;
  color: var(--white);
  line-height: 1.2;
  max-width: 900px;
  margin: 0 auto;
}

.mission-close__text em {
  font-style: normal;
  color: var(--color-accent);
}
