html.pb-loading,html.pb-loading body { background:#060b0b; }
.pb-loading #pb-login,.pb-loading #pt-toolbar,.pb-loading #pt-desktop-fullscreen,.pb-loading #pt-touch-ui,.pb-loading #pt-menu-tools,.pb-loading #pt-menu-actions { visibility:hidden!important; pointer-events:none!important; }
.pb-loading #canvas { opacity:0; }
.pb-loading .pt-load.big { display:none!important; }
#pb-loading { position:fixed; inset:0; z-index:100; overflow:hidden; background:#060b0b; color:#f2dfac; font-family:Georgia,'Times New Roman',serif; cursor:url('login-assets/game-cursor.png') 0 0,auto; }
.pb-loading-art { position:absolute; left:50%; top:50%; width:min(800px,90vw,150vh); aspect-ratio:16/9; transform:translate(-50%,-50%); background:url('login-assets/loading-background.png') center/contain no-repeat; mask-image:radial-gradient(ellipse at center,#000 35%,transparent 73%); }
.pb-loading-content { position:absolute; top:calc(50% + min(45px,8vh)); left:50%; width:min(460px,64vw); transform:translateX(-50%); text-align:center; }
.pb-loading-bar { position:relative; box-sizing:border-box; height:18px; border:1px solid #c69c48; background:#050909db; box-shadow:inset 0 0 0 2px #44351c,0 0 0 1px #332310,0 3px 12px #000b; padding:2px; }
.pb-loading-bar::before,.pb-loading-bar::after { content:''; position:absolute; top:50%; width:12px; height:12px; transform:translateY(-50%) rotate(45deg); background:radial-gradient(circle at 35% 35%,#cffff2,#20d0bd 28%,#005a55 65%); border:1px solid #e5bd6a; box-shadow:0 0 0 2px #4c3517,inset 0 0 0 2px #0a544d; z-index:2; }
.pb-loading-bar::before { left:-10px; }.pb-loading-bar::after { right:-10px; }
.pb-loading-bar i { display:block; position:relative; height:100%; width:0; overflow:hidden; background:linear-gradient(90deg,#056753,#12bd9f 65%,#cce287 88%,#ffdc80); box-shadow:0 0 12px #13b99188; transition:width .2s; }
.pb-loading-bar i::after { content:''; position:absolute; inset:0; background:linear-gradient(110deg,transparent 20%,#ffffff60 50%,transparent 80%); transform:translateX(-100%); animation:pb-loading-shimmer 2s infinite; }
.pb-loading-content h2 { margin:20px 0 5px; font-size:clamp(12px,1.2vw,17px); font-weight:400; letter-spacing:.14em; text-shadow:0 2px 5px #000; }
#pb-loading-percent { min-height:1.3em; font-size:clamp(17px,1.6vw,24px); }
#pb-loading-detail { margin:7px 0; color:#cbbda5; font-size:clamp(11px,1vw,13px); letter-spacing:.03em; text-shadow:0 2px 5px #000; }
#pb-loading-retry { margin-top:15px; padding:10px 24px; background:#171d1b; border:1px solid #b79049; color:#f2dfac; font:inherit; cursor:inherit; }
#pb-loading-retry[hidden] { display:none; }
.pb-loading-leave { opacity:0; pointer-events:none; transition:opacity .6s ease; }
.pb-login-reveal .pb-panel { animation:pb-login-enter .65s ease-out both; }
.pb-login-reveal #canvas { animation:pb-scene-enter .65s ease-out both; }
.pb-loading-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@keyframes pb-loading-shimmer { to { transform:translateX(100%); } }
@keyframes pb-login-enter { from { opacity:0; filter:brightness(.65); } to { opacity:1; filter:brightness(1); } }
@keyframes pb-scene-enter { from { opacity:0; } to { opacity:1; } }
@media(max-height:500px) { .pb-loading-bar { height:14px; }.pb-loading-content h2 { margin:13px 0 2px; }#pb-loading-detail { margin-top:4px; } }
@media(orientation:portrait) { .pb-loading-content { width:74vw; top:calc(50% + 9vw); } }
@media(prefers-reduced-motion:reduce) { .pb-loading-bar i,.pb-loading-bar i::after,.pb-loading-leave,.pb-login-reveal .pb-panel,.pb-login-reveal #canvas { animation:none!important; transition:none!important; } }
