#ra2web-root .game-res-notice { display: none; }

#ra2web-root .game-res-box.message-box .message-box-content .link-field label {
    cursor: text;
}

#ra2web-root .game-res-box.message-box .close-button {
    padding: 0;
    border: 0;
    background-color: transparent;
}

#ra2web-root .game-res-box.message-box .message-box-content .dialog-button:focus-visible,
#ra2web-root .game-res-box.message-box .close-button:focus-visible,
#ra2web-root .game-res-box.message-box .message-box-content input:focus-visible {
    outline: 2px solid yellow;
    outline-offset: 2px;
}

@media (max-width: 799px), (max-width: 1023px) and (max-height: 599px), (pointer: coarse) {
    #ra2web-root .game-res-box.message-box .close-button {
        box-sizing: border-box;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 0;
        background-color: transparent;
        background-position: center;
        background-repeat: no-repeat;
        top: max(8px, env(safe-area-inset-top));
    }

    #ra2web-root .game-res-box.message-box .message-box-content {
        padding: 12px 16px max(20px, env(safe-area-inset-bottom));
    }

    #ra2web-root .game-res-box.message-box .message-box-content .game-res-form {
        font-size: 16px;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .title,
    #ra2web-root .game-res-box.message-box .message-box-content .drop-container .desc,
    #ra2web-root .game-res-box.message-box .message-box-content em {
        font-size: 16px;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .language-select label {
        flex-wrap: wrap;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .language-select select {
        font-size: 16px;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .link-container .link-field {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        margin: 16px 0 12px;
        text-align: left;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .link-container .link-field input {
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        min-height: 44px;
        height: auto;
        margin: 0;
        padding: 10px 12px;
        font-size: 16px;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .download-button,
    #ra2web-root .game-res-box.message-box .message-box-content .browse-buttons {
        margin: 10px 0;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .browse-buttons {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .dialog-button {
        box-sizing: border-box;
        width: 100%;
        min-height: 44px;
        height: auto;
        margin: 0;
        padding: 10px 12px;
        font-size: 16px;
        line-height: 1.3;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .browse-buttons .dialog-button:first-child {
        margin-right: 0;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .drop-container {
        padding: 8px;
        background-size: 110px auto;
        background-position: center 86px;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .drop-container .drop-figures {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: clamp(4px, 2vw, 12px);
        height: auto;
        margin: 0 0 28px;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .drop-container .drop-figures * {
        display: block;
        width: clamp(40px, 15vw, 64px);
        height: auto;
        margin: 0;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .drop-container .desc {
        margin: 8px 0;
        line-height: 1.35;
    }

    #ra2web-root .game-res-box.message-box .message-box-content .browse-container .archive-formats {
        line-height: 1.4;
    }
}

@media (max-width: 640px) {
    #ra2web-root .game-res-box.message-box {
        width: 100%;
        height: 100%;
        max-height: 100%;
        overflow-x: hidden;
        overscroll-behavior: contain;
    }

    #ra2web-root .game-res-box.message-box .message-box-content {
        padding-top: max(12px, env(safe-area-inset-top));
    }
}

@media (max-width: 799px), (max-width: 1023px) and (max-height: 599px), (pointer: coarse) {
    #ra2web-root .game-res-notice {
        display: block;
        margin-top: 24px;
        color: #bbb;
        font-size: 14px;
        line-height: 1.5;
        white-space: pre-line;
        text-align: left;
    }
}

#ra2web-root .game-entry-box.message-box {
    width: 100%; height: 100%; max-height: 100%; margin: 0; border: 0;
    background: #101011; color: #f7eee1; text-align: center;
}
#ra2web-root .game-entry-box.message-box .message-box-content { padding: 0; min-height: 100%; }
#ra2web-root .game-entry-box .message-box-footer { display: none; }
#ra2web-root .game-entry {
    box-sizing: border-box;
    min-height: 100vh; min-height: 100dvh;
    display: grid; grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto minmax(220px, 1fr) auto; gap: 20px;
    padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    background: linear-gradient(160deg, #1b1112, #0c090a 65%);
}
#ra2web-root .game-entry-art {
    display: block; width: 100%; max-width: 800px; height: auto;
    aspect-ratio: 4 / 3; object-fit: contain; justify-self: center; align-self: center;
}
#ra2web-root .game-entry-header {
    grid-column: 1 / -1; display: flex; justify-content: space-between;
    align-items: center; gap: 16px;
}
#ra2web-root .game-entry-brand { font-size: 14px; letter-spacing: .06em; }
#ra2web-root .game-entry .language-select { margin: 0; color: #efe5d5; }
#ra2web-root .game-entry .language-select label { display: flex; align-items: center; gap: 10px; }
#ra2web-root .game-entry .language-select p { display: none; }
#ra2web-root .game-entry .language-select select {
    min-height: 48px; max-width: 180px; padding: 8px 12px; border: 1px solid #cbb58b80;
    background: #111c; color: #fff5e5; border-radius: 2px; font-size: 16px;
}
#ra2web-root .game-entry-center { min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px 0; }
#ra2web-root .game-entry-subtitle { font-size: 14px; line-height: 1.5; margin: 8px 0 24px; color: #d9c6a3; }
#ra2web-root .game-entry h1 {
    font-family: inherit; font-weight: bold; font-size: clamp(36px, 4.5vw, 64px);
    line-height: 1.05; letter-spacing: 0; text-transform: none; overflow-wrap: anywhere;
    max-width: 100%; margin: 0; text-shadow: 0 4px 25px #000;
}
#ra2web-root .game-entry form { width: min(100%, 300px); }
#ra2web-root .game-entry-play {
    box-sizing: border-box; width: 100%; min-height: 56px; padding: 14px 24px;
    background: #911f1c; border: 1px solid #dca665; border-radius: 2px;
    color: #fff5e4; font: inherit; font-size: 20px; line-height: 1.4;
    cursor: pointer; box-shadow: 0 8px 32px #0006;
}
#ra2web-root .game-entry-play:hover:not(:disabled) { background: #b32c26; }
#ra2web-root .game-entry-play:disabled { cursor: wait; opacity: .7; }
#ra2web-root .game-entry :focus-visible { outline: 3px solid #ffe7a4; outline-offset: 4px; }
#ra2web-root .game-entry-status { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; width: min(100%, 300px); margin-top: 24px; font-size: 14px; line-height: 1.5; }
#ra2web-root .game-entry-eta { width: 100%; color: #d9c6a3; font-variant-numeric: tabular-nums; }
#ra2web-root .game-entry-spinner { width: 15px; height: 15px; border: 2px solid #eee5; border-top-color: #f5d3a2; border-radius: 50%; animation: entry-spin 1s linear infinite; }
#ra2web-root .game-entry-progress { width: 100%; display: flex; align-items: center; gap: 12px; font-variant-numeric: tabular-nums; }
#ra2web-root .game-entry progress { width: 100%; height: 8px; accent-color: #d7ae75; }
#ra2web-root .game-entry-footer { grid-column: 1 / -1; max-width: 760px; justify-self: center; align-self: end; font-size: 12px; line-height: 1.7; color: #d1c7bc; overflow-wrap: anywhere; }
#ra2web-root .game-entry-note { margin: 0; }
#ra2web-root .game-entry-disclaimer { margin: 12px 0 0; white-space: pre-line; }
@keyframes entry-spin { to { transform: rotate(360deg); } }
@media (max-width: 480px) {
    #ra2web-root .game-entry .language-select .label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    #ra2web-root .game-entry h1 { font-size: clamp(36px, 10vw, 48px); }
}
@media (min-width: 900px), (min-width: 600px) and (orientation: landscape) {
    #ra2web-root .game-entry {
        grid-template-columns: minmax(0, 1.4fr) minmax(260px, 1fr);
        grid-template-rows: auto minmax(220px, 1fr) auto;
        column-gap: 32px;
    }
}
@media (max-height: 480px) and (min-width: 600px) {
    #ra2web-root .game-entry { gap: 16px; }
    #ra2web-root .game-entry h1 { font-size: 36px; }
    #ra2web-root .game-entry-center { padding: 12px 0; }
}
@media (prefers-reduced-motion: reduce) {
    #ra2web-root .game-entry-spinner { animation: none; }
}
