/*
version: 2fa-org
*/

@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap');

:root {
    --c-text: #eee;
    --c-wall-bg: #182435;
    --c-section-bg: #253055;
    --c-content-bg: #182435;
}

@media (prefers-color-scheme: light) {
    :root {
        --c-text: #111;
        --c-wall-bg: #d0d8dc;
        --c-section-bg: #edf4f6;
        --c-content-bg: #d0d8dc;
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --c-text: #eee;
        --c-wall-bg: #182435;
        --c-section-bg: #253b55;
        --c-content-bg: #182435;
    }
}

/* base setting --- */
* {
    font-family: "Zen Maru Gothic", sans-serif;
    word-break: break-word;
    box-sizing: border-box;
}

body {
    background-color: var(--c-wall-bg);
    margin: 32px 0;
}

h1, h2, h3, h4, h5, h6, div, p, span, a {
    color: var(--c-text);
}

img, video {
    max-width: 100%;
}
/* --- base setting */


/* base class --- */
.element-base {
    width: 90%;
    max-width: 720px;
    margin: 8px auto;
    padding: 0 16px;
    border-radius: 8px;
}

.section-base {
    background-color: var(--c-section-bg);
    margin: 16px auto;
    padding: 16px;
}
/* --- base class */

/* list common element --- */
.list-content {
    display: flex;
    flex-direction: column;
    background-color: var(--c-content-bg);
    padding: 16px;
    border-radius: 8px;
    text-decoration: none;
}

.list-content:hover {
    opacity: 0.6;
}

.list-content > img {
    width: 30%;
    min-width: 48px;
    max-width: 64px;
    border-radius: 50%;
}

.list-content > span {
    display: -webkit-box;
    font-weight: bold;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.list-content > p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
/* --- list common element */

/* row list --- */
.row-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    background-color: var(--c-content-bg);
    margin: 8px 0;
    border-radius: 8px;
}

.row-list > a {
    padding: 4px 16px;
    text-decoration: none;
    font-size: 18px;
}

.row-list > a:hover {
    opacity: 0.6;
}
/* --- row list */

/* column list --- */
.column-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 16px 0;
}

.column-list > .list-content > span {
    font-size: 24px;
}

.column-list > .list-content > p {
    font-size: 14px;
}
/* --- column list */

/* tile list --- */
.tile-list {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    margin: 16px 0;
}

.tile-list > .list-content {
    align-items: center;
    justify-content: center;
    aspect-ratio: 1/1;
}

.tile-list > .list-content > span {
    font-size: 24px;
}

.tile-list > .list-content > p {
    font-size: 14px;
}
/* --- tile list */

/* moss element --- */
.moss-element > h1 {
    margin: 32px 0 16px 0;
}

.moss-element > *:first-child {
    margin: 8px 0;
}

.moss-element > h2,
.moss-element > h3,
.moss-element > h4,
.moss-element > h5,
.moss-element > h6 {
    margin: 24px 0 16px 0;
}

.moss-element > textarea,
.moss-element > input[type="button"],
.moss-element > input[type="color"],
.moss-element > input[type="date"],
.moss-element > input[type="datetime-local"],
.moss-element > input[type="email"],
.moss-element > input[type="month"],
.moss-element > input[type="number"],
.moss-element > input[type="password"],
.moss-element > input[type="range"],
.moss-element > input[type="reset"],
.moss-element > input[type="search"],
.moss-element > input[type="submit"],
.moss-element > input[type="tel"],
.moss-element > input[type="text"],
.moss-element > input[type="time"],
.moss-element > input[type="url"],
.moss-element > input[type="week"],
.moss-element > button {
    display: block;
    background-color: var(--c-content-bg);
    color: var(--c-text);
    width: 100%;
    margin: 8px 0;
    padding: 4px 8px;
    border: none;
    border-radius: 8px;
    font-size: 18px;
}

.moss-element > textarea {
    min-height: 80px;
    font-size: 18px;
    resize: vertical;
}
/*
.moss-element > input[type="button"],
.moss-element > input[type="color"],
.moss-element > input[type="date"],
.moss-element > input[type="datetime-local"],
.moss-element > input[type="email"],
.moss-element > input[type="month"],
.moss-element > input[type="number"],
.moss-element > input[type="password"],
.moss-element > input[type="range"],
.moss-element > input[type="reset"],
.moss-element > input[type="search"],
.moss-element > input[type="submit"],
.moss-element > input[type="tel"],
.moss-element > input[type="text"],
.moss-element > input[type="time"],
.moss-element > input[type="url"],
.moss-element > input[type="week"] {
    background-color: var(--c-content-bg);
    color: var(--c-text);
    display: block;
    width: 100%;
    margin: 8px 0;
    border-radius: 8px;
    font-size: 18px;
}
*/

.moss-element > button {
    font-size: 24px;
}

.moss-element > button:hover {
    opacity: 0.6;
}

.moss-element > button:active {
    opacity: 0.3;
}

/* --- moss element */

.center-align {
    display: flex;
    align-items: center;
    justify-content: center;
}

.right-align {
    display: flex;
    justify-content: right;
}

.inner-image {
    position: relative;
    top: 0.15em;
    width: 1em;
    border-radius: 8px;
    align-self: 1/1;
    object-fit: contain;
}