@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;700&display=swap');

body {
	font-family: monospace;
	padding: 0;
	margin: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	user-select:none;
	-moz-user-select:none;
	-webkit-user-select:none;
	-o-user-select:none;
	-ms-user-select:none;
	touch-action: manipulation;
	overflow-x: hidden;
	overflow-y: scroll;
}
* {
	box-sizing: border-box;
	font-family: 'Noto Sans JP', sans-serif;
}
/* *::-webkit-scrollbar {
	display: none;
} */

@media all and (min-width: 768px) {
	.pc-visible {
		display: block !important;
	}
	.sp-visible {
		display: none !important;
	}
}
@media all and (min-width: 440px) and (max-width: 768px) {
	.pc-visible {
		display: block !important;
	}
	.sp-visible {
		display: none !important;
	}
}
@media all and (min-device-width: 390px) and (max-device-width: 440px) {
	.pc-visible {
		display: none !important;
	}
	.sp-visible {
		display: block !important;
	}
}
@media all and (min-device-width: 375px) and (max-device-width: 389px) {
	.pc-visible {
		display: none !important;
	}
	.sp-visible {
		display: block !important;
	}
}
@media all and (min-device-width: 320px) and (max-device-width: 374px) {
	.pc-visible {
		display: none !important;
	}
	.sp-visible {
		display: block !important;
	}
}

.page-dev {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	width: 100%;
	height: 100%;
}
.page {
	display: flex;
	justify-content: center;
	align-items: center;
}
.page-inner-box {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 16px;
	border-radius: 4px;
	box-shadow: 0 4px 8px rgba(0,0,0,0.4);
	padding: 20px;
}
.btn-v2 {
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 4px;
	font-size: 12px;
	font-weight: bold;
	line-height: 40px;
}
.btn-v2-done {
	color: white;
	background: #1e4581;
}
.btn-v2-cancel {
	color: white;
	background: #811e1e;
}
.switch {
	position: relative;
	width: 44px;
	height: 24px;
	border-radius: 24px;
	border: 1px solid lightgray;
	transition: 0.3s;
	box-shadow: inset 0 8px 60px rgba(0,0,0,0.1),
				inset 0 8px 8px rgba(0,0,0,0.1),
				inset 0 -4px 4px rgba(0,0,0,0.1);
}
.switch.active {
	background: linear-gradient(to bottom, #c50188, #960067);
	box-shadow: inset 0 2px 60px rgba(0,0,0,0.1),
				inset 0 2px 8px rgba(0,0,0,0.1),
				inset 0 -4px 8px rgba(0,0,0,0.05);
}
.switch i {
	position: absolute;
	top: 0;
	left: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	transform: scale(0.9);
	background: linear-gradient(to bottom, #444, #222);
	box-shadow: 0 8px 40px rgba(0,0,0,0.5),
				inset 0 4px 4px rgba(255,255,255,0.2),
				inset 0 -4px 4px rgba(255,255,255,0.2);
	transition: 0.3s;
}
.switch-on i {
	left: 20px;
	background: linear-gradient(to bottom, #d543a7, #960067);
	box-shadow: 0 8px 20px rgba(0,0,0,0.1),
				inset 0 4px 4px #960067,
				inset 0 -4px 4px #960067;
}
.switch-off {
	
}
.header-v2 {
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	box-shadow: 0 4px 8px rgba(0,0,0,0.2);
	z-index: 10;
	width: 100%;
}
.header-title {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 6px 16px;
	letter-spacing: 0.2em;
}
.header-title div:nth-child(1) {
	font-size: 1em;
}
.header-title div:nth-child(2) {
	font-size: 0.8em;
}
.header-loading-bar {
	position: absolute;
	bottom: 0;
	left: 0;
	background:linear-gradient(90deg, red, blue, red);
	width: 100%;
	height: 4px;
	background-size: 200% 100%;
	background-repeat: no-repeat;
}
.header-loading-bar-start {
	animation: header-loading-bar-anim 0.6s alternate infinite linear;
}
@keyframes header-loading-bar-anim {
	0% {
		background-position: 0% 0%;
	}
	100% {
		background-position: 100% 0%;
	}
}


.sidemenu {
	position: fixed;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	top: 100vh;
	left: 0;
	width: 100%;
	height: calc(100% - 60px);
	padding: 0 20px;
	z-index: 20;
	background: white;
	overflow-y: scroll;
}
.sidemenu-show {
	animation: sidemenu-show-anim 0.5s both 1 ease-in-out;
}
.sidemenu-close {
	animation: sidemenu-close-anim 0.5s both 1 ease-in-out;
}
@keyframes sidemenu-show-anim {
	0% {
		top: 100vh;
	}
	100% {
		top: 59px;
	}
}
@keyframes sidemenu-close-anim {
	0% {
		top: 59px;
	}
	100% {
		top: 100vh;
	}
}
.sidemenu .close {
	position: absolute;
	top: 30px;
	right: 20px;
	width: 20px;
	height: 20px;
}
.sidemenu .close img {
	width: 100%;
	object-fit: contain;
}
.sidemenu .item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid black;
	font-size: 0.6rem;
	padding: 6px 0;
	width: 100%;
	color: black;
}
.sidemenu .item img {
	width: 20px;
	height: 20px;
	object-fit: contain;
}
.sidemenu .icon {
	width: 20px;
	height: 20px;
}
.sidemenu .label {
	margin: 20px 0;
}
.sidemenu .disabled {
	opacity: 0.6;
}

.sidemenu-v2 {
	position: fixed;
	top: 0;
	left: -100%;
	width: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	letter-spacing: 0.2em;
	gap: 16px;
	z-index: 20;
	overflow-x: hidden;
	overflow-y: scroll;
	max-height: 100%;
}
.sidemenu-v2-open {
	animation: sidemenu-v2-open-anim 0s both 1 ease-in-out;
}
.sidemenu-v2-close {
	animation: sidemenu-v2-close-anim 0s both 1 ease-in-out;
	animation-delay: 1s;
}
@keyframes sidemenu-v2-open-anim {
	0% {
		left: 0;
		padding: 0 16px;
		width: 100%;
	}
	100% {
		left: 0;
		padding: 0 16px;
		width: 100%;
	}
}
@keyframes sidemenu-v2-close-anim {
	0% {
		left: 0;
		padding: 0 16px;
		width: 100%;
	}
	100% {
		left: 0;
		padding: 0;
		width: 0;
	}
}
.sidemenu-v2 div:nth-child(2) {animation-delay: 0.02s;}
.sidemenu-v2 div:nth-child(3) {animation-delay: 0.04s;}
.sidemenu-v2 div:nth-child(4) {animation-delay: 0.06s;}
.sidemenu-v2 div:nth-child(5) {animation-delay: 0.08s;}
.sidemenu-v2 div:nth-child(6) {animation-delay: 0.10s;}
.sidemenu-v2 div:nth-child(7) {animation-delay: 0.12s;}
.sidemenu-v2 div:nth-child(8) {animation-delay: 0.14s;}
.sidemenu-v2 div:nth-child(9) {animation-delay: 0.16s;}
.sidemenu-v2 div:nth-child(10) {animation-delay: 0.18s;}
.sidemenu-v2-item {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	width: 200px;
	/* border: 1px solid rgba(0,0,0,0.4); */
	border-radius: 4px;
	background: rgba(255,255,255,0.2);
	backdrop-filter: blur(12px);
	box-shadow: 0 5px 8px rgba(0,0,0,0.2);
	margin-left: -100%;
}
.sidemenu-v2 .open {
	animation: sidemenu-v2-item-open-anim 0.5s both 1 ease-in-out;
}
@keyframes sidemenu-v2-item-open-anim {
	0% {
		margin-left: -100%;
	}
	100% {
		margin-left: 0;
	}
}
.sidemenu-v2 .close {
	animation: sidemenu-v2-item-close-anim 0.5s both 1 ease-in-out;
}
@keyframes sidemenu-v2-item-close-anim {
	0% {
		margin-left: 0;
	}
	100% {
		margin-left: -100%;
	}
}
.sidemenu-v2-item div {
	font-size: 1em;
	padding: 10px 16px;
}

.circle {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 60px;
	height: 60px;
	background: #333;
	border-radius: 50%;
	text-align: center;
	overflow: hidden;
	z-index: 1;
}

.circle::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: -30px;
	width: 60px;
	height: 60px;
	background: #999;
	transform-origin: right 30px;
	z-index: 2;
	animation: rotate-circle-left 0.6s linear forwards;
}

.circle::after {
	content: "";
	display: block;
	position: absolute;
	top: 0px;
	left: 30px;
	width: 60px;
	height: 60px;
	background: #999;
	transform-origin: left 30px;
	z-index: 3;
	animation: rotate-circle-right 0.6s linear forwards;
}
.circle .circle-inner {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 34px;
	height: 34px;
	background: #fff;
	border-radius: 50%;
	z-index: 4;
}
.circle .circle-inner div {
	white-space: nowrap;
}

@keyframes rotate-circle-right {
	0%   {
		transform: rotate(0deg);
		background: #999;
	}
	50%  {
		transform: rotate(180deg);
		background: #999;
	}
	50.01% {
		transform: rotate(360deg);
		background: #333;
	}
	100% {
		transform: rotate(360deg);
		background: #333;
	}
}
@keyframes rotate-circle-left {
	0%   { transform: rotate(0deg); }
	50%  { transform: rotate(0deg); }
	100% { transform: rotate(180deg); }
}

.progressbar-v2 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	width: 100%;
	padding: 4px 0;
}
.progressbar-v2 .progressbar-v2-label {
	font-size: 0.9em;
	letter-spacing: 0.15em;
}
.progressbar-v2 .progressbar-v2-inner {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2px;
	width: 100%;
	height: 20px;
	padding: 4px 0;
}
.progressbar-v2 .progressbar-v2-inner div:nth-child(2) div {animation-delay: 0.2s;}
.progressbar-v2 .progressbar-v2-inner div:nth-child(3) div {animation-delay: 0.4s;}
.progressbar-v2 .progressbar-v2-inner div:nth-child(4) div {animation-delay: 0.6s;}
.progressbar-v2 .progressbar-v2-inner div:nth-child(5) div {animation-delay: 0.8s;}
.progressbar-v2 .progressbar-v2-inner div:nth-child(6) div {animation-delay: 1.0s;}
.progressbar-v2 .progressbar-v2-inner .progressbar-v2-inner-item {
	background: #a0a0a0;
	flex: 1;
	height: 100%;
	overflow: hidden;
}
.progressbar-v2 .progressbar-v2-inner .progressbar-v2-inner-item div {
	background: #05a00f;
	height: 100%;
	overflow: hidden;
	animation: progressbar-v2-inner-item-anim 0.2s both 1 linear;
}
@keyframes progressbar-v2-inner-item-anim {
	0% {
		width: 0;
	}
	100% {
		width: 100%;
	}
}

.tab-v2 {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	border-radius: 4px;
	overflow: hidden;
	background: rgba(226, 226, 226, 0.5);
}
.tab-v2 .tab-v2-item {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 4px;
	padding: 8px 4px;
	font-size: 1em;
	animation: tab-v2-item-anim 0.3s both 1 ease-in;
	white-space: nowrap;
	overflow: hidden;
	border-top: 2px solid transparent;
	border-bottom: 2px solid transparent;
	border-left: 2px solid transparent;
	border-right: 2px solid transparent;
}
/* .tab-v2 div:nth-child(2) {animation-delay: 0.2s;} */
/* .tab-v2 div:nth-child(3) {animation-delay: 0.4s;} */
@keyframes tab-v2-item-anim {
	0% {
		/* letter-spacing: 1em; */
		opacity: 0;
	}
	100% {
		/* letter-spacing: 0.1em; */
		opacity: 1;
	}
}
.tab-v2 .tab-v2-item-on {
	animation: tab-v2-item-on-anim 1.4s both infinite linear;
	background: rgba(255, 255, 255, 0.8);
	color: #4994ef;
}
@keyframes tab-v2-item-on-anim {
	0% {
	}
	50% {
		border-top-color: white;
		border-bottom-color: white;
	}
	100% {
	}
}
.tab-v2 .tab-v2-item-notification {
	animation: tab-v2-item-notification-anim 0.5s both infinite linear;
}
@keyframes tab-v2-item-notification-anim {
	0% {
	}
	50% {
		border-top-color: #ef4949;
		border-bottom-color: #ef4949;
		color: #ef4949;
	}
	100% {
	}
}
.tab-v2 .tab-v2-item .tab-v2-item-badge {
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 4px;
	width: 40px;
	height: 20px;
	font-size: 0.8em;
	color: white;
	font-weight: bold;
	background: #ef4949;
	animation-delay: 2s;
	animation: tab-v2-item-badge-anim 1s both infinite linear;
	overflow: hidden;
}
@keyframes tab-v2-item-badge-anim {
	0% {
	}
	50% {
		color: #ef4949;
	}
	100% {
	}
}

.order-item-v2 {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 4px;
	width: 100%;
	overflow: hidden;
	padding: 8px 16px;
	border-bottom: 1px solid rgba(0,0,0,0.3);
}
.order-item-v2 .type-img {
	position: absolute;
	top: 20px;
	right: -20px;
	overflow: hidden;
	width: 100px;
	height: 100px;
	opacity: 0.6;
	z-index: 1;
}
.order-item-v2 .type-img img {
	object-fit: fill;
	width: 100%;
	height: 100%;
}
.order-item-v2 .order-item-v2-info {
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 4px;
	width: 100%;
	overflow: hidden;
	z-index: 2;
}
.order-item-v2 .order-item-v2-info .order-item-v2-info-label {
	font-size: 0.8em;
	width: 134px;
	white-space: pre-wrap;
	word-break: break-all;
}
.order-item-v2 .order-item-v2-info .order-item-v2-info-text {
	flex: 1;
	font-size: 1em;
	white-space: pre-wrap;
	word-break: break-all;
}
.order-item-v2-selected {
	background: rgba(157,214,176,0.4)
}
.order-cart-item-v2 {
	flex:1;
	position: relative;
	display:flex;
	flex-direction:column;
	gap:8px;
	padding-bottom: 16px;
	width: 100%;
	overflow: scroll;
}
.order-cart-item-v2 .type-img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	overflow: hidden;
	width: 300px;
	height: 300px;
	opacity: 0.6;
	z-index: 1;
}
.order-cart-item-v2 .type-img img {
	object-fit: fill;
	width: 100%;
	height: 100%;
}
.order-cart-item-v2 .items {
	z-index: 2;
	order-bottom: 1px solid rgba(255,255,255,0.5);
}
.order-cart-item-v2 .total {
	z-index: 2;
}
.order-cart-item-v2 .info {
	z-index: 2;
}

.motion-btn {
	position: relative;
	letter-spacing: 0.15em;
	text-decoration: none;
	text-transform: uppercase;
	user-select: none;
	transition: 0.5;
	overflow: hidden;
}
.motion-btn span {
	position: absolute;
	border: 4px solid #fff;
	transform: translate(-50%, -50%);
	pointer-events: none;
	border-radius: 50%;
	filter: brightness(2);
	animation: motion-btn-span 1.4s linear 1;
}
@keyframes motion-btn-span {
	0% {
		width: 0;
		height: 0;
	}
	100% {
		width: 1000px;
		height: 1000px;
		opacity: 0;
	}
}