html,body{
    height:100%;
    margin:0;
    font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
    background:#111;
    color:#fff;
}
main{
    display:flex;
    flex-direction:column;
    align-items:center;
    height:100%;
}

/* ゲーム画面 Wrap */
#gameContentsWrap{
    min-width: 832px;
    min-height: 482px;
    width: 832px;
    height: 482px;
    aspect-ratio:16/9;
    padding: 0;
    position:relative;
    background:#111;
}
/* その他のコンテンツ Wrap */
#otherContentsWrap{
    display:flex;
    flex-direction:column;
    align-items: center;
    width: 832px;
    padding: 30px 24px;
}

/* ゲーム画面 */
#titleScreen{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    width:100%;
    height:100%;
    padding:12px;
}
#titleScreen>div{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    width:800px;
    height:450px;
    background:#000;
    padding-bottom: 12px;
}
#gameScreen{
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-items: center;
    padding:12px;
    display:none;
    position: relative;
}
#resultScreen{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    justify-items: center;
    align-content: center;
    background:rgba(0,0,0,.7);
    color:white;
    gap: 36px;
    display:none;
    grid-template-rows: 15% 40% 10%;
    grid-auto-columns: 80%;
}
#gameOverScreen{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    justify-content:center;
    align-items:center;
    background:rgba(0,0,0,.7);
    flex-direction:column;
    color:white;
    gap:12px;
    display:none;
}
canvas{
    background:#000;
    border:4px solid #222;
    border-radius:8px;
    display: block;
}
.screen {
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}
#hud {
    position: absolute;
    align-items: center;
    top: 36px;
    left: 36px;
    width: 36%;
    height: 2.6em;
    display: grid;
    grid-template-columns:  1fr 1fr;
    background: rgba(0,0,0,0.25);
    color: white;
    font-size: 18px;
}
#hud>div {
    padding: 8px 12px;
}
.panel{
    background:#222;
    padding:8px 12px;
    border-radius:6px;
    min-width:160px;
    text-align:center;
}
button{
    padding:8px 12px;
    border-radius:6px;
    border:0;
    background:#2a8;
    color:#fff;
    cursor:pointer;
}
.small{
    font-size:13px;
    color:#ddd;
}
#startBtn{
    margin-top: 10px;
    margin-bottom: 30px;
}
.howToPlay {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
    row-gap: 6px;
    margin: 0 0 10px 0;
}
.howToPlay .howToPlayItem {
    display: flex;
    align-items: center;
    margin-bottom: 6px;
    /* font-family: "MS Gothic", "Courier New", monospace; */
    font-size: 14px;
    color: #ffffff;
}

.howToPlay .keysStyle {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 32px;
    height: 28px;
    padding: 0 6px;
    margin-right: 6px;

    font-size: 13px;
    font-weight: 600;
    line-height: 0.8em;

    color: #ffffff;
    background-color: #2b2b2b;

    border: 1px solid #c9c9c9;
    border-radius: 5px;

    box-shadow: 2px 2px 0 #000000;

    white-space: nowrap;
}
#resultScreen h1, #resultScreen h2, #resultScreen h3{
    margin:0;
}
#resultScreen>div{
    display:grid;
    align-items:center;
    gap: 10px 20px;
    width: 75%;
    height: 100%;
    grid-template-columns: 1fr 1fr;
}
#resultScreen>div:nth-child(1){
    border-bottom: white 1px solid;
    align-items: end;
    padding: 10px;
}            
#resultScreen .grid-column-2{
    grid-column-start: 2;
}
#resultScreen #resultSummary{
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
#resultScreen #resultSummary>h2{
    width: 30%;
    text-align: end;
}
#resultScreen .resultBreakdown{
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-items: end;
    gap:12px;
    width: 80%;
    height: 100%;
    padding: 12px;
}
#resultScreen .resultRow {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    margin: 0;
}
#resultScreen .coin {
    width: 16px;
    height: 16px;
    border-radius: 50%;
}
#resultScreen .enemy {
    width: 16px;
    height: 16px;
}

/* キー設定 */
#configPanel{
    display:grid;
    background:#222;
    border-radius:8px;
    width: 80%;
    padding:16px 30px;
    grid-template-columns: 1fr 4fr;
    column-gap: 16px;
    row-gap: 12px;
}
#configPanel>h3{
    margin: 0;
    padding: 8px 20px 12px 20px;
    grid-column: span 2;
    border-bottom: #555 2px double;
}
#keyConfig{
    display:flex;
    flex-direction:column;
    align-items:center;
    align-items: flex-start;
    padding: 6px;
    gap: 8px;
    border-right: #333 2px double
}

#keyConfig>label{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:8px;
}
#howToPlayClone{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    padding: 0 20px;
    column-gap: 12px;
    row-gap: 6px;
    margin: 0;
}
/* 選択されていないラベル(ゲームプレイ中のみ付与) */
.keyConfigDisabled {
    color: #777;
    opacity: 0.5; /* 透明度を下げる */
    cursor: not-allowed;
}
/* ゲームトップへ戻るボタン無効化 */
.toTitleBtnDisabled {
    background: #777;
    color: #aaa;
    opacity: 0.5; /* 透明度を下げる */
}