@charset "utf-8";

:root {
	--pcv: / 1440 * 100vw;
	--pcp: / 1440 * 100%;
	
	--spv: / 375 * 100vw;
	--spp: / 375 * 100%;
}

/* -------------------------------------------------
	font
------------------------------------------------- */

/*
Adobe Fonts (Acumin Pro ExtraCondensed)
https://fonts.adobe.com/fonts/acumin-extra-condensed

	Acumin Pro ExtraCondensed Medium
	font-family: "acumin-pro-extra-condensed", sans-serif;
	font-weight: 500;
	font-style: normal;

	Acumin Pro ExtraCondensed Semibold
	font-family: "acumin-pro-extra-condensed", sans-serif;
	font-weight: 600;
	font-style: normal;
	
	Acumin Pro ExtraCondensed Bold
	font-family: "acumin-pro-extra-condensed", sans-serif;
	font-weight: 700;
	font-style: normal;
*/

/*
Adobe Fonts
DNP ShueiGoGinStd L (DNP 秀英角ゴシック銀 Std)
https://fonts.adobe.com/fonts/dnp-shuei-gothic-gin-std

	font-family: "dnp-shuei-gothic-gin-std", sans-serif;
	font-weight: 400;
	font-style: normal;
*/

/* -------------------------------------------------
	reset
------------------------------------------------- */

* {
	margin: 0;
	padding: 0;
	vertical-align: top;
	box-sizing: border-box;
}

html {
}

body {
	line-height: 1;
	-webkit-text-size-adjust: 100%;
	position: relative;
	font-family: "acumin-pro-extra-condensed", "dnp-shuei-gothic-gin-std", "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
	font-weight: 600;
}

button {
	font-family: "acumin-pro-extra-condensed", "dnp-shuei-gothic-gin-std", "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
}

p, h1, h2, h3, h4, th, td, li, dt, dd, figcaption, input, select, textarea {
	font-weight: 600;
	letter-spacing: 0.02em;
}

img {
	border: none;
	max-width: 100%;
	height: auto;
}

iframe {
	border: none;
}

a {
	text-decoration: none;
	color: #000;
}
a:hover {
	
}

ul, ol {
	list-style-type: none;
}

main {
	display: block;
}

@media print, screen and (min-width:768px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}

@media screen and (max-width:767px) {
	
}

/* -------------------------------------------------
	box
------------------------------------------------- */

.box920 {
	width: 96%;
	max-width: 920px;
	margin: 0 auto;
	position: relative;
}

@media screen and (max-width:767px) {
	.box920 {
		width: auto;
	}
	.box-sp {
		margin: 0 4%;
	}
}

/* -------------------------------------------------
	fv
------------------------------------------------- */

#fv {
	width: 100%;
	padding-bottom: calc(809 var(--pcv));
}
#fv.tate {
	width: 100%;
	padding-bottom: calc(666 var(--spv));
}

#fv .pic-and-logo {
	position: relative;
	z-index: 4;
}
#fv .pic-and-logo img {
	width: 100%;
}
#fv .pic-and-logo h1 {
	width: calc(229 var(--pcp));
	position: absolute;
	left: calc(399 var(--pcp));
	top: calc(443 var(--pcv));
}
#fv.tate .pic-and-logo h1 {
	width: calc(123 var(--spp));
	left: 50%;
	top: auto;
	bottom: calc(100 var(--spv));
	transform: translateX(-50%);
}
#fv .pic-and-logo .pic-container {
	width: 100%;
	height: calc(960 var(--pcv));
	overflow: hidden;
}
#fv.tate .pic-and-logo .pic-container {
	height: 100vh;
}

#fv.yoko .pic-and-logo .pic-container {
	background: url("../img/main.webp") no-repeat center center / cover;
}
#fv.tate .pic-and-logo .pic-container {
	background: url("../img/main_tate.webp") no-repeat center center / cover;
}

#fv .video-container {
	width: 100%;
	height: 100vh;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 2;
}
#fv video {
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
#fv.tate video {
	aspect-ratio: 9 / 16;
}

/* -------------------------------------------------
	.scroll
------------------------------------------------- */

.scroll {
	width: 1px;
	height: 6vw;
	position: fixed;
	left: 50%;
	overflow: hidden;
	z-index: 12;
	mix-blend-mode: difference;
	transition: opacity 0.2s ease-out;
}
.scroll.hidden {
	opacity: 0;
}
.scroll .bar {
	width: 100%;
	height: 100%;
	background: #fff;
	transform: translateY(-100%);
	animation: scroll 3s ease-out 0s infinite;
}

#fv.yoko .scroll {
	bottom: 4vw;
}
#fv.tate .scroll {
	height: 10vw;
	bottom: 5vw;
}

@keyframes scroll {
	0% { transform: translateY(-100%); opacity: 1; }
	20% { opacity: 1; }
	100% { transform: translateY(200%); opacity: 0; }
}

/* -------------------------------------------------
	#sound
------------------------------------------------- */

#sound {
	width: 100%;
	text-align: right;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 3;
}
#sound button {
	margin: 3em 3em 0 0;
	font-size: 15px;
	border: none;
	background: transparent;
	color: #fff;
	cursor: pointer;
	letter-spacing: 0.02em;
}
#sound button span {
	vertical-align: baseline;
}
#sound button span::before {
	content: "OFF";
}
#sound button.on span::before {
	content: "ON";
}

@media screen and (max-width:767px) {
	#sound button {
		margin-right: 1em;
		font-size: 4vw;
	}
}

/* -------------------------------------------------
	.under-fv
------------------------------------------------- */

.under-fv {
	padding-top: calc(20 var(--pcv));
	background: #fff;
	position: relative;
	z-index: 20;
}

#fv.tate + .under-fv {
	padding-top: calc(25 var(--spv));
}

/* -------------------------------------------------
	#looks
------------------------------------------------- */

#looks .pics-wrap {
	height: calc(436 var(--pcv));
}
#looks .pics {
	width: 100%;
	height: calc(436 var(--pcv));
	position: relative;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
	transition: all 0.4s cubic-bezier(.48,.04,.53,.97);
}
#looks .pic {
	width: 100%;
	height: calc(436 var(--pcv));
	position: absolute;
	left: 0;
	top: 0;
}
#looks .pic.face {
	transform: rotateY(0deg) translateZ( calc(218 var(--pcv)) );
}
#looks .pic.bottom {
	transform: rotateX(-90deg) translateZ( calc(218 var(--pcv)) );
}

#looks .credit-link {
	display: inline-block;
	position: relative;
}
#looks .credit {
	display: inline-block;
	position: relative;
	z-index: 4;
}
#looks .credit li {
	font-size: max(16px , calc(16 var(--pcv)));
	line-height: calc(20 / 16);
}
#looks .credit li .price {
	display: inline-block;
	margin-left: 0.25em;
}

#looks .buy {
	font-size: max(22px , calc(22 var(--pcv)));
	font-weight: 700;
	position: relative;
}

@media print, screen and (min-width:768px) {
	#looks {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 40px 0;
	}
	#looks > li {
		width: calc(348 var(--pcp));
		border-bottom: solid 1px #000;
	}
	
	#looks .pics:hover {
		transform: rotateX(90deg);
	}
	
	#looks > li:nth-child(1) .face { background: url("../img/pic_01.webp") no-repeat center center / cover; }
	#looks > li:nth-child(2) .face { background: url("../img/pic_02_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(3) .face { background: url("../img/pic_03.webp") no-repeat center center / cover; }
	#looks > li:nth-child(4) .face { background: url("../img/pic_04_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(5) .face { background: url("../img/pic_05.webp") no-repeat center center / cover; }
	#looks > li:nth-child(6) .face { background: url("../img/pic_06_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(7) .face { background: url("../img/pic_07_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(8) .face { background: url("../img/pic_08.webp") no-repeat center center / cover; }
	#looks > li:nth-child(9) .face { background: url("../img/pic_09_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(10) .face { background: url("../img/pic_10.webp") no-repeat center center / cover; }
	#looks > li:nth-child(11) .face { background: url("../img/pic_11_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(12) .face { background: url("../img/pic_12.webp") no-repeat center center / cover; }

	#looks > li:nth-child(1) .bottom { background: url("../img/pic_01_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(2) .bottom { background: url("../img/pic_02.webp") no-repeat center center / cover; }
	#looks > li:nth-child(3) .bottom { background: url("../img/pic_03_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(4) .bottom { background: url("../img/pic_04.webp") no-repeat center center / cover; }
	#looks > li:nth-child(5) .bottom { background: url("../img/pic_05_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(6) .bottom { background: url("../img/pic_06.webp") no-repeat center center / cover; }
	#looks > li:nth-child(7) .bottom { background: url("../img/pic_07.webp") no-repeat center center / cover; }
	#looks > li:nth-child(8) .bottom { background: url("../img/pic_08_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(9) .bottom { background: url("../img/pic_09.webp") no-repeat center center / cover; }
	#looks > li:nth-child(10) .bottom { background: url("../img/pic_10_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(11) .bottom { background: url("../img/pic_11.webp") no-repeat center center / cover; }
	#looks > li:nth-child(12) .bottom { background: url("../img/pic_12_b.webp") no-repeat center center / cover; }
	
	#looks .credit-link {
		padding: 19px calc(30 var(--pcv)) 36px calc(59 var(--pcv));
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
	}
	#looks .credit-link .credit::before {
		width: 4px;
		height: calc(100% - 6px);
		background: #000;
		content: "";
		display: block;
		position: absolute;
		left: -12px;
		top: 3px;
		opacity: 0;
		transition: opacity 0.4s ease-out;
	}
	
	#looks .credit-link .buy {
		padding-bottom: 0.1em;
	}
	#looks .credit-link .buy::after {
		width: 0;
		height: 1px;
		background: #000;
		content: "";
		display: block;
		position: absolute;
		left: -5%;
		bottom: 0;
		transition: width 0.2s ease-out;
	}
	#looks .credit-link:hover .buy::after {
		width: 110%;
	}
}

@media screen and (max-width:767px) {
	#looks > li {
		display: flex;
	}
	#looks > li + li {
		margin-top: calc(24 var(--spv));
	}
	#looks .pics-wrap {
		width: calc(228 var(--spp));
		height: calc(285 var(--spv));
	}
	#looks .pics {
		height: calc(285 var(--spv));
		height: 100%;
		animation: sp-look-rotate 7s linear 0s infinite;
	}
	#looks li:nth-child(even) .pics {
		animation-delay: 1.6s;
	}
	#looks .pic {
		height: calc(285 var(--spv));
	}
	#looks .pic.face {
		transform: rotateY(0deg) translateZ( calc(142 var(--spv)) );
	}
	#looks .pic.bottom {
		transform: rotateX(-90deg) translateZ( calc(142 var(--spv)) );
	}
	
	#looks > li:nth-child(1) .face { background: url("../img/pic_01.webp") no-repeat center center / cover; }
	#looks > li:nth-child(2) .face { background: url("../img/pic_02.webp") no-repeat center center / cover; }
	#looks > li:nth-child(3) .face { background: url("../img/pic_03.webp") no-repeat center center / cover; }
	#looks > li:nth-child(4) .face { background: url("../img/pic_04.webp") no-repeat center center / cover; }
	#looks > li:nth-child(5) .face { background: url("../img/pic_05.webp") no-repeat center center / cover; }
	#looks > li:nth-child(6) .face { background: url("../img/pic_06.webp") no-repeat center center / cover; }
	#looks > li:nth-child(7) .face { background: url("../img/pic_07.webp") no-repeat center center / cover; }
	#looks > li:nth-child(8) .face { background: url("../img/pic_08.webp") no-repeat center center / cover; }
	#looks > li:nth-child(9) .face { background: url("../img/pic_09.webp") no-repeat center center / cover; }
	#looks > li:nth-child(10) .face { background: url("../img/pic_10.webp") no-repeat center center / cover; }
	#looks > li:nth-child(11) .face { background: url("../img/pic_11.webp") no-repeat center center / cover; }
	#looks > li:nth-child(12) .face { background: url("../img/pic_12.webp") no-repeat center center / cover; }

	#looks > li:nth-child(1) .bottom { background: url("../img/pic_01_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(2) .bottom { background: url("../img/pic_02_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(3) .bottom { background: url("../img/pic_03_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(4) .bottom { background: url("../img/pic_04_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(5) .bottom { background: url("../img/pic_05_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(6) .bottom { background: url("../img/pic_06_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(7) .bottom { background: url("../img/pic_07_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(8) .bottom { background: url("../img/pic_08_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(9) .bottom { background: url("../img/pic_09_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(10) .bottom { background: url("../img/pic_10_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(11) .bottom { background: url("../img/pic_11_b.webp") no-repeat center center / cover; }
	#looks > li:nth-child(12) .bottom { background: url("../img/pic_12_b.webp") no-repeat center center / cover; }
	
	#looks .credit-link {
		width: calc(95 var(--spp));
		margin-left: calc(28 var(--spp));
		border-bottom: solid 1px #000;
	}
	#looks .credit li {
		font-size: calc(16 var(--spv));
	}
	
	#looks .buy {
		margin-top: 0.7em;
		font-size: calc(22 var(--spv));
	}
}

@keyframes sp-look-rotate {
  0% { transform: rotateX(0deg); }
  42.86% { transform: rotateX(0deg); }
  50% { transform: rotateX(90deg); }
  92.86% { transform: rotateX(90deg); }
  100% { transform: rotateX(0deg); }
}

/* -------------------------------------------------
	#bottom-area
------------------------------------------------- */

#bottom-area {
	padding: 30px 0 150px;
}

#bottom-area .tax-note {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
	font-size: 17px;
	letter-spacing: 0.02em;
	font-weight: 500;
}

#bottom-area .staff-credit {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
}
#bottom-area .staff-credit dl {
	width: 415px;
	margin-top: 40px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 0;
}
#bottom-area .staff-credit dt,
#bottom-area .staff-credit dd {
	font-size: 16px;
	letter-spacing: 0.01em;
	font-weight: 500;
}
#bottom-area .staff-credit dt {
	width: 150px;
}
#bottom-area .staff-credit dd {
	width: 250px;
}

#bottom-area .buttons {
	margin-top: 100px;
	display: flex;
	justify-content: center;
	gap: 0 245px;
}
#bottom-area .buttons li a {
	padding-bottom: 6px;
	display: inline-block;
	justify-content: center;
	align-items: center;
	font-size: 30px;
	letter-spacing: 0.02em;
	font-weight: 500;
	position: relative;
}
#bottom-area .buttons li a::after {
	width: 0;
	height: 1px;
	background: #000;
	content: "";
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	transition: width 0.2s ease-out;
}

@media print, screen and (min-width:768px) {
	#bottom-area .buttons li a:hover::after {
		width: 100%;
	}
}

@media screen and (max-width:767px) {
	#bottom-area {
		padding: calc(24 var(--spv)) 0 calc(100 var(--spv));
	}

	#bottom-area .tax-note {
		width: 83%;
		font-size: calc(15 var(--spv));
	}
	
	#bottom-area .staff-credit dl {
		width: calc(310 var(--spp));
		max-width: none;
	}
	#bottom-area .staff-credit dl {
		width: 100%;
		justify-content: space-between;
	}
	#bottom-area .staff-credit dt,
	#bottom-area .staff-credit dd {
		width: calc(50% - 7px);
		font-size: calc(17 var(--spv));
	}
	#bottom-area .staff-credit dt {
		text-align: right;
	}
	
	#bottom-area .buttons {
		margin-top: calc(75 var(--spv));
		flex-direction: column;
		align-items: center;
		gap: 10vw 0;
	}
	#bottom-area .buttons li a {
		padding-bottom: calc(6 var(--spv));
		font-size: calc(25 var(--spv));
	}
	#bottom-area .buttons li a::after {
		width: 100%;
	}
}

/* -------------------------------------------------
	modal
------------------------------------------------- */

@media print, screen and (min-width:768px) {
	#modal-base,
	#modal-cont {
		display: none !important;
	}
}

@media screen and (max-width:767px) {
	#modal-base {
		width: 100%;
		height: 100vh;
		background: #000;
		opacity: 0;
		position: fixed;
		left: 0;
		top: 0;
		z-index: 50;
	}
	#modal-cont {
		max-width: 90%;
		position: fixed;
		left: 5%;
		top: 50%;
		z-index: 60;
		transform: translateY(-50%);
		opacity: 0;
	}
	#modal-cont .slick-arrow {
		width: 24px;
		height: 38px;
		position: absolute;
		top: 50%;
		z-index: 10;
		background: url("../img/arrow_01.svg") no-repeat center center / 100% auto;
		color: transparent;
		font-size: 1px;
		overflow: hidden;
		border: none;
	}
	#modal-cont .slick-arrow.slick-prev {
		left: -2.3%;
		transform: translateY(-50%) rotateY(180deg);
	}
	#modal-cont .slick-arrow.slick-next {
		right: -2.3%;
		transform: translateY(-50%);
	}
	#modal-cont .close {
		width: 30px;
		height: 30px;
		background: transparent url("../img/close_01.svg") no-repeat 0 0 / 100% auto;
		position: absolute;
		right: 0;
		top: -40px;
		border: none;
	}
}

@media screen and (max-width:767px) and (orientation:landscape) {
	#modal-cont {
		width: 42%;
		left: 50%;
		transform: translate(-50%,-50%);
	}
	#modal-cont .close {
		right: -40px;
		top: 0;
	}
}

/* -------------------------------------------------
	responsive
------------------------------------------------- */

@media print, screen and (min-width:768px) {
	.pc-none {
		display: none !important;
	}
}

@media screen and (max-width:767px) {
	.sp-none {
		display: none !important;
	}
}

/* -------------------------------------------------
	animation
------------------------------------------------- */

.anim {
	opacity: 0;
	filter: blur(10px);
	transform: translateY(5px);
	transition: all 2.2s cubic-bezier(.12,.92,.31,.95);
}

.anim.delay01 { transition-delay: 0.1s; }
.anim.delay02 { transition-delay: 0.2s; }
.anim.delay03 { transition-delay: 0.3s; }
.anim.delay04 { transition-delay: 0.4s; }
.anim.delay05 { transition-delay: 0.5s; }
.anim.delay06 { transition-delay: 0.6s; }

.anim.on {
	opacity: 1;
	filter: blur(0);
	transform: translate(0,0);
}

/* -------------------------------------------------
	print
------------------------------------------------- */

@media print {
	body {
		width: 980px !important;
	}
}
