@font-face {
    font-family: Montserrat;
    src: url('./assets/fonts/Montserrat/Montserrat-Regular.ttf')
}

@font-face {
    font-family: Montserrat;
    src: url('./assets/fonts/Montserrat/Montserrat-Bold.ttf');
    font-weight: 700
}

@font-face {
    font-family: Montserrat;
    src: url('./assets/fonts/Montserrat/Montserrat-Black.ttf');
    font-weight: 900
}

:root {
    --ink: #172638;
    --blue: #0a81b9;
    --paper: #f2f7fa
}

* {
    box-sizing: border-box
}

html, body {
    height: 100%;
    margin: 0;
    overflow: hidden
}

body {
    font-family: Montserrat, Arial, sans-serif;
    color: var(--ink)
}

.moodboard {
    height: 100vh;
    min-height: 580px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(125deg, #f3f4f6, #eaf6fb 48%, #e9edff)
}

.orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(4px);
    opacity: .5
}

.orb-one {
    width: 420px;
    height: 420px;
    left: -170px;
    top: -180px;
    background: #bce9f4
}

.orb-two {
    width: 470px;
    height: 470px;
    right: -160px;
    bottom: -210px;
    background: #c9c5fa
}

.orb-three {
    width: 220px;
    height: 220px;
    left: 43%;
    top: 34%;
    background: #fff;
    opacity: .7
}

header, footer {
    position: absolute;
    z-index: 5;
    left: clamp(25px, 5vw, 70px);
    right: clamp(25px, 5vw, 70px);
    display: flex;
    justify-content: space-between;
    align-items: center
}

header {
    top: 31px
}

.wordmark {
    font-size: 19px;
    font-weight: 900;
    letter-spacing: -1px
}

.edition, footer {
    color: #7c8a9b;
    font-size: 8px;
    letter-spacing: 2px;
    text-transform: uppercase
}

.gallery {
    position: absolute;
    inset: 0;
    z-index: 2
}

.tile {
    position: absolute;
    width: clamp(280px, 32vw, 430px);
    height: clamp(205px, 31vh, 295px);
    padding: 12px;
    background: #ffffffa8;
    border: 1px solid #fff;
    border-radius: 25px;
    box-shadow: 0 20px 55px #64809b26;
    backdrop-filter: blur(13px);
    text-decoration: none;
    transition: transform .45s cubic-bezier(.2, .8, .2, 1), filter .45s, box-shadow .45s;
    overflow: hidden
}

.tile img {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 17px;
    object-fit: cover;
    object-position: center top;
    filter: saturate(.88);
    transition: transform .45s, filter .45s
}

.tile-label {
    position: absolute;
    left: 27px;
    right: 27px;
    bottom: 25px;
    display: flex;
    align-items: end;
    gap: 12px;
    color: #fff;
    text-shadow: 0 2px 12px #0009
}

.tile-label b {
    font-size: 31px;
    letter-spacing: -2px;
    font-weight: 900
}

.tile-label small {
    padding-bottom: 4px;
    font-size: 8px;
    letter-spacing: 1.4px;
    text-transform: uppercase
}

.tile-label i {
    margin-left: auto;
    padding-bottom: 1px;
    font-size: 20px;
    font-style: normal
}

.tile-music {
    left: 8%;
    top: 17%;
    transform: rotate(-7deg)
}

.tile-photo {
    right: 8%;
    top: 18%;
    transform: rotate(7deg)
}

.tile-area {
    left: 50%;
    bottom: 8%;
    transform: translateX(-50%) rotate(-3deg)
}

.tile:after {
    content: "";
    position: absolute;
    inset: 12px;
    border-radius: 17px;
    background: linear-gradient(transparent 52%, #07182799);
    pointer-events: none
}

.tile-label {
    z-index: 2
}

.tile:hover {
    z-index: 4;
    box-shadow: 0 30px 70px #3f618033
}

.tile:hover img {
    transform: scale(1.06);
    filter: saturate(1.08)
}

.tile-music:hover {
    transform: rotate(-7deg) translateY(-12px) scale(1.04)
}

.tile-photo:hover {
    transform: rotate(7deg) translateY(-12px) scale(1.04)
}

.tile-area:hover {
    transform: translateX(-50%) rotate(-3deg) translateY(-12px) scale(1.04)
}

.gallery:has(.tile:hover) .tile:not(:hover) {
    filter: saturate(.6) brightness(.96)
}

.center {
    position: absolute;
    z-index: 6;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 17px 10px 10px;
    border-radius: 22px;
    background: #ffffffc7;
    box-shadow: 0 15px 35px #55738b27;
    backdrop-filter: blur(15px);
    white-space: nowrap
}

.center img {
    width: 50px;
    height: 50px;
    border-radius: 15px
}

.center span {
    font-size: 10px;
    line-height: 1.45;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #718198
}

.center em {
    font-style: normal;
    color: var(--blue);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    font-size: 13px
}

footer {
    bottom: 29px
}

footer span:last-child {
    color: var(--blue)
}

footer b {
    font-size: 13px;
    margin-left: 7px
}

@media (max-width: 760px) {
    .moodboard {
        min-height: 620px
    }

    .edition {
        display: none
    }

    .tile {
        width: 72vw;
        height: 24vh;
        min-height: 178px;
        padding: 8px;
        border-radius: 19px
    }

    .tile img, .tile:after {
        border-radius: 13px
    }

    .tile:after {
        inset: 8px
    }

    .tile-label {
        left: 19px;
        right: 19px;
        bottom: 16px
    }

    .tile-label b {
        font-size: 24px
    }

    .tile-label small {
        font-size: 7px
    }

    .tile-music {
        left: 4%;
        top: 12%;
        transform: rotate(-5deg)
    }

    .tile-photo {
        right: 4%;
        top: 37%;
        transform: rotate(5deg)
    }

    .tile-area {
        bottom: 8%
    }

    .tile-music:hover {
        transform: rotate(-5deg) translateY(-7px) scale(1.02)
    }

    .tile-photo:hover {
        transform: rotate(5deg) translateY(-7px) scale(1.02)
    }

    .tile-area:hover {
        transform: translateX(-50%) rotate(-3deg) translateY(-7px) scale(1.02)
    }

    .center {
        top: 31%;
        padding: 7px 11px 7px 7px;
        border-radius: 16px
    }

    .center img {
        width: 38px;
        height: 38px;
        border-radius: 11px
    }

    .center span {
        font-size: 7px
    }

    .center em {
        font-size: 10px
    }

    header {
        top: 21px;
        left: 22px;
        right: 22px
    }

    footer {
        bottom: 18px;
        left: 22px;
        right: 22px;
        font-size: 7px
    }
}
