/* 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; }