/* 副本加载进度条 (js/dungeon-loader.js) */
.dg-loader{position:fixed;inset:0;z-index:2147483200;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 50% 40%,rgba(36,30,72,.55),rgba(12,10,28,.82));backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);touch-action:none;user-select:none;-webkit-user-select:none;cursor:progress;animation:dgl-in .2s ease-out}
.dg-loader.out{opacity:0;transition:opacity .25s ease}
body.dg-loading-lock{overflow:hidden}
.dgl-card{width:min(440px,100%);padding:22px 22px 18px;border:4px solid #2b1d14;border-radius:26px;background:linear-gradient(160deg,#fffaf0,#fff0cf);box-shadow:0 6px 0 #2b1d14,0 18px 40px rgba(0,0,0,.35);text-align:center;color:#2b1d14;cursor:default}
.dgl-star{font-size:34px;line-height:1;color:#f0a92e;text-shadow:0 2px 0 #2b1d14;animation:dgl-spin 2.4s linear infinite;display:inline-block}
.dgl-card h2{margin:8px 0 4px;font:800 22px/1.3 "ZCOOL KuaiLe","Noto Sans SC",system-ui,sans-serif}
.dgl-hint{margin:0 0 14px;font:700 14px/1.5 "Noto Sans SC",system-ui,sans-serif;color:#6b5a40}
.dgl-track{height:22px;border:3px solid #2b1d14;border-radius:999px;background:#fff;overflow:hidden;box-shadow:inset 0 2px 0 rgba(0,0,0,.08)}
.dgl-fill{width:0;height:100%;border-radius:999px;background:repeating-linear-gradient(-45deg,#ffcf4a 0 12px,#ffbd2e 12px 24px);background-size:34px 34px;animation:dgl-stripe .9s linear infinite;transition:width .15s linear}
.dgl-line{display:flex;justify-content:space-between;gap:10px;margin:8px 2px 0;font:700 14px/1.4 "Noto Sans SC",system-ui,sans-serif}
.dgl-step{text-align:left;color:#5b4d3a}
.dgl-pct{font-variant-numeric:tabular-nums}
.dgl-slow{margin-top:14px;padding-top:12px;border-top:2px dashed #e4d3b4}
.dgl-slow p{margin:0 0 10px;font:700 14px/1.5 "Noto Sans SC",system-ui,sans-serif}
.dgl-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.dgl-actions button{min-height:48px;min-width:110px}
@keyframes dgl-in{from{opacity:0}}
@keyframes dgl-spin{to{transform:rotate(360deg)}}
@keyframes dgl-stripe{to{background-position:34px 0}}
@media (prefers-reduced-motion:reduce){.dgl-star,.dgl-fill{animation:none}.dg-loader{animation:none}}
