/* lenses.css — per-lens visuals (DOM stack, Forge, Recon). Thermal + Funnel are canvas-only. */

/* LENS 01 — EXPLODED DOM STACK */
.dom-scene{position:absolute;inset:0 0 44px 0;perspective:1000px;display:flex;align-items:center;justify-content:center;touch-action:none}
.dom-stack{position:relative;width:58%;aspect-ratio:1/1.3;transform-style:preserve-3d;--gap:55px}
.dom-layer{position:absolute;inset:0;border:1px solid var(--acc);border-radius:6px;background:rgba(255,255,255,.03);transform:translateZ(calc(var(--i)*var(--gap)));box-shadow:0 0 18px var(--glow);transition:transform .25s}
.dom-layer .tag,.dom-layer .ms{position:absolute;font:9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;white-space:nowrap}
.dom-layer .tag{top:-15px;left:0;color:var(--acc)}
.dom-layer .ms{bottom:-15px;right:0;color:var(--mono)}
.dom-layer .wire{position:absolute;inset:10%;opacity:.55}
.dom-layer[style*="--i:0"] .wire{background:repeating-linear-gradient(0deg,transparent 0 11px,rgba(255,255,255,.1) 11px 12px),repeating-linear-gradient(90deg,transparent 0 11px,rgba(255,255,255,.1) 11px 12px)}
.dom-layer[style*="--i:1"] .wire{background:linear-gradient(var(--mono2),var(--mono2)) no-repeat 0 0/46% 36%,linear-gradient(var(--mono2),var(--mono2)) no-repeat 100% 58%/38% 32%;opacity:.3}
.dom-layer[style*="--i:2"] .wire{background:repeating-linear-gradient(0deg,var(--mono) 0 2px,transparent 2px 10px) no-repeat 0 44%/70% 36%,linear-gradient(var(--mono),var(--mono)) no-repeat 0 8%/55% 6px;opacity:.5}
.dom-layer[style*="--i:3"] .wire{background:linear-gradient(var(--acc2),var(--acc2)) no-repeat 50% 82%/50% 10%,radial-gradient(circle,var(--acc) 0 3px,transparent 4px) no-repeat 86% 6%/14px 14px;opacity:.75}
.dom-ctl{position:absolute;left:14px;right:14px;bottom:10px;display:flex;gap:10px;align-items:center;font:9px ui-monospace,monospace;letter-spacing:.14em;color:var(--mono)}
.dom-ctl input{flex:1;accent-color:var(--acc);height:2px}

/* LENS 04 — SPLIT-TEST FORGE */
.forge{position:absolute;inset:8px;display:flex;flex-direction:column;gap:8px}
.variant{flex:1;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;position:relative;transition:border-color .4s,box-shadow .4s;min-height:0}
.variant.lead{border-color:var(--ok);box-shadow:0 0 16px rgba(0,229,153,.25)}
.variant .k{font:9px ui-monospace,monospace;letter-spacing:.2em;color:var(--acc)}
.variant h3{font-size:13px;font-weight:600;line-height:1.25;color:#eee}
.variant .stat{display:flex;gap:8px;align-items:baseline}
.variant .val{font:13px ui-monospace,monospace;color:var(--mono)}
.variant .bar{width:100%}
.variant .live{position:absolute;top:10px;right:12px;color:var(--ok)}
.forge .log{font:9px/1.5 ui-monospace,monospace;color:var(--ok);max-height:46px;overflow:hidden}

/* LENS 05 — RECON DOSSIER */
.recon{position:absolute;inset:10px;display:flex;flex-direction:column;gap:10px}
.recon .q{display:flex;gap:8px}
.recon .q input{flex:1;min-width:0}
.recon .out{flex:1;overflow:hidden;display:flex;flex-direction:column;gap:10px}
.hint{font:11px/1.5 ui-monospace,monospace;color:var(--mono);opacity:.7}
.scores{display:flex;justify-content:space-around}
.score{display:flex;flex-direction:column;align-items:center;gap:5px}
.ring{width:58px;height:58px;border-radius:50%;background:conic-gradient(var(--acc) calc(var(--v)*1%),rgba(255,255,255,.08) 0);display:grid;place-items:center;position:relative;box-shadow:0 0 14px var(--glow)}
.ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#0b0b0f}
.ring b{position:relative;font:15px ui-monospace,monospace;color:var(--mono)}
.score span{font:7.5px ui-monospace,monospace;letter-spacing:.16em;color:var(--acc)}
.kv{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:4px 10px;font:10px ui-monospace,monospace}
.kv span{color:var(--acc);letter-spacing:.14em}
.kv b{color:var(--mono);font-weight:500}
.kv .al{color:var(--alert)}
.recon ul{list-style:none;font:10px/1.6 ui-monospace,monospace;color:var(--alert)}
.recon li::before{content:"▸ "}
