body.is-loading > .app-header,
body.is-loading > .experience,
body.is-loading > .app-footer { visibility:hidden; }
.page-loader { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:28px; background:radial-gradient(ellipse at 50% 35%,#26374c,#10151d 75%); text-align:center; }
.page-loader[hidden] { display:none; }
.loader-content { max-width:460px; }
.loader-mark { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 25px; border-radius:50%; background:#ca3753; color:white; font-size:42px; }
.loader-content h1 { margin:0 0 14px; font-size:clamp(24px,4vw,32px); font-weight:500; }
.loader-content p { margin:0; color:#b7c5d6; font-size:15px; line-height:1.6; }
.loader-spinner { display:block; width:30px; height:30px; margin:30px auto 14px; border:2px solid #ffffff20; border-top-color:#d3b78d; border-radius:50%; animation:loader-spin .9s linear infinite; }
.loader-label { font-size:12px; letter-spacing:.5px; color:#c9ae86; }
@keyframes loader-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .loader-spinner { animation:none; } }
.app-footer { height:44px; flex-wrap:nowrap; gap:24px; white-space:nowrap; overflow-x:auto; max-width:100vw; }
.app-footer > * { flex-shrink:0; }
.app-footer p { display:block; }
.ai-notice { font-size:10px; line-height:16px; letter-spacing:.2px; color:#9eacbe; }
.scene-fit { width:min(100vw,calc((100svh - 112px)*1.5)); }
@media (max-width:1100px) and (min-width:651px) { .scene-fit { width:min(100vw,calc((100svh - 156px)*1.5)); } }
@media (max-width:650px) {
  .app-footer { height:40px; gap:16px; }
  .scene-fit { width:min(100vw,calc((100svh - 206px)*1.5)); }
}
/* Display the supplied logo without its transparent outer margins. */
.wza-logo { position:relative; display:inline-block; width:146px; aspect-ratio:1416 / 338; overflow:hidden; flex:none; vertical-align:middle; }
.wza-logo img { position:absolute; width:125.2825%; height:auto; max-width:none; left:-12.7119%; top:-79.8817%; }
.wza-logo--dark { aspect-ratio:1416 / 346; }
.wza-logo--dark img { left:-12.6412%; top:-77.1676%; }
.brand { padding:7px 9px; background:transparent; }
.loader-brand { display:inline-flex; padding:16px 20px; margin:0 auto 25px; }
.loader-brand .wza-logo { width:240px; }
.screen-brand .wza-logo { width:132px; }
.tablet-organization { display:flex; align-items:center; gap:5px; }
.tablet-top .wza-logo { width:38px; }
.enlarged .tablet-top .wza-logo { width:54px; }
@media (max-width:650px) { .brand .wza-logo { width:108px; } }
