body, html {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  font-family: Arial, sans-serif;

  display: flex;
  align-items: center;
  justify-content: center;
  
  background: linear-gradient(135deg, #f6d365 0%, #fda085 100%);
  overflow: hidden;
}

#loading-screen {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
}

.spinner {
  border: 8px solid #131313;
  border-top: 8px solid #e7e7e7;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  animation: spin 5s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

#main-content.hidden {
  display: none;
}

.cube-container {
  perspective: 1000px;
}

.cube {
  position: relative;
  width: 200px;
  height: 200px;
  max-width: 200px;
  max-height: 200px;
  transform-style: preserve-3d;
  transform: rotateX(0deg) rotateY(0deg);
  transition: transform 0.1s;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cube-a {
  width: 100%;
  height: 100%;
}

.face {
  position: absolute;
  width: 200px;
  height: 200px;
  border: 5px solid #fff;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 24px;
  user-select: none; /* Prevent text selection */
}

.face.front  { transform: translateZ(100px); background: rgba(255, 255, 255, 1);}
.face.back   { transform: rotateY(180deg) translateZ(100px); background: rgba(235, 118, 118, 1);}
.face.left   { transform: rotateY(-90deg) translateZ(100px); background: rgba(255, 252, 91, 1);}
.face.right  { transform: rotateY(90deg) translateZ(100px); background: rgba(140, 96, 243, 1);}
.face.top    { transform: rotateX(90deg) translateZ(100px); background: rgba(133, 247, 99, 1);}
.face.bottom { transform: rotateX(-90deg) translateZ(100px); background: rgba(97, 218, 248, 1);}

img.cube-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  align-self: center;
  pointer-events: none;
}

#top-right-text {
  position: absolute;
  top: 1vh;
  right: 0;
  
  width: 400px;
  height: auto;
}

#top-right-text.hidden {
display: none;
}

#top-left-img {
  position: absolute;
  top: 0;
  left: 0;
  
  width: 300px;
  height: 175px;
  
  background-size: cover;

  border-bottom-right-radius: 15px;
  border-bottom: 3px solid #ccc;
  border-right: 3px solid #ccc;
}

#top-left-img.hidden {
  display: none;
}

#center-left-text {
    position: absolute;
    top: 50%;
    left: 1vw;
    
    width: 300px;
    height: auto;
}

#center-left-text.hidden {
  display: none;
}

.montserrat {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}

.playwrite-ng-modern {
  font-family: "Playwrite NG Modern", cursive;
  font-optical-sizing: auto;
  font-weight: 750;
  font-style: normal;
}

 /* The Modal (background) */
 .modal {
  display: none; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content/Box */
.modal-content {
  background-color: #fefefe;
  margin: 15% auto; /* 15% from the top and centered */
  padding: 20px;
  border: 1px solid #888;
  width: 30%; /* Could be more or less, depending on screen size */
}

/* The Close Button */
.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
} 