/* ==========================================================================
   APOGEE GAMES // katalog 001
   Dark horror · roguelike · eksperyment. Czerń z krwawym podtonem,
   kość/popiel, czerwień z Red Fever. Mniej Matrix, więcej piwnica-studio.
   ========================================================================== */

:root{
  --bg:        #0a0606;
  --bg-2:      #100909;
  --ink:       #e0d6c8;    /* kość / stara kartka */
  --ink-dim:   #8a7d70;
  --ink-mute:  #4b4239;
  --line:      rgba(224,214,200,.10);
  --line-2:    rgba(224,214,200,.22);

  --red:       #c4161d;    /* krew — dominujący akcent */
  --red-hot:   #ff2a1c;    /* hover / alert */
  --red-dark:  #6a0a10;    /* deep blood */
  --amber:     #d99a2b;    /* gorączka · punktowo */
  --green:     #6dff7d;    /* terminal · tylko w dev-console */

  --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:
    radial-gradient(ellipse at 50% -10%, rgba(196,22,29,.12) 0%, transparent 50%),
    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(--red); color:#fff; }

/* ── 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,.28) 2px, rgba(0,0,0,.28) 3px);
  mix-blend-mode:multiply;
}
.vignette{
  position:fixed; inset:0; z-index:81;
  pointer-events:none;
  background:
    radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,.7) 100%),
    radial-gradient(ellipse at 50% 100%, rgba(196,22,29,.12), transparent 60%);
}
.grain{
  position:fixed; inset:-50%;
  pointer-events:none; z-index:82;
  opacity:.10; 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%); }
}
.blood{
  position:fixed; inset:0; z-index:0;
  pointer-events:none; opacity:.28;
}
.blood canvas{ width:100%; height:100%; display:block; }

/* ── tape bar (top) ─────────────────────────────────────── */
.tape{
  position:sticky; top:0; z-index:40;
  background:var(--red);
  color:#1a0606;
  border-bottom:1px solid rgba(0,0,0,.45);
  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 42s linear infinite;
}
.tape .dot{
  width:9px; height:9px; border-radius:50%;
  background:#1a0606;
  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 35%;
  filter: grayscale(.15) contrast(1.1) brightness(.42) saturate(1.05);
  transform:scale(1.06);
  animation:drift 30s 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(10,6,6,.5) 0%, rgba(10,6,6,.2) 35%, rgba(10,6,6,.95) 100%),
    radial-gradient(ellipse at 60% 35%, transparent 0%, rgba(10,6,6,.5) 60%, rgba(10,6,6,.95) 100%);
}

.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-hot);
  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: oryginalne logo Apogee Games (PNG) ───────── */
.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(78vw, 900px);
  max-width: 100%;
  height:auto;
  filter:
    drop-shadow(0 0 60px rgba(196,22,29,.22))
    drop-shadow(0 8px 40px rgba(0,0,0,.55))
    drop-shadow(1px 0 0 rgba(196,22,29,.45))
    drop-shadow(-1px 0 0 rgba(109,255,125,.22));
}
@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(6deg); }
  96%{ transform:translate(1px, 2px); }
}

.hero__motto{
  text-align:center;
  margin: 6px auto 10px;
  font-size: clamp(12px, 1.1vw, 14px);
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--red);
  opacity: .78;
}

.hero__caption{
  text-align:center;
  font-size:clamp(14px, 1.4vw, 17px);
  color:var(--ink);
  letter-spacing:.02em;
  margin:0 auto;
  max-width:72ch;
  min-height:1.6em;
}
.hero__caption .k{ color:var(--red); margin-right:8px; font-weight:700; }
.hero__caption .caret{
  color:var(--red);
  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-hot);
  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:#140505;
  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(--red); color:#fff; border-color:var(--red);
  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; }
}

/* ── CATALOG ────────────────────────────────────────────── */
.catalog{
  padding: 80px var(--col) 60px;
  max-width: 1280px;
  margin: 0 auto;
  position:relative;
}
.catalog__key{
  font-family:var(--f-mono);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--red);
  margin-bottom:14px;
}
.catalog__head{
  font-family:var(--f-disp);
  font-weight:700;
  font-size:clamp(28px, 5.2vw, 62px);
  line-height:1;
  letter-spacing:-.02em;
  margin:0 0 40px;
  color:var(--ink);
}
.catalog__head em{
  font-style:italic;
  color:var(--red);
  font-weight:600;
}

/* ── TEASER WINDOW (video + audio player) ────────────────── */
.teaser-window{
  margin: 28px auto 40px;
  max-width: 720px;
}
.teaser-window__frame{
  border: 1px solid var(--line-2);
  background: #000;
  box-shadow:
    0 0 0 1px rgba(196,22,29,.15) inset,
    0 40px 90px -40px rgba(196,22,29,.35),
    0 20px 60px -30px rgba(0,0,0,.8);
  overflow:hidden;
}
.teaser-window__bar{
  display:flex; align-items:center; gap:12px;
  padding:10px 14px;
  background:#0e0a0a;
  border-bottom:1px solid var(--line);
  font-size:11.5px;
  letter-spacing:.08em;
  color:var(--ink-dim);
  text-transform:uppercase;
}
.tw__dots{ display:inline-flex; gap:6px; }
.tw__dots i{ width:10px; height:10px; border-radius:50%; background:#2a1a1a; }
.tw__dots i:nth-child(1){ background:#ff5f57; }
.tw__dots i:nth-child(2){ background:#febc2e; }
.tw__dots i:nth-child(3){ background:#28c840; }
.tw__title{ flex:1; text-align:center; font-family:var(--f-mono); }
.tw__status{ color:var(--red); font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.tw__status .pulse{
  width:8px; height:8px; border-radius:50%;
  background:var(--red-hot);
  box-shadow:0 0 0 3px rgba(255,42,28,.25);
  animation:puls 1.5s ease-in-out infinite;
}
.teaser-window__screen{
  position:relative;
  aspect-ratio: 1 / 1;
  background:#000;
  overflow:hidden;
}
.teaser-window__video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  background:#000;
}
.teaser-window__scan{
  position:absolute; inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(to bottom,
      transparent 0, transparent 2px,
      rgba(0,0,0,.22) 2px, rgba(0,0,0,.22) 3px),
    radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%);
  mix-blend-mode: multiply;
}
.teaser-window__meta{
  display:flex; justify-content:space-between; align-items:center;
  padding:10px 14px;
  border-top:1px solid var(--line);
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--red);
  background:#0e0a0a;
}
.teaser-window__meta .dim{ color:var(--ink-mute); font-style:italic; text-transform:none; letter-spacing:.02em; }

/* ── CARD (tile Red Fever) ──────────────────────────────── */
.card{
  display:grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 0;
  border:1px solid var(--line-2);
  background:linear-gradient(180deg, rgba(196,22,29,.05), rgba(0,0,0,.3));
  overflow:hidden;
  margin-bottom: 28px;
  transition: border-color .3s ease, transform .3s ease;
}
.card:hover{
  border-color: var(--red);
  transform: translateY(-2px);
}
@media (max-width:860px){ .card{ grid-template-columns: 1fr; } }

.card__cover{
  position:relative;
  aspect-ratio: 3 / 2;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 50% 55%, rgba(196,22,29,.08), transparent 70%),
    #000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 10px;
}
.card__logo{
  max-width: 100%;
  max-height: 100%;
  width:100%; height:100%;
  object-fit: cover;
  filter:
    brightness(1.08) contrast(1.06) saturate(1.05)
    drop-shadow(0 0 24px rgba(196,22,29,.22))
    drop-shadow(0 8px 22px rgba(0,0,0,.6));
  transition: transform .6s ease, filter .6s ease;
}
.card:hover .card__logo{
  transform: scale(1.02);
  filter:
    brightness(1.12) contrast(1.08) saturate(1.1)
    drop-shadow(0 0 36px rgba(255,42,28,.35))
    drop-shadow(0 8px 22px rgba(0,0,0,.6));
}

.card__body{
  padding: 36px 36px 32px;
  display:flex; flex-direction:column;
  gap: 16px;
  background: rgba(10,6,6,.85);
}
.card__tag{
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--red);
}
.card__title{
  font-family:var(--f-disp);
  font-weight:700;
  font-size:clamp(36px, 6vw, 72px);
  letter-spacing:-.02em;
  line-height:1;
  margin:0;
  color:var(--ink);
  text-shadow: 0 0 28px rgba(196,22,29,.35);
}
.card__desc{
  display:flex; flex-direction:column; gap:4px;
  font-size:14px;
  line-height:1.55;
  color:var(--ink);
  max-width:58ch;
  margin:0;
}
.card__desc .dim{ color:var(--ink-dim); font-style:italic; }

.card__coming{
  display:flex; align-items:baseline; gap:16px;
  padding:18px 0 6px;
  border-top: 1px dashed var(--line-2);
  margin-top: 6px;
}
.coming-label{
  font-family:var(--f-mono);
  font-weight:700;
  font-size:14px;
  letter-spacing:.4em;
  color:var(--red);
}
.coming-year{
  font-family:var(--f-disp);
  font-weight:700;
  font-size:clamp(40px, 5vw, 56px);
  letter-spacing:-.02em;
  color:var(--ink);
  line-height:1;
}
.glitch-digit{
  display:inline-block;
  color: var(--red-hot);
  text-shadow:
    2px 0 0 rgba(0,255,200,.45),
   -2px 0 0 rgba(255,0,190,.45),
    0 0 14px rgba(255,42,28,.55);
  animation: digitShake .22s steps(4) infinite;
  min-width: .6em;
  text-align:center;
}
@keyframes digitShake{
  0%   { transform: translate(0,0); }
  25%  { transform: translate(-1px, 1px); }
  50%  { transform: translate(1px, -1px); }
  75%  { transform: translate(-1px, -1px); }
  100% { transform: translate(1px, 1px); }
}
.glitch-inline{
  display:inline-block;
  color: var(--red);
  animation: digitShake .3s steps(3) infinite;
}

.card__meta{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-mute);
}
.card__meta .ok{ color:var(--red); font-weight:700; }
.card__meta .dim{ color:var(--ink-dim); }
.card__meta .sep{ opacity:.45; }

/* ── rest (niezatwierdzone tytuły) ───────────────────────── */
.rest{
  margin-top: 18px;
  padding: 22px 24px;
  border: 1px dashed var(--line);
  background: rgba(0,0,0,.25);
  display:flex; flex-direction:column; gap:12px;
}
.rest__row{
  display:grid;
  grid-template-columns: 60px 1fr auto;
  gap: 16px;
  font-family:var(--f-mono);
  font-size:13px;
  letter-spacing:.06em;
  color:var(--ink-dim);
  align-items:center;
}
.rest__no{ color:var(--red); font-weight:700; }
.rest__slug{
  font-size:13px;
  color:var(--ink-mute);
  letter-spacing:.02em;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:clip;
}
.rest__state{
  font-size:10.5px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--red-dark);
}
.rest__note{
  font-size:11px;
  color:var(--ink-mute);
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-top: 4px;
  text-align:center;
  opacity:.6;
}

/* ── 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(196,22,29,.25);
  position:relative;
}
.term::after{
  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:#0e0a0a;
  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:#2a1a1a;
}
.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: 440px;
  max-height: 64vh;
  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(--red); 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(--amber); }
.term__body .err{ color:var(--red-hot); }
.term__body .dim{ color:#3a6b42; }
.term__body .kw{ color:var(--amber); }
.term__body .blk{ background:var(--red); color:#fff; padding:0 6px; font-weight:700; }
.term__body .ascii-art{ color:var(--amber); line-height:1.15; font-size:12px; letter-spacing:0; }
.term__body a{
  color:var(--amber);
  text-decoration:none;
  border-bottom:1px dashed rgba(217,154,43,.4);
  transition:border-color .2s ease, color .2s ease;
}
.term__body a:hover{
  color:#ffd477;
  border-bottom-color:var(--amber);
}

.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(--red); 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(--red);
  padding:4px 0;
}
#term-input::placeholder{ color:var(--ink-mute); }

/* ── CALLOUT (filozofia studia) ─────────────────────────── */
.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(--red);
  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(196,22,29,.06), 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(--red);
  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%;
}

/* ── 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(--red); 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(--red); }
.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(--red);
  font-size:10.5px; letter-spacing:.24em;
  opacity:.7;
  animation: blink 2.4s ease-in-out infinite;
}
.foot__tag--m4{
  margin-top:4px;
  padding-top:0;
  border-top:none;
  color:var(--ink-mute);
  opacity:.55;
  letter-spacing:.18em;
  animation: blink 3.2s ease-in-out infinite;
}
.foot__social{
  width:100%;
  display:flex; justify-content:center; align-items:center;
  gap:10px;
  margin-top:10px;
  font-size:11px; letter-spacing:.2em;
}
.foot__social a{
  color:var(--ink-mute);
  text-decoration:none;
  padding:4px 2px;
  border-bottom:1px dashed transparent;
  transition:color .15s ease, border-color .15s ease;
}
.foot__social a:hover{ color:var(--red-hot); border-bottom-color:var(--red-hot); }
.foot__social .sep{ opacity:.4; }

/* ── signal mail capture ──────────────────────────────────── */
.signal-form{
  margin:14px auto 0;
  max-width:720px;
  padding:14px 16px;
  border:1px dashed var(--line);
  border-radius:4px;
  background:linear-gradient(180deg, rgba(196,22,29,.035), rgba(0,0,0,0));
  display:flex; flex-direction:column; gap:10px;
}
.signal-form__label{
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  flex-wrap:wrap;
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--red);
}
.signal-form__label .dim{ color:var(--ink-mute); letter-spacing:.1em; text-transform:none; font-style:italic; }
.signal-form__row{
  display:flex; gap:8px; align-items:stretch;
}
.signal-form input[type=email]{
  flex:1 1 auto; min-width:0;
  background:rgba(0,0,0,.35);
  border:1px solid var(--line);
  color:var(--ink);
  padding:10px 12px;
  font-family:inherit; font-size:14px;
  letter-spacing:.04em;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.signal-form input[type=email]:focus{
  border-color:var(--red);
  box-shadow:0 0 0 1px rgba(196,22,29,.35), 0 0 14px rgba(196,22,29,.12);
}
.btn-ghost{
  background:transparent;
  color:var(--red-hot);
  border:1px solid var(--red-dark);
  padding:10px 14px;
  font-family:inherit; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
  white-space:nowrap;
}
.btn-ghost:hover{ background:var(--red); color:#fff; border-color:var(--red); }
.signal-form__note{
  font-size:10.5px; letter-spacing:.08em;
  font-style:italic;
  color:var(--ink-mute);
}
.signal-form.sent .signal-form__row{ display:none; }
.signal-form.sent .signal-form__label{ color:var(--green); }
@media (max-width:520px){
  .signal-form__row{ flex-direction:column; }
}

/* ── fever-matrix terminal lines ─────────────────────────── */
.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); }
}
.fever-matrix{
  color:var(--red-hot);
  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(196,22,29,.35);
  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(196,22,29,.35); }
  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; }
}

/* ── matrix wake-up sequence ─────────────────────────────── */
.term__body .matrix-line{
  color:#6dff7d;
  letter-spacing:.06em;
  text-shadow:
    0 0 6px rgba(109,255,125,.55),
    0 0 14px rgba(109,255,125,.25);
  animation: matrixFlicker 2.8s steps(18) infinite;
}
@keyframes matrixFlicker{
  0%, 92%, 100% { opacity:1; }
  93%           { opacity:.6; text-shadow:0 0 2px rgba(109,255,125,.3); }
  95%           { opacity:1; }
  97%           { opacity:.75; }
}

/* ── body-wide glitch for cmd `glitch` / ERR flashes ────── */
body.signal-glitch{
  animation: sigGlitch .62s steps(7) forwards;
}
@keyframes sigGlitch{
  0%   { filter:none; transform:none; }
  15%  { filter:hue-rotate(-20deg) contrast(1.5) saturate(1.6); transform:translate(5px,-1px); }
  30%  { filter:hue-rotate(30deg) saturate(2);                  transform:translate(-4px,2px); }
  45%  { filter:invert(.12) contrast(2);                        transform:translate(3px,-3px); }
  60%  { filter:hue-rotate(-40deg) brightness(1.3);             transform:translate(-6px,1px); }
  80%  { filter:contrast(1.3) brightness(.7);                   transform:translate(2px,2px); }
  100% { filter:none; transform:none; }
}

/* ── A.M.E.L.I.A cut-off · signal lost overlay ──────────── */
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;
  align-items:center;
  justify-content:center;
  padding: clamp(20px, 6vw, 80px);
  padding-top: 6vh;
  padding-bottom: 22vh;
  overflow:hidden;
}
.signal-fatal__scan{
  position:absolute; inset:0;
  background: repeating-linear-gradient(to bottom,
    rgba(78,168,255,0) 0, rgba(78,168,255,0) 2px,
    rgba(78,168,255,.07) 3px, rgba(78,168,255,0) 4px);
  pointer-events:none;
  mix-blend-mode:screen;
  animation: fatalScan 5.5s linear infinite;
  transition: background 1.6s ease;
}
@keyframes fatalScan{
  0%   { background-position:0 -200%; }
  100% { background-position:0  200%; }
}
.signal-fatal__grain{
  position:absolute; inset:-12%;
  background-image: radial-gradient(rgba(78,168,255,.2) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity:.22;
  pointer-events:none;
  animation: fatalGrain .09s steps(3) infinite;
  transition: background-image 1.6s ease;
}
@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:#7bd4ff;
  font-size: clamp(22px, 3.4vw, 46px);
  line-height:1.5;
  white-space:pre-wrap;
  max-width: 22ch;
  text-shadow:
    0 0 14px rgba(78,168,255,.7),
    2px 0 0 rgba(123,212,255,.35),
   -2px 0 0 rgba(255,60,120,.25);
  animation: fatalFlicker 3.8s steps(14) infinite;
  transition: color 1.6s ease, text-shadow 1.6s ease;
}
.signal-fatal__text .amelia-hi{
  color:#ffffff;
  text-shadow:
    0 0 18px rgba(255,255,255,.7),
    0 0 36px rgba(123,212,255,.45),
    2px 0 0 rgba(138,200,255,.4),
   -2px 0 0 rgba(255,80,120,.25);
  transition: color 1.6s ease, text-shadow 1.6s ease;
}
.signal-fatal__caret{
  display:inline-block;
  color:#8ac8ff;
  animation: fatalBlink .75s steps(2) infinite;
  transition: color 1.6s ease;
}

/* ── startowy zielony matrix → transition na niebieski ── */
.signal-fatal--green .signal-fatal__text{
  color:#5dff9a;
  text-shadow:
    0 0 14px rgba(60,255,140,.75),
    2px 0 0 rgba(120,255,170,.35),
   -2px 0 0 rgba(255,60,120,.22);
}
.signal-fatal--green .signal-fatal__text .amelia-hi{
  color:#eaffe0;
  text-shadow:
    0 0 18px rgba(235,255,220,.75),
    0 0 36px rgba(90,255,140,.45),
    2px 0 0 rgba(160,255,180,.4),
   -2px 0 0 rgba(255,80,120,.22);
}
.signal-fatal--green .signal-fatal__caret{ color:#7dff9f; }
.signal-fatal--green .signal-fatal__scan{
  background: repeating-linear-gradient(to bottom,
    rgba(60,255,140,0) 0, rgba(60,255,140,0) 2px,
    rgba(60,255,140,.09) 3px, rgba(60,255,140,0) 4px);
}
.signal-fatal--green .signal-fatal__grain{
  background-image: radial-gradient(rgba(60,255,140,.22) 1px, transparent 1px);
}
.signal-fatal--green .signal-fatal__link{
  color:#7dff9f;
  border-color: rgba(60,255,140,.45);
  background: rgba(10, 40, 20, .4);
  text-shadow: 0 0 10px rgba(60,255,140,.6);
}
.signal-fatal--green .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--green .signal-fatal__hint{
  color: rgba(60,255,140,.45);
}
@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--green .signal-fatal__link{
  animation: linkPulseGreen 2.4s ease-in-out infinite;
}
.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:#8ac8ff;
  text-decoration:none;
  padding: 10px 22px;
  border: 1px solid rgba(78,168,255,.4);
  background: rgba(10, 30, 70, .35);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  text-shadow: 0 0 10px rgba(78,168,255,.55);
  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: linkPulse 2.4s ease-in-out infinite;
}
.signal-fatal--reveal-link .signal-fatal__link{
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.signal-fatal__link::before{ content:"» "; color:rgba(255,255,255,.75); }
.signal-fatal__link::after { content:" «"; color:rgba(255,255,255,.75); }
.signal-fatal__link:hover{
  color:#ffffff;
  border-color: rgba(123,212,255,.85);
  background: rgba(20, 60, 120, .55);
  text-shadow: 0 0 16px rgba(123,212,255,.85);
}
@keyframes linkPulse{
  0%, 100% { box-shadow: 0 0 0 0 rgba(78,168,255,0),   inset 0 0 12px rgba(78,168,255,.1); }
  50%      { box-shadow: 0 0 22px 2px rgba(78,168,255,.35), inset 0 0 16px rgba(78,168,255,.2); }
}
.signal-fatal{
  flex-direction: column;
}
@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__hint{
  position:absolute; left:0; right:0; bottom:22px;
  text-align:center; z-index:3;
  font-family: var(--f-mono);
  color: rgba(78,168,255,.45);
  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;
  }
  .blood{ display:none; }
  .card__video{ display:none; }
}
