:root {
    color: #17242a;
    background: #0e1920;
    font-family: "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}

* {
    box-sizing: border-box;
}

html,
body,
#root {
    width: 100%;
    min-width: 0;
    min-height: 100%;
    margin: 0;
}

body {
    min-height: 100vh;
    overflow: auto;
}

button,
input,
select {
    font: inherit;
}

.app-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 32px;
    background:
        linear-gradient(rgb(255 255 255 / 2%) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / 2%) 1px, transparent 1px),
        #0e1920;
    background-size: 24px 24px;
}

.game-stage {
    width: min(960px, calc(100vw - 64px));
}

.game-stage__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 12px;
}

.game-stage__title {
    margin: 0;
    font-size: 24px;
    letter-spacing: 0.08em;
}

.game-stage__status {
    margin: 0;
    color: #b8c1ae;
    font-size: 14px;
}

.game-frame {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border: 4px solid #70644d;
    background: #242824;
    box-shadow: 0 20px 60px rgb(0 0 0 / 35%);
}

#game-container {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #111d26;
}

#game-container canvas {
    display: block;
    max-width: 100%;
    max-height: 100%;
    image-rendering: pixelated;
}

.ht-office-game {
    width: 100%;
    height: 100%;
    position: relative;
    background: #111d26;
}

.ht-office-notice {
    position: absolute;
    z-index: 3;
    right: 12px;
    bottom: 12px;
    left: 12px;
    padding: 8px 10px;
    border: 1px solid #17242a;
    color: #17242a;
    background: rgb(245 240 230 / 94%);
    box-shadow: 2px 2px 0 rgb(14 25 32 / 52%);
    font-size: 12px;
    font-weight: 800;
}
