dialog.global-loading-overlay {
  width: min(360px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  outline: none;
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
  box-shadow: 0 22px 60px rgba(23, 54, 79, .22);
}
.global-loading-overlay:not([open]) { display: none; }
dialog.global-loading-overlay::backdrop {
  background: rgba(23, 54, 79, .38);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
body.global-loading-lock { overflow: hidden; }
.global-loading-card { padding: 28px 24px 25px; text-align: center; }
.global-loading-moe-logo {
  display: block;
  height: clamp(46px, 11vw, 64px);
  max-width: 82%;
  object-fit: contain;
  margin: 0 auto 20px;
}
.global-loading-talent-loader {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(108px, 27vw, 138px);
  aspect-ratio: 1;
  margin: 0 auto 18px;
}
.global-loading-talent-loader::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 3px solid var(--soft);
  border-block-start-color: var(--primary);
  border-inline-end-color: var(--accent);
  border-radius: 50%;
  animation: global-loading-rotate .95s linear infinite;
}
.global-loading-talent-loader::after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid var(--line);
  border-radius: 50%;
}
.global-loading-talent-loader img { width: 68%; height: 68%; object-fit: contain; }
.global-loading-title { font-size: 18px; font-weight: 800; }
.global-loading-dots { display: inline-flex; direction: ltr; margin-inline-start: 4px; }
.global-loading-dots span { animation: global-loading-dot 1.15s ease-in-out infinite; }
.global-loading-dots span:nth-child(2) { animation-delay: .16s; }
.global-loading-dots span:nth-child(3) { animation-delay: .32s; }
.global-loading-message { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.8; }
@keyframes global-loading-rotate { to { transform: rotate(360deg); } }
@keyframes global-loading-dot { 0%,80%,100% { opacity: .3; } 40% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .global-loading-talent-loader::before, .global-loading-dots span { animation: none; }
}
@media print {
  dialog.global-loading-overlay, dialog.global-loading-overlay::backdrop { display: none !important; }
  body.global-loading-lock { overflow: visible; }
}
