/* Fanatyco Preloader – sitewide */
@font-face {
  font-family: 'Press Start 2P';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Press Start 2P'), url('https://fonts.gstatic.com/s/pressstart2p/v16/e3t4euO8T-267oIAQAu6jDQyK3nVivY.woff2') format('woff2');
}

#page-preloader {
  position: fixed;
  inset: 0;
  display: none; /* hidden until JS adds .is-visible */
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.4);
  z-index: 999999;
  pointer-events: none; /* avoid trapping clicks when hidden */
}

#page-preloader.is-visible {
  display: flex;
  pointer-events: all;
}

body.is-loading {
  overflow: hidden; /* prevent scroll while overlay is visible */
}

/* Pop animation for the wrapper */
#page-preloader .preloader-wrap {
  opacity: 0;
  transform: scale(.8) rotate(-8deg);
  animation: preloader-pop .28s ease-out forwards;
}

/* Spinning logo */
#page-preloader .preloader-img {
  display: block;
  width: 120px;
  height: 120px;
  animation: preloader-spin .8s linear infinite;
}

/* Text */
#page-preloader .preloader-text {
  margin-top: 8px;
  font-size: 20px;
  color: #fff;
  font-family: 'Press Start 2P', monospace;
  font-weight: 400;
  text-align: center;
  letter-spacing: .5px;
}

#page-preloader .dots::after {
  content: '';
  animation: dots 1.2s steps(4, end) infinite;
}
@keyframes dots {
  0%   { content: ''; }
  25%  { content: '.'; }
  50%  { content: '..'; }
  75%  { content: '...'; }
  100% { content: ''; }
}

@keyframes preloader-pop {
  0%   { opacity: 0; transform: scale(.8) rotate(-8deg); }
  60%  { opacity: 1; transform: scale(1.1) rotate(4deg); }
  100% { opacity: 1; transform: scale(1) rotate(0deg); }
}

@keyframes preloader-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
