@charset "utf-8";

/* CSS 초기화 */
* {
	margin: 0px;
	padding: 0px;
	box-sizing: border-box;
}
ul, ol, li {
	list-style: none;
}
a {
	text-decoration: none;
	outline: 0;
}

figure {
    width: 100%;
    height: 100vh;
    overflow: hidden;
    position: relative;
    background: linear-gradient(25deg, violet, pink);
}
figure h1 {
    position: absolute;
    top: 7vh;
    left: 4vw;
    font-size: 0;
    text-align: center;
}
figure h1 strong {
    font-size: 40px;
    font-family: "arial";
    color: #fff;
    line-height: 1.4;
    letter-spacing: 1px;
}
figure h1 span {
    font-size: 12px;
    font-family: "arial";
    color: #fff;
    opacity: 0.8;
    line-height: 1;
    letter-spacing: 1px;
}
figure .menu {
    position: absolute;
    top: 8vh;
    right: 4vw;
    font-size: 24px;
    color: #fff;
}
figure > p {
    position: absolute;
    bottom: 7vh;
    left: 50%;
    transform: translateX(-50%);
    font: 12px/1 "arial";
    color: #fff;
    letter-spacing: 2px;
    opacity: 0.8;
}
figure section {    /* 음악 플레이어 패널 프레임 그룹 */
    width: 20vw;
    height: 65vh;
    position: absolute;
    left: 50%;
    top: 140%;  /* 세로 위치값 조절 */
    margin-top: -25vh;  /* 세로 위치값 조절 */
    margin-left: -10vw;
    transition: 1s;
}
figure section article {    /* 개별 음악 플레이어 패널 */
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
figure section article .inner { /* 음악 플레이어 패널 콘텐츠 그룹 */
    width: 100%;
    height: 100%;
    background: #f0f7ff;
    padding: 5vh 2.5vw 8vh;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-content: space-between; /* 자식 콘텐츠의 안쪽 세로 여백을 균등 배치 */
    flex-wrap: wrap;
    border-radius: 10px;
    box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.1);
    opacity: 0.6;   /* 투명도를 낮춰서 비활성화 */
    transform: scale(0.8);  /* 축소시켜서 비활성화 */
    transition: opacity 1s, transform 1s;
}
figure section article.on .inner {
    opacity: 0.9;
    transform: scale(1.1);
}
figure section article .inner .pic {
    width: 15vw;
    height: 15vw;
    margin: 0 auto;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: 200%;  /* 배경 이미지 위치값을 조절하여 .pic 요소의 이미지 숨김 */
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}
figure section article .inner .pic::before,
figure section article .inner .pic::after {
    content: "";
    display: block;
    width: inherit;
    height: inherit;
    border-radius: inherit;
    position: absolute;
    top: 0;
    left: 0;
    background-image: inherit;  /* 부모 요소 .pic으로부터 이미지 상속 */
    background-repeat: inherit;
    background-position: center;
    background-size: cover;
    transform-origin: center center;
}
figure section article .inner .pic::before {
    transform: translateY(10%);
    filter: blur(20px) brightness(1.6); /* 이미지를 블러 처리하고 밝게 적용 */
}
figure section article .inner .pic .dot {
    width: 3vw;
    height: 3vw;
    border-radius: 50%;
    background: #e4f1ff;
    position: relative;
    z-index: 3;
    box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.1);  /* inset으로 안쪽 그림자 생성 */
}
figure section article .inner .txt {
    text-align: center;
    position: relative;
    z-index: 3;
}
figure section article .inner .txt h2 {
    font-size: 20px;
    font-family: "arial";
    color: #222;
    margin-bottom: 2vh;
}
figure section article .inner .txt p {
    font-size: 12px;
    margin-bottom: 3vh;
    color: #777;
}
figure section article .inner .txt ul {
    display: flex;
    justify-content: space-around;
}
figure section article .inner .txt ul li {
    cursor: pointer;
    opacity: 0.6;
    transition: 0.5s;
}
figure section article .inner .txt ul li.play {
    transform: scale(1.5);  /* 가운데 재생 버튼만 1.5배 확대해서 강조 */
    opacity: 0.9;
}
figure section article .inner .txt ul li:hover {
    transform: scale(1.5);  /* 좌우 버튼은 마우스 호버 시 1.5배로 확대 */
    opacity: 0.8;
}
figure section article .inner .txt ul li.play:hover {
    transform: scale(2);    /* 재생 버튼은 마우스 호버 시 2배로 확대 */
    opacity: 1;
}

@keyframes ani { /* 앨범 커버 이미지 회전 키프레임 */
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes ani2 { /* 앨범 커버 그림자 회전 키프레임 */
    0% {
        transform: translateY(10%) rotate(0deg);
    }
    100% {
        transform: translateY(10%) rotate(360deg);
    }
}

figure section article .inner .pic.on::after {
    animation: ani 4s linear infinite;
}
figure section article .inner .pic.on::before {
    animation: ani2 4s linear infinite;
}

figure .btnPrev {
    width: 60px;
    height: 60px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-20vw, -50%);
    display: flex;
    align-items: center;
    text-align: left;
    cursor: pointer;
}
figure .btnPrev span {
    font: 11px/1 "arial";
    color: #fff;
    opacity: 1;
    transform: translateX(30%);
    transition: 0.5s;
}
figure .btnPrev::before {   /* 이전 버튼 화살표 라인 가상 요소 */
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0px;
    transform-origin: left center;
    transform: rotate(-180deg);
    transition: 0.5s;
}
figure .btnPrev::after {    /* 이전 버튼 화살표 라인 가상 요소 */
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0px;
    transform-origin: left center;
    transform: rotate(180deg);
    transition: 0.5s;
}
figure .btnPrev:hover span {
    opacity: 0;
    transform: translateX(100%);
}
figure .btnPrev:hover::before {
    transform: rotate(-30deg);
}
figure .btnPrev:hover::after {
    transform: rotate(30deg);
}
figure .btnNext {
    width: 60px;
    height: 60px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(20vw, -50%);
    display: flex;
    align-items: center;
    text-align: right;
    cursor: pointer;
}
figure .btnNext span {
    font: 11px/1 "arial";
    color: #fff;
    opacity: 1;
    transform: translateX(-30%);
    transition: 0.5s;
}
figure .btnNext::before { /* 다음 버튼 화살표 라인 가상 요소 */
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0px;
    transform-origin: right center;
    transform: rotate(180deg);
    transition: 0.5s;
}
figure .btnNext::after { /* 다음 버튼 화살표 라인 가상 요소 */
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0px;
    transform-origin: right center;
    transform: rotate(-180deg);
    transition: 0.5s;
}
figure .btnNext:hover span {
    opacity: 0;
    transform: translateX(-100%);
}
figure .btnNext:hover::before {
    transform: rotate(30deg);
}
figure .btnNext:hover::after {
    transform: rotate(-30deg);
}