html,
body {
    min-height: 100%;
    margin: 0;
    padding: 0;
}

html {
    -webkit-text-size-adjust: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

body {
    min-width: 320px;
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

body > header,
body > footer {
    flex-shrink: 0;
}

main { flex: 1 0 auto; }

a,
img,
*:focus {
    outline: 0; /* Removing The Dotted Outline */
    -webkit-tap-highlight-color: rgba(0,0,0,0);  /* Remove Gray Highlight When Tapping Links in Mobile Safari */
}

img {
    border: none;
    line-height: 0;
    vertical-align: middle;
    max-width: 100%;
    height: auto;
    aspect-ratio: attr(width) / attr(height);
}

.l { text-align: left; }

.c { text-align: center; }

.r { text-align: right; }

.hide { display: none; }

:root {
    --red: #FF0000;
    --white: #FFF;
    --black: #000;
    
    --text: #1c4782;
    --dblue: #4b7cc8;
    --heading: #0078ce;
    --yellow: #fff28f;
    --yellow-bg: #fff28f99;
    --blue: #1E7DCD;

    --input-bg: #1f447bcc;
    --placeholder: #ffff;
}

body {
    color: var(--text);
    font-family:  NotoIKEALatin, sans-serif;
    min-width: 320px;
    font-size: 16px;
}

body > picture {
    position: fixed;
    z-index: -1;
    top: 0;
    width: 100vw;
    height: 100vh;
    min-width: 100%;
    min-height: 100%;
}

body > picture > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bg {
    background-image: url(../img/text_bgd.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    padding: 20px;
    min-height: 600px;
}

@media (orientation: portrait) {
    .bg,
    body main section > div.bg {
        background-image: url(../img/text_bgm.png);
        background-size: 100% 100%;
        background-position: center top;
        min-height: 0;
        padding: 56px 28px 64px;
        box-sizing: border-box;
    }
}