@charset "UTF-8";
/*!* ress.css • v1.2.2* MIT License* github.com/filipelinhares/ress* 全ての要素にbox-sizing: border-box;.* 全ての背景画像にbackground-repeat: no-repeat.*/html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]{-webkit-appearance:textfield}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none;vertical-align: bottom}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}ul,ol{list-style:none;}a{text-decoration:none;}.wrapper{overflow:hidden;}body{overflow-y:scroll;}

/* ----------------------------------------
common / reset
---------------------------------------- */
html, body, h1, h2, p, ul, li, dl, dt, dd {
  margin: 0;
  padding: 0;
  line-height: 1;
  font-family: Meiryo, sans-serif;
}

ul {
  list-style: none;
}

a {
  text-decoration: none;
  color: inherit;
}

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

/* ---------------------------------------- */
.toTop {
  position: fixed;
  z-index: 99999;
  bottom: 20px;
  right: 20px;
  background: #f60a52;
  color: #fff;
  text-align: center;
  line-height: 70px;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  cursor: pointer;
}

.section__title {
  text-align: center;
  padding: 80px 0;
}

@media screen and ( min-width : 960px ) {
  .spBr {
	display: none;
  }

  .section__title {
	text-align: center;
	padding: 100px 0;
  }
}

/* ----------------------------------------
header
---------------------------------------- */
.header .header__spnav {
  position: fixed;
  background-color: rgba(80, 83, 88, 0.8);
  border-radius: 300px 0 0 300px;
  height: 600px;
  width: 300px;
  color: #fff;
  border: 1px solid #fff;
  right: 0;
  display: none;
  z-index: 99;
}

/* ▼ header menu button ▼ */
.header .header__deco {
  position: fixed;
  width: 60px;
  height: 55px;
  background-color: #505358;
  top: 15px;
  right: 5px;
  z-index: 999;
}

.header .deco__inner {
  position: relative;
  display: block;
  width: 35px;
  height: 3px;
  right: -12px;
  bottom: -12px;
  background: #fff;
  cursor: pointer;
}

.header .deco__inner::before {
  position: absolute;
  content: "";
  right: 0;
  bottom: -12px;
  height: 3px;
  background: #fff;
  width: 35px;
}

.header .deco__inner::after {
  position: absolute;
  content: 'MENU';
  right: -4px;
  bottom: -34px;
  color: #fff;
  font-size: 14px;
}

.header .header__swap {
  position: relative;
  display: block;
  width: 35px;
  height: 3px;
  right: -12px;
  bottom: -24px;
  background: #fff;
  transform  : rotate( 45deg ) ;
  transition: 0.3s;
}

.header .header__swap::before {
  position: absolute;
  content: "";
  right: 0;
  bottom: -2px;
  height: 3px;
  color: #fff;
  width: 35px;
  transform  : rotate( 90deg ) ;
}

.header .header__swap::after {
  position: absolute;
  content: '';
  right: -4px;
  bottom: -34px;
  color: #fff;
  font-size: 14px;
}
/* ▲ header menu button ▲ */

.header .header--SP {
  position: absolute;
  content: "";
  top: 100px;
  right: 10px;
}

.header .header__patition {
  text-align: center;
  line-height: 70px;
  width: 200px;
}

/* ▼ Btn before / after ▼ */
/* topBtn */
.header--SP .topBtn {
  line-height: 50px;
  position: relative;
}

.header--SP .topBtn::before {
  position: absolute;
  content: 'TOP';
  font-size: 14px;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
}

.header--SP .topBtn::after {
  position: absolute;
  content: "";
  display: inline-block;
  width: 150px;
  background: #fff;
  height: 2px;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
}

/* portofolioBtn */
.header--SP .portofolioBtn {
  line-height: 50px;
  position: relative;
}

.header--SP .portofolioBtn::before {
  position: absolute;
  content: 'PORTOFOLIO';
  font-size: 14px;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
}

.header--SP .portofolioBtn::after {
  position: absolute;
  content: "";
  display: inline-block;
  width: 150px;
  background: #fff;
  height: 2px;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
}

/* profileBtn */
.header--SP .profileBtn {
  line-height: 50px;
  position: relative;
}

.header--SP .profileBtn::before {
  position: absolute;
  content: 'PROFILE';
  font-size: 14px;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
}

.header--SP .profileBtn::after {
  position: absolute;
  content: "";
  display: inline-block;
  width: 150px;
  background: #fff;
  height: 2px;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
}

/* contactBtn */
.header--SP .contactBtn {
  line-height: 50px;
  position: relative;
}

.header--SP .contactBtn::before {
  position: absolute;
  content: 'CONTACT';
  font-size: 14px;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
}

.header--SP .contactBtn::after {
  position: absolute;
  content: "";
  display: inline-block;
  width: 150px;
  background: #fff;
  height: 2px;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
}

/* ▲ Btn before / after ▲ */

.header .header__logo {
  display: block;
  margin: 10px auto 20px;
  width: 150px;
}

.header .header__pcnav {
  display: none;
}

.header .header--PC {
  display: none;
}

@media screen and ( min-width : 960px ) {
  .header .header__deco {
	display: none;
  }

  .header .header__pcnav {
	display: block;
	position: fixed;
	background: #fff;
	color: #505358;
	top: 0;
	left: 0;
	z-index: 9999;
	border-right: 1px solid #000;
  }

  .header .header--PC {
	height: 100vh;
	width: 80px;
	display: flex;
	justify-content: flex-end;
	writing-mode: vertical-lr;
	color: #505358;
  }

  .header--PC .header__logo {
	display: block;
	/* margin: 0 auto; */
	margin-left: 22px;
	text-align: center;
	width: 32px;
	height: 32px;
	margin-bottom: 10px;
  }

  .header .header__patition {
	height: 23%;
	width: 80px;
	font-weight: bold;
	transition: 0.4s;
  }

  .header--PC .header__patition:hover {
	color: #fff;
	background-color: #f60a52;
	display: inline-block;
  }

  /* ▼ Btn before / after ▼ */
  /* topBtn */
  .header--PC .topBtn {
	position: relative;
  }

  .header--PC .topBtn::before {
	position: absolute;
	content: 'TOP';
	writing-mode: vertical-lr;
	font-size: 14px;
	top: 50%;
	left: 30%;
	transform: translateY(-50%);
  }

  /* portofolioBtn */
  .header--PC .portofolioBtn {
	position: relative;
  }

  .header--PC .portofolioBtn::before {
	position: absolute;
	content: 'PORTOFOLIO';
	writing-mode: vertical-lr;
	font-size: 14px;
	top: 50%;
	left: 30%;
	transform: translateY(-50%);
  }

  /* profileBtn */
  .header--PC .profileBtn {
	position: relative;
  }

  .header--PC .profileBtn::before {
	position: absolute;
	content: 'PROFILE';
	writing-mode: vertical-lr;
	font-size: 14px;
	top: 50%;
	left: 30%;
	transform: translateY(-50%);
  }

  /* contactBtn */
  .header--PC .contactBtn {
	position: relative;
  }

  .header--PC .contactBtn::before {
	position: absolute;
	content: 'CONTACT';
	writing-mode: vertical-lr;
	font-size: 14px;
	top: 50%;
	left: 30%;
	transform: translateY(-50%);
  }

/* ▲ Btn before / after ▲ */

}

/* ----------------------------------------
mainvisual
---------------------------------------- */
.mainvisual {
  width: 100%;
  height: 100vh;
  height: calc( 100vh + 60px );
  padding-top: 50vh;
  box-sizing: border-box;
  background: url(../img/logo_bg.png) no-repeat center / contain;
}

.mainvisual::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 80px;
  background: #505358;
  top: 0;
  left: 0;
}

.mainvisual::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100px;
  background: #505358;
  bottom: -60px;
  left: 0;
}

.mainvisual .mainvisual__inner {
  max-width: 800px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
}

.mainvisual .txt {
  fill: #505358;
  stroke: #f60a52;
  stroke-width: 1px;
  stroke-dasharray: 400px;
  stroke-dashoffset: 400px;
  animation: svg-anime 2.5s 0.5s linear forwards;
}

@keyframes svg-anime {
  0% { stroke-dashoffset: 400px; }
  80% { stroke-dashoffset: 0; fill: #505358; }
  100% { stroke-dashoffset: 0; fill: #fff; }
}

@media screen and ( min-width : 960px ) {
  .mainvisual {
	background: url(../img/logo_bg.png) no-repeat left / contain;
  }

  .mainvisual .mainvisual__inner {
	padding-left: 100px;
  }

}

/* ----------------------------------------
portofolio
---------------------------------------- */
.portofolio {
  position: relative;
}

.portofolio::before{
  position: absolute;
  content: 'PORTOFOLIO';
  font-family: 'Poiret One', cursive;
  font-weight: bold;
  color: #fff;
  font-size: 60px;
  top: -55px;
  right: 0;
}

.portofolio .portofolio__text {
  text-align: left;
  padding: 0 15px;
  line-height: 1.5;
  margin-bottom: 30px;
}

.portofolio .btn__list {
  display: flex;
  margin: 0 auto;
  justify-content: space-between;
  width: 100%;
  max-width: 960px;
  padding: 0 10px;
}

.portofolio .portofolio__listItem {
  text-align: center;
  object-fit: cover;
  width: calc(( 100% - 30px ) / 3 );
  background: #505358;
  color: #fff;
  padding: 20px 0;
  cursor: pointer;
  position: relative;
  z-index: 3;
  font-size: 14px;
  line-height: 30px;
}

.portofolio .portofolio__listItem::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .7s cubic-bezier(.19, 1, .22, 1);
  background: #f60a52;
}

.portofolio .portofolio__listItem:hover:before {
  background: #f60a52;
  z-index: -1;
  transform: scaleX(1);
  transform-origin: left;
}

.portofolio .portofolio__gallery {
  margin: 30px auto 150px;
  max-width: 600px;
  padding: 0 10px;
  cursor: pointer;
}

.portofolio .portofolio__galleryItem {
  max-width: 100%;
  margin-bottom: 30px;
  object-fit: contain;
  box-shadow: 3px 3px 3px #ccc;
  transition: 0.4s;
}

.portofolio .portofolio__galleryItem:hover {
  box-shadow: 4px 4px 4px #999;
}

@media screen and ( min-width : 960px ) {
  .portofolio::before {
	  right: calc(( 100% - 960px ) / 2 );
  }

  .portofolio .portofolio__text {
	  text-align: center;
  }

  .portofolio .portofolio__listItem {
	  font-size: 16px;
  }

  .portofolio .portofolio__gallery {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    max-width: 960px;
  }

  .portofolio .portofolio__galleryItem {
	  width: calc(( 100% - 30px * 2 ) / 3 );
  }
  
}

/* ----------------------------------------
profile
---------------------------------------- */
.profile {
  background: #505358;
  color: #fff;
  padding-bottom: 70px;
  position: relative;
}

.profile::before {
  position: absolute;
  content: 'PROFILE';
  font-family: 'Poiret One', cursive;
  font-weight: bold;
  color: #505358;
  font-size: 60px;
  top: -53px;
  left: 0;
  z-index: 1;
}

.profile .profile__icon {
  display: block;
  max-width: 300px;
  width: 100%;
  margin: 0 auto 50px;
  border-radius: 50%;
  background: #fff;
}

.profile .profile__box {
  width: 80%;
  margin: 0 auto 50px;
}

.profile .profile__box p {
  margin-bottom: 20px;
  line-height: 1.5;
}

.profile .profile__twitter {
  display: none;
  margin: 0 auto 80px;
  width: 70%;
}

.profile .sub__title {
  text-align: center;
  margin-bottom: 20px;
}

/* ------------ skillSet --------------- */

.profile .skillSet__box {
  width: calc(( 100% - 20px * 2 ));
  margin: 0 auto 30px;
  border-bottom:1px dashed #FFF;
}

.profile .skillSet__title {
  margin-bottom: 10px;
}

.profile .skillSet__description {
  margin-bottom: 20px;
  line-height: 1.5;
}

/* ------------ cordingRule --------------- */
.profile .cordingRule__box {
  width: calc(( 100% - 20px * 2 ));
  margin: 0 auto 30px;
  border-bottom:1px dashed #FFF;
}

.profile .cordingRule__title {
  margin-bottom: 10px;
}

.profile .cordingRule__description {
  margin-bottom: 20px;
  line-height: 1.5;
}

.profile .cordingRule__description--text {
  margin-bottom: 10px;
}

.profile .cordingRule__link {
  display: block;
  margin: 10px 0 5px 0;
  text-decoration: underline;
  transition: 0.4s;
}

.profile .cordingRule__link:hover {
  color: #f60a52;
}

.profile .cordingRule__add {
  text-align: center;
  line-height: 1.5;
  margin-bottom: 80px;
}

/* ------------------------------------- */

.profile hr {
  display: none;
}

@media screen and ( min-width : 960px ) {
  .profile::before {
	  left: calc(( 100% - 960px ) / 2 );
  }

  .profile .profile__wrapper {
    display: flex;
    align-items: center;
    max-width: 960px;
    margin: 0 auto;
    position: relative;
  }

  .profile .profile__icon {
    width: 50%;
    position: relative;
  }

  .profile .profile__story {
	  display: none;
  }
  .profile .profile__twitter {
    display: block;
    max-width: 400px;
  }

  .profile .sub__title {
	  margin-bottom: 30px;
  }

  .profile hr {
    display: block;
    margin: 30px 0;
    border: none;
    border-top: 1px dashed #FFF;
    height: 1px;
    color: #FFFFFF;
    width: 100%;
  }

  /* ------------ skillSet --------------- */
  .profile .skillSet__wrapper {
    max-width: 960px;
    margin: 0 auto 50px;
    border: 1px solid #fff;
    padding: 20px;
  }

  .profile .skillSet__inWrapper {
    display: flex;
    margin: 0 auto;
    justify-content: space-between;
  }

  .profile .skillSet__box {
    margin-bottom: 0;
    padding: 15px;
    border-bottom: none;
  }

  .profile .skillSet__box:first-of-type {
	  border-right: 1px dashed #fff;
  }

  /* ------------ cordingRule --------------- */
  .profile .cordingRule__wrapper {
    max-width: 960px;
    margin: 0 auto 50px;
    border: 1px solid #fff;
    padding: 20px;
  }

  .profile .cordingRule__inWrapper {
    display: flex;
    margin: 0 auto;
    justify-content: space-between;
  }

  .profile .cordingRule__inWrapper {
	  margin-bottom: 0;
  }

  .profile .cordingRule__box {
    width: calc( 100% - 24px * 2 );
    margin-bottom: 0;
    padding: 10px;
    border-bottom: none;
  }

  .profile .cordingRule__box:nth-of-type(odd) {
	  border-right: 1px dashed #fff;
  }

  .profile .cordingRule__description--text {
	  margin-bottom: 20px;
  }

  .profile .cordingRule__add {
    padding-top: 30px;
    margin-bottom: 10px;
  }

}

/* ----------------------------------------
contact
---------------------------------------- */
.contact {
  margin-bottom: 150px;
  position: relative;
}

.contact::before {
  position: absolute;
  content: 'CONTACT';
  font-family: 'Poiret One', cursive;
  font-weight: bold;
  color: #fff;
  font-size: 60px;
  top: -53px;
  right: 0;
  z-index: 1;
}

.contact form {
  width: calc( 100% - 20px * 2 );
  margin: 0 auto;
}

.contact .contact__box {
  border-top: 1px solid #999;
  border-right: 1px solid #999;
  border-left: 1px solid #999;
  max-width: 600px;
  margin: 0 auto;
}

.contact .contact__item {
  width: 100%;
  padding: 20px;
  background: #ddd;
}

.contact .contact__details {
  width: 100%;
  padding: 20px;
  border-top: 1px solid #999;
  border-bottom: 1px solid #999;
}

.contact input, textarea {
  border: 1px solid #999;
  padding: 5px 20px;
}

.contact input {
  width: 100%;
}

.contact textarea {
  width: 100%;
  height: 120px;
}

.contact input[type="submit"] {
  display: block;
  width: 50%;
  height: 50px;
  background-color: #f60a52;
  border: 1px solid #f60a52;
  color: #fff;
  margin: 0 auto 30px;
  transition: 0.4s;
}

.contact input[type="submit"]:hover {
  background-color: #fff;
  color: #f60a52;
  border: 2px solid #f60a52;
  font-weight: bold;
}

.contact input[type="reset"] {
  display: block;
  width: 50%;
  height: 50px;
  margin: 30px auto;
  transition: 0.4s;
  font-size: 12px;
}

.contact input[type="reset"]:hover {
  font-weight: bold;
  border: 2px solid #000;
}

.contact .contact__required {
  font-size: 12px;
  background-color: #f60a52;
  color: #fff;
  padding: 4px 10px;
  border-radius: 5px;
  margin-left: 20px;
}

@media screen and ( min-width : 960px ) {
  .contact::before {
	  right: calc(( 100% - 700px ) / 2 );
  }

  .contact form {
    max-width: 600px;
    margin: 0 auto 100px;
  }

  .contact input[type="submit"] {
    display: inline-block;
    width: 40%;
  }

  .contact input[type="reset"] {
    display: inline-block;
    width: 40%;
    font-size: 16px;
  }
  
}

/* ----------------------------------------
footer
---------------------------------------- */
footer {
  background-color: #505358;
  color: #fff;
  text-align: center;
  padding: 30px 0;
}

/* ----------------------------------------
thanks
---------------------------------------- */
.thanks {
  background: #ecd9ec;
  padding: 35vh 20px;
}

.thanks .thanks__title {
  margin-bottom: 30px;
}

.thanks .thanks__text {
  margin-bottom: 20px;
}

.thanks .thanks__link {
  text-decoration: underline;
}

@media screen and ( min-width : 960px ) {
  .thanks {
	  padding-left: 60vw;
  }
}






