/* Opaque brass loading screen; no legacy menu can show through it. */
#nightfall-loading[hidden]{display:none!important}
#nightfall-loading{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 35%,#122c3b,#07111b 72%);background-color:#07111b;color:#f2deae;font:14px/1.5 Georgia,serif;box-sizing:border-box;touch-action:manipulation}
#nightfall-loading *{box-sizing:border-box}
.nightfall-loading-panel{position:relative;width:min(520px,100%);min-width:0;padding:32px 34px;border:12px solid #ad8952;border-image:url('/nightfall/assets/ui-brass/assets/slices__navigation-plate.webp') 11 18 fill / 16px 26px stretch;background:#0d1c28;box-shadow:0 24px 90px #0009,inset 0 0 24px #0005}
.nightfall-loading-brand{text-align:center;font-weight:700;font-size:12px;letter-spacing:3px;color:#c4a56b;margin:0 0 16px}
#nightfall-loading-title{text-align:center;font-size:clamp(24px,4vw,32px);font-weight:700;line-height:1.15;margin:0 0 20px;color:#f2deae}
#nightfall-loading-label{font-size:14px;min-height:22px;margin:0 0 12px;overflow-wrap:anywhere;color:#c6c6b7}
.nightfall-loading-meter{display:flex;align-items:center;gap:14px}
#nightfall-loading-progress{appearance:none;flex:1;min-width:0;width:100%;height:17px;accent-color:#dfb966;border:2px solid #a78b53;background:#08141d;box-shadow:0 0 0 2px #020a0d,inset 0 0 6px #000a}
#nightfall-loading-percent{flex:none;min-width:44px;text-align:right;color:#f3d793;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
#nightfall-loading-progress::-webkit-progress-bar{background:linear-gradient(#07111a,#182630)}
#nightfall-loading-progress::-webkit-progress-value{background:linear-gradient(#f6e1a4,#d8af5e 48%,#95733c);box-shadow:0 0 12px #f1c97a66}
#nightfall-loading-progress::-moz-progress-bar{background:linear-gradient(#f6e1a4,#d8af5e 48%,#95733c)}
#nightfall-loading-detail{font:12px/1.4 system-ui,sans-serif;color:#aebcc2;min-height:18px;margin:12px 0 0;overflow-wrap:anywhere}
.nightfall-loading-actions{display:flex;gap:10px;margin-top:22px}
.nightfall-loading-actions[hidden],.nightfall-loading-actions button[hidden]{display:none!important}
.nightfall-loading-actions button{flex:1;min-width:0;min-height:48px;padding:9px 12px;border:10px solid #a78b53;border-image:url('/nightfall/assets/ui-brass/assets/slices__navigation-plate.webp') 11 18 fill / 12px 18px stretch;background:#10202a;color:#f2deae;font:700 16px/1.2 Georgia,serif;cursor:pointer}
.nightfall-loading-actions button:focus-visible{outline:2px solid #ffe2a3;outline-offset:3px}
#nightfall-loading[data-error=true] #nightfall-loading-title{color:#f2bc8d}
/* Keep real business handlers, but suppress the retired presentation at first
   paint and exclude it from the visible-image loading discovery. */
body[data-brass-document]>:is(header,main,footer){visibility:hidden!important;pointer-events:none!important}
body[data-brass-game]:not(.playing) #app>:is(header,#menu),body[data-brass-game]:not(.playing) #app>.screen-frame:has(#menu){visibility:hidden!important;pointer-events:none!important}
@media(max-width:440px){.nightfall-loading-panel{padding:26px 18px;border-width:10px}.nightfall-loading-brand{font-size:10px;letter-spacing:2px}}
@media(max-height:400px){.nightfall-loading-panel{padding:16px 24px}.nightfall-loading-brand{margin-bottom:8px}#nightfall-loading-title{font-size:24px;margin-bottom:12px}#nightfall-loading-label{margin-bottom:8px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}#nightfall-loading-detail{margin-top:8px}.nightfall-loading-actions{margin-top:14px}}

/* Clip the plate to its actual bevel: border-image fill must never leak into
   the transparent corner triangles. The cut follows the alpha bevel inside each 26×16 image corner. */
.nightfall-loading-panel,.nightfall-loading-actions button{clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 14px),0 14px)}
.nightfall-loading-actions button{clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 10px),0 10px)}

/* Cached menu transitions do not flash the full boot dialog. Slow loads still show real progress. */
#nightfall-loading.loading-transition .nightfall-loading-panel{width:min(360px,85vw);padding:16px 22px;animation:menu-loader-reveal .15s .35s both}
#nightfall-loading.loading-transition{place-items:end center;padding-bottom:24px}
#nightfall-loading.loading-transition .nightfall-loading-brand,#nightfall-loading.loading-transition #nightfall-loading-detail{display:none}
#nightfall-loading.loading-transition #nightfall-loading-title{font-size:19px;margin-bottom:8px}
#nightfall-loading.loading-transition #nightfall-loading-label{font-size:12px;margin-bottom:6px}
#nightfall-loading.loading-transition #nightfall-loading-progress{height:10px}
#nightfall-loading.loading-transition #nightfall-loading-percent{font-size:14px}
@keyframes menu-loader-reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
