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

:root {
    --c: #66666694;
    --f: 'Courier New', monospace;
}

body {
    overflow-x: hidden;
    background: url('design/background.webp') center/cover no-repeat fixed;
    font: 20px/1.6 var(--f);
    color: var(--c);
    padding: 0 20px;
}

.header {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: url('design/header.webp') center/cover no-repeat;
    opacity: 0;
    transition: opacity .3s;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding-bottom: 45px;
}

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

main {
    padding-top: 120vh;
}

.gallery {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 300px;
    padding-bottom: 200px;
}

.gallery img {
    width: 100%;
    max-width: 550px;
    height: auto;
    display: block;
    margin: 0 auto 20px;
    overflow: visible;
    box-shadow: 
	0 0 60px rgba(0,0,0,0.60),
	0 0 120px rgba(0,0,0,0.45),
	0 0 180px rgba(0,0,0,0.35),
	0 0 240px rgba(0,0,0,0.01);
}

.art p {
    text-align: left;
    margin-top: 30px;
    font-size: 22px;
}

.contact-info {
    text-align: center;
    padding: 20px 0;
    display: flex;
    justify-content: center;

}

.contact-link {
    color: var(--c);
    font-size: 25px;
    text-decoration: none;
    transition: opacity 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.contact-link:hover {
    opacity: 0.7;
}

.telegram-icon {
    width: 1.2em;
    height: 1.2em;
    vertical-align: middle;
    transform: translateY(-1px);
}

.instagram-icon {
    width: 1.4em;
    height: 1.4em;
    vertical-align: middle;
    transform: translateY(-1px);
    margin-right: -5px;
}


.play, .scroll-down {
    background: none;
    border: none;
    cursor: pointer;
    animation: pulse 2s ease-in-out infinite;
    opacity: 0;
    pointer-events: none;
    padding: 10px 20px;
}

.scroll-down {
    transform: translateY(2px);
}

.scroll-down.visible, .play.visible {
    opacity: 1;
    pointer-events: auto;
}

.play-icon, .pause-icon {
    width: 30px;
    height: 30px;
}

.down-icon, .loading-icon {
    width: 32px;
    height: 32px;
}

.play-icon, .pause-icon, .down-icon, .loading-icon {
    filter: invert(65%) sepia(1%) saturate(325%) hue-rotate(0deg) brightness(92%) contrast(86%);
}

.loading-icon {
    opacity: 0;
    animation: spin 1s linear infinite;
}

.loading .play-icon, .loading .pause-icon {
    display: none;
}

.loading .loading-icon {
    opacity: 1;
}

@keyframes pulse {
    0%, 100% {
        opacity: .4
    }
    50% {
        opacity: 1
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg)
    }
}

button, .play, .scroll-down {
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    outline: none;
}

img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    pointer-events: none;
}

@media (max-width: 1023px) {
    main {
        padding-top: 80vh;
    }

    .gallery {
        gap: 275px;
        padding-bottom: 200px;
    }

    .header {
        padding-bottom: 20px;
    }

    @media (max-width: 425px) {
        .play-icon, .pause-icon, .down-icon {
            width: 30px;
            height: 30px;
        }

        .contact-link {
            font-size: 20px;
        }

        .art p {
            font-size: 20px;
        }
    }
}
