body {
margin: 0;
padding: 0;
overflow-x: hidden;
background-color: #f5f5f5;
font-family: Arial, sans-serif;
} .viewer {
position: relative;
display: flex;
justify-content: center;
align-items: center;
width: 100vw;
height: 100vh;
} .logo {
display: block;
max-width: 100%;
image-rendering: -webkit-optimize-contrast;
image-rendering: crisp-edges;
}
.top-logo {
position: absolute;
transform: translate(-50%, -10%);
top: 1%;
left: 50%;
width: 140px;
height: auto;
z-index: 5;
}
.bottom-logo {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
width: 250px;
height: auto;
z-index: 5;
} #loading-screen {
position: absolute;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(25, 25, 25, 0.5);
backdrop-filter: blur(5px);
display: flex;
justify-content: center;
align-items: center;
z-index: 10;
opacity: 1;
transition: opacity 0.5s ease-out;
}
#loading-screen.fade-out {
opacity: 0;
}
.spinner {
border: 8px solid #f5f5f5;
border-top: 8px solid #e4c07e;
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
} #error-screen {
position: absolute;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(245, 245, 245, 0.5);
backdrop-filter: blur(5px);
display: flex;
justify-content: center;
align-items: center;
z-index: 10;
color: #191919;
font-size: 18px;
text-align: center;
border-radius: 5px;
padding: 20px;
display: none;
} #rotate-screen {
position: absolute;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(25, 25, 25, 0.5);
backdrop-filter: blur(5px);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
color: #191919;
text-align: center;
padding: 20px;
border-radius: 5px;
box-sizing: border-box;
display: none;
}
#close-rotate {
position: absolute;
left: 50%;
transform: translateX(-50%);
top: 60%;
background: rgba(228, 192, 126, 0.4);
border: none;
color: #191919;
font-size: 30px;
line-height: 1;
padding: 10px;
cursor: pointer;
border-radius: 50%;
width: 60px;
height: 60px;
display: flex;
justify-content: center;
align-items: center;
z-index: 11;
box-sizing: border-box;
}
#close-rotate:hover {
background: rgba(228, 192, 126, 0.5);
}
.rotate-icon {
width: 80px;
height: 80px;
margin-bottom: 20px;
} .rotate-icon-spinner {
border: 8px solid #f5f5f5;
border-top: 8px solid #e4c07e;
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 1s linear infinite;
margin-bottom: 10px;
} @media (max-width: 768px) {
.top-logo {
width: 120px;
height: auto;
top: 0%;
}
#loading-screen .spinner {
width: 40px;
height: 40px;
border-width: 6px;
}
#error-screen {
font-size: 16px;
padding: 15px;
}
#rotate-screen .rotate-icon {
width: 60px;
height: 60px;
}
#rotate-screen p {
font-size: 16px;
}
#close-rotate {
width: 50px;
height: 50px;
font-size: 24px;
top: 70%;
}
}
@media (max-width: 480px) {
.top-logo {
width: 130px;
height: auto;
top: 0%;
}
.bottom-logo {
width: 250px;
height: auto;
}
#loading-screen .spinner {
width: 30px;
height: 30px;
border-width: 4px;
}
#error-screen {
font-size: 14px;
padding: 10px;
}
#rotate-screen .rotate-icon {
width: 200px;
height: 200px;
opacity: 0.4;
}
#close-rotate {
width: 70px;
height: 70px;
font-size: 35px;
top: 85%;
}
.viewer {
width: 100vw;
height: 100vh;
}
#three-canvas {
width: 100%;
height: 100%;
}
} @media (max-width: 480px) and (orientation: portrait) {
#rotate-screen {
display: flex;
}
} @media (max-height: 480px) and (orientation: landscape) {
.top-logo {
width: 90px;
height: auto;
}
}