@import url("https://fonts.googleapis.com/css2?family=Alegreya+Sans+SC:wght@100&display=swap");

* {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
}
ul,
ol,
li {
  list-style: none;
}
a {
  text-decoration: none;
  outline: 0;
}
body {
  width: 100%;
  height: 100vh;
  background: #333;
  display: flex;
}

header {
  width: 20%;
  height: 100%;
  padding: 10vh 5vw;
  display: flex;
  flex-wrap: wrap;
  align-content: space-between;
  justify-content: center;
  position: relative;
  z-index: 3;
}
header h1 {
  font-size: 0px; /*안쪽의 자간과 줄 높이를 초기화*/
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
}
header h1 i {
  font-size: 5vw;
  margin-bottom: 15px;
}
header h1 span {
  font: normal 0.8vw/1 "arial";
}
header address {
  font: normal 11px/1.2 "arial";
  color: #888;
}

nav {
  position: absolute;
  top: 10vh;
  right: 5vw;
  z-index: 3;
}
nav ul {
  display: flex;
}
nav ul li a {
  font-size: 18px;
  color: #bbb;
  margin-right: 30px;
}

section {
  position: relative;
  width: 80%;
  height: 100%;
  display: flex;
  padding-top: 140px;
  z-index: 1;
}
section article {
  position: relative;
  flex: 1;
  padding: 70px 40px 100px;
  opacity: 0.6;
  transition: flex 1s, opacity 1s;
  z-index: 1;
  cursor: pointer;
}
section article::before {
  /*마우스 호버 시 왼쪽에서 나타날 가상의 패널 요소 */
  content: "";
  display: block;
  width: 80%;
  height: 95%;
  background: #444;
  position: absolute;
  top: 0px;
  left: -200px;
  opacity: 0;
  transition: 1s;
}
section article .inner {
  width: 100%;
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  align-content: space-between;
  position: relative;
  /*before 요소 위쪽으로 배치되게 하기 위해 position 처리*/
}
section article .inner .txt {
  width: 100%;
  transition: 0.5s;
}
section article .inner .txt h2 {
  font: normal 2vw/1 "Alegreya Sans SC";
  color: #fff;
  margin-bottom: 40px;
  padding-top: 70px;
  transition: 1s;
}
section article .inner .txt h2::after {
  /*h2 요소 하단 꾸밈 효과*/
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: #777;
  margin-top: 20px;
  transition: 1.5s;
}
section article .inner .txt p {
  font: 14px/1.4 "arial";
  color: #999;
}
section article .inner figure {
  width: 100%;
  height: 15vh;
  background: #777;
  transform-origin: left center; /* 왼쪽 방향 기준으로 변형이 일어나도록 중심축 변경*/
  box-shadow: 5px 5px 30px rgba(0, 0, 0, 0.3);
  position: relative;
  overflow: hidden;
  filter: saturate(10%);
  transition: 1s;
}
section article .inner figure video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
}

section article:hover {
  flex: 1.5;
  opacity: 1;
  z-index: 2;
}
section article:hover::before {
  left: 0px;
  opacity: 1;
}
section article:hover .inner .txt {
  width: 75%;
}
section article:hover .inner .txt h2 {
  font-size: 5vw;
  padding-top: 0px;
}
section article:hover .inner .txt h2::after {
  width: 120px;
  background: orange;
}
section article:hover .inner figure {
  height: 25vh;
  filter: saturate(120%);
  transform: translateY(3vh);
}

aside {
  width: 100%;
  height: 100vh;
  background: #222;
  position: absolute;
  top: 0px;
  left: -100%;
  opacity: 0;
  z-index: 2;
  box-sizing: border-box;
  padding: 20vh 7vw 14vh 20vw;
  display: flex;
  justify-content: space-between;
  transition: 1s;
}
aside.on {
  opacity: 1;
  left: 0%;
}
aside .txt {
  width: 25%;
  height: 100%;
}
aside .txt h1 {
  font: normal 6vw/1 "Alegreya Sans SC";
  color: #ddd;
  margin-bottom: 20px;
}
aside .txt p {
  font: 1.1vw/1.3 "arial";
  color: #666;
  margin-bottom: 60px;
}
aside .txt span {
  cursor: pointer;
  color: orange;
}
aside figure {
  width: 72%;
  height: 100%;
}
aside figure video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
