@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a {
  outline: none;
}

button {
  outline: none;
  border: none;
  background-color: transparent;
}
button:hover {
  cursor: pointer;
}

li {
  list-style: none;
}

img {
  box-sizing: border-box;
}

* {
  font-family: "Ubuntu", "IBM Plex Sans KR", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;
  color: #e6f1ff;
}

html {
  overflow-x: hidden;
}

body {
  width: 100%;
  background-image: url("/imgs/background.webp");
  background-size: cover;
  background-position: bottom;
  background-attachment: fixed;
  background-clip: border-box;
  backdrop-filter: grayscale(15%) brightness(55%);
  -moz-backdrop-filter: grayscale(15%) brightness(55%);
  -webkit-backdrop-filter: grayscale(15%) brightness(55%);
  position: relative;
  box-sizing: border-box;
  overflow-x: hidden;
}

.overflow__hidden {
  overflow-y: hidden;
}

main {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.font-s {
  font-size: 0.825rem;
  line-height: 1.5675rem;
}
.font-m {
  font-size: 1.1rem;
  line-height: 2.09rem;
}
@media (max-width: 420px) {
  .font-m {
    font-size: 0.99rem;
    line-height: 1.98rem;
  }
}
.font-l {
  font-size: 1.54rem;
  line-height: 2.926rem;
}
@media (max-width: 420px) {
  .font-l {
    font-size: 1.375rem;
    line-height: 2.6125rem;
  }
}
.font-xl {
  font-size: 2.31rem;
  line-height: 4.62rem;
}
@media (max-width: 420px) {
  .font-xl {
    font-size: 1.98rem;
    line-height: 3.762rem;
  }
}
.font-wh {
  color: #e6f1ff;
}
.font-bk {
  color: #3c3c3c;
}
.font-slate {
  color: #8892b0;
}
.font-lightSlate {
  color: #a8b2d1;
}
.font-center {
  text-align: center;
}
.font-left {
  text-align: left;
}
.font-right {
  text-align: right;
}
.font-keep {
  word-break: keep-all;
}
.font-focus:focus, .font-hover:hover {
  transition: all 0.5s ease-out;
  opacity: 0.5;
  text-shadow: 0 0 10px #e6f1ff;
  color: #e6f1ff;
}

.carousel {
  margin: 3rem auto;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-around;
}
@media (max-width: 480px) {
  .carousel {
    margin: 1.5rem auto;
  }
}
.carousel__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-around;
}
.carousel__heading {
  display: flex;
  align-items: center;
  font-size: 2rem;
  margin: 1rem 2rem;
  text-align: center;
  column-gap: 0.25rem;
  color: #8892b0;
}
@media (max-width: 480px) {
  .carousel__heading {
    font-size: 1.25rem;
  }
}
.carousel__heading > a {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.5rem;
  border-radius: 0.5rem;
}
.carousel__heading > a > svg {
  stroke: #8892b0;
  stroke-width: 0.1rem;
  width: 1.5rem;
  height: 1.5rem;
}
.carousel__heading > a:hover, .carousel__heading > a:focus {
  transition: all 0.5s ease-out;
  opacity: 0.9;
  background-color: #e6f1ff;
}
.carousel__item--box {
  display: none;
  transition: all 0.5s ease-out;
}
.carousel__item--image {
  display: none;
  transition: all 0.5s ease-out;
  padding: auto;
}
.carousel__item--image > img {
  border-radius: 0.5rem;
  max-width: 55vw;
  height: auto;
}
.carousel__item--active {
  display: block;
  animation: fade-in-out 1s ease-out;
}
.carousel__project--prev, .carousel__project--next {
  border-radius: 100%;
  aspect-ratio: 1;
  line-height: 0.5rem;
  padding: 0.5rem;
}
.carousel__project--prev svg, .carousel__project--next svg {
  width: 3rem;
  height: auto;
  stroke-width: 0.1rem;
  stroke: #ccd6f6;
}
@media (max-width: 480px) {
  .carousel__project--prev svg, .carousel__project--next svg {
    width: 2rem;
  }
}
.carousel__project--prev {
  margin-left: 1rem;
}
.carousel__project--next {
  margin-right: 1rem;
}
.carousel__project--prev:hover, .carousel__project--next:hover, .carousel__project--prev:focus, .carousel__project--next:focus {
  transition: all 0.5s ease-out;
  opacity: 0.9;
  background-color: #8892b0;
  box-shadow: 0 0 10px rgba(136, 146, 176, 0.9), inset 0 0 10px rgba(136, 146, 176, 0.9);
}
.carousel__image--prev, .carousel__image--next {
  margin: 0.5rem;
  border-radius: 100%;
  aspect-ratio: 1;
  line-height: 0.5rem;
}
@media (max-width: 859px) {
  .carousel__image--prev, .carousel__image--next {
    display: none;
  }
}
.carousel__image--prev svg, .carousel__image--next svg {
  width: 4rem;
  height: auto;
  stroke-width: 0.1rem;
  stroke: #ccd6f6;
}
.carousel__image--prev:hover, .carousel__image--next:hover, .carousel__image--prev:focus, .carousel__image--next:focus {
  transition: all 0.5s ease-out;
  opacity: 0.9;
  background-color: #8892b0;
  box-shadow: 0 0 10px rgba(136, 146, 176, 0.9), inset 0 0 10px rgba(136, 146, 176, 0.9);
}
.carousel__detail {
  color: #a8b2d1;
  font-size: 1rem;
  margin: 1rem 2rem;
  word-break: keep-all;
  line-height: 1.75rem;
}

@keyframes fade-in-out {
  0% {
    opacity: 0;
    transform: translateY(0.25rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0px);
  }
}
@keyframes left-move {
  0% {
    transform: translateX(0.25rem);
  }
  50% {
    transform: translateX(-0.5rem);
  }
  100% {
    transform: translateX(0.25rem);
  }
}
@keyframes right-move {
  0% {
    transform: translateX(-0.25rem);
  }
  50% {
    transform: translateX(0.5rem);
  }
  100% {
    transform: translateX(-0.25rem);
  }
}
.loading__active {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  justify-content: center;
  align-items: center;
  background-color: rgba(0, 0, 0, 0.9);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  margin: 0;
  z-index: 10;
  overflow: hidden;
  animation: fade 1s ease-out 0.5s forwards;
}
.loading__circle {
  width: 6rem;
  height: 6rem;
  border: 1rem solid rgba(136, 146, 176, 0.35);
  border-right: 1rem solid #e6f1ff;
  border-radius: 100%;
  animation: spinner 1s ease-in-out infinite, fade 1s ease-out 0.3s forwards;
}
.loading__text {
  animation: fade 1s ease-out forwards;
}
@keyframes fade {
  0% {
    opacity: 100%;
  }
  75% {
    opacity: 100%;
  }
  100% {
    opacity: 0%;
  }
}
@keyframes spinner {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}
.loading__complete {
  display: none;
}

.header {
  display: flex;
  position: sticky;
  align-items: center;
  justify-content: space-evenly;
  top: 0;
}
@media (max-width: 480px) {
  .header {
    flex-direction: column;
  }
}
.header__title {
  padding-top: 1rem;
  text-shadow: 0 0 10px #e6f1ff;
}
.header__title:hover {
  transition: opacity 0.5s ease-out;
  cursor: pointer;
  opacity: 0.7;
}
.header__nav--ul {
  display: flex;
  column-gap: 0.5rem;
  padding-top: 1rem;
}
@media (max-width: 480px) {
  .header__nav--ul {
    padding-top: 0;
  }
}
.header__nav--li:hover {
  text-shadow: 0 0 10px #e6f1ff;
}

.intro {
  margin: 20rem auto;
}
@media (max-width: 480px) {
  .intro {
    margin-top: 9rem;
  }
}
.intro__animation {
  margin-top: 0.25rem;
  will-change: transform;
  animation: ping-down 2s ease-out infinite;
  filter: grayscale(35%);
}
@keyframes ping-down {
  0% {
    transform: translateY(0px);
  }
  33% {
    transform: translateY(50px);
  }
  66% {
    transform: translateY(0px);
  }
  100% {
    transform: translateY(0px);
  }
}

.about {
  display: flex;
  flex-direction: column;
  margin: 4rem;
  row-gap: 10rem;
}
@media (max-width: 480px) {
  .about {
    row-gap: 8rem;
  }
}
.about > p {
  width: 85vw;
}
.about__left {
  margin-left: 0;
}
.about__right {
  margin-right: 0;
}

.heading {
  margin-top: 8rem;
  margin-bottom: 2rem;
  margin-left: 4rem;
  margin-right: 4rem;
}
@media (max-width: 480px) {
  .heading {
    margin-top: 4rem;
    margin-left: 2rem;
    margin-right: 2rem;
  }
}

.container {
  display: flex;
  flex-direction: column;
  width: 100vw;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  overflow-x: hidden;
}

.article__ol {
  margin: auto 6rem;
}
@media (max-width: 480px) {
  .article__ol {
    margin: auto 3rem;
  }
}
.article__li {
  list-style-color: #a8b2d1;
  margin: 0.5rem auto;
}
.article__li::before {
  content: "•";
  color: #a8b2d1;
}
.article__li--item {
  text-decoration: none;
}

@media (max-width: 480px) {
  .mobile-hide {
    display: none;
  }
}

footer {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
footer > div {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 2rem;
  font-family: "Ubuntu", "IBM Plex Sans KR", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;
  column-gap: 1rem;
}

#contact {
  color: transparent;
  width: 250%;
  overflow: hidden;
  font-size: 4rem;
  font-weight: 700;
  -webkit-text-stroke: 2px #a8b2d1;
  white-space: nowrap;
  will-change: auto;
  transform: translateX(40rem);
  animation: sliding 15s ease-in-out 0.5s infinite;
  margin: 8rem auto;
}
#contact > b {
  text-decoration: none;
  color: transparent;
}
#contact:hover {
  transition: all 0.5s ease-out;
  -webkit-text-stroke-color: #e6f1ff;
  animation-play-state: paused;
}
#contact:hover > b {
  transition: all 0.5s ease-out;
  color: #e6f1ff;
}
@keyframes sliding {
  0% {
    transform: translateX(40rem);
  }
  50% {
    transform: translateX(-24rem);
  }
  100% {
    transform: translateX(40rem);
  }
}
@media (max-width: 420px) {
  #contact {
    width: 275%;
    font-size: 3rem;
    transform: translateX(8rem);
    animation: sliding-mobile 12.5s ease-in-out 0.5s infinite;
  }
}
@keyframes sliding-mobile {
  0% {
    transform: translateX(8rem);
  }
  50% {
    transform: translateX(-42rem);
  }
  100% {
    transform: translateX(8rem);
  }
}

.resume {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  column-gap: 2rem;
  margin: 2rem auto;
  margin-top: 4rem;
  border-radius: 0.5rem;
  border: 2px solid #8892b0;
  padding: 1rem 2rem;
  text-decoration: none;
}
.resume:hover, .resume:focus {
  transition: all 0.5s ease-out;
  border-color: #8892b0;
  background-color: #8892b0;
}
.resume > hr {
  width: 2.5rem;
  height: 2px;
  border: none;
  border-radius: 0.5rem;
  background-color: #8892b0;
}