/* LA FAIM — generator: regia momentelor (v2+, 02.10.2026)
   Legat DOAR din generator.html. Folosește tokenii din lafaim.css (nu redefinește nimic global).
   1. Butoanele M/F + ZVELT/SOLID în fontul dosarului (cădeau pe fontul de sistem).
   2. Pasul 4 = interogatoriul: proba sub lampă (CAM 239) + procesul-verbal.
   3. Pasul 5 = privirea înainte de sigiliu.
   4. Pasul 6 = afișul de story văzut pe pagină, înainte de share.
   Mișcarea dispare la prefers-reduced-motion (regula globală din lafaim.css + cea de jos). */

/* ---------- 1. toggles ---------- */
.pg-generator .toggle-btn {
  font-family: var(--font-mono); font-weight: 700; font-size: 13px;
  letter-spacing: var(--tracking-wide); min-height: 44px;
  transition: background var(--dur-2) var(--ease-glide), color var(--dur-2) var(--ease-glide);
}
.pg-generator .toggle-btn:not(.active):hover { color: var(--color-text); border-color: var(--color-border-mid); }

/* ---------- 1b. pasul 1: „ce primesc?" — un dosar-exemplu lipit lângă text ---------- */
.pg-generator .gen-teaser {
  float: right; width: 104px; margin: 2px 0 10px 14px; position: relative;
  transform: rotate(3deg); background: var(--color-surface-deep);
  border: 1px solid var(--color-border-mid); padding: 4px 4px 0;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .55);
}
.pg-generator .gen-teaser img { display: block; width: 100%; height: auto; aspect-ratio: 900 / 1043; object-fit: cover; }
/* A7 (02.10): marcajul IA al exemplului la 12 px (era 8 px). Pe 96 px de polaroid trece pe
   două-trei rânduri strânse — se citește, iar pe telefon rămâne lângă text. */
.pg-generator .gen-teaser figcaption {
  font-family: var(--font-mono); font-size: 12px; line-height: 1.15; letter-spacing: -.02em;
  color: var(--color-text-sub); text-align: center; padding: 4px 0 5px;
}
/* A9 / F20 (02.10): pe telefon, „PORNEȘTE CAMERA" trebuie să încapă deasupra fold-ului
   (390×844). Doar spațiere: bara de sus și cardurile pașilor respiră puțin mai strâns. */
@media (max-width: 640px) {
  .pg-generator .hero-header .nav-bar { margin-bottom: 16px; }
  .pg-generator main > section[data-step] > .card { padding-top: 24px; }
}
.pg-generator .gen-teaser::after {
  content: ""; position: absolute; top: -8px; left: 50%; width: 44px; height: 14px; margin-left: -22px;
  background: rgba(233, 238, 242, .18); transform: rotate(-5deg);
}
.pg-generator [data-step="1"] .form-field { clear: both; }
@media (min-width: 640px) { .pg-generator .gen-teaser { width: 128px; margin-left: 20px; } }

/* ---------- 2. interogatoriul ---------- */
.pg-generator .lab-room {
  display: grid; gap: var(--space-4); margin: var(--space-2) 0 var(--space-4);
}
@media (min-width: 640px) {
  .pg-generator .lab-room { grid-template-columns: minmax(0, 46%) minmax(0, 1fr); align-items: stretch; }
}
.pg-generator .lab-evidence {
  position: relative; margin: 0; overflow: hidden;
  aspect-ratio: 1 / 1; width: 100%; max-width: 300px; margin-inline: auto;
  background: #000; border: 1px solid var(--color-border-mid);
  box-shadow: 0 0 0 4px rgba(6, 9, 13, .9), 0 14px 34px rgba(0, 0, 0, .55);
}
@media (min-width: 640px) { .pg-generator .lab-evidence { max-width: none; aspect-ratio: 4 / 5; } }
.pg-generator .lab-evidence img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 36%; display: block;
  filter: grayscale(1) contrast(1.32) brightness(.8);
  transform: scale(1.04);
  animation: labBreath 6s var(--ease-inout) infinite alternate;
}
.pg-generator .lab-evidence img:not([src]) { visibility: hidden; }
/* rânduri CRT + vinietă de lampă */
.pg-generator .lab-evidence::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: repeating-linear-gradient(180deg, rgba(0,0,0,.28) 0 1px, transparent 1px 3px);
  box-shadow: inset 0 0 70px 18px rgba(0, 0, 0, .78);
}
.pg-generator .lab-evidence.is-done img { filter: grayscale(.35) contrast(1.15) brightness(.95); transition: filter var(--dur-4) var(--ease-glide); }

/* parantezele de identificare: pornesc de pe margini și se strâng pe față */
.pg-generator .lab-lock {
  position: absolute; z-index: 2; inset: 7%; pointer-events: none;
  transition: inset var(--dur-5) var(--ease-settle);
}
.pg-generator .lab-evidence.is-locked .lab-lock { inset: 15% 25% 27% 25%; }
.pg-generator .lab-lock i {
  position: absolute; width: 18px; height: 18px; border: 2px solid var(--color-cyan);
  filter: drop-shadow(0 0 4px rgba(69, 182, 214, .7));
  transition: border-color var(--dur-3) var(--ease-glide);
}
.pg-generator .lab-lock i:nth-child(1) { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.pg-generator .lab-lock i:nth-child(2) { top: 0; right: 0; border-left: 0; border-bottom: 0; }
.pg-generator .lab-lock i:nth-child(3) { bottom: 0; left: 0; border-right: 0; border-top: 0; }
.pg-generator .lab-lock i:nth-child(4) { bottom: 0; right: 0; border-left: 0; border-top: 0; }
.pg-generator .lab-evidence.is-done .lab-lock i { border-color: var(--color-orange); filter: drop-shadow(0 0 5px rgba(255, 77, 0, .7)); }

/* A9 / F19 (02.10): dunga coboară pe `transform` (nu pe `top`), deci nu mai e deplasare de
   layout. Stratul are înălțimea probei, dunga e sus în el; `.lab-evidence` taie ce iese. */
.pg-generator .lab-sweep {
  position: absolute; left: 0; right: 0; top: -8px; height: 100%; z-index: 2; pointer-events: none;
  background:
    linear-gradient(90deg, transparent, var(--color-cyan), transparent) 0 7px / 100% 2px no-repeat,
    linear-gradient(180deg, transparent, rgba(69, 182, 214, .3) 7px, rgba(69, 182, 214, .3) 9px, transparent) 0 0 / 100% 16px no-repeat;
  will-change: transform;
  animation: labSweep 2.6s var(--ease-line) infinite;
}
.pg-generator .lab-evidence.is-done .lab-sweep { display: none; }

.pg-generator .lab-tag {
  position: absolute; z-index: 3; display: flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .16em; line-height: 1;
  color: var(--color-text); background: rgba(6, 9, 13, .82); padding: 4px 6px;
}
.pg-generator .lab-tag:empty { display: none; }
.pg-generator .lab-tag-tl { top: 8px; left: 8px; }
.pg-generator .lab-tag-tr { top: 8px; right: 8px; }
.pg-generator .lab-tag-bl { bottom: 8px; left: 8px; color: var(--color-text-sub); }
.pg-generator .lab-tag-br { bottom: 8px; right: 8px; color: var(--color-cyan); }
.pg-generator .lab-evidence.is-done .lab-tag-br { color: var(--color-orange); }
.pg-generator .lab-rec {
  width: 7px; height: 7px; border-radius: 50%; background: var(--color-orange);
  box-shadow: var(--glow-orange); animation: cam-rec-blink 1.4s steps(1, end) infinite;
}

/* procesul-verbal */
.pg-generator .lab-pv { display: flex; flex-direction: column; min-width: 0; }
.pg-generator .lab-pv-h {
  margin: 0 0 var(--space-2); font-size: 10px; letter-spacing: var(--tracking-max);
  color: var(--color-orange); text-transform: uppercase;
  padding-bottom: var(--space-2); border-bottom: 1px dashed var(--color-border-mid);
}
.pg-generator .lab-pv-list {
  list-style: none; margin: 0; padding: 0;
  /* înălțime FIXĂ (3 schimburi) → zero salt de layout când apar replici noi */
  height: 10.6em; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end;
  font-family: var(--font-mono); font-size: 12px; line-height: 1.45;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 2.4em);
          mask-image: linear-gradient(180deg, transparent 0, #000 2.4em);
}
@media (min-width: 640px) { .pg-generator .lab-pv-list { height: auto; flex: 1 1 auto; min-height: 12em; } }
.pg-generator .lab-pv-list li { margin: 0 0 6px; animation: pvType .62s steps(22, end) both; }
.pg-generator .lab-pv-list li b { font-weight: 700; color: var(--color-text-muted); letter-spacing: .06em; }
.pg-generator .lab-pv-list li.q { color: var(--color-cyan); }
.pg-generator .lab-pv-list li.a { color: var(--color-text); }

/* cardul pasului 4 NU mai taie eticheta de deasupra (overflow-ul era pus din JS) */
.pg-generator [data-step="4"] .card { overflow: visible; }

@keyframes labSweep { 0% { transform: translateY(0); } 100% { transform: translateY(100%); } }

/* A9 / F19: în trecerea dintre pași, secțiunea care pleacă iese din flux (absolut, pe locul
   ei — vezi goStep), deci are nevoie de un părinte poziționat. */
.pg-generator main { position: relative; }
@keyframes labBreath { from { transform: scale(1.04); } to { transform: scale(1.09); } }
@keyframes pvType { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }

/* ---------- 3. privirea dinaintea sigiliului ---------- */
.pg-generator .mugshot-frame.is-peek { box-shadow: 0 0 0 1px var(--color-orange), var(--glow-orange-soft); }
.pg-generator .mugshot-frame.is-peek .lf-stamp { visibility: hidden; }
/* până la blițul de developare (300 ms) cadrul rămâne negru — fără un cadru clar „furat" */
.pg-generator .mugshot-frame.is-peek:not(.revealed) #result-img { opacity: 0; }

/* ---------- 4. afișul de story pe pagină ---------- */
.pg-generator .story-preview {
  position: relative; margin: var(--space-2) auto var(--space-5);
  width: min(60%, 250px); aspect-ratio: 9 / 16;
  background: var(--color-surface-deep); border: 1px solid var(--color-border-mid);
  transform: rotate(-2.2deg);
  box-shadow: 0 22px 44px rgba(0, 0, 0, .62), 0 0 0 5px rgba(233, 238, 242, .04);
}
.pg-generator .story-preview img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity var(--dur-4) var(--ease-glide);
}
.pg-generator .story-preview.is-ready img { opacity: 1; }
/* bandă adezivă: afișul e „lipit" pe dosar */
.pg-generator .story-preview::after {
  content: ""; position: absolute; z-index: 2; top: -11px; left: 50%; width: 78px; height: 22px;
  margin-left: -39px; transform: rotate(4deg);
  background: rgba(233, 238, 242, .18); border-left: 1px dashed rgba(233, 238, 242, .25); border-right: 1px dashed rgba(233, 238, 242, .25);
}
/* cât se tipărește fișa */
.pg-generator .story-preview::before {
  content: "IMPRESSION..."; position: absolute; inset: 0; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: var(--tracking-max); color: var(--color-text-muted);
  background: repeating-linear-gradient(180deg, rgba(69,182,214,.05) 0 2px, transparent 2px 6px);
  animation: pulse 1.2s infinite;
}
.pg-generator .story-preview.is-ready::before { display: none; }
.pg-generator .story-preview.is-failed { display: none; }
@media (min-width: 640px) { .pg-generator .story-preview { width: 230px; } }

@media (prefers-reduced-motion: reduce) {
  .pg-generator .lab-evidence img, .pg-generator .lab-sweep, .pg-generator .lab-rec,
  .pg-generator .lab-pv-list li, .pg-generator .story-preview::before { animation: none !important; }
  .pg-generator .lab-sweep { display: none; }
  .pg-generator .lab-lock { transition: none !important; }
}

/* Poarta HD: varianta fără cont pe platforme (15.10.2026) — link discret sub butoane, nu încă un buton mare. */
.pg-generator .gate-nocont { display: inline-block; width: auto; margin-top: 14px; padding: 10px 0; border: 0; background: none;
  color: var(--color-text-muted); font: inherit; font-size: 12px; letter-spacing: 0.08em; text-decoration: underline;
  text-underline-offset: 4px; cursor: pointer; }
.pg-generator .gate-nocont:hover, .pg-generator .gate-nocont:focus-visible { color: var(--color-orange); }
