/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Rounded+Mplus+1c:wght@500&display=swap');

@font-face {
	font-family: "nicokakuv2";
	src: url(../font/nicokaku_v2.ttf) format("truetype");
	font-display: swap;
}

/* Base */
:root {
	--colw: 90%;
	--brand-deep:#0c2e67;
}
* {
	box-sizing: border-box;
}
html,body {
	margin:0;
	padding:0;
}
body {
	background: linear-gradient(180deg, #dce7ff 0%, #f4e1f6 50%, #e4d9ff 100%);
	background-attachment: fixed;
	background-size: cover;
	color: #0c2e67;
	font-family: sans-serif;
	line-height: 1.8;
	margin: 0;
	padding: 0;
}
a {
	color:#2a8be9;
	text-decoration:none; transition:.2s;
}
a:hover {
	color:#ff99b7;
	text-decoration:underline;
}

/* Header - Twilight sky with seamless clouds + golden ray */
header {
	position: relative;
	text-align: center;
	padding: 60px 0;
	color: var(--brand-deep);
	overflow: hidden;
	background: linear-gradient(180deg, #bfc7ff 0%, #cdb7ef 40%, #e0d2ff 100%);
	font-family: "nicokakuv2";
}

/* Foreground clouds */
header::before,
header::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc1MTInIGhlaWdodD0nMjU2JyB2aWV3Qm94PScwIDAgNTEyIDI1Nic+PGRlZnM+PGZpbHRlciBpZD0nZic+PGZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuMDEgMC4wMzUnIG51bU9jdGF2ZXM9JzMnIHNlZWQ9JzUnIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPScwLjYnLz48L2ZpbHRlcj48bWFzayBpZD0nbSc+PHJlY3Qgd2lkdGg9JzUxMicgaGVpZ2h0PScyNTYnIGZpbHRlcj0ndXJsKCNmKScgZmlsbD0nd2hpdGUnLz48L21hc2s+PC9kZWZzPjxyZWN0IHdpZHRoPSc1MTInIGhlaWdodD0nMjU2JyBmaWxsPSd3aGl0ZScgbWFzaz0ndXJsKCNtKScgb3BhY2l0eT0nMC45Jy8+PC9zdmc+");
	background-repeat: repeat-x;
	background-size: cover;
	background-position: center;
	image-rendering: -webkit-optimize-contrast;
	background-blend-mode: lighten; 
	filter: blur(0.4px) brightness(1.02);
	mix-blend-mode: lighten;
}

/* Back clouds */
header::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc1MTInIGhlaWdodD0nMjU2JyB2aWV3Qm94PScwIDAgNTEyIDI1Nic+PGRlZnM+PGZpbHRlciBpZD0nZjInPjxmZVR1cmJ1bGVuY2UgdHlwZT0nZnJhY3RhbE5vaXNlJyBiYXNlRnJlcXVlbmN5PScwLjAwNyAwLjAyJyBudW1PY3RhdmVzPScyJyBzZWVkPScxMScgc3RpdGNoVGlsZXM9J3N0aXRjaCc vPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249JzEuMicvPjwvZmlsdGVyPjxtYXNrIGlkPSdtMic+PHJlY3Qgd2lkdGg9JzUxMicgaGVpZ2h0PScyNTYnIGZpbHRlcj0ndXJsKCNmMiknIGZpbGw9J3doaXRlJy8+PC9tYXNrPjwvZGVmcz48cmVjdCB3aWR0aD0nNTEyJyBoZWlnaHQ9JzI1NicgZmlsbD0nd2hpdGUnIG1hc2s9J3VybCgjbTIpJyBvcGFjaXR5PScwLjQ1Jy8+PC9zdmc+");
	background-repeat: repeat-x;
	background-size: 900px 450px;
	mix-blend-mode: screen;
	opacity: 0.85;
	animation: cloudDriftSlow 220s linear infinite;
	filter: hue-rotate(-15deg) saturate(1.25);
	pointer-events: none;
	z-index: 0;
}

/* Golden ray */
header .glow-light {
	position: absolute;
	top:0;
	left:-50%;
	width:200%;
	height:100%;
	background: linear-gradient(100deg, rgba(255,240,220,0) 0%, rgba(255,230,200,0.18) 30%, rgba(255,250,240,0.35) 50%, rgba(255,230,200,0.18) 70%, rgba(255,240,220,0) 100%);
	mix-blend-mode: screen;
	opacity:.55;
	filter: blur(12px);
	animation: goldenRay 40s linear infinite;
	z-index:1;
	pointer-events:none;
}
header .title {
	position: relative;
	z-index:2;
	font-size: 40px;
	letter-spacing:2px;
	color: #002d5f;
	text-shadow: 0 0 12px rgba(255,255,255,.85);
}

/* Profile */
#prof {
	--col-content-width: var(--colw);
	display:flex;
	justify-content:center;
	align-items:flex-start;
	gap:0;
	max-width:1000px;
	margin:50px auto;
	background:#ffffffcc;
	border-radius:20px;
	box-shadow:0 4px 20px rgba(200,220,255,.35);
}
#prof .prof_left, #prof .prof_right {
	width:50%;
	padding:25px;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
}
#prof .prof_left {
	/* background: rgba(255,255,255,.9); border-radius:20px 0 0 20px; */
	/* box-shadow: inset -3px 0 6px rgba(180,210,255,.25), 0 6px 15px rgba(200,220,255,.2); */
	position:relative;
}
.prof_name, .prof_introduction, .prof_overview {
	width: var(--col-content-width);
	margin:0 auto;
}
.prof_name p {
	font-size:24px;
	font-weight:700;
	margin:0 0 10px;
	border-bottom:3px solid;
	border-image: linear-gradient(to right,#7ec9ff,#f7b8e0) 1;
	padding-bottom:3px;
}
.prof_introduction p {
	width: 100%;
	margin: 6px 0;
	padding: 12px 16px;
	background: #f7fbff;
	border-left: 4px solid #b3dcff;
	border-radius: 8px;
	transition: .3s;
	font-size: 14px;
	line-height: 1.8;
}
.prof_introduction p:hover {
	background:#eaf5ff;
	transform: translateX(3px);
}
.update {
	color: #777;
	font-size: 13px;
	text-align: right;
	margin-top: 10px;
	position: static;
}

/* #prof .prof_right { border-left:1px dashed #99bce0; box-shadow: inset 3px 0 6px rgba(180,210,255,.25), 0 6px 15px rgba(200,220,255,.2); } */
.prof_img {
	display:flex;
	justify-content:center;
	align-items:center;
	width:100%;
	margin:0 auto 15px;
}
.prof_img img {
	display:block;
	margin:0 auto;
	max-width: var(--col-content-width);
	height:auto;
	border-radius:15px;
	box-shadow:0 3px 8px rgba(0,0,0,.1);
	transition:.4s;
}
.prof_img img:hover {
	transform: scale(1.03);
	box-shadow:0 8px 18px rgba(0,0,0,.15);
	filter: brightness(1.05);
}
.prof_overview {
	text-align:center;
	font-size:15px;
	color:#444;
	padding-bottom:40px;
}
.prof_overview::after {
	content:"";
	display:block;
	height:40px;
	margin-top:15px;
	background: linear-gradient(to bottom, rgba(255,255,255,.6), transparent);
}

/* Details / Cards */
details {
	margin: 15px auto;
	max-width: 1000px;
	background:#ffffffc8;
	border-radius:10px;
	box-shadow:0 2px 6px rgba(200,220,255,.3);
	overflow:hidden;
	transition:.25s;
}
/* ▼ セクション見出し（ゲーム関係など） */
h1 {
	background: linear-gradient(90deg, #8dc6ff, #d5b7ff, #f7c6e5);
	color: #fff;
	padding: 10px 20px;
	font-size: 18px;
	font-weight: 700;
	border-radius: 10px;
	box-shadow: 0 3px 8px rgba(180, 200, 255, 0.25);
	letter-spacing: 0.03em;
	margin-bottom: 18px;
}

/* ▼ detailsのsummary（折りたたみ見出し） */
summary {
	background: linear-gradient(90deg, #e4f0ff, #faebf7);
	padding: 14px 20px;
	font-weight: 700;
	color: #043a6b;
	cursor: pointer;
	border-radius: 12px;
	font-size: 17px;
	transition: all .25s ease;
	list-style: none;
	box-shadow: 0 3px 8px rgba(200, 220, 255, 0.15);
}

summary::-webkit-details-marker {
	display: none;
}

/* 開いた状態 */
details[open] summary {
	background: linear-gradient(90deg, #dbeaff, #f6d8ef);
	color: #022e57;
	box-shadow: 0 4px 10px rgba(180, 200, 255, 0.3);
}

/* hover時の軽い持ち上がり */
summary:hover {
	transform: translateY(-1px);
	filter: brightness(1.04);
}

/* ▼ details内の内容 */
.details_in, .details_in_sm, .details_in_llsif2 {
	background: rgba(255, 255, 255, 0.85);
	border-left: 4px solid #b7d9ff;
	padding: 18px 22px;
	margin-top: 10px;
	border-radius: 12px;
	box-shadow: 0 3px 6px rgba(190, 210, 255, 0.15);
}

.event-card {
	background:#fff;
	border:1px solid #d5e2ff;
	border-radius:10px;
	box-shadow:0 2px 6px rgba(160,180,255,.2);
	padding:14px 16px;
	transition:.3s;
	position:relative;
	overflow:hidden;
}
.event-card:hover {
	background:#f8fbff;
	border-color:#b8d0ff;
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(160,180,255,.28);
}
.event-card.small {
	padding:12px 14px;
}
.event-title {
	font-weight:700;
	color:#003c80;
	font-size:16px;
	display:flex;
	align-items:center;
	gap:6px;
	margin-bottom:4px;
}
.event-title::before {
	content:"🐾";
	font-size:15px;
}
.event-period {
	color:#556;
	font-size:14px;
	margin-bottom:6px;
}
.event-stats {
	display:flex;
	flex-wrap:wrap;
	gap:8px 16px;
	font-size:14px;
	color:#333;
}
.event-stats span {
	background:#f3f7ff;
	border:1px solid #d8e4ff;
	border-radius:6px;
	padding:4px 8px;
	font-weight:500;
}
.event-stats span strong {
	color:#0d47a1;
}
.event-stats span.rank-top5 strong {
	color:#d4af37;
}

/* Section headings */
#event_results h1, #idol_results h1 {
	background: linear-gradient(90deg, #8dc6ff, #d5b7ff, #f7c6e5);
	color: #fff;
	padding: 10px 20px;
	font-size: 18px;
	font-weight: 700;
	border-radius: 10px;
	box-shadow: 0 3px 8px rgba(180, 200, 255, 0.25);
	letter-spacing: 0.03em;
	margin-bottom: 18px;
	margin:40px auto 15px;
	max-width:960px;
}

/* Footer */
footer {
	text-align:center;
	padding:20px 0;
	background: linear-gradient(90deg,#e3f3ff,#fae1f2);
	color:#666;
	font-size:14px;
	border-top:1px solid #e0e0e0;
	margin-top:30px;
}

/* Scrollbar */
.details_in::-webkit-scrollbar, .details_in_sm::-webkit-scrollbar, .details_in_llsif2::-webkit-scrollbar {
	width:8px;
}
.details_in::-webkit-scrollbar-thumb, .details_in_sm::-webkit-scrollbar-thumb, .details_in_llsif2::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg,#a5d7ff,#ffb6d6);
	border-radius:4px;
}

/* Animations */
@keyframes cloudDrift { from{background-position:0 0;} to{background-position:-2000px 0;} }
@keyframes cloudDriftSlow { from{background-position:0 0;} to{background-position:-1200px 0;} }
@keyframes goldenRay { from{ transform: translateX(-30%); opacity:.45; } 50%{ transform: translateX(30%); opacity:.7;} to{ transform: translateX(100%); opacity:.45;} }

/* Responsive */
@media (max-width: 768px) {
	#prof { flex-direction:column; }
	#prof .prof_left, #prof .prof_right { width:100%; box-shadow:none; }
	#prof .prof_right { border-left:none; border-top:1px dashed #99bce0; padding-top:20px; }
	:root { --colw: 95%; }
	.update { position: static; text-align:right; margin-top:10px; }
}