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

/* --- lens-across: what survives a turn and a thread ------------------------- */
.reveal .a1-across {
  display: grid; height: 100%; box-sizing: border-box; padding-top: 24px; column-gap: 20px; row-gap: 12px;
  grid-template-columns: 180px repeat(3, minmax(0, 1fr));
  grid-template-rows: auto 1.55fr 1fr 1fr 1fr auto;
}
.reveal .a1-rowhead { grid-column: 1; align-self: center; font: 600 28px/1.15 var(--mono); color: var(--text-bright); }
.reveal .a1-r1 { grid-row: 2; }
.reveal .a1-r2 { grid-row: 3; }
.reveal .a1-r3 { grid-row: 4; }
.reveal .a1-r4 { grid-row: 5; }
.reveal .a1-col { grid-row: 1 / span 5; display: grid; grid-template-rows: subgrid; min-width: 0; }
.reveal .a1-c1 { grid-column: 2; }
.reveal .a1-c2 { grid-column: 3; }
.reveal .a1-c3 { grid-column: 4; }
.reveal .a1-head { display: flex; flex-direction: column; gap: 4px; padding-bottom: 8px; border-bottom: 2px solid var(--rule-strong); }
.reveal .a1-ct { font: 600 30px/1.15 var(--sans); color: var(--text-bright); }
.reveal .a1-cq { font-size: 26px; line-height: 1.25; color: var(--text-dim); }
.reveal .a1-cell {
  display: flex; flex-direction: column; justify-content: center; gap: 8px; min-height: 0;
  padding: 8px 18px; background: var(--bg-2); border: 1px solid var(--rule); border-left: 4px solid var(--rule-strong);
  font-size: 28px; line-height: 1.22; color: var(--text);
}
.reveal .a1-cell.is-keep { border-left-color: var(--teal); background: color-mix(in oklab, var(--teal) 9%, var(--bg-2)); }
.reveal .a1-cell.is-grey { color: var(--text-dim); }
.reveal .a1-cell.is-cross {
  border: 2px solid var(--gold); background: color-mix(in oklab, var(--gold) 14%, var(--bg-2)); color: var(--text-bright); font-weight: 600;
}
.reveal .a1-note { padding: 6px 12px; border: 1px solid var(--coral); border-radius: 4px; font-size: 26px; line-height: 1.22; color: var(--text); }
.reveal .a1-term { color: var(--coral); }
.reveal .a1-cross { grid-column: 2 / span 3; grid-row: 6; position: relative; height: 56px; }
.reveal .a1-cross-line { position: absolute; left: 16.667%; right: 16.667%; top: 8px; height: 4px; background: var(--gold); }
.reveal .a1-cross-line::before, .reveal .a1-cross-line::after {
  content: ""; position: absolute; top: -8px; width: 20px; height: 20px; border-radius: 50%; background: var(--gold);
}
.reveal .a1-cross-line::before { left: -10px; }
.reveal .a1-cross-line::after { right: -10px; }
.reveal .a1-cross-label {
  position: absolute; left: 50%; top: 20px; transform: translateX(-50%); white-space: nowrap;
  font: 500 26px/1.2 var(--mono); letter-spacing: .02em; color: var(--gold);
}

/* --- lens-ladder: four iterations, left to right ----------------------------- */
.reveal .a1-ladder { display: flex; flex-direction: column; gap: 14px; height: 100%; box-sizing: border-box; padding-top: 24px; }
.reveal .a1-rungs { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 44px; }
.reveal .a1-rung { position: relative; display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.reveal .a1-rung:not(:last-child)::after {
  content: "\2192"; position: absolute; right: -40px; top: 8px; width: 36px; text-align: center;
  font: 500 32px/1 var(--mono); color: var(--text-dim);
}
.reveal .a1-rung-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 2px solid var(--rule-strong); }
.reveal .a1-rung.is-target .a1-rung-head { border-bottom: 2px dashed var(--gold); }
.reveal .a1-rung.is-target .a1-ct { color: var(--gold); }
.reveal .a1-prompt {
  display: flex; flex-direction: column; gap: 12px; padding: 14px 16px; min-height: 130px;
  background: var(--bg-2); border: 2px solid var(--rule-strong); border-radius: 6px;
}
.reveal .a1-prompt.is-risk { border-color: var(--coral); }
.reveal .a1-prompt.is-safe { border-color: var(--teal); background: color-mix(in oklab, var(--teal) 9%, var(--bg-2)); }
.reveal .a1-prompt.is-dashed, .reveal .a1-outside.is-dashed, .reveal .a1-res.is-dashed { border-style: dashed; }
.reveal .a1-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.reveal .a1-chip { padding: 6px 14px; border: 1px solid var(--rule-strong); border-radius: 4px; font: 500 24px/1.2 var(--mono); color: var(--text); background: var(--bg); }
.reveal .a1-chip.is-risk { border-color: var(--coral); color: var(--coral); background: color-mix(in oklab, var(--coral) 12%, var(--bg)); }
.reveal .a1-outside {
  display: flex; flex-direction: column; gap: 6px; padding: 12px 16px; min-height: 140px;
  border: 1px solid var(--rule-strong); border-radius: 6px; background: var(--bg-2);
}
.reveal .a1-out-text { font-size: 26px; line-height: 1.25; color: var(--text); }
.reveal .a1-results { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
.reveal .a1-res {
  flex: 1 1 0; display: flex; align-items: center; padding: 10px 16px; border-left: 4px solid var(--teal); background: var(--bg-2);
  font-size: 30px; line-height: 1.22; color: var(--text);
}
.reveal .a1-res.is-key { font-weight: 700; color: var(--text-bright); background: color-mix(in oklab, var(--teal) 14%, var(--bg-2)); }
.reveal .a1-res.is-dashed { border: 2px dashed var(--gold); color: var(--text-dim); }
.reveal .a1-model { margin: 0; max-width: none; }

/* --- request-mark: guess, then the measured reveal, then the target's fix ---- */
.reveal .a1-mark { display: flex; flex-direction: column; gap: 14px; height: 100%; box-sizing: border-box; padding-top: 24px; }
.reveal .ce-guess.a1-guess { margin-top: 0; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); flex: 1 1 auto; min-height: 0; }
.reveal .ce-guess .a1-p { margin: 0; font-size: 28px; line-height: 1.25; color: var(--text); }
.reveal .a1-guess h3 { font-size: 36px; line-height: 1.15; }
.reveal .a1-test { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.reveal .ce-guess .a1-test-name { font-weight: 700; color: var(--text-bright); }
.reveal .a1-tally { display: grid; grid-template-columns: 200px auto 1fr; gap: 14px; align-items: center; }
.reveal .a1-tally-l { font-size: 26px; color: var(--text-dim); }
.reveal .a1-tally-n { font-size: 26px; color: var(--text-dim); }
.reveal .a1-n { font: 700 28px/1.2 var(--mono); color: var(--gold); }
.reveal .a1-n.is-bad { color: var(--coral); }
.reveal .a1-cells { display: flex; gap: 4px; }
.reveal .a1-c { display: block; width: 18px; height: 32px; background: var(--gold); border: 1px solid var(--gold); }
.reveal .a1-cells.is-bad .a1-c { background: var(--coral); border-color: var(--coral); }
.reveal .a1-cells .a1-c.is-off { background: none; border-color: var(--rule-strong); }
.reveal .a1-forge { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--rule-strong); }
.reveal .ce-guess .a1-stamp {
  display: inline-block; margin: 14px 0 0; padding: 6px 20px; border: 3px solid var(--coral); border-radius: 4px;
  font: 700 34px/1.2 var(--mono); color: var(--coral);
}
.reveal .a1-target {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; padding: 16px 24px;
  border: 2px dashed var(--gold); border-radius: 6px; background: var(--bg-2);
}
.reveal .a1-target-part { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.reveal .a1-mock { margin-top: 44px; padding: 26px 26px; background: var(--bg-2); border: 2px solid var(--rule-strong); border-radius: 8px; }
.reveal .a1-mock-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--rule); }
.reveal .a1-mock-mark { font: 600 28px/1.2 var(--mono); color: var(--gold); }
.reveal .ce-guess .a1-mock-post { margin: 12px 0 0; max-width: none; font-size: 30px; line-height: 1.3; color: var(--text); }
.reveal .a1-mock-who { color: var(--text-bright); }
.reveal .a1-mock-at { color: var(--gold); font-weight: 700; }
