/* Unconfirmed details are intentionally absent. */
.event-chapter-map, #venue-map { display: none; }
[hidden] { display: none !important; }


/* Text-free Ganesha blessing, animated with small local artwork assets. */
#gate { background: #f8edda; }
.ganesha-intro { position: absolute; inset: 0; overflow: hidden; pointer-events: none; isolation: isolate; }
.intro-paper { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 42%, #fff9eb 0%, #f8edda 58%, #e9d3ae 100%); }
.intro-paper::after { content: ''; position: absolute; inset: 0; background: url('assets/paper-texture.webp') repeat; opacity: .22; mix-blend-mode: multiply; }
.intro-arch { position: absolute; width: min(78vw, 650px); height: 112%; top: 13%; left: 50%; transform: translateX(-50%); border: 1px solid #ba965b66; border-radius: 50% 50% 0 0 / 28% 28% 0 0; background: #fff6e347; box-shadow: 0 0 0 9px #f8edda, 0 0 0 10px #ba965b24; }
.intro-mandala { position: absolute; width: clamp(240px, 48vw, 660px); height: auto; opacity: .7; animation: mandala-turn 100s linear infinite; }
.intro-mandala-top { top: 0; left: 50%; translate: -50% -58%; }
.intro-mandala-bottom { bottom: 0; left: 50%; translate: -50% 64%; animation-direction: reverse; }
.intro-mandala-side { width: clamp(200px, 32vw, 430px); right: 0; top: 54%; translate: 65% -50%; opacity: .22; animation-duration: 130s; }
.intro-emblem { position: absolute; width: min(65vw, 420px); aspect-ratio: 1; left: 50%; top: 42%; transform: translate(-50%, -50%); animation: blessing-reveal 1.8s ease-out both; }
.intro-emblem > img { display: block; position: relative; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 3px 12px #a57c3520); animation: ganpati-float 7s 1.8s ease-in-out infinite; }
.intro-halo { position: absolute; inset: -14%; border-radius: 50%; background: radial-gradient(circle, #fffdf194 0%, #f6df9d33 45%, transparent 68%); animation: halo-breathe 6s ease-in-out infinite; }
.intro-enter { position: absolute; inset: 0; z-index: 8; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.intro-enter:focus-visible { outline: 2px solid #ad8247; outline-offset: -12px; border-radius: 0; }
.intro-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.intro-petals i { position: absolute; top: -10%; left: 14%; width: 13px; height: 19px; border-radius: 75% 15% 65% 30%; background: radial-gradient(ellipse at 28% 22%, #f9d7d0 0%, #e5a59e 45%, #bf747a 100%); box-shadow: inset -1px -1px 2px #a9616955; opacity: .8; animation: petal-drift 16s linear infinite; }
.intro-petals i:nth-child(2) { left: 32%; animation-delay: -5s; animation-duration: 22s; }
.intro-petals i:nth-child(3) { left: 69%; animation-delay: -12s; animation-duration: 19s; }
.intro-petals i:nth-child(4) { left: 84%; animation-delay: -8s; animation-duration: 24s; }
.intro-petals i:nth-child(5) { left: 53%; animation-delay: -16s; animation-duration: 27s; }
@keyframes mandala-turn { to { rotate: 360deg; } }
@keyframes blessing-reveal { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
@keyframes halo-breathe { 50% { opacity: .5; scale: 1.06; } }
@keyframes petal-drift { to { transform: translate(40px, 115svh) rotate(210deg); } }
#gate[hidden] .ganesha-intro * { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .ganesha-intro, .ganesha-intro * { animation: none !important; } }

.intro-mantra { position: absolute; top: calc(42% + min(32.5vw, 210px)); left: 50%; transform: translateX(-50%); width: 90%; margin: 12px 0 0; text-align: center; font-family: 'Pinyon Script','Cormorant Garamond',Georgia,serif; font-size: clamp(33px, 5.6vw, 51px); line-height: 1.35; font-weight: 400; color: #781839; animation: blessing-reveal 1.8s .3s ease-out both; }
#gate .intro-garlands { display: block; z-index: 3; }
#gate .intro-garlands img { animation-play-state: running; width: min(26vw, 330px); height: auto; max-width: none; object-position: top; }
#gate .intro-garlands img:first-child { top: -12px; left: -30px; }
#gate .intro-garlands img:last-child { top: -12px; right: -30px; scale: -1 1; }
@media (orientation: portrait) {
  /* Follow the centered cover crop of slide 2's 1080 × 1920 palace. */
  #gate .intro-garlands img { width: max(44vw, 23svh); }
  #gate .intro-garlands img:first-child { top: -50px; left: calc((100vw - max(100vw, 56.25svh)) / 2 - 18px); }
  #gate .intro-garlands img:last-child { top: -50px; right: calc((100vw - max(100vw, 56.25svh)) / 2 - 18px); }
}
#gate[hidden] .intro-garlands img { animation-play-state: paused; }

.intro-mantra > span { display: block; text-align: center; }

/* A quiet lift of the whole figure; the face and proportions remain unchanged. */
@keyframes ganpati-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

#gate .lotus-touch { inset: auto; left: 50%; top: calc(42% + min(26vw, 168px)); transform: translateX(-50%); width: clamp(74px, 15vw, 108px); height: auto; aspect-ratio: 160 / 95; padding: 0; border: 0; background: transparent; border-radius: 50%; filter: drop-shadow(0 0 9px #f2c97e77); }
.lotus-touch img { display: block; position: absolute; left: 0; top: 50%; translate: 0 -50%; width: 100%; height: auto; object-fit: contain; animation: ganpati-float 7s 1.8s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .lotus-touch img { animation: none; } }
#gate .lotus-touch:focus, #gate .lotus-touch:focus-visible { outline: none; }
.lotus-note { position: absolute; top: calc(100% + 3px); left: 50%; transform: translateX(-50%); font: 400 11px/1.4 Jost, sans-serif; letter-spacing: .12em; color: #916a42; }
#gate .lotus-touch:focus-visible .lotus-note { text-decoration: underline; text-underline-offset: 4px; }
.intro-mantra { margin-top: 42px; }
.lotus-golden-veil { position: fixed; inset: 0; z-index: 130; pointer-events: auto; background: radial-gradient(circle at var(--lotus-x) var(--lotus-y), #fffce9 0%, #ffedb7 28%, #f5cf79 65%, #e7b65c 100%); }
