/* ======================================
共通
====================================== */

.section-inner{
	max-width:1200px;
	margin:0 auto;
	padding:100px 20px;
}

.section-title{
	position:relative;
	margin-bottom:15px;
	color:#1749a2;
	font-size:clamp(2rem,4vw,3rem);
	font-weight:700;
	text-align:center;
}

.section-title::after{
	content:"";
	display:block;
	width:70px;
	height:4px;
	margin:15px auto 0;
	background:#950000;
}

.section-lead{
	margin-bottom:50px;
	text-align:center;
	color:#666;
}

.main-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:220px;
	height:60px;
	border-radius:100px;
	background:#1749a2;
	color:#fff;
	font-weight:700;
	text-decoration:none;
	transition:.3s;
}

.main-btn:hover{
	background:#950000;
}

.btn-wrap{
	margin-top:50px;
	text-align:center;
}


/* ======================================
スライダー
====================================== */

.fv-slider{
	position:relative;
	height:100vh;
	min-height:700px;
	overflow:hidden;
}

.fv-slide{
	position:absolute;
	inset:0;
}

.fv-slide img{
	width:100%;
	height:100%;
	object-fit:cover;
}

.fv-slider__dots{
	position:absolute;
	left:50%;
	bottom:40px;
	transform:translateX(-50%);
	display:flex;
	gap:12px;
}

.fv-slider__dots button{
	width:14px;
	height:14px;
	border:none;
	border-radius:50%;
	background:#fff;
	cursor:pointer;
}

.fv-slider__dots button.is-active{
	background:#1749a2;
}


/* ======================================
YouTube
====================================== */

.top-youtube{
	background:#f7f9fc;
}

.youtube-box{
	position:relative;
	padding-top:56.25%;
	border-radius:20px;
	overflow:hidden;
	box-shadow:0 15px 40px rgba(0,0,0,.08);
}

.youtube-box iframe{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
}


/* ======================================
ギャラリー
====================================== */

.gallery-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:30px;
}

.gallery-card{
	display:block;
	border-radius:20px;
	overflow:hidden;
	box-shadow:0 10px 30px rgba(0,0,0,.08);
	transition:.3s;
}

.gallery-card:hover{
	transform:translateY(-8px);
}

.gallery-card img{
	width:100%;
	height:350px;
	object-fit:cover;
	display:block;
}

.gallery-card__noimage{
	display:flex;
	align-items:center;
	justify-content:center;
	height:350px;
	background:#eee;
}


/* ======================================
スポンサー
====================================== */

.top-sponsor{
	background:#f7f9fc;
}

.sponsor-banner{
	max-width:1000px;
	margin:0 auto;
	border-radius:20px;
	overflow:hidden;
}

.sponsor-banner img{
	width:35%;
	display:block;
    margin: auto;
}


/* ======================================
お問い合わせ
====================================== */

.top-contact{
	position:relative;
	color:#fff;
	text-align:center;
}

.top-contact .section-title{
	color:#fff;
}

.top-contact .section-title::after{
	background:#950000;
}

.contact-text{
	max-width:700px;
	margin:0 auto 40px;
	font-size:1.1rem;
	line-height:2;
}

.main-btn--red{
	background:#950000;
}

.main-btn--red:hover{
	background:#fff;
	color:#1749a2;
}


/* ======================================
タブレット
====================================== */

@media(max-width:1024px){

	.gallery-grid{
		grid-template-columns:repeat(2,1fr);
	}

}


/* ======================================
スマホ
====================================== */

@media(max-width:768px){

	.section-inner{
		padding:70px 20px;
	}

	.gallery-grid{
		grid-template-columns:1fr;
		gap:20px;
	}

	.gallery-card img{
		height:280px;
	}

	.fv-slider{
		height:80vh;
		min-height:550px;
	}

}
.fv-slide {
  opacity: 0;
  transition: opacity 1s ease;
}

.fv-slide.is-active {
  opacity: 1;
  z-index: 1;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  background: transparent;
}

.site-header__inner {
  height: 80px;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-logo {
  margin: 0;
  font-size: 24px;
  padding: 26px;
}


.site-logo a {
  color: #1749a2;
  text-decoration: none;
}

.drawer-menu{
	position:fixed;
	top:0;
	right:0;
	z-index:1100;
	width:360px;
	max-width:85%;
	height:100vh;
	padding:14px 40px 40px;

	display:flex;
	flex-direction:column;

	background:
		radial-gradient(circle at 20px 20px, rgba(23,73,162,.08) 2px, transparent 3px),
		linear-gradient(135deg, rgba(23,73,162,.08), rgba(255,255,255,.95));

	background-size:
		24px 24px,
		100% 100%;

	border-left:6px solid #1749a2;
	transform:translateX(100%);
	transition:.4s ease;
}
.drawer-menu::before{
	content:"";
	position:absolute;
	top:40px;
	right:30px;
	width:120px;
	height:120px;
	border-radius:50%;
	pointer-events:none;
}

.drawer-menu::after{
	content:"";
	position:absolute;
	left:30px;
	bottom:40px;
	width:180px;
	height:180px;
	border-radius:50%;
	background:rgba(23,73,162,.07);
	pointer-events:none;
}
.drawer-menu__nav,
.drawer-sns,
.drawer-character{
	position:relative;
	z-index:1;
}


.drawer-menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.drawer-menu li {
  border-bottom: 1px solid #e5eaf5;
}

.drawer-menu a {
  display: block;
  padding: 20px 0;
  color: #1749a2;
  font-size: 22px;
  font-weight: 700;
  text-decoration: none;
}

.drawer-menu a::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 12px;
  background: #950000;
  border-radius: 50%;
}

body.is-menu-open .drawer-bg {
  opacity: 1;
  visibility: visible;
}

body.is-menu-open .drawer-menu {
  transform: translateX(0);
}
.site-footer{
	padding:80px 20px 40px;
	background:#1749a2;
	color:#fff;
}

.site-footer__inner{
	max-width:1200px;
	margin:0 auto;
	text-align:center;
}

.site-footer__logo{
	margin-bottom:30px;
	font-size:32px;
	font-weight:700;
}

.site-footer__logo a{
	color:#fff;
	text-decoration:none;
}

.site-footer__logo::after{
	content:"";
	display:block;
	width:60px;
	height:4px;
	margin:15px auto 0;
	background:#950000;
}

.site-footer__nav{
	margin-bottom:30px;
}

.site-footer__nav ul{
	display:flex;
	justify-content:center;
	gap:30px;
	margin:0;
	padding:0;
	list-style:none;
}

.site-footer__nav a{
	color:#fff;
	text-decoration:none;
	font-weight:600;
}

.site-footer__nav a:hover{
	color:#950000;
}

.site-footer__sns{
	display:flex;
	justify-content:center;
	gap:70px;
	margin-bottom:30px;
}

.site-footer__sns a{
	display:flex;
	align-items:center;
	justify-content:center;
	width:50px;
	height:50px;
	border-radius:50%;
	color:#fff;
	text-decoration:none;
	font-weight:700;
	transition:.3s;
}

.site-footer__sns a:hover{
	background:#950000;
	border-color:#950000;
}

.site-footer__copy{
	font-size:14px;
	opacity:.7;
}

@media(max-width:768px){

	.site-footer__nav ul{
		flex-direction:column;
		gap:15px;
	}

}

.scroll-guide{
	position:absolute;
	left:50%;
	bottom:50px;
	transform:translateX(-50%);
	z-index:10;
	text-align:center;
	color:#1749a2;
	font-size:14px;
	font-weight:700;
	letter-spacing:.2em;
}

.scroll-guide::after{
	content:"";
	display:block;
	width:70px;
	height:70px;
	margin:20px auto 0;

	border:2px solid #1749a2;
	border-radius:50%;

	animation:scrollCircle 2s infinite;
}

@keyframes scrollCircle{

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

	100%{
		transform:scale(1.5);
		opacity:0;
	}

}
@keyframes scrollArrow{

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

	50%{
		transform:rotate(45deg) translate(8px,8px);
	}

}


@keyframes scrollLine {
  0% {
    transform: scaleY(0);
    transform-origin: top;
  }
  50% {
    transform: scaleY(1);
    transform-origin: top;
  }
  51% {
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
  }
}

@media (max-width: 768px) {
  .scroll-guide {
    right: 20px;
    bottom: 30px;
  }
}


.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-up.is-show {
  opacity: 1;
  transform: translateY(0);
}
.drawer-menu {
  display: flex;
  flex-direction: column;
}

.drawer-character {
  margin-top: -25px;
  text-align: center;
  padding-top: 0;
}

.drawer-character img {
  max-width: 220px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  transition: .3s;
}

.drawer-character img:hover {
  transform: translateY(-8px);
}
.drawer-character img {
  animation: floatAnime 3s ease-in-out infinite;
}

@keyframes floatAnime{
  0%{
    transform:translateY(0);
  }

  50%{
    transform:translateY(-15px);
  }

  100%{
    transform:translateY(0);
  }
}
.menu-btn{
	position:fixed;
	top:24px;
	right:28px;
	z-index:1200;
	width:170px;
	height:200px;
	padding:0;
	border:none;
	background:transparent;
	cursor:pointer;
	transition:right .4s ease;
}

.menu-btn img{
	width:100%;
	height:100%;
	object-fit:contain;
	display:block;
	transition:transform .4s ease, filter .4s ease;
}

.menu-btn:hover img{
	transform:scale(1.1) rotate(8deg);
	filter:drop-shadow(0 0 12px rgba(23,73,162,.35));
}

/* =========================
MENU文字
========================= */

.menu-label{
	position:relative;
	height:20px;
	margin-top:8px;
	overflow:hidden;
	text-align:center;
}

.menu-default,
.menu-hover,
.menu-close{
	display:block;
	font-size:12px;
	font-weight:700;
	letter-spacing:.15em;
	transition:.3s;
}

.menu-default{
	color:#1749a2;
}

.menu-hover,
.menu-close{
	position:absolute;
	top:0;
	left:0;
	transform:translate(-50%,20px);
	opacity:0;
	color:#950000;
}

/* hover */

.menu-btn:hover .menu-default{
	transform:translateY(-20px);
	opacity:0;
}

.menu-btn:hover .menu-hover{
	transform:translate(-50%,0);
	opacity:1;
}

/* menu open */

body.is-menu-open .menu-btn{
	right:445px;
}

body.is-menu-open .menu-btn:hover .menu-default,
body.is-menu-open .menu-btn:hover .menu-hover{
	opacity:0;
	transform:translateY(-20px);
}

body.is-menu-open .menu-btn:hover .menu-close{
	opacity:1;
	transform:translate(-50%,0);
}
.drawer-header-image{
	margin-bottom:30px;
	text-align:center;
}

.drawer-header-image img{
	width:100%;
	max-width:220px;
	height:auto;
	display:block;
	margin:-25px auto;
}
.site-logo{
	position:absolute;
	top:15px;
	left:-25px;
	z-index:100;
}

.site-logo img{
	width:240px;
	height:auto;
}
.gallery-card{
	background:#fff;
	border-radius:20px;
	overflow:hidden;
	box-shadow:0 10px 30px rgba(0,0,0,.08);
	transition:.3s;
}

.gallery-card:hover{
	transform:translateY(-8px);
}

.gallery-card__image{
	display:block;
}

.gallery-card__image img{
	width:100%;
	height:350px;
	object-fit:cover;
	display:block;
}

.gallery-card__body{
	padding:18px 20px 22px;
}

.gallery-card__x{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	color:#1749a2;
	font-weight:700;
	text-decoration:none;
}

.gallery-card__x:hover{
	color:#950000;
}

.gallery-card__x-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	width:32px;
	height:32px;
	border-radius:50%;
	background:#1749a2;
	color:#fff;
	font-size:14px;
	font-weight:700;
	transition:.3s;
}

.gallery-card__x:hover .gallery-card__x-icon{
	background:#950000;
	transform:rotate(10deg) scale(1.1);
}
.gallery-archive .archive-mv{
	background:#f7f9fc;
	padding-top:80px;
}

.pagination{
	margin-top:60px;
	text-align:center;
}

.pagination .nav-links{
	display:flex;
	justify-content:center;
	gap:10px;
}

.pagination a,
.pagination span{
	display:flex;
	align-items:center;
	justify-content:center;
	min-width:40px;
	height:40px;
	padding:0 12px;
	border-radius:50px;
	background:#f7f9fc;
	color:#1749a2;
	text-decoration:none;
	font-weight:700;
}

.pagination .current,
.pagination a:hover{
	background:#1749a2;
	color:#fff;
}
.gallery-card__body{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:18px 20px;
}

.gallery-card__name{
	margin:0;
	font-size:16px;
	font-weight:700;
	color:#1749a2;
}

.gallery-card__x{
	display:flex;
	align-items:center;
	justify-content:center;

	width:40px;
	height:40px;

	border-radius:50%;
	background:#1749a2;

	color:#fff;
	text-decoration:none;

	transition:.3s;
}

.gallery-card__x:hover{
	background:#950000;
	transform:rotate(10deg) scale(1.1);
}

.gallery-card__x svg{
	width:18px;
	height:18px;
}
.single-gallery{
	padding:140px 20px 100px;
	background:#fff;
}

.single-gallery__content{
	max-width:1100px;
	margin:0 auto;
}

.single-gallery__image{
	text-align:center;
}

.single-gallery__image img{
	max-width:100%;
	height:auto;
	display:block;
	margin:0 auto;
	border-radius:20px;
	box-shadow:0 15px 40px rgba(0,0,0,.08);
}

.single-gallery__info{
	margin-top:30px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:20px;
	flex-wrap:wrap;
}

.single-gallery__name{
	margin:0;
	color:#1749a2;
	font-size:20px;
	font-weight:700;
}

.single-gallery__x{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:120px;
	height:46px;
	padding:0 24px;
	border-radius:100px;
	background:#1749a2;
	color:#fff;
	font-weight:700;
	text-decoration:none;
	transition:.3s;
}

.single-gallery__x:hover{
	background:#950000;
	transform:translateY(-3px);
}

.single-gallery__back{
	margin-top:50px;
	text-align:center;
}

.single-gallery__back a{
	color:#1749a2;
	font-weight:700;
	text-decoration:none;
}

.single-gallery__back a:hover{
	color:#950000;
}
.gallery-card img,
.single-gallery__image img{
	user-select:none;
	-webkit-user-drag:none;
	pointer-events:none;
}
.single-gallery__image{
	position:relative;
}

.single-gallery__image::after{
	content:"";
	position:absolute;
	inset:0;
	z-index:10;
}
.contact-page{
	background:#fff;
}

.contact-mv{
	position:relative;
	height:500px;

	display:flex;
	align-items:center;
	justify-content:center;

	overflow:hidden;
}

.contact-mv .page-mv-bg{
	position:absolute;

	inset:-120px 0;

	background:
	url("assets/img/AmasawaYu1.png")
	center 35% / cover
	no-repeat;

	z-index:0;

	will-change:transform;
}

.contact-mv::before{
	content:"";

	position:absolute;
	inset:0;

	background:
	linear-gradient(
		135deg,
		rgba(23,73,162,.7),
		rgba(149,0,0,.35)
	);

	z-index:1;
}
.contact-mv .section-inner{
	position:relative;
	z-index:2;

	text-align:center;
}

.contact-mv .section-title{
	color:#fff;
}

.contact-mv .section-title::after{
	background:#fff;
}

.contact-mv .section-lead{
	color:#fff;
	max-width:700px;
	margin:20px auto 0;
}
.contact-section{
	background:#fff;
	margin-top:-80px;
	position:relative;
	z-index:5;
}

.contact-box{
	max-width:900px;
	margin:0 auto;

	padding:60px;

	border-radius:30px;

	background:#fff;

	box-shadow:
		0 20px 50px rgba(0,0,0,.08);
}
@media(max-width:768px){

	.contact-mv{
		height:380px;
	}

	.contact-box{
		padding:30px 20px;
	}

}

.contact-section .section-inner{
	padding-top:40px;
}

.contact-box{
	max-width:850px;
	margin:0 auto;
	padding:50px;
	border-radius:24px;
	background:#fff;
	box-shadow:0 15px 40px rgba(0,0,0,.08);
}

.contact-text{
	margin-bottom:35px;
	text-align:center;
	color:#fff;
	line-height:2;
}

.contact-form input,
.contact-form textarea,
.contact-form select{
	width:100%;
	padding:16px;
	border:1px solid #dce3f0;
	border-radius:12px;
	font-size:16px;
}

.contact-form textarea{
	min-height:180px;
}

.contact-form input[type="submit"]{
	width:auto;
	min-width:220px;
	height:60px;
	border:none;
	border-radius:100px;
	background:#1749a2;
	color:#fff;
	font-weight:700;
	cursor:pointer;
	transition:.3s;
}

.contact-form input[type="submit"]:hover{
	background:#950000;
}

@media(max-width:768px){
	.contact-box{
		padding:30px 20px;
	}
}
.wpcf7-form label{
	display:block;
	margin-bottom:25px;
	font-weight:700;
	color:#1749a2;
}

.wpcf7-form input,
.wpcf7-form select,
.wpcf7-form textarea{
	width:100%;
	margin-top:8px;
	padding:15px;
	border:1px solid #d9e1ef;
	border-radius:12px;
	font-size:16px;
	background:#fff;
}

.wpcf7-form textarea{
	height:220px;
	resize:vertical;
}

.wpcf7-submit{
	display:block;
	width:280px;
	height:60px;
	margin:40px auto 0;
	border:none;
	border-radius:100px;
	background:#1749a2;
	color:#fff;
	font-size:16px;
	font-weight:700;
	cursor:pointer;
	transition:.3s;
}

.wpcf7-submit:hover{
	background:#950000;
}

.wpcf7-spinner{
	display:none;
    
}
.wpcf7-spinner {
display: block;
}

.site-footer{
	position:relative;
	overflow:hidden;
	background:#1749a2;
	color:#fff;
}

/* 星 */

.site-footer::before,
.site-footer::after{
	content:"✦";
	position:absolute;
	color:rgba(255,255,255,.12);
	font-size:80px;
	line-height:1;
	pointer-events:none;
	animation:footerStarFloat 8s ease-in-out infinite;
}

.site-footer::before{
	top:15%;
	left:8%;
}

.site-footer::after{
	right:8%;
	bottom:15%;
	animation-delay:3s;
}

/* 追加の星 */

.site-footer__inner::before,
.site-footer__inner::after{
	content:"✦";
	position:absolute;
	color:rgba(255,255,255,.08);
	font-size:50px;
	pointer-events:none;
	animation:footerStarFloat 10s ease-in-out infinite;
}

.site-footer__inner::before{
	top:20px;
	right:20%;
}

.site-footer__inner::after{
	bottom:20px;
	left:25%;
	animation-delay:5s;
}

@keyframes footerStarFloat{

	0%,100%{
		transform:translateY(0) rotate(0deg);
	}

	50%{
		transform:translateY(-20px) rotate(12deg);
	}

}
.site-footer__inner{
	position:relative;
	max-width:1200px;
	margin:0 auto;
	text-align:center;
}
.site-footer::before{
	color:rgba(255,255,255,.12);
}

.site-footer::after{
	color:rgba(149,0,0,.18);
}

.top-contact{
	position:relative;
	padding:10px 0;
	overflow:hidden;
	background:#1749a2;
	color:#fff;
	text-align:center;
}

.contact-parallax-bg{
	position:absolute;
	inset:-120px 0;
	background:url("assets/img/AmasawaYu3.png") center 5%/cover no-repeat;
	z-index:0;
	will-change:transform;
}

.top-contact::before{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(23,73,162,.7);
	z-index:1;
}

.top-contact .section-inner{
	position:relative;
	z-index:2;
}

/*movei*/
.fv-teaser{
	position:absolute;
	left:40px;
	bottom:40px;
	z-index:20;

	width:340px;
	padding:8px;

	border-radius:24px;

	background:rgba(255,255,255,.15);
	backdrop-filter:blur(12px);

	border:2px solid rgba(255,255,255,.4);

	box-shadow:
		0 15px 40px rgba(0,0,0,.25),
		0 0 20px rgba(23,73,162,.3);

	transition:.3s;
}

.fv-teaser:hover{
	transform:translateY(-8px);
	box-shadow:
		0 20px 50px rgba(0,0,0,.3),
		0 0 30px rgba(23,73,162,.5);
}

.fv-teaser__movie{
	border-radius:18px;
	overflow:hidden;
	background:#000;
}

.fv-teaser__movie video{
	display:block;
	width:100%;
	aspect-ratio:16 / 9;
	object-fit:cover;
}

@media(max-width:768px){

	.fv-teaser{
		width:220px;
		left:20px;
		bottom:90px;
	}

}
.teaser-sound-btn{
	position:absolute;
	right:12px;
	bottom:12px;

	width:70px;
	height:36px;

	border:none;
	border-radius:100px;

	background:rgba(0,0,0,.75);
	backdrop-filter:blur(10px);

	color:#fff;
	font-size:12px;
	font-weight:700;
	letter-spacing:.15em;

	cursor:pointer;

	transition:.3s;
	z-index:30;
}

.teaser-sound-btn:hover{
	background:#1749a2;
	transform:translateY(-2px);
}

.teaser-sound-btn.is-on{
	background:#950000;
}
.drawer-menu a{
	position:relative;
	display:block;
	padding:20px 0;

	color:#1749a2;
	font-size:22px;
	font-weight:700;

	text-decoration:none;

	transition:.3s;
}
.drawer-menu a::after{
	content:"";

	position:absolute;
	left:0;
	bottom:12px;

	width:0;
	height:2px;

	background:#950000;

	transition:.35s;
}
.drawer-menu a:hover{
	color:#950000;

	text-shadow:
		0 0 10px rgba(149,0,0,.4);

	padding-left:15px;
}
/*ロード画面*/
#loading{
	position:fixed;
	inset:0;
	z-index:99999;

	background:
	linear-gradient(
		135deg,
		#1749a2 0%,
		#2967e8 100%
	);

	overflow:hidden;

	transition:
		opacity .8s ease,
		visibility .8s ease;
}

#loading::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:180px;

	background:
	radial-gradient(circle at 8% 30%, rgba(255,255,255,.35) 3px, transparent 4px),
	radial-gradient(circle at 22% 70%, rgba(255,255,255,.25) 2px, transparent 3px),
	radial-gradient(circle at 35% 20%, rgba(255,255,255,.4) 4px, transparent 5px),
	radial-gradient(circle at 52% 65%, rgba(255,255,255,.25) 2px, transparent 3px),
	radial-gradient(circle at 68% 25%, rgba(255,255,255,.35) 3px, transparent 4px),
	radial-gradient(circle at 82% 75%, rgba(255,255,255,.3) 2px, transparent 3px),
	radial-gradient(circle at 94% 40%, rgba(255,255,255,.4) 4px, transparent 5px);

	animation:starFloatTop 6s ease-in-out infinite;
}
#loading::after{
	content:"";
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	height:180px;

	background:
	radial-gradient(circle at 12% 65%, rgba(255,255,255,.25) 2px, transparent 3px),
	radial-gradient(circle at 28% 25%, rgba(255,255,255,.35) 3px, transparent 4px),
	radial-gradient(circle at 44% 75%, rgba(255,255,255,.4) 4px, transparent 5px),
	radial-gradient(circle at 60% 20%, rgba(255,255,255,.25) 2px, transparent 3px),
	radial-gradient(circle at 74% 70%, rgba(255,255,255,.35) 3px, transparent 4px),
	radial-gradient(circle at 88% 35%, rgba(255,255,255,.4) 4px, transparent 5px);

	animation:starFloatBottom 8s ease-in-out infinite;
}

#loading.is-hide{
	opacity:0;
	visibility:hidden;
}

.loading-runner{
	position:absolute;
	top:50%;
	right:-260px;
	display:flex;
	align-items:center;
	gap:18px;
	transform:translateY(-50%);
	animation:loadingWalk 2.8s linear infinite;
}

.loading-runner img{
	width:130px;
	height:auto;
	animation:sdWalk 0.45s ease-in-out infinite;
}

.loading-text{
	color:#fff;

	font-size:24px;
	font-weight:700;

	letter-spacing:.15em;

	text-shadow:
		0 0 10px rgba(255,255,255,.5);
}

@keyframes loadingWalk{
	0%{
		right:-280px;
	}

	100%{
		right:100%;
	}
}

@keyframes sdWalk{
	0%,100%{
		transform:translateY(0) rotate(-2deg);
	}

	50%{
		transform:translateY(-10px) rotate(2deg);
	}
}
@keyframes starFloatTop{
	0%,100%{
		transform:translateY(0);
	}
	50%{
		transform:translateY(-12px);
	}
}

@keyframes starFloatBottom{
	0%,100%{
		transform:translateY(0);
	}
	50%{
		transform:translateY(12px);
	}
}
.loading-text{
	white-space:nowrap;
}
@media(max-width:768px){
	.loading-text{
		font-size:16px;
	}
}
.profile-mv{
	background:#f7f9fc;
	padding-top:80px;
}

.profile-section{
	background:#fff;
}

.profile-main{
	display:grid;
	grid-template-columns:380px 1fr;
	gap:60px;
	align-items:center;
	margin-bottom:70px;
}

.profile-image img{
	width:100%;
	height:auto;
	display:block;
	border-radius:28px;
	box-shadow:0 15px 40px rgba(0,0,0,.08);
}

.profile-label{
	color:#950000;
	font-weight:700;
	letter-spacing:.18em;
}

.profile-name{
	margin:10px 0 30px;
	color:#1749a2;
	font-size:clamp(2.5rem,5vw,4rem);
}

.profile-list div{
	display:grid;
	grid-template-columns:120px 1fr;
	padding:18px 0;
	border-bottom:1px solid #e5eaf5;
}

.profile-list dt{
	color:#1749a2;
	font-weight:700;
}

.profile-list dd{
	margin:0;
}

.profile-card{
	margin-bottom:40px;
	padding:40px;
	border-radius:24px;
	background:#fff;
	box-shadow:0 10px 35px rgba(0,0,0,.08);
}

.profile-card h3{
	position:relative;
	margin:0 0 25px;
	color:#1749a2;
	font-size:28px;
}

.profile-card h3::after{
	content:"";
	display:block;
	width:50px;
	height:4px;
	margin-top:12px;
	background:#950000;
}

.tag-list{
	display:flex;
	flex-wrap:wrap;
	gap:14px;
	margin:0;
	padding:0;
	list-style:none;
}

.tag-list li{
	padding:10px 20px;
	border-radius:100px;
	background:#f0f5ff;
	color:#1749a2;
	font-weight:700;
}

.profile-text-list,
.profile-note-list{
	margin:0;
	padding-left:1.2em;
	line-height:2;
}

.hashtag-list p{
	margin:0 0 14px;
	font-size:18px;
	font-weight:700;
	color:#1749a2;
}

.hashtag-list span{
	display:inline-block;
	min-width:80px;
	margin-right:12px;
	color:#950000;
}

.achievement-box h4{
	color:#950000;
	font-size:20px;
}

.achievement-box ul{
	margin:0;
	padding:0;
	list-style:none;
}

.achievement-box li{
	padding:14px 0;
	border-bottom:1px solid #e5eaf5;
}

.achievement-box span{
	display:inline-block;
	min-width:100px;
	color:#1749a2;
	font-weight:700;
}

.profile-card p{
	line-height:2;
}

@media(max-width:768px){

	.profile-main{
		grid-template-columns:1fr;
		gap:30px;
	}

	.profile-card{
		padding:30px 20px;
	}

	.profile-list div{
		grid-template-columns:1fr;
		gap:8px;
	}

}
.profile-threeview{
	margin-bottom:80px;
	text-align:center;
}

.profile-threeview img{
	max-width:1000px;
	width:100%;
	height:auto;
	display:block;
	margin:0 auto;
}
.profile-threeview img{
	max-width:1000px;
	width:100%;
	height:auto;

	border-radius:30px;

	box-shadow:
		0 15px 40px rgba(0,0,0,.08);
}
.achievement-box h4{
	position:relative;
	margin:40px 10px 20px;
	padding-left:20px;

	color:#1749a2;
	font-size:26px;
	font-weight:700;
}

.achievement-box h4::before{
	content:"◆";
	position:absolute;
	left:-10px;
	color:#950000;
}

.achievement-box ul{
	margin:0;
	padding:0;
	list-style:none;
}

.achievement-box li{
	display:grid;
	grid-template-columns:140px 1fr;

	padding:15px 0;

	border-bottom:1px solid #e5eaf5;
}

.achievement-box span{
	color:#950000;
	font-weight:700;
}
.profile-mv{
	position:relative;
	height:450px;

	display:flex;
	align-items:center;

	overflow:hidden;
}
.page-mv-bg{
	position:absolute;

	inset:-120px 0;

	background:
	url("assets/img/AmasawaYu1.png")
	center 35% / cover
	no-repeat;

	z-index:0;

	will-change:transform;
}
.profile-mv::before{
	content:"";

	position:absolute;
	inset:0;

	background:
	rgba(23,73,162,.55);

	z-index:1;
}
.profile-mv .section-inner{
	position:relative;
	z-index:2;
}

.profile-mv .section-title{
	color:#fff;
}

.profile-mv .section-lead{
	color:#fff;
}
.youtube-box{
	position:relative;

	max-width:900px;
	margin:0 auto;

	padding-top:50%;
}
.gallery-mv{
	position:relative;
	height:500px;

	display:flex;
	align-items:center;
	justify-content:center;

	overflow:hidden;
}
.gallery-mv .page-mv-bg{
	position:absolute;

	inset:-120px 0;

	background:
	url("assets/img/gallery-mv.jpg")
	center 35% / cover
	no-repeat;

	z-index:0;

	will-change:transform;
}
.gallery-mv::before{
	content:"";

	position:absolute;
	inset:0;

	background:
	linear-gradient(
		135deg,
		rgba(23,73,162,.7),
		rgba(149,0,0,.25)
	);

	z-index:1;
}
.gallery-mv .section-inner{
	position:relative;
	z-index:2;

	text-align:center;
}

.gallery-mv .section-title{
	color:#fff;
}

.gallery-mv .section-title::after{
	background:#fff;
}

.gallery-mv .section-lead{
	color:#fff;
}
.drawer-menu{
	overflow:hidden;
}

.drawer-character{
	position:relative;
	margin-top:-25px;
	text-align:center;
	padding-top:0;
}

.drawer-character__main{
	max-width:220px;
	width:100%;
	height:auto;
	display:block;
	margin:0 auto;
	animation:floatAnime 3s ease-in-out infinite;
}

.drawer-character__secret{
	position:absolute;
	right:-150px;
	bottom:20px;

	width:130px;
	height:auto;

	opacity:0;
	transform:translate(60px,60px) rotate(-25deg);
	transition:.45s cubic-bezier(.22,1.4,.36,1);

	pointer-events:none;
	z-index:-1;
}

.drawer-character:hover .drawer-character__secret{
	right:-35px;
	opacity:1;
	transform:translate(0,0) rotate(-12deg);
	z-index:2;
}
@media(max-width:768px){

	.top-gallery .gallery-card:nth-child(n+4){
		display:none;
	}

}
.sp-only{
	display:none;
}

@media(max-width:768px){

	.sp-only{
		display:block;
	}
	.menu-btn{
	position:fixed;
	top:5px;
	right:0px;
	z-index:1200;
	width:110px;
	height:145px;

}

}
@media(max-width:768px){

	.top-contact{
		background-position:70% center;
	}
		.fv-slide img{
		object-position:15% center;
	}
.site-logo{
	position:absolute;
	top:15px;
	left:-25px;
	z-index:100;
}
.site-logo img{
	width:160px;
	height:auto;
}
.contact-parallax-bg{
	background-position: 12% center;
}
.page-mv-bg{
	background-position: 12% center;
}
.contact-mv .page-mv-bg{
	background-position: 12% center;
}
}
.drawer-close{
	display:none;
}
@media(max-width:768px){

	.drawer-close{

		display:flex;

		align-items:center;
		justify-content:center;

		width:120px;
		height:42px;

		margin:0 auto 30px;

		border:none;
		border-radius:100px;

		background:#1749a2;

		color:#fff;

		font-size:13px;
		font-weight:700;
		letter-spacing:.15em;

		cursor:pointer;
	}

	.drawer-character{
	position:relative;
	margin-top:-250px;
	text-align:center;
	padding-top:0;
	margin-left: 140px;
}
}
.menu-btn:focus,
.menu-btn:focus-visible,
.drawer-close:focus,
.drawer-close:focus-visible{
	outline:none;
	box-shadow:none;
}
img.drawer-character__secret{
	position:absolute;
	right:-150px;
	bottom:20px;

	width:100px;
	height:auto;

	opacity:0;
	transform:translate(60px,60px) rotate(-25deg);
	transition:.45s cubic-bezier(.22,1.4,.36,1);

	pointer-events:none;
	z-index:-1;
}
.drawer-character img {
  animation: none;
}
.contact-box > .contact-text{
	color: #000;
}