.vgs-page { font-family: var(--vgs-font); font-size: var(--vgs-body-size, 16px); color: var(--vgs-text); background: var(--vgs-page-bg); line-height: 1.6; overflow-x: hidden; position: relative; z-index: 0; isolation: isolate; padding-top: var(--vgs-top-offset, 0px) !important; }
.vgs-page * { box-sizing: border-box; }
.vgs-page section { padding: 48px 24px; max-width: 780px; margin: 0 auto; }
.vgs-page h1, .vgs-page h2 { color: var(--vgs-heading); font-family: var(--vgs-font); font-weight: 600; }
.vgs-page h1 { font-size: var(--vgs-title-size, 34px); margin: 12px 0 8px; }
.vgs-page h2 { font-size: calc(var(--vgs-title-size, 34px) * 0.7); margin: 0 0 18px; text-align: center; }

.vgs-hero { position: relative; text-align: center; background: var(--vgs-hero-bg); padding: 64px 24px; overflow: hidden; z-index: 0; isolation: isolate; max-width: 780px; margin: 0 auto; }
.vgs-hero-inner { position: relative; z-index: 2; max-width: 680px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.vgs-hero-photo { width: 132px; height: 132px; border-radius: 50%; object-fit: cover; border: 4px solid rgba(255,255,255,.7); }
.vgs-hero-subtitle { font-size: 17px; max-width: 480px; }
.vgs-facts { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; font-size: 14px; margin: 8px 0 4px; }
.vgs-cta { display: inline-block; margin-top: 12px; padding: 13px 30px; border-radius: 30px; font-size: 16px; font-weight: 600; background: var(--vgs-accent); color: var(--vgs-accent-tx); text-decoration: none; border: none; cursor: pointer; position: relative; }
.vgs-cta:hover { opacity: .92; }

.vgs-card { background: rgba(255,255,255,.6); border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 24px; margin-bottom: 20px; }
.vgs-about { display: grid; gap: 20px; }
@media (min-width: 640px) { .vgs-about { grid-template-columns: 1fr 1fr; } }

.vgs-step-grid { display: grid; gap: 20px; grid-template-columns: 1fr; text-align: center; }
@media (min-width: 640px) { .vgs-step-grid { grid-template-columns: repeat(3,1fr); } }
.vgs-step-n { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--vgs-accent); color: var(--vgs-accent-tx); font-weight: 600; margin-bottom: 10px; }

.vgs-countdown { text-align: center; }
.vgs-countdown-timer { display: flex; justify-content: center; gap: 18px; }
.vgs-countdown-timer div { min-width: 60px; }
.vgs-countdown-timer span { display: block; font-size: 32px; font-weight: 600; color: var(--vgs-heading); }
.vgs-countdown-timer small { font-size: 12px; }
.vgs-countdown-live { font-weight: 600; color: var(--vgs-accent); }

.vgs-register-form { max-width: 460px; margin: 0 auto; text-align: left; }
.vgs-register-form input { width: 100%; padding: 10px 12px; border: 1px solid rgba(0,0,0,.15); border-radius: 8px; font-size: 15px; margin-top: 4px; }
.vgs-register-note { text-align: center; font-size: 14px; margin-bottom: 18px; }
.vgs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; }
.vgs-form-msg { font-size: 14px; margin-top: 10px; }
.vgs-form-msg.is-error { color: #a33; }
.vgs-form-msg.is-success { color: #2a7a4a; }

.vgs-faq-item { border-bottom: 1px solid rgba(0,0,0,.08); padding: 14px 0; }
.vgs-faq-item summary { cursor: pointer; font-weight: 600; color: var(--vgs-heading); }
.vgs-faq-item p { margin-top: 10px; font-size: 15px; }

@media (max-width: 600px) {
	.vgs-page h1 { font-size: calc(var(--vgs-title-size, 34px) * 0.76); }
	.vgs-hero { padding: 44px 18px; }
	.vgs-hero-photo { width: 96px; height: 96px; }
	.vgs-countdown-timer { gap: 10px; }
	.vgs-countdown-timer div { min-width: 46px; }
	.vgs-countdown-timer span { font-size: 24px; }
}

/* 1. Dawn rays */
.vgs-anim-rays .vgs-rays { position: absolute; top: 50%; left: 50%; width: 900px; height: 900px; margin: -450px 0 0 -450px; background: repeating-conic-gradient(from 0deg, rgba(255,255,255,.5) 0deg 4deg, transparent 4deg 18deg); animation: vgsSpin 40s linear infinite; z-index: 1; }
.vgs-anim-rays .vgs-petal { position: absolute; top: -20px; width: 12px; height: 16px; background: var(--vgs-accent); border-radius: 0 100% 0 100%; opacity: .8; animation: vgsFall 8s linear infinite; z-index: 1; }
@keyframes vgsSpin { to { transform: rotate(360deg); } }
@keyframes vgsFall { 0% { transform: translateY(0) rotate(0deg); opacity: 0; } 10% { opacity: .8; } 100% { transform: translateY(340px) rotate(220deg); opacity: 0; } }

/* 2. Lake of peace */
.vgs-anim-wave .vgs-wave { position: absolute; bottom: 0; left: -20%; width: 140%; height: 60px; background: radial-gradient(ellipse at center, transparent 60%, rgba(63,140,124,.25) 61%) 0 0/60px 60px; animation: vgsDrift 8s linear infinite; }
@keyframes vgsDrift { from { background-position-x: 0; } to { background-position-x: -60px; } }

/* 3. Lamp pavilion */
.vgs-anim-flame .vgs-flame { display: inline-block; width: 12px; height: 18px; background: var(--vgs-accent); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: vgsFlicker 1.4s ease-in-out infinite; position: absolute; top: 30px; }
.vgs-anim-flame .vgs-flame-l { left: 32%; }
.vgs-anim-flame .vgs-flame-r { right: 32%; animation-delay: .6s; }
@keyframes vgsFlicker { 0%, 100% { transform: scaleY(1) scaleX(1); opacity: 1; } 50% { transform: scaleY(1.25) scaleX(.85); opacity: .85; } }

/* 4. Golden flower — burst on the CTA */
.vgs-anim-burst .vgs-cta::before, .vgs-anim-burst .vgs-cta::after { content: ""; position: absolute; top: 10px; width: 5px; height: 5px; border-radius: 50%; background: var(--vgs-accent-tx); animation: vgsBurst 2.2s ease-out infinite; }
.vgs-anim-burst .vgs-cta::before { left: 20%; }
.vgs-anim-burst .vgs-cta::after { right: 20%; animation-delay: 1.1s; }
@keyframes vgsBurst { 0% { transform: translate(0,0) scale(1); opacity: 1; } 100% { transform: translate(0,-24px) scale(0); opacity: 0; } }

/* 5. Sacred stage */
.vgs-anim-curtain .vgs-curtain { position: absolute; top: 0; bottom: 0; width: 52%; background: linear-gradient(90deg,#5c3419,#7a4720); z-index: 1; }
.vgs-anim-curtain .vgs-curtain-l { left: 0; animation: vgsOpenL 2s ease forwards; }
.vgs-anim-curtain .vgs-curtain-r { right: 0; animation: vgsOpenR 2s ease forwards; }
.vgs-anim-curtain .vgs-spotlight { position: absolute; top: -10%; left: 50%; width: 420px; height: 420px; margin-left: -210px; background: radial-gradient(circle, rgba(255,224,150,.3), transparent 70%); }
.vgs-anim-curtain .vgs-hero-photo { border: 3px solid var(--vgs-accent); }
.vgs-anim-curtain h1, .vgs-anim-curtain .vgs-hero-subtitle, .vgs-anim-curtain .vgs-facts { color: #f4dfb2; }
@keyframes vgsOpenL { 0% { transform: translateX(0); } 100% { transform: translateX(-96%); } }
@keyframes vgsOpenR { 0% { transform: translateX(0); } 100% { transform: translateX(96%); } }

/* 6. Om waves */
.vgs-anim-ripple .vgs-ripple-wrap { position: relative; width: 120px; height: 120px; margin: 0 auto 8px; display: flex; align-items: center; justify-content: center; }
.vgs-anim-ripple .vgs-ring { position: absolute; top: 50%; left: 50%; border: 1.5px solid var(--vgs-accent); border-radius: 50%; opacity: 0; animation: vgsRipple 3.2s ease-out infinite; }
.vgs-anim-ripple .vgs-om { font-size: 42px; color: var(--vgs-heading); position: relative; z-index: 1; }
@keyframes vgsRipple { 0% { width: 20px; height: 20px; margin: -10px 0 0 -10px; opacity: .7; } 100% { width: 260px; height: 260px; margin: -130px 0 0 -130px; opacity: 0; } }
.vgs-anim-ripple .vgs-cta { animation: vgsPulse 1.8s ease-in-out infinite; }
@keyframes vgsPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(106,75,171,.35); } 50% { box-shadow: 0 0 0 10px rgba(106,75,171,0); } }

/* 7. Lotus garden */
.vgs-anim-lotus .vgs-lotus { position: absolute; width: 16px; height: 16px; border-radius: 0 60% 0 60%; background: var(--vgs-accent); opacity: .7; animation: vgsSway 9s ease-in-out infinite; z-index: 1; }
@keyframes vgsSway { 0% { transform: translateX(0) translateY(-10px) rotate(0deg); } 50% { transform: translateX(40px) translateY(10px) rotate(160deg); } 100% { transform: translateX(0) translateY(-10px) rotate(320deg); } }

/* 8. Sunrise temple */
.vgs-anim-dawn { background-size: 100% 260%; animation: vgsDawn 16s ease-in-out infinite; }
@keyframes vgsDawn { 0% { background-position: 0 0; } 50% { background-position: 0 100%; } 100% { background-position: 0 0; } }
.vgs-anim-dawn .vgs-temple { position: absolute; bottom: 0; left: 0; right: 0; height: 60px; background: #241a30; clip-path: polygon(0 100%,0 70%,10% 70%,10% 50%,15% 50%,15% 30%,20% 30%,20% 50%,25% 50%,25% 70%,40% 70%,50% 20%,60% 70%,75% 70%,75% 50%,80% 50%,80% 30%,85% 30%,85% 50%,90% 50%,90% 70%,100% 70%,100% 100%); }
.vgs-anim-dawn h1, .vgs-anim-dawn .vgs-hero-subtitle, .vgs-anim-dawn .vgs-facts { color: #fff3e2; }

/* 9. Lamp of bliss */
.vgs-anim-glow .vgs-hero { background: var(--vgs-page-bg); border-bottom: 1px solid rgba(0,0,0,.06); }
.vgs-anim-glow .vgs-countdown-timer span { animation: vgsGlow 2.4s ease-in-out infinite; }
@keyframes vgsGlow { 0%, 100% { text-shadow: 0 0 0 rgba(199,142,46,0); } 50% { text-shadow: 0 0 12px rgba(199,142,46,.5); } }

/* 10. Sound is divine */
.vgs-anim-eq .vgs-eq { position: absolute; bottom: 0; left: 0; right: 0; height: 44px; display: flex; align-items: flex-end; gap: 5px; padding: 0 20px; z-index: 1; }
.vgs-anim-eq .vgs-eq span { flex: 1; background: var(--vgs-accent); border-radius: 2px 2px 0 0; animation: vgsBar 1.2s ease-in-out infinite; opacity: .55; }
.vgs-anim-eq .vgs-eq span:nth-child(2n) { animation-delay: .2s; }
.vgs-anim-eq .vgs-eq span:nth-child(3n) { animation-delay: .35s; }
@keyframes vgsBar { 0%, 100% { height: 20%; } 50% { height: 90%; } }

@media (prefers-reduced-motion: reduce) {
	.vgs-page * { animation: none !important; }
}
