.map-entrance-warpper {
    padding-top: clamp(40px, 12vw, 100px);
    padding-bottom: clamp(40px, 12vw, 100px);
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: 40%;
}

.map-entrance-warpper.rail-background {
    background-image: url(./resources/images/map_entrance_background_rail_alt.webp);
}

.map-entrance-warpper.rail-background:hover {
    background-image: url(./resources/images/map_entrance_background_rail.webp);
}

.map-entrance-warpper.night-background {
    background-image: url(./resources/images/map_entrance_background_night_alt.webp);
}

.map-entrance-warpper.night-background:hover {
    background-image: url(./resources/images/map_entrance_background_night.webp);
}

.map-entrance-warpper.brt-background {
    background-image: url(./resources/images/map_entrance_background_brt_alt.webp);
}

.map-entrance-warpper.brt-background:hover {
    background-image: url(./resources/images/map_entrance_background_brt.webp);
}

.map-entrance-warpper:hover .map-entrance {
    font-weight: bold;
    text-shadow: 2px 2px 5px white;
}

.map-entrance {
    text-align: center;
    color: var(--menu-color);
    font-size: var(--map-entrance-size);
    text-decoration: none;
    padding-left: 40px;
}

.map-entrance-background {
    display: block;
    height: auto;
    max-width: 100%;
    opacity: 0.5;
}

.map-entrance-background:hover {
    opacity: 1;
}

.menu {
    text-align: center;
    color: var(--menu-color);
    font-size: var(--menu-size);
    text-decoration: none;
    padding-left: 40px;
    height: auto;
    max-width: 100%;
}

.menu:hover {
    font-weight: bold;
}

.title {
    font-size: var(--title-size);
    font-weight: bold;
    padding-left: 40px;
    color: var(--title-color);
    line-height: 1;
}

.title-alt {
    font-size: var(--title-size);
    padding-left: 40px;
    font-weight: normal;
    color: var(--title-color-alt);
    line-height: 1;
}

.title-wrapper {
    background-color: var(--background-color);
    background-size: auto;
    padding-top: 10px;
    padding-bottom: 20px;
}

.title-img {
    display: inline-block;
    height: auto;
    max-width: 100%;
}

.background {
    background-color: var(--background-color);
    background-size: auto;
}

.map {
    display: block;
    height: auto;
    max-width: 100%;
    min-width: 100%;
    padding-top: 20px;
    text-align: center;
}

span.author {
    font-size: 24px;
    color: #808080;
}

span.text {
    font-size: 18px;
    color: #808080;
}

span.name {
    font-size: 24px;
    color: #000000;
}

span.little-title {
    font-size: 28px;
    color: #808080;
    font-weight: bold;
}

a:link {
    text-decoration: none;
}

p.info {
    padding-left: 40px;
    text-align: left;
}

ul {
    list-style: none;
}

img.qrcode {
    display: none;
}

li.wechat:hover .qrcode,
li.wechat:focus-within .qrcode {
    display: block;
}

.link {
    font-size: 24px;
    color: rgb(27, 53, 109);
}

.link:hover {
    font-weight: bold;
}

.sk-wave {
    width: var(--sk-size);
    height: var(--sk-size);
    display: flex;
    justify-content: space-between;
}

.sk-wave-rect {
    background-color: var(--sk-color);
    height: 100%;
    width: 15%;
    animation: sk-wave 1.2s infinite ease-in-out;
}

.sk-wave-rect:nth-child(1) {
    animation-delay: -1.2s;
}

.sk-wave-rect:nth-child(2) {
    animation-delay: -1.1s;
}

.sk-wave-rect:nth-child(3) {
    animation-delay: -1.0s;
}

.sk-wave-rect:nth-child(4) {
    animation-delay: -0.9s;
}

.sk-wave-rect:nth-child(5) {
    animation-delay: -0.8s;
}

@keyframes sk-wave {

    0%,
    40%,
    100% {
        transform: scaleY(0.4);
    }

    20% {
        transform: scaleY(1);
    }
}

.loading-anim {
    padding-left: 50%;
    padding-right: 50%;
    padding-top: 20px;
    padding-bottom: 20px;
}

.loading-text {
    font-size: var(--loading-text-size);
    color: #808080;
}

.loading-text-container {
    height: var(--loading-text-size);
}

:root {
    --title-color: #000000;
    --title-color-alt: #808080;
    --menu-color: #04382f;
    --sk-color: #04382f;
    --sk-size: 40px;
    --menu-size: clamp(20px, 5vw, 36px);
    --background-color: #F8F8F8;
    --background-color-hover: #F8F8F8;
    --title-size: clamp(32px, 8vw, 60px);
    --map-entrance-size: clamp(24px, 6vw, 48px);
    --map-entrance-radius: 10px;
    --map-entrance-width: 5px;
    --loading-text-size: clamp(16px, 3vw, 24px);
}

@media (max-width: 600px) {
    .title,
    .title-alt,
    .menu,
    .map-entrance {
        padding-left: 16px;
    }

    p.info {
        padding-left: 16px;
    }

    span.author,
    span.name,
    .link {
        font-size: 18px;
    }

    span.text {
        font-size: 16px;
    }

    span.little-title {
        font-size: 22px;
    }

    .loading-anim {
        padding-left: 0;
        padding-right: 0;
    }
}