@font-face {
    font-family: ar700;
    src: url(ar700.woff2) format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: ar900;
    src: url(ar900.woff2) format("woff2");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: am400;
    src: url(am400.woff2) format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

:root {
    --red: #fe0000;
    --black: #000;
    --white: #faf9f5;
    --vw: 0.06613vw;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    width: 100%;
    height: 100%;
    -webkit-text-size-adjust: none;
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: ar700;
    background: var(--black);
    color: var(--white);
    text-transform: uppercase;
    font-size: calc(var(--vw) * 32);
    line-height: calc(var(--vw) * 35);
    -webkit-user-select: none;
    user-select: none;
}

ul { list-style: none; }

a {
    color: inherit;
    text-decoration: none;
    display: block;
}

/* ─── MAIN CONTENT ─── */

#content {
    width: 100%;
    height: 100%;
    overflow: hidden;
    padding-top: calc(var(--vw) * 20);
    transition: opacity 0.15s ease;
}

#content.hidden {
    opacity: 0;
    pointer-events: none;
}

/* ─── BIO VIEW ─── */

#view-bio {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    padding: calc(var(--vw) * 20) calc(var(--vw) * 10) calc(var(--vw) * 80);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
    will-change: opacity;
    -webkit-overflow-scrolling: touch;
}

#view-bio.active {
    opacity: 1;
    pointer-events: all;
}

.bio-back {
    font-family: am400;
    font-size: calc(var(--vw) * 20);
    line-height: calc(var(--vw) * 17);
    margin-bottom: calc(var(--vw) * 30);
    cursor: pointer;
    display: inline-block;
    transition: color 0.1s ease;
}

.bio-back:hover {
    color: var(--red);
}

.bio-line {
    font-family: ar900;
    font-size: calc(var(--vw) * 140);
    letter-spacing: -0.02em;
    line-height: calc(var(--vw) * 110);
    padding-top: calc(var(--vw) * 20);
    padding-bottom: calc(var(--vw) * 10);
    cursor: default;
    transition: color 0.1s ease;
}

.bio-line:hover {
    color: var(--red);
}

/* ─── FLASH OVERLAY ─── */

#view-flash {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--black);
    opacity: 0;
    pointer-events: none;
    z-index: 200;
    transition: opacity 0.15s ease;
    will-change: opacity;
}

#view-flash.on {
    opacity: 1;
}

/* ─── LIST ITEMS ─── */

.list {
    padding-left: calc(var(--vw) * 10);
    will-change: transform;
}

.item a {
    display: flex;
    align-items: baseline;
    padding-top: calc(var(--vw) * 10);
    cursor: pointer;
}

.item-top {
    display: flex;
    align-items: flex-start;
    position: relative;
}

.num {
    font-family: am400;
    font-size: calc(var(--vw) * 20);
    line-height: calc(var(--vw) * 17);
    flex-shrink: 0;
}

.title {
    font-family: ar900;
    font-size: calc(var(--vw) * 140);
    letter-spacing: -0.02em;
    line-height: calc(var(--vw) * 110);
    margin-left: calc(var(--vw) * 5);
    margin-top: calc(var(--vw) * -20);
    position: relative;
    padding-bottom: calc(var(--vw) * 10);
    padding-top: calc(var(--vw) * 20);
    padding-right: calc(var(--vw) * 5);
}

.item a:hover .title {
    color: var(--red);
}

.desc {
    font-family: am400;
    font-size: calc(var(--vw) * 20);
    line-height: calc(var(--vw) * 17);
    margin-left: calc(var(--vw) * 5);
    flex-shrink: 0;
    transition: color 0.1s ease;
}

.item a:hover .desc {
    color: var(--red);
}

.item-note {
    display: block;
    font-family: am400;
    font-size: calc(var(--vw) * 12);
    line-height: calc(var(--vw) * 14);
    margin-left: auto;
    margin-right: calc(var(--vw) * 10);
    margin-top: calc(var(--vw) * 2);
    color: var(--white);
    opacity: 0.85;
    text-transform: none;
    letter-spacing: 0.01em;
    text-align: right;
}

/* ─── NAV BOTTOM ─── */

#nav-bottom {
    position: fixed;
    bottom: calc(var(--vw) * 10);
    left: calc(var(--vw) * 10);
    right: calc(var(--vw) * 10);
    z-index: 100;
    pointer-events: none;
}

.nav-bottom-right {
    position: absolute;
    right: 0;
    bottom: 0;
    font-family: am400;
    font-size: calc(var(--vw) * 20);
    line-height: calc(var(--vw) * 17);
    text-align: right;
    pointer-events: all;
}

.nav-bottom-right a:hover {
    color: var(--red);
}

/* ─── MOBILE ─── */

@media (max-width: 768px) {
    :root {
        --vw: 0.3125vw;
    }

    .item a {
        flex-direction: column;
        align-items: flex-start;
    }

    .desc {
        margin-left: calc(var(--vw) * 2);
    }

    .title {
        font-size: calc(var(--vw) * 28);
        line-height: calc(var(--vw) * 22);
        margin-left: calc(var(--vw) * 2);
        margin-top: calc(var(--vw) * -6);
        padding-bottom: calc(var(--vw) * 5);
        padding-top: calc(var(--vw) * 6);
    }

    .num {
        font-size: calc(var(--vw) * 12);
        line-height: calc(var(--vw) * 10);
    }

    .desc {
        font-size: calc(var(--vw) * 12);
        line-height: calc(var(--vw) * 10);
    }

    .nav-bottom-right {
        font-size: calc(var(--vw) * 12);
        line-height: calc(var(--vw) * 10);
    }

    #content {
        padding-top: calc(var(--vw) * 20);
        padding-bottom: calc(var(--vw) * 60);
    }

    .bio-line {
        font-size: calc(var(--vw) * 28);
        line-height: calc(var(--vw) * 22);
        padding-top: calc(var(--vw) * 6);
        padding-bottom: calc(var(--vw) * 5);
    }

    .bio-back {
        font-size: calc(var(--vw) * 12);
        line-height: calc(var(--vw) * 10);
        margin-bottom: calc(var(--vw) * 20);
    }

    .item-note {
        font-size: calc(var(--vw) * 9);
        line-height: calc(var(--vw) * 11);
        margin-right: calc(var(--vw) * 5);
        margin-top: calc(var(--vw) * 2);
    }
}
