:root{--anger-title-color:#c9010d;--anger-title-dim-color:#390004;--anger-screen-fade-duration:1s;--striped-texture-background-color:rgba(0,0,0,.8);--game-message-background:var(--striped-texture-background-color) url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAj0lEQVRogd3TwQnAMAwEwU3IS/03lKb8DGnCYBhVoIHbq3oD7j79wK57ZobAOJC11nf6iR3HQIhZldQIA1EaYSDErEpqhIEojTAQYlYlNcJAlEYYCDGrkhphIEojDISYVUmNMBClEQZCzKqkRhiI0ggDIWZVUiMMRGmEgRCzKqkRBqI0wkCIWZXUCANRGvkBgX1NkyPL25EAAAAASUVORK5CYII=') repeat}
#game-shell[hidden]{display:none}
/* Loading uses the same 20px image as the Create button without changing layout */
img.image-loading,canvas.image-loading{object-position:-100000px -100000px!important;background:url('/assets/loading.gif') center/20px 20px no-repeat!important;color:transparent}
.image-loading:not(img):not(canvas){position:relative}
.image-loading:not(img):not(canvas)::after{content:'';position:absolute;inset:0;pointer-events:none;background:url('/assets/loading.gif') center/20px 20px no-repeat;z-index:1}
#boot-overlay{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:800px;height:520px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;background:#000;border:0;z-index:100;color:#f3442c;font:12px Arial,sans-serif}
#boot-overlay>b{display:block;flex-shrink:0;height:80px;padding:12px 0 0;transform:translateY(-20px);font:400 54px/68px 'Blood',sans-serif;letter-spacing:2px;white-space:nowrap;user-select:none;-webkit-user-select:none;color:var(--anger-title-color);animation:boot-title-appear 1s ease-out both}
#boot-overlay>b>span,#auth-title>span{display:inline-block;animation:boot-letter-dim 2.5s ease-in-out infinite;animation-delay:calc(var(--letter)*.1s)}
@keyframes boot-letter-dim{0%,30%,100%{color:var(--anger-title-color)}15%{color:var(--anger-title-dim-color)}}
@keyframes boot-title-appear{from{opacity:0}to{opacity:1}}
#boot-progress{margin-top:0;transform:translateY(-20px);font-size:14px;text-align:center;color:rgb(120,120,120);animation:boot-title-appear 1s ease-out both}
#boot-progress.failed{color:var(--anger-title-color)}
#loading-overlay.interface-loading{z-index:60;background:#000}
#game-error-layer{position:absolute;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:transparent;cursor:default}
#game-error-layer.hidden{display:none}
#game-shell #game-error-dialog{box-shadow:inset 0 0 0 1px #000,0 0 8px rgba(0,0,0,.6)}
#game-error-layer.fatal{background:#000}
#game-error-layer.fatal #game-error-dialog{background:var(--game-message-background);border:0;box-shadow:none}
#game-error-layer.fatal .game-error-actions{display:none}
/* Keep the shared error texture available when the connection has already failed */
#game-error-dialog{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:8px;box-sizing:border-box;width:160px;max-width:100%;max-height:100%;overflow:auto;padding:8px;background:var(--game-message-background);border:0;box-shadow:inset 0 0 0 1px #000,0 0 8px rgba(0,0,0,.6);color:rgb(220,220,220);font:11px/16px Arial,sans-serif;text-align:center}
#game-error-dialog .game-error-message{display:grid;width:100%;min-width:0}
#game-error-text,#game-error-description{grid-area:1/1;width:100%;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}
#game-error-text::after,#game-error-description::after{content:'';display:inline-block;width:.55em;height:1em;vertical-align:text-bottom;background:currentColor}
#game-error-text::after{animation:loading-cursor-blink .6s linear infinite}
@keyframes loading-cursor-blink{0%,100%{opacity:1}50%{opacity:0}}
#game-error-description{opacity:0;pointer-events:none;user-select:none}
.game-error-actions{display:flex;justify-content:center;gap:8px;width:100%}
#game-error-ok,#game-error-cancel{flex:0 0 80px;width:80px;height:22px;min-height:22px;max-height:22px;padding:0 8px;font:11px/22px Arial,sans-serif}
#game-error-layer.confirmation .game-error-actions button{flex:1 1 0;width:0;min-width:0}
#game-error-ok[hidden],#game-error-cancel[hidden]{display:none!important}
