﻿/* -------------------------------
　　　　　フォント指定
------------------------------- */
@font-face{
	font-family:'Shippori Mincho';
	src:url('../font/ShipporiMincho.woff') format('woff');
}

@font-face{
	font-family:'sorttmillgoudy';
	src:url('../font/SortsMillGoudy.woff') format('woff');
}

@font-face{
	font-family:'WebSubsetFont';
	src:url('../font/WebSubsetFont.woff') format('woff');
}


/* -------------------------------
　　　　　　骨組み
------------------------------- */

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

body{
	background-color:#00050a;
	color:#fff;
	font-size:12px;
	line-height:1.6;
	font-family:"WebSubsetFont","メイリオ",sans-serif;
	width:100%;
	position:relative;
}

#ere{
	background:linear-gradient(rgba(0,5,10,0.7),
	rgba(0,5,10,0.7)),
	url('../images/back_ere.webp') fixed center center / cover;
	-webkit-transform:translate3d(0,0,0);
	transform:translate3d(0,0,0);
}

#ash{
	background:linear-gradient(rgba(0,5,10,0.4),
	rgba(0,5,10,0.4)),
	url('../images/back_ash.webp') fixed center center / cover;
	-webkit-transform:translate3d(0,0,0);
	transform:translate3d(0,0,0);
}

#cross{
	background:linear-gradient(rgba(0,5,10,0.2),
	rgba(0,5,10,0.1)),
	url('../images/back_crossover.webp') fixed center center / cover;
	-webkit-transform:translate3d(0,0,0);
	transform:translate3d(0,0,0);
}

#mdq{
	background:linear-gradient(rgba(0,5,10,0.2),
	rgba(0,5,10,0.2)),
	url('../images/back_mdq.webp') fixed center center / cover;
	-webkit-transform:translate3d(0,0,0);
	transform:translate3d(0,0,0);
}

#ell{
	background:linear-gradient(rgba(0,5,10,0.3),
	rgba(0,5,10,0.3)),
	url('../images/back_el.webp') fixed center center / cover;
	-webkit-transform:translate3d(0,0,0);
	transform:translate3d(0,0,0);
}

#gle{
	background:linear-gradient(rgba(0,5,10,0.3),
	rgba(0,5,10,0.3)),
	url('../images/back_gle.webp') fixed center center / cover;
	-webkit-transform:translate3d(0,0,0);
	transform:translate3d(0,0,0);
}

#stardust-garden{
	position:relative;
	overflow:hidden;
	-webkit-backface-visibility:hidden;
	backface-visibility:hidden;
	z-index:50;
	background:rgba(255,255,255,0.04);
	backdrop-filter:blur(10px);
	-webkit-backdrop-filter:blur(10px);
	contain:paint;
	isolation:isolate;
	border:1px solid rgba(255, 255, 255, 0.1);
	margin:0 auto 35px;
	padding-bottom:50px;
	width:92%;
	max-width:340px;
	min-height:100vh;
	border-radius:8px;
	touch-action:pan-y;
}

#cross #stardust-garden{
	background:rgba(133,61,152,0.05);
	backdrop-filter:blur(10px);
	-webkit-backdrop-filter:blur(10px);
	contain:paint;
	isolation:isolate;
	border:1px solid rgba(255 255,255,0.1);
	margin:0 auto 35px;
	padding-bottom:50px;
	width:92%;
	max-width:340px;
	min-height:100vh;
	border-radius:8px;
	touch-action:pan-y;
}

body::-webkit-scrollbar{
	width:10px;
}

body::-webkit-scrollbar-track{
	background:#00050a;
}

body::-webkit-scrollbar-thumb{
	background:linear-gradient(to bottom,
	#cfb53b,#fcf6ba,#aa8954);
	border-radius:10px;
	background-clip:padding-box;
	clip-path:inset(0);
	border:3px solid transparent; 
}
/* -------------------------------
　　　　　　ヘッダー
------------------------------- */
@keyframes twinkle{
	0%,
	100%{
		opacity:1;
		text-shadow:0 0 8px rgba(71,185,255,0.7);
	}
	50%{
		opacity:0.8;
		text-shadow:0 0 15px rgba(97,222,250,0.9);
	}
}

@keyframes twinkle2{
	0%,
	100%{
		opacity:1;
		text-shadow:0 0 8px rgba(169,71,255,0.7);
	}
	50%{
		opacity:0.8;
		text-shadow:0 0 15px rgba(224,97,250,0.9);
	}
}


.garden-title>a{
	font-family:"Shippori Mincho", serif;
	font-size:1.3rem;
	font-weight:700;
	color:#fff;
	letter-spacing:0.15em;
	text-shadow:0 0 8px rgba(97,222,250,0.7), 
	0 0 15px rgba(255,255,255,0.2);
	text-align:center;
	display:block;
	margin:30px 0 50px;
	animation:twinkle 4s infinite ease-in-out;
	text-decoration:none;
}

.main-visual{
	margin:30px auto 0;
	border:2px solid rgba(170,240,248,0.3);
	box-shadow:0 0 20px rgba(170,240,248,0.2),
	inset 0 0 30px rgba(0, 0, 0, 0.6);
	position:relative;
	overflow:hidden;
}

#ere .main-visual{
	width:325px;
	height:158px;
	background-image:url(../images/ere.jpg);
	background-size:cover;
	background-position:center;
}

#ash .main-visual{
	width:325px;
	height:158px;
	background-image:url(../images/ash.jpg);
	background-size:cover;
	background-position:center;
}

#cross .main-visual{
	width:325px;
	height:158px;
	background-image:url(../images/cross.jpg);
	background-size:cover;
	background-position:center;
}

#mdq .main-visual{
	width:325px;
	height:158px;
	background-image:url(../images/mdq.jpg);
	background-size:cover;
	background-position:center;
}

#ell .main-visual{
	width:325px;
	height:158px;
	background-image:url(../images/ell.jpg);
	background-size:cover;
	background-position:center;
}

#gle .main-visual{
	width:325px;
	height:158px;
	background-image:url(../images/gle.jpg);
	background-size:cover;
	background-position:center;
}

.prologue{
	font-size:13px;
	display:block;
	font-family:"Shippori Mincho", serif;
	letter-spacing:0.05em;
	margin:55px 0 0 15px;
	text-shadow:0 0 5px rgba(0,0,0,0.8);
}

/* -------------------------------
	メニューボタン
------------------------------- */
@keyframes pulse{
	0%{filter:drop-shadow(0 0 2px rgba(212,175,55,0.5));}
	100%{filter:drop-shadow(0 0 8px rgba(212,175,55,0.8));}
}

.menulist{
	position:static;
}

.menu-button{
	position:absolute!important;
	top:20px;
	left:15px; /* 箱庭の左端から15pxの位置 */
	z-index:2000;
	width:22px;
	height:8px;
	cursor:pointer;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	animation:pulse 3s infinite alternate ease-in-out;
}

.menu-button span{
	display:block;
	width:100%;
	height:1px;
	background:linear-gradient(to right,
	#cfb53b,#fcf6ba,#aa8954);
	box-shadow:0 0 4px rgba(212,175,55,0.4);
	transition:all 0.3s;
}

/* -------------------------------
	メニュー本体
------------------------------- */
.navigation{
	height:100vh;
	width:180px;
	position:fixed;
	top:0;
	left:-185px;
	z-index:1000;
	padding:80px 0 50px 10px;
	transition:left 0.4s ease;
	background:rgba(1,14,28,0.9);
	border-right:1px solid rgba(255,255,255,0.1);
}

.navigation.open{
	left:0;
}

.navigation>li{
	width:100%;
	padding:0 20px;
	list-style-type:none;
	position:relative;
	transition:all .3s;
	margin-bottom:15px;
}

.navigation>li:hover{
	transform:translateX(-5px);
}

.navigation>li:hover .submenu,
.navigation>li.active-touch .submenu{
	visibility:visible;
	opacity:1;
}

.submenu{
	visibility:hidden;
	opacity:0;
	transition:all .3s;
	width:165px;
	position:absolute;
	top:0;
	left:175px;
	background:rgba(24,45,66,0.9);
	border:1px solid rgba(255,255,255,0.1);
	border-radius:4px 0 0 4px;
	padding:10px;
}

.submenu>h4{
	font-size:15px!important;
	margin-top:0!important;
}

.navigation>li:hover .submenu{
	visibility:visible;
	opacity:1;
}

.submenu>li{
	list-style-type:none;
	position:relative;
	padding:8px 15px;
	font-size:10px;
}

.submenu>li::before{
	content:'✦';
	color:rgba(212,175,55,0.8);
	margin-right:8px;
}

.navigation::-webkit-scrollbar{
	height:8px;
}

.navigation::-webkit-scrollbar-track{
	background:transparent;
}

.navigation::-webkit-scrollbar-thumb{
	background:linear-gradient(to bottom,#cfb53b,#fcf6ba,#aa8954);
	background-clip:padding-box;
	border-radius:10px;
	border:2px solid transparent;
}

.navigation:not(.open) .submenu{
	visibility:hidden!important;
	opacity:0!important;
	transition:none!important;
}
/* -------------------------------
　　　　　　main
------------------------------- */
.portal-container{
	padding:20px;
	background:linear-gradient(
	to bottom,
	transparent 0%,
	rgba(71,255,246,0.06) 50%,
	transparent 100%);
	margin:0 13px;
}

#ell .portal-container{
	padding:20px;
	background:linear-gradient(
	to bottom,
	transparent 0%,
	rgba(105,250,97,0.06) 50%,
	transparent 100%);
	margin:0 13px;
}

h2{
	font-family:"Shippori Mincho", serif;
	font-size:21px;
	font-weight:700;
	color:#fff;
	letter-spacing:0.15em;
	text-shadow:0 0 8px rgba(97,222,250,0.7), 
	0 0 15px rgba(255,255,255,0.2);
	text-align:center;
	display:block;
	margin:25px 0 15px;
	animation:twinkle 4s infinite ease-in-out;
	text-decoration:none;
}

#cross h2{
	animation:twinkle2 4s infinite ease-in-out;
}

.attention{
	color:#ddd;
	letter-spacing:0.12em;
	line-height:1.75em;
	display:block;
	margin-bottom:50px;
}

.attention>p{
	font-size:10px;
	margin:10px 0;
	line-height:1.5em;
}

.panel-title{
	margin-top:35px;
	margin-bottom:20px;
	font-weight:1000;
	text-align:left;
	border-bottom:1px solid rgba(170, 240, 248, 0.2);
	padding-bottom:8px;
	display:flex;
	flex-direction:column;
}

.jp-title{
	font-family:"Shippori Mincho", serif;
	font-size:1.5rem;
	letter-spacing:0.1em;
	background-color:#1a0f0a; 
	background:linear-gradient(to bottom,
	#cfb53b 0%,#fcf6ba 45%,#aa8954 50%,
	#ffecbb 55%,#8a6e2f 100%);
	-webkit-background-clip:text;
	-webkit-text-fill-color: transparent;
	filter:drop-shadow(0 2px 2px rgba(0,0,0,0.8))
	drop-shadow(0 0 5px rgba(212, 175, 55, 0.2));
}

.en-sub{
	font-family:"sorttmillgoudy",sans-serif;
	font-size:0.8rem;
	letter-spacing:0.2em;
	color:rgba(255, 255, 255, 0.4);
	margin-top: 2px;
}

dt,h4{
	font-family:"Shippori Mincho", serif;
	font-size:18.5px;
	font-weight:bold;
	letter-spacing:0.1em;
	background-color:#2c2c2c; 
	background:linear-gradient(to bottom,
	#a0a0a0 0%,
	#e0e0e0 45%,
	#808080 50%,
	#dcdcdc 55%,
	#696969 100%);
	-webkit-background-clip:text;
	-webkit-text-fill-color:transparent;
	filter:drop-shadow(0 2px 2px rgba(0,0,0,0.8))
	drop-shadow(0 0 5px rgba(192, 192, 192, 0.2));
	margin:30px 0 10px;
}

dd:not(.visual){
	margin-bottom:8px;
	position:relative;
	padding-left:15px;
	font-size:10.5px;
	color:#fcfce6;
}

dd:not(.visual)::before{
	content: '✦';
	position:absolute;
	left:0;
	top:-2px;
	color:rgba(212,175, 55,0.8);
	font-size: 0.8rem;
	text-shadow:0 0 4px rgba(212,175,55,0.8),
	0 0 12px rgba(212,175,55,0.4); 
}

@keyframes pulse-gold{
	0%{text-shadow:0 0 5px rgba(212,175,55,0.5);}
	50%{text-shadow:0 0 15px rgba(212,175,55,1),0 0 20px rgba(255,255,255,0.5);}
	100%{text-shadow:0 0 5px rgba(212,175,55,0.5);}
}

dd>a,
li>a,
li>span,
#garden-footer a,
.old>span,
.paro>span{
	color:#fcf6ba;
	text-decoration:none;
	font-weight:bold;
	transition:all 0.4s ease;
	animation:pulse-gold 3s infinite ease-in-out;
	display:inline-block;
	font-family:"Shippori Mincho",serif;
	letter-spacing:0.1em;
}

dd:not(.visual)>a:hover,
li>a:hover,li>span:hover,
#garden-footer a:hover,
.old>span:hover,
.paro>span:hover{
	transform:translateY(-1px);
	color:#fff;
}

li,.old,.paro{
	margin-bottom:8px;
	position:relative;
	padding-left:15px;
	font-size:10.5px;
	color:#fcfce6;
	list-style-type:none;
}

li::before,.old::before,.paro::before{
	content: '✦';
	position:absolute;
	left:0;
	color:rgba(212,175, 55,0.8);
	font-size: 0.8rem;
	text-shadow:0 0 4px rgba(212,175,55,0.8),
	0 0 12px rgba(212,175,55,0.4); 
}

li>span,.old>span,.paro>span{
	cursor:pointer;
}

dialog{
	border:none;
	background:transparent;
	padding:0;
	margin:auto;
	outline:none;
}

dialog>.window{
	padding:30px 15px 50px;
	border-radius:10px;
	box-shadow:0 10px 30px rgba(0,0,0,0.3);
	min-width:325px;
	max-width:338px;
	z-index:9999; 
	background:rgba(255,255,255,0.1);
	backdrop-filter:blur(15px);
	-webkit-backdrop-filter:blur(15px);
	border:1px solid rgba(255,255,255,0.2);
	color:#fff;
	max-height:80vh;
	overflow-y:auto;
	position:relative;
	outline:none;
}

dialog::backdrop{
	background:rgba(0, 5, 10, 0.7);
	backdrop-filter:blur(2px);
}


dialog::focus{
	outline:none;
}

.close-button{
	position:absolute;
	top:10px;
	left:0;
	width:auto;
	height:26px;
	line-height:26px;
	padding:0 12px;
	font-size:11px;
	font-weight:bold;
	cursor:pointer;
	color:#ccc;
	user-select:none;
	z-index:100;
	display:flex;
	align-items:center;
	gap:5px;
	background:transparent;
	border:none;
}

.close-button:focus{
	outline:none;

}

dialog .window::-webkit-scrollbar{
	width:10px;
	height:10px;
}

dialog .window::-webkit-scrollbar-track{
	background:transparent;
	margin:15px 0;
}

dialog .window::-webkit-scrollbar-thumb{
	background:linear-gradient(to bottom,
	#cfb53b,#fcf6ba,#aa8954);
	background-clip:padding-box;
	border-radius:10px;
	border:3px solid transparent; 
}

#fan-fiction-group>p{
	font-size:10px;
	line-height:1.75em;
	font-family:"Shippori Mincho", "WebSubsetFont",serif;
	color:#efefef;
	text-indent:1em;
	margin:15px 0 15px 5px;
}

/* -------------------------------
	　　visual
------------------------------- */
.visual-window{
	margin:30px auto 0;
	outline:2px solid rgba(170,240,248,0.3);
	outline-offset:-2px;
	box-shadow:0 0 20px rgba(170,240,248,0.2);
	position:relative;
	overflow:hidden;
	width:325px;
	height:158px;
	cursor:pointer;
}

.visual{
	margin:13px auto;
	outline:2px solid rgba(170,240,248,0.3);
	outline-offset:-2px;
	box-shadow:0 0 20px rgba(170,240,248,0.2);
	position:relative;
	overflow:hidden;
	width:272px;
	height:136px;
	cursor:pointer;
}

.visual-window::after,.visual::after{
	content:'';
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	box-shadow:inset 0 0 30px rgba(0,0,0,0.6);
	pointer-events:none; /* クリックを邪魔しない魔法 */
	z-index:2;
}

.visual-window img,.visual img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
	z-index:1;
}

.visual img:hover{
	opacity:0.8;
	outline:2px solid rgba(170,240,248,0.3);
	outline-offset:-2px;
	box-shadow:0 0 20px rgba(170,240,248,0.2);
}

#main_modal .window{
	max-width:90vw;
	width:1230px;
	overflow:auto;
}

#main_modal .window img{
	width:1200px!important;
	max-width:none !important;
	height:auto;
}

/* -------------------------------
　　　　　　footer
------------------------------- */

#garden-footer{
	text-align:center;
	padding:40px 0 20px;
	font-size:0.7rem;
	color:rgba(255, 255, 255, 0.2);
	letter-spacing:0.15em;
	font-family:"sorttmillgoudy","WebSubsetFont",sans-serif;
	white-space:nowrap;
}

#garden-footer::before{
 	content:'ーーー';
	display:block;
	margin-bottom:10px;
	opacity: 0.3;
}