/* ====================================== */
/*  BASIC CSS */
/* ====================================== */


/* ---- reset ---- */


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


/* ---- com ---- */


:root {
--black: #000;
--white: #fffefd;
--blue: #6790bc;
}

html {
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI","Noto Sans Japanese","ヒラギノ角ゴ ProN W3", Meiryo, sans-serif;
font-size: 10px;
color: var(--white);
}

body {
font-size: 1.5rem;
line-height: 2;
letter-spacing: 0.1rem;
background: var(--black);
}

header,
section,
video,
footer {
opacity: 0;
position: relative;
z-index: 1;
}

img {
border: 0;
height: auto;
display: block;
}

a {
color: var(--white);
text-decoration: none;
}

ul {
list-style: none;
}

.sp {
display: none;
}


/* ---- keyframes ---- */


@keyframes opacity {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}

@keyframes clipping-w {
0%{
clip-path: inset(0 100% 0 0);
}
100%{
clip-path: inset(0);
}
}

@keyframes clipping-y {
0%{
clip-path: inset(0 0 100% 0);
}
100%{
clip-path: inset(0);
}
}


/* ---- preloader ---- */


#loader {
position: fixed;
top: 0;
left: 0;
background: var(--black);
opacity: 1;
}

#loader img {
width: 30px;
animation: blinking 0.05s ease-in-out infinite alternate;
}

@keyframes blinking {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}


/* ---- box ---- */


#loader,
#index,
video,
#ol {
width: 100%;
min-height: 100svb;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
z-index: 1;
}


/* ---- video ---- */


video,
#ol {
height: 100svb;
object-fit: cover;
position: fixed;
top: 0;
left: 0;
z-index: 0;
}

#ol {
background-color: var(--black);
/*transition: opacity 1s, background-color 0.3s;*/
opacity: 0;
}


/* ---- header ---- */


header {
z-index: 2;
}

.logo {
position: fixed;
top: 0;
left: 0;
}

.logo {
padding: 30px;
}

.logo img {
width: 24px;
}

/* sns */

.sns {
position: fixed;
top: 0;
right: 0;
}

.sns li a {
padding: 30px;
display: block;
}

.sns li:first-child a {
padding-bottom: 10px;
}

.sns li:last-child a {
padding-top: 10px;
}

.sns img {
width: 18px;
}


/* ---- index ---- */


#index div {
width: 380px;
}

#index div img {
width: 100%;
backface-visibility: hidden;
transform: translateZ(0);
}

#index div .bar {
clip-path: inset(0 100% 0 0);
}

#index.is-ready div .bar {
animation: clipping-w 0.6s cubic-bezier(1,0,0,1) 0s forwards;
}

#index div .title {
width: 60%;
margin: 24px auto;
clip-path: inset(0 0 100% 0);
}

#index.is-ready div .title {
animation: clipping-y 0.6s cubic-bezier(1,0,0,1) 0.2s forwards;
}

#index div .lineup1 {
margin: 24px auto;
clip-path: inset(0 0 100% 0);
}

#index.is-ready div .lineup1 {
animation: clipping-y 0.6s cubic-bezier(1,0,0,1) 0.4s forwards;
}

#index div .lineup2 {
width: 80%;
margin: 24px auto;
clip-path: inset(0 0 100% 0);
}

#index.is-ready div .lineup2 {
animation: clipping-y 0.6s cubic-bezier(1,0,0,1) 0.6s forwards;
}

#index div a {
padding: 8px;
display: block;
}

#index div .ticket1,
#index div .ticket2 {
clip-path: inset(0 0 100% 0);
}

#index div .ticket1 {
margin-top: 16px;
animation: clipping-w 0.6s cubic-bezier(1,0,0,1) 0.8s forwards;
}

#index div .ticket2 {
animation: clipping-w 0.6s cubic-bezier(1,0,0,1) 1s forwards;
}

#index div ul {
font-size: 1.2rem;
margin-top: 8px;
opacity: 0;
}

#index div ul.is-visible {
animation: opacity 0.8s linear forwards;
}

#index div ul li,
#information ul li {
opacity: 0.6;
}

#index div ul li:first-child,
#information ul li:first-child {
font-weight: bold;
opacity: 1;
}

/* ---- content ---- */


main {
padding: 80px 80px 48px 80px;
}

h2,
h3 {
font-family: 'Oswald', sans-serif;
font-size: 3.2rem;
line-height: 1;
}

section:not(#introductions) h2 {
border-bottom: 1px solid rgba(255, 255, 255, 0.6);
margin: 48px 0 24px 0;
padding-bottom: 8px;
}

h2 span {
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI","Noto Sans Japanese","ヒラギノ角ゴ ProN W3", Meiryo, sans-serif;
font-size: 1.4rem;
font-weight: normal;
padding-left: 8px;
}

h3 {
font-size: 2rem;
}


/* ---- introductions ---- */


#introductions h2 {
font-size: 3.6rem;
}

#introductions p {
line-height: 1.6;
padding-top: 16px;
}

#introductions span {
display: block;
opacity: 0.8;
}


/* ---- lineup ---- */


#lineup ul,
#drink ul {
display: flex;
flex-wrap: wrap;
}

#lineup li {
width : calc(100% / 4);
}

@media (max-width: 1120px) {
#lineup li {
width : calc(100% / 3);
}
}

#lineup li img {
width : 100%;
height: 160px;
object-fit: cover;
padding: 0 1px;
}

#lineup li p {
font-size: 1.4rem;
padding: 8px 8px 16px 8px;
}

#lineup li a {
text-decoration: underline;
}


/* ---- drink ---- */


#drink p {
line-height: 1.6;
}

#drink ul {
padding-bottom: 16px;
}

#drink li {
padding: 32px 64px 0 0;
}

#drink li img {
height : 76px;
}


/* ---- information ---- */


#information h3 {
padding: 16px 0 8px 0;
}

#information .access a {
font-weight: bold;
text-decoration: underline;
padding-left: 8px;
}

#information .access span {
border: 1px solid var(--white);
padding: 0 6px;
margin: 0 16px;
}

#information .access span:first-child {
margin-left: 0;
}

#information .ticket span {
font-size: 1.3rem;
padding-left: 8px;
}

#information .ticket a {
width: fit-content;
display: block;
}

#information .ticket a:first-child {
padding: 16px 0 8px 0;
}

#information .ticket a:last-child {
padding: 8px 0 16px 0;
}

#information .ticket a img {
width: 600px;
}



/* ---- guidelines ---- */


#guidelines dt {
font-weight: bold;
padding: 24px 0 8px 0;
}

#guidelines dt:first-of-type {
padding-top: 0;
}

#guidelines ul {
list-style-type: "・";
}

#guidelines li {
font-size: 1.4rem;
margin-left: 16px;
padding-left: 4px;
}



/* ---- footer ---- */

footer {
font-size: 1.3rem;
padding: 0 80px 24px 80px;
}