/* 접속 화면: 서버 응답 전·연결 실패 시 게임 화면 대신 표시(mockups/loading-1.html 시안) */
.gt{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(11,16,25,.97)}
.gt::after{content:"";position:absolute;inset:0;pointer-events:none;height:140px;background:linear-gradient(180deg,transparent,rgba(156,193,255,.07) 50%,transparent);animation:gt-scan 3.2s linear infinite}
.gt .box{position:relative;width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.gt .em{width:84px;height:84px;overflow:visible}
.gt .em .r1{transform-origin:21px 21px;animation:gt-spin 9s linear infinite}
.gt .em .r2{transform-origin:21px 21px;animation:gt-spin 6s linear infinite reverse}
.gt .ttl{font-family:'Do Hyeon',var(--font);font-size:34px;letter-spacing:.08em;line-height:1.1}
.gt .ttl small{display:block;margin-top:6px;font:500 11px var(--mono);letter-spacing:.2em;color:var(--faint)}
.gt .bar{width:100%;display:flex;gap:3px}
.gt .bar i{flex:1;height:6px;background:var(--track)}
.gt .bar.run i{animation:gt-seg 1.6s ease-in-out infinite;animation-delay:calc(var(--n)*.12s)}
.gt .bar.slow i{background:rgba(224,184,94,.45)}
.gt .bar.fail i{background:rgba(255,127,158,.5)}
.gt .st{font:500 12px var(--mono);letter-spacing:.14em;color:var(--accent);min-height:1.6em}
.gt .st.slow{color:var(--gold)}
.gt .st.fail{color:var(--bad)}
.gt .sub{margin:0;color:var(--sub);font-size:var(--fs-md);min-height:2.6em}
.gt .act{min-height:38px}
.gt .act button{padding:9px 16px;cursor:pointer;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent)}
@keyframes gt-spin{to{transform:rotate(360deg)}}
@keyframes gt-seg{0%,100%{background:var(--track)}40%,60%{background:var(--accent)}}
@keyframes gt-scan{from{top:-140px}to{top:100%}}
@media (prefers-reduced-motion:reduce){.gt::after,.gt .em .r1,.gt .em .r2,.gt .bar.run i{animation:none}}
