/* The Laundering — Holodeck modal (console "▸ Holodeck" pill).
   The visual / multimedia bay: OG signal card, a deep link to the case maps,
   any live interactive, plus bespoke images / video / embeds per case. */
#holo-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;z-index:210;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;backdrop-filter:blur(2px)}
#holo-overlay.show{display:flex}
#holo-overlay .holo-modal{background:var(--panel-bg,#0a0a0a);border:1px solid var(--lcars-blue,#7a90c8);border-radius:0 24px 0 24px;max-width:980px;width:100%;padding:22px 28px 30px;position:relative;font-family:var(--mono,"JetBrains Mono",monospace);box-shadow:0 24px 60px rgba(0,0,0,.6)}
#holo-overlay .holo-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #2a2a2a;margin-bottom:8px;gap:1rem}
#holo-overlay .holo-kicker{font-family:var(--mono,monospace);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--lcars-blue,#7a90c8);display:flex;align-items:center;gap:.5rem}
#holo-overlay .holo-kicker .pip{width:8px;height:8px;border-radius:50%;background:var(--lcars-blue,#7a90c8);display:inline-block}
#holo-overlay .holo-close{background:transparent;border:1px solid #2a2a2a;color:var(--ink-dim,#9aa0a8);width:34px;height:34px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;font-family:var(--mono,monospace);transition:color 140ms,border-color 140ms}
#holo-overlay .holo-close:hover{color:var(--lcars-blue,#7a90c8);border-color:var(--lcars-blue,#7a90c8)}
#holo-overlay .holo-sub{font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-dim,#9aa0a8);margin:0 0 1.1rem}
#holo-overlay .holo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
#holo-overlay .holo-tile{display:flex;flex-direction:column;background:#0d0d0d;border:1px solid #232323;border-radius:0 12px 0 12px;overflow:hidden;cursor:pointer;transition:border-color 140ms,transform 140ms;text-align:left;color:inherit;text-decoration:none;font:inherit;padding:0}
#holo-overlay .holo-tile:hover{border-color:var(--lcars-blue,#7a90c8);transform:translateY(-2px)}
#holo-overlay .holo-thumb{width:100%;aspect-ratio:1200/630;object-fit:cover;background:#000;display:block;border-bottom:1px solid #232323}
#holo-overlay .holo-icon{width:100%;aspect-ratio:1200/630;display:flex;align-items:center;justify-content:center;font-size:2.4rem;color:var(--lcars-blue,#7a90c8);background:linear-gradient(135deg,rgba(122,144,200,.1),rgba(122,144,200,.02));border-bottom:1px solid #232323}
#holo-overlay .holo-cap{padding:.7rem .85rem}
#holo-overlay .holo-cap .k{font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--lcars-blue,#7a90c8);display:block;margin-bottom:.25rem}
#holo-overlay .holo-cap .d{font-family:var(--serif,Georgia,serif);font-size:.82rem;line-height:1.45;color:var(--ink-dim,#9aa0a8)}
/* lightbox */
#holo-overlay .holo-light{position:fixed;inset:0;background:rgba(0,0,0,.95);display:none;align-items:center;justify-content:center;flex-direction:column;padding:32px;z-index:220}
#holo-overlay .holo-light.show{display:flex}
#holo-overlay .holo-light img,#holo-overlay .holo-light video,#holo-overlay .holo-light iframe{max-width:100%;max-height:80vh;width:auto;border:1px solid #2a2a2a;background:#000}
#holo-overlay .holo-light iframe{width:90vw;height:80vh}
#holo-overlay .holo-light-bar{display:flex;gap:.5rem;margin-top:14px}
#holo-overlay .holo-lbtn{font-family:var(--mono,monospace);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;background:var(--lcars-blue,#7a90c8);color:#000;border:1px solid var(--lcars-blue,#7a90c8);padding:.5rem .8rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
#holo-overlay .holo-lbtn.ghost{background:transparent;color:var(--lcars-blue,#7a90c8)}
@media(max-width:600px){#holo-overlay .holo-modal{padding:16px 16px 22px;border-radius:0 16px 0 16px}#holo-overlay .holo-grid{grid-template-columns:1fr 1fr;gap:10px}}
