/* =============================================================
   THE LAST FUSE — standalone teaser.
   A security-camera feed from the facility the game is set in.
   Deliberately does not inherit the studio's green: this page
   belongs to the game, not to the brand.
   ============================================================= */

.page-tlf {
  --tlf-bg:     #080808;
  --tlf-white:  #efefef;
  --tlf-dim:    rgba(239, 239, 239, 0.4);
  --tlf-muted:  rgba(239, 239, 239, 0.18);
  --tlf-border: rgba(239, 239, 239, 0.1);

  background: var(--tlf-bg);
  color: var(--tlf-white);
  font-family: 'Courier New', Courier, monospace;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-x: hidden;
}

/* Only the teaser hides overflow, and only where the content fits —
   locking scroll on a short screen makes the button unreachable. */
@media (min-height: 720px) and (min-width: 481px) {
  .page-tlf { overflow: hidden; height: 100vh; height: 100svh; }
}

.tlf-scanlines {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 100;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0px, transparent 3px,
    rgba(0, 0, 0, 0.08) 3px, rgba(0, 0, 0, 0.08) 4px
  );
}

.tlf-vignette {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 99;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.65) 100%);
}

.tlf-timestamp {
  position: fixed;
  bottom: 20px;
  left: 24px;
  z-index: 200;
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--tlf-muted);
  pointer-events: none;
  font-variant-numeric: tabular-nums;   /* stops the clock jittering */
}

.tlf-credit {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 200;
  margin: 0;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--tlf-muted);
  white-space: nowrap;
}

.tlf-credit a { color: var(--tlf-muted); text-decoration: none; transition: color 0.3s; }
.tlf-credit a:hover { color: rgba(239, 239, 239, 0.5); }

/* -------------------------------------------------------------- layout */
.tlf-wrap {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px;
}

.tlf-logo {
  width: min(500px, 78vw);
  height: auto;
  margin-bottom: 44px;
  animation: tlf-fade 1.6s ease both;
}

.tlf-label {
  margin: 0 0 16px;
  font-size: 10px;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: var(--tlf-muted);
  animation: tlf-fade 1.2s ease 0.4s both;
}

.tlf-title {
  margin: 0;
  font-family: 'Bebas Neue', Impact, sans-serif;
  font-weight: 700;
  font-size: clamp(48px, 9vw, 110px);
  letter-spacing: 10px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--tlf-white);
  animation: tlf-fade 1.2s ease 0.25s both;
}

.tlf-title--fallback { margin-bottom: 24px; }

.tlf-divider {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, transparent, var(--tlf-border), transparent);
  margin: 28px auto;
  animation: tlf-fade 1.2s ease 0.6s both;
}

.tlf-tagline {
  margin: 0 0 40px;
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--tlf-dim);
  animation: tlf-fade 1.2s ease 0.75s both;
}

.tlf-socials {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 26px;
  animation: tlf-fade 1.2s ease 0.9s both;
}

.tlf-social {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--tlf-border);
  fill: var(--tlf-dim);
  text-decoration: none;
  transition: fill 0.25s, border-color 0.25s, transform 0.25s;
}

.tlf-social:hover {
  fill: var(--tlf-white);
  border-color: rgba(239, 239, 239, 0.3);
  transform: translateY(-2px);
}

.tlf-steam {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: 'Bebas Neue', Impact, sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.6vw, 18px);
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #000;
  background: var(--tlf-white);
  fill: #000;
  padding: 11px 30px;
  text-decoration: none;
  transition: opacity 0.25s, transform 0.25s;
  animation: tlf-fade 1.2s ease 1.05s both;
}

.tlf-steam:hover { opacity: 0.88; transform: translateY(-2px); color: #000; }

.tlf-steam--ghost {
  background: transparent;
  color: var(--tlf-dim);
  fill: var(--tlf-dim);
  border: 1px solid var(--tlf-border);
}

.tlf-steam--ghost:hover { color: var(--tlf-white); border-color: rgba(239, 239, 239, 0.3); }

/* A standalone page still needs a way back to the site. */
.tlf-back {
  margin-top: 34px;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--tlf-muted);
  text-decoration: none;
  transition: color 0.25s;
  animation: tlf-fade 1.2s ease 1.2s both;
}

.tlf-back:hover { color: var(--tlf-dim); }

@keyframes tlf-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .tlf-logo, .tlf-label, .tlf-title, .tlf-divider,
  .tlf-tagline, .tlf-socials, .tlf-steam, .tlf-back { animation: none; }
}

@media (max-width: 480px) {
  .page-tlf { align-items: flex-start; padding: 64px 0 72px; height: auto; overflow: visible; }
  .tlf-credit { white-space: normal; text-align: center; width: 88%; }
  .tlf-timestamp { left: 50%; transform: translateX(-50%); bottom: 52px; }
}
