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

/* --- shared small parts --------------------------------------------------- */
.reveal .a3-chip {
  display: inline-block; padding: 4px 14px; border: 1px solid var(--violet); border-radius: 4px;
  background: color-mix(in oklab, var(--violet) 12%, transparent);
  font: 500 22px/1.25 var(--sans); color: var(--text-bright);
}
.reveal .a3-chip.is-gap { border-color: var(--coral); background: color-mix(in oklab, var(--coral) 12%, transparent); color: var(--coral); font-family: var(--mono); font-weight: 600; }

/* --- lens-switchboard ------------------------------------------------------ */
.reveal .a3-board { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 56px; height: 100%; }
.reveal .a3-left { display: flex; flex-direction: column; min-height: 0; }
.reveal .a3-delivery { padding: 18px 24px; border: 2px dashed var(--violet); border-radius: 8px; background: color-mix(in oklab, var(--violet) 8%, var(--bg)); }
.reveal .a3-tag { color: var(--violet); text-transform: uppercase; letter-spacing: .14em; }
.reveal .a3-d-main { margin: 6px 0 0; max-width: none; font: 400 40px/1.1 var(--serif); color: var(--text-bright); }
.reveal .a3-d-sub { margin: 4px 0 0; max-width: none; font: 400 28px/1.2 var(--sans); color: var(--text); }
.reveal .a3-arrow { flex: 0 0 34px; width: 2px; margin: 0 auto; background: var(--violet); position: relative; }
.reveal .a3-arrow::after { content: ""; position: absolute; left: -7px; bottom: -2px; border: 8px solid transparent; border-top: 11px solid var(--violet); border-bottom: 0; }
.reveal .a3-plate { position: relative; padding: 12px 24px 14px; border: 2px solid var(--violet); border-radius: 8px; background: color-mix(in oklab, var(--violet) 18%, var(--bg)); text-align: center; }
.reveal .a3-plate::after { content: ""; position: absolute; left: 100%; top: 50%; width: 28px; height: 2px; background: var(--violet); }
.reveal .a3-plate-name { margin: 0; max-width: none; font: 400 60px/1.05 var(--serif); color: var(--text-bright); }
.reveal .a3-def { margin-top: auto; }
.reveal .a3-lanes { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.reveal .a3-lane {
  flex: 1 1 0; position: relative; min-height: 0; display: grid; grid-template-columns: 210px minmax(0, 1fr) auto; gap: 20px; align-items: center;
  padding: 8px 22px; background: var(--bg-2); border: 2px dashed var(--rule-strong); border-radius: 6px;
}
.reveal .a3-lane.is-tall { flex-grow: 1.9; }
.reveal .a3-lane.is-gap { border-color: var(--coral); }
.reveal .a3-lane::before { content: ""; position: absolute; left: -29px; top: 0; bottom: -10px; width: 2px; background: var(--violet); }
.reveal .a3-lane:first-child::before { top: 50%; }
.reveal .a3-lane:last-child::before { bottom: 50%; }
.reveal .a3-lane::after { content: ""; position: absolute; left: -29px; top: 50%; width: 27px; height: 2px; background: var(--violet); }
.reveal .a3-lane-name { font: 600 28px/1.1 var(--mono); color: var(--text-bright); }
.reveal .a3-lane-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.reveal .a3-checks { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.reveal .a3-lead { color: var(--text-dim); margin-right: 4px; }
.reveal .a3-result { margin: 0; max-width: none; font: 400 26px/1.25 var(--sans); color: var(--text-bright); }
.reveal .a3-built { display: flex; align-items: center; gap: 14px; margin: 0; max-width: none; }
.reveal .a3-sub { margin: 0; }

/* --- lens-pass-delivery ---------------------------------------------------- */
.reveal .a3-compare { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); grid-template-rows: minmax(0, 1fr) auto; gap: 22px 36px; height: 100%; }
.reveal .a3-col { display: flex; flex-direction: column; gap: 14px; min-height: 0; padding: 18px 24px; border-radius: 8px; background: var(--bg-2); }
.reveal .a3-col-pass { border: 2px solid var(--rule-strong); }
.reveal .a3-col-delivery { border: 2px dashed var(--text-dim); }
.reveal .a3-col-head { display: flex; flex-direction: column; gap: 4px; }
.reveal .a3-col-t { margin: 0; max-width: none; font: 400 36px/1.1 var(--serif); color: var(--text-bright); }
.reveal .a3-chain { display: flex; flex-direction: column; }
.reveal .a3-node { padding: 8px 18px; border: 1px solid var(--rule-strong); border-radius: 5px; background: var(--bg); font: 400 27px/1.2 var(--sans); color: var(--text); }
.reveal .a3-col-delivery .a3-node { border-style: dashed; border-color: var(--text-dim); }
.reveal .a3-v { color: var(--violet); font-weight: 700; }
.reveal .a3-link { flex: 0 0 14px; width: 2px; margin: 0 auto; background: var(--rule-strong); }
.reveal .a3-limit { margin: auto 0 0; max-width: none; padding: 10px 16px; border-left: 4px solid var(--coral); background: color-mix(in oklab, var(--coral) 10%, var(--bg)); font: 400 27px/1.25 var(--sans); color: var(--text-bright); }
.reveal .a3-claim { grid-column: 1 / -1; padding: 16px 28px; border-left: 4px solid var(--gold); background: color-mix(in oklab, var(--gold) 10%, var(--bg-2)); }
.reveal .a3-claim-t { margin: 0 0 4px; max-width: none; font: 400 36px/1.15 var(--serif); color: var(--text-bright); }

/* --- lens-threat ------------------------------------------------------------ */
.reveal .a3-threat { display: flex; flex-direction: column; gap: 12px; height: 100%; }
.reveal .a3-thead, .reveal .a3-trow { display: grid; grid-template-columns: 340px minmax(0, 1.15fr) minmax(0, 1fr); gap: 36px; }
.reveal .a3-thead { padding: 0 28px; }
.reveal .a3-th { font: 600 26px/1.2 var(--mono); letter-spacing: .06em; color: var(--text-dim); text-transform: uppercase; }
.reveal .a3-th.is-can { color: var(--coral); }
.reveal .a3-trows { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 14px; }
.reveal .a3-trow { flex: 1 1 0; align-items: center; padding: 12px 28px; background: var(--bg-2); border: 2px solid var(--rule-strong); border-radius: 6px; }
.reveal .a3-trow.is-last { border-color: var(--coral); }
.reveal .a3-part-n { margin: 0 0 4px; max-width: none; font: 400 42px/1.05 var(--serif); color: var(--text-bright); }
.reveal .a3-can { border-left: 4px solid var(--coral); padding-left: 20px; }
.reveal .a3-cannot { border-left: 4px solid var(--text-dim); padding-left: 20px; }
.reveal .a3-item { margin: 0 0 6px; max-width: none; font: 400 27px/1.22 var(--sans); color: var(--text); }
.reveal .a3-split { margin: 6px 0 0; max-width: none; padding: 8px 14px; border: 2px dashed var(--coral); font: 400 26px/1.22 var(--sans); color: var(--text-bright); }
.reveal .a3-judge { margin: 0; }

/* --- ledger ------------------------------------------------------------------ */
.reveal .a3-ledger { display: flex; flex-direction: column; gap: 14px; height: 100%; }
.reveal .a3-lcols { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 1.05fr 1.1fr .85fr; gap: 24px; }
.reveal .a3-lcol { display: flex; flex-direction: column; gap: 12px; padding: 18px 24px; background: var(--bg-2); border-radius: 8px; border: 2px solid var(--teal); }
.reveal .a3-lcol.is-target { border: 2px dashed var(--text-dim); }
.reveal .a3-lcol.is-future { border: 2px dashed var(--coral); }
.reveal .a3-lhead { display: flex; flex-direction: column; gap: 6px; padding-bottom: 10px; border-bottom: 1px solid var(--rule-strong); }
.reveal .a3-ltag { font: 500 20px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--teal); }
.reveal .a3-lcol.is-target .a3-ltag { color: var(--text-dim); }
.reveal .a3-lcol.is-future .a3-ltag { color: var(--coral); }
.reveal .a3-lt { margin: 0; max-width: none; font: 400 38px/1.05 var(--serif); color: var(--text-bright); }
.reveal .a3-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; flex: 1 1 auto; justify-content: space-around; gap: 10px; }
.reveal .a3-li { margin: 0; padding: 0; font: 400 26px/1.22 var(--sans); color: var(--text); }
.reveal .a3-correction { margin: 0; max-width: none; padding: 10px 20px; border: 2px solid var(--coral); border-radius: 4px; font: 400 26px/1.25 var(--sans); color: var(--text-bright); }
.reveal .a3-lmeta { margin: 0; }

/* --- layout refinements ----------------------------------------------------- */
.reveal .a3-board, .reveal .a3-compare, .reveal .a3-threat, .reveal .a3-ledger { box-sizing: border-box; padding-top: 22px; }
.reveal .a3-cost, .reveal .a3-judge, .reveal .a3-lmeta { max-width: none; }
.reveal .a3-delivery { flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; }
.reveal .a3-plate { flex: 1.2 1 0; display: flex; flex-direction: column; justify-content: center; }
.reveal .a3-def { margin-top: 22px; }
.reveal .a3-d-main { font-size: 56px; }
.reveal .a3-d-sub { font-size: 32px; }
.reveal .a3-plate-name { font-size: 84px; }
.reveal .a3-chain { flex: 1 1 auto; }
.reveal .a3-node { flex: 1 1 auto; display: flex; align-items: center; }
.reveal .a3-item { font-size: 30px; margin-bottom: 8px; }
.reveal .a3-split { font-size: 28px; }
.reveal .a3-part-n { font-size: 48px; }
.reveal .a3-li { font-size: 30px; line-height: 1.2; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.reveal .a3-li:last-child { border-bottom: 0; }
.reveal .a3-list { justify-content: flex-start; gap: 0; }
.reveal .a3-lt { font-size: 44px; color: var(--teal); }
.reveal .a3-lcol.is-target .a3-lt { color: var(--text-bright); }
.reveal .a3-lcol.is-future .a3-lt { color: var(--coral); }
.reveal .a3-correction { font-size: 28px; }

.reveal .a3-node-t { display: block; }
.reveal .a3-lane.is-tall { flex-grow: 2.4; }
.reveal .a3-li { font-size: 28px; padding: 12px 0; }
.reveal .a3-lcols { grid-template-columns: 1.2fr 1.1fr .8fr; }
.reveal .a3-li { font-size: 30px; padding: 17px 0; }

.reveal .a3-li { padding: 15px 0; }
