/* Screen Saver styles */
.tm-saver {
  position: fixed; inset: 0; z-index: 999999;
  display: none; opacity: 0; pointer-events: none;
  background: radial-gradient(120% 120% at 50% 50%, #151515 0%, #0b0b0b 70%);
  transition: opacity .35s ease;
}
.tm-saver.on { display:block; opacity:1; pointer-events:auto; }

.tm-steam, .tm-steam:before, .tm-steam:after {
  position:absolute; left:50%; top:65%;
  width:40vmax; height:40vmax; transform:translateX(-50%);
  background: radial-gradient(closest-side, rgba(255,255,255,.08), rgba(255,255,255,0) 60%);
  filter: blur(22px); opacity:.4; animation: tm-steam 9s linear infinite;
  pointer-events:none;
}
.tm-steam:before{ content:""; top:-12vmax; left:-30%; animation-duration:11s; opacity:.25; }
.tm-steam:after { content:""; top:-20vmax; left: 25%; animation-duration:13s; opacity:.2;  }
@keyframes tm-steam {
  from { transform:translate(-50%,15%) scale(1); }
  to   { transform:translate(-50%,-35%) scale(1.25); }
}

.tm-stage { position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; }
.tm-slide {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transform: scale(1.05);
  transition: opacity 800ms ease, transform 8s ease;
}
.tm-slide.active { opacity:1; transform: scale(1); }

/* video slides */
.tm-slide video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center;
}

.tm-caption {
  position:absolute; bottom:9vh; left:50%; transform:translateX(-50%);
  text-align:center; width:min(92vw, 900px); padding:18px 22px; color:#fff;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans", sans-serif;
}
.tm-title {
  font-weight:800; letter-spacing:.5px; line-height:1.15;
  font-size: clamp(26px, 5vw, 48px);
  text-shadow: 0 2px 18px rgba(0,0,0,.55);
}
.tm-sub { opacity:.9; margin-top:8px; font-size: clamp(14px, 2.5vw, 18px); }
.tm-cta {
  margin-top:16px; display:inline-block; padding:12px 18px; border-radius:999px;
  border:1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.08);
  backdrop-filter: blur(6px);
  font-weight:700; letter-spacing:.3px; text-decoration:none; color:#fff;
  transition: transform .15s ease, background .3s ease, border-color .3s ease;
}
.tm-cta:active { transform:scale(.98); }
.tm-cta:hover  { background: rgba(255,255,255,.14); border-color:rgba(255,255,255,.55); }

.tm-hint {
  position:absolute; top:8vh; left:50%; transform:translateX(-50%);
  color:#ddd; opacity:.75; font-size:14px; letter-spacing:.2px;
  animation: tm-floaty 3.5s ease-in-out infinite;
}
@keyframes tm-floaty {
  0%,100% { transform:translate(-50%,0); }
  50%     { transform:translate(-50%,-6px); }
}

body.tm-no-scroll { overflow: hidden !important; touch-action:none; }

/* Hide Reception Display on mobile phones. Tablets and larger screens still show it. */
@media (max-width: 767px) {
  .tm-saver,
  .tm-saver.on {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.tm-no-scroll {
    overflow: auto !important;
    touch-action: auto !important;
  }
}
