/* 글꼴·표·로딩(A04). 첫 화면과 로그인 화면이 함께 쓴다. 글꼴은 저장소 안(web/fonts, Pretendard 1.3.9 OFL-1.1) — 바깥 요청 없음 */
@font-face { font-family: "Pretendard"; font-weight: 400; font-display: swap; src: url("/fonts/Pretendard-Regular.subset.woff2?v=X0c2RVEdS9qF") format("woff2"); }
@font-face { font-family: "Pretendard"; font-weight: 600; font-display: swap; src: url("/fonts/Pretendard-SemiBold.subset.woff2?v=2uYLJ-XOWoaC") format("woff2"); }
@font-face { font-family: "Pretendard"; font-weight: 700; font-display: swap; src: url("/fonts/Pretendard-Bold.subset.woff2?v=LRzUHfZAOec3") format("woff2"); }
/* 로딩 표: 로고의 고리가 돈다. 움직임을 줄이라는 설정이면 멈추고 글만 */
.loader { display: flex; gap: 10px; align-items: center; justify-content: center; padding: 48px 0; color: var(--muted); font-size: 13px; }
.loader svg { width: 28px; height: 28px; }
.loader .ring { transform-origin: 32px 32px; animation: argus-spin 0.9s linear infinite; }
.loader .dot { animation: argus-pulse 1.4s ease-in-out infinite; transform-origin: 32px 32px; }
@keyframes argus-spin { to { transform: rotate(360deg); } }
@keyframes argus-pulse { 50% { transform: scale(0.7); } }
.progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 50; overflow: hidden; pointer-events: none; }
.progress::before { content: ""; position: absolute; top: 0; left: -40%; width: 40%; height: 100%; background: var(--text); animation: argus-bar 1s ease-in-out infinite; }
@keyframes argus-bar { to { left: 100%; } }
@media (prefers-reduced-motion: reduce) {
  .loader .ring, .loader .dot { animation: none; }
  .progress::before { animation: none; left: 0; width: 100%; opacity: .5; }
}
