@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto+Slab&display=swap");
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; }

html, body {
  width: 100vw;
  box-sizing: border-box;
  font-family: YuGothic, "ヒラギノ角ゴ Pro W3", "Noto Sans JP", Meiryo, sans-serif;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-size-adjust: 100%;
  color: #4A5662;
  background: #FCFCFC; }

p, a {
  -webkit-font-smoothing: antialiased; }

a {
  color: #5A6978;
  text-decoration: none;
  transition: .3s; }
  a:hover {
    color: #5A6978;
    transition: .3s; }

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

ul {
  list-style-type: none; }

input, button, textarea, select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  font-size: 100%; }

#header {
  width: 100%;
  box-sizing: border-box;
  min-height: 82px;
  margin: 0;
  padding-right: 83px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  position: relative;
  border-bottom: solid 1px #E6E4D8; }
  #header.is-fixed {
    opacity: 1;
    position: fixed;
    z-index: 5;
    top: 0;
    left: 0;
    border-bottom: none; }
  @media screen and (max-width: 768px) {
    #header {
      padding: 0 30px; } }
  @media screen and (max-width: 599px) {
    #header {
      padding: 0 15px; } }

#main {
  width: 100%; }

.c-btn--middle {
  padding: 22px 0;
  width: 300px;
  font-size: 20px;
  font-family: "Roboto Slab", sans-serif;
  letter-spacing: 0.1em;
  display: block;
  margin: 0 auto; }

.c-btn__effect {
  background-color: #FCFCFC;
  overflow: hidden;
  position: relative;
  z-index: 2;
  cursor: pointer; }
  .c-btn__effect::after {
    content: '';
    position: absolute;
    z-index: -1;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    transition: 0.3s ease-in-out; }
  .c-btn__effect:hover::after {
    left: 0;
    background-color: #F1EEE1; }

.c-fadein {
  -webkit-animation: opening 3s ease-in-out;
  animation: opening 3s ease-in-out; }

@-webkit-keyframes opening {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

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

.c-grid {
  margin-right: -28px;
  display: flex;
  flex-wrap: wrap;
  box-sizing: border-box; }
  @media screen and (max-width: 768px) {
    .c-grid {
      margin-right: 0; } }
  .c-grid__panel {
    box-sizing: border-box; }

.c-icon {
  width: 295px;
  height: 295px;
  border-radius: 50%; }

.c-section {
  width: 100vw;
  box-sizing: border-box;
  padding: 90px;
  text-align: center;
  position: relative; }
  @media screen and (max-width: 768px) {
    .c-section {
      padding: 80px 40px 30px; } }
  .c-section__title {
    font-family: "Roboto Slab", sans-serif;
    color: #7C8E77;
    font-size: 45px;
    padding: 0 40px;
    margin-bottom: 110px;
    text-align: center;
    position: relative;
    display: inline-block;
    letter-spacing: 0.1em; }
    @media screen and (max-width: 768px) {
      .c-section__title {
        margin-bottom: 60px;
        font-size: 25px; } }
    .c-section__title:before, .c-section__title:after {
      content: '';
      background-image: url("../images/border.png");
      background-size: contain;
      display: inline-block;
      position: absolute;
      width: 13px;
      height: 34px;
      top: 20px; }
      @media screen and (max-width: 768px) {
        .c-section__title:before, .c-section__title:after {
          top: 5px; } }
    .c-section__title:before {
      left: 0; }
    .c-section__title:after {
      right: 0; }
  .c-section__body {
    max-width: 1200px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      .c-section__body {
        max-width: 100%;
        box-sizing: border-box; } }

.c-slide-up {
  opacity: 0;
  transform: translateY(40px);
  -webkit-transform: translateY(40px);
  transition: all 1s ease-in-out;
  -webkit-transition: -webkit-transform 1s ease-in-out; }
  .c-slide-up.is-slidein {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0); }

.c-slide-down {
  opacity: 0;
  transform: translateY(-20px);
  -webkit-transform: translateY(-20px);
  transition: all 1s ease-in-out;
  -webkit-transition: -webkit-transform 1s ease-in-out; }
  .c-slide-down.is-slidein {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0); }

.c-slide-left {
  opacity: 0;
  transform: translateX(40px);
  -webkit-transform: translateX(40px);
  transition: all 1s ease-in-out;
  -webkit-transition: -webkit-transform 1s ease-in-out; }
  @media screen and (max-width: 1024px) {
    .c-slide-left {
      transform: translateY(40px);
      -webkit-transform: translateY(40px); } }
  .c-slide-left.is-slidein {
    opacity: 1;
    transform: translateX(0);
    -webkit-transform: translateX(0); }
    @media screen and (max-width: 1024px) {
      .c-slide-left.is-slidein {
        transform: translateY(0);
        -webkit-transform: translateY(0); } }

.c-slide-right {
  opacity: 0;
  transform: translateX(-40px);
  -webkit-transform: translateX(-40px);
  transition: all 1s ease-in-out;
  -webkit-transition: -webkit-transform 1s ease-in-out; }
  @media screen and (max-width: 1024px) {
    .c-slide-right {
      transform: translateY(40px);
      -webkit-transform: translateY(40px); } }
  .c-slide-right.is-slidein {
    opacity: 1;
    transform: translateX(0);
    -webkit-transform: translateX(0); }
    @media screen and (max-width: 1024px) {
      .c-slide-right.is-slidein {
        transform: translateY(0);
        -webkit-transform: translateY(0); } }

.p-contact__name {
  font-size: 25px;
  font-family: "Roboto Slab", sans-serif;
  color: #7C8588;
  letter-spacing: 0.3em; }
  @media screen and (max-width: 768px) {
    .p-contact__name {
      font-size: 18px; } }

.p-contact__mail {
  font-size: 14px;
  font-family: "Roboto Slab", sans-serif;
  color: #FFFFFF;
  margin: 30px 0 60px 0;
  letter-spacing: 0.1em; }
  @media screen and (max-width: 768px) {
    .p-contact__mail {
      margin: 20px 0 50px 0; } }

.p-contact__text {
  font-size: 14px;
  font-family: "Roboto Slab", sans-serif;
  color: #FFFFFF;
  letter-spacing: 0.2em;
  margin-top: 200px; }
  @media screen and (max-width: 768px) {
    .p-contact__text {
      font-size: 13px;
      margin-top: 150px; } }

.p-hero {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center; }
  .p-hero::before {
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 0;
    width: 100vw;
    height: 100vh;
    background: url("../images/hero.png");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center; }
  .p-hero__content {
    z-index: 1; }
  .p-hero__title {
    font-size: 45px;
    font-family: "Roboto Slab", sans-serif;
    letter-spacing: 0.3em;
    color: #FFFFFF; }
    @media screen and (max-width: 768px) {
      .p-hero__title {
        font-size: 30px;
        text-align: center;
        line-height: 1.5; } }
    .p-hero__title-br {
      display: none; }
      @media screen and (max-width: 768px) {
        .p-hero__title-br {
          display: inline-block; } }
  .p-hero__scroll {
    position: absolute;
    bottom: 0px;
    right: 50%;
    display: flex; }
    @media screen and (max-width: 599px) {
      .p-hero__scroll {
        right: 46%; } }
    .p-hero__scroll-text {
      font-family: "Roboto Slab", sans-serif;
      writing-mode: vertical-rl;
      font-size: 9px;
      color: #FFFFFF;
      position: relative;
      top: 20px;
      left: 15px; }
    .p-hero__scroll-line {
      width: 1px;
      height: 90px;
      background-color: #FFFFFF; }

@media screen and (max-width: 599px) {
  .p-nav {
    margin: 0 auto; } }

.p-nav__list {
  display: flex;
  font-family: "Roboto Slab", sans-serif;
  color: #5A6978; }

.p-nav__item {
  font-size: 15px;
  margin: 0 30px; }
  .p-nav__item:first-child {
    margin-left: 0; }
  .p-nav__item:last-child {
    margin-right: 0; }
  @media screen and (max-width: 599px) {
    .p-nav__item {
      margin: 0 30px 0 0;
      font-size: 13px; }
      .p-nav__item-none {
        display: none; } }

.p-nav__link {
  -webkit-font-smoothing: initial;
  padding: 5px 0;
  display: inline-block;
  position: relative; }
  .p-nav__link::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0 auto;
    width: 0;
    border-bottom: 2px solid #5A6978;
    transition: width .2s ease-in-out; }
  .p-nav__link:hover::before {
    width: 100%; }

.p-profile__avatar {
  background-image: url("../images/a-profile-movie.gif");
  background-size: cover;
  display: inline-block;
  vertical-align: middle;
  position: relative; }

.p-profile__content {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  max-width: 642px;
  padding-left: 80px;
  text-align: left;
  line-height: 2; }
  @media screen and (max-width: 1200px) {
    .p-profile__content {
      text-align: center;
      padding: 0;
      display: block;
      margin: 40px auto 0px; } }
  @media screen and (max-width: 768px) {
    .p-profile__content {
      padding: 20px; } }

.p-profile__title {
  font-size: 30px;
  font-family: "Roboto Slab", sans-serif;
  color: #5A6978;
  margin-bottom: 40px;
  letter-spacing: 0.1em; }
  @media screen and (max-width: 768px) {
    .p-profile__title {
      font-size: 23px; } }

.p-profile__text {
  margin-bottom: 1em;
  font-size: 15px;
  letter-spacing: 0; }
  @media screen and (max-width: 1200px) {
    .p-profile__text {
      text-align: left; } }
  .p-profile__text:last-child {
    margin-bottom: 0; }

.p-skills__panel {
  border-radius: 10px;
  background: -moz-linear-gradient(top, #EFE8D6, #D3DEDE);
  background: -webkit-linear-gradient(top, #EFE8D6, #D3DEDE);
  background: linear-gradient(to bottom, #EFE8D6, #D3DEDE);
  margin-right: 28px;
  width: calc(100% / 4 - 28px); }
  @media screen and (max-width: 1200px) {
    .p-skills__panel {
      width: calc(100% / 2 - 28px);
      margin-bottom: 28px; }
      .p-skills__panel:nth-child(3) {
        margin-bottom: 0; }
      .p-skills__panel:nth-child(4) {
        margin-bottom: 0; } }
  @media screen and (max-width: 768px) {
    .p-skills__panel {
      width: 100%;
      margin: 0 auto 30px; }
      .p-skills__panel:nth-child(3) {
        margin-bottom: 30px; } }

.p-skills__circle {
  position: relative;
  border-radius: 50%;
  width: 116px;
  height: 116px;
  background-color: #F1EEE1;
  font-size: 15px;
  margin: 40px auto; }
  .p-skills__circle-text {
    font-family: "Roboto Slab", sans-serif;
    color: #5A6978;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }

.p-skills__item {
  color: #7C8E77;
  padding: 0.5em 0 1em 0; }

.p-skills__text {
  padding: 0 40px 40px 40px;
  font-size: 14px;
  text-align: left; }

.p-works__panel {
  position: relative;
  width: calc(100% / 3 - 28px);
  margin-right: 28px; }
  @media screen and (max-width: 1024px) {
    .p-works__panel {
      width: 80%;
      margin: 0 auto 50px; }
      .p-works__panel:last-child {
        margin-bottom: 0; } }
  @media screen and (max-width: 768px) {
    .p-works__panel {
      width: 100%;
      margin: 0 auto 30px; } }

.p-works__trim {
  position: relative; }

.p-works__mask {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  background-color: rgba(255, 255, 255, 0.8);
  -webkit-transition: all 0.6s ease;
  transition: all 0.6s ease;
  display: flex;
  align-items: center;
  text-align: center; }
  .p-works__mask:hover {
    opacity: 1;
    cursor: pointer; }
  .p-works__mask-text {
    font-size: 15px;
    margin: 0 auto;
    color: #4A5662; }

.u-bgcolor--main {
  background: #F1EEE1; }

.u-bgcolor--contact {
  background: #647276; }

.u-font-color--contact {
  color: #FFFFFF; }
