.campaign-box {
    position: relative;
    width: 100%;
    height: 85vh;
    max-width: unset !important;
    overflow: hidden;
}

.campaign-box * {
    position: absolute;
    color: #fff;
}

.campaign-date {
    top: 10%;
    left: 10%;
    z-index: 3;
}

.campaign-title {
    top: 20%;
    left: 45%;
    z-index: 3;
    font-size: clamp(1.75rem, 1.5278rem + 1.1111vw, 3rem);

}

.campaign-slogan {
    top: 32%;
    left: 45%;
    z-index: 3;
}

.campaign-sales {
    top: 60%;
    left: 45%;
    z-index: 3;
}

.campaign-details {
    top: 40%;
    left: 45%;
    z-index: 3;
    max-width: 45ch;
}

.campaign-background {
    z-index: 0;
    height: 85vh;
    width: 100%;
    object-fit: cover;
}

.campaign-hero {
    top: 50%;
    left: 25%;
    transform: translate(-50%, -50%);
    z-index: 1;
    max-width: 30vw;
}

iframe {
    right: 3%;
    bottom: 3%;
    max-width: 360px;
    max-height: 240px;
}

@media screen and (max-width:800px) {
    .campaign-hero {
        top: 20%;
        left: 50%;
    }

    .campaign-title {
        top: 55%;
        left: 10%;
    }

    .campaign-date {
        top: 55%;
        left: 10%;
    }

    .campaign-details {
        top: 70%;
        left: 10%;
        max-width: 30ch;
    }

    .campaign-slogan {
        top: 65%;
        left: 10%;
    }

    .campaign-sales {
        top: 85%;
        left: 10%;
    }

    iframe,
    video {
        right: 8%;
        bottom: 50%;
        max-width: 288px;
        max-height: 192px;
    }
}

@media screen and (max-width:400px) {
    .campaign-sales {
        top: 88%;
        left: 10%;
    }

    iframe,
    video {
        right: 50%;
        bottom: 50%;
        transform: translate(50%, 0);
        z-index: 4;
    }
}

/* album section */
.album-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    grid-template-rows: minmax(250px, 1fr);
    width: 100%;
    max-width: 80ch;
    margin: 0 auto;
    padding: 0;
    gap: 1rem;
}


.box-album {
    position: relative;
    overflow: hidden;
    outline: solid 1px gray;
    color: #fff;
}

.box-album img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.box-album time,
.box-album li {
    position: absolute;
    transform: translate(-50%, -50%);
    left: 50%;
    opacity: 0;
    text-align: center;
}

.box-album li {
    list-style: none;
    top: 45%;
}

.box-album time {
    top: 55%;
}

.box-album:hover img {
    filter: brightness(50%);
}

.box-album:hover>li,
.box-album:hover>time {
    opacity: 1;
}