@font-face {
    font-family: GaramondRegular;
    src: url('fonts/GaramondRegular.otf');
}
@font-face {
    font-family: GaramondBold;
    src: url('fonts/GaramondBold.ttf');
}
@font-face {
    font-family: Milker;
    src: url('fonts/Milker.otf');
}
@font-face {
    font-family: AileronSemi;
    src: url('fonts/AileronSemi.otf');
}
:root {
    --green: #0f9171;
    --light-blue: #36abde;
    --dark-blue: #5c7bb5;
    --purple: #796684;
    --red: #CE1A19;
    --orange: #e1a25d;
    --yellow: #b0b859;
    --black: #1F181D;
    --white: #d6d6e2;
    
    --cyan: #31e5e6;

    --page-width: min(750px, 80vw);
    --h1-size: 8rem;
    --h1-margin-sides: -5.25rem;
}
html {
    font-family: AileronSemi;
}
body {
    background: var(--black);
    margin: 0;
    color: white;
    overflow-x: hidden;
}
body::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 300vh;
    background-image: url('images/gl5-outline.png');
    background-size: cover;
    filter: invert(0.2);
    pointer-events: none;
}
#grain-overlay {
    position: absolute;
    pointer-events: none;
    top: 0;
    width: 100%;
    height: 100%;
    background: 
	linear-gradient(0deg, rgba(255,255,255,255), rgba(0,0,0,0)),
	url("data:image/svg+xml,%3Csvg viewBox='0 0 250 250' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter) saturate(0)'/%3E%3C/svg%3E");
    mix-blend-mode: multiply;
}
br {
    height: 0.5rem;
}
h1 {
    width: var(--page-width);
    height: 14rem;
    margin: 4rem auto -5rem;
    padding: 1rem;
    left: 0;
    top: 0;
    display: flex;
    position: relative;
    z-index: -1;
    justify-content: space-between;
    font-size: var(--h1-size);
    font-family: Milker;
    font-weight: normal;
    color: var(--cyan);
    transform: scale(1,2);
}
h1 > span {
    margin: -3rem var(--h1-margin-sides) 0;
    padding: 5rem;
    z-index: -1;
    text-decoration: none !important;
    mix-blend-mode: difference;
}
h2 {
    width: var(--page-width);
    margin: 0 auto 3rem;
    font-size: 2rem;
    display: flex;
    justify-content: center;
    font-weight: normal;
    font-family: Milker;
}
h3 {
    width: var(--page-width);
    margin: 0 auto;
    font-size: 2rem;
    font-weight: normal;
    font-family: Milker;
}
a {
    color: white;
    text-decoration: none;
}
a:hover:not(a:has(> h1)) {
    text-decoration: underline;
}
hr {
    width: var(--page-width);
    height: 3px;
    border: none;
    background: var(--white);
}
span:empty {
    display: block;
    width: 10px;
}
.moving-children > * {
    will-change: transform;
    transform: translate3d(0, 0, 0);
    transition: transform 5s;
}
#toolbar {
    width: 32rem;
    max-width: var(--page-width);
    height: 50px;
    margin: -4rem auto 0;
    padding: 1rem;
    display: flex;
    gap: 2rem;
    justify-content: end;
    filter: contrast(5);
}
#toolbar > * {
    width: fit-content;
    font-size: 3rem;
    text-decoration: none;
    z-index: 1;
}
#toolbar > a:hover {
    filter: opacity(0.75);
}
#toolbar > a > img {
    height: 100%;
}
.goo {
    background: black;
    mix-blend-mode: lighten;
    filter: blur(3px) contrast(10);
    overflow: hidden;
}
.goo-minor {
    filter: blur(1.5px) contrast(10);
}
.paragraph {
    display: flex;
    flex-wrap: wrap;
    align-items: start;
    gap: 2rem;
    font-size: 1.5rem;
    width: var(--page-width);
    margin: 0 auto;
    color: white;
}
.paragraph > * {
    flex-basis: 35%;
    flex-grow: 1;
    max-width: 100%;
}
footer {
    border-top: 4px solid white;
    font-size: 1.5rem;
    padding-top: 1rem;
    margin: 1rem auto 4rem;
    
    width: var(--page-width);
}
footer > div {
    display: flex;
    flex-wrap: wrap;
}


/* Events */
.event-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.event {
    flex-basis: 80%;
    flex-grow: 1;
    display: flex;
    position: relative;
    flex-wrap: wrap;
    padding: 1rem 1rem 2rem;
    background: rgba(0,0,0,0.2);
    transition: background 0.2s;
}
.event-date, .event-venue, .event-city {
    flex-basis: 30%;
    flex-grow: 1;
    flex-shrink: 1;
    font-size: 1.5rem;
    font-family: Milker;
    
}
.event-city {
    text-align: center;
}
.event-venue {
    text-align: right;
}
.event-name {
    color: var(--cyan);
    flex-basis: 100%;
    text-align: center;
    font-family: Milker;
}
.event > hr {
    flex-basis: 100%;
    width: unset;
}
.event-view-poster {
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 0.5rem;
    transition: opacity 0.2s;
    opacity: 0.5;
    font-size: 1.25rem;
}
/*
.event-poster {
    flex-basis: 100%;
    margin-top: 1rem;
    max-width: 100%;
    max-height: 0px;
    transition: max-height 0.2s;
}
.event:hover, .event:focus {
    background: rgba(255,255,255,0.2);
}
.event:focus .event-poster {
    max-height: 1000px;
}
.event:focus .event-view-poster {
    opacity: 0;
}*/
.event-view-poster {
    cursor: pointer;
}

.artist-info {
    display: flex;
    flex-wrap: wrap;
    align-content: space-between;
    gap: 1rem;
}
.artist-info h3 {
    width: unset;
    margin: 0 0 0.5rem !important;
}
.artist-links {
    display: flex;
    flex-wrap: wrap;
}
.pale-text {
    display: inline;
    opacity: 0.75;
}
.artist-embed {
    flex-basis: 100%;
}
.artist-list > a {

}
.paragraph:has(> .artist-info) > img {
    position: relative;
    width: 0;
    height: fit-content;
    object-fit: contain;
    filter: saturate(0);
    mix-blend-mode: lighten;
}


@keyframes collapseSelf {
    0% {
	height: auto;
       }
    100% {
	height: 0;
	margin: 0;
    }
}
@keyframes collapseChildren {
    0% {
	transform: scale(1);
	opacity: 1;
       }
    100% {
	transform: scale(1, 0);
	opacity: 0;
	height: fit-content;
    }
}
.collapsed {
    transform-origin: top center;
    animation-name: collapseSelf;
    animation-duration: 0.2s;
    animation-fill-mode: forwards;
}
.collapsed * {
    transform-origin: top center;
    animation-name: collapseChildren;
    animation-duration: 0.2s;
    animation-fill-mode: forwards;
}

@keyframes collapseIcon {
    0% {
	transform: rotate(90deg);
    }
    100% {
	transform: rotate(0deg);
    }
}
@keyframes unCollapseIcon {
    0% {
	transform: rotate(0deg);
    }
    100% {
	transform: rotate(90deg);
    }
}
.collapser {
    cursor: pointer;
}
.collapser:after {
    display: inline-block;
    margin-left: 0.5rem;
    content: '⇝';
    transform: rotate(90deg);
    animation-name: unCollapseIcon;
    animation-duration: 0.2s;
    animation-fill-mode: forwards;
}
.collapser-collapsed:after {
    animation-name: collapseIcon;
}



@keyframes movingTitle {
    0% {
	transform: scale(0.9);
    }
    50% {
	transform: scale(1.2, 1);
    }
    100% {
	transform: scale(0.9);
    }
}
h1.moving-children  > * {
    animation-name: movingTitle;
    animation-duration: 10s;
    animation-iteration-count: infinite;
}


form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
form > span {
    flex-basis: 100%;
    display: flex;
}
form > span > * {
    flex-basis: 30%;
    box-sizing: border-box;
}
.button {
    background: var(--white);
    color: var(--black);
    font-size: 1.25rem;
    padding: 0.25rem;
    cursor: pointer;
}

.page-banner {
    display: block;
    font-family: Milker;
    font-size: 2.4rem;
    text-align: center;
    padding: 0.7rem 0.5rem 0.3rem;
    background: var(--white);
}
.page-banner > span {
    mix-blend-mode: difference;
}

@media screen and (max-width: 1000px){
    :root {
	--page-width: 90vw;
	--h1-size: 4.75rem;
    }
    html {
	font-size: 30px;
    }
    h1 {
	margin-bottom: -10rem;
    }
    h2 {
	font-size: 1.2rem;
	margin-bottom: 1rem;
    }
    .event-date, .event-venue, .event-city {
	font-size: 1.5rem;
    }
    .paragraph > * {
	flex-basis: 100%;
    }
    footer {
	font-size: 1.2rem;
    }
    .page-banner {
	font-size: 1.6rem;
    }
}
