/* =========================================================
   VIRAT BHARAT SAMMELAN — Full Rajasthani Cultural Theme
   ========================================================= */

@import url("https://fonts.googleapis.com/css2?family=Marcellus&family=Tiro+Devanagari+Hindi&family=Hind:wght@400;500;600&family=Cinzel:wght@600&display=swap");

:root {
  --saffron: #c9560a;
  --maroon: #6a1020;
  --maroon-dark: #4a0a18;
  --mustard: #c78f1b;
  --royal-blue: #1a3a6a;
  --deep-green: #2a5c32;
  --gold: #c9a449;
  --gold-light: #f0cc70;
  --gold-dark: #8a6a28;
  --paper: #efe2c4;
  --paper-light: #faf4e4;
  --ink: #2c1a0e;
  --sky-top: #f4a83a;
  --sky-mid: #f6c966;
  --sky-bot: #f2e4c8;
  /* new cultural accents */
  --ivory: #fdf8ee;
  --deep-maroon: #3a080e;
  --copper: #b5661b;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

/* ── Body & background ── */
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  font-family: "Hind", sans-serif;
  line-height: 1.65;
  min-height: 100vh;
  background-color: var(--paper);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath fill='%23c9a449' fill-opacity='0.09' d='M30 5l5 10 10 2-7 8 2 11-10-5-10 5 2-11-7-8 10-2z'/%3E%3C/svg%3E"),
    linear-gradient(180deg, var(--sky-top) 0%, var(--sky-mid) 14%, var(--sky-bot) 30%, var(--paper) 45%);
  background-size: 60px 60px, auto;
  background-attachment: fixed, fixed;
}

/* ── Z-layer system ── */
.rajasthan-atmosphere { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.top-banner, .heritage-nav, main, .footer { position: relative; z-index: 2; }

/* ═══════════════════════════════════════════════════════
   ATMOSPHERIC SCENE
   ═══════════════════════════════════════════════════════ */

/* Sunset gradient sky */
.rajasthan-sky {
  position: absolute;
  inset: 0 0 40%;
  background: linear-gradient(180deg,
    rgba(220, 90, 20, 0.35) 0%,
    rgba(240, 160, 50, 0.28) 25%,
    rgba(245, 200, 100, 0.18) 50%,
    transparent 100%);
}

/* Clouds */
.cloud {
  position: absolute;
  left: -25%;
  border-radius: 50%;
  animation: raj-cloud linear infinite;
  background: rgba(255, 250, 240, 0.7);
  box-shadow:
    2.5rem 0.4rem 0 -0.5rem rgba(255, 245, 225, 0.6),
    -2.2rem 0.2rem 0 -0.4rem rgba(255, 248, 230, 0.55),
    1.2rem -0.6rem 0 -0.25rem rgba(255, 250, 240, 0.5);
  filter: blur(1px);
}
.cloud--a { width: clamp(110px,20vw,220px); height: clamp(38px,6vw,58px); top:5%;  opacity:.5;  animation-duration:90s; }
.cloud--b { width: clamp(80px,15vw,170px);  height: clamp(28px,4vw,44px);  top:10%; opacity:.4;  animation-duration:120s; animation-delay:-45s; }
.cloud--c { width: clamp(130px,24vw,260px); height: clamp(44px,7vw,64px);  top:3%;  opacity:.35; animation-duration:145s; animation-delay:-72s; }
.cloud--d { width: clamp(70px,13vw,140px);  height: clamp(24px,4vw,38px);  top:15%; opacity:.45; animation-duration:76s;  animation-delay:-18s; }

@keyframes raj-cloud {
  0%   { transform: translate3d(0,0,0); }
  100% { transform: translate3d(calc(100vw + 50%),0,0); }
}

/* Sand dunes */
.sand-dunes {
  position: absolute;
  left: -10%; right: -10%; bottom: 0;
  height: min(35vh,260px);
  background:
    radial-gradient(ellipse 130% 85% at 12% 100%, rgba(196,148,72,0.6), transparent 52%),
    radial-gradient(ellipse 110% 78% at 42% 100%, rgba(184,128,60,0.55), transparent 50%),
    radial-gradient(ellipse 95%  68% at 75% 100%, rgba(168,112,52,0.5),  transparent 48%),
    radial-gradient(ellipse 80%  60% at 95% 100%, rgba(150,100,45,0.45), transparent 46%),
    linear-gradient(180deg, transparent 0%, rgba(210,158,90,0.3) 40%, rgba(196,136,64,0.7) 100%);
  animation: raj-dune 16s ease-in-out infinite;
}
@keyframes raj-dune {
  0%,100% { transform:translate3d(0,0,0); opacity:.88; }
  50%      { transform:translate3d(0,-6px,0); opacity:1; }
}

/* Sand shimmer */
.sand-shimmer {
  position: absolute;
  left:0; right:0; bottom:0;
  height: min(25vh,200px);
  background: linear-gradient(108deg, transparent 0%, rgba(255,235,175,0.22) 38%, rgba(255,248,215,0.35) 50%, rgba(255,235,175,0.18) 62%, transparent 100%);
  background-size: 220% 100%;
  animation: raj-shimmer 14s ease-in-out infinite;
}
@keyframes raj-shimmer {
  0%   { background-position:0% 50%; }
  100% { background-position:220% 50%; }
}

/* Sand grain drift */
.sand-drift {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(180,140,85,0.14) 1px, transparent 1px);
  background-size: 44px 44px;
  animation: raj-grain 20s linear infinite;
  opacity: 0.4;
  -webkit-mask-image: linear-gradient(180deg, transparent 50%, #000 82%);
  mask-image: linear-gradient(180deg, transparent 50%, #000 82%);
}
@keyframes raj-grain {
  0%   { transform:translate3d(0,0,0); }
  100% { transform:translate3d(-44px,22px,0); }
}

/* Camels */
.camel-wrap {
  position: absolute;
  bottom: min(12vh,88px);
  left: 0;
  width: clamp(110px,22vw,210px);
  animation: raj-camel-march linear infinite;
  filter: drop-shadow(2px 4px 8px rgba(44,29,18,0.4));
  opacity: 0.92;
}
.camel-wrap--2 {
  width: clamp(82px,17vw,160px);
  bottom: min(9vh,65px);
  opacity: 0.72;
  animation-duration: 115s;
  animation-delay: -58s;
}
.camel-wrap--1 { animation-duration: 88s; }

@keyframes raj-camel-march {
  0%   { transform:translate3d(-20vw,0,0); }
  14%  { transform:translate3d(8vw,-3px,0); }
  28%  { transform:translate3d(28vw,0,0); }
  42%  { transform:translate3d(48vw,-4px,0); }
  56%  { transform:translate3d(68vw,0,0); }
  70%  { transform:translate3d(88vw,-3px,0); }
  100% { transform:translate3d(calc(100vw + 25%),0,0); }
}

.camel-video {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(30vh,220px);
  object-fit: contain;
  object-position: bottom center;
  pointer-events: none;
}

/* Lotus petals (JS-generated) */
.lotus-petal {
  position: fixed;
  width: clamp(14px,2.5vw,26px);
  height: clamp(18px,3vw,32px);
  border-radius: 50% 50% 50% 0 / 60% 60% 40% 0;
  pointer-events: none;
  z-index: 1;
  animation: petal-fall linear forwards;
  opacity: 0;
}
@keyframes petal-fall {
  0%   { opacity:.85; transform:rotate(var(--rot)) translate(0,0) scale(1); }
  80%  { opacity:.6; }
  100% { opacity:0;  transform:rotate(calc(var(--rot) + 160deg)) translate(var(--drift),100vh) scale(0.7); }
}

/* Diya flame (JS-generated) */
.diya-spark {
  position: fixed;
  z-index: 1;
  pointer-events: none;
  width: 6px; height: 10px;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  background: radial-gradient(circle at 50% 30%, #fff8aa, #f5a020 60%, transparent 100%);
  animation: spark-rise 1.8s ease-out forwards;
  opacity: 0;
}
@keyframes spark-rise {
  0%   { opacity:.9; transform:translate(0,0) scale(1); }
  60%  { opacity:.55; }
  100% { opacity:0;   transform:translate(var(--sx),calc(var(--sy) - 60px)) scale(0.3); }
}

/* ═══════════════════════════════════════════════════════
   TOP BANNER
   ═══════════════════════════════════════════════════════ */
.top-banner {
  text-align: center;
  background:
    linear-gradient(90deg, var(--deep-maroon) 0%, var(--maroon) 20%, var(--copper) 50%, var(--maroon) 80%, var(--deep-maroon) 100%);
  color: #fdf7e7;
  letter-spacing: 3px;
  padding: 0.5rem 1rem;
  border-bottom: 3px solid var(--gold);
  font-family: "Marcellus", serif;
  font-size: clamp(0.72rem, 1.6vw, 0.96rem);
  position: relative;
  overflow: hidden;
}
/* top and bottom micro lines */
.top-banner::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold-light), var(--gold), var(--gold-light), transparent);
  animation: banner-shimmer 3.5s linear infinite;
}
.top-banner::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(240,204,112,0.4), transparent);
}
@keyframes banner-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.top-banner p { margin: 0; position: relative; }

/* Scrolling marquee strip */
.marquee-strip {
  background:
    linear-gradient(90deg, #1e0c06 0%, #2e1408 50%, #1e0c06 100%);
  color: #d4b070;
  font-family: "Marcellus", serif;
  font-size: 0.84rem;
  letter-spacing: 2px;
  padding: 0.32rem 0;
  overflow: hidden;
  border-top: 1px solid rgba(201,164,73,0.3);
  border-bottom: 1px solid rgba(201,164,73,0.3);
  white-space: nowrap;
}
.marquee-inner {
  display: inline-block;
  animation: marquee-scroll 30s linear infinite;
}
@keyframes marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ═══════════════════════════════════════════════════════
   NAV BAR
   ═══════════════════════════════════════════════════════ */
.heritage-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.15rem 0;
  padding: 0;
  background:
    linear-gradient(180deg, #3e1a08 0%, #2a1006 100%);
  border-top: 1px solid rgba(201,164,73,0.4);
  border-bottom: 3px solid var(--gold);
  box-shadow: 0 6px 20px rgba(44,16,8,0.45);
  position: relative;
  overflow: hidden;
}

/* subtle top shimmer line */
.heritage-nav::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-light), transparent);
  animation: banner-shimmer 5s linear infinite;
}

/* remove the old spinning ❋ after pseudo — use a real border-bottom glow instead */
.heritage-nav::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--maroon), var(--gold), var(--saffron), var(--gold), var(--maroon));
}

@keyframes spin-slow {
  0%   { transform: translateY(-50%) rotate(0deg); }
  100% { transform: translateY(-50%) rotate(360deg); }
}

.heritage-nav a {
  color: #e8d4aa;
  text-decoration: none;
  font-family: "Marcellus", serif;
  font-size: clamp(0.85rem, 1.8vw, 1rem);
  padding: 0.65rem 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-right: 1px solid rgba(201,164,73,0.15);
  position: relative;
  transition: color 0.3s, background 0.3s;
}

.heritage-nav a:last-child { border-right: none; }

/* underline indicator */
.heritage-nav a::after {
  content: "";
  position: absolute;
  bottom: 0; left: 20%; right: 20%;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transition: transform 0.35s ease;
}

.heritage-nav a:hover::after,
.heritage-nav a[aria-current="page"]::after {
  transform: scaleX(1);
}

.heritage-nav a:hover,
.heritage-nav a[aria-current="page"] {
  color: #fff8e8;
  background: rgba(201,164,73,0.12);
}

/* Decorative ornament bar between nav and main */
.ornament-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.55rem 0.5rem;
  background: linear-gradient(90deg, transparent, rgba(201,164,73,0.15), transparent);
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.ornament-bar::before,
.ornament-bar::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-dark), transparent);
}
.ornament-icon {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--gold-dark);
  font-size: 1.15rem;
  animation: ornament-pulse 3s ease-in-out infinite;
}
@keyframes ornament-pulse {
  0%,100% { opacity: 0.8; transform: scale(1); }
  50%      { opacity: 1;   transform: scale(1.08); }
}

/* ═══════════════════════════════════════════════════════
   MAIN LAYOUT
   ═══════════════════════════════════════════════════════ */
main {
  width: min(1080px, 92%);
  margin: 0 auto;
  padding: 1.5rem 0 3rem;
}

/* ═══════════════════════════════════════════════════════
   HERO SECTION
   ═══════════════════════════════════════════════════════ */
.hero { text-align: center; margin-bottom: 1.2rem; }

.scroll-box {
  padding: 2.4rem 1.8rem 2rem;
  border: 4px double var(--gold);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,164,73,0.15), transparent 60%),
    radial-gradient(ellipse at 0% 100%, rgba(106,16,32,0.06), transparent 50%),
    linear-gradient(180deg, rgba(253,247,232,0.98), rgba(240,223,186,0.94));
  box-shadow:
    0 14px 42px rgba(64,35,16,0.28),
    inset 0 0 0 6px rgba(201,164,73,0.07),
    inset 0 0 80px rgba(201,164,73,0.04);
  position: relative;
  overflow: hidden;
  animation: scroll-glow 5s ease-in-out infinite;
}
@keyframes scroll-glow {
  0%,100% { box-shadow: 0 14px 42px rgba(64,35,16,0.28), inset 0 0 0 6px rgba(201,164,73,0.07); }
  50%      { box-shadow: 0 14px 42px rgba(64,35,16,0.28), inset 0 0 0 6px rgba(201,164,73,0.2), 0 0 40px rgba(201,164,73,0.18); }
}

/* Corner ornaments */
.scroll-box::before { content: "✦"; position:absolute; top:8px; left:12px; color:var(--gold); font-size:1.4rem; animation:corner-twinkle 2.8s ease-in-out infinite; }
.scroll-box::after  { content: "✦"; position:absolute; bottom:8px; right:12px; color:var(--gold); font-size:1.4rem; animation:corner-twinkle 2.8s ease-in-out infinite 1.4s; }
@keyframes corner-twinkle {
  0%,100% { opacity:.5; transform:scale(1) rotate(0deg); }
  50%      { opacity:1;  transform:scale(1.3) rotate(45deg); }
}

/* Jaali (lattice) overlay on hero */
.scroll-box-jaali {
  position: absolute;
  inset: 0;
  opacity: 0.045;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Ccircle cx='15' cy='15' r='12' stroke='%231a3a6a' stroke-width='1' fill='none'/%3E%3Ccircle cx='15' cy='15' r='5' fill='%231a3a6a'/%3E%3Cline x1='15' y1='0' x2='15' y2='30' stroke='%231a3a6a' stroke-width='0.5'/%3E%3Cline x1='0' y1='15' x2='30' y2='15' stroke='%231a3a6a' stroke-width='0.5'/%3E%3C/svg%3E");
  pointer-events: none;
}

h1, h2, h3 { margin-top: 0; font-family: "Marcellus", serif; letter-spacing: 0.4px; }

h1 {
  font-size: clamp(2rem, 7vw, 3.6rem);
  margin-bottom: 0.1rem;
  color: var(--maroon);
  text-shadow: 2px 3px 8px rgba(106,16,32,0.25);
  font-family: "Arya", "Hind", sans-serif;
  font-weight: 700;
  animation: hero-h1-in 1.2s ease-out both;
  line-height: 1.3;
}

.h1-english {
  font-family: "Marcellus", serif;
  font-size: clamp(0.85rem, 2.2vw, 1.1rem);
  color: var(--gold-dark);
  letter-spacing: 0.18em;
  margin: 0 0 0.4rem;
  text-transform: uppercase;
}
@keyframes hero-h1-in {
  from { opacity:0; transform:translateY(-16px) scale(0.96); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}

h2 {
  color: var(--royal-blue);
  font-size: clamp(1.35rem, 3.5vw, 1.9rem);
  margin-bottom: 0.6rem;
}

.mandala-divider h2 {
  margin: 0;
}

.subheading {
  display: inline-block;
  margin-bottom: 0.35rem;
  color: var(--deep-green);
  font-weight: 600;
  letter-spacing: 2px;
  font-size: 0.9rem;
  border: 1px solid var(--deep-green);
  padding: 0.15rem 0.75rem;
  animation: badge-bounce 2s ease-in-out infinite;
}
@keyframes badge-bounce {
  0%,100% { transform:translateY(0); }
  50%      { transform:translateY(-3px); }
}

.motto {
  margin: 0.3rem 0;
  color: var(--saffron);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.5px;
}
.event-note { margin: 0.7rem 0 0; }

/* ═══════════════════════════════════════════════════════
   MANDALA DIVIDERS
   ═══════════════════════════════════════════════════════ */
.mandala-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  margin: 0.75rem 0;
  position: relative;
}
.mandala-divider::before,
.mandala-divider::after {
  content: "";
  flex: 1;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold-dark) 35%, var(--gold) 65%, transparent);
}
/* secondary thinner line below */
.mandala-divider::before {
  box-shadow: 0 2px 0 rgba(201,164,73,0.18);
}
.mandala-spin {
  font-size: 1.25rem;
  color: var(--gold);
  display: inline-block;
  animation: spin-slow 18s linear infinite;
  line-height: 1;
  filter: drop-shadow(0 0 3px rgba(201,164,73,0.4));
}
.mandala-spin--rev { animation-direction: reverse; animation-duration: 14s; }

/* ═══════════════════════════════════════════════════════
   SECTION BLOCKS
   ═══════════════════════════════════════════════════════ */
.section {
  margin-top: 1.4rem;
  padding: 1.6rem 1.4rem 1.5rem;
  background:
    radial-gradient(ellipse at 0% 0%, rgba(201,164,73,0.09), transparent 52%),
    radial-gradient(ellipse at 100% 100%, rgba(106,16,32,0.05), transparent 50%),
    rgba(253,246,232,0.93);
  border: 2px solid var(--gold-dark);
  border-top: 3px solid var(--maroon);
  position: relative;
  overflow: hidden;
  transition: box-shadow 0.4s, border-top-color 0.4s;
  box-shadow: 0 2px 12px rgba(44,16,8,0.07);
}
.section:hover {
  box-shadow: 0 6px 26px rgba(106,16,32,0.13);
  border-top-color: var(--saffron);
}
/* inner dashed frame */
.section::before {
  content: "";
  position: absolute;
  inset: 7px;
  border: 1px dashed rgba(106,16,32,0.18);
  pointer-events: none;
}
/* bottom-right corner ornament */
.section::after {
  content: "◈";
  position: absolute;
  bottom: 8px;
  right: 12px;
  color: rgba(201,164,73,0.45);
  font-size: 0.8rem;
  letter-spacing: 3px;
}

/* ── Section top ornament rule ── */
.section-rule {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
}
.section-rule::before,
.section-rule::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-dark), transparent);
}
.section-rule-icon {
  color: var(--gold-dark);
  font-size: 0.8rem;
  opacity: 0.75;
}


/* ═══════════════════════════════════════════════════════
   HIGHLIGHT / DAY CARDS
   ═══════════════════════════════════════════════════════ */
.highlight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  gap: 1.1rem;
}

.heritage-card {
  border: 2px solid var(--gold-dark);
  border-top: 3px solid var(--royal-blue);
  padding: 0.95rem;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(26,58,106,0.06), transparent 60%),
    linear-gradient(160deg, var(--ivory), #f0e4c8);
  transition: transform 0.3s cubic-bezier(0.34,1.2,0.64,1), box-shadow 0.3s;
  position: relative;
  overflow: hidden;
}
.heritage-card::after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed rgba(26,58,106,0.14);
  pointer-events: none;
}
.heritage-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 28px rgba(26,58,106,0.16);
}
.heritage-card h3 { font-family:"Marcellus",serif; color:var(--maroon); margin-top:0; }

.heritage-card--media { padding:0; overflow:hidden; }
.highlight-card-img   { width:100%; height:165px; object-fit:cover; display:block; border-bottom:2px solid var(--gold); transition:transform 0.6s ease, filter 0.4s; }
.heritage-card:hover .highlight-card-img { transform:scale(1.06); filter: brightness(1.05) saturate(1.1); }
.highlight-card-body  { padding:.7rem .8rem .9rem; }

/* ═══════════════════════════════════════════════════════
   GALLERY GRID
   ═══════════════════════════════════════════════════════ */
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem; }
.gallery-grid--photos { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }

.gallery-tile {
  position: relative;
  overflow: hidden;
  border: 3px solid var(--gold);
  aspect-ratio: 4/3;
  background: #3a3028;
}
.gallery-tile img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition: transform 0.6s ease, filter 0.4s;
}
.gallery-tile:hover img { transform:scale(1.07); filter:brightness(1.08) saturate(1.1); }
.gallery-tile span {
  position:absolute; bottom:0; left:0; right:0;
  padding:.5rem .5rem .4rem;
  background:linear-gradient(transparent,rgba(45,29,18,0.9));
  color:#fdf6e4;
  font-family:"Marcellus",serif;
  font-size:.85rem;
  text-align:center;
  transform:translateY(0);
  transition:background .3s;
}

/* ═══════════════════════════════════════════════════════
   VIDEO SECTION
   ═══════════════════════════════════════════════════════ */
.video-section {
  border: 3px double var(--gold);
  background: rgba(20,12,8,0.92);
  padding: 6px;
  max-width: 880px;
  margin: 0 auto;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  animation: video-border-glow 4s ease-in-out infinite;
}
@keyframes video-border-glow {
  0%,100% { border-color:var(--gold-dark); }
  50%      { border-color:var(--gold-light); box-shadow:0 8px 24px rgba(0,0,0,0.3), 0 0 20px rgba(201,164,73,0.18); }
}
.video-section iframe { display:block; width:100%; aspect-ratio:16/9; border:0; }
.video-section--narrow { max-width:720px; }
.youtube-placeholder {
  aspect-ratio:16/9;
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding:1rem; color:#e8dcc8; font-size:.95rem; background:#1a120c;
}
.youtube-placeholder code { font-size:.82rem; color:var(--gold); }
.is-hidden { display:none !important; }

/* YouTube facade (click-to-play) */
.yt-facade {
  display: block;
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  cursor: pointer;
  background: #000;
}
.yt-facade .yt-thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease, filter 0.4s ease;
}
.yt-facade:hover .yt-thumb-img,
.yt-facade:focus .yt-thumb-img {
  transform: scale(1.03);
  filter: brightness(0.68);
}
.yt-play-btn {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
}
.yt-play-btn svg {
  width: clamp(56px, 9vw, 88px);
  height: auto;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,0.7));
  transition: transform 0.25s ease;
}
.yt-facade:hover .yt-play-btn svg,
.yt-facade:focus .yt-play-btn svg {
  transform: scale(1.18);
}
.yt-play-label {
  color: #fff;
  font-family: "Marcellus", serif;
  font-size: clamp(0.75rem, 1.6vw, 1rem);
  letter-spacing: 0.05em;
  text-shadow: 0 1px 6px rgba(0,0,0,0.8);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.3s, transform 0.3s;
}
.yt-facade:hover .yt-play-label,
.yt-facade:focus .yt-play-label {
  opacity: 1;
  transform: translateY(0);
}

/* After click: iframe fills the slot */
.yt-facade-iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
}

/* ═══════════════════════════════════════════════════════
   HOME GALLERY GRID
   ═══════════════════════════════════════════════════════ */
.gallery-hint {
  font-size: 0.82rem;
  color: var(--gold-dark);
  margin-bottom: 0.85rem;
}

.home-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.9rem;
}

.hgal-tile {
  position: relative;
  overflow: hidden;
  border: 3px solid var(--gold);
  aspect-ratio: 4 / 3;
  background: #2a1a0a;
  cursor: pointer;
}

.hgal-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease, filter 0.4s ease;
}

.hgal-tile:hover img {
  transform: scale(1.08);
  filter: brightness(0.72) saturate(1.15);
}

.hgal-tile span {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.5rem 0.5rem 0.35rem;
  background: linear-gradient(transparent, rgba(44, 16, 8, 0.88));
  color: #fdf6e4;
  font-family: "Marcellus", serif;
  font-size: 0.82rem;
  text-align: center;
  letter-spacing: 0.04em;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.3s, transform 0.3s;
}

.hgal-tile:hover span {
  opacity: 1;
  transform: translateY(0);
}

.hgal-tile::before {
  content: "◈";
  position: absolute;
  top: 5px;
  right: 7px;
  color: rgba(201, 164, 73, 0.75);
  font-size: 0.7rem;
  z-index: 1;
  pointer-events: none;
  transition: opacity 0.3s;
}

.hgal-tile:hover::before { opacity: 0; }

/* Lightbox */
.hgal-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: modal-in 0.25s ease;
}

.hgal-lightbox[hidden] { display: none !important; }

.hgal-lb-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 4, 2, 0.92);
  cursor: pointer;
}

.hgal-lb-box {
  position: relative;
  z-index: 1;
  max-width: min(94vw, 1000px);
  border: 4px double var(--gold);
  background: #1a0c06;
  box-shadow: 0 0 60px rgba(0,0,0,0.9), 0 0 0 2px var(--maroon);
  animation: modal-box-in 0.3s cubic-bezier(0.22,1,0.36,1);
  padding: 6px;
}

.hgal-lb-img {
  display: block;
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  margin: 0 auto;
}

.hgal-lb-caption {
  text-align: center;
  color: var(--gold-light);
  font-family: "Marcellus", serif;
  font-size: 0.9rem;
  padding: 0.5rem 0.5rem 0.25rem;
  margin: 0;
  letter-spacing: 0.06em;
}

.hgal-lb-close {
  position: absolute;
  top: -18px;
  right: -18px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--maroon);
  color: #f8e9c8;
  border: 2px solid var(--gold);
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition: background 0.2s, transform 0.2s;
}

.hgal-lb-close:hover { background: var(--saffron); transform: scale(1.12); }

/* ═══════════════════════════════════════════════════════
   TIMELINE PAGE
   ═══════════════════════════════════════════════════════ */
.timeline-path {
  border-left: 4px solid var(--gold);
  padding-left: 1.35rem;
  margin-left: 0.6rem;
  position: relative;
}
.timeline-path::before {
  content: "";
  position: absolute;
  top: 0; left: -7px; bottom: 0;
  width: 10px;
  background: repeating-linear-gradient(
    180deg,
    var(--gold) 0px, var(--gold) 4px,
    transparent 4px, transparent 14px
  );
  opacity: 0.4;
}

.timeline-day { margin-bottom:1.85rem; }
.timeline-day h3 {
  color:var(--maroon); font-family:"Marcellus",serif;
  border-bottom:2px solid var(--saffron); padding-bottom:.35rem; margin-bottom:.65rem;
  padding-left:.4rem; position:relative;
}
.timeline-day h3::before {
  content:"◆";
  position:absolute; left:-1.6rem; top:0;
  color:var(--gold); font-size:.9rem;
  animation:corner-twinkle 2s ease-in-out infinite;
}

.timeline-slot {
  margin:.5rem 0;
  padding:.5rem .65rem;
  background:rgba(255,252,242,.95);
  border:1px solid rgba(178,137,56,.55);
  border-left:3px solid var(--saffron);
  transition:transform .2s, background .2s;
}
.timeline-slot:hover { transform:translateX(4px); background:rgba(255,248,228,.98); }
.timeline-slot time { display:block; font-weight:600; color:var(--maroon); margin-bottom:.15rem; font-size:.9rem; }

/* ═══════════════════════════════════════════════════════
   GALLERY PAGE
   ═══════════════════════════════════════════════════════ */
.gallery-page-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:1rem;
}
.gallery-page-grid figure { margin:0; border:3px double var(--gold); padding:4px; background:rgba(252,243,223,.9); transition:transform .3s, box-shadow .3s; }
.gallery-page-grid figure:hover { transform:scale(1.03); box-shadow:0 8px 20px rgba(106,16,32,.15); }
.gallery-page-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.gallery-page-grid figcaption { text-align:center; font-size:.85rem; padding:.4rem; color:var(--royal-blue); }

/* ═══════════════════════════════════════════════════════
   COORDINATORS
   ═══════════════════════════════════════════════════════ */
.group-photo-wrap { text-align:center; margin-bottom:1.5rem; }
.group-photo-wrap img { max-width:min(100%,640px); width:100%; border:4px double var(--gold); padding:6px; background:rgba(248,236,208,.9); }

.coord-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.2rem; }

.coord-card {
  text-align: center;
  padding: 1.1rem 0.85rem 1.3rem;
  border: 2px solid var(--gold-dark);
  border-top: 4px solid var(--maroon);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,164,73,0.1), transparent 55%),
    linear-gradient(180deg, var(--ivory), #f3e4c4);
  transition: transform 0.35s cubic-bezier(0.34,1.2,0.64,1), box-shadow 0.35s;
  position: relative;
  overflow: hidden;
}
.coord-card::before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px dashed rgba(106,16,32,0.15);
  pointer-events: none;
}
.coord-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(106,16,32,0.2);
}

.coord-photo {
  width:118px; height:118px;
  border-radius:50%; object-fit:cover;
  border:4px solid var(--gold);
  box-shadow:0 0 0 2px var(--royal-blue);
  margin:.35rem auto .65rem; display:block;
  transition:transform .4s, box-shadow .4s;
}
.coord-card:hover .coord-photo { transform:scale(1.06); box-shadow:0 0 0 3px var(--gold-light), 0 4px 16px rgba(201,164,73,.4); }

.coord-role    { color:var(--saffron); font-weight:600; margin:.25rem 0; }
.coord-contact { font-size:.9rem; margin:0; }

/* ═══════════════════════════════════════════════════════
   REGISTRATION  (detailed styles in registration.css)
   ═══════════════════════════════════════════════════════ */
.reg-box { text-align:center; max-width:540px; margin:0 auto; padding:.5rem 0 1rem; }

/* ═══════════════════════════════════════════════════════
   PEACOCK BANNER (decorative animated row)
   ═══════════════════════════════════════════════════════ */
.peacock-strip {
  display:flex;
  align-items:center;
  justify-content:center;
  gap: clamp(0.5rem,2vw,2rem);
  padding:.5rem;
  position:relative; z-index:2;
  background:linear-gradient(90deg,transparent,rgba(42,92,50,.08),transparent);
  overflow:hidden;
}
.peacock-feather {
  display:inline-block;
  font-size:clamp(1.2rem,3vw,2.2rem);
  animation:peacock-sway 4s ease-in-out infinite;
  transform-origin:bottom center;
  filter:drop-shadow(0 2px 4px rgba(42,92,50,.3));
}
.peacock-feather:nth-child(2) { animation-delay:.6s; font-size:clamp(1.5rem,4vw,2.8rem); }
.peacock-feather:nth-child(3) { animation-delay:1.2s; }
.peacock-feather:nth-child(4) { animation-delay:.3s; }
.peacock-feather:nth-child(5) { animation-delay:.9s; }
@keyframes peacock-sway {
  0%,100% { transform:rotate(-8deg); }
  50%      { transform:rotate(8deg);  }
}

/* ═══════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════ */
.footer {
  padding: 0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,164,73,0.1), transparent 60%),
    linear-gradient(180deg, #2e1208, #1a0806);
  color: #d8c89a;
  border-top: 4px solid var(--gold);
  position: relative;
  overflow: hidden;
  font-family: "Hind", sans-serif;
  letter-spacing: 0.03em;
  font-size: 0.88rem;
}
.footer::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--maroon), var(--gold), var(--saffron), var(--gold), var(--maroon));
  animation: banner-shimmer 4s linear infinite;
}
.footer::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Ccircle cx='15' cy='15' r='12' stroke='%23c9a449' stroke-width='0.8' fill='none'/%3E%3C/svg%3E");
  pointer-events: none;
}
.footer a   { color: var(--gold-light); text-decoration: none; transition: color 0.25s; }
.footer a:hover { color: #fff8e8; text-decoration: underline; }

.footer-top {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 2fr 1fr 1.4fr;
  gap: 2rem;
  max-width: 1100px;
  margin: 0 auto;
  padding: 2.5rem 2rem 1.8rem;
}

.footer-col { display: flex; flex-direction: column; gap: 0.35rem; }

.footer-heading {
  font-family: "Marcellus", serif;
  font-size: 1.15rem;
  color: var(--gold);
  margin: 0;
  letter-spacing: 0.04em;
}
.footer-affiliation {
  font-size: 0.8rem;
  color: #b09a6a;
  margin: 0;
}
.footer-event-name {
  margin: 0.6rem 0 0;
  font-family: "Marcellus", serif;
  font-size: 0.95rem;
  color: #eadbb7;
}
.footer-dates {
  margin: 0;
  font-size: 0.82rem;
  color: var(--saffron);
  font-weight: 600;
}

.footer-subheading {
  font-family: "Marcellus", serif;
  font-size: 0.95rem;
  color: var(--gold);
  margin: 0 0 0.4rem;
  letter-spacing: 0.05em;
}

.footer-link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.footer-link-list li a {
  font-size: 0.85rem;
  padding: 0.15rem 0;
  display: inline-block;
}

.footer-address {
  font-style: normal;
  font-size: 0.84rem;
  line-height: 1.5;
  color: #c8b88a;
  margin: 0;
}

.footer-college-link {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.3rem 0.9rem;
  border: 1.5px solid var(--gold);
  border-radius: 4px;
  font-family: "Marcellus", serif;
  font-size: 0.82rem;
  color: var(--gold) !important;
  transition: background 0.25s, color 0.25s;
  text-align: center;
}
.footer-college-link:hover {
  background: var(--gold);
  color: #1a0806 !important;
  text-decoration: none;
}

.footer-bottom {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 1rem 1rem;
  border-top: 1px solid rgba(201,164,73,0.2);
  font-size: 0.78rem;
  color: #8a7a58;
}
.footer-bottom p { margin: 0; }

.footer-dev {
  margin-top: 0.8rem !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
.footer-dev-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 1rem;
  border: 1px solid rgba(201,164,73,0.25);
  border-radius: 999px;
  font-size: 0.76rem;
  color: #a89060 !important;
  text-decoration: none !important;
  letter-spacing: 0.06em;
  background: rgba(201,164,73,0.05);
  transition: background 0.25s, border-color 0.25s, color 0.25s, box-shadow 0.25s;
}
.footer-dev-link:hover {
  background: rgba(201,164,73,0.14);
  border-color: var(--gold);
  color: var(--gold-light) !important;
  box-shadow: 0 0 12px rgba(201,164,73,0.18);
  text-decoration: none !important;
}
.footer-dev-avatar {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid rgba(201,164,73,0.4);
  object-fit: cover;
  flex-shrink: 0;
}
.footer-dev-label { opacity: 0.65; font-size: 0.7rem; }
.footer-dev-name  { font-family: "Marcellus", serif; letter-spacing: 0.08em; }

@media (max-width: 768px) {
  .footer-top {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 2rem 1.2rem 1.4rem;
    gap: 1.5rem;
  }
  .footer-col { align-items: center; }
  .footer-link-list { align-items: center; }
}

/* ═══════════════════════════════════════════════════════
   SCROLL REVEAL
   ═══════════════════════════════════════════════════════ */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .9s ease, transform .9s ease;
}
.reveal.visible { opacity:1; transform:translateY(0); }

/* ═══════════════════════════════════════════════════════
   UTILITY
   ═══════════════════════════════════════════════════════ */
/* ── Garjana banner image above About ── */
.garjana-banner-wrap {
  text-align: center;
  margin: 0 auto 1.4rem;
}
.garjana-banner-img {
  max-width: min(680px, 100%);
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  border-radius: 6px;
  box-shadow: 0 4px 20px rgba(64,35,16,0.18);
  /* gentle entrance */
  animation: banner-drop 0.9s ease-out both;
}
@keyframes banner-drop {
  from { opacity: 0; transform: translateY(-14px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Hero arch SVG ── */
.hero-arch {
  width: min(420px, 92%);
  margin: 0.8rem auto 0;
  opacity: 0.75;
  animation: arch-pulse 4s ease-in-out infinite;
}
.hero-arch svg { width: 100%; height: auto; }
@keyframes arch-pulse {
  0%,100% { opacity: 0.6; filter: drop-shadow(0 0 0 rgba(201,164,73,0)); }
  50%      { opacity: 1;   filter: drop-shadow(0 0 5px rgba(201,164,73,0.45)); }
}

.hero-ornament-text {
  color: var(--gold-dark);
  font-size: 1rem;
}

/* ── About pillars ── */
.about-pillars {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1.2rem;
}

.about-pillar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.9rem 1.4rem;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,164,73,0.12), transparent 60%),
    linear-gradient(180deg, var(--ivory), #f0e4c8);
  border: 2px solid var(--gold-dark);
  border-top: 3px solid var(--maroon);
  min-width: 130px;
  text-align: center;
  transition: transform 0.3s, box-shadow 0.3s;
}

.about-pillar:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 22px rgba(106,16,32,0.14);
}

.about-pillar-icon { font-size: 1.4rem; }

.about-pillar strong {
  font-family: "Marcellus", serif;
  color: var(--maroon);
  font-size: 0.95rem;
  letter-spacing: 0.05em;
}

.about-pillar span {
  font-size: 0.78rem;
  color: var(--royal-blue);
  letter-spacing: 0.06em;
}

.about-tagline {
  color: var(--royal-blue);
  font-style: italic;
}

.center-note { text-align:center; margin-top:0; }
.mt-1   { margin-top:1rem; }
.is-hidden { display:none !important; }

.heritage-nav a[aria-current="page"] {
  border-color:var(--gold);
  background:rgba(201,164,73,.2);
  color:#fff;
}

.coordinator-intro { margin-bottom:0; }

/* ─── prefers-reduced-motion ─── */
@media (prefers-reduced-motion: reduce) {
  .rajasthan-atmosphere .cloud,
  .rajasthan-atmosphere .sand-dunes,
  .rajasthan-atmosphere .sand-shimmer,
  .rajasthan-atmosphere .sand-drift,
  .rajasthan-atmosphere .camel-wrap,
  .top-banner::before,
  .marquee-inner,
  .ornament-icon,
  .peacock-feather,

  .mandala-spin,
  .scroll-box,
  .subheading,
  .heritage-nav::before,
  .heritage-nav::after,
  .section::before { animation: none !important; }
}

/* ─── Responsive ─── */
@media (max-width:640px) {
  .heritage-nav { gap:.15rem; }
  .heritage-nav a { padding:.28rem .5rem; font-size:.8rem; }
  .heritage-nav::before, .heritage-nav::after { display:none; }
}
