/* ABOUTME: Act 2 lens-slide components for the 100226 deck, owned by builder 2. */
/* ABOUTME: Every class here carries the a2- prefix; shared deck components live in assets/deck.css. */

/* --- lens-funnel: six events through six checks ---------------------------- */
.reveal .a2-funnel { display: flex; flex-direction: column; gap: 10px; height: 100%; padding-top: 16px; box-sizing: border-box; }
.reveal .a2-fhead, .reveal .a2-frow {
  display: grid; grid-template-columns: 330px repeat(6, minmax(0, 1fr)) 250px; column-gap: 8px; align-items: stretch;
}
.reveal .a2-fhead { flex: 0 0 auto; align-items: end; padding-bottom: 8px; border-bottom: 2px solid var(--rule-strong); }
.reveal .a2-h { font: 600 26px/1.15 var(--sans); color: var(--text-bright); text-align: center; }
.reveal .a2-h-ev { text-align: left; }
.reveal .a2-h-out { text-align: left; font-weight: 600; }
.reveal .a2-fbody { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
.reveal .a2-frow { flex: 1 1 0; min-height: 0; }
.reveal .a2-frow:nth-child(5) { flex-grow: 1.8; }
.reveal .a2-ev { display: flex; flex-direction: column; justify-content: center; font-size: 26px; line-height: 1.15; color: var(--text); padding-right: 10px; }
.reveal .a2-who { color: var(--text-bright); font-weight: 700; }
.reveal .a2-pass {
  display: flex; align-items: center; justify-content: center; font-size: 30px; color: var(--teal);
  background: var(--bg-2); border-top: 3px solid var(--teal);
}
.reveal .a2-stop {
  display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 6px 20px;
  background: var(--bg-2); border: 2px solid var(--coral);
}
.reveal .a2-stop-t { font: 600 28px/1.15 var(--sans); color: var(--text-bright); }
.reveal .a2-stop.is-park { border-color: var(--coral); }
.reveal .a2-stop.is-park .a2-stop-t { color: var(--coral); }
.reveal .a2-stop.is-drop { border-color: var(--rule-strong); }
.reveal .a2-stop.is-go { grid-column: 8; border: 3px solid var(--gold); background: color-mix(in oklab, var(--gold) 14%, var(--bg-2)); justify-content: center; }
.reveal .a2-stop.is-go .a2-stop-t { color: var(--gold); }
.reveal .a2-stop.a2-split { display: grid; grid-template-columns: 1.3fr 1fr; gap: 0; padding: 0; border: 0; background: none; }
.reveal .a2-half { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 4px; padding: 6px 18px; background: var(--bg-2); }
.reveal .a2-half.is-built { border: 2px solid var(--teal); }
.reveal .a2-half.is-built .a2-stop-t { color: var(--teal); }
.reveal .a2-half.is-target { border: 2px dashed var(--coral); }
.reveal .a2-half.is-target .a2-stop-t { color: var(--coral); }
.reveal .a2-fnote { flex: 0 0 auto; display: flex; justify-content: space-between; gap: 40px; padding-top: 4px; border-top: 1px solid var(--rule); }

/* --- lens-ingress-on: one minute of timers ---------------------------------- */
.reveal .a2-time {
  display: grid; grid-template-columns: 250px minmax(0, 1fr); column-gap: 24px; row-gap: 0; align-content: stretch;
  grid-template-rows: auto repeat(5, 1fr); height: 100%; padding-top: 16px; box-sizing: border-box;
}
.reveal .a2-r2 { grid-row: 2; }
.reveal .a2-r3 { grid-row: 3; }
.reveal .a2-r4 { grid-row: 4; }
.reveal .a2-r5 { grid-row: 5; }
.reveal .a2-r6 { grid-row: 6; }
.reveal .a2-axis { grid-row: 1; grid-column: 2; display: flex; justify-content: space-between; padding-bottom: 6px; }
.reveal .a2-rl { grid-column: 1; display: flex; flex-direction: column; justify-content: center; border-top: 1px solid var(--rule); }
.reveal .a2-rn { font: 600 30px/1.1 var(--sans); color: var(--text-bright); }
.reveal .a2-rn.is-deploy { color: var(--coral); }
.reveal .a2-rt { grid-column: 2; display: flex; flex-direction: column; justify-content: center; gap: 8px; border-top: 1px solid var(--rule); min-width: 0; }
.reveal .a2-track { position: relative; height: 34px; border-bottom: 2px solid var(--rule-strong); }
.reveal .a2-dot { position: absolute; bottom: -9px; width: 18px; height: 18px; margin-left: -9px; border-radius: 50%; background: var(--teal); }
.reveal .a2-gap { position: absolute; bottom: -2px; height: 0; border-top: 4px dashed var(--coral); }
.reveal .a2-tick { position: absolute; bottom: -2px; width: 4px; height: 26px; margin-left: -2px; background: var(--gold); }
.reveal .a2-tick.is-fast { height: 14px; background: var(--coral); }
.reveal .a2-bar { position: absolute; bottom: 8px; height: 12px; background: color-mix(in oklab, var(--violet) 55%, var(--bg-2)); border: 2px solid var(--violet); box-sizing: border-box; }
.reveal .a2-bar.is-renew { bottom: -6px; background: none; border-style: dashed; }
.reveal .a2-say { margin: 0; max-width: none; font-size: 26px; line-height: 1.2; color: var(--text); }
.reveal .a2-say.is-deploy { color: var(--coral); max-width: 780px; }
.reveal .a2-wd { flex-direction: row; justify-content: flex-start; align-items: center; gap: 40px; font-size: 28px; color: var(--text); }
.reveal .a2-wd-built, .reveal .a2-wd-target { display: inline-flex; align-items: center; gap: 14px; }
.reveal .a2-wd-target { padding: 6px 16px; border: 2px dashed var(--rule-strong); }
.reveal .a2-mark { grid-column: 2; grid-row: 1 / 6; justify-self: start; margin-left: 66.7%; width: 0; border-left: 3px dashed var(--coral); }

/* --- lens-thread-owner: built panel beside target panel ---------------------- */
.reveal .a2-owner { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr auto; gap: 24px 36px; height: 100%; padding-top: 16px; box-sizing: border-box; }
.reveal .a2-panel { display: flex; flex-direction: column; gap: 14px; padding: 24px 30px; background: var(--bg-2); min-height: 0; }
.reveal .a2-panel.is-built { border: 2px solid var(--teal); }
.reveal .a2-panel.is-target { border: 2px dashed var(--gold); }
.reveal .a2-ph { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--rule); }
.reveal .a2-pt { font: 600 36px/1.1 var(--sans); color: var(--text-bright); }
.reveal .a2-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; flex: 1 1 auto; justify-content: space-evenly; gap: 14px; }
.reveal .a2-li { margin: 0; font-size: 30px; line-height: 1.22; color: var(--text); padding-left: 22px; border-left: 3px solid var(--rule-strong); }
.reveal .a2-li b { color: var(--text-bright); }
.reveal .a2-li.is-limit { border-left-color: var(--coral); }
.reveal .a2-li.is-limit b { color: var(--coral); }
.reveal .a2-code { font-size: 24px; color: var(--gold); }
.reveal .a2-chip { display: inline-block; margin-left: 8px; padding: 2px 12px; border: 1px dashed var(--gold); font: 400 26px/1.3 var(--sans); color: var(--text); }
.reveal .a2-branch { margin-top: auto; display: flex; flex-direction: column; gap: 4px; padding: 14px 22px; border: 2px dashed var(--coral); background: var(--bg); }
.reveal .a2-branch-t { font: 600 28px/1.15 var(--sans); color: var(--coral); }
.reveal .a2-branch-d { font-size: 26px; line-height: 1.2; color: var(--text); }
.reveal .a2-branch-d em { color: var(--text-bright); }
.reveal .a2-strip {
  grid-column: 1 / -1; padding: 20px 32px; font-size: 30px; line-height: 1.2; color: var(--text);
  border: 2px solid var(--text-dim); background: var(--bg-3); text-align: center;
}
.reveal .a2-strip b { color: var(--text-bright); }

/* --- jev-status: guess, reveal, status ladder -------------------------------- */
.reveal .a2-jev { display: flex; flex-direction: column; gap: 22px; height: 100%; padding-top: 16px; box-sizing: border-box; }
.reveal .ce-guess.a2-guess { flex: 1 1 auto; min-height: 0; margin-top: 0; grid-template-columns: 1fr 1.5fr; gap: 28px; background: none; border: 0; }
.reveal .a2-guess > div { display: flex; flex-direction: column; border: 0; border-top: 3px solid var(--coral); }
.reveal .a2-guess > .a2-real { border-top-color: var(--teal); }
.reveal .ce-guess .a2-gh { margin: auto 0; padding: 0 0 40px; font-size: 52px; line-height: 1.2; color: var(--text-bright); }
.reveal .a2-ladder { flex: 1 1 auto; display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }
.reveal .a2-rung { flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 10px 24px; background: var(--bg); }
.reveal .a2-rung.is-built { border: 2px solid var(--teal); }
.reveal .a2-rung.is-never { border: 2px solid var(--coral); }
.reveal .a2-rung.is-future { border: 2px dashed var(--coral); }
.reveal .a2-rt-t { font: 600 30px/1.15 var(--sans); color: var(--text-bright); }
.reveal .a2-rung.is-never .a2-rt-t, .reveal .a2-rung.is-future .a2-rt-t { color: var(--coral); }
.reveal .a2-rd { font-size: 26px; line-height: 1.2; color: var(--text); }
.reveal .a2-defrow { flex: 0 0 auto; }
.reveal .ce-def.a2-def { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 36px; padding: 16px 28px; }
.reveal .a2-def .ce-def-tag { grid-column: 1; grid-row: 1; }
.reveal .a2-def h3 { grid-column: 1; grid-row: 2; margin: 0; font-size: 48px; color: var(--gold); }
.reveal .ce-def .a2-def-p { grid-column: 2; grid-row: 1 / 3; margin: 0; font-size: 28px; line-height: 1.25; color: var(--text); }
.reveal .a2-thr { flex: 0 0 auto; margin: 0; max-width: none; }
