* {
    box-sizing: border-box;
}

html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow-x: hidden; /* Prevent horizontal scrolling */
}

body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 0;
    font-family: 'VT323', monospace;
    color: rgb(230, 230, 230);
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow-x: hidden; /* Prevent horizontal scrolling */
}

.container {
    /* width: 854px; */
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    /* gap: 64px; */
}

canvas {
    /* width: 768px; */
    width: 720px;
    height: 384px;
    /* image-rendering: pixelated; */
    border: 2px solid #E7D63F;
}

/* Global */

h1 {
    font-size: 100px;
    font-family: 'Arial', sans-serif;
    color: #e7d63f;
    margin: 0;
    text-shadow: -9px -7px 2px #3b3b3b;
}

.d-none {
    display: none !important;
}

.d-flex {
    display: flex !important;
}

.d-block {
    display: block !important;
}

.hd_rendering {
    image-rendering: pixelated;
}

.hyperlink {
    text-decoration: none;
    color: unset;
}

.hyperlink:hover {
    transform: scale(1.05);
    cursor: crosshair;
    filter: drop-shadow(1px 0 10px #FC0);
}

.icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    height: 32px;
    object-fit: contain;
    margin-right: 8px;
}

/* Backgrounds */
.animated_background {
    background-image: url('../assets/img/main_bgr.gif');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.static_background {
    background-color: rgba(15, 15, 15, 0.156);
}

/* Header */
#header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    margin: 24px 0 24px 0;
}

#headline_logo {
    width: 480px;
    text-align: center;
    margin-top: 64px;
}

.headline_submenu {
    width: 640px;
    text-align: center;
    margin-top: 40px;
    display: flex;
    justify-content: center;
    font-size: 48px;
}

/* Menu */
.menu_content_container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    text-align: center;
}

.control_menu_icons {
    display: flex;
    justify-content: center;
    align-items: center;
    object-fit: contain;
    width: 32px;
    height: 32px;
    opacity: inherit;
}

.submenu_container {
    z-index: 50;
    width: 768px;
    height: 384px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    font-size: 32px;
    gap: 16px;
}

/* Mobile Controls */
.control_keys_container {
    display: flex;
    justify-content: center;
    width: 100%;
    gap: 16px;
}

/* Character Select Page*/
.character_select_container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.character_select_img_container {
    display: flex;
    justify-content: center;
    align-items: center;
}

.character_select_img {
    width: auto;
    height: 240px;
    object-fit: contain;
}

.character_select_img:hover {
    filter: drop-shadow(0 0 0.75rem #FC0);
    transform: scale(1.1);
    cursor: crosshair;
}

/* Navbar */
.navbar {
    /* position: absolute; */
    z-index: 90;
    /* top: 24px; */
    display: flex;
    justify-content: space-between;
    align-content: center;
    width: 100%;
    padding: 8px 16px;
}

.navbar_buttons_container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
}

#navbar_logo {
    display: flex;
    justify-content: center;
    align-items: center;
    object-fit: contain;
    height: 100%;
    width: 180px;
}

.nav_button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    height: 32px;
    object-fit: contain;
}

.nav_button:hover {
    transform: scale(1.05);
    cursor: crosshair;
    filter: drop-shadow(1px 0 10px #FC0);
}

/* Startscreen */
#headline_startscreen {
    width: 280px;
    margin-bottom: 72px;
}

.startscreen_buttons_container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
}

.startscreen_button {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    font-size: 64px;
    font-style: normal;
    font-weight: 400;
}

.startscreen_button_arrow {
    visibility: hidden;
}

.startscreen_button:hover .startscreen_button_arrow {
    visibility: visible;
}

.startscreen_button:hover {
    transform: scale(1.05);
    cursor: crosshair;
    text-shadow: #FC0 1px 0 10px;
    font-weight: 700;
}

/* Back Button */
.back_button::before {
    content: "<Back to Menu>";
}

.back_button {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
}

.back_button:hover {
    transform: scale(1.05);
    cursor: crosshair;
    text-shadow: #FC0 1px 0 10px;
    font-weight: 700;
}

/* Rotate Device */
.rotate_text {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 32px;
    margin: 24px 0;
}

.rotate_device_container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: center;
    gap: 64px;
}

#rotate_device {
    display: none;
    position: absolute;
    top: 0;
    z-index: 100;
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
    background-color: #1a1a1a;
}

#rotate_img {
    transform: rotate(45deg);
    width: 210px;
    object-fit: contain;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}

.credits {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Settings Buttons */
.settings_button_container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
}

.settings_button_container:hover {
    transform: scale(1.05);
    cursor: crosshair;
    filter: drop-shadow(1px 0 10px #FC0);
}

.settings_icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    height: 32px;
    object-fit: contain;
}

/* New Game Button */
.newgame_button_container {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

#newgame_button_inner_container {
    display: flex;
    justify-content: center;
    align-items: flex-end;
}

.newgame_button_inner_container_fullscreen_off {
    width: 720px;
    height: 384px;
}

.newgame_button_inner_container_fullscreen_on {
    width: 100%;
    height: 100%;
}

.newgame_button_fullscreen_off {
    width: auto;
    height: 50px;
}

.newgame_button_fullscreen_on {
    width: auto;
    height: 10%;
}

#newgame_button {
    z-index: 90;
    display: flex;
    justify-content: center;
    align-items: center;
    object-fit: contain;
    margin-bottom: 15%;
}

#newgame_button:hover {
    cursor: crosshair;
}