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

body {
    background: #000;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
}

/* ENTRY BASE */
.entry {
    position: relative;
    width: 100vw;
    height: 100vh;
    scroll-snap-align: start;
}

/* IMAGE */
.entry img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ASSERTION BASE */
.assertion {
    position: absolute;
    max-width: 80%;
    line-height: 0.9;
    letter-spacing: -0.01em;
}

/* ALIGN */
.assertion.left {
    left: 20px;
    bottom: 20px;
    text-align: left;
}

.assertion.right {
    right: 20px;
    bottom: 20px;
    text-align: right;
}

/* SIZE SYSTEM */
.size-s .assertion {
    font-size: 24px;
}

.size-m .assertion {
    font-size: 60px;
}

.size-xl .assertion {
    font-size: 140px;
}

/* TEXT ENTRY */
.text .assertion {
    position: absolute;
    top: 20px;
    left: 20px;
    right: 20px;
}

/* LEGAL */
.legal-trigger {
    position: fixed;
    bottom: 20px;
    right: 20px;
    font-size: 14px;
    opacity: 0.6;
    cursor: pointer;
}

.legal-overlay {
    position: fixed;
    inset: 0;
    background: #000;
    display: none;
    padding: 60px;
}

.legal-overlay.active {
    display: block;
}

.legal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    cursor: pointer;
}