/* ZWZ Opening R2. All selectors scoped; no React route/3D changes. */
#zwz-preloader {
  position:fixed; inset:0; z-index:20000; overflow:hidden; isolation:isolate;
  background-color:#bc251c; color:#fff0c5;
  font-family:'Microsoft YaHei','Noto Sans SC',sans-serif;
  transition:opacity .82s ease,visibility .82s ease;
}
#zwz-preloader.is-exiting {opacity:0;visibility:hidden;pointer-events:none;}
#zwz-preloader .zwz-pre-bg {
  position:absolute;inset:0;z-index:0;
  background:#bc251c url('/zwz-preloader/background.png') center center / cover no-repeat;
}
#zwz-preloader .zwz-pre-stage,#zwz-preloader .zwz-pre-landscape {
  position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;user-select:none;
}
#zwz-preloader .zwz-pre-stage {z-index:1;}
#zwz-preloader .zwz-pre-landscape {z-index:3;object-fit:cover;object-position:center center;}
#zwz-preloader .zwz-pre-ring-outer,
#zwz-preloader .zwz-pre-ring-inner {will-change:transform;}
#zwz-preloader .zwz-pre-arc {
  stroke-dasharray:0 940;
  animation:zwz-r2-arc 1.85s cubic-bezier(.2,1,.3,1) var(--delay,0s) forwards;
}
#zwz-preloader .zwz-pre-text-orbit {opacity:0;animation:zwz-r2-text-appear 1.6s .65s ease forwards;}
#zwz-preloader .zwz-pre-percent {font:700 62px Georgia,'Noto Serif SC',serif;letter-spacing:-2px;}
#zwz-preloader .zwz-pre-label {font:600 15px 'Microsoft YaHei',sans-serif;letter-spacing:5px;}
#zwz-preloader .zwz-pre-text {font:600 25px Georgia,'Noto Serif SC',serif;letter-spacing:2px;}
#zwz-preloader .zwz-pre-brand {
  position:absolute;top:clamp(16px,4vh,52px);left:clamp(16px,4vw,70px);
  z-index:4;font-size:clamp(12px,1vw,16px);letter-spacing:3px;color:#fff0c5;font-weight:700;
  text-shadow:0 1px 6px #82261f;
}
#zwz-preloader .zwz-pre-skip {
  position:absolute;z-index:4;right:clamp(16px,3.5vw,60px);top:clamp(16px,3.5vh,52px);
  background:#ffe4a1;color:#872b23;border:1px solid #fae0a6;border-radius:99px;
  font:600 14px 'Microsoft YaHei',sans-serif;padding:10px 18px;cursor:pointer;
}
#zwz-preloader .zwz-pre-skip:hover {background:#fff0cc;}
#zwz-preloader .zwz-pre-status {
  position:absolute;z-index:4;left:50%;bottom:clamp(20px,3vh,48px);transform:translateX(-50%);
  font-size:12px;letter-spacing:3px;color:#fff2c4;text-shadow:0 1px 5px #6f211c;
  white-space:nowrap;
}
/* The original LoadingProvider/BootGate still runs; hide only its visible legacy UI.
   The class persists after the new overlay exits, avoiding the old loader flashing. */
html.zwz-opening-managed #root .loading-screen,
html.zwz-opening-managed #root .loading-header {visibility:hidden;opacity:0;pointer-events:none;}
@keyframes zwz-r2-arc {to{stroke-dasharray:940 0;}}
@keyframes zwz-r2-text-appear {from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
  #zwz-preloader .zwz-pre-arc {animation:none;stroke-dasharray:940 0;}
  #zwz-preloader .zwz-pre-text-orbit {animation:none;opacity:1;}
  #zwz-preloader.is-exiting {transition-duration:.12s;}
}
