/* intro.css — Boot intro + login poster + auth modal */
#intro{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 55%,#2a1254,#07040f 75%) center/cover;transition:opacity .45s}
#intro.fade-out{opacity:0}
#introCv{position:absolute;inset:0;width:100%;height:100%}
.intro-c{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;animation:fade 1s both}
#introHero{max-height:min(46vh,380px);max-width:80vw;object-fit:contain;filter:drop-shadow(0 0 30px rgba(184,108,255,.85));animation:introBreath 3s ease-in-out infinite}
@keyframes introBreath{50%{filter:drop-shadow(0 0 46px rgba(255,231,160,.85))}}
#intro .logo{text-align:center;animation:fade 1.4s .3s both}#intro .tag{color:var(--cv-lightgold);letter-spacing:4px;font-size:13px;animation:fade 1.4s .6s both}
#introSkip{position:absolute;right:16px;bottom:calc(20px + var(--sab))}
#login.poster{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:16px 16px calc(28px + var(--sab));background:linear-gradient(180deg,rgba(18,10,36,.25),rgba(8,4,18,.85)),url(../assets/visual/maps/thanh_thien/map_thanh_thien_bg_v01.webp) center/cover no-repeat}
.poster-art{flex:1;min-height:0;display:flex;align-items:flex-end;justify-content:center;width:100%}
.poster-art img{max-height:100%;height:min(52vh,460px);object-fit:contain;filter:drop-shadow(0 0 22px rgba(184,108,255,.7))}.poster-art img+img{margin-left:-8%}
.poster-ui{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(420px,100%);text-align:center}
.poster-ui .tag{color:var(--cv-lightgold);letter-spacing:3px;font-size:13px}
.poster-cta{display:flex;gap:10px;width:100%}.poster-cta .btn{flex:1;min-height:52px;font-size:16px;letter-spacing:1px}
#authBox{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(6,3,14,.6);backdrop-filter:blur(4px)}
#authBox .login-box{position:relative;display:flex;flex-direction:column;gap:6px;animation:pop .25s}
#authBox .x{position:absolute;top:8px;right:8px}
.link-btn{background:none;border:0;color:var(--cv-muted);font:inherit;font-size:13px;cursor:pointer;padding:6px}.link-btn b{color:var(--cv-lightgold)}

/* V3.1 loading mode (reuses the boot intro scene) */
#intro.loading{z-index:150}#intro.loading .intro-c{transform:scale(.82)}#intro.loading .logo{font-size:.8em}
.ld-dots{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}.ld-dots i{width:5px;height:5px;border-radius:50%;background:var(--cv-lightgold);animation:ldb 1s infinite}.ld-dots i:nth-child(2){animation-delay:.15s}.ld-dots i:nth-child(3){animation-delay:.3s}
@keyframes ldb{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
