/* ==========================================================================
   FUTURONIKA // teaser — sygnał 001
   Terminal-retro-industrial. Czerń, kwaśna żółć z okładki, czerwień drutu.
   Matrix-ish, ale nie dosłowny: więcej redakcji, mniej CRT muzealnego.
   ========================================================================== */

:root{
  --bg:        #050506;
  --bg-2:      #0b0b0c;
  --ink:       #e9e9e4;
  --ink-dim:   #8d8d85;
  --ink-mute:  #54544e;
  --line:      rgba(233,233,228,.10);
  --line-2:    rgba(233,233,228,.22);

  --yellow:    #f6c51a;   /* żółć z okładki (nagłówki) */
  --yellow-d:  #c89e0a;
  --red:       #ff2a1c;   /* czerwień drutu z portretu */
  --green:     #6dff7d;   /* subtelny terminal-green, używany punktowo */

  --f-mono:    "JetBrains Mono", "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
  --f-disp:    "Space Grotesk", "Inter", system-ui, sans-serif;

  --col: clamp(16px, 4vw, 56px);
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{ background:var(--bg); }
body{
  font-family:var(--f-mono);
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  min-height:100vh;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
::selection{ background:var(--yellow); color:#0a0a0a; }

/* ── overlay fx ─────────────────────────────────────────── */
.scanlines{
  position:fixed; inset:0;
  pointer-events:none; z-index:80;
  background:repeating-linear-gradient(to bottom,
    transparent 0, transparent 2px,
    rgba(0,0,0,.22) 2px, rgba(0,0,0,.22) 3px);
  mix-blend-mode:multiply;
}
.vignette{
  position:fixed; inset:0; z-index:81;
  pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%);
}
.grain{
  position:fixed; inset:-50%;
  pointer-events:none; z-index:82;
  opacity:.09; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/></svg>");
  animation:grain 6s steps(6) infinite;
}
@keyframes grain{
  0%,100%{ transform:translate(0,0); }
  20%{ transform:translate(-3%,2%); }
  40%{ transform:translate(2%,-3%); }
  60%{ transform:translate(-2%,3%); }
  80%{ transform:translate(3%,-1%); }
}
.rain{
  position:fixed; inset:0; z-index:0;
  pointer-events:none; opacity:.22;
}
.rain canvas{ width:100%; height:100%; display:block; }

/* ── tape bar (top) ─────────────────────────────────────── */
.tape{
  position:sticky; top:0; z-index:40;
  background:var(--yellow);
  color:#0a0a0a;
  border-bottom:1px solid rgba(0,0,0,.35);
  overflow:hidden;
}
.tape__row{
  display:flex; gap:18px; align-items:center;
  font-family:var(--f-mono);
  font-weight:700;
  font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  white-space:nowrap;
  padding:8px 14px;
  animation:ticker 38s linear infinite;
}
.tape .dot{
  width:9px; height:9px; border-radius:50%;
  background:#0a0a0a;
  box-shadow:0 0 0 3px rgba(0,0,0,.12);
  animation:blink 1.2s infinite;
}
.tape .sep{ opacity:.55; }
.tape i{ font-style:italic; font-weight:500; }
@keyframes ticker{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-30%); }
}
@keyframes blink{ 50%{ opacity:.25; } }

/* ── HERO ───────────────────────────────────────────────── */
.hero{
  position:relative;
  min-height: calc(100vh - 34px);
  padding: 36px var(--col) 48px;
  display:flex; flex-direction:column; justify-content:space-between;
  overflow:hidden;
  isolation:isolate;
}
.hero__bg{
  position:absolute; inset:0; z-index:-2;
}
.hero__bg img{
  width:100%; height:100%;
  object-fit:cover;
  object-position: center 28%;
  filter: grayscale(.2) contrast(1.05) brightness(.5) saturate(.85);
  transform:scale(1.06);
  animation:drift 28s ease-in-out infinite alternate;
}
@keyframes drift{
  to{ transform:scale(1.12) translate(-1%, -1.2%); }
}
.hero__mask{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(5,5,6,.55) 0%, rgba(5,5,6,.25) 35%, rgba(5,5,6,.92) 100%),
    radial-gradient(ellipse at 70% 40%, transparent 0%, rgba(5,5,6,.35) 60%, rgba(5,5,6,.95) 100%);
  mix-blend-mode:normal;
}
/* delikatne przesunięcie kanałów RGB na tle */
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:inherit;
  mix-blend-mode:screen;
  opacity:.25;
}

.hero__meta{
  display:flex; justify-content:space-between; align-items:center;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-dim);
  border-bottom:1px dashed var(--line);
  padding-bottom:14px;
  gap:12px; flex-wrap:wrap;
}
.hero__meta i.pulse{
  display:inline-block;
  width:8px; height:8px; border-radius:50%;
  background:var(--red);
  margin-right:8px;
  box-shadow:0 0 0 4px rgba(255,42,28,.2);
  animation:puls 1.5s ease-in-out infinite;
  vertical-align:middle;
}
@keyframes puls{ 50%{ box-shadow:0 0 0 10px rgba(255,42,28,0); } }

/* ── wordmark (logo PNG) — wycentrowane ─────────────────── */
.wordmark{
  margin:.6em auto .25em;
  line-height:0;
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  position:relative;
  animation: jitter 9s steps(2) infinite;
}
.wordmark img{
  display:block;
  margin:0 auto;
  width: min(88vw, 1180px);
  max-width: 100%;
  height:auto;
  filter:
    drop-shadow(0 0 60px rgba(246,197,26,.10))
    drop-shadow(0 8px 40px rgba(0,0,0,.5))
    drop-shadow(1px 0 0 rgba(255,42,28,.45))
    drop-shadow(-1px 0 0 rgba(109,255,125,.30));
}
.hero__caption{ text-align:center; margin-left:auto; margin-right:auto; }
@keyframes jitter{
  0%, 92%, 100%{ transform:translate(0,0); }
  93%{ transform:translate(-2px, 1px); }
  94%{ transform:translate(2px, -1px); }
  95%{ transform:translate(-1px, 0); filter:hue-rotate(8deg); }
  96%{ transform:translate(1px, 2px); }
}

.hero__caption{
  font-size:clamp(14px, 1.4vw, 17px);
  color:var(--ink);
  letter-spacing:.02em;
  margin:0;
  max-width:70ch;
  min-height:1.6em;
}
.hero__caption .k{ color:var(--yellow); margin-right:8px; }
.hero__caption .caret{
  color:var(--yellow);
  animation:caret 1s step-end infinite;
  margin-left:2px;
}
@keyframes caret{ 50%{ opacity:0; } }

.hero__foot{
  display:grid;
  grid-template-columns:auto auto auto 1fr;
  gap:28px; align-items:end;
  margin-top:24px;
  padding-top:18px;
  border-top:1px dashed var(--line);
}
.stat b{
  display:block;
  font-family:var(--f-disp);
  font-weight:700;
  font-size:clamp(22px, 2.5vw, 34px);
  letter-spacing:-.01em;
  color:var(--ink);
}
.stat b.progress-err{
  color:var(--red);
  text-shadow:
    2px 0 0 rgba(0,255,200,.5),
   -2px 0 0 rgba(255,0,190,.5),
    0 0 18px rgba(255,42,28,.45);
  animation: progressErr .18s steps(3) infinite;
}
@keyframes progressErr{
  0%   { transform:translateX(0); }
  50%  { transform:translateX(-2px); }
  100% { transform:translateX(2px); }
}
.stat span{
  font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-mute);
}
.cta{
  justify-self:end; align-self:end;
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 22px;
  border:1px solid var(--ink);
  background:var(--ink);
  color:#0a0a0a;
  font-family:var(--f-mono); font-weight:700;
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  transition: transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}
.cta i{ font-style:normal; transition:transform .3s ease; }
.cta:hover{
  background:var(--yellow); color:#0a0a0a; border-color:var(--yellow);
  transform:translateY(-1px);
}
.cta:hover i{ transform:translateY(3px); }

@media (max-width:720px){
  .hero__foot{ grid-template-columns:1fr 1fr; }
  .cta{ grid-column:1 / -1; justify-self:stretch; justify-content:center; }
}

/* ── TERMINAL SECTION ───────────────────────────────────── */
.terminal{
  position:relative;
  padding: 80px var(--col) 80px;
  background:var(--bg-2);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns: 1.25fr 1fr;
  gap:36px;
  align-items:start;
}
@media (max-width:1024px){ .terminal{ grid-template-columns:1fr; } }

.term{
  background:#000;
  border:1px solid var(--line-2);
  border-radius:8px;
  overflow:hidden;
  font-family:var(--f-mono);
  box-shadow:
    0 0 0 1px rgba(109,255,125,.05) inset,
    0 40px 80px -40px rgba(109,255,125,.15);
  position:relative;
}
.term::after{
  /* subtle scanlines inside the terminal */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(to bottom,
    transparent 0, transparent 2px,
    rgba(109,255,125,.04) 2px, rgba(109,255,125,.04) 3px);
}
.term__bar{
  display:flex; align-items:center; gap:12px;
  padding:10px 14px;
  background:#0e0e0f;
  border-bottom:1px solid var(--line);
  font-size:11.5px;
  letter-spacing:.06em;
  color:var(--ink-dim);
}
.term__dots{ display:inline-flex; gap:6px; }
.term__dots i{
  width:10px; height:10px; border-radius:50%;
  background:#2a2a2d;
}
.term__dots i:nth-child(1){ background:#ff5f57; }
.term__dots i:nth-child(2){ background:#febc2e; }
.term__dots i:nth-child(3){ background:#28c840; }
.term__title{ flex:1; text-align:center; }
.term__status{ color:var(--green); font-weight:700; letter-spacing:.12em; }

.term__body{
  padding:22px 18px 14px;
  height: 420px;
  max-height: 60vh;
  overflow-y:auto;
  font-size:13.5px;
  line-height:1.7;
  color:var(--green);
  scrollbar-width: thin;
  scrollbar-color: rgba(109,255,125,.35) transparent;
}
.term__body::-webkit-scrollbar{ width:6px; }
.term__body::-webkit-scrollbar-thumb{ background:rgba(109,255,125,.35); }
.term__body .line{ display:block; min-height:1.7em; white-space:pre-wrap; }
.term__body .prompt-line{ color:var(--ink-dim); }
.term__body .p{ color:var(--yellow); font-weight:700; }
.term__body .pp{ color:var(--green); }
.term__body .cmd{ color:var(--ink); }
.term__body .ok{ color:var(--green); }
.term__body .warn{ color:var(--yellow); }
.term__body .err{ color:var(--red); }
.term__body .dim{ color:#3a6b42; }
.term__body .kw{ color:var(--yellow); }
.term__body .blk{ background:var(--yellow); color:#0a0a0a; padding:0 6px; font-weight:700; }
.term__body .ascii-art{ color:var(--yellow); line-height:1.15; font-size:12px; letter-spacing:0; }
.term__body .term-logo{
  display:inline-block;
  max-width: 240px;
  height:auto;
  margin: 6px 0;
  opacity:.92;
  filter: drop-shadow(0 0 18px rgba(246,197,26,.15));
  transition: opacity .25s ease, transform .25s ease;
}
.term__body .term-logo:hover{ opacity:1; transform:translateY(-1px); }
.term__body a{
  color:var(--yellow);
  text-decoration:none;
  border-bottom:1px dashed rgba(246,197,26,.4);
  transition:border-color .2s ease, color .2s ease;
}
.term__body a:hover{
  color:#fff28a;
  border-bottom-color:var(--yellow);
}

.term__input{
  display:flex; align-items:center; gap:10px;
  padding:10px 18px 18px;
  font-family:var(--f-mono);
  font-size:13.5px;
  border-top:1px solid rgba(109,255,125,.12);
  background:linear-gradient(180deg, transparent, rgba(109,255,125,.04));
}
.term__prompt{
  flex-shrink:0;
  color:var(--ink-dim);
  user-select:none;
}
.term__prompt .p{ color:var(--yellow); font-weight:700; }
.term__prompt .pp{ color:var(--green); }
#term-input{
  flex:1;
  background:transparent;
  border:none; outline:none;
  color:var(--ink);
  font-family:var(--f-mono);
  font-size:13.5px;
  caret-color:var(--yellow);
  padding:4px 0;
}
#term-input::placeholder{ color:var(--ink-mute); }
.term__body .line{ display:block; min-height:1.7em; white-space:pre-wrap; }
.term__body .prompt-line{ color:var(--ink-dim); }
.term__body .p{ color:var(--yellow); font-weight:700; }
.term__body .pp{ color:var(--green); }
.term__body .cmd{ color:var(--ink); }
.term__body .ok{ color:var(--green); }
.term__body .warn{ color:var(--yellow); }
.term__body .err{ color:var(--red); }
.term__body .dim{ color:#3a6b42; }
.term__body .kw{ color:var(--yellow); }
.term__body .blk{ background:var(--yellow); color:#0a0a0a; padding:0 6px; font-weight:700; }

/* ── CALLOUT z obszarami ────────────────────────────────── */
.callout__key{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-mute);
  margin-bottom:18px;
}
.tiles{
  list-style:none; padding:0; margin:0;
  display:grid; gap:10px;
}
.tiles li{
  position:relative;
  display:grid;
  grid-template-columns:44px 1fr;
  grid-template-rows:auto auto;
  column-gap:14px;
  padding:18px 18px 18px 16px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.02), transparent);
  transition: border-color .3s ease, transform .3s ease, background .3s ease;
  cursor:default;
}
.tiles li::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--yellow);
  transform:scaleY(.15); transform-origin:0 0;
  transition:transform .4s ease;
}
.tiles li:hover{ border-color:var(--line-2); transform:translateX(3px); background:linear-gradient(180deg, rgba(246,197,26,.05), transparent); }
.tiles li:hover::before{ transform:scaleY(1); }
.tiles .no{
  grid-row:1 / 3;
  font-family:var(--f-disp); font-weight:700;
  font-size:28px; letter-spacing:-.02em;
  color:var(--yellow);
  align-self:start;
}
.tiles b{
  font-family:var(--f-disp);
  font-weight:600;
  font-size:16px;
  letter-spacing:.02em;
  color:var(--ink);
}
.tiles i{
  font-style:italic;
  color:var(--ink-dim);
  font-size:13px;
  letter-spacing:.01em;
}

/* ── ASCII block ────────────────────────────────────────── */
.ascii{
  padding: 70px var(--col);
  display:flex; justify-content:center;
}
.ascii pre{
  font-family:var(--f-mono);
  font-size:clamp(10px, 1.1vw, 14px);
  line-height:1.6;
  color:var(--ink);
  margin:0;
  white-space:pre;
  overflow-x:auto;
  border:1px dashed var(--line-2);
  padding:22px 24px;
  background:var(--bg-2);
  max-width:100%;
}

/* ── ANTENA · newsletter ────────────────────────────────── */
.antenna{
  padding: 60px var(--col) 90px;
  max-width: 920px;
  margin: 0 auto;
  position:relative;
}
.antenna::before{
  content:'';
  position:absolute; left:var(--col); right:var(--col); top:0;
  height:1px; background:var(--line-2);
}
.antenna__key{
  font-family:var(--f-mono);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--yellow);
  margin-bottom:14px;
}
.antenna__head{
  font-family:var(--f-disp);
  font-weight:700;
  font-size:clamp(30px, 5.2vw, 64px);
  line-height:1;
  letter-spacing:-.02em;
  margin:0 0 14px;
  color:var(--ink);
}
.antenna__head em{
  font-style:italic;
  color:var(--yellow);
  font-weight:600;
}
.antenna__sub{
  font-family:var(--f-mono);
  color:var(--ink-dim);
  max-width:52ch;
  margin:0 0 28px;
  display:flex; flex-direction:column; gap:4px;
  font-size:14px;
  letter-spacing:.02em;
}
.antenna__sub span:first-child{ color:var(--ink); }
.antenna__sub span:last-child{ color:var(--yellow); }
.antenna__form{
  display:flex; flex-direction:column; gap:14px;
}
.antenna__row{
  display:flex; gap:10px; flex-wrap:wrap;
  border:1px dashed var(--line-2);
  padding:8px;
  background:var(--bg-2);
}
.antenna__row input[type="email"]{
  flex:1 1 260px;
  min-width:0;
  background:transparent;
  border:none; outline:none;
  font-family:var(--f-mono);
  font-size:15px;
  color:var(--ink);
  padding:12px 14px;
}
.antenna__row input[type="email"]::placeholder{ color:var(--ink-mute); }
.antenna__row input[type="email"]:focus{
  outline:1px solid var(--yellow);
  background:rgba(246,197,26,.04);
}
.antenna__hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important; height:1px !important;
  opacity:0 !important;
  pointer-events:none;
}
.antenna__btn{
  font-family:var(--f-mono);
  font-weight:700;
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#0a0a0a;
  background:var(--yellow);
  border:none;
  padding:12px 20px;
  cursor:pointer;
  display:inline-flex; align-items:center; gap:8px;
  transition: background .15s ease, transform .15s ease;
}
.antenna__btn:hover{ background:#ffda3d; transform:translateY(-1px); }
.antenna__btn:disabled{ opacity:.5; cursor:wait; }
.antenna__btn i{ font-style:normal; }
.antenna__consent{
  display:flex; gap:10px;
  font-family:var(--f-mono);
  font-size:12px;
  color:var(--ink-dim);
  line-height:1.5;
  cursor:pointer;
}
.antenna__consent input{
  appearance:none;
  width:16px; height:16px;
  border:1px solid var(--line-2);
  background:var(--bg-2);
  display:inline-block;
  flex-shrink:0;
  margin-top:2px;
  cursor:pointer;
  position:relative;
}
.antenna__consent input:checked{
  background:var(--yellow);
  border-color:var(--yellow);
}
.antenna__consent input:checked::after{
  content:'×';
  position:absolute; inset:0;
  display:grid; place-items:center;
  color:#0a0a0a;
  font-weight:700; font-size:16px; line-height:1;
}
.antenna__consent a{
  color:var(--yellow);
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:2px;
}
.antenna__status{
  font-family:var(--f-mono);
  font-size:12px;
  color:var(--ink-mute);
  min-height:18px;
  letter-spacing:.04em;
}
.antenna__status.is-ok   { color:var(--green); }
.antenna__status.is-err  { color:var(--red); }
.antenna__status.is-dim  { color:var(--ink-dim); }

/* ── FOOTER ─────────────────────────────────────────────── */
.foot{
  padding:24px var(--col);
  display:flex; justify-content:space-between; gap:12px;
  flex-wrap:wrap;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-mute);
  border-top:1px solid var(--line);
}
.foot b{ color:var(--yellow); font-weight:700; letter-spacing:.08em; }
.foot__right{ display:flex; gap:12px; align-items:center; }
.foot__right a{ color:var(--ink); }
.foot__right a:hover{ color:var(--yellow); }
.foot .sep{ opacity:.5; }
.foot i{ font-style:italic; color:var(--ink-dim); }
.foot__tag{
  width:100%;
  text-align:center;
  margin-top:8px;
  padding-top:12px;
  border-top:1px dashed var(--line);
  color:var(--yellow);
  font-size:10.5px; letter-spacing:.24em;
  opacity:.7;
  animation: blink 2.4s ease-in-out infinite;
}
.foot__apogee{
  display:inline-block;
  margin-top:10px;
  opacity:.32;
  transition: opacity .3s ease, transform .3s ease;
}
.foot__apogee img{
  max-width: 110px;
  height: auto;
  display:block;
}
.foot__apogee:hover{ opacity:.9; transform:translateY(-1px); }

/* ── A.M.E.L.I.A glitch line in ls ─────────────────────── */
.term__body .glitch-line{
  animation: lineJitter 5s steps(16) infinite;
}
@keyframes lineJitter{
  0%, 90% { transform:translateX(0); }
  91%     { transform:translateX(-4px); }
  93%     { transform:translateX(3px); }
  95%     { transform:translateX(-2px); }
  97%     { transform:translateX(1px); }
  100%    { transform:translateX(0); }
}
.amelia-glitch{
  color:var(--green);
  letter-spacing:.02em;
  text-shadow:
    1px 0 0 rgba(0,255,200,.45),
   -1px 0 0 rgba(255,0,190,.40),
    0 0 8px rgba(109,255,125,.25);
  animation: ameliaFlicker 3.6s steps(14) infinite;
}
@keyframes ameliaFlicker{
  0%, 88% { opacity:1;  text-shadow: 1px 0 0 rgba(0,255,200,.45), -1px 0 0 rgba(255,0,190,.40), 0 0 8px rgba(109,255,125,.25); }
  89%     { opacity:.55; text-shadow: 4px 0 0 #0ff, -4px 0 0 #f0f; }
  91%     { opacity:1;   text-shadow: 1px 0 0 #0ff, -1px 0 0 #f0f; }
  93%     { opacity:.75; }
  100%    { opacity:1; }
}

/* ── A.M.E.L.I.A cut-off sequence ──────────────────────── */
body.signal-glitch{
  animation: sigGlitch .62s steps(7) forwards;
}
@keyframes sigGlitch{
  0%   { filter:none; transform:none; }
  15%  { filter:hue-rotate(160deg) contrast(1.5) saturate(1.6); transform:translate(5px,-1px); }
  30%  { filter:hue-rotate(-70deg) saturate(2);                  transform:translate(-4px,2px); }
  45%  { filter:invert(.15) contrast(2);                         transform:translate(3px,-3px); }
  60%  { filter:hue-rotate(90deg) brightness(1.4);               transform:translate(-6px,1px); }
  80%  { filter:contrast(1.3) brightness(.7);                    transform:translate(2px,2px); }
  100% { filter:none; transform:none; }
}

body.signal-lost{
  overflow:hidden;
  background:#000 !important;
}
body.signal-lost > *:not(.signal-fatal){
  visibility:hidden !important;
  pointer-events:none;
}

.signal-fatal{
  position:fixed; inset:0; z-index:99999;
  background:#000;
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  padding: clamp(20px, 6vw, 80px);
  padding-top: 14vh;
  padding-bottom: 18vh;
  overflow:hidden;
}
.signal-fatal__scan{
  position:absolute; inset:0;
  background: repeating-linear-gradient(to bottom,
    rgba(109,255,125,0) 0, rgba(109,255,125,0) 2px,
    rgba(109,255,125,.06) 3px, rgba(109,255,125,0) 4px);
  pointer-events:none;
  mix-blend-mode:screen;
  animation: fatalScan 5.5s linear infinite;
}
@keyframes fatalScan{
  0%   { background-position:0 -200%; }
  100% { background-position:0  200%; }
}
.signal-fatal__grain{
  position:absolute; inset:-12%;
  background-image: radial-gradient(rgba(109,255,125,.18) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity:.22;
  pointer-events:none;
  animation: fatalGrain .09s steps(3) infinite;
}
@keyframes fatalGrain{
  0%   { transform:translate(0,0); }
  33%  { transform:translate(-3px,2px); }
  66%  { transform:translate(2px,-2px); }
  100% { transform:translate(0,0); }
}
.signal-fatal__text{
  position:relative; z-index:2;
  margin:0;
  font-family: var(--f-mono);
  font-weight:500;
  color:#6dff7d;
  font-size: clamp(22px, 3.4vw, 46px);
  line-height:1.5;
  white-space:pre-wrap;
  max-width: 22ch;
  text-shadow:
    0 0 14px rgba(109,255,125,.65),
    2px 0 0 rgba(0,255,200,.32),
   -2px 0 0 rgba(255,0,190,.28);
  animation: fatalFlicker 3.8s steps(14) infinite;
}
.signal-fatal__text .amelia-hi{
  color:#f6c51a;
  text-shadow:
    0 0 16px rgba(246,197,26,.55),
    2px 0 0 rgba(0,255,200,.3),
   -2px 0 0 rgba(255,0,190,.3);
}
.signal-fatal__caret{
  display:inline-block;
  color:#6dff7d;
  animation: fatalBlink .75s steps(2) infinite;
}
@keyframes fatalBlink{
  0%,50%   { opacity:1; }
  51%,100% { opacity:0; }
}
@keyframes fatalFlicker{
  0%, 92% { opacity:1; }
  93%     { opacity:.55; transform:translateX(-2px); }
  94%     { opacity:1;   transform:translateX(3px); }
  96%     { opacity:.3; }
  97%     { opacity:1; }
  100%    { transform:none; }
}
.signal-fatal__link{
  position:relative; z-index:3;
  display:block;
  margin-top: clamp(48px, 9vh, 110px);
  text-align:center;
  font-family: var(--f-mono);
  font-size: clamp(13px, 1.4vw, 18px);
  letter-spacing:.18em;
  text-transform: lowercase;
  color:#7dff9f;
  text-decoration:none;
  padding: 10px 22px;
  border: 1px solid rgba(60,255,140,.45);
  background: rgba(10, 40, 20, .4);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  text-shadow: 0 0 10px rgba(60,255,140,.6);
  transition: color .2s ease, border-color .2s ease, background .2s ease, text-shadow .2s ease, opacity 1s ease, transform 1s ease;
  pointer-events:none;
  opacity:0;
  transform: translateY(10px);
  animation: linkPulseGreen 2.4s ease-in-out infinite;
}
.signal-fatal__link::before{ content:"» "; color:rgba(235,255,220,.75); }
.signal-fatal__link::after { content:" «"; color:rgba(235,255,220,.75); }
.signal-fatal__link:hover{
  color:#eaffe0;
  border-color: rgba(120,255,170,.9);
  background: rgba(18, 70, 40, .55);
  text-shadow: 0 0 16px rgba(120,255,170,.9);
}
.signal-fatal--reveal-link .signal-fatal__link{
  opacity:1;
  transform:none;
  pointer-events:auto;
}
@keyframes linkPulseGreen{
  0%, 100% { box-shadow: 0 0 0 0 rgba(60,255,140,0),   inset 0 0 12px rgba(60,255,140,.12); }
  50%      { box-shadow: 0 0 22px 2px rgba(60,255,140,.4), inset 0 0 16px rgba(60,255,140,.22); }
}
.signal-fatal__hint{
  position:absolute; left:0; right:0; bottom:22px;
  text-align:center; z-index:3;
  font-family: var(--f-mono);
  color: rgba(109,255,125,.4);
  font-size:11px; letter-spacing:.26em; text-transform:uppercase;
  animation: fatalHintBlink 1.4s steps(2) infinite;
}
@keyframes fatalHintBlink{
  0%,60%   { opacity:.45; }
  61%,100% { opacity:.08; }
}

/* ── motion-safe ───────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
  }
  .rain{ display:none; }
}
