@font-face {
  font-family: "CN Font";
  src: url("../font/cnfont.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: light only;
  --black: #303735;
  --grey: #707070;
  --white: #ecf8ff;
  --active: #ffe45c;
  --highlight: #d35822;
  --font: "Noto Sans SC", sans-serif;
  --font2: "Noto Serif SC", serif;
  --tltfont: "CN Font", sans-serif;

  --bdr_s: 5px;
  --navheight: 70px;
  --txt_l: 24px;
  --txt_body: 16px;
}

@media only screen and (max-width: 768px) {
  :root {
    --navheight: 65px;
    --txt_l: 20px;
    --txt_body: 14px;
  } 
}
/*---------------------------------------
   Animation
-----------------------------------------*/
@keyframes fadein{
	from {opacity: 0;}
    to {opacity: 1;}
}
@keyframes fadein_top{
	from {transform: translateY(300px); opacity: 0;}
    to {transform: translateY(0); opacity: 1;}
}
@keyframes fadein_bottom{
	from {transform: translateY(-300px); opacity: 0;}
    to {transform: translateY(0); opacity: 1;}
}
@keyframes fadein_left{
	from {transform: translateX(-500px); opacity: 0;}
    to {transform: translateX(0); opacity: 1;}
}
@keyframes fadein_right{
	from {transform: translateX(500px); opacity: 0;}
    to {transform: translateX(0); opacity: 1;}
}
@keyframes popin{
  0% {transform: scale(2); opacity: 0;}
  100% {transform: scale(1); opacity: 1;}
}
@keyframes popout{
  0% {transform: scale(0); opacity: 0;}
  100% {transform: scale(1); opacity: 1;}
}
@keyframes rotate{
  0% {transform: rotate(0deg);}
  100% {transform: rotate(360deg);}
}
@keyframes toleft{
  0% {transform: translateX(0);}
  100% {transform: translateX(-3000px);}
}
@keyframes float{
  0% {transform: translateY(0);}
  100% {transform: translateY(-5px);}
}


/*---------------------------------------
   Normalize    
-----------------------------------------*/
body{
  position: relative;
  width: 100%;
  margin: 0px;
  padding: 0px;
  color: var(--black);
  font-size:  var(--txt_s);
  font-family: var(--font);
  font-weight: 500;
  text-wrap: pretty;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  background: black;
  /* background: #d35822; */
}
body.no-scroll {
  overflow: hidden;
}

.maincontainer{
  width: 100%;
  max-width: 1400px;
}

p, li {
  font-size: var(--txt_body);
  line-height: calc(var(--txt_body) + 5px);
  font-weight: 400;
}

b {
  font-size: var(--txt_body);
  line-height: calc(var(--txt_body) + 6px);
}

ol{
  padding-left: 18px;
}

hr{
  width: 100%;
}

button, a{
  pointer-events: all;
  cursor: pointer;
}

.divider.verti{
  margin: 0;
  width: 0;
  height: 100px;
  border-left: 1.5px solid white;
}

input:not(.checkbox) {
  font-size: var(--txt_body);
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border-radius: var(--bdr_s);
  border: 1px solid rgba(243, 196, 107, .2);
  background: white;
  outline: none;
}

.logo{
  width: 125px;
  max-width: 6vw;
  aspect-ratio: 125 / 105;
  background: url(../img/logo_cn.png) top center no-repeat;
  background-size: contain;
}
#en .logo{
  background: url(../img/logo_en.png) top center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 768px) {
  .maincontainer{
    padding-bottom: 200px;
  }
  .draggable-scroll{
    cursor: grab;
  }
  .logo{
    max-width: 15vw;
    z-index: 9999;
  }
}

.helper{
  font-size: small;
  color: var(--grey);
}

/*---------------------------------------
   Font
-----------------------------------------*/
h2{
  font-family: var(--font);
  font-weight: 500;
  font-size: var(--txt_l);
  color: #fbf7e8;
}
.note{
  color: var(--highlight);
  font-weight: 500;
}

.txt_end{
  text-align: end;
}
.txt_smtlt{
  font-size: calc(var(--txt_body) + 2px);
  font-weight: 600;
}
.title{
  width: fit-content;
  height: fit-content;
  max-height: 5vw;
}
@media only screen and (max-width: 768px) {
  .title{
    max-height: 15vw;
    max-width: 90vw;
  }
}
.divider{
  border-bottom: 1px dotted var(--highlight);
}

label{
  font-size: 14px;
  margin-bottom: 5px;
}
table{
  width: 99.5%;
  border-spacing: 1px;
  color: #3c414a;
  margin: 1rem auto 1.5rem;
}
table tr:first-child td{
  padding: .8rem .5rem;
  background-color: var(--highlight);
  text-align: center;
  font-weight: 400;
  color: #fbf7e8;
}
table tr:nth-child(odd) {
  background-color: rgba(108,148,188,.35);
}
table tr:nth-child(even) {
  background-color: rgba(137,167,200,.35);
}
table td {
  font-size: 14px;
  line-height: 18px;
  border: 1px solid rgba(255, 255, 255, .35);
  word-break: break-all;
  padding: .5rem .5rem;
  /* background-color: rgba(74, 74, 134, .3); */
  text-align: center;
}

/*---------------------------------------
   Scroll Effect       
-----------------------------------------*/
/* ::-webkit-scrollbar {
  width: 6px;
  height: 3.5px;
}
::-webkit-scrollbar-track {
  opacity: 0;
}
::-webkit-scrollbar-thumb {
  background: rgba(67, 169, 233, 0.7);
  border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover {
  background: #45adee;
}

body.modal-open {
  overflow-y: scroll; 
} */

/*---------------------------------------
   NAVBAR
-----------------------------------------*/
.navigation{
  position: relative;
  padding: .75vw 2%;
  top: 0;
  position: fixed;
  z-index: 9999;
  max-width: 1920px;
  justify-self: center;
  color: var(--black);
  transition: color .35s;
}
.navigation.nav-white {
  color: white;
  transition: color .35s;
}

.navigation.nav-white.scrolled::before {
  filter: unset;
  opacity: 1;
}

.nav_wrapper{
  position: absolute;
  width: 100%;
  left: 50%;
  gap: 2.5vw;
  transform: translateX(-50%);
}
.nav_link{
  font-family: var(--tltfont);
  font-size: 1.15vw;
  font-weight: 500;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0;
  gap: 0;
}
.nav_link span{
  font-size: .85vw;
  text-transform: uppercase;
  margin-top: -5px;
}
.nav_link:hover, .nav_link.active{
  color: var(--active);
}

.logowrapper{
	filter: drop-shadow(0 2px 6px rgba(0,0,0,.95));
}

.img_official{
	width: 435px;
	min-width: 135px;
	max-width: 20vw;
	position: relative;
	aspect-ratio: 435/58;
	background: url(../img/official.png) no-repeat;
	background-size: contain;
  mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-image: url(../img/official.png);
  -webkit-mask-image: url(../img/official.png);
}
#en .img_official{
	width: 310px;
	min-width: 135px;
	max-width: 20vw;
	position: relative;
	aspect-ratio: 310/54;
	background: url(../img/official-en.png) no-repeat;
	background-size: contain;
  mask-image: url(../img/official-en.png);
  -webkit-mask-image: url(../img/official-en.png);
}


.img_official::after{
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent, rgb(255, 255, 255), rgb(255, 255, 255), transparent);
	translate: -100% 0;
	animation: logoshine 6s infinite;
	mix-blend-mode: screen;
}

@keyframes logoshine{
  0%, 45% {translate: -100% 0;}
  65%, 100% {translate: 100% 0;}
}

@media only screen and (max-width: 768px) {
  .navigation{
    padding: 2vw 2%;
  }
  .nav_wrapper{
    display: none;
  }
	.img_official{
		max-width: 30vw;
		position: relative;
		aspect-ratio: 435/58;
		background: url(../img/official.png) no-repeat;
		background-size: contain;
		mask-size: contain;
		mask-repeat: no-repeat;
		-webkit-mask-size: contain;
		-webkit-mask-repeat: no-repeat;
		mask-image: url(../img/official.png);
		-webkit-mask-image: url(../img/official.png);
	}
}

/*---------------------------------------
   MODAL
-----------------------------------------*/
.modal{
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 30px;
	background: rgba(20, 8, 3, .82);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	z-index: 99999;
	overflow-y: auto;
}

.modal.active{
	display: flex;
}

/*---------------------------------------
   MODAL DIALOG
-----------------------------------------*/
.modal_dialog {
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;
  max-width: 90vw;
  max-height: calc(100dvh - 60px);
  padding: 35px;
  animation: modalIn .35s cubic-bezier(.2, .8, .2, 1) both;
  align-items: center;
  justify-content: center;
}

/*---------------------------------------
   MODAL CONTENT
-----------------------------------------*/
.modal_content{
	position: relative;
	width: fit-content;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
	z-index: 2;
}


/*---------------------------------------
   MODAL CLOSE
-----------------------------------------*/
.modal_close{
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 20;
}


/*---------------------------------------
   MODAL ACTIONS
-----------------------------------------*/
.modal_actions{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px;
}

/*---------------------------------------
   MODAL BUTTON
-----------------------------------------*/
.modal_btn{
	all: unset;
	box-sizing: border-box;
	min-width: 150px;
	height: 48px;
	padding: 0 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50px;
	font-family: var(--tltfont);
	font-size: 17px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 2px;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition:
		transform .25s ease,
		filter .25s ease,
		background .25s ease,
		border-color .25s ease;
}

/* Primary */
.modal_btn_primary{
	border: 1px solid rgba(255, 225, 175, .75);
	color: #fff3d4;
	background: linear-gradient(to bottom, #c75b2f, #a83f1e);
	box-shadow: 0 7px 16px rgba(87, 34, 12, .18);
}


/* Secondary */
.modal_btn_secondary{
	border: 1px solid rgba(118, 70, 38, .45);
	color: #70451f;
	background: rgb(255, 248, 226);
}


.modal_btn:hover{
	transform: translateY(-2px);
	filter: brightness(1.08);
}

.modal_btn:active{
	transform: translateY(0) scale(.98);
}

/*---------------------------------------
   MODAL ANIMATION
-----------------------------------------*/
@keyframes modalIn{
	from{
		opacity: 0;
		transform: translateY(20px) scale(.97);
	}

	to{
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}


/*---------------------------------------
   MODAL SCROLLBAR
-----------------------------------------*/
.modal_dialog::-webkit-scrollbar{
	width: 4px;
}

.modal_dialog::-webkit-scrollbar-track{
	background: transparent;
}

.modal_dialog::-webkit-scrollbar-thumb{
	border-radius: 10px;
	background: rgba(112, 69, 40, .35);
}


/*---------------------------------------
   MODAL MOBILE
-----------------------------------------*/
@media only screen and (max-width: 768px) {
	.modal{
		padding: 15px;
	}

	.modal_dialog{
		width: 100%;
		max-height: calc(100dvh - 30px);
		padding: 30px 18px 25px;
	}

	.modal_dialog::before{
		inset: 7px;
	}

	.modal_close{
		top: 14px;
		right: 14px;
	}

	.modal_content{
		gap: 14px;
	}

	.modal_actions{
		gap: 8px;
	}

	.modal_btn{
		min-width: 135px;
		height: 45px;
		padding: 0 20px;
		font-size: 15px;
	}
}

/*---------------------------------------
   VIDEO MODAL
-----------------------------------------*/
/* .videoModal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999;
  padding: 24px;
} */
.videoModal.is-open { display: flex;}

.videoModal_dialog {
  width: min(100%, 960px);
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5));
  position: relative;
}

.videoModal_wrapper {
  aspect-ratio: 16 / 9;
  width: 100%;
  background: #000;
  border-radius: 15px;
  overflow: hidden;
}
.videoModal_wrapper > * {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  object-fit: contain;
  background: #000;
}


/*---------------------------------------
   Button
-----------------------------------------*/
.btn{
  all: unset;
}

.btn_home, .btn_fb, .btn_lang{
  width: 35px;
  height: 35px;
  min-width: 25px;
  max-width: 3vw;
  aspect-ratio: 1/1;
  background: url(../img/button/btn_close.png) center no-repeat;
  background-size: contain;
  filter: brightness(1.5);
}
.btn_home{
  background: url(../img/button/btn_home.png) center no-repeat;
  background-size: contain;
}
.btn_fb{
  background: url(../img/button/btn_fb.png) center no-repeat;
  background-size: contain;
}
.btn_lang{
  background: url(../img/button/btn_lang.png) center no-repeat;
  background-size: contain;
}

.btn_cta{
  color: white;
  white-space: nowrap;
  font-size: 20px;
  height:  48px;
  padding: 10px 30px;
  border-radius: var(--bdr_s);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--highlight);
}
.btn_cta:hover{
  background: var(--active);
}
.btn_close{
  width: 25px;
  height: 25px;
  aspect-ratio: 1/1;
  background: url(../img/button/btn_close.png) center no-repeat;
  background-size: contain;
}
.btn_close:hover{
  transform: rotate(180deg);
  filter: brightness(1.5);
  transition: transform .35s;
}

.btn_play{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  min-width: 45px;
  width: 100px;
  max-width: 5vw;
  aspect-ratio: 1/1;
  background: url(../img/button/btn_play.png) center no-repeat;
  background-size: contain;
  animation: poppingcenter .5s infinite alternate;
}
.btn_play:hover{
  filter: brightness(1.5);
}

.btn_dl{
  position: relative;
  width: 193px;
  max-width: 11vw;
  aspect-ratio: 193 / 56;
  border-radius: 5px;
  overflow: hidden;
}
.btn_dl.apple{
  background: url(../img/kv/dl_apple.png) no-repeat;
  background-size: contain;
}
.btn_dl.google{
  background: url(../img/kv/dl_google.png) no-repeat;
  background-size: contain;
}
.btn_dl.pc{
  background: url(../img/kv/dl_pc.png) no-repeat;
  background-size: contain;
}

.btn_dl::after, .btn_gameModal::after ,.btn_invFriend::after, .historyItem::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent, rgba(255, 255, 255, .5), transparent);
  translate: -120% 0;
  animation: shine 6s infinite;
}

@keyframes shine{
  0%, 45% {translate: -120% 0;}
  65%, 100% {translate: 120% 0;}
}
@keyframes popping{
  0% {transform: scale(1)}
  100% { transform: scale(.93)}
}
@keyframes poppingcenter{
  0% {transform: translate(-50%, -50%) scale(1)}
  100% { transform: translate(-50%, -50%) scale(.98)}
}

.btn_rule{
  position: fixed;
  right: 0;
  top: 20%;
  z-index: 99;
  width: 53px;
  max-width: 2.8vw;
  aspect-ratio: 53 / 161;
  background: url(../img/button/btn_rule.png) no-repeat;
  background-size: contain;
}

#en .btn_rule{
  background: url(../img/button/btn_rule-en.png) no-repeat;
  background-size: contain;
}

.btn_otp{
  background: var(--black);
  color: white;
  white-space: nowrap;
  height:  48px;
  padding: 10px 20px;
  border-radius: var(--bdr_s);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.btn_otp:hover{
  background: var(--active);
  color: black;
}

@media only screen and (max-width: 768px) {
  .btn_dl{
    max-width: 24vw;
  }
  .btn_rule{
    max-width: 8vw;
  }
}
/*---------------------------------------
   KV
-----------------------------------------*/
#KV{
  position: relative;
  width: 100vw;
  max-width: 1920px;
  aspect-ratio:  1920/1000;
  background: url(../img/kv/bg.png) bottom center no-repeat;
  background-size: cover;
  justify-self: center;
  transition: opacity .35s;
}

#KV::before, #KV::after{
  content: "";
  position: absolute;
  pointer-events: none;

}
#KV::before{
  width: 1920px;
  max-width: 100vw;
  aspect-ratio: 1920/190;
  background: url(../img/kv/shade.png) bottom center no-repeat;
  background-size: contain;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

#KV::after{
  width: 305px;
  max-width: 16.2vw;
  aspect-ratio: 305 / 310;
  background: url(../img/kv/hand.png) bottom center no-repeat;
  background-size: contain;
  left: 3.9%;
  bottom: 2.9%;
  z-index: 10;
}

.slogan{
  position: absolute;
  right: 2%;
  bottom: 13%;
  width: 563px;
  max-width: 30vw;
  aspect-ratio: 563/281;
  background: url(../img/kv/slogan-cn.png) center no-repeat;
  background-size: contain;
  transition: opacity .3s;
  z-index: 15;
  animation: popin .35s backwards .35s;
  pointer-events: none;
}
#en .slogan{
  width: 606px;
  max-width: 30vw;
  aspect-ratio: 606/275;
  background: url(../img/kv/slogan-en.png) center no-repeat;
  background-size: contain;
}
.slogan.pre_regis {
  background: url(../img/kv/slogan-cn_date.png) center no-repeat;
  background-size: contain;
}
#en .slogan.pre_regis {
  background: url(../img/kv/slogan-en_date.png) center no-repeat;
  background-size: contain;
}

.kvwrapper{
  width: 100%;
  height: 100%;
  position: relative;
  pointer-events: none;
  padding-bottom: 12%;
  box-sizing: border-box;
  transition: unset;
}

.fg{
  position: absolute;
  width: 100%;
  height: 9vw;
  bottom: 0;
  left: 0;
  height: 9vw;
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: bottom;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: bottom;
  mask-image: url(../img/kv/btm_mask.png);
  -webkit-mask-image: url(../img/kv/btm_mask.png);
  background: #d35822;
}

/* .kvwrapper::after {
  content: "";
  width: 100%;
  height: 9vw;
  position: absolute;
  bottom: 0;
  left: 0;
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: bottom;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: bottom;
  mask-image: url(../img/kv/btm_mask.png);
  -webkit-mask-image: url(../img/kv/btm_mask.png);
  z-index: 1;
} */
.fg::after{
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/pattern.png) bottom repeat;
}
/* .kvwrapper::before{
  background: #d35822;
} */

.btn_main{
  position: absolute;
  bottom: 3.5%;
  left: 2%;
  width: 453px;
  max-width: 22vw;
  aspect-ratio: 453/545;
  background: url(../img/kv/btn_cta.png) bottom center no-repeat;
  background-size: contain;
  z-index: 15;
  animation: popout .5s ease .5s backwards, popping 1s infinite alternate 1s;
}

#en .btn_main{
  background: url(../img/kv/btn_cta-en.png) bottom center no-repeat;
  background-size: contain;
}
.btn_main:hover{
  filter: brightness(1.15);
}

.btn_scroll{
  position: absolute;
  bottom: 13%;
  left: 50%;
  transform: translateX(-50%);
  color: white;
  z-index: 15;
  font-family: var(--tltfont);
  font-size: .85vw;
  text-transform: uppercase;
  letter-spacing: 15px;
  white-space: nowrap;
  text-indent: 15px;
  text-align: center;
}
.btn_scroll span{
  width: 27px;
  aspect-ratio: 27 / 20;
  max-width: 2vw;
  background: url(../img/kv/arrow.png) bottom center no-repeat;
  background-size: contain;
  animation: float .5s infinite alternate;
}

@media only screen and (max-width: 768px) {
  #KV{
    aspect-ratio: 780 / 1450;
    background: url(../img/kv/bg_m.png) bottom center no-repeat;
    background-size: cover;
  }
  #KV::before{
    max-width: unset;
  }
  #KV::after{
    content: none;
  }

  .kvwrapper{
    padding-top: 15vw;
    padding-bottom: 0;
    justify-content: flex-start !important;
  }

  .slogan, #en .slogan{
    position: relative;
    max-width: 90vw;
    right: unset;
    bottom: unset;
    margin-bottom: -5%;
  }

  .btn_main{
    max-width: 50%;
    left: 21%;
    bottom: 0;
    rotate: -16deg;
  }
  .btn_scroll{
    bottom: 15vw;
    font-size: 3vw;
  }
  .btn_scroll span{
    max-width: 5vw;
  }
}


/*---------------------------------------
   Section
-----------------------------------------*/
.bg_white{
  position: relative;
  width: 100vw;
  background: url(../img/bg_white.jpg) bottom center no-repeat;
  background-size: cover;
  justify-self: center;
}
.bg_dark p{
  color: white;
  font-family: var(--tltfont);
  font-size: 15px;
}
.rsp_mobile{
  max-width: 1920px;
  /* aspect-ratio:  1920/910; */
  height: fit-content;
  padding: 50px 0;
}
@media only screen and (max-width: 768px) {
  .rsp_mobile{
    max-width: 100vw;
    height: fit-content;
    aspect-ratio:  unset;
  }
}

@keyframes ctrFloat {
  from {
    transform: translateX(-50%) scale(1);
  }
  to {
    transform: translateX(-50%) scale(.98);
  }
}

/*---------------------------------------
   PICK FOOD
-----------------------------------------*/
#pickFood{
	position: relative;
	width: 100%;
	max-width: 1920px;
	min-height: unset;
	padding: 0;
	justify-self: center;
	background: linear-gradient(to top, #cc4015, #d35822);
  margin-top: -1px;
  overflow: visible;
  z-index: 10;
  border-bottom: 3px solid #ffe492;
}

#pickFood::before, #pickFood::after{
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}
#pickFood::before{
  width: 100%;
	height: 100%;
	background: url(../img/pattern.png) top repeat;
}
#pickFood::after{
  left: 50%;
  top: 25%;
  transform: translate(-50%, -50%);
  width: 750px;
  max-width: 80vw;
  aspect-ratio: 1251/381;
	background: url(../img/pick/tlt_bg.png) repeat;
  background-size: contain;
	pointer-events: none;
	z-index: 0;
  mix-blend-mode: multiply;
  opacity: .7;
}

#en #pickFood::after{
	background: url(../img/pick/tlt_bg_en.png) repeat;
  background-size: contain;
}

#pickFood > *{
	position: relative;
	z-index: 1;
}

/*---------------------------------------
   PICK FOOD HEADER
-----------------------------------------*/
.title_header{
  position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 0 20px;
	margin-bottom: 0;
	color: #fff6dd;
	z-index: 20;
  filter: drop-shadow(0 0 3px rgba(0,0,0,.5));
}

.title_header p{
	margin: 0;
	color: #fff6dd;
	font-family: var(--tltfont);
	font-size: clamp(15px, 1.05vw, 20px);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 1px;
	text-align: center;
  z-index: 20;
}

#en .title_header p{
	letter-spacing: 0;
}

.title_header p span{
	color: var(--active);
	font: inherit;
}

.title_diamond{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	color: #fff6dd;
	font-size: 9px;
	line-height: 1;
}

/*---------------------------------------
   PICK FOOD SWIPER
-----------------------------------------*/
.pickFood_slider{
	position: relative;
	width: 100%;
	padding: 5px 0 0;
  margin-bottom: -5%;
}

.pickFood_slider .swiper-wrapper{
	align-items: flex-end;
	transition-timing-function: cubic-bezier(.22, .61, .36, 1);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.pickFood_slide{
	position: relative;
	height: auto;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	cursor: grab;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
}

.pickFood_slide:active{
	cursor: grabbing;
}

/*---------------------------------------
   PICK FOOD ARROW
-----------------------------------------*/
.pickFood_nav{
	position: absolute;
  width: 100%;
  max-width: 600px;
  top: 50%;
  transform: translateY(-50%);
  justify-self: center;
  z-index: 40;
}
.pickFood_arrow{
	all: unset;
	position: absolute;
	top: 50%;
	width: 55px;
	height: 80px;
	transform: translateY(-50%);
	cursor: pointer;
	z-index: 40;
	opacity: .75;
	transition: opacity .25s ease, transform .25s ease;
}

.pickFood_arrow:hover{
	opacity: 1;
}

.pickFood_prev{
	left: 2%;
}

.pickFood_next{
	right: 2%;
}

.pickFood_arrow img{
  width: 100%;
}
.pickFood_next img{
  transform: scaleX(-1);
}




@media only screen and (max-width: 768px) {
	.pickFood_arrow{
		width: 38px;
		height: 60px;
	}

	.pickFood_prev{
		left: 5px;
	}

	.pickFood_next{
		right: 5px;
	}

	.pickFood_arrow::before,
	.pickFood_arrow::after{
		width: 3px;
		height: 23px;
	}
}

/*---------------------------------------
   PICK FOOD ITEM
-----------------------------------------*/
.pickFood_item{
	position: relative;
	width: 100%;
	max-width: 459px;
	aspect-ratio: 459 / 645;
	margin: 0 auto;
	filter: brightness(.5);
	transform: translateZ(0) scale(.85);
	-webkit-transform: translateZ(0) scale(.85);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transition: filter .28s ease, transform .35s ease ;
}

.pickFood_slide.swiper-slide-active{
	z-index: 10;
}

.pickFood_slide.swiper-slide-active .pickFood_item{
  transform: translateZ(0) scale(1);
  -webkit-transform: translateZ(0) scale(1);
	filter: brightness(1.04);
}

/*---------------------------------------
   PICK FOOD VISUAL
-----------------------------------------*/
.pickFood_visual{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

/*---------------------------------------
   CHARACTER
-----------------------------------------*/
.pickFood_char{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: 459px;
	max-height: 645px;
	object-fit: contain;
	object-position: center bottom;
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
	z-index: 1;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

/*---------------------------------------
   FOOD
-----------------------------------------*/
.pickFood_food{
	position: absolute;
	left: 50%;
  bottom: 12%;
	width: min(94%, 432px);
	max-width: 432px;
	height: auto;
	object-fit: contain;
	object-position: center bottom;
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
	z-index: 3;
	transform: translate3d(-50%, 0, 0) rotate(-8deg) scale(.85);
	-webkit-transform: translate3d(-50%, 0, 0) rotate(-8deg) scale(.85);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
  filter: contrast(.5) sepia(1) hue-rotate(315deg) brightness(.25);
  transition: transform .35s;
}

.pickFood_slide.swiper-slide-active .pickFood_food{
	opacity: 1;
	transform: translate3d(-50%, 0, 0)  scale(1);
	-webkit-transform: translate3d(-50%, 0, 0)  scale(1);
  filter: unset;
}

/*---------------------------------------
   PICK TA
-----------------------------------------*/
.pickFood_pick{
	position: absolute;
  top: 15%;
  left: -5%;
	width: min(33%, 152px);
	max-width: 152px;
	height: auto;
	opacity: 0;
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
	z-index: 7;
	transform: translateZ(0) rotate(-8deg) scale(.8);
	-webkit-transform: translateZ(0) rotate(-8deg) scale(.8);
	transform-origin: center;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transition: opacity .22s ease, transform .28s ease;
}

.pickFood_slide.swiper-slide-active .pickFood_pick{
	opacity: 1;
	transform: translateZ(0) rotate(-8deg) scale(.9);
	-webkit-transform: translateZ(0) rotate(-8deg) scale(.9);
}

/*---------------------------------------
   PICK FOOD INFO
-----------------------------------------*/
.pickFood_info{
	position: absolute;
	left: 50%;
	bottom: 4%;
	width: 86%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	transform: translate3d(-50%, 0, 0);
	-webkit-transform: translate3d(-50%, 0, 0);
	pointer-events: none;
	z-index: 8;
}

/*---------------------------------------
   REGION TAG
-----------------------------------------*/
.pickFood_region{
	position: relative;
	width: min(45%, 162px);
	max-width: 162px;
	aspect-ratio: 162 / 40;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: -1px;
}

.pickFood_region img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: 162px;
	max-height: 40px;
	object-fit: contain;
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
}

.pickFood_region span{
	position: relative;
	z-index: 1;
	color: #5b3920;
	font-family: var(--font);
	font-size: clamp(12px, .9vw, 18px);
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}


/*---------------------------------------
   REGION NAME
-----------------------------------------*/
.pickFood_name{
	display: block;
	width: auto;
	max-width: min(80%, 230px);
	max-height: 67px;
	height: auto;
	object-fit: contain;
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}


/*---------------------------------------
   PICK FOOD HOVER
-----------------------------------------*/
@media (hover: hover) and (pointer: fine) {
	.pickFood_slide.swiper-slide-active:hover .pickFood_item{
		filter: brightness(1.08);
	}
}

/*---------------------------------------
   PICK FOOD ACTION
-----------------------------------------*/
.pickFood_action {
  position: absolute;
  width: 100%;
  max-width: 459px;
  max-height: 100%;
  aspect-ratio: 459 / 645;
  justify-self: center;
  z-index: 30;
  margin: 0 auto;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
}

.clickBtn {
  all: unset;
  padding: 5px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(255, 246, 221, .65);
  border-radius: 20px;
  color: #ffffff;
  font-size: clamp(15px, 1.5vw, 24px);
  font-weight: 600;
  letter-spacing: 2px;
  text-wrap: nowrap;
  background: rgb(71 71 71 / 25%);
  box-shadow: 0 8px 18px rgba(91, 42, 15, .25);
  backdrop-filter: blur(3px);
  cursor: pointer;
  overflow: hidden;
  animation: popping .5s infinite alternate;
  transition: transform .25s ease, filter .25s ease, box-shadow .25s ease;
  pointer-events: all;
}
.clickBtn {
  font-size: clamp(14px, 1vw, 18px);
}

.clickBtn::after{
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.6) 50%, transparent 75%);
	transform: translateX(-130%);
	transition: transform .55s ease;
}

.clickBtn:hover{
	filter: brightness(1.05);
	box-shadow: 0 12px 24px rgba(91, 42, 15, .35);
}

.clickBtn:hover::after{
	transform: translateX(130%);
}


/*---------------------------------------
   PICK FOOD REWARD MODAL
-----------------------------------------*/
.pickFoodReward_paper{
	position: relative;
	width: min(360px, 90vw);
	aspect-ratio: 360 / 359;
  padding: 10%;
  transform: rotate(2deg);
}

.pickFoodReward_paper > img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
  z-index: -1;
}

.pickFoodRewardModal_region {
  position: absolute;
  bottom: 10%;
  right: 10%;
  color: #71361f;
  opacity: .5;
  font-family: var(--tltfont);
  font-size: clamp(20px, 3vw, 50px);
  line-height: 1;
}

.pickFoodRewardModal_reward{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
  flex-direction: column;
	padding: 10px 0;
}

.pickFoodRewardModal_reward img{
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 330px;
	object-fit: contain;
}

/*---------------------------------------
   PICK FOOD MODAL ANIMATION
-----------------------------------------*/
@keyframes pickFoodModalIn{
	from{
		opacity: 0;
		transform: translateY(20px) scale(.96);
	}

	to{
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

/*---------------------------------------
   PICK FOOD ACTION MOBILE
-----------------------------------------*/
@media only screen and (max-width: 768px) {
	.pickFoodRewardModal{
		padding: 20px;
	}

	.pickFoodRewardModal_region{
		font-size: 22px;
	}

	.pickFoodRewardModal_reward img{
		max-height: 260px;
	}
}

/*---------------------------------------
   PICK FOOD TABLET
-----------------------------------------*/
@media only screen and (max-width: 1200px) {
	.title_header{
		gap: 12px;
	}

	.title_header p{
		font-size: 16px;
	}
}

/*---------------------------------------
   PICK FOOD MOBILE
-----------------------------------------*/
@media only screen and (max-width: 768px) {
	.title_header{
		gap: 8px;
		padding: 0 15px;
		margin-bottom: 2px;
	}
	.title_header p{
		font-size: 14px;
		line-height: 19px;
		letter-spacing: .5px;
	}
	.title_diamond{
		font-size: 7px;
	}
	.pickFood_region span{
		font-size: 12px;
	}
}


/*---------------------------------------
   PICK FOOD SMALL MOBILE
-----------------------------------------*/
@media only screen and (max-width: 480px) {
	.title_header{
		padding: 0 10px;
	}

	.title_header p{
		font-size: 13px;
		line-height: 18px;
	}
}

/*---------------------------------------
   PICK FOOD REDUCED MOTION
-----------------------------------------*/
@media (prefers-reduced-motion: reduce) {
	.pickFood_slider .swiper-wrapper,
	.pickFood_item,
	.pickFood_pick{
		transition-duration: .01ms !important;
	}
}

/*---------------------------------------
   LUCKY DRAW
-----------------------------------------*/
#lucky{
	position: relative;
	width: 100%;
	max-width: 1920px;
	padding: 10vw 0 0;
  padding-top: clamp(20px, 10vw, 150px);
	overflow: hidden;
	justify-self: center;
	background: url(../img/lucky/bg.png) top center no-repeat;
	background-size: cover;
}

#lucky::before {
  content: "";
  position: absolute;
  width: 1920px;
  height: 80px;
  max-width: 100vw;
  background: url(../img/kv/shade.png) bottom center no-repeat;
  background-size: 100% 100%;
  top: 0;
  left: 50%;
  transform: translateX(-50%) rotate(180deg);
} 

.lucky_inner{
	position: relative;
	width: 100%;
	margin: 0 auto;
}

.lucky_inner::before, .lucky_inner::after {
  content: "";
  width: 1920px;
  max-width: 100vw;
  height: 8vw;
  position: absolute;
  bottom: 0;
  left: 0;
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: bottom;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: bottom;
  mask-image: url(../img/kv/btm_mask.png);
  -webkit-mask-image: url(../img/kv/btm_mask.png);
  z-index: 10;
}
.lucky_inner::after{
  background: url(../img/pattern.png) bottom repeat;
}
.lucky_inner::before{
  background: #2ae9d9;
}


/*---------------------------------------
   LUCKY TITLE
-----------------------------------------*/
.lucky_title{
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10;
  margin-bottom: 15px;
}

.lucky_title img{
	display: block;
	width: min(491px, 32vw);
	height: auto;
  max-width: fit-content;
	object-fit: contain;
	user-select: none;
	-webkit-user-select: none;
	pointer-events: none;
}

.lucky_stage{
	position: relative;
	width: 100%;
  max-width: 1280px;
  justify-self: center;
}

.lucky_stage::before, .lucky_stage::after{
  position: absolute;
  content: '';
  z-index: 50;
}

.lucky_stage::before{
  right: 110%;
  top: 0;
  max-width: 12vw;
  width: 518px;
  aspect-ratio: 518/722;
  background: url(../img/lucky/deco1.png) no-repeat center;
  background-size: contain;
}
.lucky_stage::after{
  left: 110%;
  top: 0;
  max-width: 14vw;
  width: 319px;
  aspect-ratio: 319/649;
  background: url(../img/lucky/deco2.png) no-repeat center;
  background-size: contain;
}

/*---------------------------------------
   INTRO
-----------------------------------------*/
.lucky_intro{
	z-index: 5;
	color: #fff7e8;
	text-align: center;
}

.lucky_intro p{
	color: inherit;
	font-family: var(--tltfont);
	font-size: clamp(15px, 1.15vw, 20px);
	font-weight: 500;
	line-height: 1.45;
	text-shadow: 0 2px 4px rgba(38, 14, 4, .45);
}


/*---------------------------------------
   CHARACTER
-----------------------------------------*/
.lucky_character {
  position: absolute;
  bottom: 0;
  width: min(435px, 45vw);
  z-index: 0;
  pointer-events: none;
}

.lucky_character img{
	display: block;
	width: 100%;
	max-width: 496px;
	height: auto;
	object-fit: contain;
	user-select: none;
	-webkit-user-select: none;
}

.lucky_drawArea{
  padding: 25px 0 50px;
}

/*---------------------------------------
   PAPER
-----------------------------------------*/
.lucky_draw{
	position: relative;
	width: 50vw;
  max-width: 165px;
  max-height: 70vw;
	aspect-ratio: 186 / 502;
	margin: 0 auto;
	transform-origin: center bottom;
  z-index: 15;
}

.lucky_draw > img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
}

.lucky_drawBtn {
  position: absolute;
  justify-self: center;
  bottom: 30%;
}

.lucky_draw.is-drawing{
	animation: luckyShake .09s linear infinite alternate;
}

@keyframes luckyShake{
	from{
		transform: translateX(-3px) rotate(-.6deg);
	}

	to{
		transform: translateX(3px) rotate(.6deg);
	}
}

@keyframes luckyStickShake{
	from{
		margin-bottom: 0;
	}

	to{
		margin-bottom: 8px;
	}
}

.luckyResult_title{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.luckyResult_title img{
	display: block;
	width: min(350px, 70vw);
	height: auto;
}

.luckyResult_label {
  color: #f7dfb4;
  display: flex;
  font-family: var(--tltfont);
  font-size: clamp(20px, 2vw, 25px);
  writing-mode: vertical-rl;
  text-align: center;
  text-orientation: upright;
  letter-spacing: 2px;
  width: 41px;
  aspect-ratio: 41 / 87;
  background: url(../img/lucky/chop_bg.png) center no-repeat;
  background-size: contain;
  align-items: center;
  justify-content: center;
}

.luckyResult_number {
  position: absolute;
  bottom: 5%;
  right: 10%;
  color: #71361f;
  opacity: .5;
  font-family: var(--tltfont);
  font-size: clamp(30px, 3vw, 60px);
  line-height: 1;
}

/*---------------------------------------
   RESULT PAPER
-----------------------------------------*/
.luckyResult_paper{
	position: relative;
	width: min(360px, 76vw);
	aspect-ratio: 360 / 632;
  padding: 10%;
}

.luckyResult_paper > img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
  z-index: -1;
}

.luckyResult_text{
	position: absolute;
	inset: 10% 11% 12%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	text-align: center;
	z-index: 2;
}

.luckyResult_text span{
	font-family: var(--tltfont);
  font-size: clamp(40px, 3vw, 50px);
  color: #c83e21;
}


.luckyResult_cn{
	color: #71361f;
	font-family: var(--tltfont);
	font-size: clamp(20px, 2vw, 27px);
	font-weight: 600;
	line-height: 1.45;
}

.luckyResult_en{
	color: #8a5c42;
	font-family: var(--font);
	font-size: clamp(12px, 1vw, 14px);
	font-weight: 500;
	line-height: 1.45;
}

#en .luckyResult_en{
  color: #71361f;
	font-family: var(--tltfont);
	font-size: clamp(20px, 2vw, 27px);
	line-height: 1.15;
}

/*---------------------------------------
   LUCKY SHARE PANEL
-----------------------------------------*/
.luckySharePanel {
  position: absolute;
  inset: 0;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
	min-width: fit-content;
	min-height: 500px;
  width: fit-content;
  height: fit-content;
	max-width: fit-content;
	max-height: fit-content;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 25px;
  border-radius: 30px;
  border: 2px solid rgb(255 248 226 / 50%);
  background: rgba(20, 8, 3, .82);
  backdrop-filter: blur(3px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 50;
  transition: opacity .25s ease, visibility .25s ease;
}

.luckySharePanel.active{
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.luckySharePanel_dialog{
	position: relative;
	width: min(580px, 90vw);
	max-height: 90%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 30px;
	overflow-y: auto;
	animation: luckySharePanelIn .3s cubic-bezier(.2,.8,.2,1) both;
}

.luckySharePanel_close{
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 10;
}

.luckySharePanel_content{
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
}

.luckyShare_title{
	color: #fff3d4;
	font-family: var(--tltfont);
	font-size: clamp(22px, 2vw, 30px);
	font-weight: 400;
	letter-spacing: 2px;
	text-align: center;
}

.luckyShare_preview{
	width: min(500px, 75vw);
	display: flex;
	align-items: center;
	justify-content: center;
}

.luckyShare_preview img{
	display: block;
	width: 100%;
	height: auto;
	max-height: 48vh;
	object-fit: contain;
	border-radius: 8px;
	filter: drop-shadow(0 10px 25px rgba(0,0,0,.25));
}

.luckyShare_result{
	width: min(500px, 80vw);
	color: #fff3d4;
	font-size: 15px;
	line-height: 1.6;
	text-align: center;
}

.luckyShare_actions{
	max-width: 600px;
}

@keyframes luckySharePanelIn{
	from{
		opacity: 0;
		transform: translateY(15px) scale(.97);
	}

	to{
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@media only screen and (max-width: 768px) {
	.luckySharePanel{
		padding: 15px;
	}

	.luckySharePanel_dialog{
		width: 100%;
		padding: 25px 15px;
	}

	.luckyShare_preview{
		width: min(360px, 78vw);
	}

	.luckyShare_actions{
		flex-direction: column;
	}

	.luckyShare_actions .modal_btn{
		width: min(260px, 75vw);
	}
}

/*---------------------------------------
   RESULT ANIMATION
-----------------------------------------*/
@keyframes luckyResultIn{
	from{
		opacity: 0;
		transform: translateY(25px) scale(.96);
	}

	to{
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

/*---------------------------------------
   LUCKY MOBILE
-----------------------------------------*/
@media only screen and (max-width: 768px) {
	.lucky_title img{
		width: min(390px, 80vw);
	}

	.lucky_intro{
		position: relative;
		top: unset;
		left: unset;
		width: 100%;
		margin-top: 10px;
		padding: 0 20px;
	}

	.lucky_intro p{
		font-size: 14px;
		line-height: 20px;
	}

	.lucky_character{
		left: -7%;
		bottom: 0;
		width: min(400px, 64vw);
		opacity: .98;
	}

  .lucky_drawArea{
    transform: translateX(15%);
  }
}


/*---------------------------------------
   LUCKY SMALL MOBILE
-----------------------------------------*/
@media only screen and (max-width: 480px) {
	.luckyResult_paper{
		width: min(320px, 82vw);
	}
}


/*---------------------------------------
   REDUCED MOTION
-----------------------------------------*/
@media (prefers-reduced-motion: reduce) {
	.lucky_draw.is-drawing,
	.lucky_draw.is-drawing .lucky_chopStick{
		animation: none !important;
	}
}

/*---------------------------------------
   WEAPON
-----------------------------------------*/
#weapon, #feature{
	position: relative;
	width: 100%;
	max-width: 1920px;
	min-height: unset;
	justify-self: center;
	background: #2ae9d9;
	/* background: linear-gradient(to top, rgb(31, 214, 199), #2ae9d9); */
  margin-top: -1px;
  z-index: 10;
}
#weapon{
  padding: 0;
}
#feature{
  padding: 50px 0 ;
  background: linear-gradient(to top, rgb(31, 214, 199), #2ae9d9); 
}

#weapon::before, #feature::before{
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}
#weapon::before, #feature::before{
  width: 100%;
	height: 100%;
	background: url(../img/pattern.png) top repeat;
}

#weapon > *{
	position: relative;
}

/*---------------------------------------
   WEAPON LAYOUT
-----------------------------------------*/
.weapon_layout{
	position: relative;
	width: min(1300px, 92vw);
	min-height: 640px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 45px;
  padding-bottom: 50px;
}

.weapon_layout::before, .weapon_layout::after{
  position: absolute;
  content: '';
}

.weapon_layout::before{
  left: 110%;
  top: 0;
  max-width: 12vw;
  width: 304px;
  aspect-ratio: 304/621;
  background: url(../img/weapon/deco1.png) no-repeat center;
  background-size: contain;
}
.weapon_layout::after{
  right: 110%;
  bottom: 0;
  max-width: 14vw;
  width: 223px;
  aspect-ratio: 223/501;
  background: url(../img/weapon/deco2.png) no-repeat center;
  background-size: contain;
}
/*---------------------------------------
   WEAPON NAV
-----------------------------------------*/
.weapon_nav{
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	z-index: 20;
}

.weapon_tab{
	all: unset;
	position: relative;
	width: 72px;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 5px solid rgba(41, 84, 75, .2);
	border-radius: 50%;
	color: rgba(54, 79, 72, .65);
	background: rgba(26, 106, 94, .16);
	box-shadow: 0 4px 10px rgba(25, 85, 77, .12);
	cursor: pointer;
	transform: scale(.9);
	transition:
		transform .28s ease,
		background .28s ease,
		border-color .28s ease,
		color .28s ease,
		filter .28s ease;
}

.weapon_tab:hover{
	transform: scale(.98);
}

.weapon_tab.active {
  transform: scale(1);
  color: #ffffff;
  border-color: #98e4c8;
  background: rgb(27 123 98);
  box-shadow: 0 0 0 4px rgba(110, 73, 33, .16), 0 7px 18px rgba(54, 88, 79, .18);
}

.weapon_tabIcon{
	font-family: var(--tltfont);
	font-size: 25px;
	font-weight: 600;
	line-height: 1;
  opacity: .5;
}

.weapon_tab:hover .weapon_tabIcon, .weapon_tab.active .weapon_tabIcon {
  opacity: 1;
}
.weapon_tabIcon img{
  width: 100%;
}

/*---------------------------------------
   WEAPON CONTENT
-----------------------------------------*/
.weapon_content{
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 640px;
}


/*---------------------------------------
   WEAPON PANEL
-----------------------------------------*/
.weapon_panel{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
  justify-content: space-between;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity .35s ease,
		visibility .35s ease;
}

.weapon_panel.active{
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}


/*---------------------------------------
   WEAPON INFO
-----------------------------------------*/
.weapon_info{
	position: relative;
	width: 100%;
	max-width: 520px;
	padding: 20px 10px 20px 0;
}

.weapon_name{
	position: relative;
	width: min(238px, 65%);
	margin-bottom: 20px;
	/* mix-blend-mode: multiply;
	opacity: .7; */
}

.weapon_name_wide{
	width: min(420px, 95%);
}

.weapon_name img{
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 267px;
	object-fit: contain;
	object-position: left center;
	user-select: none;
	-webkit-user-select: none;
	pointer-events: none;
	opacity: 0;
	transform: translateX(-18px);
	transition:
		opacity .35s ease .06s,
		transform .48s cubic-bezier(.22,.8,.25,1) .06s;
}

.weapon_panel.active .weapon_name img{
	opacity: 1;
	transform: translateX(0);
}


/*---------------------------------------
   WEAPON INTRO
-----------------------------------------*/
.weapon_intro{
	max-width: 470px;
	margin: 0;
  color: var(--black);
  font-size: clamp(16px, 1.5vw, 20px);
	font-weight: 500;
  line-height: 1.35;
	letter-spacing: .3px;
	opacity: 0;
	transform: translateY(10px);
	transition:
		opacity .35s ease .12s,
		transform .45s ease .12s;
}

.weapon_panel.active .weapon_intro{
	opacity: 1;
	transform: translateY(0);
}


/*---------------------------------------
   WEAPON DIVIDER
-----------------------------------------*/
.weapon_divider{
	position: relative;
	width: 100%;
	max-width: 470px;
	height: 1px;
	margin: 22px 0;
	background: linear-gradient(to right, rgba(67, 96, 88, .5), rgba(67, 96, 88, .08));
}

.weapon_divider::before,
.weapon_divider::after{
	content: "";
	position: absolute;
	top: 50%;
	width: 7px;
	aspect-ratio: 1 / 1;
	background: #54756b;
	transform: translateY(-50%) rotate(45deg);
}

.weapon_divider::before{
	left: 0;
}

.weapon_divider::after{
	right: 0;
	opacity: .2;
}


.weapon_detail{
	width: 100%;
	max-width: 490px;
	opacity: 0;
	transform: translateY(10px);
	transition:
		opacity .35s ease .18s,
		transform .45s ease .18s;
}

.weapon_panel.active .weapon_detail{
	opacity: 1;
	transform: translateY(0);
}

.weapon_detail p{
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 8px;
	margin: 0 0 6px;
  color: var(--black);
	font-size: clamp(14px, 1vw, 16px);
	line-height: 1.05;
  align-items: center;
}

#en .weapon_detail p{
	grid-template-columns: 120px 1fr;
}

.weapon_detail strong {
  position: relative;
  color: #eaf4f0;
  font-weight: 500;
  font-size: clamp(12px, .95vw, 14px);
  padding: 5px 10px;
  border-radius: 50px;
  background: #17634f;
  white-space: nowrap;
}

.weapon_detail span{
  color: var(--black);
}


/*---------------------------------------
   WEAPON CHARACTER
-----------------------------------------*/
.weapon_character{
	position: relative;
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	/* height: 640px; */
	z-index: 3;
}

.weapon_character img{
	display: block;
	/* width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%; */
  height: 100%;
	object-fit: contain;
	object-position: center bottom;
	user-select: none;
	-webkit-user-select: none;
	pointer-events: none;
	opacity: 0;
	transform: translateY(150px);
	filter: drop-shadow(0 18px 18px rgba(21, 84, 75, .16));
	transition:
		opacity .4s ease,
		transform .55s cubic-bezier(.22,.8,.25,1);
}

.weapon_panel.active .weapon_character img{
	opacity: 1;
	transform: translateY(0);
}


/*---------------------------------------
   WEAPON TABLET
-----------------------------------------*/
@media only screen and (max-width: 1200px) {
	.weapon_layout{
		width: 94vw;
		min-height: 580px;
		grid-template-columns: 90px minmax(0, 1fr);
		gap: 25px;
	}
	.weapon_panel{
		grid-template-columns: minmax(310px, 46%) minmax(360px, 54%);
	}
	.weapon_tab{
		width: 62px;
		border-width: 4px;
	}
	.weapon_tabIcon{
		font-size: 22px;
	}
	.weapon_info{
		max-width: 450px;
	}
}

/*---------------------------------------
   WEAPON MOBILE
-----------------------------------------*/
@media only screen and (max-width: 768px) {
	#weapon{
		min-height: unset;
		padding: 40px 0 30px;
		overflow: hidden;
	}

	#weapon::after{
		right: -45%;
		top: 38%;
		width: 130vw;
	}
  .weapon_content{
    min-height: 700px;
  }
  #en .weapon_content {
    min-height: 750px;
  }
	.weapon_layout{
		width: 100%;
		min-height: unset;
		display: flex;
		flex-direction: column;
		gap: 10px;
    padding-bottom: 0;
	}
  .weapon_nav {
    width: 100%;
    flex-direction: row;
    justify-content: center;
    gap: 5px;
    flex-wrap: nowrap;
    margin-top: -5vw;
  }
	.weapon_tab{
    width: calc((100% / 6) - 15px);
    max-width: 54px;
    border-width: 3px;
	}
	.weapon_tabIcon{
		font-size: 19px;
	}
	.weapon_panel{
		/* display: block; */
    flex-direction: column-reverse;
		padding: 0 20px;
	}
  .weapon_character {
    width: 100%;
    margin-bottom: -185px;
  }
 
  .weapon_character img{
    width: 370px;
    max-width: 120%;
  }
	.weapon_info{
		width: 100%;
		max-width: unset;
		padding: 0;
	}
	.weapon_name{
		width: min(180px, 46vw);
		margin-bottom: 12px;
	}
  
  .weapon_name_wide{
		width: min(320px, 78vw);
	}
  .weapon_intro, .weapon_divider, .weapon_detail{
    max-width: 100%;
  }

  #en .weapon_character{
    margin-bottom: -115px;
  }
  #en .weapon_intro{
    font-size: 14px;
  }
  #en .weapon_detail {
    min-height: fit-content;
    height: 210px;
  }
  #en .weapon_name {
    width: min(270px, 90vw);
    margin-bottom: 12px;
  }
}

/*---------------------------------------
   FEATURE HEADER
-----------------------------------------*/
.feature_header{
	margin-bottom: 35px;
}

.feature_slider{
	position: relative;
	width: min(1920px, 100vw);
	margin: 0 auto 5%;
	padding: 10px 0 45px;
	overflow: visible;
}

.feature_slider .swiper-wrapper{
	align-items: center;
	transition-timing-function: cubic-bezier(.22,.61,.36,1);
  padding-bottom: 50px;
}

.feature_slide{
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: .38;
	transform: scale(.82);
	filter: brightness(.65);
	transition:
		transform .45s cubic-bezier(.22,.8,.25,1),
		opacity .35s ease,
		filter .35s ease;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.feature_slide.swiper-slide-active{
	opacity: 1;
	transform: scale(1);
	filter: none;
	z-index: 5;
}

.feature_slide.swiper-slide-prev,
.feature_slide.swiper-slide-next{
	opacity: .72;
	transform: scale(.9);
	filter: brightness(.82);
}

.feature_slide img{
	display: block;
	width: 100%;
	height: auto;
	max-width: 1000px;
	object-fit: contain;
  justify-self: center;
  border-radius: 35px;
	user-select: none;
	-webkit-user-select: none;
	pointer-events: none;
	filter: drop-shadow(0 15px 20px rgba(10, 72, 65, .22));
}

.feature_arrow{
	all: unset;
	position: absolute;
	top: 48%;
	width: 50px;
	height: 70px;
	transform: translateY(-50%);
	cursor: pointer;
	z-index: 20;
	opacity: .7;
	transition: opacity .25s ease;
}

.feature_arrow:hover{
	opacity: 1;
}

.feature_prev{
	left: -65px;
}

.feature_next{
	right: -65px;
}

.feature_arrow::before,
.feature_arrow::after{
	content: "";
	position: absolute;
	left: 50%;
	width: 3px;
	height: 30px;
	border-radius: 4px;
	background: #674724;
}

.feature_prev::before{
	top: 8px;
	transform: rotate(45deg);
}

.feature_prev::after{
	bottom: 8px;
	transform: rotate(-45deg);
}

.feature_next::before{
	top: 8px;
	transform: rotate(-45deg);
}

.feature_next::after{
	bottom: 8px;
	transform: rotate(45deg);
}


/*---------------------------------------
   FEATURE PAGINATION
-----------------------------------------*/
.feature_pagination{
	position: absolute !important;
	left: 50% !important;
  bottom: 5% !important;
	width: auto !important;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	transform: translateX(-50%);
  z-index: 10;
}

.feature_pagination .swiper-pagination-bullet{
	width: 7px;
	height: 7px;
	margin: 0 !important;
	border-radius: 50%;
	background: rgba(228, 231, 230, 0.4);
	opacity: 1;
	transition: width .25s ease, border-radius .25s ease, background .25s ease;
}

.feature_pagination .swiper-pagination-bullet-active{
	width: 24px;
	border-radius: 20px;
	background: #17634f;
}


/*---------------------------------------
   FEATURE TABLET
-----------------------------------------*/
@media only screen and (max-width: 1200px) {

	.feature_prev{
		left: -45px;
	}

	.feature_next{
		right: -45px;
	}
}


/*---------------------------------------
   FEATURE MOBILE
-----------------------------------------*/
@media only screen and (max-width: 768px) {
	#feature{
		padding: 50px 0 65px;
	}

	.feature_header{
		margin-bottom: 20px;
	}

	.feature_slide{
		transform: scale(.86);
	}

	.feature_slide.swiper-slide-prev,
	.feature_slide.swiper-slide-next{
		transform: scale(.92);
	}

	.feature_slide.swiper-slide-active{
		transform: scale(1);
	}

	.feature_arrow{
		display: none;
	}
}