@charset "UTF-8";

/* CSS Document */
:root {
  --color-bg: #FCFCFC;
  --color-black: #333333;
  --color-gray-light: #C6C9CC;
  --color-gray-muted: #B3B3B3;
  --color-gray-dark: #8B8D8F;
}

* {
  box-sizing: border-box;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

body {
  font-family: dnp-shuei-gothic-gin-std, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.8;
  color: var(--color-black);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ヘッダー */
header {
  width: 100%;
  height: 110px;
  position: fixed;
  top: 0;
  z-index: 999;
  background-color: var(--color-bg);
  transition: 0.4s ease-in;
}

.nav-hidden {
  transform: translateY(-110px);
}

.header_inner {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 5%;
}

.logo {
  width: 40px;
  height: auto;
  line-height: 1;
}

.logo svg {
  width: 100%;
  fill: var(--color-black);
  transition: 0.3s ease;
}

.logo svg:hover {
  opacity: 0.6;
}

/*
.logo svg:hover .fadeUp{
  animation-name: logoAnimation;
  animation-duration: 1s;
  animation-timing-function: ease-in;
  animation-iteration-count: infinite;
}
*/
@keyframes logoAnimation {
  0% {
    opacity: 0;
    transform: translateY(20px);
    fill: #2961A1;
  }

  50% {
    opacity: 0.5;
    transform: translateY(5px);
    fill: #D75288;
  }

  100% {
    opacity: 1;
    transform: translateY(0);
    fill: #2961A1;
  }
}

.fadeUp.shape_1 {
  animation-delay: 0.6s;
}

.fadeUp.shape_2 {
  animation-delay: 0.4s;
}

.fadeUp.shape_3 {
  animation-delay: 0.3s;
}

.fadeUp.shape_4 {
  animation-delay: 0.5s;
}

.fadeUp.shape_5 {
  animation-delay: 0.4s;
}

.fadeUp.shape_6 {
  animation-delay: 0.1s;
}

.fadeUp.shape_7 {
  animation-delay: 0.8s;
}

.fadeUp.shape_8 {
  animation-delay: 0.7s;
}

.fadeUp.shape_9 {
  animation-delay: 1s;
}

.fadeUp.shape_10 {
  animation-delay: 1.1s;
}

.fadeUp.shape_11 {
  animation-delay: 1.2s;
}

.fadeUp.shape_12 {
  animation-delay: 0.1s;
}

.fadeUp.shape_13 {
  animation-delay: 0.4s;
}

.fadeUp.shape_14 {
  animation-delay: 0.2s;
}

.fadeUp.shape_15 {
  animation-delay: 0.5s;
}

.fadeUp.shape_16 {
  animation-delay: 0.3s;
}

.fadeUp.shape_17 {
  animation-delay: 0.5s;
}

.fadeUp.shape_18 {
  animation-delay: 0.2s;
}

.fadeUp.shape_19 {
  animation-delay: 0.8s;
}

header nav ul {
  display: flex;
  column-gap: 30px;
}

header nav ul li a {
  display: block;
  position: relative;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-align: center;
  color: var(--color-black);
  transition: 0.4s ease-in;
}

header nav ul li a:before {
  position: absolute;
  content: "・";
  left: 50%;
  transform: translateX(-50%);
  top: -20px;
  opacity: 0;
  transition: 0.4s ease-in;
}

header nav ul li a:hover:before {
  top: -18px;
  opacity: 1;
}

header nav ul li a.works:hover {
  color: #2861A1;
}

header nav ul li a.profile:hover {
  color: #D75288;
}

header nav ul li a.works::after {
  content: 'Works';
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  margin-top: 6px;
}

header nav ul li a.profile::after {
  content: 'Profile';
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  margin-top: 7px;
}

@media screen and (max-width: 430px) {
  header {
    height: 72px;
  }

  .header_inner {
    padding: 0px 6%;
  }

  .logo {
    width: 30px;
  }

  header nav ul li a {
    font-size: 13px;
  }

  header nav ul {
    column-gap: 20px;
  }
}

/* フッター */
footer {
  width: 100%;
  font-family: 'Outfit', sans-serif;
  line-height: 1;
}

.footer_inner {
  width: 90%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  padding-bottom: 32px;
  border-top: solid 1px var(--color-gray-dark);
}

footer small {
  font-size: 13px;
  font-weight: 300;
  color: var(--color-gray-dark);
}

footer ul {
  display: flex;
}

footer ul li {
  display: flex;
  align-items: center;
}

footer ul li a {
  display: block;
  position: relative;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-align: center;
  color: #151515;
  padding: 8px;
  transition: 0.3s ease;
}

footer ul li a:hover {
  opacity: 0.6;
}

@media screen and (max-width: 430px) {
  footer small {
    font-size: 11px;
  }

  footer ul li a {
    font-size: 13px;
  }
}