html {
	font-size: 21px;
	width: 100%;
}

body {
	background: #020200;
	color: #fff;
	font-family: m-plus-rounded-1p, "ヒラギノ丸ゴ ProN", "Hiragino Maru Gothic ProN", "メイリオ", Meiryo, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.7;
	overflow-x: hidden;
	position: relative;
	width: 100%;
}

main {
	position: relative;
}

*,
*:before,
*:after {
	box-sizing: border-box;
	scroll-behavior: unset;
}

a {
	color: inherit;
}

a:focus {
	outline: none;
}

dt {
	font-weight: normal;
}

.dn {
	display: none;
}

img {
	-o-object-fit: contain;
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ol,
ul,
li,
dl,
dt,
dd {
	margin: 0;
	padding: 0;
}

::selection {
	background: #fff;
	color: #000;
}

/* for Firefox */

::-moz-selection {
	background: #fff;
	color: #000;
}

::-webkit-scrollbar {
	width: 10px;
}

::-webkit-scrollbar-track {
	background: #E15DFF;
	border: none;
}

::-webkit-scrollbar-thumb {
	background: #FF0001;
	border-radius: 10px;
	box-shadow: none;
}

* {
	scrollbar-color: #FF0001 #E15DFF; /*つまみの色 軌道の色*/
	scrollbar-width: thin; /*細さ*/
}

.is-pc {
	display: block;
}

.is-tb {
	display: none;
}

.is-sp {
	display: none;
}

.c-heading {
	text-align: center;
}

.c-heading_en {
	display: block;
	font-size: 3.809rem;
	font-weight: 900;
	letter-spacing: 0;
	line-height: 1.2;
}

.c-heading_ja {
	display: block;
	font-size: 0.761rem;
	letter-spacing: 0.13em;
	line-height: 1.2;
}

.c-heading.rp .c-heading_en {
	-webkit-text-stroke: 3px #E15DFF;
	color: #FF0001;
	text-shadow: 2px 3px 0px #E15DFF;
}

.c-heading.rp .c-heading_ja {
	color: #E15DFF;
}

.c-heading.wb .c-heading_en {
	-webkit-text-stroke: 3px #000000;
	color: #FFFFFF;
	text-shadow: 2px 3px 0px #000000;
}

.c-heading.wb .c-heading_ja {
	color: #000000;
}

.c-heading.wu .c-heading_en {
	-webkit-text-stroke: 3px #3F1EC9;
	color: #FFFFFF;
	text-shadow: 2px 3px 0px #3F1EC9;
}

.c-heading.wu .c-heading_ja {
	color: #3F1EC9;
}

.c-heading.wr .c-heading_en {
	-webkit-text-stroke: 3px #FF0001;
	color: #FFFFFF;
	text-shadow: 2px 3px 0px #FF0001;
}

.c-heading.wr .c-heading_ja {
	color: #FF0001;
}

.c-komeMark {
	padding-left: 1em;
	position: relative;
}

.c-komeMark::before {
	content: "※";
	left: 0;
	position: absolute;
}

.header {
	height: 150px;
	left: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 1000;
}

.header_logo {
	left: 20px;
	position: absolute;
	top: 20px;
	width: 137px;
}

.header_navButton {
	align-items: center;
	background: #FF0001;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	height: 130px;
	padding: 13px 0 0;
	position: absolute;
	right: 8px;
	top: 8px;
	transform: scale(1);
	transform-origin: center;
	transition: transform 0.3s 0.4s;
	width: 130px;
	z-index: 100;
}

.header_navButton_hinotama {
	display: block;
	height: auto;
	margin-bottom: 6px;
	width: 39px;
}

.header_navButton_text {
	color: #fff;
	font-size: 0.809em;
}

.nav {
	height: 100%;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: 0;
	transition: opacity 0s 0.9s, visibility 0s 0.9s;
	visibility: hidden;
	width: 100%;
	z-index: 1000;
}

.nav::before {
	background: #DB0405;
	border-radius: 50%;
	content: "";
	height: 0;
	opacity: 1;
	position: absolute;
	right: 68px;
	top: 68px;
	transition: width 0.5s 0.1s ease, height 0.5s 0.1s ease, right 0.5s 0.1s ease, top 0.5s 0.1s ease;
	width: 0;
}

.nav_closeButton {
	cursor: pointer;
	padding-top: 27px;
	transform: scale(0);
	transform-origin: center;
	transition: transform 0.3s 0.4s;
	z-index: 1;
}

.nav_closeButton_cross {
	height: 40px;
	margin-bottom: 21px;
	width: 60px;
}

.nav_container {
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	width: 1673px;
}

.nav_list {
	column-gap: 80px;
	column-gap: 4.167vw;
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: 250px 339px;
	grid-template-rows: repeat(5, auto);
	list-style: none;
	opacity: 0;
	position: absolute;
	right: 346px;
	right: 18.021vw;
	top: 204px;
	top: 10.625vw;
	transform: scale(0);
	transform-origin: right top;
	transition: opacity 0.3s 0.1s ease, transform 0.3s 0.1s;
}

.nav_list li {
	font-size: 2.19rem;
	font-weight: 900;
	line-height: 1.72;
}

.nav_list a {
	text-decoration: none;
}

.mainvisual {
	height: 100%;
	padding-top: 20px;
	position: relative;
	width: 100%;
}

.mainvisual_container {
	margin: 0 auto;
	max-width: 1771px;
	position: relative;
	width: 98%;
}

.mainvisual_heroImage {
	position: relative;
	user-select: none;
}

.mainvisual_text {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.mainvisual_text_catch {
	height: auto;
	left: calc(50% + 132px);
	left: calc(50% + 6.875vw);
	position: absolute;
	top: 182px;
	top: 9.479vw;
	transform: translateX(-50%);
	width: 450px;
	width: 23.438vw;
}

.mainvisual_text_title {
	bottom: 243px;
	bottom: 12.656vw;
	height: auto;
	position: absolute;
	right: 139px;
	right: 7.24vw;
	width: 980px;
	width: 51.042vw;
}

.news {
	background: #5C217B;
	padding-bottom: 90px;
	padding-top: 60px;
	position: relative;
}

.news::before {
	background: #000 url(./assets/images/background/line_01.png) center bottom/cover;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	top: -222px;
	width: 100%;
	z-index: -1;
}

.news::after {
	background: #5C217B;
	content: "";
	height: 185px;
	left: 0;
	position: absolute;
	top: -183px;
	width: 100%;
	z-index: -1;
}

.news_container {
	border: 5px solid #FF0001;
	border-radius: 45px;
	margin: 0 auto;
	max-width: 900px;
	padding: 53px 0 76px;
	width: 85%;
}

.news_heading {
	color: #FF0001;
	font-size: 64px;
	font-weight: 900;
	line-height: 1.2;
	text-align: center;
}

.news_list {
	margin: 38px auto 0;
	max-width: 547px;
	width: 90%;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.news_list_item {
	display: flex;
	letter-spacing: 0;
	line-height: 1.2;
	margin-bottom: 1.2em;
}

.news_list_item:last-child {
	margin-bottom: 0;
}

.news_list_item dt {
	letter-spacing: 0.02em;
	margin-right: 1em;
}

.intro {
	background: #5C217B;
	border-top: 1px solid #5C217B;
	padding-bottom: 179px;
	position: relative;
}

.intro::after {
	background: #000 url(./assets/images/background/line_01.png) center bottom/cover;
	bottom: -40px;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	transform: scaleY(-1);
	user-select: none;
	width: 100%;
	z-index: -1;
}

.intro_container {
	margin: 0 auto 0;
	max-width: 1258px;
	width: 90%;
}

.intro_description {
	font-size: 1.428rem;
	line-height: 1.5;
	margin: 4.714rem auto;
	max-width: 810px;
	width: 95%;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.schedule {
	padding-bottom: 151px;
	padding-top: 7.619rem;
	position: relative;
}

.schedule_background {
	background: url(./assets/images/background/bat.png) center bottom/cover;
	bottom: -220px;
	height: 676px;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: -1;
}

.schedule_container {
	margin: 0 auto;
	max-width: 575px;
	position: relative;
	width: 95%;
}

.schedule_kappa {
	position: absolute;
	right: -115px;
	top: -256px;
	width: 249px;
}

.schedule_content {
	margin-top: 42px;
	position: relative;
	width: 100%;
}

.schedule_content_line {
	display: block;
	height: 10px;
	position: relative;
	width: 100%;
}

.schedule_content_line::before {
	background: url(./assets/images/item/wave-line.svg) repeat-x left/contain;
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.schedule_content_table {
	margin-bottom: 63px;
	margin-top: 40px;
	width: 100%;
}

.schedule_content_table_row {
	display: flex;
	margin-bottom: 10px;
}

.schedule_content_table dt {
	color: #831DE2;
	flex-shrink: 0;
	font-size: 1.1428rem;
	height: 48px;
	line-height: 48px;
	padding-left: 5px;
	text-align: left;
	width: 176px;
}

.schedule_content_table dd {
	border-radius: 15px;
	color: #000;
	font-size: 1rem;
	height: 48px;
	line-height: 48px;
	margin-left: 10px;
	text-align: center;
	width: 186px;
}

.schedule_content_table dd.onStage {
	background: #831DE2;
}

.schedule_content_table dd.kyuen {
	color: #831DE2;
	margin-left: 0;
	text-align: center;
	width: 100%;
}

.schedule_afterTalk {
	margin: 107px auto 0;
	margin-top: 5.095rem;
	max-width: 860px;
	position: relative;
	width: 85%;
}

.schedule_afterTalk_desc {
	color: #E15DFF;
	font-weight: 900;
	line-height: 1.9;
	margin-top: 1.809rem;
}

.schedule_afterTalk_table {
	background: #000;
	border: 1px solid #E15DFF;
	border-radius: 10px;
	border-spacing: 0;
	margin-top: 2.666rem;
	width: 100%;
}

.schedule_afterTalk_table tbody {
	width: 100%;
}

.schedule_afterTalk_table tr {
	font-size: 1.14rem;
	height: 61px;
}

.schedule_afterTalk_table tr:last-child th,
.schedule_afterTalk_table tr:last-child td {
	border-bottom: none;
}

.schedule_afterTalk_table th {
	border-bottom: 1px solid #E15DFF;
	border-right: 1px solid #E15DFF;
	font-weight: 700;
	width: 268px;
	width: 12.761rem;
}

.schedule_afterTalk_table td {
	border-bottom: 1px solid #E15DFF;
	padding-left: 1.42rem;
}

.schedule_afterTalk .urabanashi-image {
	margin-top: 40px;
}

.schedule_afterTalk .urabanashi-info {
	font-size: 30px;
	font-size: 1.428rem;
	font-weight: 700;
	line-height: 1.5;
	margin-top: 60px;
	text-align: center;
}

.schedule_afterTalk .urabanashi-info a {
	color: #FF0001;
	text-decoration: none;
}

.theater {
	background: #CE89D1;
	padding-bottom: 180px;
	padding-top: 5.095rem;
	position: relative;
	z-index: 1;
}

.theater::before {
	background: transparent url(./assets/images/background/line_02.png) center bottom/cover;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	top: -40px;
	user-select: none;
	width: 100%;
	z-index: -1;
}

.theater::after {
	background: transparent url(./assets/images/background/line_02.png) center bottom/cover;
	bottom: -40px;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	transform: scaleY(-1);
	user-select: none;
	width: 100%;
	z-index: -1;
}

.theater_container {
	margin: 0 auto 0;
	max-width: 900px;
	position: relative;
	width: 95%;
}

.theater_eggs {
	left: -24px;
	position: absolute;
	top: -178px;
	width: 210px;
}

.theater_map {
	background: #000;
	height: 500px;
	margin-top: 40px;
	position: relative;
	width: 100%;
}

.theater_map iframe {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.theater_info {
	color: #000;
	margin-top: 40px;
	text-align: center;
}

.theater_info .theaterName {
	font-size: 2.666rem;
	line-height: 1.2;
}

.theater_info .theaterName em {
	font-style: normal;
	font-weight: 900;
}

.theater_info .address {
	font-size: 0.761rem;
	line-height: 1.25;
	margin-top: 9px;
}

.theater_info .howToGetTo {
	align-items: center;
	background: url(./assets/images/item/fukidashi-big.svg) no-repeat center/contain;
	bottom: -242px;
	display: flex;
	height: 258px;
	justify-content: center;
	position: absolute;
	right: -83px;
	width: 437px;
}

.theater_info .howToGetTo-list {
	font-size: 16px;
	line-height: 1.25;
	list-style: none;
	text-align: left;
	width: 88%;
}

.story {
	background: #BC1718;
	padding-bottom: 175px;
	padding-top: 7.095rem;
	position: relative;
}

.story_container {
	margin: 0 auto 0;
	max-width: 1150px;
	width: 85%;
}

.story_detail {
	display: flex;
	left: -5px;
	margin-top: 40px;
	position: relative;
}

.story_detail_kabocha {
	flex-shrink: 0;
	margin-right: 62px;
	position: relative;
	top: -35px;
	width: 244px;
}

.story_detail_text {
	font-size: 1rem;
	line-height: 1.904;
}

.cast {
	background: #5C217B;
	padding-bottom: 257px;
	padding-top: 5.238rem;
	position: relative;
	z-index: 1;
}

.cast::before {
	background: transparent url(./assets/images/background/line_01.png) center bottom/cover;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	top: -40px;
	user-select: none;
	width: 100%;
	z-index: -1;
}

.cast::after {
	background: transparent url(./assets/images/background/line_01.png) center bottom/cover;
	bottom: -40px;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	transform: scaleY(-1);
	user-select: none;
	width: 100%;
	z-index: -1;
}

.cast_container {
	margin: 0 auto;
	max-width: 1036px;
	width: 95%;
}

.cast_list {
	margin: 43px auto 0;
}

.cast_list ul {
	list-style: none;
	margin-bottom: 26px;
}

.cast_list .row01 .item01 {
	margin: 0 auto 0;
	width: 370px;
}

.cast_list .row02 {
	display: flex;
	justify-content: center;
	left: -61px;
	left: -3.177vw;
	position: relative;
	width: 105%;
}

.cast_list .row02 > li {
	margin: 0 10px;
	width: 244px;
}

.cast_list .row02 .cast_name {
	left: 7px;
}

.cast_list .row03 {
	display: flex;
	justify-content: center;
}

.cast_list .row03 > li {
	margin: 0 10px;
	width: 244px;
}

.cast_list .row03 .cast_name {
	left: 7px;
}

.cast_list .row04 {
	display: flex;
	justify-content: center;
}

.cast_list .row04 > li {
	margin: 0 10px;
	width: 370px;
}

.cast_image {
	background: #fff;
	border: 6px solid #DBCC16;
	border-radius: 50px;
	overflow: hidden;
}

.cast_name {
	font-size: 1.333rem;
	margin-top: 9px;
	position: relative;
	text-align: center;
}

.cast_name::before {
	background: url(./assets/images/item/hinotama.svg) no-repeat center/contain;
	content: "";
	height: 58px;
	left: 50%;
	position: absolute;
	top: -58px;
	transform: translateX(-50%);
	width: 30px;
}

.cast_ensemble_title {
	background: #DBCC16;
	border-radius: 30px;
	color: #000000;
	font-size: 1.142rem;
	font-weight: 900;
	height: 60px;
	line-height: 60px;
	margin: 56px auto 0;
	max-width: 830px;
	text-align: center;
	width: 100%;
}

.cast_ensemble_list {
	display: flex;
	font-size: 1.333rem;
	font-weight: 900;
	justify-content: space-around;
	left: 10px;
	list-style: none;
	margin: 36px auto 0;
	max-width: 790px;
	position: relative;
	width: 100%;
}

.direction {
	background: #CE89D1;
	border-bottom: 1px solid #CE89D1;
	height: 500px;
	position: relative;
}

.direction_container {
	background: #000;
	border-radius: 49%;
	height: 658px;
	left: 50%;
	padding-top: 204px;
	position: absolute;
	top: -162px;
	transform: translateX(-50%);
	width: 638px;
	z-index: 10;
}

.direction_container .c-heading {
	margin: 0 auto;
	max-width: 546px;
	width: 88%;
}

.direction_container .c-heading .c-heading_en {
	line-height: 0.9;
	margin-bottom: 14px;
	text-align: left;
}

.direction_name {
	font-size: 2.28rem;
	font-weight: 900;
	line-height: 1;
	margin-top: 38px;
	text-align: center;
}

.direction_ameba {
	bottom: -34px;
	position: absolute;
	right: -4px;
	width: 232px;
}

.ticket {
	background: #CE89D1;
	padding-bottom: 177px;
	padding-top: 4.953rem;
	position: relative;
}

.ticket_container {
	margin: 0 auto 0;
	max-width: 830px;
	position: relative;
	width: 95%;
}

.ticket_heading {
	background: #5C217B;
	border-radius: 30px;
	color: #fff;
	font-size: 1.142rem;
	height: 60px;
	line-height: 60px;
	margin-top: 44px;
	text-align: center;
	width: 100%;
}

.ticket_heading_confetti {
	color: #000;
	font-size: 1.238rem;
	font-weight: 900;
}

.ticket_heading_confetti .sm {
	font-size: 0.769em;
}

.ticket_price {
	color: #000;
	list-style: none;
	margin-top: 40px;
}

.ticket_price .priceText {
	font-size: 1.428rem;
	font-weight: 900;
	left: 15px;
	line-height: 1.333;
	position: relative;
	text-align: center;
}

.ticket_price .priceText.mt {
	margin-top: 42px;
}

.ticket_price .priceText .inTax {
	font-size: 0.666em;
}

.ticket_price .cautionList {
	font-size: 0.761rem;
	line-height: 1.25;
	list-style: none;
	margin: 30px auto 0;
	max-width: 450px;
	width: 95%;
}

.ticket_startDate {
	background: #000000;
	border: 3px solid #DBCC16;
	border-radius: 15px;
	color: #DBCC16;
	font-size: 1.38rem;
	line-height: 1;
	margin: 48px auto 60px;
	max-width: 715px;
	padding: 69px 0;
	position: relative;
	text-align: center;
	width: 90%;
}

.ticket_startDate::before {
	background: url(./assets/images/item/hinotama.svg) no-repeat center/contain;
	content: "";
	height: 58px;
	left: -15px;
	position: absolute;
	top: -40px;
	width: 30px;
}

.ticket_startDate::after {
	background: url(./assets/images/item/hinotama.svg) no-repeat center/contain;
	content: "";
	height: 58px;
	position: absolute;
	right: -15px;
	top: -40px;
	width: 30px;
}

.ticket_startDate em {
	font-style: normal;
	font-weight: 900;
}

.ticket_startDate em .is-pc {
	display: inline-block;
}

.ticket_reserve {
	color: #000;
	font-size: 1.238rem;
	font-weight: 900;
	margin: 40px auto 0;
	max-width: 680px;
	width: 95%;
}

.ticket_reserve_list {
	list-style: none;
}

.ticket_reserve_list li {
	padding-left: 1em;
	position: relative;
}

.ticket_reserve_list li::before {
	content: "・";
	left: 0;
	position: absolute;
}

.ticket_reserve_list li a {
	color: #FF0001;
	margin-left: 1em;
	text-decoration: underline;
}

.staff {
	padding-bottom: 176px;
	padding-top: 5.238rem;
	position: relative;
	z-index: 1;
}

.staff::before {
	background: transparent url(./assets/images/background/line_04.png) left -95px bottom/cover;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	top: -40px;
	user-select: none;
	width: 100%;
	z-index: -1;
}

.staff_background {
	background: url(./assets/images/background/bat.png) center bottom/cover;
	bottom: -220px;
	height: 676px;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: -1;
}

.staff_cat {
	position: absolute;
	right: -215px;
	right: -11.198vw;
	top: -251px;
	width: 147px;
}

.staff_container {
	margin: 0 auto 0;
	max-width: 593px;
	position: relative;
	width: 95%;
}

.staff_list {
	line-height: 1.2;
	list-style: none;
	margin-top: 44px;
}

.staff_list li {
	color: #E15DFF;
	font-weight: 900;
	margin-bottom: 0.7em;
}

.yonebanashi {
	background: #2A167E;
	padding-bottom: 185px;
	padding-top: 5.142rem;
	position: relative;
	z-index: 1;
}

.yonebanashi::before {
	background: transparent url(./assets/images/background/line_03.png) center bottom/cover;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	top: -40px;
	user-select: none;
	width: 100%;
	z-index: -1;
}

.yonebanashi_container {
	margin: 0 auto;
	max-width: 860px;
	position: relative;
	width: 80%;
}

.yonebanashi_container::before {
	align-items: center;
	background: url(./assets/images/item/fukidashi-sm.svg) no-repeat left top/contain;
	color: #FF0001;
	content: "うしろうしろ！";
	display: flex;
	font-size: 1.809rem;
	font-weight: 900;
	height: 205px;
	justify-content: center;
	left: -200px;
	position: absolute;
	top: -150px;
	width: 333px;
}

.yonebanashi_text {
	line-height: 1.9;
	margin-top: 40px;
}

.yonebanashi_author {
	margin-top: 40px;
	text-align: right;
}

.contact {
	background: #5C217B;
	padding-bottom: 65px;
	padding-top: 5.238rem;
	position: relative;
	z-index: 1;
}

.contact::before {
	background: transparent url(./assets/images/background/line_01.png) center bottom/cover;
	content: "";
	height: 41px;
	left: 0;
	position: absolute;
	top: -40px;
	user-select: none;
	width: 100%;
	z-index: -1;
}

.contact_container {
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 960px;
	width: 95%;
}

.contact_container_detail {
	margin-right: 20px;
	max-width: 390px;
	width: 100%;
}

.contact_container_detail address {
	font-style: normal;
	font-weight: 900;
	line-height: 1.9;
	margin-top: 40px;
	text-align: center;
}

.contact_container_detail address a {
	color: #FF0001;
	text-decoration: underline;
}

.contact_container_guideline {
	line-height: 1.9;
	margin-top: 60px;
	text-align: center;
}

.contact_container_guideline a {
	color: #FF0001;
}

.contact_container_timeline {
	border-radius: 10px;
	flex-shrink: 0;
	height: 500px;
	overflow: hidden;
	position: relative;
	top: -10px;
	width: 390px;
}

.footer {
	background: #5C217B;
	color: #E15DFF;
	padding-bottom: 5px;
	width: 100%;
}

.footer_copyright {
	font-size: 11px;
	text-align: center;
}

.footer_copyright small {
	font-size: inherit;
}

.ticketButton {
	align-items: flex-end;
	bottom: 0;
	display: flex;
	height: 150px;
	justify-content: center;
	left: 0;
	padding-bottom: 40px;
	position: fixed;
	width: 100%;
	z-index: 100;
}

.ticketButton_button {
	background: #FF0001;
	border: 3px solid #fff;
	border-radius: 20px;
	color: #000;
	font-size: 0.904rem;
	font-weight: 900;
	height: 70px;
	line-height: 64px;
	max-width: 400px;
	position: relative;
	text-align: center;
	width: 95%;
}

.ticketButton_button::after {
	background: #000;
	background: url(./assets/images/item/button-arrow.svg) no-repeat center/contain;
	border-radius: 50%;
	content: "";
	height: 32px;
	position: absolute;
	right: 17px;
	top: 17px;
	width: 32px;
}

.ticketButton_button a {
	display: block;
	height: 100%;
	position: relative;
	text-decoration: none;
	width: 100%;
}

#content {
	opacity: 0;
}

#content.is-loaded {
	opacity: 1;
	transition: opacity 0.5s;
}

#nav {
	opacity: 0;
}

#header {
	opacity: 0;
}

#header.is-loaded {
	opacity: 1;
	transition: opacity 0.3s;
}

#mainvisual .mainvisual_heroImage {
	opacity: 0;
	transition: opacity 0.3s;
}

#mainvisual .mainvisual_text_catch {
	opacity: 0;
	transition: opacity 0.3s;
}

#mainvisual .mainvisual_text_title {
	opacity: 0;
	transition: opacity 0.3s;
}

#mainvisual.is-loaded .mainvisual_heroImage {
	opacity: 1;
	transition: opacity 0.8s 0.5s;
}

#mainvisual.is-loaded .mainvisual_text_catch {
	opacity: 1;
	transition: opacity 0.8s 0s;
}

#mainvisual.is-loaded .mainvisual_text_title {
	opacity: 1;
	transition: opacity 0.8s 0.2s;
}

.header_navButton.is-open {
	transform: scale(0);
	transform-origin: center;
	transition: transform 0.3s 0s;
}

.nav.is-open {
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0s 0s, visibility 0s 0s;
	visibility: visible;
}

.nav.is-open::before {
	height: 2448px;
	height: 127.5vw;
	opacity: 1;
	right: -775px;
	right: -40.365vw;
	top: -757px;
	top: -39.427vw;
	transition: width 0.8s 0.2s ease, height 0.8s 0.2s ease, right 0.8s 0.2s ease, top 0.8s 0.2s ease;
	width: 2448px;
	width: 127.5vw;
}

.nav.is-open .nav_list {
	opacity: 1;
	transform: scale(1);
	transform-origin: right top;
	transition: opacity 0.5s 0.4s ease, transform 0.5s 0.4s;
}

.nav.is-open .nav_closeButton {
	transform: scale(1);
	transform-origin: center;
	transition: transform 0.3s 0.5s;
}

#nav.is-open {
	opacity: 1;
}

.ticketButton {
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.5s;
}

.ticketButton.is-show {
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.5s;
}

.is-hinotama {
	animation: hinotama 2.5s infinite alternate;
	display: block;
	transform-origin: bottom;
}

.is-pseudoHinotama::before {
	animation: pseudoHinotama 3s infinite alternate;
	transform-origin: bottom;
}

.is-startHinotama::before {
	animation: startHinotama 1s infinite alternate;
	transform-origin: bottom;
}

.is-startHinotama::after {
	animation: startHinotama 1s infinite alternate;
	transform-origin: bottom;
}

.jsKappa,
.jsKabocha,
.jsCat {
	position: relative;
}

.jsEgg {
	transform: translate(200px, -200px);
}

.jsEgg.is-show {
	animation: eggAnim 0.6s forwards;
}

.jsYoneFukidashi::before {
	opacity: 0;
	transition: opacity 0.5s ease;
}

.jsYoneFukidashi.is-show::before {
	opacity: 1;
	transition: opacity 0.5s 0.3s ease-out;
}

.news_list_item a,
.ticket_reserve_list li a,
.contact_container_detail address a {
	transition: opacity 0.5s;
}

.news_list_item a:hover,
.ticket_reserve_list li a:hover,
.contact_container_detail address a:hover {
	opacity: 0.5;
	transition: opacity 0.5s;
}

.nav_list a {
	transition: color 0.5s;
}

.nav_list a:hover {
	color: #000;
	transition: color 0.5s;
}

.ticketButton_button {
	transition: background 0.3s;
}

.ticketButton_button:hover {
	background: #40FE05;
	transition: background 0.3s;
}

@media screen and (max-width: 1280px) {

html {
	font-size: 18px;
}

.header_logo {
	transform: scale(0.85);
	transform-origin: left top;
}

.nav_list {
	grid-template-columns: 212px 291px;
}

.schedule_kappa {
	transform: scale(0.85);
	transform-origin: right bottom;
}

.schedule_kappa {
	transform: scale(0.76);
}

.theater_eggs {
	transform: scale(0.85);
	transform-origin: left bottom;
}

.theater_eggs {
	transform: scale(0.76);
}

.theater_info .howToGetTo {
	transform: scale(0.85);
	transform-origin: left top;
}

.direction_container {
	height: calc(658px * 0.85);
	padding-top: calc(204px * 0.85);
	width: calc(638px * 0.85);
}

.yonebanashi_container::before {
	left: -150px;
	top: -130px;
	transform: scale(0.85);
	transform-origin: right bottom;
}

}

@media screen and (max-width: 1080px) {

html {
	font-size: 16px;
}

.header_logo {
	transform: scale(0.76);
}

.nav_list {
	grid-template-columns: 188px 258px;
}

.theater_info .howToGetTo {
	transform: scale(0.76);
}

.cast_list .row02 {
	left: 0;
	width: 100%;
}

.direction_container {
	height: calc(658px * 0.76);
	padding-top: calc(204px * 0.76);
	width: calc(638px * 0.76);
}

.yonebanashi {
	padding-top: 8.142rem;
}

.yonebanashi_container::before {
	top: -198px;
	transform: scale(0.76);
}

}

@media screen and (max-width: 835px) {

html {
	font-size: 14px;
}

.is-pc {
	display: none;
}

.is-tb {
	display: block;
}

.c-heading_en {
	font-size: 34px;
}

.c-heading_ja {
	font-size: 10px;
	margin-top: 5px;
}

.c-heading.rp .c-heading_en {
	-webkit-text-stroke: 1px #E15DFF;
	text-shadow: 1px 2px 0px #E15DFF;
}

.c-heading.wb .c-heading_en {
	-webkit-text-stroke: 1px #000000;
	text-shadow: 1px 2px 0px #000000;
}

.c-heading.wu .c-heading_en {
	-webkit-text-stroke: 1px #3F1EC9;
	text-shadow: 1px 2px 0px #3F1EC9;
}

.c-heading.wr .c-heading_en {
	-webkit-text-stroke: 1px #FF0001;
	text-shadow: 1px 2px 0px #FF0001;
}

.header_logo {
	left: 14px;
	top: 14px;
	transform: none;
	width: 98px;
}

.header_navButton {
	height: 71px;
	margin-bottom: 1px;
	padding-top: 5px;
	right: 15px;
	width: 71px;
}

.header_navButton_hinotama {
	margin-bottom: 1px;
	width: 23px;
}

.header_navButton_text {
	font-size: 10px;
}

.nav::before {
	right: 43px;
	top: 43px;
}

.nav_container {
	width: 100%;
}

.nav_list {
	display: block;
	margin-top: 50px;
	position: relative;
	right: auto;
	top: auto;
}

.nav_list li {
	font-size: 1.12rem;
	margin-bottom: 1rem;
	text-align: center;
}

.mainvisual {
	height: auto;
	overflow: hidden;
	padding-top: 63px;
}

.mainvisual_container {
	height: 292px;
	height: 77.867vw;
	left: -17px;
	left: -4.533vw;
	width: 409px;
	width: 109.067vw;
}

.mainvisual_text_catch {
	left: calc(50% + 44px);
	left: calc(50% + 11.733vw);
	top: 25px;
	top: 6.667vw;
	width: 135px;
	width: 36vw;
}

.mainvisual_text_title {
	bottom: 6px;
	bottom: 1.6vw;
	right: 33px;
	right: 8.8vw;
	width: 292px;
	width: 77.867vw;
}

.news {
	padding-bottom: 31px;
	padding-top: 21px;
}

.news::before {
	height: 20px;
	top: -202px;
}

.news_container {
	border-radius: 20px;
	border-width: 3px;
	max-width: 480px;
	padding-bottom: 36px;
	padding-top: 22px;
	width: 95%;
}

.news_heading {
	font-size: 34px;
}

.news_list {
	margin-top: 20px;
}

.news_list_item {
	flex-direction: column;
	font-size: 1.071rem;
	margin-bottom: 1.5em;
}

.news_list_item dt {
	margin-bottom: 4px;
	margin-right: 0;
}

.intro {
	padding-bottom: 68px;
}

.intro::after {
	background-position: left -10px top;
	bottom: -20px;
	height: 21px;
}

.intro_container {
	max-width: 520px;
	width: 94%;
}

.intro_description {
	font-size: 1.214rem;
	margin: 40px auto;
	width: 68%;
}

.schedule {
	padding-bottom: 96px;
	padding-top: 80px;
}

.schedule_background {
	bottom: -100px;
	height: 345px;
}

.schedule_container {
	max-width: 375px;
}

.schedule_kappa {
	height: 124px;
	right: 10px;
	top: -166px;
	transform: none;
	width: 136px;
}

.schedule_content {
	margin-top: 14px;
}

.schedule_content_table {
	margin-bottom: 15px;
	margin-top: 15px;
}

.schedule_content_table_row {
	margin-bottom: 7px;
}

.schedule_content_table dt {
	font-size: 1.071rem;
	height: 30px;
	line-height: 30px;
	padding-left: 2px;
	width: 108px;
}

.schedule_content_table dd {
	border-radius: 7px;
	font-size: 1.071rem;
	height: 30px;
	line-height: 30px;
	margin-left: 6px;
	width: 118px;
}

.schedule_afterTalk {
	max-width: 480px;
}

.schedule_afterTalk_desc {
	line-height: 1.75;
}

.schedule_afterTalk_table td {
	line-height: 1.25;
	padding-left: 1rem;
}

.theater {
	padding-bottom: 193px;
	padding-top: 58px;
}

.theater::before {
	background-position: left -10px top;
	height: 21px;
	top: -20px;
}

.theater::after {
	background-position: left -10px top;
	bottom: -20px;
	height: 21px;
}

.theater_eggs {
	left: 26px;
	top: -129px;
	transform: none;
	width: 114px;
}

.theater_map {
	height: 268px;
	margin-top: 15px;
}

.theater_info {
	margin-top: 18px;
}

.theater_info .theaterName {
	letter-spacing: -0.04em;
}

.theater_info .address {
	font-size: 1rem;
	margin-top: 14px;
}

.theater_info .howToGetTo {
	bottom: -225px;
	height: 210px;
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: 356px;
}

.theater_info .howToGetTo-list {
	font-size: 0.928rem;
}

.story {
	padding-bottom: 122px;
	padding-top: 65px;
}

.story_container {
	max-width: 480px;
	width: 89%;
}

.story_detail {
	flex-direction: column-reverse;
	left: auto;
	margin-top: 11px;
}

.story_detail_kabocha {
	margin-right: 0;
	top: 0;
	width: 100%;
	z-index: 10;
}

.story_detail_text {
	line-height: 2.06;
	text-align: justify;
}

.cast {
	padding-bottom: 91px;
	padding-top: 48px;
}

.cast::before {
	background-position: left -10px top;
	height: 21px;
	top: -20px;
}

.cast::after {
	background-position: left -10px top;
	bottom: -20px;
	height: 21px;
}

.cast_container {
	max-width: 375px;
	width: 97%;
}

.cast_list {
	margin-top: 16px;
}

.cast_list ul {
	margin-bottom: 18px;
}

.cast_list .row01 .item01 {
	width: 175px;
}

.cast_list .row02 > li {
	margin: 0 1.5px;
	width: 88px;
}

.cast_list .row02 .cast_name {
	left: 0;
}

.cast_list .row03 > li {
	margin: 0 1.5px;
	width: 89px;
}

.cast_list .row03 .cast_name {
	left: 0;
}

.cast_list .row04 > li {
	margin: 0 1.5px;
	width: 175px;
}

.cast_image {
	border-radius: 30px;
	border-width: 3px;
}

.cast_name {
	font-size: 1rem;
	margin-top: 19px;
}

.cast_name::before {
	height: 41px;
	top: -41px;
	width: 21px;
}

.cast_name.sugiyama {
	letter-spacing: -0.114em;
}

.cast_ensemble_title {
	background: #CE89D1;
	font-size: 1rem;
	height: 35px;
	line-height: 35px;
	margin-top: 18px;
	width: 97%;
}

.cast_ensemble_list {
	font-size: 1rem;
	justify-content: center;
	left: 0;
	margin-top: 12px;
	width: 97%;
}

.cast_ensemble_list li:nth-child(2) {
	margin-left: 37px;
	margin-right: 34px;
}

.direction {
	height: 226px;
}

.direction_container {
	height: 298px;
	padding-top: 93px;
	top: -54px;
	width: 289px;
}

.direction_container .c-heading {
	width: 80%;
}

.direction_container .c-heading .c-heading_en {
	margin-bottom: 0;
}

.direction_name {
	font-size: 20px;
	left: 5px;
	margin-top: 19px;
	position: relative;
}

.direction_ameba {
	bottom: -15px;
	right: 25px;
	width: 119px;
}

.ticket {
	padding-bottom: 74px;
}

.ticket_container {
	max-width: 375px;
}

.ticket_heading {
	font-size: 1rem;
	height: 35px;
	line-height: 35px;
	margin-top: 15px;
}

.ticket_heading_confetti {
	font-size: 16px;
}

.ticket_heading_confetti .sm {
	font-size: 12px;
}

.ticket_price {
	margin-top: 16px;
}

.ticket_price .priceText {
	font-size: 18px;
	left: 0;
}

.ticket_price .priceText.mt {
	margin-top: 17px;
}

.ticket_price .priceText .inTax {
	font-size: 10px;
}

.ticket_price .cautionList {
	font-size: 13px;
	margin-top: 17px;
	width: 99%;
}

.ticket_startDate {
	font-size: 18px;
	line-height: 1.38;
	margin-bottom: 30px;
	margin-top: 15px;
	padding: 14px 0 12px;
	width: 100%;
}

.ticket_startDate::before {
	height: 41px;
	left: -2px;
	top: -18px;
	width: 21px;
}

.ticket_startDate::after {
	height: 41px;
	right: -2px;
	top: -18px;
	width: 21px;
}

.ticket_startDate em .is-pc {
	display: none;
}

.ticket_reserve {
	font-size: 16px;
	margin-top: 12px;
	width: 100%;
}

.ticket_reserve_list {
	line-height: 1.75;
	margin-top: 3px;
}

.ticket_reserve_list li {
	display: flex;
}

.ticket_reserve_list li span {
	display: block;
	flex-shrink: 0;
	width: 20%;
}

.staff {
	padding-bottom: 100px;
	padding-top: 57px;
}

.staff::before {
	background-position: left -10px top;
	height: 21px;
	top: -20px;
}

.staff_background {
	bottom: -100px;
	height: 345px;
}

.staff_cat {
	right: -20px;
	top: -150px;
	width: 93px;
}

.staff_container {
	max-width: 375px;
	width: 89%;
}

.staff_list {
	line-height: 1.72;
	margin-top: 13px;
}

.staff_list li {
	margin-bottom: 0;
}

.yonebanashi {
	padding-bottom: 73px;
	padding-top: 57px;
}

.yonebanashi::before {
	background-position: left -10px top;
	height: 21px;
	top: -20px;
}

.yonebanashi_container {
	max-width: 480px;
	width: 89%;
}

.yonebanashi_container::before {
	background-position: left 10px top;
	font-size: 20px;
	height: 108px;
	left: -10px;
	top: -125px;
	transform: none;
	width: 196px;
}

.yonebanashi_text {
	line-height: 1.715;
	margin-top: 12px;
}

.yonebanashi_author {
	margin-top: 13px;
}

.contact {
	padding-top: 48px;
}

.contact::before {
	background-position: left -10px top;
	height: 21px;
	top: -20px;
}

.contact_container {
	flex-direction: column;
}

.contact_container_detail {
	margin-right: 0;
	max-width: 100%;
}

.contact_container_detail address {
	font-size: 16px;
	line-height: 1.8;
	margin-top: 13px;
}

.contact_container_guideline {
	margin-bottom: 80px;
	margin-top: 30px;
}

.contact_container_timeline {
	height: 430px;
	margin: 27px auto 0;
	top: 0;
	width: 335px;
}

.footer {
	padding-bottom: 20px;
}

.ticketButton_button {
	border-radius: 13px;
	border-width: 2px;
	font-size: 15px;
	height: 51px;
	line-height: 47px;
	width: 77%;
}

.ticketButton_button::after {
	height: 23px;
	right: 12px;
	top: 13px;
	width: 23px;
}

.nav.is-open::before {
	height: 200vw;
	width: 200vw;
}

.jsEgg {
	transform: translate(50px, -50px);
}

.jsEgg.is-show {
	animation: eggAnimSp 1s forwards;
}

}

@media screen and (max-width: 835px) and (max-width: 835px) {

.story_detail_kabocha span {
	display: block;
	height: 141px;
	position: absolute;
	right: 37px;
	top: 1px;
	width: 129px;
}

}

@media screen and (max-width: 480px) {

.is-sp {
	display: block;
}

.schedule_afterTalk_table {
	margin-top: 30px;
}

.schedule_afterTalk_table th {
	font-size: 1rem;
	line-height: 1.25;
	width: 90px;
}

.schedule_afterTalk_table td {
	padding-left: 10px;
}

.ticketButton_button::after {
	right: 5px;
	top: 11px;
}

}

@media screen and (max-width: 374px) {

html {
	font-size: 13px;
}

.news_list {
	width: 88%;
}

.intro_description {
	width: 88%;
}

.theater_info .howToGetTo {
	width: 98%;
}

.ticket_reserve_list li span {
	width: 25%;
}

.staff_cat {
	right: -10px;
	top: -130px;
	width: 80px;
}

.contact_container_timeline {
	max-width: 300px;
	width: 100%;
}

}

@keyframes hinotama {

0% {
	transform: scaleY(1) skewX(10deg);
}

50% {
	transform: scaleY(0.95) skewX(-5deg);
}

100% {
	transform: scaleY(1) skewX(10deg);
}

}

@keyframes pseudoHinotama {

0% {
	transform: translateX(-50%) skewX(8deg);
}

50% {
	transform: translateX(-50%) skewX(-5deg);
}

100% {
	transform: translateX(-50%) skewX(8deg);
}

}

@keyframes startHinotama {

0% {
	transform: skewX(10deg);
}

50% {
	transform: skewX(-5deg);
}

100% {
	transform: skewX(10deg);
}

}

@keyframes eggAnim {

0% {
	transform: translate(200px, -200px);
}

33% {
	transform: translate(100px, -100px);
}

66% {
	transform: translate(200px, -100px);
}

100% {
	transform: translate(0, 0);
}

}

@keyframes eggAnimSp {

0% {
	transform: translate(50px, -50px);
}

100% {
	transform: translate(0, 0);
}

}

