@charset "utf-8";
/* CSS Document */

/* =========================
   COLOR SYSTEM
========================= */

:root{
	--yc-bg:#000;
	--yc-bg-content:#050505;

	--yc-text:#f3f0ea;
	--yc-text-soft:rgba(243,240,234,.72);
	--yc-text-muted:rgba(243,240,234,.52);
	--yc-text-faint:rgba(243,240,234,.38);

	--yc-line:rgba(243,240,234,.16);
	--yc-line-soft:rgba(243,240,234,.08);

	--yc-accent:#7ba7c9;
	--yc-accent-soft:rgba(123,167,201,.45);
	--yc-accent-bg:rgba(123,167,201,.10);

	--yc-panel:rgba(255,255,255,.02);
	--yc-panel-border:rgba(255,255,255,.08);
}

/* =========================
   RESET / BASE
========================= */

*{
	margin:0;
	padding:0;
	box-sizing:border-box;
}

html,
body{
	width:100%;
	min-height:100%;
	background:var(--yc-bg);
	color:var(--yc-text);
	font-family:"Times New Roman","Yu Mincho",serif;
	overflow-x:hidden;
}

html.intro-lock,
body.intro-lock{
	overflow:hidden;
	height:100%;
}

a{
	color:inherit;
}

/* =========================
   HERO
========================= */

.hero{
	position:relative;
	width:100vw;
	height:100vh;
	height:100svh;
	left:50%;
	transform:translateX(-50%);
	overflow:hidden;
	background:#000;
	transition:height 1.2s ease;
}

.hero.shrink{
	height:60vh;
	height:60svh;
}

.hero video,
.hero .hero-image{
	position:absolute;
	inset:0;
	width:100vw;
	height:100%;
	object-fit:cover;
	object-position:center center;
}

.hero .hero-image{
	display:block;
	opacity:0;
	background:url('../images/web_back_001.jpg') center center / cover no-repeat;
	transition:opacity .6s ease;
}

.hero .hero-image.show{
	opacity:1;
}

.hero::before{
	content:"";
	position:absolute;
	inset:0;
	z-index:2;
	pointer-events:none;
	background:
		linear-gradient(
			to bottom,
			rgba(0,0,0,.45),
			rgba(0,0,0,.25),
			rgba(0,0,0,.65)
		);
}

.seo-title{
	position:absolute;
	width:1px;
	height:1px;
	margin:-1px;
	padding:0;
	overflow:hidden;
	clip:rect(0,0,0,0);
	clip-path:inset(50%);
	white-space:nowrap;
	border:0;
}

/* =========================
   ENTER
========================= */

.enter-wrap{
	position:absolute;
	left:50%;
	bottom:50px;
	transform:translateX(-50%);
	z-index:10;
	display:block;
	opacity:0;
	pointer-events:none;
	transition:opacity 1s ease;
}

.enter-wrap.show{
	opacity:1;
	pointer-events:auto;
}

.enter-btn{
	display:inline-block;
	padding:15px 42px;
	border:1px solid var(--yc-accent-soft);
	background:rgba(0,0,0,.18);
	backdrop-filter:blur(4px);
	color:var(--yc-text);
	text-decoration:none;
	letter-spacing:.4em;
	font-size:12px;
	cursor:pointer;
	transition:all .35s ease;
}

.enter-btn:hover{
	background:var(--yc-accent-bg);
	border-color:rgba(123,167,201,.85);
	letter-spacing:.5em;
}

/* =========================
   COMMON BACK LINK
========================= */

.back-link{
	position:absolute;
	top:35px;
	left:8%;
	color:var(--yc-text);
	text-decoration:none;
	font-size:12px;
	letter-spacing:.25em;
	opacity:.68;
	transition:.3s;
}

.back-link:hover{
	opacity:1;
}

/* =========================
   CONTENT
========================= */

.content{
	position:relative;
	background:var(--yc-bg-content);
	padding:120px 10% 140px;
	opacity:0;
	transform:translateY(80px);
	transition:
		opacity 1.2s ease,
		transform 1.2s ease;
}

.content.show{
	opacity:1;
	transform:translateY(0);
}

.content section{
	max-width:1200px;
	margin:0 auto 140px;
}

.content h2{
	font-size:clamp(28px, 3vw, 48px);
	font-weight:normal;
	letter-spacing:.15em;
	margin-bottom:30px;
	color:var(--yc-text);
}

.content p{
	font-size:15px;
	line-height:2;
	color:var(--yc-text-soft);
}

/* =========================
   ABOUT KAMACOLLE
========================= */

.about-kamacolle{
	position:relative;
	margin-top:42px;
	padding:28px 32px;
	border:1px solid var(--yc-panel-border);
	background:var(--yc-panel);
	overflow:hidden;
}

.about-kamacolle h4,
.about-kamacolle p{
	position:relative;
	z-index:2;
}

.about-kamacolle h4{
	margin-bottom:18px;
	font-size:16px;
	font-weight:normal;
	letter-spacing:.14em;
	color:rgba(243,240,234,.88);
}

.about-kamacolle p{
	margin-bottom:16px;
	font-size:13px !important;
	line-height:2;
	color:rgba(243,240,234,.62);
}

.about-kamacolle p:last-child{
	margin-bottom:0;
}

/* 背景画像を使う場合はこちらに差し替え
.about-kamacolle{
	background:
		linear-gradient(
			to bottom,
			rgba(0,0,0,.78),
			rgba(0,0,0,.72)
		),
		url('../images/devil_bg.png') right center / 52% auto no-repeat;
}
*/

/* =========================
   NEWS
========================= */

.top-news{
	max-width:900px;
	margin:0 auto 140px;
}

.top-news h2{
	font-size:clamp(28px, 3vw, 48px);
	font-weight:normal;
	letter-spacing:.15em;
	margin-bottom:35px;
	color:var(--yc-text);
}

.news-item{
	border-top:1px solid var(--yc-line);
}

.news-item:last-child{
	border-bottom:1px solid var(--yc-line);
}

.news-item summary{
	list-style:none;
	cursor:pointer;
	padding:22px 0;
	display:flex;
	gap:24px;
	align-items:center;
}

.news-item summary::-webkit-details-marker{
	display:none;
}

.news-date{
	font-size:13px;
	letter-spacing:.12em;
	color:var(--yc-text-muted);
	min-width:100px;
}

.news-title{
	font-size:15px;
	letter-spacing:.08em;
	color:var(--yc-text-soft);
}

.news-body{
	padding:0 0 26px 124px;
	line-height:2;
	font-size:14px;
	color:var(--yc-text-soft);
}

.news-more{
	margin-top:35px;
	text-align:right;
}

.news-more a{
	color:var(--yc-text);
	text-decoration:none;
	font-size:12px;
	letter-spacing:.25em;
	border-bottom:1px solid var(--yc-accent-soft);
	padding-bottom:6px;
}

/* =========================
   TOP ENTRY
========================= */

.top-entry-section{
	max-width:none !important;
	margin:0 auto 140px !important;
	padding:110px 0 0;
	border-top:1px solid var(--yc-line-soft);
}

.top-entry-inner{
	max-width:1200px;
	margin:0 auto;
}

.top-section-label{
	display:block;
	margin-bottom:20px;
	font-size:11px;
	letter-spacing:.28em;
	color:var(--yc-text-faint);
}

.top-entry-text h2{
	font-size:clamp(24px, 2.6vw, 42px);
	font-weight:normal;
	line-height:1.5;
	letter-spacing:.12em;
	margin-bottom:34px;
	color:var(--yc-text);
}

.top-entry-text p{
	max-width:720px;
	font-size:14px;
	line-height:2.1;
	color:var(--yc-text-soft);
	margin-bottom:18px;
}

.entry-subcopy{
	margin-bottom:30px;
	font-size:clamp(22px, 2vw, 34px);
	letter-spacing:.14em;
	line-height:1.6;
	color:rgba(243,240,234,.88);
	font-weight:normal;
}

/* =========================
   TOP LINK AREA
========================= */

.top-link-area{
	margin-top:55px;
	text-align:right;
}

.top-link-button{
	display:inline-block;
	padding:16px 36px;
	border:1px solid var(--yc-accent-soft);
	color:var(--yc-text);
	text-decoration:none;
	text-align:center;
	font-size:12px;
	letter-spacing:.32em;
	background:rgba(255,255,255,.02);
	transition:.35s;
}

.top-link-button:hover{
	background:var(--yc-accent-bg);
	border-color:rgba(123,167,201,.86);
	letter-spacing:.38em;
}

.top-entry-button{
	min-width:260px;
}

.top-info-button{
	min-width:190px;
	font-size:11px;
	opacity:.82;
}

/* =========================
   FOOTER
========================= */

.site-footer{
	padding:90px 0 60px;
	text-align:center;
}

.footer-inner{
	width:min(92%, 1200px);
	margin:0 auto;
}

.footer-logo-link{
	display:inline-block;
}

.footer-logo-image{
	max-width:260px;
	width:100%;
	height:auto;
	opacity:.72;
	transition:.35s;
}

.footer-logo-image:hover{
	opacity:1;
	transform:translateY(-2px);
}

.footer-nav{
	display:flex;
	justify-content:center;
	align-items:center;
	gap:34px;
	flex-wrap:wrap;
}

.footer-nav a{
	font-size:11px;
	letter-spacing:.22em;
	color:var(--yc-text-muted);
	text-decoration:none;
	transition:.3s;
}

.footer-nav a:hover{
	color:var(--yc-text);
}

.footer-copy{
	margin-top:34px;
	font-size:11px;
	letter-spacing:.18em;
	color:var(--yc-text-faint);
}

/* =========================
   FOOTER SNS
========================= */

.footer-sns{
	margin-top:26px;
	text-align:center;
}

.footer-x-link{
	display:flex;
	align-items:center;
	justify-content:center;
	opacity:.75;
	transition:
		opacity .3s ease,
		transform .3s ease;
}

.footer-x-link:hover{
	opacity:1;
	transform:translateY(-1px);
}

.footer-x-link img{
	width:11px;
	height:auto;
	display:block;
}

/* =========================
   TEST
========================= */

.video-debug{
	position:fixed;
	left:10px;
	bottom:10px;
	z-index:99999;
	padding:8px 10px;
	background:rgba(0,0,0,.75);
	color:#fff;
	font-size:11px;
	line-height:1.5;
	font-family:monospace;
	pointer-events:none;
}

/* =========================
   COMING SOON
========================= */

.coming-soon-content{
	position:absolute;
	inset:0;
	z-index:8;
	display:flex;
	align-items:flex-end;
	justify-content:center;
	text-align:center;
	padding:0 7% 9vh;
	pointer-events:none;
}

.coming-soon-inner{
	transform:translateY(0);
}

.coming-label{
	display:block;
	margin-bottom:22px;
	font-size:11px;
	letter-spacing:.30em;
	color:var(--yc-text-muted);
}

.coming-soon-inner h2{
	font-size:clamp(34px, 6vw, 72px);
	font-weight:300;
	letter-spacing:.22em;
	line-height:1;
	color:rgba(243,240,234,.92);
	text-shadow:
		0 0 14px rgba(243,240,234,.10),
		0 0 28px rgba(123,167,201,.13);
}

.coming-message{
	margin-top:16px;
	font-size:11px;
	letter-spacing:.28em;
	color:var(--yc-text-muted);
}

/* =========================
   COMING SOON ONLY
========================= */

.coming-soon-page .hero .hero-image{
	opacity:1;
}

/* =========================
   TABLET PORTRAIT
========================= */

@media screen
and (min-width:769px)
and (max-width:1180px)
and (orientation:portrait){

	.hero .hero-image{
		background-image:url('../images/top_tab_back.jpg');
	}

	.coming-soon-content{
		padding-bottom:8vh;
	}

}

/* =========================
   MOBILE
========================= */

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

	.hero.shrink{
		height:48svh;
	}

	.hero .hero-image{
		background-image:url('../images/top_sp_back.jpg');
	}

	.enter-wrap{
		bottom:calc(30px + env(safe-area-inset-bottom));
	}

	.enter-btn{
		padding:14px 34px;
		font-size:11px;
		letter-spacing:.35em;
	}

	.back-link{
		top:25px;
		left:7%;
	}

	.content{
		padding:80px 7% 120px;
	}

	.content section{
		margin-bottom:90px;
	}

	.content p{
		font-size:14px;
		line-height:1.9;
	}

	.news-item summary{
		display:block;
		padding:20px 0;
	}

	.news-date{
		display:block;
		margin-bottom:8px;
		min-width:0;
	}

	.news-body{
		padding:0 0 24px;
	}

	.news-more{
		text-align:left;
	}

	.top-entry-section{
		padding:80px 0 0;
	}

	.top-entry-text h2{
		font-size:clamp(34px, 11vw, 56px);
	}

	.top-link-area{
		text-align:center;
		margin-top:45px;
	}

	.top-link-button{
		width:100%;
		min-width:0;
		padding:16px 20px;
	}

	.about-kamacolle{
		margin-top:34px;
		padding:22px 20px;
	}

	.about-kamacolle h4{
		font-size:15px;
		margin-bottom:14px;
	}

	.about-kamacolle p{
		font-size:12px !important;
		line-height:1.9;
	}

	.site-footer{
		padding:70px 0 50px;
	}

	.footer-logo-image{
		max-width:210px;
	}

	.footer-nav{
		gap:18px;
	}

	.coming-soon-content{
		padding:0 8% 7vh;
	}

	.coming-label{
		font-size:10px;
		letter-spacing:.20em;
	}

	.coming-soon-inner h2{
		font-size:clamp(30px, 11vw, 54px);
		letter-spacing:.14em;
	}

	.coming-message{
		margin-top:12px;
		font-size:10px;
		letter-spacing:.18em;
	}

}