/* style.css — retro arcade cabinet look for Super Impostor Bros.
   The canvas itself is pixel-perfect (image-rendering: pixelated); the
   page just frames it like a CRT on a dark stand. All offline, no fonts. */

:root {
    --bg: #0b0c18;
    --frame: #1c1e33;
    --bezel: #2e3150;
    --accent: #de382c;
    --accent-2: #42c8e8;
    --text: #d7dcf5;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
    height: 100%;
    background:
        radial-gradient(1200px 600px at 50% -10%, #171a33 0%, var(--bg) 60%),
        var(--bg);
    color: var(--text);
    font-family: "Courier New", ui-monospace, monospace;
    overflow: hidden;
}

#stage {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 12px;
}

#frame {
    position: relative;
    padding: 10px;
    background: linear-gradient(180deg, var(--bezel), var(--frame));
    border-radius: 14px;
    box-shadow:
        0 0 0 2px #05060d,
        0 18px 60px rgba(0, 0, 0, 0.7),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

#game {
    display: block;
    width: min(96vw, calc((100vh - 120px) * 16 / 9));
    height: auto;
    aspect-ratio: 16 / 9;
    background: #101228;
    border-radius: 4px;
    image-rendering: pixelated;
    outline: none;
    cursor: crosshair;
}

#game:focus-visible {
    box-shadow: 0 0 0 3px var(--accent-2);
}

#controls-hint {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    justify-content: center;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #8d93b8;
}

#controls-hint span::before {
    content: "▸ ";
    color: var(--accent);
}

.noscript {
    position: absolute;
    inset: 10px;
    display: grid;
    place-items: center;
    background: rgba(8, 9, 20, 0.9);
    font-size: 18px;
    text-align: center;
    padding: 20px;
}
