@charset "utf-8";

/* --------------------------------------------------
-------------------------------------------------- ページ全体 */
body {
	display: none;
	background: url("../../images/bg01-pc.png") center top repeat-y fixed;
}
#wrapper {
	animation-delay: 0;
	animation-duration: 2s;
}

#motif {
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: -1;
}


.snowfall-flakes {}


@keyframes snowfall-flakes {
  0% {
    transform: rotateZ(0deg);
  }
  100% {
    transform: rotateZ(360deg);
  }
}

a:hover {
    opacity: 0.7;
    transition: all 0.3s ease;
}

/* --------------------------------------------------
-------------------------------------------------- ページ切り替え演出 */
#overlay {
	display: none;
}



/* --------------------------------------------------
-------------------------------------------------- トップ */
#top {
	width: 100%;
	height: 550px;
	overflow: hidden;
}
#top .inner {
	width: 1000px;
	height: 100%;
	margin: auto;
	background: url("../images/top-bg01-pc.png") no-repeat right 10px;
	position: relative;
}
#top h2 {
	padding-top: 45px;
	text-align: center;
/*	z-index: 0;
	position: relative*/
}
#top .text01 {
	position: absolute;
	top: 15px;
	left: calc(50% - 311px);
}
#top .text02 {
	position: absolute;
	bottom: 10px;
	left: calc(50% - 490px);	
}
#illust-change {
	display: none;
}
#illust-change span {
	position: absolute;
	top: 0;
/*	z-index: 1;*/
}
#illust-change #change-chara01 {
	left: calc(50% - 342px);
}
#illust-change #change-chara02 {
	left: calc(50% - 507px);
}
#illust-change #change-chara03 {
	left: calc(50% - 466px);
}
#illust-change #change-chara04 {
	left: calc(50% - 296px);
}

/* --------------------------------------------------
-------------------------------------------------- メインコンテンツ */
#bg_cont {
	width: 100%;
	background: url("../images/cont-bg01-pc.jpg") center 0;
}
#main {
	position: relative;
	z-index: 1;
	width: 1000px;
	margin: auto;
}
#main h1 {
	padding: 30px 0 20px 0;
	text-align: center;
}
#main .projectarea01 {
	display: flex;
    flex-wrap: wrap;
}
#main .projectarea01 li {
	width: 1000%;
	text-align: center;
	margin-bottom: 10px;
}
#main .projectarea01 li a {
	display: block;
	cursor: pointer;
}
#main .text01 {
	text-align: center;
	padding-top: 30px;
}
#main .bnr01 {
	text-align: center;
}

#prj02, #prj03, #prj04{
    position: relative;
}
#prj02 a{
    position: absolute;
    bottom: 35px;
    right: 198px;
}
#prj03 a{
    position: absolute;
    bottom: 35px;
    left: 143px;
}
#prj04 a{
    position: absolute;
    bottom: 35px;
    left: 143px;
}

/* --------------------------------------------------
-------------------------------------------------- フッター */
footer {
	padding-top: 20px;
	padding-bottom: 30px;
}
footer * {
	text-align: center;
}
footer small {
	display: block;
	margin-top: 25px;
	color: #fff;
}
.pagetop {
	position: fixed;
	right: 25px;
	bottom: 35px;
}

/* --------------------------------------------------
-------------------------------------------------- SNS */
.sns {
	padding: 50px 0;
}
.sns ul {
	font-size: 0;
	display: flex;
	justify-content: center;
}
.sns ul li {
	margin: 0 8px;
}

/* modal
-------------------------------------------------*/
.modal {
  box-sizing: border-box;
  display: none;
  z-index: 20;
  position: fixed;
  top: 50%;
  left: 50%;
  width: 96.875%;
  margin: 0;
  padding: 0;
  transform: translate(-50%, -50%);
}

.modal .modal-close {
  display: block;
  position: fixed;
  top: 0;
  right: 50px;
  width: 100%;
  padding-bottom: 1.5625vw;
}

.modal .modal-close picture {
  display: block;
  width: 51px;
  margin: 0 0 0 auto;
  cursor: pointer;
}

.modal-content {
  scrollbar-width: none;
  -ms-overflow-style: none;
  max-height: 75vh;
  margin-top: calc(35px + -1.5625vw);
  overflow-y: scroll;
	text-align: center;
}

.modal-content::-webkit-scrollbar {
  display: none;
}

.modal-content .modal-inner {
  position: relative;
}

.modal-content .box-modal-content {
  padding: 4.6875vw 20px 7.03125vw;
}

.modal-content .box-modal-content p {
  font-size: 1.2rem;  
  line-height: 1.9;
  font-feature-settings: "palt";
}

.modal-content .box-modal-content p + p {
  margin-top: 1em;
}

.modal-content .box-youtube {
  position: relative;
  width: calc(600 / 620 * 100%);
  padding-top: 56.25%;
}

.modal-content .box-youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}

.modal-content .modal-btn {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: calc(518 / 620 * 100%);
  transform: translateX(-50%);
}

.modal-bg {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 130%;
  background: rgba(255, 92, 129, 0.95);
}

#modal-project01 {
	
}


/* ----------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------- ここからスマートフォン */

@media screen and (max-width: 640px) {
	
	img {
		width: 100%;
		height: auto;
	}

/* --------------------------------------------------
-------------------------------------------------- トップ */
#top {
	height: calc(540 / 640 * 100vw);
}
#top .inner {
	width: 100%;
	background: url("../images/top-bg01-sp.png") no-repeat calc(15 / 640 * 100vw) calc(15 / 640 * 100vw);
	-webkit-background-size: calc(623 / 640 * 100vw) auto;
	background-size: calc(623 / 640 * 100vw) auto;
}
#top h2 {
	width: calc(625 / 640 * 100vw);
	margin: auto;
	padding-top: calc(105 / 640 * 100vw);
}
#top .text01 {
	width: calc(497 / 640 * 100vw);
	top: calc(10 / 640 * 100vw);
	left: calc(50% - calc(248 / 640 * 100vw));
}
#top .text02 {
	width: calc(467 / 640 * 100vw);
	bottom: calc(10 / 640 * 100vw);
	left: calc(50% - calc(233 / 640 * 100vw));
}
#illust-change #change-chara01 {
	width: calc(545 / 640 * 100vw);
	left: calc(50% - calc(272 / 640 * 100vw));
}
#illust-change #change-chara02 {
	width: calc(808 / 640 * 100vw);
	left: calc(50% - calc(404 / 640 * 100vw));
}
#illust-change #change-chara03 {
	width: calc(743 / 640 * 100vw);
	left: calc(50% - calc(371 / 640 * 100vw));
}
#illust-change #change-chara04 {
	width: calc(473 / 640 * 100vw);
	left: calc(50% - calc(236 / 640 * 100vw));
}

/* --------------------------------------------------
-------------------------------------------------- メインコンテンツ */
#bg_cont {
	background: url("../images/cont-bg01-sp.jpg") center 0;
	-webkit-background-size: 100% auto;
	background-size: 100% auto;
}
#main {
	width: calc(585 / 640 * 100vw);
	margin: auto;
}
#main h1 {
	width: calc(565 / 640 * 100vw);
	margin: auto;
	padding: calc(40 / 640 * 100vw) 0 calc(20 / 640 * 100vw) 0;
}
#main .projectarea01 {
	flex-direction: column;
}
#main .projectarea01 li {
	width: 100%;
	margin-bottom: calc(30 / 640 * 100vw);
}
#main .text01 {
	width: calc(571 / 640 * 100vw);
	margin: auto;
	padding-top: calc(5 / 640 * 100vw);
}
#main .bnr01 {
	width: calc(572 / 640 * 100vw);
	margin: auto;
}
#prj02 a img, #prj03 a img, #prj04 a img {
    width:78%;
}    
#prj02 a{
    position: absolute;
    bottom: 3.5%;
    right: 0;
}
#prj03 a{
    position: absolute;
    bottom: 5%;
    left: 0;
}
#prj04 a{
    position: absolute;
    bottom: 5%;
    left: 0;
}
/* --------------------------------------------------
-------------------------------------------------- フッター */
footer {
	padding-top: calc(50 / 640 * 100vw);
	padding-bottom: calc(35 / 640 * 100vw);
}
footer p:nth-of-type(1) {
    width: calc(310 / 640 * 100vw);
    margin: auto;
}
footer small {
	margin-top: calc(20 / 640 * 100vw);
	font-size: calc(100vw / 30);
}
.pagetop {
	width: calc(71 / 640 * 100vw);
	right: calc(30 / 640 * 100vw);
	bottom: calc(60 / 640 * 100vw);
}

/* --------------------------------------------------
-------------------------------------------------- SNS */
.sns {
	padding: calc(40 / 640 * 100vw) 0;
}

/* --------------------------------------------------
-------------------------------------------------- modal */
.modal {
    width: 100%;
  }
  .modal .modal-close {
    width: calc(100 / 640 * 100vw);
	  padding-bottom: calc(10 / 640 * 100vw);
	  right: calc(10 / 640 * 100vw);
  }
  .modal-content {
    max-height: 90vh;
    margin-top: 38px;
	  padding: 0 calc(10 / 640 * 100vw);
  }
  .modal-content .box-modal-content {
    padding: 30px 20px 35px;
  }
  .modal-content .box-modal-content p {
    font-size: 1.4rem;
  }
  .modal-bg {
    height: 100%;
  }
  #modal-project01 .modal-btn {
    bottom: 18px;
  }
  #modal-project02 .modal-twitter01 {
    bottom: 230px;
    left: 60px;
  }
  #modal-project02 .modal-twitter02 {
    bottom: 230px;
    left: 100px;
  }
  #modal-project02 .box-youtube {
    bottom: 7px;
  }
  #modal-project03 .modal-twitter01 {
    bottom: 232px;
    left: 70px;
    width: 100px;
  }
  #modal-project03 .box-youtube {
    bottom: 14px;
  }
  #modal-project04 .modal-btn {
    bottom: 14px;
  }
  #modal-project05 .modal-btn {
    bottom: 23px;
  }
  #modal-project06 .modal-btn {
    bottom: 25px;
  }
  #modal-project08 .modal-btn {
    bottom: 14px;
  }
	
}