.grow-line { border-bottom: 1px solid var(--zl-line); background: var(--zl-surface); }
.grow-invitation {
  position: relative;
  min-height: clamp(25rem, 34vw, 27rem);
  display: grid;
  place-items: center;
  overflow: hidden;
  border-block: 1px solid var(--zl-line);
  background: var(--zl-vermilion-wash);
}

.grow-invitation__canvas { position: absolute; inset: 0 0 auto; height: 52%; pointer-events: none; }
.grow-invitation__canvas canvas { width: 100%; height: 100%; display: block; }
.grow-invitation__content { position: relative; z-index: 1; width: min(100% - 2.5rem, 70rem); display: flex; flex-direction: column; align-items: center; gap: 1.25rem; padding-block: clamp(3.25rem, 5vw, 4.5rem); text-align: center; }
.grow-invitation__content h2 { max-width: 22ch; font-size: var(--zl-type-section-heading-size); letter-spacing: var(--zl-tracking-heading); line-height: var(--zl-leading-section); }
.grow-invitation__typed { max-width: 100%; min-height: 2.6rem; display: inline-flex; align-items: center; gap: .75rem; box-sizing: border-box; padding: .45rem .25rem .45rem 1rem; border-bottom: 1px dashed var(--zl-line-strong); color: var(--zl-body); font-size: clamp(1rem,1.5vw,1.35rem); line-height: 1.35; }
.grow-invitation__typed span { min-width: 0; overflow-wrap: anywhere; }
.grow-invitation__typed::before { width: 2px; height: 2.1rem; flex: 0 0 auto; background: var(--zl-vermilion); content: ""; }
.grow-invitation__typed i { width: .09em; height: 1.15em; background: var(--zl-vermilion); animation: grow-cursor .9s steps(1) infinite; }
@keyframes grow-cursor { 50% { opacity: 0; } }

.grow-source { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); border-bottom: 1px solid var(--zl-line); }
.grow-source__copy { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(3.5rem,6vw,6rem) clamp(1.25rem,5.25vw,5rem); }
.grow-source__copy h2 { max-width: 13ch; margin-top: 1.25rem; font-size: var(--zl-type-section-heading-size); letter-spacing: var(--zl-tracking-heading); line-height: var(--zl-leading-section); }
.grow-source__lead { max-width: 38rem; margin-top: 2rem; color: var(--zl-body); font-size: var(--zl-type-lead-size); line-height: var(--zl-leading-lead); }
.grow-checks { width: 100%; display: grid; margin: 2rem 0 0; padding: 0; list-style: none; }
.grow-checks li { position: relative; min-height: 4rem; display: flex; align-items: center; padding: 1rem 0 1rem 2.8rem; border-top: 1px dashed var(--zl-line-strong); opacity: 0; transform: translateY(.5rem); }
.grow-checks li::before { position: absolute; left: 0; width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border: 1px dashed var(--zl-vermilion); background: var(--zl-vermilion-wash); color: var(--zl-vermilion-text); font-family: var(--zl-font-mono); font-size: .85rem; content: "✓"; transform: scale(.35); opacity: 0; }
.grow-source.is-visible .grow-checks li { animation: grow-check-row 520ms var(--zl-ease-out) both; }
.grow-source.is-visible .grow-checks li::before { animation: grow-check-box 360ms var(--zl-ease-out) both; }
.grow-source.is-visible .grow-checks li:nth-child(2), .grow-source.is-visible .grow-checks li:nth-child(2)::before { animation-delay: 220ms; }
.grow-source.is-visible .grow-checks li:nth-child(3), .grow-source.is-visible .grow-checks li:nth-child(3)::before { animation-delay: 440ms; }
@keyframes grow-check-row { to { opacity: 1; transform: none; } }
@keyframes grow-check-box { to { opacity: 1; transform: scale(1); } }
.grow-source__scale { margin-top: 1.4rem; color: var(--zl-vermilion-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); font-weight: var(--zl-weight-bold); letter-spacing: var(--zl-tracking-data); text-transform: uppercase; }
.grow-source__cta { margin-top: 2.25rem; }

.grow-profile { position: relative; min-width: 0; min-height: clamp(42rem,54vw,54rem); display: flex; flex-direction: column; justify-content: center; gap: 1.2rem; overflow: hidden; padding: clamp(2rem,5vw,5rem); border-left: 1px solid var(--zl-line); background: var(--zl-paper); }
.grow-profile::before { position: absolute; inset: 0; background: linear-gradient(var(--zl-line) 1px,transparent 1px),linear-gradient(90deg,var(--zl-line) 1px,transparent 1px); background-size: 4rem 4rem; opacity: .36; content: ""; }
.grow-profile > * { position: relative; z-index: 1; }
.grow-profile__input { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.grow-profile__input span { padding: 1rem; border: 1px dashed var(--zl-vermilion); background: var(--zl-surface); color: var(--zl-body); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); }
.grow-profile__node { display: flex; align-items: center; justify-content: center; gap: .6rem; color: var(--zl-vermilion-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); letter-spacing: .06em; text-transform: uppercase; }
.grow-profile__node i { width: .65rem; height: .65rem; background: var(--zl-vermilion); transform: rotate(45deg); animation: grow-node-pulse 1.8s var(--zl-ease-standard) infinite; }
@keyframes grow-node-pulse { 50% { transform: rotate(135deg) scale(1.25); } }
.grow-profile__card { overflow: hidden; border: 1px solid var(--zl-line-strong); background: var(--zl-surface); box-shadow: 1rem 1rem 0 var(--zl-vermilion-wash); }
.grow-profile__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--zl-line); }
.grow-profile__header div { display: grid; gap: .25rem; }
.grow-profile__header span { color: var(--zl-muted-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); text-transform: uppercase; }
.grow-profile__header strong { font-size: 1.25rem; }
.grow-profile__header b { padding: .4rem .65rem; border: 1px solid var(--zl-vermilion); color: var(--zl-vermilion-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); }
.grow-profile dl { margin: 0; }
.grow-profile dl div { display: grid; grid-template-columns: minmax(8rem,.62fr) minmax(0,1.38fr); gap: 1rem; padding: .9rem 1.25rem; border-bottom: 1px dotted var(--zl-line-strong); opacity: 0; transform: translateX(1rem); }
.grow-profile dl div:last-child { border-bottom: 0; }
.grow-profile dt { color: var(--zl-muted-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); letter-spacing: .04em; text-transform: uppercase; }
.grow-profile dd { margin: 0; color: var(--zl-ink); line-height: 1.35; }
.grow-source.is-visible .grow-profile dl div { animation: grow-profile-row 520ms var(--zl-ease-out) forwards; }
.grow-source.is-visible .grow-profile dl div:nth-child(2) { animation-delay: 180ms; }.grow-source.is-visible .grow-profile dl div:nth-child(3) { animation-delay: 360ms; }.grow-source.is-visible .grow-profile dl div:nth-child(4) { animation-delay: 540ms; }.grow-source.is-visible .grow-profile dl div:nth-child(5) { animation-delay: 720ms; }.grow-source.is-visible .grow-profile dl div:nth-child(6) { animation-delay: 900ms; }
@keyframes grow-profile-row { to { opacity: 1; transform: none; } }
.grow-profile__trust { display: flex; flex-wrap: wrap; gap: .5rem; }
.grow-profile__trust span { padding: .45rem .65rem; border: 1px dashed var(--zl-line-strong); background: var(--zl-surface); color: var(--zl-muted-text); font-family: var(--zl-font-mono); font-size: .68rem; }

.grow-proof { --grow-tab-interval: 8s; background: var(--zl-surface); }
.grow-proof__tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid var(--zl-line); }
.grow-proof__tabs button { position: relative; min-height: 7rem; display: flex; align-items: center; justify-content: center; gap: .85rem; overflow: hidden; border: 0; border-right: 1px solid var(--zl-line); background: var(--zl-surface); color: var(--zl-body); cursor: pointer; }
.grow-proof__tabs button:last-child { border-right: 0; }
.grow-proof__tabs button::before { position: absolute; inset: 0; background: var(--zl-vermilion-wash); content: ""; transform: scaleX(0); transform-origin: left; }
.grow-proof__tabs button > * { position: relative; z-index: 1; }
.grow-proof__tabs button[aria-selected="true"] { color: var(--zl-vermilion-text); font-weight: var(--zl-weight-semibold); }
.grow-proof__tabs button.is-progressing::before { animation: grow-tab-fill var(--grow-tab-interval) linear forwards; }
.grow-proof__tabs button[aria-selected="true"]:not(.is-progressing)::before { transform: scaleX(1); }
.grow-proof__tabs svg { width: 1.6rem; height: 1.6rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.grow-proof__tabs button:hover svg, .grow-proof__tabs button:focus-visible svg { animation: grow-icon-hover 560ms var(--zl-ease-out); }
@keyframes grow-icon-hover { 35% { transform: translateY(-2px) rotate(-7deg); } 70% { transform: rotate(5deg); } }
.grow-proof__tabs button > i { position: absolute; inset: auto 0 0; height: 2px; background: var(--zl-vermilion); transform: scaleX(0); transform-origin: left; }
.grow-proof__tabs button.is-progressing > i { animation: grow-tab-fill var(--grow-tab-interval) linear forwards; }
.grow-proof__tabs button[aria-selected="true"]:not(.is-progressing) > i { transform: scaleX(1); }
@keyframes grow-tab-fill { to { transform: scaleX(1); } }
.grow-proof__panel { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); min-height: clamp(39rem,46vw,48rem); animation: grow-panel-in 620ms var(--zl-ease-standard) both; }
.grow-proof__panel[hidden] { display: none; }
@keyframes grow-panel-in { from { opacity: 0; transform: translateY(.7rem); } to { opacity: 1; transform: none; } }
.grow-proof__copy { display: flex; flex-direction: column; padding: clamp(3rem,6vw,6rem) clamp(1.25rem,4vw,5rem); }
.grow-proof__label { color: var(--zl-vermilion-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); font-weight: var(--zl-weight-bold); letter-spacing: var(--zl-tracking-label); text-transform: uppercase; }
.grow-proof__copy h3 { max-width: 14ch; margin-top: 1.5rem; font-size: clamp(2.3rem,4.2vw,4.4rem); letter-spacing: var(--zl-tracking-heading); line-height: .98; }
.grow-proof__metric { max-width: 35rem; margin-top: 1.5rem; color: var(--zl-vermilion-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-sm); letter-spacing: .04em; }
.grow-proof__copy ul { display: grid; margin: auto 0 0; padding: 3rem 0 0; list-style: none; }
.grow-proof__copy li { position: relative; min-height: 4rem; display: flex; align-items: center; padding: 1rem 0 1rem 2.8rem; border-top: 1px dashed var(--zl-line-strong); opacity: 0; transform: translateY(.65rem); }
.grow-proof__copy li::before { position: absolute; left: 0; width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border: 1px dashed var(--zl-vermilion); background: var(--zl-vermilion-wash); color: var(--zl-vermilion-text); content: "✓"; opacity: 0; transform: scale(.35); }
.grow-proof__panel.is-active .grow-proof__copy li { animation: grow-check-row 520ms var(--zl-ease-out) both; }
.grow-proof__panel.is-active .grow-proof__copy li::before { animation: grow-check-box 360ms var(--zl-ease-out) both; }
.grow-proof__panel.is-active .grow-proof__copy li:nth-child(2),.grow-proof__panel.is-active .grow-proof__copy li:nth-child(2)::before { animation-delay: 220ms; }.grow-proof__panel.is-active .grow-proof__copy li:nth-child(3),.grow-proof__panel.is-active .grow-proof__copy li:nth-child(3)::before { animation-delay: 440ms; }

.grow-scene { position: relative; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 1.5rem; overflow: hidden; padding: clamp(2rem,5vw,5rem); border-left: 1px solid var(--zl-line); background: var(--zl-paper); }
.grow-scene::before { position: absolute; inset: 0; background: linear-gradient(var(--zl-line) 1px,transparent 1px),linear-gradient(90deg,var(--zl-line) 1px,transparent 1px); background-size: 4rem 4rem; opacity: .35; content: ""; }
.grow-scene > * { position: relative; z-index: 1; }
.grow-scene__title { color: var(--zl-muted-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); letter-spacing: var(--zl-tracking-data); text-transform: uppercase; }
.grow-scene__rows { display: grid; gap: .8rem; }
.grow-scene__rows span { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; border: 1px solid var(--zl-line); background: var(--zl-surface); opacity: 0; transform: translateX(2rem); }
.grow-scene__rows b { font-weight: var(--zl-weight-medium); }.grow-scene__rows em { color: var(--zl-vermilion-text); font-family: var(--zl-font-mono); font-size: var(--zl-text-xs); font-style: normal; text-align: right; }
.grow-scene__rows .is-dim { opacity: .45; filter: grayscale(1); }
.grow-proof__panel.is-active .grow-scene__rows span { animation: grow-scene-row 600ms var(--zl-ease-out) forwards; }
.grow-proof__panel.is-active .grow-scene__rows span:nth-child(2) { animation-delay: 180ms; }.grow-proof__panel.is-active .grow-scene__rows span:nth-child(3) { animation-delay: 360ms; }.grow-proof__panel.is-active .grow-scene__rows span:nth-child(4) { animation-delay: 540ms; }
@keyframes grow-scene-row { to { opacity: 1; transform: none; } }
.grow-timeline { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; }
.grow-timeline span { position: relative; min-height: 8rem; display: grid; place-items: center; padding: 1rem; border: 1px dashed var(--zl-vermilion); background: var(--zl-surface); text-align: center; opacity: 0; }
.grow-timeline span:not(:last-child)::after { position: absolute; top: 50%; right: -.8rem; color: var(--zl-vermilion); content: "→"; }
.grow-proof__panel.is-active .grow-timeline span { animation: grow-timeline-in 500ms var(--zl-ease-out) forwards; }
.grow-proof__panel.is-active .grow-timeline span:nth-child(2) { animation-delay: 450ms; }.grow-proof__panel.is-active .grow-timeline span:nth-child(3) { animation-delay: 900ms; }
@keyframes grow-timeline-in { from { transform: scale(.92); } to { opacity: 1; transform: scale(1); } }
.grow-scene__result { padding: 1rem; border: 1px solid var(--zl-vermilion); background: var(--zl-vermilion-wash); color: var(--zl-vermilion-text); text-align: center; opacity: 0; }
.grow-proof__panel.is-active .grow-scene__result { animation: grow-result 520ms var(--zl-ease-out) 1.35s forwards; }
@keyframes grow-result { to { opacity: 1; } }
.grow-proof__close { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem,4vw,3rem) clamp(1.25rem,4vw,5rem); border-top: 1px solid var(--zl-line); }
.grow-proof__close p { max-width: 38rem; color: var(--zl-body); font-size: var(--zl-type-lead-size); line-height: var(--zl-leading-lead); }

@media (max-width: 900px) {
  .grow-source,.grow-proof__panel { grid-template-columns: 1fr; }
  .grow-profile,.grow-scene { border-top: 1px solid var(--zl-line); border-left: 0; }
  .grow-proof__tabs button { min-height: 5.5rem; }
  .grow-proof__close { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
  .grow-invitation__content h2,.grow-source__copy h2 { font-size: var(--zl-type-section-heading-mobile-size); }
  .grow-invitation__typed { width: 100%; min-height: 4.4rem; align-items: flex-start; justify-content: center; }
  .grow-profile { min-height: auto; padding: 1.25rem; }
  .grow-profile__input,.grow-profile dl div { grid-template-columns: 1fr; }
  .grow-profile dl div { gap: .35rem; }
  .grow-proof__tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .grow-proof__tabs button:nth-child(2) { border-right: 0; }.grow-proof__tabs button:nth-child(-n+2) { border-bottom: 1px solid var(--zl-line); }
  .grow-proof__copy { min-height: 38rem; }
  .grow-scene { min-height: 29rem; padding: 1.25rem; }
  .grow-timeline { grid-template-columns: 1fr; }.grow-timeline span { min-height: 5rem; }.grow-timeline span:not(:last-child)::after { top: auto; right: 50%; bottom: -.8rem; transform: rotate(90deg); }
  .grow-scene__rows span { align-items: flex-start; flex-direction: column; }.grow-scene__rows em { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .grow-invitation__typed i,.grow-profile__node i { animation: none; }
  .grow-checks li,.grow-checks li::before,.grow-profile dl div,.grow-proof__copy li,.grow-proof__copy li::before,.grow-scene__rows span,.grow-timeline span,.grow-scene__result { opacity: 1; transform: none; animation: none !important; }
  .grow-proof__tabs button[aria-selected="true"]::before,.grow-proof__tabs button[aria-selected="true"] > i { transform: scaleX(1); animation: none; }
}
