@charset "utf-8";

/* font
================================================== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto+Serif:opsz,wght@8..144,100..900&family=Roboto:wght@100..900&display=swap');

/* root
================================================== */
:root{
	/* font-size */
	--contents-font-size:16px;
	--button-font-size:16px;
	
	/* line-height */
	--default-line-height:1.5;
	
	/* color */
	--default-color:#FFF;
	--notes-color:#C9CBCF;
	--notice-color:#E71D36;
	--breadcrumb-color:#A3A3A3;
	--accent-color:#F4D500;
	
	/* font-family */
	--font-ja:'Noto Sans JP';
	--font-en:'Roboto';
	
	/* border */
	--default-border:#FFF;
	--table-border:#41474D;
	--tracklist-border:#303236;
	
	/* background */
	--default-background:#000;
	--main-background:rgba(255,255,255,0.55);
	--header-background:transparent;
	--footer-background:transparent;
	--content-background:#FFF;
	--title-background:#303236;
	--box-background:#303236;
	--breadcrumb-background:#303236;
	
	/* button */
	--button-color:#000;
	--button-background:#FFF;
	--nolink-color:#000;
	--nolink-background:#999;
	--cancel-color:#000;
	--cancel-background:linear-gradient(to right bottom,rgba(66,68,74,0.4),rgba(121,124,135,0.4));
	
	/* form */
	--form-font-size:16px;
	--form-color:#E5E5E5;
	--form-input-background:#1E1F22;
	--form-box-text:#E5E5E5;
	--form-box-background:#1E1F22;
	--form-select-arrow:#E5E5E5;
	
	/* error */
	--error-color:#E5E5E5;
	--error-background:#C20114;
	
	/* slick */
	--slick-button:#FFF;
	--slick-arrow:#000;
	--slick-button-hover:#FFF;
	--slick-arrow-hover:#000;
	--slick-dots:#FFF;
}
@media screen and (max-width:800px){
	:root{
		--contents-font-size:14px;
		--button-font-size:14px;
	}
}

/* reset
================================================== */
*:where(:not(iframe,img,svg):not(svg *)){all:unset;display:revert;}
*,*::before,*::after{box-sizing:border-box;}
body{position:relative;width:100%;font-size:14px;line-height:var(--default-line-height);color:var(--default-color);font-family:var(--font-ja),sans-serif;font-weight:400;font-feature-settings:'palt';-webkit-text-size-adjust:100%;}
footer,header,main,section,picture{display:block;}
table{border-collapse:collapse;border-spacing:0;}
ol,ul{list-style:none;}
img{width:100%;height:auto;vertical-align:top;}
a{margin:0;padding:0;color:#FFF;vertical-align:bottom;background:transparent;cursor:pointer;}
a:link,a:visited,a:hover,a:active{text-decoration:none;}

/* BE:FIRST
================================================== */
html,body{
	height:100%;
}
body{
	background:var(--default-background);
}

/* header, footer
-------------------------------------------------- */
/* common */
.logo{
	width:fit-content;
	height:72px;
	margin-inline:auto;
	line-height:1;
}
.logo a,
.logo img{
	height:100%;
}
.logo a{
	display:block;
	width:fit-content;
}
header .inner,
footer .inner{
	padding-inline:min(4vw,30px);
}

/* header */
header .inner{
	padding-block:65px 25px;
	background:var(--header-background);
}
body:not(#index) header .inner{
	padding-block:22px;
}
header .logo{
	height:72px;
}
body:not(#index) header .logo{
	height:25px;
}

/* footer */
footer{
	position:sticky;
	top:100vh;
}
footer .inner{
	padding-block:35px 25px;
	background:var(--footer-background);
}
footer .official{
	width:fit-content;
	margin:25px auto;
}
footer .official a{
	display:flex;
	place-items:center;
	column-gap:8px;
	height:46px;
	padding-inline:50px;
	font:300 14px/1 var(--font-jp);
	color:var(--default-color);
	border-radius:23px;
	border:1px solid rgba(255,255,255,0.65);
	transition:opacity 0.3s;
}
footer .official span{
	display:block;
	padding-block:0 1px;
}
footer .official img{
	width:12px;
	aspect-ratio:1;
}
footer .sns{
	display:grid;
	grid-template-columns:repeat(4,auto);
	align-items:center;
	column-gap:22px;
	width:fit-content;
	height:24px;
	margin-inline:auto;
	line-height:1;
}
footer .sns a{
	display:block;
}
footer .sns img{
	width:auto;
	height:24px;
	transition:transform 0.3s;
}
footer .sns li:nth-of-type(5) img{
	width:27px;
	height:auto;
}
footer .inquiry{
	width:fit-content;
	margin-inline:auto;
	padding-block:6px 16px;
	font-size:13px;
}
footer .inquiry a{
	display:block;
}
@media screen and (max-width:800px){
	.logo{
		height:55px;
	}
	header .inner{
		padding-block:44px 22px;
	}
	body:not(#index) header .inner{
		padding-block:18px;
	}
	header .logo{
		height:55px;
	}
	body:not(#index) header .logo{
		height:19px;
	}
	footer .inner{
		padding-block:22px 18px;
	}
	footer .official{
		margin-block:18px;
	}
	footer .official a{
		height:42px;
	}
	footer .sns{
		column-gap:18px;
		height:20px;
	}
	footer .sns img{
		height:20px;
	}
	footer .sns li:nth-of-type(5) img{
		width:23px;
	}
footer .inquiry{
	padding-block:8px 17px;
	font-size:12px;
}
footer .inquiry a{
	display:block;
}
}
@media (any-hover:hover){
	.logo a:hover,
	footer .official a:hover{
		opacity:0.5;
	}
	footer .sns a:hover img{
		transform:scale(1.2);
	}
}

/* common
-------------------------------------------------- */
.mobile{
	display:none;
}
.contents .inner{
	max-width:960px;
	margin-inline:auto;
	padding-inline:min(4vw,30px);
}
.heading{
	font:100 40px/1.25 var(--font-ja);
	text-align:center;
}
.heading:lang(en){
	font-size:43px;
	font-family:var(--font-en);
	font-weight:100;
}
ul:has(.notes){
	display:grid;
	grid-template-columns:auto;
	row-gap:8px;
}
.notes{
	padding-inline:1em 0;
	color:var(--notes-color);
	text-indent:-1em;
}
.main{
	font-size:var(--contents-font-size);
}
.main .contents{
	max-width:960px;
	margin-inline:auto;
	padding:81px min(4vw,30px) 100px;
}
.main .inner{
	max-width:initial;
	padding-inline:0;
}
.main .inner+.inner{
	margin-block:62px 0;
	padding-block:61px 0;
	border-block-start:1px solid var(--table-border);
}
.main .heading{
	font-size:24px;
}
.heading span{
	display:inline-block;
}
.heading+.text,
.heading+.list{
	margin-block:32px 0;
}
.subheading{
	font-size:20px;
	font-weight:100;
	text-align:center;
}
.subheading span{
	display:inline-block;
}
.main .heading+.subheading{
	margin-block:31px 0;
}
.subheading+.text,
.subheading+.list{
	margin-block:22px 0;
}
.subheading+.box{
	margin-block:50px 0;
}
.list li{
	position:relative;
	padding-inline:16px 0;
}
.list li:before{
	position:absolute;
	top:12px;
	left:4px;
	display:block;
	width:4px;
	height:4px;
	border-radius:50%;
	background:#797C87;
	content:'';
}
.list li+li{
	margin-block:10px 0;
}
.box{
	padding:59px min(4vw,55px) 62px;
	background:var(--box-background);
}
.box:has(.notes){
	padding-block-end:62px;
}
.box .text+.list{
	margin-block:27px 0;
}
.box .list+.link{
	margin-block:32px 0;
}
.box .notes{
	margin-block:28px 0;
	font-size:14px;
}
.link{
	width:100%;
	max-width:480px;
	margin-inline:auto;
}
.form{
	display:grid;
	row-gap:20px;
	margin-block:52px 0;
}
.form .heading{
	margin-block:0 8px;
	font-size:18px;
	text-align:left;
}
.customer .heading{
	font-size:16px;
	font-weight:300;
	text-align:left;
}
.customer .company{
	margin-block-start:19px;
	font-weight:400;
}
.customer .text{
	margin-block-start:7px;
}
.customer .notes{
	margin-block-start:17px;
}
.main .heading+.notice{
	margin-block-start:32px;
	font-size:18px;
	color:var(--notice-color);
	font-weight:400;
}
.main .notice+.list{
	margin-block:31px 0;
}
@media screen and (max-width:800px){
	.pc{
		display:none;
	}
	.mobile{
		display:block;
	}
	.heading{
		font-size:25px;
	}
	.heading:lang(en){
		font-size:28px;
	}
	.notes{
		row-gap:6px;
	}
	.notes li{
		font-size:13px;
	}
	.main .contents{
		max-width:668px;
		margin-inline:auto;
		padding-block:61px 98px;
	}
	.main .inner+.inner{
		margin-block:52px 0;
		padding-block:51px 0;
	}
	.main .heading{
		font-size:19px;
	}
	.heading+.text,
	.heading+.list{
		margin-block:26px;
	}
	.subheading{
		font-size:17px;
	}
	.main .heading+.subheading{
		margin-block:25px 0;
		text-align:left;
	}
	.subheading+.text,
	.subheading+.list{
		margin-block:23px 0;
	}
	.subheading+.box{
		margin-top:41px;
	}
	.list li:before{
		top:9px;
	}
	.list li+li{
		margin-block:11px 0;
	}
	.note{
		margin-block:28px 0;
		font-size:14px;
	}
	.box{
		padding-block:45px 47px;
	}
	.box:has(.notes){
		padding-block-end:47px;
	}
	.box .text+.list{
		margin-block:25px 0;
	}
	.box .list+.link{
		margin-block:29px 0;
	}
	.box .notes{
		margin-block:25px 0;
		font-size:14px;
	}
	.link{
		max-width:initial;
	}
	.form{
		row-gap:18px;
		margin-block:43px 0;
	}
	.form .heading{
		font-size:15px;
	}
	.customer .heading{
		font-size:14px;
	}
	.customer .company{
		margin-block-start:16px;
	}
	.customer .text{
		margin-block-start:8px;
	}
	.customer .notes{
		margin-block-start:15px;
	}
	.main .heading+.notice{
		margin-block:26px 0;
		font-size:15px;
	}
	.main .notice+.list{
		margin-block:24px 0;
	}
}

/* .button */
.button{
	position:relative;
	display:flex;
	justify-content:center;
	align-items:center;
	width:100%;
	min-height:54px;
	font-size:var(--button-font-size);
	line-height:var(--default-line-height);
	color:var(--button-color);
	font-weight:600;
	border-radius:27px;
	background:var(--button-background);
	transition:opacity 0.3s;
	cursor:pointer;
}
.nolink.button{
	color:var(--nolink-color);
	background:var(--nolink-background);
	cursor:default;
	pointer-events:none;
}
.nolink.button img,
.nolink.button span{
	opacity:0.55;
}
.purchase .button{
	column-gap:8px;
	min-height:46px;
	font-size:14px;
	line-height:1;
	font-family:var(--font-en);
}
.purchase img[alt="SHOP"]{
	width:20px;
	height:auto;
}
.purchase img[alt="DIGITAL"]{
	width:17px;
	height:auto;
}
.purchase span{
	padding-block:2px 0;
}
@media (any-hover:hover){
	.button:hover{
		opacity:0.7;
	}
	.nolink.button:hover,
	.nolink.button:hover::after{
		opacity:1;
	}
}

/* #visual
-------------------------------------------------- */
@media screen and (max-width:800px){
	#visual .inner{
		width:78vw;
	}
}
@media screen and (max-width:600px){
	#visual .inner{
		width:95vw;
	}
}

/* #introduction
-------------------------------------------------- */
#introduction .inner{
	margin-block:63px 0;
	text-align:center;
}
#introduction .release,
#introduction .number{
	line-height:1;
	font-family:var(--font-en);
	font-weight:600;
	letter-spacing:0.015em;
	text-indent:0.015em;
}
#introduction .number{
	margin-block:41px 0;
	font-size:14px;
}
#introduction .release{
	font-size:18px;
}
#introduction .title{
	width:fit-content;
	margin:15px auto 36px;
	font:800 54px/1 'Roboto';
}
#introduction .purchase{
	display:grid;
	grid-template-columns:repeat(2,128px);
	column-gap:12px;
	width:fit-content;
	margin-inline:auto;
}
#introduction .description{
	max-width:780px;
	margin:39px auto 0;
	line-height:1.8;
	text-align:left;
	letter-spacing:0.05em;
}
@media screen and (max-width:800px){
	#introduction .inner{
		max-width:700px;
		margin-block:54px 0;
	}
	#introduction .release{
		font-size:16px;
	}	
	#introduction .number{
		margin-block:36px 0;
		font-size:14px;
	}
	#introduction .title{
		margin-block:11px 33px;
		font-size:45px;
	}
	#introduction .description{
		margin-block:39px 0;
	}
}

/* #disc
-------------------------------------------------- */
#disc .inner{
	max-width:1040px;
	margin-block:165px 0;
	padding-inline:0;
}
#disc .products{
	position:relative;
	margin-block:40px 0;
}

/* .navigation */
#disc .navigation{
	position:absolute;
	top:0;
	right:0;
	width:min(52.6882vw,586px);
	padding-inline:min(2.1739vw,24px) 30px;
	z-index:1;
}
#disc .slide{
	padding-inline:30px;
	border-block-end:1px solid var(--table-border);
}
#disc .slick-prev,
#disc .slick-next{
	top:43px;
}
#disc .slick-prev{
	left:max(-0.625vw,-16px);
}
#disc .slick-next{
	right:max(-0.625vw,-16px);
}
#disc .slick-dots{
	display:flex;
	column-gap:8px;
	width:fit-content;
	margin-inline:auto;
	padding-block:4px 16px;
}
#disc .slick-dots li{
	display:block;
	width:25px;
	height:11px;
}
#disc .slick-dots button{
	position:relative;
	display:block;
	width:100%;
	height:100%;
	margin:0;
	padding:0;
	font-size:0;
	line-height:0;
	color:transparent;
	border:0;
	outline:0;
	cursor:pointer;
}
#disc .slick-dots button::before{
	position:absolute;
	top:50%;
	left:0;
	display:block;
	width:100%;
	height:3px;
	margin-block-start:-2px;
	border-radius:2px;
	background:var(--slick-dots);
	opacity:0.3;
	transition:0.3s;
	content:'';
}
#disc .slick-dots .slick-active button::before{
	opacity:1;
}
#disc .thumbnail{
	width:auto;
	height:118px;
	padding:12px;
}
#disc .thumbnail .image{
	width:auto;
	height:94px;
}
#disc .thumbnail img{
	width:auto;
	height:94px;
	opacity:0.8;
	transition:0.3s;
	cursor:pointer;
}
#disc .slick-current .thumbnail img{
	opacity:1;
}

/* .product */
#disc .product{
	display:grid;
	grid-template-columns:repeat(2,auto);
}

/* .cover */
#disc .cover{
	width:min(43.6538vw,454px);
	padding-inline:30px min(2.1739vw,24px);
}
#disc .cover ul{
	display:grid;
	grid-template-columns:auto;
	padding-block:12px;
}
#disc .cover img{
	width:100%;
}
#disc .cover .link{
	margin-block:8px 0;
}
#disc .cover .button{
	column-gap:8px;
	min-height:46px;
	font-size:14px;
	line-height:1.2;
}
#disc .cover .button img[alt="SHOP"]{
	width:20px;
	height:auto;
}

/* .details */
#disc .details{
	width:min(52.6882vw,586px);
	padding:184px 30px 0 min(2.1739vw,24px);
}
#disc .details .type{
	font-size:18px;
	font-weight:400;
}
#disc .details .type span{
	font-family:var(--font-en);
}
#disc .details .notice{
	margin-block:1px 0;
	font-size:11px;
	color:var(--notes-color);
}
#disc .details .item{
	display:flex;
	column-gap:4px;
	width:fit-content;
	margin-block:31px 0;
}
#disc .details .type:has(span)+.item{
	margin-top:29px;
}
#disc .details .icon{
	padding:4px 8px 1px 8px;
	line-height:1;
	font-family:var(--font-en);
	border:1px solid var(--table-border);
	background:rgba(255,255,255,0.1);
}
#disc .details .metadata{
	display:flex;
	margin-block:13px 14px;
	font-family:var(--font-en);
}
#disc .details .metadata li:not(:first-of-type)::before{
	display:inline-block;
	padding-inline:0.5em;
	font-weight:100;
	content:'/';
}
#disc .details .package:not(:first-of-type){
	border-block-start:1px solid var(--tracklist-border);
	transition:background 0.3s;
}
#disc .details .format{
	position:relative;
	display:flex;
	justify-content:space-between;
	align-items:center;
	width:100%;
	height:79px;
	font-size:15px;
	font-family:var(--font-en);
	font-weight:400;
	z-index:100;
	cursor:pointer;
}
#disc .details .format span{
	position:relative;
	display:block;
	width:31px;
	height:31px;
	background:var(--button-background);
	border-radius:50%;
	transition:opacity 0.3s;
}
#disc .details .format span::before,
#disc .details .format span::after{
	position:absolute;
	display:block;
	background:#000;
	opacity:1;
	transition:opacity 0.3s;
	content:'';
}
#disc .details .format span::before{
	top:15px;
	left:8px;
	width:15px;
	height:1px;
}
#disc .details .format span::after{
	top:8px;
	left:15px;
	width:1px;
	height:15px;
}
#disc .details .format.active span::after{
	opacity:0;
}
#disc .details .track{
	display:none;
	border-block-start:1px solid var(--tracklist-border);
}
#disc .details .tracklist li{
	position:relative;
	padding-block:18px 20px;
	font-size:12px;
	line-height:1.42;
	font-weight:300;
	border-block-end:1px solid var(--tracklist-border);
}
#disc .details .tracklist li:has(.credits,.collab){
	padding-block-end:19px;
}
#disc .details ol.tracklist li{
	padding-inline-start:30px;
}
#disc .details ol.tracklist{
	counter-reset:track;
}
#disc .details ol.tracklist li::before{
	position:absolute;
	top:16px;
	left:0;
	font-size:15px;
	font-family:var(--font-title);
	font-weight:300;
	counter-increment:track;
	content:counter(track,decimal-leading-zero);
}
#disc .details ul.tracklist li{
	padding-inline-start:20px;
}
#disc .details ul.tracklist li::before{
	position:absolute;
	top:26px;
	left:8px;
	display:block;
	width:4px;
	height:4px;
	border-radius:50%;
	background:#999;
	content:'';
}
#disc .details .title{
	padding-block:18px 17px;
	font-size:13px;
	line-height:var(--default-line-height);
	font-weight:400;
	border-block-end:1px solid var(--tracklist-border);
}
#disc .details .tracklist+.title{
	padding-block:30px 16px;
	border-block-start:none;
}
#disc .details .tracklist .credits,
#disc .details .tracklist .collab{
	font-size:11px;
	line-height:var(--default-line-height);
	color:var(--notes-color);
}
#disc .details .tracklist .credits{
	margin-block:12px 0;
}
#disc .details .tracklist .collab{
	margin-block:5px 0;
}
#disc .details .notes{
	margin-block:18px 0;
	font-size:11px;
	font-weight:300;
}
#disc .details .other{
	margin-block:15px 0;
	font-size:13px;
	font-weight:300;
}
#disc .details .close{
	width:128px;
	margin-inline:auto;
	padding-block:22px 35px;
}
#disc .details .notes+.close{
	padding-block-start:17px;
}
#disc .details .other+.close{
	padding-block-start:17px;
}
#disc .details .package:last-of-type .close{
	padding-block-end:0;
}
#disc .details .close .button{
	min-height:46px;
	font-size:14px;
	font-family:var(--font-en);
	font-weight:600;
}
#disc .details .special{
	margin-block:25px 0;
	font-family:var(--font-en);
	font-weight:400;
}
#disc .details .spec{
	margin-block:31px 8px;
	font-weight:400;
}
#disc .details .spec::before{
	content:'\25A0';
}
#disc .details .list li{
	position:relative;
	padding-inline:16px 0;
}
#disc .details .list li::before{
	position:absolute;
	top:9px;
	left:4px;
	display:block;
	width:4px;
	height:4px;
	border-radius:50%;
	background:#999;
	content:'';
}
#disc .details .list li:not(:first-of-type){
	margin-block:3px 0;
}
#disc .details .list+.spec{
	margin-block:13px 8px;
}
#disc .details .anchor{
	display:grid;
	grid-template-columns:auto;
	row-gap:3px;
	margin-block:12px 0;
}
#disc .details .anchor .button{
	column-gap:8px;
	min-height:46px;
	font-size:14px;
	font-family:var(--font-en);
	font-weight:300;
	border-radius:6px;
}
#disc .details .anchor .button .text{
	padding-block:1px 0;
}
#disc .details .anchor .button .icon{
	display:block;
	padding:6px 15px 5px;
	font-size:12px;
	border-radius:3px;
	background:rgba(0,0,0,0.28);
}
@media screen and (max-width:800px){
	#disc .inner{
		margin-block:123px 0;
	}
	#disc .number{
		width:68px;
		margin-block:21px 22px;
	}
	#disc .products{
		position:static;
		margin-block:34px 0;
	}
	/* .navigation */
	#disc .navigation{
		position:static;
		width:100%;
		padding-inline:0;
	}
	#disc .slide{
		padding-inline:0;
		border-block-end:none;
	}
	#disc .slick-prev,
	#disc .slick-next,
	#disc .slick-dots{
		display:none !important;
	}
	#disc .thumbnail{
		width:100%;
		height:min(22.3vw,126px);
		margin-inline:8px;
		padding-block:8px;
		padding-inline:0;
	}
	#disc .thumbnail img{
		width:auto;
		height:min(19.2vw,110px);
	}
	/* .product */
	#disc .product{
		grid-template-columns:auto;
		max-width:700px;
		margin-inline:auto;
		padding-inline:min(4vw,30px);
	}
	/* .cover */
	#disc .cover{
		width:100%;
		max-width:520px;
		margin-inline:auto;
		padding:0;
	}
	#disc .cover ul{
		margin-block:24px 0;
	}
	#disc .cover .image{
		padding-inline:20px;
	}
	#disc .cover .link{
		padding-inline:20px;
	}

	/* .details */
	#disc .details{
		width:100%;
		padding:35px min(1.6vw,10px) 0;
	}
	#disc .details .type{
		font-size:17px;
	}
}
@media screen and (max-width:600px){
	/* .product */
	#disc .product{
		width:100%;
	}
	/* .cover */
	#disc .cover{
		max-width:initial;
	}
	/* .details */
	#disc .details{
		padding-inline:0;
	}
}
@media (any-hover:hover){
	#disc .thumbnail:hover img{
		box-shadow:0 0 8px rgba(255,255,255,0.25);
		opacity:1;
	}
	#disc .slick-dots button:hover::before{
		opacity:1;
	}
	#disc .details:has(.format:hover) .package:not(:first-of-type),
	#disc .details .format:hover+.track{
		border-block-start-color:transparent;
	}
	#disc .details:has(.package:first-of-type .format.active:hover) .package:not(:first-of-type){
		border-block-start-color:var(--tracklist-border);
	}
	#disc .details .format::after{
		position:absolute;
		top:0;
		right:-18px;
		bottom:0;
		left:-18px;
		display:block;
		border-radius:4px;
		background:rgba(255,255,255,0.06);
		box-shadow:0 0 8px 2px rgba(255,255,255,0.25);
		opacity:0;
		transition:0.3s;
		content:'';
	}
	#disc .details .format:hover::after{
		opacity:1;
	}
	#disc .details .format:hover span{
		opacity:0.7;
	}
}

/* #tracklist
-------------------------------------------------- */
#tracklist .inner{
	max-width:1040px;
	margin-block:140px 0;
}
#tracklist .details{
	margin-block:44px 0;
}
#tracklist .details+.details{
	margin-block:77px 0;
}
#tracklist .details .subheading{
	margin-block:0 30px;
	font:100 26px/1.25 var(--font-ja);
	text-align:center;
}
#tracklist .details .wrapper{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:65px 12px;
}
#tracklist .details #mv{
	margin-top:65px;
}
#tracklist .details .category,
#tracklist .details .title{
	padding:7px 15px;
	font-weight:400;
}
#tracklist .details .category{
	background:#484B51;
}
#tracklist .details .title{
	margin-block:2px 0;
	background:#303236;
}
#tracklist .details .tracklist+.title{
	margin-block:30px 0;
}
#tracklist .details .subtitle{
	padding:25px 15px 8px;
	font-weight:400;
	border-block-end:1px solid var(--tracklist-border);
}
#tracklist .tracklist{
	counter-reset:track;
}
#tracklist .tracklist.cd1{
	counter-reset:track 13;
}
#tracklist .tracklist.cd2{
	counter-reset:track 16;
}
#tracklist .tracklist.mv1{
	counter-reset:track 11;
}
#tracklist .tracklist.mv2{
	counter-reset:track 13;
}
#tracklist .tracklist.mv3{
	counter-reset:track 23;
}
#tracklist .tracklist li,
#tracklist .included li{
	position:relative;
	display:flex;
	align-items:center;
	column-gap:15px;
	padding-inline:15px;
	border-block-end:1px solid var(--tracklist-border);
}
#tracklist .tracklist li::before{
	display:block;
	width:18px;
	min-width:18px;
	font-size:15px;
	color:#797C87;
	font-family:var(--font-en);
	font-weight:400;
	text-align:center;
	counter-increment:track;
	content:counter(track);
}
#tracklist .included li::before{
	position:absolute;
	top:19px;
	left:19px;
	display:block;
	width:4px;
	height:4px;
	border-radius:50%;
	background:#797C87;
	content:'';
}
#tracklist .tracklist .song,
#tracklist .included .song{
	padding-block:11px;
}
#tracklist .included .song{
	padding-inline:16px 0;
}
#tracklist .tracklist .icon{
	display:flex;
	align-items:center;
	column-gap:15px;
	margin-inline-start:auto;
	padding-inline-start:1em;
}
#tracklist .tracklist .icon a{
	display:block;
	width:fit-content;
	height:fit-content;
	line-height:1;
}
#tracklist .tracklist .icon img[alt="Linkfire"]{
	width:19px;
}
#tracklist .tracklist .icon img[alt="Youtube"]{
	width:22px;
}
#tracklist .tracklist .songtitle{
	padding-block:11px;
}
#tracklist .tracklist .songtitle:has(.collaboration){
	padding-block-end:13px;
}
#tracklist .tracklist .songtitle .song{
	padding-block:0;
}
#tracklist .tracklist .songtitle .collaboration{
	margin-block:4px 0;
	font-size:11px;
	color:var(--notes-color);
}
#tracklist .credit{
	margin-block:13px 0;
	font-size:12px;
}
#tracklist .selected{
	padding:11px 15px;
	border-block-end:1px solid var(--tracklist-border);
}
#tracklist .selected a{
	text-decoration:underline;
}
#tracklist .event{
	margin-block:65px 0;
	padding:60px 30px 65px;
	border:1px solid var(--table-border);
}
#tracklist .event .heading{
	font-size:26px;
}
#tracklist .event .heading .tablet{
	display:none;
}
#tracklist .event .lead{
	margin-block:38px 0;
	text-align:center;
}
#tracklist .event .period{
	width:fit-content;
	margin:32px auto 0;
}
#tracklist .event .period dl{
	display:grid;
	grid-template-columns:repeat(2,auto);
	gap:5px 1.2em;
	align-items:start;
	width:fit-content;
	margin-inline:auto;
	font-size:15px;
}
#tracklist .event .period dt{
	padding:6px 18px 5px;
	font-weight:400;
	text-align:center;
	background:#484B51;
}
#tracklist .event .period dd{
	padding-block:6px 5px;
}
#tracklist .event .period dd .list li{
	position:relative;
	padding-inline:16px 0;
}
#tracklist .event .period dd .list li::before{
	position:absolute;
	top:9px;
	left:4px;
	display:block;
	width:4px;
	height:4px;
	border-radius:50%;
	background:#797C87;
	content:'';
}
#tracklist .event .period dd .list li+li{
	margin-block:3px 0;
}
#tracklist .event .period .notes{
	margin-block:12px 0;
	padding-inline:1em 0;
	color:var(--notes-color);
	text-indent:-1em;
}
#tracklist .event .text{
	margin-block:27px 0;
	text-align:center;
}
#tracklist .event .fanclub{
	display:grid;
	grid-template-columns:auto;
	row-gap:17px;
	margin-block:18px 0;
	text-align:center;
}
#tracklist .event .fanclub dt{
	font-weight:400;
}
#tracklist .event .fanclub dd{
	width:fit-content;
	margin-inline:auto;
}
#tracklist .event .fanclub dd a{
	display:flex;
	place-items:center;
	column-gap:8px;
	height:46px;
	padding-inline:65px;
	font:300 14px/1 var(--font-jp);
	color:var(--default-color);
	border-radius:23px;
	border:1px solid rgba(255,255,255,0.65);
	transition:opacity 0.3s;
}
#tracklist .event .fanclub dd a span{
	display:block;
	padding-block:0 1px;
}
#tracklist .event .fanclub dd a img{
	width:12px;
	aspect-ratio:1;
}
@media screen and (max-width:800px){
#tracklist .inner{
	max-width:700px;
	margin-block:103px 0;
}
	#tracklist .details{
		margin-block:31px 0;
	}
	#tracklist .details+.details{
		margin-block:69px 0;
	}
	#tracklist .details .subheading{
		margin-block:0 21px;
		font-size:21px;
	}
	#tracklist .details .wrapper{
		grid-template-columns:auto;
		row-gap:35px;
	}
	#tracklist .details #mv{
		margin-top:35px;
	}
	#tracklist .details .category,
	#tracklist .details .title{
		padding:5px 10px;
	}
	#tracklist .details .title{
		margin-block:1px 0;
	}
	#tracklist .details .tracklist+.title{
		margin-block:22px 0;
	}
	#tracklist .details .subtitle{
		padding:18px 10px 8px;
	}
	#tracklist .tracklist li,
	#tracklist .included li{
		column-gap:10px;
		padding-inline:10px;
	}
	#tracklist .included li::before{
		left:14px;
	}
	#tracklist .credit{
		margin-block-end:-3px;
		font-size:11px;
	}
	#tracklist .selected{
		padding-inline:10px;
	}
	#tracklist .event{
		margin-block:35px 0;
		padding:46px min(4vw,30px) 50px;
	}
	#tracklist .event .heading{
		font-size:21px;
	}
	#tracklist .event .lead{
		margin-block:26px 0;
		text-align:left;
	}
	#tracklist .event .period{
		margin-block:27px 0;
	}
	#tracklist .event .period dl{
		font-size:14px;
	}
	#tracklist .event .period dt{
		padding-block:4px;
	}
	#tracklist .event .period .notes{
		margin-block:8px 0;
	}
	#tracklist .event .text{
		margin-block:22px 0;
	}
	#tracklist .event .fanclub dd a{
		column-gap:6px;
		height:42px;
		padding-inline:55px;
	}
}
@media screen and (max-width:600px){
	#tracklist .event .heading .tablet{
		display:block;
	}
	#tracklist .event .period{
		width:100%;
	}
	#tracklist .event .period dl{
		grid-template-columns:auto;
		gap:0;
		width:100%;
	}
	#tracklist .event .period dd+dt{
		margin-block:12px 0;
	}
	#tracklist .event .period dd{
		margin-block:11px 0;
		text-align:center;
	}
	#tracklist .event .period dd .list li{
		text-align:left;
	}
	#tracklist .event .text{
		text-align:left;
	}
	#tracklist .event .fanclub dt{
		text-align:left;
	}
	#tracklist .event .fanclub dd{
		width:100%;
	}
	#tracklist .event .fanclub dd a{
		justify-content:center;
		padding-inline:0;
	}
}

/* #benefits
-------------------------------------------------- */
#benefits .inner{
	margin-block:169px 0;
}
#benefits .item{
	display:grid;
	grid-template-columns:auto;
	row-gap:30px;
	max-width:900px;
	margin:55px auto 0;
	text-align:center;
}
#benefits .image img{
	box-shadow:0 0 8px 2px rgba(0,0,0,0.1);
}
#benefits .name{
	font-size:18px;
	font-weight:400;
	text-align:center;
}
#benefits .name span{
	display:inline-block;
}
#benefits ul:has(.notes){
	margin:17px auto 0;
}
@media screen and (max-width:800px){
	#benefits .inner{
		max-width:700px;
		margin-block:127px 0;
	}
	#benefits .item{
		row-gap:20px;
		margin-block:42px 0;
	}
	#benefits .image{
		max-width:520px;
		margin-inline:auto;
	}
	#benefits .image picture{
		margin-inline:20px;
	}
	#benefits .name{
		font-size:16px;
	}
	#benefits ul:has(.notes){
		margin-block:15px 0;
		text-align:left;
	}
}

/* #serial
-------------------------------------------------- */
#serial .inner{
	max-width:960px;
	margin-block:169px 145px;
}
#serial .summary{
	margin-block-start:61px;
}
#serial .target{
	margin-block:57px 0;
	padding:60px 30px 65px;
	border:1px solid var(--table-border);
}
#serial .target+.target{
	margin-block:55px 0;
}
#serial .icon{
	width:fit-content;
	margin-inline:auto;
	padding:3px 20px 5px;
	font-size:16px;
	border-radius:4px;
	background:#484B51;
}
#serial .subheading{
	font:100 26px/1.25 var(--font-ja);
	text-align:center;
}
#serial .subheading span{
	display:inline-block;
}
#serial .text{
	margin-block:56px 0;
	text-align:center;
}
#serial .text+.notes{
	margin-block:18px 0;
	color:var(--notice-color);
	font-weight:400;
	text-align:center;
}
#serial .outline{
	display:block;
	margin:52px auto 0;
	border-block-start:1px solid var(--table-border);
}
#serial .application+.outline{
	margin-block:25px 0;
}
#serial .item{
	display:grid;
	grid-template-columns:auto;
	row-gap:33px;
	padding-block:31px 40px;
	border-block-end:1px solid var(--table-border);
}
#serial .item:has(.image:empty){
	row-gap:0;
	padding-block-end:37px;
}
#serial .item:has(.notes){
	padding-block-end:36px;
}
#serial .name{
	display:grid;
	grid-template-columns:58px 1fr;
	align-items:center;
	gap:13px 20px;
}
#serial .name .prize{
	position:relative;
	padding-inline:0 14px;
	font-size:48px;
	line-height:1;
	font-weight:600;
	text-align:center;
}
#serial .name .prize span{
	position:absolute;
	right:0;
	bottom:4px;
	display:block;
	font-size:14px;
}
#serial .name .title{
	display:flex;
	align-items:center;
	gap:8px 1em;
	width:fit-content;
	padding-block:6px 0;
	font-size:20px;
	font-weight:400;
}
#serial .name .title .tour{
	display:block;
	font-size:15px;
}
#serial .name .title br{
	display:none;
}
#serial .name .title .number{
	display:flex;
	align-items:end;
	width:fit-content;
	padding:7px 15px 9px;
	font-size:15px;
	line-height:1;
	border-radius:3px;
	background:#222;
}
#serial .name .title .number span{
	display:inline-block;
	padding-block:0 1px;
	font-size:10px;
}
#serial .name .title .number span:first-of-type{
	padding-inline:0 7px;
}
#serial .name .title .number span:last-of-type{
	padding-inline:3px 0;
}
#serial .name .title br{
	display:none;
}
#serial .content{
	padding-inline:78px;
}
#serial .event{
	display:grid;
	grid-template-columns:auto;
	row-gap:5px;
}
#serial .schedule{
	display:grid;
	grid-template-columns:auto 1fr;
	gap:11px 1em;
	padding:25px 25px 27px;
	font-size:16px;
	font-weight:400;
	border-radius:6px;
	background:#222;
}
#serial .schedule .type span{
	display:block;
	width:calc(3em + 36px);
	padding:5px 18px 6px;
	font-size:14px;
	line-height:1;
	color:#FFF;
	text-align:center;
	border-radius:3px;
	background:#000;
}
#serial .schedule .details>*{
	display:grid;
	grid-template-columns:repeat(2,auto);
	width:fit-content;
}
#serial .schedule .applicants{
	column-gap:10px;
}
#serial .schedule .performers{
	margin-block:4px 0;
}
#serial .schedule .people{
	display:inline-block;
	padding-inline:2px 0;
	font-size:12px;
}
#serial .schedule .appearance::after{
	display:inline-block;
	padding-inline:4px;
	content:'\FF1A';
}
#serial .schedule .member{
	display:flex;
	flex-wrap:wrap;
}
#serial .schedule .member li:not(:last-of-type)::after{
	display:inline-block;
	padding-inline:1px 10px;
	content:',';
}
#serial .schedule .date{
	gap:5px 8px;
	margin-block:17px 0;
	font-size:14px;
	font-weight:400;
}
#serial .event+ul{
	margin-block:11px 0;
}
#serial .all{
	/*margin:55px auto 0;*/
	margin-inline:auto;
	/*border-block-start:1px solid var(--table-border);*/
}
#serial .all .item{
	row-gap:43px;
	padding-block-start:43px;
}
#serial .all .name{
	grid-template-columns:auto 1fr;
}
#serial .all .name .prize{
	position:static;
	padding-inline:0;
	font-size:20px;
	font-weight:500;
	text-align:left;
}
#serial .all .name .title{
	padding-block:0;
}
#serial .application{
	max-width:850px;
	margin:25px auto 0;
	padding-block:26px 32px;
	padding-inline:0;
	text-align:center;
	background:var(--box-background);
}
#serial .application .title{
	font-size:20px;
	font-weight:400;
}
#serial .application .period{
	display:grid;
	grid-template-columns:repeat(2,auto);
	width:fit-content;
	margin-block:17px 0;
	margin-inline:auto;
}
#serial .application .date{
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	row-gap:8px;
	font-family:var(--font-en);
	line-height:1;
}
#serial .application .yyyymmdd{
	font-size:24px;
	font-weight:400;
}
#serial .application .time{
	display:flex;
	column-gap:5px;
	width:fit-content;
	font-size:16px;
	font-weight:300;
}
#serial .application .end{
	padding-inline-start:40px;
}
#serial .application .end::before{
	position:absolute;
	top:0;
	left:12px;
	font-size:16px;
	line-height:24px;
	font-weight:300;
	font-family:var(--font-ja);
	content:'\FF5E';
}
#serial .link{
	width:320px;
	margin:25px auto 0;
}
@media screen and (max-width:800px){
	#serial .image{
		margin-inline:20px;
	}
	#serial .inner{
		max-width:700px;
		margin-block:127px 113px;
	}
	#serial .summary{
		margin-block-start:42px;
	}
	#serial .target{
		margin-block:40px 0;
		padding:41px 15px 45px;
	}
	#serial .target+.target{
		margin-block:35px 0;
	}
	#serial .icon{
		padding:4px 15px;
		font-size:13px;
	}
	#serial .subheading{
		font-size:21px;
	}
	#serial .text{
		margin-block:43px 0;
		text-align:left;
	}
	#serial .text+.notes{
		margin-block:15px 0;
		text-align:left;
	}
	#serial .outline{
		margin-block:32px 0;
	}
	#serial .item{
		row-gap:22px;
		padding-block:25px 35px;
	}
	#serial .item:has(.image:empty){
		padding-block-end:31px;
	}
	#serial .item:has(.notes){
		padding-block-end:31px;
	}
	#serial .name{
		grid-template-columns:auto;
	}
	#serial .name .prize{
		width:fit-content;
		margin-inline:auto;
		padding-inline:0 15px;
		font-size:35px;
	}
	#serial .name .prize span{
		bottom:2px;
		font-size:11px;
	}
	#serial .name .title{
		flex-direction:column;
		margin-inline:auto;
		padding-block:0;
		font-size:18px;
		text-align:center;
	}
#serial .name .title .tour{
	display:inline-block;
	font-size:14px;
}
	#serial .name .title .number{
		padding-inline:22px;
	}
	#serial .content{
		padding-inline:0;
	}
	#serial .schedule{
		grid-template-columns:auto;
		padding-block:20px 17px;
		padding-inline:10px;
		font-size:15px;
	}
	#serial .schedule .type span{
		width:fit-content;
		margin-inline:auto;
		/*padding-block:5px 6px;
		padding-inline:22px;*/
		font-size:14px;
	}
	#serial .schedule .applicants{
		margin-inline:auto;
	}
	#serial .schedule .performers{
		margin-inline:auto;
	}
	#serial .schedule .appearance::after{
		padding-inline:3px;
	}
	#serial .schedule .member li:not(:last-of-type)::after{
		padding-inline:0 7px;
	}
	#serial .schedule .date{
		margin:12px auto 0;
	}
/* 
	#serial .all{
		 margin-block:55px 0;
	}
 */
	#serial .all .item{
		row-gap:16px;
		padding-block-start:34px;
	}
	#serial .all .name{
		grid-template-columns:auto;
		row-gap:8px;
	}
	#serial .all .name .prize{
		font-size:18px;
	}
	#serial .all .name .title{
		padding-block:0;
	}
	#serial .application{
		margin-block:25px 0;
		padding-block:17px 22px;
	}
	#serial .application .title{
		font-size:17px;
	}
	#serial .application .period{
		margin-block:12px 0;
	}
	#serial .application .date{
		row-gap:7px;
	}
	#serial .application .yyyymmdd{
		font-size:19px;
	}
	#serial .application .time{
		column-gap:4px;
		font-size:12px;
	}
	#serial .application .end{
		padding-inline-start:28px;
	}
	#serial .application .end::before{
		left:7px;
		font-size:13px;
		line-height:19px;
	}
	#serial .link{
		width:100%;
	}
}
@media screen and (max-width:429px){
	#serial .name .title br{
		display:block;
	}
}

/* #campaign
-------------------------------------------------- */
#campaign .inner{
	max-width:960px;
	margin-block:137px 0;
}
#campaign .link{
	display:grid;
	grid-template-columns:auto;
	row-gap:10px;
	width:100%;
	max-width:840px;
	margin-block:59px 0;
}
#campaign .link a{
	display:grid;
	place-items:center;
	min-height:108px;
	font-size:18px;
	color:var(--default-color);
	font-weight:400;
	text-align:center;
	border-radius:6px;
	background:var(--button-background);
	transition:opacity 0.3s;
}
#campaign .link span{
	display:block;
	padding-block:0 1px;
}
#campaign .link br{
	display:none;
}
@media screen and (max-width:800px){
	#campaign .inner{
		max-width:700px;
		margin-block:104px 0;
	}
	#campaign .link{
		margin-block:42px 0;
	}
	#campaign .link a{
		min-height:90px;
		font-size:16px;
	}
	#campaign .link br{
		display:block;
	}
}
@media (any-hover:hover){
	#campaign .link a:hover{
		opacity:0.7;
	}
}

/* #title */
#title{
	display:grid;
	place-content:center;
	min-height:199px;
	padding-inline:min(4vw,30px);
	font-size:30px;
	font-weight:100;
	background:var(--title-background);
}
#title p{
	padding-block:0 3px;
}
@media screen and (max-width:800px){
	#title{
		min-height:148px;
		font-size:19px;
	}
	#title p{
		padding-block:0 1px;
	}
}

/* breadcrumb */
#breadcrumb{
	background:var(--breadcrumb-background);
}
#breadcrumb ol{
	display:grid;
	grid-template-columns:repeat(4,auto);
	width:fit-content;
	margin-inline:auto;
}
#breadcrumb li{
	position:relative;
	padding-block:13px 15px;
	font-size:16px;
	line-height:1.5;
	color:var(--breadcrumb-color);
	font-weight:400;
}
#breadcrumb li:not(:first-of-type){
	padding-inline-start:77px;
}
#breadcrumb li:not(:first-of-type)::before{
	position:absolute;
	top:50%;
	left:31px;
	display:block;
	width:9px;
	height:9px;
	border-block-start:1px solid var(--breadcrumb-color);
	border-inline-end:1px solid var(--breadcrumb-color);
	transform:translateY(-50%) rotate(45deg);
	content:'';
}
#breadcrumb li.active{
	color:var(--breadcrumb-active);
}
@media screen and (max-width:800px){
	#breadcrumb li{
		padding-block:9px;
		font-size:14px;
	}
	#breadcrumb li:not(:first-of-type){
		padding-inline-start:37px;
	}
	#breadcrumb li:not(:first-of-type)::before{
		left:13px;
		width:7px;
		height:7px;
	}
}

/* error */
.error{
	padding:25px min(4.8vw,30px) 27px;
	background:var(--error-background);
}
.error ul{
	display:grid;
	grid-template-columns:auto;
	row-gap:12px;
}
.error li{
	font-size:var(--contents-font-size);
	color:var(--error-color);
	font-weight:400;
	text-align:center;
}
@media screen and (max-width:800px){
	.error{
		padding-top:21px;
		padding-bottom:22px;
	}
	.error ul{
		row-gap:11px;
	}
	.error li{
		font-size:14px;
	}
}

/* message */
.message{
	margin:111px 0 -6px;
}
.message p{
	font-size:28px;
	font-weight:100;
	text-align:center;
}
@media screen and (max-width:800px){
	.message{
		margin-block:94px -4px;
	}
	.message p{
		font-size:19px;
	}
}

/* table */
.table table{
	width:100%;
	margin:0 auto;
	border-top:1px solid var(--table-border);
}
.table tr{
	border-bottom:1px solid var(--table-border);
}
.table th,
.table td{
	font-size:16px;
	vertical-align:top;
}
.table th{
	padding:37px 50px 39px 0;
	font-weight:400;
	white-space:nowrap;
}
.table td{
	width:100%;
}
@media screen and (max-width:800px){
	.table table,
	.table tbody,
	.table tr,
	.table th,
	.table td{
		display:block;
	}
	.table th,
	.table td{
		font-size:14px;
	}
	.table th{
		padding:0;
		white-space:initial;
	}
}

/* #hashtag
-------------------------------------------------- */
#hashtag{
	overflow:hidden;
	overflow-y:auto;
}
#hashtag .contents .inner{
	padding-block-end:110px;
	font-size:var(--contents-font-size);
}
#hashtag .heading{
	margin-inline:calc(50% - 50vw);
	padding:33px calc(50vw - 50%) 36px;
	font-size:28px;
	line-height:var(--default-line-height);
	text-align:left;
	background:var(--title-background);
}
#hashtag .content:not(:first-of-type){
	margin-block-start:57px;
	padding-block-start:53px;
	border-block-start:1px solid var(--table-border);
}
#hashtag .subheading{
	text-align:left;
	margin-block-end:25px;
	font-size:22px;
	font-weight:200;
}
#hashtag .lead{
	margin-block-start:58px;
	line-height:1.8;
}
#hashtag #participate{
	margin-block-start:108px;
}
#hashtag #participate ol{
	display:grid;
	grid-template-columns:auto;
	row-gap:10px;
	counter-reset:flow;
}
#hashtag #participate li{
	position:relative;
	padding-left:1.3em;
}
#hashtag #participate li::before{
	position:absolute;
	top:0;
	left:0;
	counter-increment:flow;
	content:counter(flow)'.';
}
#hashtag #period{
	font-weight:400;
}
#hashtag #period .notes{
	margin-block-start:10px;
	color:var(--notice-color);
}
#hashtag #precautions .notes{
	color:var(--notice-color);
	font-weight:400;
}
#hashtag #stores .subheading{
	margin-block-end:24px;
}
#hashtag #stores .store{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	column-gap:24px;
}
#hashtag #stores .region:nth-of-type(n+3){
	margin-block-start:62px;
	padding-block-start:59px;
	border-block-start:1px solid rgb(255,255,255,0.18);
}
#hashtag #stores .name{
	font-size:19px;
	font-family:var(--font-ja-serif);
	font-weight:300;
}
#hashtag #stores .prefectures:first-of-type{
	margin-block-start:17px;
}
#hashtag #stores .prefectures:not(:first-of-type){
	margin-block-start:52px;
}
#hashtag #stores .area{
	margin-block-end:13px;
	padding:3px 16px 5px;
	font-weight:400;
	border-radius:4px;
	background:var(--box-background);
}
@media screen and (max-width:800px){
	#hashtag .contents .inner{
		max-width:700px;
		padding-block:0 73px;
	}
	#hashtag .heading{
		padding-block:17px 18px;
		font-size:18px;
	}
	#hashtag .content:not(:first-of-type){
		margin-block-start:47px;
		padding-block-start:45px;
	}
	#hashtag .subheading{
		margin-block-end:24px;
		font-size:18px;
	}
	#hashtag .lead{
		margin-block-start:32px;
	}
	#hashtag #participate{
		margin-block-start:70px;
	}
	#hashtag #participate ol{
		row-gap:11px;
	}
	#hashtag #period .notes{
		margin-block-start:11px;
	}
	#hashtag #stores .subheading{
		margin-block-end:28px;
	}
	#hashtag #stores .store{
		grid-template-columns:auto;
	}
	#hashtag #stores .region:nth-of-type(n+2){
		margin-block:68px 0;
		padding-block:0;
		border-block-start:none;
	}
	#hashtag #stores .name{
		padding:4px 16px 5px;
		font-size:14px;
		font-weight:400;
		border-radius:4px;
		background:#484B51;
	}
	#hashtag #stores .prefectures:first-of-type{
		margin-block-start:2px;
	}
	#hashtag #stores .prefectures:not(:first-of-type){
		margin-block-start:47px;
	}
	#hashtag #stores .area{
		margin-block-end:14px;
		padding-block:4px 5px;
	}
}

/* #tower
-------------------------------------------------- */
#tower{
	overflow:hidden;
	overflow-y:auto;
}
#tower .contents .inner{
	padding-block-end:110px;
	font-size:var(--contents-font-size);
}
#tower .heading{
	display:grid;
	align-items:center;
	min-height:153px;
	margin-inline:calc(50% - 50vw);
	padding:33px calc(50vw - 50%) 36px;
	font-size:28px;
	line-height:var(--default-line-height);
	text-align:left;
	background:var(--title-background);
}
#tower .content:not(:first-of-type){
	margin-block-start:57px;
	padding-block-start:53px;
	border-block-start:1px solid var(--table-border);
}
#tower .subheading{
	text-align:left;
	margin-block-end:25px;
	font-size:22px;
	font-weight:200;
}
#tower .lead{
	margin-block-start:58px;
	line-height:1.8;
}
#tower .data{
	margin-block-start:32px;
}
#tower .data dt{
	width:fit-content;
	margin-block-end:13px;
	padding:3px 16px 5px;
	font-weight:400;
	border-radius:4px;
	background:var(--box-background);
}
#tower .data dd+dt{
	margin-block-start:22px;
}
#tower #poster{
	margin-block-start:108px;
}
#tower #poster .image{
	width:300px;
	margin-block:30px;
}
#tower #poster .notes{
	margin-block-start:10px;
	color:var(--notice-color);
	font-weight:400;
}
#tower #panel .shop{
	display:flex;
	flex-wrap:wrap;
}
#tower #panel .shop li:not(:last-of-type)::after{
	display:inline-block;
	padding-inline:1ex;
	content:'/';
}
#tower #precautions .notes{
	color:var(--notice-color);
	font-weight:400;
}
@media screen and (max-width:800px){
	#tower .contents .inner{
		max-width:700px;
		padding-block:0 73px;
	}
	#tower .heading{
		min-height:89px;
		padding-block:17px 18px;
		font-size:18px;
	}
	#tower .content:not(:first-of-type){
		margin-block-start:47px;
		padding-block-start:45px;
	}
	#tower .subheading{
		margin-block-end:24px;
		font-size:18px;
	}
	#tower .lead{
		margin-block-start:32px;
	}
	#tower .data{
		margin-block-start:29px;
	}
	#tower .data dt{
		width:100%;
		margin-block-end:14px;
		padding-block:4px 5px;
	}
	#tower #poster{
		margin-block-start:70px;
	}
	#tower #poster .notes{
		margin-block-start:11px;
	}
	#tower #poster .image{
		width:100%;
		margin-block:28px;
		padding-inline:20px;
	}
}

/* #header
-------------------------------------------------- */
#header{
	padding:32px min(4vw,30px) 37px;
	text-align:center;
}
#header:not(:has(.campaign)){
	padding-block-end:30px;
}
#header .number{
	font-size:14px;
	line-height:1;
	font-family:var(--font-en);
}
#header .campaign{
	font-size:16px;
}
#header .title{
	width:142px;
	margin:22px auto 30px;
}
@media screen and (max-width:800px){
	#header{
		padding-block:16px 27px;
	}
	#header:not(:has(.campaign)){
		padding-block-end:16px;
	}
	#header .number{
		font-size:11px;
	}
	#header .campaign{
		font-size:14px;
	}
	#header .title{
		width:90px;
		margin-block:18px 24px;
	}
}

/* #authentication
-------------------------------------------------- */
#authentication .inner:last-of-type{
	padding-block:59px 0;
}
#authentication .form input[type=text]{
	text-align:center;
}
@media screen and (max-width:800px){
	#authentication .inner:last-of-type{
		padding-block:50px 0;
	}
	#authentication .inner:last-of-type>.subheading{
		text-align:left;
	}
}

/* #send
-------------------------------------------------- */
#send{
	border-block-start:1px solid var(--table-border);
}
#send .box{
	padding-block-end:65px;
}
#send .button{
	min-height:46px;
}
@media screen and (max-width:800px){
	#send .box{
		margin-block:42px 0;
		padding-block-end:50px;
	}
}

/* #verified
-------------------------------------------------- */
#verified{
	border-top:1px solid var(--table-border);
}
#verified .contents{
	padding-block-end:95px;
}
@media screen and (max-width:767px){
	#verified .contents{
		padding-block-end:77px;
	}
}

/* #terms
-------------------------------------------------- */
#terms .contents{
	padding-block:79px 97px;
}
#terms .inner:first-of-type{
	margin-block-end:65px;
}
@media screen and (max-width:800px){
	#terms .contents{
		padding-block:60px 69px;
	}
	#terms .inner:first-of-type{
		margin-block-end:55px;
	}
	#terms .inner:first-of-type>.subheading{
		text-align:left;
	}
}

/* #entry
-------------------------------------------------- */
#entry .contents{
	padding-block-start:79px;
}
#entry .address{
	margin-block-end:50px;
	font-size:20px;
	font-weight:400;
}
#entry .prize{
	display:grid;
	grid-template-columns:1fr;
	row-gap:12px;
	margin-block-end:45px;
}
#entry .prize .items{
	padding:21px 40px 30px;
	background:var(--box-background);
}
#entry .prize .items:has(:checked){
	background:var(--button-background);
}
#entry .radio:has(input[type=radio]:checked){
	background:color-mix(in srgb, #FFF 25%,transparent);
}
#entry .prize .name{
	display:grid;
	grid-template-columns:58px 1fr;
	align-items:center;
	gap:14px 20px;
	margin-block-end:29px;
}
#entry .prize .name dt{
	position:relative;
	width:58px;
	margin-inline:auto;
	padding-inline-end:14px;
	font-size:48px;
	line-height:1;
	font-weight:600;
	text-align:center;
}
#entry .prize .name dt span{
	position:absolute;
	right:0;
	bottom:4px;
	display:block;
	font-size:14px;
}
#entry .prize .name dd{
	padding-block-start:6px;
	font-size:20px;
	font-weight:400;
}
#entry .prize .name dd span{
	display:block;
	font-size:15px;
}
#entry .prize .name dd br{
	display:none;
}
#entry .prize .part+.part{
	margin-block-start:5px;
}
#entry .prize .part .icon{
	display:inline-block;
	margin:-4px 8px 0 0;
	padding:3px 12px 4px;
	font-size:13px;
	line-height:1;
	color:#FFF;
	font-weight:400;
	vertical-align:middle;
	border-radius:3px;
	background:#000;
}
#entry .prize .radio br{
	display:none;
}
#entry .prize .items:has(:disabled) .name{
	color:#878C8F;
}
#entry .prize .items:has(:disabled) .icon{
	color:#878C8F;
}
#entry .table td{
	padding-block:27px;
}
#entry .table .name{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	column-gap:40px;
}
#entry .table .name dl{
	display:grid;
	grid-template-columns:2em 1fr;
	column-gap:1em;
}
#entry .table .name dt{
	align-self:center;
	font-weight:400;
	padding-block-end:2px;
}
#entry .table .zip{
	display:grid;
	grid-template-columns:repeat(2,auto);
	column-gap:10px;
	width:fit-content;
}
#entry .table .zip ul{
	display:grid;
	grid-template-columns:repeat(2,120px);
	column-gap:10px;
}
#entry .table .zip div{
	width:160px;
}
#entry .table .zip input{
	text-align:center;
}
#entry .table .zip .button{
	min-height:46px;
}
#entry .table .tel{
	display:grid;
	grid-template-columns:repeat(3,120px);
	column-gap:10px;
	width:fit-content;
}
#entry .table .tel input{
	text-align:center;
}
#entry .link{
	margin-top:42px;
}
@media screen and (max-width:800px){
	#entry .contents{
		padding-block-start:60px;
	}
	#entry .address{
		margin-block-end:31px;
		font-size:18px;
	}
	#entry .prize{
		row-gap:10px;
		margin-block-end:25px;
	}
	#entry .prize .items{
		padding:16px min(3.2vw,30px) 25px;
	}
	#entry .prize .name{
		grid-template-columns:1fr;
		margin-block-end:21px;
		text-align:center;
	}
	#entry .prize .name dd{
		padding:0;
		font-size:18px;
	}
	#entry .prize .name dd span{
		font-size:14px;
	}
	#entry .prize .part .icon{
		margin-block-start:-2px;
		padding:3px 10px 4px;
		font-size:11px;
	}
	#entry .table tr{
		padding-block:21px 25px;
	}
	#entry .table th{
		padding-block-end:9px;
	}
	#entry .table td{
		padding:0;
	}
	#entry .table .name{
		grid-template-columns:100%;
		row-gap:8px;
	}
	#entry .table .name dl{
		column-gap:0.5em;
	}
	#entry .table .zip{
		column-gap:8px;
		width:100%;
	}
	#entry .table .zip ul{
		grid-template-columns:repeat(2,1fr);
		column-gap:8px;
	}
	#entry .table .zip div{
		width:120px;
	}
	#entry .table .tel{
		grid-template-columns:repeat(3,1fr);
		column-gap:8px;
		width:100%;
	}
	#entry .link{
		margin-block-start:25px;
	}
}
@media screen and (max-width:499px){
	#entry .prize .name dd br{
		display:block;
	}
	#entry .prize .name dd span{
		display:inline-block;
	}
	#entry .prize .part .icon{
		margin:0 0 4px 0;
	}
	#entry .prize .radio br{
		display:block;
	}
	#entry .prize .radio:has(br) {
		padding-block-start:14px;
	}
	#entry .prize .radio:has(br) input[type=radio]+span::before{
		top:12px;
	}
	#entry .prize .radio:has(br) input[type=radio]+span::after{
		top:17px;
	}
	#entry .radio input[type=radio]+span{
		margin-inline:0;
	}
}

/* #confirm
-------------------------------------------------- */
#confirm .contents{
	padding-block-start:79px;
}
#confirm .address{
	margin-block-end:50px;
	font-size:20px;
	font-weight:400;
}
#confirm .table td{
	padding-block:37px 39px;
}
#confirm .link{
	display:grid;
	grid-template-columns:repeat(2,auto);
	direction:rtl;
	column-gap:30px;
	width:fit-content;
	max-width:initial;
	margin-block-start:42px;
}
#confirm .link li:first-of-type input{
	width:480px;
}
#confirm .link li:last-of-type input{
	width:200px;
}
@media screen and (max-width:800px){
	#confirm .contents{
		padding-block-start:60px;
	}
	#confirm .address{
		margin-block-end:31px;
		font-size:18px;
	}
	#confirm .table tr{
		padding-block:21px 22px;
	}
	#confirm .table th{
		padding-block-end:5px;
	}
	#confirm .table td{
		padding:0;
	}
	#confirm .link{
		grid-template-columns:100%;
		row-gap:18px;
		width:100%;
		margin-block-start:25px;
	}
	#confirm .link li:first-of-type input,
	#confirm .link li:last-of-type input{
		width:100%;
	}
}

/* #complete
-------------------------------------------------- */
#complete .contents{
	padding-block-end:97px;
}
#complete .subheading+.subheading{
	margin-block-start:24px;
}
#complete strong{
	color:var(--notice-color);
	font-weight:400;
}
#complete .link{
	margin-block-start:55px;
}
#complete .customer{
	margin-block-start:72px;
}
@media screen and (max-width:800px){
	#complete .contents{
		padding-block-start:61px;
	}
	#complete .inner .subheading+.subheading{
		margin-block-start:23px;
		text-align:left;
	}
	#complete .link{
		margin-block-start:45px;
	}
	#complete .customer{
		margin-block-start:63px;
	}
}

/* #present
-------------------------------------------------- */
#present .contents{
	padding-block-start:80px;
}
#present .form{
	margin-block-start:47px;
}
@media screen and (max-width:800px){
	#present .contents{
		padding-block-start:61px;
	}
	#present .subheading{
		text-align:left;
	}
	#present .form{
		margin-block-start:40px;
	}
}

/* #download
-------------------------------------------------- */
#download .contents{
	padding-block:85px 97px;
}
#download video{
	width:100%;
	vertical-align:bottom;
}
#download .notes{
	margin-block-start:21px;
	text-align:center;
}
@media screen and (max-width:800px){
	#download .contents{
		padding-block:65px 95px;
	}
	#download .notes{
		margin-block-start:20px;
		text-align:left;
	}
}

/* form
-------------------------------------------------- */
/* input, textarea */
input,
textarea{
	color:var(--form-text-color);
	line-height:var(--form-line-height);
}
input[type=text],
textarea{
	width:100%;
	font-size:16px;
	border-radius:5px;
	background:var(--form-input-background);
}
input[type=text]{
	padding:10px 18px 12px;
}
textarea{
	height:188px;
	padding:10px 18px 12px;
}
input.serial{
	padding:10px 18px 12px;
	text-align:center;
}
@media screen and (max-width:800px){
	input[type=text],
	textarea{
		font-size:14px;
		border-radius:4px;
	}
	input[type=text]{
		padding:11px 12px 12px;
	}
	textarea{
		height:150px;
		padding:11px 12px 12px;
	}
	input.serial{
		padding:7px 12px 9px;
		font-size:16px;
	}
}

/* button */
input[type=submit]{
	width:100%;
	min-height:46px;
	padding:10px 12px 12px;
	font-size:var(--button-font-size);
	color:var(--button-color);
	font-weight:400;
	text-align:center;
	border-radius:27px;
	background:var(--button-background);
	cursor:pointer;
}
input[type=submit].cancel{
	color:var(--cancel-text);
	background:var(--cancel-background);
}
@media screen and (max-width:800px){
	input[type=submit]{
		min-height:44px;
		padding-block:10px 11px;
	}
}

/* radio */
.radio{
	display:block;
	padding:10px 18px 12px;
	font-size:16px;
	line-height:var(--form-line-height);
	color:var(--form-box-text);
	font-weight:400;
	border-radius:5px;
	background:var(--form-box-background);
	cursor:pointer;
}
.radio input[type=radio]{
	display:none;
}
.radio input[type=radio]+span{
	position:relative;
	display:block;
	width:fit-content;
	margin:0 auto;
	padding-inline-start:30px;
}
.radio input[type=radio]+span::before,
.radio input[type=radio]+span::after{
	position:absolute;
	display:block;
	border-radius:50%;
	content:'';
}
.radio input[type=radio]+span::before{
	top:3px;
	left:0;
	width:20px;
	height:20px;
	background:#FFF;
}
.radio input[type=radio]+span::after{
	top:8px;
	left:5px;
	width:10px;
	height:10px;
	background:#000;
	opacity:0;
}
.radio input[type=radio]:checked+span::after{
	opacity:1;
}
.radio:has(input[type=radio]:checked){
	background:var(--button-background);
}
.radio:has(input[type=radio]:disabled){
	color:#878C8F;
	cursor:default;
}
.radio input[type=radio]:disabled+span::before{
	background:#878C8F;
}
@media screen and (max-width:800px){
	.radio{
		padding:11px 12px 12px;
		font-size:14px;
		border-radius:4px;
	}
	.radio input[type=radio]+span{
		padding-inline-start:28px;
	}
	.radio input[type=radio]+span::before{
		top:2px;
		width:18px;
		height:18px;
	}
	.radio input[type=radio]+span::after{
		top:7px;
		left:5px;
		width:8px;
		height:8px;
	}
	.radio input[type=radio]+span::after{
		border-width:6px;
	}
}

/* checkbox */
.checkbox{
	display:block;
	padding:10px 18px 12px;
	font-size:16px;
	line-height:var(--form-line-height);
	color:var(--form-box-text);
	font-weight:400;
	border-radius:5px;
	background:var(--form-box-background);
	cursor:pointer;
}
.checkbox input[type=checkbox]{
	display:none;
}
.checkbox input[type=checkbox]+span{
	position:relative;
	display:block;
	width:fit-content;
	margin:0 auto;
	padding-inline:32px 0;
}
.checkbox input[type=checkbox]+span::before,
.checkbox input[type=checkbox]+span::after{
	position:absolute;
	display:block;
	content:'';
}
.checkbox input[type=checkbox]+span::before{
	top:2px;
	left:0;
	width:22px;
	height:22px;
	border-radius:2px;
	background:rgba(255,255,255,1);
}
.checkbox input[type=checkbox]+span::after{
	top:4px;
	left:7px;
	width:9px;
	height:15px;
	border-inline-end:3px solid #000;
	border-block-end:3px solid #000;
	transform:rotate(45deg);
	transform-origin:center;
	opacity:0;
}
.checkbox input[type=checkbox]:checked+span::after{
	opacity:1;
}
.checkbox:has(input[type=checkbox]:checked){
	color:#FFF;
	background:var(--button-background);
}
@media screen and (max-width:800px){
	.checkbox{
		padding:11px 12px 12px;
		font-size:14px;
		border-radius:4px;
	}
	.checkbox input[type=checkbox]+span{
		padding-inline:30px 0;
	}
	.checkbox input[type=checkbox]+span::before{
		top:1px;
		width:20px;
		height:20px;
	}
	.checkbox input[type=checkbox]+span::after{
		top:3px;
		width:7px;
		height:13px;
		border-inline-end-width:2px;
		border-block-end-width:2px;
	}
}

/* .serial */
.serial::placeholder{
	font-size:16px;
	color:#878C8F;
	font-weight:400;
}
.serial:focus::placeholder{
	color:transparent;
}
@media screen and (max-width:800px){
	.serial::placeholder{
		font-size:14px;
	}
}

/* .toTop
-------------------------------------------------- */
.toTop{
	position:fixed;
	right:25px;
	bottom:25px;
	width:52px;
	height:52px;
	z-index:100;
}
.toTop img{
	display:block;
	filter:drop-shadow(0 0 15px rgba(0,0,0,.1));
	transition:0.3s;
	cursor:pointer;
}
@media screen and (max-width:767px){
	.toTop{
		right:15px;
		bottom:15px;
		width:44px;
		height:44px;
	}
}
@media screen and (min-width:768px){
	.toTop img:hover{
		transform:scale(1.03);
	}
}

/* .modal
-------------------------------------------------- */
.modalBg{
	position:fixed;
	top:0;
	right:0;
	bottom:0;
	left:0;
	display:none;
	background:rgba(0,0,0,0.8);
	z-index:200;
}
.modalBg[data-index="1"]{
	z-index:206
}
.modalClose{
	position:fixed;
	top:36px;
	right:32px;
	display:none;
	width:28px;
	height:28px;
	z-index:205;
	cursor:pointer;
}
.modalClose::before,
.modalClose::after{
	position:absolute;
	top:50%;
	left:50%;
	display:block;
	width:36px;
	height:1px;
	background:#fff;
	content:'';
}
.modalClose::before{
	transform:translate(-50%,-50%) rotate(45deg);
}
.modalClose::after{
	transform:translate(-50%,-50%) rotate(-45deg);
}
.modalClose[data-index="1"]{
	z-index:208;
}
.modal{
	position:fixed;
	top:50%;
	left:50%;
	display:none;
	width:calc(100% - 60px);
	max-width:1366px;
	/*max-height:calc(100vh - 128px);*/
	transform:translate(-50%,-50%);
	overflow-y:scroll;
	z-index:201;
}
.modal[data-index="1"]{
	z-index:209;
}
.modal::-webkit-scrollbar{
	display:none;
	-webkit-appearance:none;  
}
@media screen and (max-width:767px){
	.modal{
		width:calc(100% - 30px);
		max-width:initial;
	}
}

/* .slick
-------------------------------------------------- */
.slick-slider{
	position:relative;
	display:block;
	box-sizing:border-box;
	touch-action:pan-y;
}
.slick-slider .slick-list,
.slick-slider .slick-track{
	transform:translateZ(0);
}
.slick-list{
	position:relative;
	display:block;
	margin:0;
	padding:0;
	overflow:hidden;
}
.slick-list:focus{
	outline:none;
}
.slick-track{
	position:relative;
	top:0;
	left:0;
	display:block;
	margin:0 auto;
}
.slick-track::before,
.slick-track::after{
	display:table;
	content:'';
}
.slick-track::after{
	clear:both;
}
.slick-slide{
	display:none;
	float:left;
	height:100%;
	min-height:1px;
}
.slick-initialized .slick-slide{
	display:block;
}
.slick-prev,
.slick-next{
	position:absolute;
	display:block;
	width:32px;
	height:32px;
	padding:0;
	line-height:0;
	color:transparent;
	border:none;
	border-radius:50%;
	background:var(--slick-button);
	/*box-shadow:0 0 20px 0 rgba(0,0,0,0.12);*/
	cursor:pointer;
	transition:0.3s;
	z-index:10;
}
.slick-prev::before,
.slick-next::before{
	position:absolute;
	top:calc(50% - 4px);
	display:block;
	width:8px;
	height:8px;
	transform:rotate(-45deg) translate(-50%,-50%);
	transition:0.3s;
	content:'';
}
.slick-prev::before{
	left:calc(50% + 3px);
	border-top:1px solid var(--slick-arrow);
	border-left:1px solid var(--slick-arrow);
}
.slick-next::before{
	left:50%;
	border-right:1px solid var(--slick-arrow);
	border-bottom:1px solid var(--slick-arrow);
}
.slick-prev.slick-disabled,
.slick-next.slick-disabled{
	background:var(--nolink-background);
}
.slick-prev.slick-disabled::before,
.slick-next.slick-disabled::before{
	opacity:0.55;
}
@media screen and (max-width:767px){
	.slick-next:active,
	.slick-prev:active{
		background:var(--slick-button);
	}
	.slick-next:active:before,
	.slick-prev:active:before{
		border-color:var(--slick-arrow);
	}
}
@media screen and (min-width:768px){
	.slick-next:hover,
	.slick-prev:hover{
		background:var(--slick-button-hover);
		opacity:0.7;
	}
	.slick-next:hover:before,
	.slick-prev:hover:before {
		border-color:var(--slick-arrow-hover);
	}
	.slick-prev:hover:before {
		animation:slickArrowP 0.5s ease-out 0.3s 1, slickArrow_bg 0.5s ease-out 0.3s infinite
	}
	.slick-next:hover:before {
		animation: slickArrowN 0.5s ease-out 0.3s 1, slickArrow_bg 0.5s ease-out 0.3s infinite
	}
	.slick-prev.slick-disabled:hover,
	.slick-next.slick-disabled:hover{
		background:var(--nolink-background);
		opacity:1;
		cursor:default;
	}
	.slick-prev.slick-disabled:hover::before,
	.slick-next.slick-disabled:hover::before{
		opacity:0.4;
	}
	.slick-prev.slick-disabled:hover,
	.slick-next.slick-disabled:hover,
	.slick-prev.slick-disabled:hover::before,
	.slick-next.slick-disabled:hover::before{
		animation:none;
	}
}

/* #soon
-------------------------------------------------- */
body:has(#soon){
	background:#FFF;
}
#soon{
	display:flex;
	justify-content:center;
	align-items:center;
	width:100%;
	height:100dvh;
}
#soon p{
	font-size:8vw;
	line-height:1;
	color:#DDD;
	font-family:var(--font-en);
	font-weight:900;
}


