/* Front-page hero: twin suns above the title. */
.hero {
	position: relative;
	min-height: 100svh;
	display: grid !important;
	place-items: center;
	text-align: center;
	padding: calc(var(--header-h) + 2rem) 1rem 5rem !important;
	margin-top: 0 !important;
}
.hero__inner { max-width: 880px; }
.hero__title {
	font-size: var(--wp--preset--font-size--colossal) !important;
	font-weight: 800 !important;
	letter-spacing: .16em !important;
	line-height: 1 !important;
	margin: .2em 0 .1em !important;
	background: linear-gradient(to bottom, #fff2c8 0%, var(--gold-light) 30%, var(--gold) 60%, #8a5a1c 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	filter: drop-shadow(0 0 22px color-mix(in srgb, var(--aura) 40%, transparent)) drop-shadow(0 3px 0 #000);
}
.hero__tagline { font-style: italic; font-size: var(--wp--preset--font-size--large); color: var(--parchment); opacity: .9; }

.scroll-cue {
	position: absolute;
	bottom: 1.6rem;
	left: 50%;
	translate: -50% 0;
	width: 22px;
	height: 22px;
	border-right: 2px solid var(--copper);
	border-bottom: 2px solid var(--copper);
	rotate: 45deg;
	animation: cue-bob 2.4s ease-in-out infinite;
	opacity: .8;
}
@keyframes cue-bob { 0%, 100% { translate: -50% 0; } 50% { translate: -50% 8px; } }

/* Twin suns: Solara steady gold, Noctis violet with pulse rings */
.twin-suns {
	position: relative;
	width: 220px;
	height: 120px;
	margin: 0 auto;
}
.twin-suns__solara,
.twin-suns__noctis { position: absolute; border-radius: 50%; }
.twin-suns__solara {
	left: 34px;
	top: 18px;
	width: 84px;
	height: 84px;
	background: radial-gradient(circle at 40% 38%, #fff7da, #ffd27a 35%, #e88a2a 70%, #a8461a);
	box-shadow: 0 0 30px 8px rgba(255, 180, 80, .55), 0 0 90px 30px rgba(255, 140, 60, .22);
	animation: solara-breathe 8s ease-in-out infinite;
}
.twin-suns__noctis {
	left: 140px;
	top: 46px;
	width: 22px;
	height: 22px;
	background: radial-gradient(circle, #fff 0, #d9c8ff 35%, var(--noctis) 70%);
	box-shadow: 0 0 16px 5px rgba(155, 123, 212, .7);
}
/* Cross flare */
.twin-suns__noctis::before {
	content: "";
	position: absolute;
	inset: -26px;
	background:
		linear-gradient(90deg, transparent 47%, rgba(230, 215, 255, .9) 50%, transparent 53%),
		linear-gradient(0deg, transparent 47%, rgba(230, 215, 255, .9) 50%, transparent 53%);
	mask-image: radial-gradient(circle, #000 20%, transparent 70%);
	animation: noctis-flare 3s ease-out infinite;
}
.twin-suns__noctis::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid rgba(190, 160, 255, .8);
	animation: noctis-ring 3s ease-out infinite;
}
@keyframes solara-breathe { 0%, 100% { scale: 1; } 50% { scale: 1.04; } }
@keyframes noctis-flare { 0% { opacity: 1; scale: 1.1; } 40% { opacity: .35; scale: .9; } 100% { opacity: .2; scale: .9; } }
@keyframes noctis-ring { 0% { opacity: .9; scale: 1; } 100% { opacity: 0; scale: 5; } }

.twin-suns--small { width: 160px; height: 90px; scale: .8; }

@media (prefers-reduced-motion: reduce) {
	.scroll-cue, .twin-suns__solara, .twin-suns__noctis::before, .twin-suns__noctis::after { animation: none; }
}

/* Hero rises on load, no scroll needed */
.hero__inner > * { animation: hero-rise 1.2s var(--ease-out) both; }
.hero__inner > :nth-child(2) { animation-delay: .25s; }
.hero__inner > :nth-child(3) { animation-delay: .45s; }
.hero__inner > :nth-child(4) { animation-delay: .7s; }
.hero__inner > :nth-child(5) { animation-delay: .95s; }
@keyframes hero-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .hero__inner > * { animation: none; } }
