:root {
    --black-1: #122;
    --black-2: #233;
    --black-3: #344;
    --white-1: #eef;
    --white-2: #bbc;
    --white-3: #778;
    --shadow: #0002;
    --profile-icon-size: 256px;
    --profile-icon-adjust-height: calc(0.5 + 0.5 / 1.4142);
}
html {
    margin: 0;
    padding: 0;
    font-size: 12pt;
}
body {
    display: flex;
    flex-direction: column;
    width: calc(100% - 2rem);
    max-width: 960px;
    margin: 0 auto;
    padding: 3rem 1rem;
    gap: 1rem;
    color: var(--white-1);
    background-color: var(--black-1);
}
section {
    position: relative;
    width: calc(100% - 2rem);
    padding: 1rem;
    border-radius: 0.5rem;
    background-color: var(--black-2);
    box-shadow: 0 0.25rem 2rem var(--shadow);
    break-inside: avoid;
}
section.split {
    display: flex;
    gap: 1rem;
}
.profile-wallpaper{
    width: calc(100% + 2rem);
    margin: -1rem -1rem 1rem -1rem;
    vertical-align: bottom;
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
    object-fit: cover;
    aspect-ratio: 3 / 1;
}
.profile-icon {
    position: relative;
    width: 0;
    height: 0;
}
.profile-icon > img {
    position: absolute;
    top: calc((var(--profile-icon-size) * var(--profile-icon-adjust-height) + 1rem) * -1);
    left: -1rem;
    width: var(--profile-icon-size);
    height: var(--profile-icon-size);
    vertical-align: bottom;
    border-radius: 50%;
    object-fit: cover;
    mask-image: radial-gradient(white 65.7107%, transparent 70.7107%);
}
.thumbnail {
    flex-shrink: 0;
    width: 256px;
    vertical-align: bottom;
    border-radius: 0.25rem;
    object-fit: cover;
    aspect-ratio: 16 / 9;
}
section > a.wrapper-link {
    user-select: none;
    content: '';
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    inset: 0;
    border-radius: 0.5rem;
    font-weight: bold;
    font-size: 2rem;
    color: var(--black-1);
    background-color: var(--white-2);
    opacity: 0;
    transition: 0.25s;
}
section > a.wrapper-link:hover {
    opacity: 0.1;
    transition: 0.25s;
}
.document > * {
    margin: 1rem 0;
    padding: 0;
}
.document > *:first-child {
    margin-top: 0;
}
.document > *:last-child {
    margin-bottom: 0;
}
.document p.sub {
    color: var(--white-3);
}
.document ul {
    margin-left: 1rem !important;
    padding: 0;
}
.document li {
    margin: 0.25rem 0;
}
.document a {
    color: var(--white-2);
}

@media screen and (max-width: 720px) {
    :root {
        --profile-icon-size: 128px;
    }
    section.split {
        flex-direction: column;
    }
    .thumbnail {
        width: 100%;
    }
}

@media print {
    .thumbnail {
        width: 50%;
    }
}
