* {
    margin: 0;
    padding: 0;
    transition-property: color, background-color, background-position, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

:root, html, body {
    background-color: #262626ff;
    font-family: "Lato", "Hiragino Sans", "Noto Sans JP", sans-serif;
    line-height: 1.5;
}

@supports (width: 100dvw) {
    :root, html, body {
        width: 100dvw;
        min-height: 100dvh;
    }
}
@supports not (width: 100dvw) {
    :root, html, body {
        width: 100vw;
        min-height: 100vh;
    }
}

a {
    color: inherit;
}

button {
    background-color: transparent;
}

button {
    border: 1px solid #ffffffff;
    background-image: linear-gradient(60deg, #ffffffff 50%, transparent 50%);
    background-position: 100%;
    background-size: 300%;
    transition-duration: 500ms;
    padding: 0.5rem;
    border-radius: 0.5rem;
    text-decoration: none;
}

button:is(:hover, :focus, :active) {
    color: #262626ff;
    background-position: 0%;
}

#wrapper {
    display: flex;
    position: relative;
    flex-direction: column;
    width: 100%;
    padding-top: 1.875rem;
    box-sizing: border-box;
    color: #fff;
    overflow: hidden;
}

@supports (min-height: 100dvh) {
    #wrapper {
        min-height: 100dvh;
    }
}
@supports not (min-height: 100dvh) {
    #wrapper {
        min-height: 100vh;
    }
}

#wrapper video.bg {
    position: absolute;
    left: 50%;
    top: 0;
    min-width: 100%;
    min-height: 100%;
    -webkit-transform: translate(-50%, 0);
    -moz-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
    z-index: 0;
}

main {
    width: 100%;
    margin-top: auto;
    margin-bottom: auto;
    box-sizing: border-box;
    z-index: 1;
    text-align: center;
}

@supports (padding: 5dvw) {
    main {
        padding-left: min(5dvw, 3rem);
        padding-right: min(5dvw, 3rem);
    }
}
@supports not (padding: 5dvw) {
    main {
        padding-left: min(5dvw, 3rem);
        padding-right: min(5dvw, 3rem);
    }
}

main h1 .logo {
    width: 600px;
    margin-bottom: 1rem;
}

main .outline {
    font-size: 1em;
    margin-bottom: 5px;
}

main .outline .subeana {
    display: inline-flex;
    vertical-align: baseline;
    height: 0.95rem;
    margin-right: 10px;
    margin-bottom: -0.1rem;
}

main .outline_en {
    font-size: 0.8em;
    margin-bottom: 20px;
}

.enter {
    font-size: 1.25rem;
    font-weight: 500;
}

footer {
    width: 100%;
    background-color: #00000099;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    font-size: 0.9em;
    padding-top: 1rem;
    padding-bottom: 1rem;
    z-index: 2;
    text-align: center;
    box-sizing: border-box;
}
@supports (padding: 5dvw) {
    footer {
        padding-left: min(5dvw, 1rem);
        padding-right: min(5dvw, 1rem);
    }
}

footer .footer_link {
    margin-bottom: 10px;
}

footer .footer_link a {
    padding: 0 5px;
    text-decoration: underline;
}

footer .footer_link a:hover {
    opacity: 0.8;
}
