/* Reset default margins and paddings */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
  }
  
  html, body {
	width: 100%;
	height: 100%;
	overflow: hidden; /* Initially hide scrollbars on the body */
  }
  
  body {
	background-color: #000; /* Consistent hex color */
	position: relative;
	font-family: Arial, sans-serif; /* Optional: Set a default font */
	transition: opacity 0.5s ease-in-out;
  }
  .fade-out {
    opacity: 0;
}

.fade-in {
    opacity: 1;
}

.content {
    text-align: center;
    margin-top: 50px;
}
  
  /* Loading Screen Styles */
  #loading-screen {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999; /* Ensure it appears above everything else */
	color: white;
	font-size: 3vh;
	font-weight: bold;
	visibility: visible;
	opacity: 1;
	transition: opacity 0.5s ease-in-out;
  }
  
  #loading-screen.hidden {
	visibility: hidden;
	opacity: 0;
  }
  
  /* Wrapper to contain and scale the background */
  #wrapper {
	width: 100vw;
	height: 100vh;
	overflow: hidden; /* Overflow behavior controlled via JavaScript */
	position: relative;
	background-color: #000; /* Match the body's background color */
	display: flex;
	justify-content: center; /* Centers the background horizontally */
	align-items: center; /* Centers the background vertically */
  }
  
  /* Container for all elements */
  #background { 
	position: absolute; 
	width: 4043px;
	height: 7188px; 
	transform-origin: top left; /* Scale from top-left corner */
	/* Initially no scaling */
	transform: scale(1);
	overflow: hidden; /* Prevent images from overflowing */
	display: flex;
	justify-content: center;
	align-items: center;
  }
  
  /* Common styles for all image containers */
  #background div { 
	position: absolute; /* Absolute positioning within #background */
  }
  
  #background img {
	max-width: 100%; /* Prevent images from going out of bounds */
	height: auto; /* Maintain aspect ratio */
	object-fit: contain; /* Ensure the image scales without overflowing */
	pointer-events: none; /* Prevent interactions with background images */
  }
  
  /* Grouped Tower Elements */
  .tower-element {
	position: absolute; /* Absolute positioning within #background */
	animation: float 5s ease-in-out infinite;
  }
  
  .stage-element {
	position: absolute; /* Absolute positioning within #background */
	animation: float2 5s ease-in-out infinite;
  }
  
  /* Optional: Add a slight delay to create a staggered floating effect */
  .tower-element:nth-child(1) {
	animation-delay: 0s;
  }
  .tower-element:nth-child(8) {
	animation-delay: 0.5s;
  }
  .tower-element:nth-child(6) {
	animation-delay: 1s;
  }
  .tower-element:nth-child(9) {
	animation-delay: 1.5s;
  }
  .tower-element:nth-child(5) {
	animation-delay: 2s;
  }
  .tower-element:nth-child(3) {
	animation-delay: 2.5s;
  }
  .tower-element:nth-child(7) {
	animation-delay: 3s;
  }
  .tower-element:nth-child(2) {
	animation-delay: 3.5s;
  }
  .tower-element:nth-child(4) {
	animation-delay: 4s;
  }
  .tower-element:nth-child(10) {
	animation-delay: 4.5s;
  }
  
  /* Floating Animations */
  @keyframes float {
	0% {
	  transform: translateY(0px);
	}
	50% {
	  transform: translateY(-35px);
	}
	100% {
	  transform: translateY(0px);
	}
  }
  
  @keyframes float2 {
	0% {
	  transform: translateY(0px);
	}
	50% {
	  transform: translateY(15px);
	}
	100% {
	  transform: translateY(0px);
	}
  }
  
  /* Positioning for Tower Containers */
  
  /* Tower Right Ring Container */
  #towerrightring-container {
	left: 2188px; 
	top: 1852px; 
	width: 668px;
	height: 780px;
	z-index: 4;
  }
  
  /* Tower Left Ring Container */
  #towerleftring-container {
	left: 1196px; 
	top: 1612px; 
	width: 500px;
	height: 696px;
	z-index: 4;
  }
  
  /* Tower Stick Left Container */
  #towerstickleft-container {
	left: 1740px; 
	top: 932px; 
	width: 228px;
	height: 1256px;
	z-index: 5;
  }
  
  /* Tower Stick Right Container */
  #towerstickright-container {
	left: 2048px; 
	top: 656px; 
	width: 224px;
	height: 1096px;
	z-index: 6;
  }
  
  /* Tower Debris 1 Container */
  #towerdebris1-container {
	left: 1448px; 
	top: 1292px; 
	width: 44px;
	height: 120px;
	z-index: 10;
  }
  
  /* Tower Debris 2 Container */
  #towerdebris2-container {
	left: 2392px; 
	top: 2620px; 
	width: 76px;
	height: 196px;
	z-index: 11;
  }
  
  /* Tower Debris 3 Container */
  #towerdebris3-container {
	left: 1612px; 
	top: 2596px; 
	width: 72px;
	height: 264px;
	z-index: 12;
  }
  
  /* Tower Debris 5 Container */
  #towerdebris5-container {
	left: 2352px; 
	top: 1480px; 
	width: 76px;
	height: 272px;
	z-index: 14;
  }
  
  /* Tower Debris 6 Container */
  #towerdebris6-container {
	left: 2540px; 
	top: 1692px; 
	width: 132px;
	height: 256px;
	z-index: 15;
  }
  
  /* Tower Debris 7 Container */
  #towerdebris7-container {
	left: 1548px; 
	top: 1788px; 
	width: 64px;
	height: 128px;
	z-index: 16;
  }
  
  /* Positioning for Tower Main (No Floating Effect) */
  #towermain { 
	left: 1252px; 
	top: 2056px; 
	width: 1540px;
	height: 2880px;
	z-index: 3;
	animation-play-state: paused;
  } 
  
  /* Stage */
  #stage { 
	left: 0px; 
	top: 2749px; 
	width: 1416px;
	height: 1632px;
	z-index: 2;
  } 
  
  #stagering { 
	left: 78px; 
	top: 2888px; 
	width: 784px;
	height: 420px;
	z-index: 3;
  } 
  
  #stagedot { 
	left: 320px; 
	top: 2600px; 
	width: 304px;
	height: 184px;
	z-index: 3;
  } 
  
  #stageon { 
	left: 135px; 
	top: 2730px; 
	width: 686px;
	height: 1013px;
	z-index: 9;
	display: none; /* Hidden by default */
	opacity: 0; /* Start transparent */
	transition: opacity 0.2s ease; /* Smooth transition */
  }
  
  #stageon.show {
	display: block; /* Make it visible */
	opacity: 1; /* Fully opaque */
  }
  
  /* Church */
  #church { 
	left: 52px; 
	top: 4136px; 
	width: 1092px;
	height: 1576px;
	z-index: 9;
  } 
  
  /* Arena */
  #Arena { 
	left: 2904px; 
	top: 4730px; 
	width: 1208px;
	height: 1320px;
	z-index: 7;
  } 
  
  /* Hint Styling */
  #hint { 
	position: absolute; /* Absolute positioning within #background */
	left: -200px; /* Initially off-screen */
	top: 1300px; 
	width: 753px;
	height: 638px;
	z-index: 20; /* Higher than other elements to appear on top */
	transition: left 0.15s ease, opacity 0.15s ease; /* Smooth slide-in and fade-in */
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0; /* Initially hidden */
	filter: drop-shadow(0 20px 15px rgba(0, 0, 0, 0.532));
  }
  
  #hint.show {
	left: 0px; /* Slide into view */
	opacity: 1; /* Fade in */
  }
  
  #hint-text {
	font-family: 'Noto Sans TC', serif;
	font-weight: 500;
	font-style: normal;
	position: absolute;
	color: rgb(0, 0, 0);
	font-size: 6.5rem;
	text-align: center;
	pointer-events: none;
	top: 50%;
	left: 40%;
	transform: translate(-50%, -50%);
	white-space: normal; /* Allow wrapping of text */
	line-height: 1.4; /* Adjust line height for better readability */
	width: 100%; /* Make the text span the full width of the hint */
	max-width: 40rem; /* Optional: limit the width of the text */
  }
  
  /* Contour Glow Effect */
  .glow img {
	/* Applying a contour-like glow using CSS filters */
	filter: drop-shadow(0 0 35px rgb(42, 216, 255));
	/* You can adjust the color and intensity of the glow as needed */
  }
  
  /* Responsive Image Styling */
  #background img {
	max-width: 100%;
	height: auto;
	display: block;
  }
  
  /* Optional: Footer Styling */
  footer {
	text-align: center;
	padding: 20px;
	background-color: #111;
	color: #fff;
	position: relative;
	z-index: 20;
  }
  
  /* Optional: Prevent text selection or other unwanted behaviors */
  body, #wrapper, #background {
	-webkit-user-select: none; /* Disable text selection */
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
  }
  
  /* Optional: Hide Scrollbar Appearance */
  #wrapper {
	scrollbar-width: none; /* For Firefox */
  }
  
  /* Hide scrollbar for WebKit-based browsers */
  #wrapper::-webkit-scrollbar {
	display: none;
  }
  