/* Batch V002 repair: direct full-screen orb animation */
.vi-orb-sequence {
	position: fixed;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	overflow: hidden;
}

.vi-orb-sequence__orb {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 45%, #ffffff 0 5%, #bfe8ff 12%, #5ab8ff 31%, #1769b0 58%, rgba(1,11,24,0) 72%);
	box-shadow: 0 0 22px 10px rgba(90,184,255,.9), 0 0 80px 30px rgba(36,122,196,.65), 0 0 180px 80px rgba(9,52,101,.38);
	transform: translate(-50%, -50%) scale(.35);
	transform-origin: center;
	opacity: 1;
	animation: vi-direct-orb 5.2s linear forwards;
}

.vi-orb-sequence__ring {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 2px solid rgba(128,211,255,.82);
	box-shadow: 0 0 20px rgba(90,184,255,.55), inset 0 0 18px rgba(90,184,255,.25);
	transform: translate(-50%, -50%) scale(.3);
	opacity: 0;
	animation: vi-direct-ring 4.4s .55s ease-out forwards;
}

.vi-orb-sequence__wash {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at center, rgba(38,136,214,.34) 0%, rgba(12,56,104,.2) 24%, rgba(0,0,0,0) 64%);
	opacity: 0;
	animation: vi-direct-wash 5.2s linear forwards;
}

.vi-intro,
.vi-footnote,
.vi-sequence-skip {
	position: relative;
	z-index: 3 !important;
}

.vi-sequence-reveal .vi-orb-sequence,
.vi-sequence-complete .vi-orb-sequence {
	opacity: .58;
	transition: opacity 1.5s ease;
}

@keyframes vi-direct-orb {
	0% { transform: translate(-50%, -50%) scale(.35); opacity: 1; }
	15% { transform: translate(-50%, -50%) scale(1.8); opacity: 1; }
	35% { transform: translate(-50%, -50%) scale(7); opacity: 1; }
	60% { transform: translate(-50%, -50%) scale(22); opacity: .95; }
	82% { transform: translate(-50%, -50%) scale(52); opacity: .8; }
	100% { transform: translate(-50%, -50%) scale(90); opacity: .58; }
}

@keyframes vi-direct-ring {
	0% { transform: translate(-50%, -50%) scale(.3); opacity: 0; }
	12% { opacity: .95; }
	70% { opacity: .55; }
	100% { transform: translate(-50%, -50%) scale(55); opacity: 0; }
}

@keyframes vi-direct-wash {
	0%, 10% { opacity: 0; }
	45% { opacity: .4; }
	100% { opacity: .72; }
}

@media (prefers-reduced-motion: reduce) {
	.vi-orb-sequence__orb {
		animation: none;
		transform: translate(-50%, -50%) scale(60);
		opacity: .55;
	}
	.vi-orb-sequence__ring { display: none; }
	.vi-orb-sequence__wash { animation: none; opacity: .65; }
}
