@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@300;400;600;700&display=swap");

:root {
    --bg: hsl(0 0% 8%);
    --white: hsl(0 0% 98%);
    --accent: hsl(0 0% 15%);
    --secondary: hsl(0 0% 25%);
}

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

body {
    display: flex;
    background-color: transparent;
    font-family: "Nunito Sans", sans-serif;
}

* {
    margin: 0;
}

li {
    list-style: none;
}

.accordion {
    display: flex;
    width: 100%;
    height: 100vh;
    margin: 0;
    padding: 0;
}

.accordion-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s ease;
}

.accordion-title {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    white-space: nowrap;
    position: absolute;
    bottom: 0.5em;
    right: 0.5em;
    writing-mode: vertical-rl;
    color: var(--white);
    font-size: clamp(1em, 3vw - 0.5em, 3em);
    letter-spacing: 0.2em;
    text-transform: Uppercase;
    text-shadow: 1px 1px 2px #111;
    transition: transform 0.3s ease;
}

.accordion-title::after {
    content: "+";
    margin-top: 0.3em;
    user-select: none;
}

.accordion-description {
    position: absolute;
    width: 70%;
    left: 1em;
    bottom: 1em;
    color: var(--white);
    opacity: 0;
    transition: all 0.3s ease-out;
    transition-property: opacity, transform;
    text-shadow: 1px 1px 2px #111;
    user-select: none;
}

.accordion-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(15, 15, 15, 0) 0%, #111111 100%);
    opacity: 1;
    transition: opacity 0.4s ease-out;
}

.accordion-item {
    position: relative;
    flex-grow: 1;
    width: 110px;
    height: 100%;
    background: var(--bg);
    transition: flex-grow 300ms ease;
    overflow: hidden;
}

.accordion-item:hover {
    flex-grow: 2;
}

.accordion-item:hover .accordion-overlay {
    opacity: 0.5;
}

.accordion-item:hover .accordion-title {
    bottom: 3.5em;
}

.accordion-item:hover .accordion-title::after {
    bottom: 3.5em;
    content: none;
}

.accordion-item:hover .accordion-description {
    opacity: 1;
}

.accordion-item:hover .accordion-image {
    transform: scale(1.7);
    transform-origin: center;
}

button {
    border-radius: 20px;
    font-weight: bold;
    background: #86005b;
    border: 1px solid #fff;
    box-shadow: 2px 2px 3px #111;
    color: #FFF;
    font-size: 14px;
    padding: 5px 15px;
}

.offline {
    filter: grayscale(100%);
}