@charset "UTF-8";

/*--------------------------------
   設定setting
---------------------------------*/

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

html {
	font-size: 62.5%;
	/* -> 10px */
	scroll-behavior: smooth;

	-webkit-overflow-scrolling: touch;
}

html,
body {
	margin: 0;
	padding: 0;
}

body {
	font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	color: #000;
	background: #ffab2c;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	overflow-wrap: break-word;
	letter-spacing: 1px;
	overflow-x: hidden
}

article,
aside,
footer,
header,
nav,
section,
main {
	display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: 100%;
	line-height: 1.2;
	font-weight: normal;
}

h1,
h2,
h3,
h4,
h5,
h6,
a,
p,
span,
em,
small,
strong,
sub,
sup,
mark,
del,
ins,
strike,
abbr,
dfn,
blockquote,
q,
cite,
code,
pre,
ol,
ul,
li,
dl,
dt,
dd,
div,
section,
article,
main,
aside,
nav,
header,
hgroup,
footer,
img,
figure,
figcaption,
address,
time,
audio,
video,
canvas,
iframe,
details,
summary,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
	margin: 0;
	padding: 0;
	border: 0;
}

a {
	color: inherit;
	outline: none;
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
	border: none;
	vertical-align: top;
}

video {
	max-width: 100%;
	height: auto;
}

code,
kbd,
pre,
samp {
	font-family: monospace, sans-serif;
	font-size: inherit;
}

ul,
ol {
	list-style: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%;
}

th,
td {
	text-align: left;
	vertical-align: top;
}


blockquote,
q {
	quotes: none;
}

blockquote::after,
blockquote::before,
q::after,
q::before {
	content: "";
	content: none;
}

address {
	font-style: normal;
}

input,
textarea,
select {
	max-width: 100%;
}

/*-----------------------
/*clearfix
---------------------------------*/
/* For modern browsers */
.cf:before,
.cf:after {
	content: " ";
	display: table;
}

.cf:after {
	clear: both;
}

/* For IE 6/7 only */
.cf {
	*zoom: 1;
}



.l-row {
	display: flex;
	flex-wrap: wrap;
}
body {
  background-color: #bc111a;

}
#lp-loading {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #be1e23;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  pointer-events: none;
}

/* ローディング中身 */
.lp-loading__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
  opacity: 1;
  transform: translateY(0);
  transition: opacity .45s ease, transform .45s ease;
  position: relative;
  z-index: 2;
}

.lp-loading__content.is-fadeout {
  opacity: 0;
  transform: translateY(8px);
}

.lp-loading__betty {
  width: min(260px, 42vw);
  height: auto;
  display: block;
}

.lp-loading__text {
  margin: 0;
  color: #fff;
  font-size: 14px;
  line-height: 1;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* ハート点滅 */
.lp-loading__hearts {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.lp-loading__hearts span {
  display: inline-block;
  color: #ffb3ad;
  font-size: 16px;
  line-height: 1;
  animation: loadingHeartBlink 1s infinite ease-in-out;
}

.lp-loading__hearts span:nth-child(2) {
  animation-delay: .15s;
}

.lp-loading__hearts span:nth-child(3) {
  animation-delay: .3s;
}

@keyframes loadingHeartBlink {
  0%, 100% {
    opacity: .25;
    transform: scale(.9);
  }
  50% {
    opacity: 1;
    transform: scale(1);
  }
}

/* 幕が下から上に開く */
#lp-loading.is-opening {
  animation: loadingCurtainUp 1s cubic-bezier(.77, 0, .18, 1) forwards;
}

@keyframes loadingCurtainUp {
  0% {
    clip-path: inset(0 0 0 0);
  }
  100% {
    clip-path: inset(0 0 100% 0);
  }
}

@media (max-width: 767px) {
  .lp-loading__betty {
    width: min(180px, 48vw);
  }

  .lp-loading__text {
    font-size: 12px;
    letter-spacing: .14em;
  }

  .lp-loading__hearts {
    gap: 8px;
  }

  .lp-loading__hearts span {
    font-size: 14px;
  }
}

/*帯*/
.lp-marquee-lights {
  --bg: #d12221;
  --dot-color: #fff;
  --heart-color: #fe0038;
  --dot-size: 14px;
  --heart-size: 16px;
  --gap: clamp(10px, 1.6vw, 22px);
  --padding-y: 9px;
  --padding-x: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--gap);
  padding: var(--padding-y) var(--padding-x);
  background: var(--bg);
  overflow: hidden;
}

.lp-light {
  flex: 0 0 auto;
  display: block;
  overflow: visible;
  transform-origin: center;
  will-change: opacity, transform, filter;
}

/* ドット */
.lp-light--dot {
  width: var(--dot-size);
  height: auto;
  fill: var(--dot-color);
  animation: lpBlinkDot 1.15s infinite ease-in-out;
}

/* ハート */
.lp-light--heart {
  width: var(--heart-size);
  height: auto;
  fill: var(--heart-color);
  animation: lpBlinkHeart 1.15s infinite ease-in-out;
}

@keyframes lpBlinkDot {
  0%, 42%, 100% {
    opacity: 1;
    transform: scale(1);
    filter:
      drop-shadow(0 0 3px rgba(255,255,255,.3))
      drop-shadow(0 0 7px rgba(255,255,255,.18));
  }
  50%, 92% {
    opacity: .28;
    transform: scale(.94);
    filter: none;
  }
}

@keyframes lpBlinkHeart {
  0%, 42%, 100% {
    opacity: .3;
    transform: scale(.95);
    filter: none;
  }
  50%, 92% {
    opacity: 1;
    transform: scale(1);
    filter:
      drop-shadow(0 0 3px rgba(255,45,29,.35))
      drop-shadow(0 0 8px rgba(255,45,29,.2));
  }
}

@media (max-width: 767px) {
  .lp-marquee-lights {
    --dot-size: 10px;
    --heart-size: 12px;
    --gap: 10px;
    --padding-y: 7px;
    --padding-x: 8px;
  }
}
.scene{
	padding: 80px 0 0
}
.mv{
position: relative;
	width: min(1620px,100%);
	margin: 0 auto;
}

.logo_betty_lm{
	position: absolute;
	top: 30px;
	left: 30px;
	width: 180px
}
@media (max-width: 959px) {
	.logo_betty_lm{
		position: relative;
		width: 130px;
		left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
	}
}
.creditmark{
	position: absolute;
	top: 30px;
	right: 30px;
	width: 210px
}
@media (max-width: 959px) {
	.creditmark{
		width: 110px;
    right: auto;
    bottom: 10px;
    top: auto;
    left: 20px;
	}
}
.mv .img{
	width: min(1440px,100%);
	margin: 0 auto;
}
@media (max-width: 959px) {
	.mv .img{
  aspect-ratio: 1/1.15;
	}
	.mv .img >img{
		aspect-ratio: 1/1;
  object-fit: cover;
  height: 100%;
	}
	
}
.btn_collection{
	position: absolute;
	bottom: -160px;
	right: 30px;
	z-index: 10
}
@media (max-width: 959px) {
	.btn_collection{
		bottom: -80px;
  right: 0;
  width: 200px;
	}
}
.btn_collection a {
 display: inline-block;
  transform-origin: 12% 10%;
  animation: signSwing 3.2s ease-in-out infinite, signGlow 1.8s ease-in-out infinite;
  will-change: transform, filter;
	
}
@keyframes signGlow {
  0%, 100% {
    filter: drop-shadow(0 0 6px rgba(255, 180, 70, 0.18));
  }
  50% {
    filter: drop-shadow(0 0 12px rgba(255, 220, 120, 0.3));
  }
}

.btn_collection img {
  display: block;
  width: 100%;
  height: auto;
}


/* 常時ゆらゆら */
@keyframes signSwing {
  0% {
    transform: rotate(-8deg);
  }
  25% {
    transform: rotate(-6.5deg);
  }
  50% {
    transform: rotate(-8.8deg);
  }
  75% {
    transform: rotate(-7deg);
  }
  100% {
    transform: rotate(-8deg);
  }
}

/* hover時は少しだけ元気に */
.btn_collection a:hover {
  animation: signSwingHover 1s ease-in-out infinite;
}

@keyframes signSwingHover {
  0% {
    transform: rotate(-8deg) scale(1);
  }
  25% {
    transform: rotate(-5.5deg) scale(1.02);
  }
  50% {
    transform: rotate(-9.5deg) scale(1.02);
  }
  75% {
    transform: rotate(-6deg) scale(1.02);
  }
  100% {
    transform: rotate(-8deg) scale(1);
  }
}

.neon{
animation: neonGlow 3s ease-in-out infinite alternate;
}
@keyframes neonGlow{
from{filter:drop-shadow(0 0 6px rgba(255,120,120,.95));}
to{filter:drop-shadow(0 0 16px rgba(255,200,120,.85));}
}

.scene1{
	position: relative;
	background: url(../img/lm_betty/star.svg)no-repeat;
	background-size: cover;
	background-attachment: fixed;
	    background-position: top center;
}

.scene1:before{
	content: '';
	width: 100%;
	height: 780px;
	background: linear-gradient(0deg,rgba(0, 0, 0, 0) 0%, rgb(64, 5, 5) 100%);
	top: 0;
	position: absolute;
	z-index: 0
}
@media (max-width: 959px) {
	.scene1:before{
		height: 360px;
	}
}
.readarea{
	color: #fff;
	width: min(1440px,100%);
	margin: 0 auto 80px;
	text-align: center;
position: relative;
	z-index: 1
}
.readarea .ttl{
	font-size: 45px;
	font-weight: 700;
	margin-bottom: 30px
}
@media (max-width: 959px) {
	.readarea{
		padding: 0 5%
	}
	.readarea .ttl{
	font-size: 21px;
	
}
}
.readarea .txt{
	font-size: 20px;
	line-height: 2;
	font-weight: 700;
}
@media (max-width: 959px) {
	.readarea .txt{
	font-size: 14px;
}
}
.itemwrap {
	display: flex;
	justify-content: center;
	gap: 70px;
	position: relative;
	z-index: 2;
}

.item {
	width: 437px;
	opacity: 0;
	transform: translateY(50px);
	transition:
		opacity 0.8s ease,
		transform 0.8s cubic-bezier(.22, 1, .36, 1);
	position: relative
}

.item.is-show {
	opacity: 1;
	transform: translateY(0);
}

.item .img {
	margin-bottom: 20px;
	overflow: hidden;
	transform: scale(0.86);
	transition: transform 1s cubic-bezier(.22, 1, .36, 1), border-color 1s ease;
	filter: grayscale(90%);
	
}
.type1 .item .img{
	border: 3px solid #ffee6c;
	border-radius: 200px;
}
.item.is-show .img {
	transform: scale(1);
	filter: grayscale(0);
}

.item .img img {
	display: block;
	width: 100%;
	border-radius: 200px;
}

.creditlist {
	margin: 0 10%;
}
@media (max-width: 959px) {
	.creditlist {
	margin: 0 auto;
}
}
.creditlist li {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.55s ease,
		transform 0.55s ease;
}

.item.is-show .creditlist li {
	opacity: 1;
	transform: translateY(0);
}

.item.is-show .creditlist li:nth-child(1) {
	transition-delay: 0.65s;
}

.item.is-show .creditlist li:nth-child(2) {
	transition-delay: 0.8s;
}

.item.is-show .creditlist li:nth-child(3) {
	transition-delay: 0.95s;
}
 {
  position: absolute;
  top: -10px;
  left: 0;
  width: 80px;
  z-index: 3;
  pointer-events: none;
}

/* 落下担当 */
.heart {
  position: absolute;
  display: block;
  opacity: 0;
}

/* ゆらゆら担当 */
.heart__inner {
  display: block;
}

.heart__inner img {
  display: block;
  width: 100%;
  height: auto;
}

/* 大きいハート */
.heart--1 {
  width: 80px;
  left: 0;
  top: -30px;
}
@media (max-width: 959px) {
	.heart--1 {
  width: 50px;
  top: 0;
}
}
/* 小さいハート */
.heart--2 {
  width: 45px;
  left: 44px;
  top: 50px;
}
@media (max-width: 959px) {
	.heart--2 {
  width: 30px;
  top: 40px;
}
}
/* 発火 */
.item.is-show .heart--1 {
  animation: heartDrop1 4.2s cubic-bezier(.22,1,.36,1) forwards;
}

.item.is-show .heart--1 .heart__inner {
  animation: heartSwing1 4.8s ease-in-out infinite;
}

.item.is-show .heart--2 {
 animation: heartDrop2 3.8s cubic-bezier(.22,1,.36,1) .25s forwards;
}

.item.is-show .heart--2 .heart__inner {
  animation: heartSwing2 2.3s ease-in-out .2s infinite;
}

/* 落下 */
@keyframes heartDrop1 {
  0% {
    opacity: 0;
    transform: translate(-24px, -180px);
  }
  10% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}

@keyframes heartDrop2 {
  0% {
    opacity: 0;
    transform: translate(18px, -220px);
  }
  10% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}

/* ゆらゆら */
@keyframes heartSwing1 {
  0%   { transform: rotate(-10deg); }
  50%  { transform: rotate(8deg); }
  100% { transform: rotate(-10deg); }
}

@keyframes heartSwing2 {
  0%   { transform: rotate(8deg); }
  50%  { transform: rotate(-6deg); }
  100% { transform: rotate(8deg); }
}
.creditlist li:not(:last-child) {
	margin-bottom: 8px;
}

.creditlist a {
	color: #fff;
	font-size: 12px;
	font-weight: 700
}
@media (max-width: 959px) {
	.creditlist a {
font-size: 10px;
}
}
.creditlist a span {
	display: block;
	text-decoration: underline;
}
.scene1{
	background-size: 120%;
  background-attachment: inherit;
  background-repeat: repeat-y;
}
.scene1 .creditlist a{
	background: #bc111a;
}
.mt-l {
	margin-top: 14em;
}

@media (max-width: 959px) {
	.itemwrap {
		flex-direction: column;
		gap: 20px;
		align-items: center;
		align-items: baseline;
    padding: 0 5%;
	}

	.item {
		width: min(90%,420px);
	}
	.item:nth-child(even){
		margin: 0 0 0 auto;
	}

	.mt-l {
		margin-top: 0;
	}
}

.scene2{
	background: radial-gradient(circle,rgba(188, 17, 26, 1) 30%, rgba(35, 3, 5, 1) 90%);
	
}
.scene1 .section-kv{
	position: relative;
}


.section-kv{
  position: relative;
}


/* 半円の窓 */
.arch-window{
position: relative;
  width: 100%;
  aspect-ratio: 1920 / 1235;
  overflow: hidden;
  clip-path: ellipse(55% 100% at 50% 100%);
}

/* 窓の中の背景 */

#scene2 .arch-window__bg{
	position: absolute;
  inset: 0;
 
  will-change: background-position;
	 background-image: url("../img/lm_betty/coordinate_img11.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 15%;
}

#scene1 .arch-window__bg{
	position: absolute;
  inset: 0;
 
  will-change: background-position;
	 background-image: url("../img/lm_betty/coordinate_img6.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 15%;
}
.section-kv .arch-window__bg{
	transform: scale(1.2);
    transition: .8s all;
}
.section-kv.is-show .arch-window__bg{
	transform: scale(1);
}


/* 少し奥行き */
.arch-window::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}

.lights_band{
  position: relative;
  z-index: 2;
  margin-top: -1px;
}

@media (max-width: 767px){
  .arch-window{
    aspect-ratio: 750 / 950;
    clip-path: ellipse(95% 100% at 50% 100%);
  }
}

/* 吹き出し位置 */
.icon_fukidasi{
  position:absolute;
  top:0px;
  right:19%;
  width:170px;
  z-index:5;
	position: absolute

  opacity:0;
  transform:scale(.4);
}
@media (max-width: 959px) {
	.icon_fukidasi{
		width: 70px;
		right: 20px;
	}
}
/* innerを必ず回す */
.icon_fukidasi__inner{
  display:block;
  transform-origin:20% 90%;
}

/* 画像 */
.icon_fukidasi img{
  width:100%;
  display:block;
}

/* ポン */
.section-kv.is-show .icon_fukidasi{
  animation:fukidasiPop .55s cubic-bezier(.34,1.56,.64,1) forwards;
}

/* ゆらゆら */
.section-kv.is-show .icon_fukidasi__inner{
  animation:fukidasiSwing 4s ease-in-out .55s infinite;
}

/* 出現 */
@keyframes fukidasiPop{

  0%{
    opacity:0;
    transform:scale(.3);
  }

  60%{
    opacity:1;
    transform:scale(1.15);
  }

  80%{
    transform:scale(.95);
  }

  100%{
    opacity:1;
    transform:scale(1);
  }

}

/* 揺れ */
@keyframes fukidasiSwing{

  0%{
    transform:rotate(-3deg);
  }

  50%{
    transform:rotate(3deg);
  }

  100%{
    transform:rotate(-3deg);
  }

}
.betty-comic-sec{
  position: relative;
  overflow: hidden;
	padding-bottom: 280px
}

.betty-comic-bg{
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;

}

.betty-comic-content{
  position: relative;
  z-index: 2;
}

.comic{
  position: absolute;
  display: block;
  width: 300px;
  height: auto;
}

.comic--1{
  top: 60px;
  left: 50px;
}

.comic--2{
  top: 130px;
  right: -80px;
}

.comic--3{
  top: 1000px;
  left: -70px;
}

.comic--4{
  top: 770px;
  right: 0;
}

.comic--5{
 bottom: 0;
  right: 120px;
}
@media (max-width: 1280px) {
	.comic{
		opacity: .5;
		width: 180px
	}
	.comic--1{
		top: 30px;
  left: 0;
	}
	.comic--2 {
  top: 280px;
  right: -80px;
}
	.comic--3 {
  top: 570px;
  left: -70px;
}
	.comic--4 {
  top: 990px;
  right: 0;
}
	.comic--5 {
  bottom: 410px;
  right: auto;
  left: 0;
}
	.betty-comic-sec{
		padding-bottom: 60px
	}
}
#scene3{
	background-size: auto auto;
background-color: rgba(211, 19, 29, 1);
background-image: repeating-linear-gradient(90deg, transparent, transparent 70px, rgba(188, 17, 26, 1) 70px, rgba(188, 17, 26, 1) 140px );
	padding-bottom: 200px
}
@media (max-width: 959px) {
	#scene3{
		padding-bottom: 100px
	}
	#scene3 .type2 .item{
		width: min(95%,420px);
	}
}
.about_betty{
	display: flex;
	gap:40px;
	align-items: center;
	justify-content: center;
	background: #f5f0e0;
	padding: 40px;
	width: min(1280px,100%);
	margin: 80px auto;
}
.about_betty .img{
	width: 30%
}
.about_betty .txtarea{
	width: 70%
}
.about_betty .txtarea .logo{
	width: min(570px,80%);
	margin: 0 auto 10px
}
.about_betty .txtarea p{
	color: #bc111a;
	font-size: 18px;
	line-height: 1.85;
	font-weight: 700
}
@media (max-width:959px) {
	.about_betty{
		flex-direction: column;
		margin: 0 auto;
		padding: 40px 5%;
	}
	.about_betty .img{
	width: 60%;
		margin: 0 auto 10px;
}
	.about_betty .img.sp{
		display: block
	}
.about_betty .txtarea{
	width: 100%;
	
}
.about_betty .txtarea .logo{
	width: min(280px,80%);
}
.about_betty .txtarea p{
	font-size: 14px;
}
}
.cta{
	background: url(../img/lm_betty/allitem_bg.jpg)no-repeat;
	background-size: cover;
height: 740px;
	display: flex;
	justify-content: center;
	align-items: center
}
@media (max-width: 959px) {
	.cta{
		height: 300px;
		padding: 0 5%
	}
}