.webgl-failure{
    position:fixed;
    inset:0;
    width:100%;
    height:100dvh;
    max-width:none;
    max-height:none;
    margin:0;
    padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
    border:0;
    background:#08100c;
    color:#fff6e8;
    overflow-y:auto;
    overscroll-behavior:contain;
    font:1rem/1.55 system-ui,sans-serif;
}
.webgl-failure:not([open]){ display:none; }
.webgl-failure[open]{ display:flex; }
.webgl-failure::backdrop{ background:#08100c; }
.webgl-failure-content{ width:min(100%,640px); margin:auto; overflow-wrap:anywhere; }
.webgl-failure-icon{ width:56px; height:56px; margin-bottom:12px; color:#ffc33c; }
.webgl-failure-kicker{ color:#c8c5b8; font-size:.8125rem; margin-bottom:8px; }
.webgl-failure h1{ font-size:clamp(1.5rem,4vw,2.125rem); line-height:1.2; font-weight:650; margin-bottom:16px; }
.webgl-failure h2{ font-size:1rem; margin:24px 0 12px; }
.webgl-failure ol{ padding-left:1.5em; color:#d8d7cc; }
.webgl-failure li + li{ margin-top:10px; }
.webgl-failure-links,.webgl-failure-actions{ display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:24px; }
.webgl-failure a{ color:#ffc33c; text-underline-offset:3px; }
.webgl-failure-actions{ gap:12px; }
.webgl-failure button{
    min-height:48px; padding:12px 20px; border:1px solid #607668; border-radius:14px;
    background:#173f32; color:#fff6e8; font:600 1rem/1.3 system-ui,sans-serif; cursor:pointer;
}
#webglOpenGallery{ background:transparent; }
.webgl-failure-note{ color:#c8c5b8; font-size:.8125rem; margin-top:16px; }
.webgl-failure a:focus-visible,.webgl-failure button:focus-visible{ outline:2px solid #ffc33c; outline-offset:4px; }
.webgl-failure h1:focus{ outline:none; }
#app[data-webgl-unavailable="true"] #mapPreview .mini-map-loader,
#app[data-webgl-unavailable="true"] #mapPreview #miniMapIndicator,
#app[data-webgl-unavailable="true"] #mapPreview #miniMapSnapshot,
#app[data-webgl-unavailable="true"] #mapPreview #miniMapSnapshotIncoming{ display:none; }
.webgl-preview-note{
    position:absolute; inset:0; display:grid; place-items:center; padding:10px;
    color:#c8c5b8; background:#111713; font:.75rem/1.35 system-ui,sans-serif;
    text-align:center; pointer-events:none;
}
.gallery-preview-loading{
    position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:8px;
    padding:8px; background:#111713; color:#c8c5b8; font:.75rem/1.3 system-ui,sans-serif; text-align:center;
}
.gallery-preview-spinner{
    display:block; width:28px; height:28px; border:2px solid rgba(255,246,232,.18);
    border-top-color:#ffc33c; border-radius:50%; animation:tkcz-photo-wait .85s linear infinite;
}
#galleryMiniContent.has-camp #galleryMiniEmpty{ display:none; }
#galleryMiniContent.is-error .gallery-preview-spinner{ display:none; }
@keyframes tkcz-photo-wait{ to{ transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce){ .gallery-preview-spinner{ animation:none; } }
