/* FF7 Style Page - CSS Animation */

@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');

body
{
  width: 100vw;
  height: 100dvh;
  height: calc(var(--vh, 1vh) * 100);
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #000;
  font-family: 'Press Start 2P', monospace;
  overflow: hidden;
}

#animation_container
{
  position: absolute;
  margin: auto;
  left: 0; right: 0;
  top: 0; bottom: 0;
}

/* Tap-to-start overlay */
#start-overlay
{
  position: fixed;
  top: 0; left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0,0,0,0.85);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 999;
  transition: opacity 0.5s ease;
}

#start-overlay.fade-out
{
  opacity: 0;
}

#start-text
{
  color: red;
  font-size: 14px;
  text-align: center;
  letter-spacing: 2px;
  animation: pulse 1.2s infinite alternate;
}

@keyframes pulse
{
  from { opacity: 0.4; }
  to { opacity: 1; }
}

/* Menu styling */
#menu-container
{

  margin: auto;
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  width: 240px;
  padding: 10px;
  background: linear-gradient(to bottom right, #ff1608, #450401);
  border: 1px solid #fff;
  border-radius: 3px;
  display: none;
  opacity: 0;
  transition: opacity 1s ease;
}

#menu-container.show
{
  display: block;
  opacity: 1;
}

#menu-item
{
  background-color: rgba(255,255,255,0.1);
  color: white;
  padding: 10px;
  margin: 8px 0;
  border: 1px solid #fff;
  cursor: pointer;
  text-align: center;
  font-size: 12px;

}

#menu-item:hover
{
  background-color: rgba(255,255,255,0.3);
  color: yellow;
}

body 
{
  margin: 0;
  padding: 0;
  background: #000;
  font-family: Arial, sans-serif;
  overflow: hidden;
}

/* --------------------- NAVBAR --------------------- */
nav
{
  position: absolute;
  top: -80px;           /* Start off-screen for animation */
  left: 0;
  width: 100%;
  height: 60px;         /* Reserve space for nav items */
  text-align: center;
  transition: top 1s ease-out;
  z-index: 100;         /* Make sure nav appears above windows */
}

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-block; /* Inline container for li items */
}

nav ul li {
  display: inline-block;
  margin: 0 20px;       /* Spacing between items */
  vertical-align: middle;
}

nav ul li a {
  color: #9cd2ff;
  font-size: 20px;
  text-decoration: none;
  padding: 6px 10px;    /* Adds clickable area & hover highlight */
  transition: background 0.3s, color 0.3s;
}

nav ul li a:hover {
  background: #ff1609;  /* FF7 style red highlight */
  color: #fff;
  border-radius: 4px;
}

/* ------------------ TEXT WINDOWS ------------------ */
.text-window {
  position: absolute;
  width: 300px;
  height: 180px;
  padding: 15px;
  background: rgba(50, 50, 50, 0.8);
  border: 1px solid #9cd2ff;
  color: #fff;
  opacity: 0;
  transition: all 1s ease-out;
}

#window-left {
  left: -400px;
  top: 200px;
}

#window-right {
  right: -400px;
  top: 200px;
}

/* ------------------ RESPONSIVE BREAKPOINTS ------------------ */

/* Large desktop (1400px+) */
@media screen and (min-width: 1400px)
{
  #start-text
  {
    font-size: 18px;
    letter-spacing: 3px;
  }

  #menu-container
  {
    width: 300px;
    padding: 15px;
    bottom: 80px;
  }

  #menu-item
  {
    font-size: 14px;
    padding: 12px;
    margin: 10px 0;
  }
}

/* Tablet landscape (1024px - 1399px) */
@media screen and (min-width: 1024px) and (max-width: 1399px)
{
  #start-text
  {
    font-size: 16px;
  }

  #menu-container
  {
    width: 260px;
    bottom: 70px;
  }

  #menu-item
  {
    font-size: 12px;
    padding: 10px;
  }
}

/* Tablet portrait (768px - 1023px) */
@media screen and (min-width: 768px) and (max-width: 1023px)
{
  #start-text
  {
    font-size: 14px;
  }

  #menu-container
  {
    width: 240px;
    bottom: 60px;
  }

  #menu-item
  {
    font-size: 11px;
    padding: 9px;
    margin: 7px 0;
  }
}

/* Small tablet / large phone (601px - 767px) */
@media screen and (min-width: 601px) and (max-width: 767px)
{
  #start-text
  {
    font-size: 12px;
    letter-spacing: 1px;
  }

  #menu-container
  {
    width: 220px;
    padding: 8px;
    bottom: 50px;
  }

  #menu-item
  {
    font-size: 10px;
    padding: 8px;
    margin: 6px 0;
  }
}

/* Mobile (600px and below) */
@media screen and (max-width: 600px)
{
  #start-text
  {
    font-size: 11px;
    letter-spacing: 1px;
  }

  #menu-container
  {
    width: 260px;
    padding: 10px;
    bottom: 50px;
  }

  #menu-item
  {
    font-size: 11px;
    padding: 14px 10px;
    margin: 8px 0;
  }

  nav ul li
  {
    display: block;
    margin: 10px 0;
  }

  nav ul
  {
    display: block;
  }
}

/* Very small screens (400px and below) */
@media screen and (max-width: 400px)
{
  #start-text
  {
    font-size: 10px;
  }

  #menu-container
  {
    width: 240px;
    padding: 8px;
    bottom: 40px;
  }

  #menu-item
  {
    font-size: 10px;
    padding: 12px 8px;
    margin: 6px 0;
  }
}
