/* Page shell for /game: full-window canvas, the UI root above it, and the boot /
   error screens shown before the UI facade takes over (client track). */
html, body {
    margin: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #11140f;
    color: #e9e5da;
    overscroll-behavior: none;
    -webkit-tap-highlight-color: transparent;
}

#game-canvas {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    display: block;
    outline: none;
    touch-action: none;
    background: #11140f;
}

/* The UI facade styles its root (.ds-ui: fixed, pointer-events none with
   interactive children opting in); nothing here overrides it. */
#ui-root {
    position: fixed;
    inset: 0;
    pointer-events: none;
}

.boot-screen {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    background: radial-gradient(ellipse at 50% 40%, #1e2419 0%, #11140f 70%);
    font-family: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
    text-align: center;
    padding: 24px;
    z-index: 50;
}

.boot-screen[hidden] { display: none; }

.boot-title {
    font-family: "Saira Stencil One", "Barlow Condensed", system-ui, sans-serif;
    font-size: clamp(40px, 8vw, 96px);
    letter-spacing: 0.06em;
    line-height: 0.9;
    margin: 0 0 12px;
    color: #e9e5da;
}

.boot-sub {
    font-size: clamp(14px, 1.6vw, 20px);
    letter-spacing: 0.24em;
    color: #9fb07a;
    margin: 0 0 28px;
}

.boot-bar {
    width: min(360px, 70vw);
    height: 4px;
    margin: 0 auto 14px;
    background: rgba(233, 229, 218, 0.12);
    overflow: hidden;
}

.boot-bar::after {
    content: "";
    display: block;
    width: 35%;
    height: 100%;
    background: #9fb07a;
    animation: boot-slide 1.4s ease-in-out infinite;
}

@keyframes boot-slide {
    from { transform: translateX(-100%); }
    to { transform: translateX(290%); }
}

@media (prefers-reduced-motion: reduce) {
    .boot-bar::after { animation: none; width: 100%; opacity: 0.5; }
}

.boot-status {
    font-size: 15px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(233, 229, 218, 0.7);
}

.boot-error-box {
    max-width: 560px;
    border-left: 4px solid #d8553a;
    background: rgba(8, 10, 7, 0.78);
    padding: 28px 32px;
    text-align: left;
}

.boot-error-box h1 {
    font-size: 30px;
    letter-spacing: 0.1em;
    margin: 0 0 10px;
}

.boot-error-box p {
    font-family: system-ui, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    margin: 0 0 20px;
    color: rgba(233, 229, 218, 0.85);
}

.boot-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.boot-btn {
    font: 700 16px "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
    letter-spacing: 0.14em;
    padding: 10px 20px;
    border: 1px solid #9fb07a;
    background: #9fb07a;
    color: #11140f;
    cursor: pointer;
    text-decoration: none;
}

.boot-btn.secondary { background: transparent; color: #e9e5da; border-color: rgba(233, 229, 218, 0.4); }
.boot-btn[hidden] { display: none; }
