/* ==========================================================================
   COMPONENTS
   ========================================================================== */

/* ---- Layout ------------------------------------------------------------ */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.section { position: relative; padding-block: var(--section-y); overflow: hidden; }
.section--paper  { background: var(--paper); }
.section--white  { background: #fff; }
.section--mist   { background: var(--mist); }
.section--violet { background: var(--deep-violet); color: #fff; }
.section--saffron{ background: var(--rang-saffron); color: var(--ink); }
.section--stage  { background: var(--ink); color: #fff; }
.on-dark { color: #fff; }
.section--violet .muted, .section--stage .muted { color: rgba(255,255,255,.72); }
.muted { color: var(--c-text-muted); }

.section-head { max-width: 46rem; margin-bottom: var(--sp-7); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-head p { font-size: var(--fs-lg); color: var(--c-text-muted); }
.section--violet .section-head p, .section--stage .section-head p { color: rgba(255,255,255,.78); }

.eyebrow {
  display: inline-flex; align-items: center; gap: 0.7rem;
  font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  margin-bottom: var(--sp-4);
}
:root[lang="mr"] .eyebrow { letter-spacing: 0.02em; text-transform: none; font-size: var(--fs-sm); }
.eyebrow::before { content: ""; width: 2.2rem; height: 3px; border-radius: 3px; background: var(--rang-saffron); }

.grid { display: grid; gap: var(--sp-5); }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }

/* ---- Buttons ----------------------------------------------------------- */
.btn {
  --btn-bg: var(--rang-saffron); --btn-fg: var(--ink); --btn-bd: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  min-height: 3rem; padding: 0.7rem 1.6rem;
  background: var(--btn-bg); color: var(--btn-fg); border: 2px solid var(--btn-bd);
  border-radius: var(--r-pill); font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none;
  transition: transform .18s var(--ease), background .18s, box-shadow .18s, color .18s;
}
.btn:hover { --btn-bg: var(--sun-marigold); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn:active { transform: translateY(0); }
.btn svg { width: 1.1em; height: 1.1em; }
.btn--dark    { --btn-bg: var(--ink); --btn-fg: #fff; }
.btn--dark:hover { --btn-bg: #26222b; }
.btn--outline { --btn-bg: transparent; --btn-fg: currentColor; --btn-bd: currentColor; }
.btn--outline:hover { --btn-bg: var(--ink); --btn-fg: #fff; --btn-bd: var(--ink); }
.on-dark .btn--outline:hover, .section--stage .btn--outline:hover, .section--violet .btn--outline:hover { --btn-bg: #fff; --btn-fg: var(--ink); --btn-bd: #fff; }
.btn--lg { min-height: 3.4rem; padding-inline: 2rem; font-size: 1.0625rem; }
.btn--sm { min-height: 2.5rem; padding: 0.4rem 1.1rem; font-size: 0.9375rem; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .5; pointer-events: none; }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--sp-3); }

/* ---- Chips / badges ---------------------------------------------------- */
.chip {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .25rem .8rem; border-radius: var(--r-pill);
  font-size: var(--fs-xs); font-weight: 600; background: var(--mist); color: var(--ink); white-space: nowrap;
}
.chip--saffron { background: #FFEFC2; }
.chip--open  { background: #d8f3e2; color: #0d5a2e; }
.chip--soon  { background: #FFEFC2; color: #6a4700; }
.chip--done  { background: var(--mist); color: var(--slate); }
.chip--dark  { background: rgba(255,255,255,.14); color: #fff; }
.chip .dot { width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }

/* ---- Brand ornaments --------------------------------------------------- */
.shape { display: block; }
.shape--saffron { color: var(--rang-saffron); }
.shape--violet  { color: var(--setu-violet); }
.shape--rose    { color: var(--rani-rose); }
.shape--deep    { color: var(--deep-violet); }
.orn { position: absolute; pointer-events: none; }
.arc {
  position: absolute; border-radius: 50%; pointer-events: none; aspect-ratio: 1;
  background: var(--arc-gradient);
  --arc-w: 22px;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - var(--arc-w)), #000 calc(100% - var(--arc-w) + 1px));
          mask: radial-gradient(farthest-side, transparent calc(100% - var(--arc-w)), #000 calc(100% - var(--arc-w) + 1px));
}
.dot-saffron { position: absolute; border-radius: 50%; background: var(--rang-saffron); pointer-events: none; }

/* Arch divider — echoes the bridge. Place at the bottom of a section. */
.arch-bottom { position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(24px, 4vw, 56px); pointer-events: none; }
.arch-bottom svg { width: 100%; height: 100%; }

/* ---- Header ------------------------------------------------------------ */
.site-header {
  position: sticky; top: 0; z-index: 100; height: var(--header-h);
  background: var(--paper);
  border-bottom: 1px solid var(--c-line);
}
.site-header .container { height: 100%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--sp-3); }
.brand { display: flex; align-items: center; justify-self: center; text-decoration: none; }
.menu-btn { justify-self: start; }
.lang-toggle--header { justify-self: end; }
.brand img { height: 60px; width: auto; }   /* logo standards: min 64px wide on screen (60px tall ≈ 66px wide) */
.nav { display: none; align-items: center; gap: .2rem; }
.nav a:not(.btn) {
  padding: .5rem .85rem; border-radius: var(--r-pill); text-decoration: none; font-weight: 500; font-size: 1rem;
  transition: background .15s;
}
.nav a:not(.btn):hover { background: rgba(129, 117, 171, .16); }
.nav a[aria-current="page"]:not(.btn) { background: var(--ink); color: #fff; }
.nav .btn { margin-left: var(--sp-3); }

.lang-toggle { display: inline-flex; padding: 3px; border-radius: var(--r-pill); background: var(--mist); border: 0; }
.lang-toggle button {
  border: 0; background: transparent; padding: .3rem .8rem; border-radius: var(--r-pill);
  font-size: .875rem; font-weight: 600; min-height: 2rem; color: var(--slate);
}
html[data-lang="mr"] .lang-toggle button[data-set-lang="mr"],
html[data-lang="en"] .lang-toggle button[data-set-lang="en"] { background: var(--ink); color: #fff; }

.menu-btn { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: var(--ink); color: #fff; }
.menu-btn svg { width: 1.3rem; height: 1.3rem; }

.drawer {
  position: fixed; inset: 0; z-index: 150; background: var(--ink); color: #fff;
  padding: calc(var(--header-h) + 8px) var(--gutter) var(--sp-6);
  display: flex; flex-direction: column; gap: var(--sp-2);
  transform: translateY(-100%); visibility: hidden; transition: transform .35s var(--ease), visibility .35s;
  overflow-y: auto;
}
.drawer.is-open { transform: none; visibility: visible; }
.drawer a:not(.btn) { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.7rem; padding: .55rem 0; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.12); }
.drawer .btn { margin-top: var(--sp-5); }
.drawer__close { position: absolute; top: 12px; left: var(--gutter); background: #fff; color: var(--ink); width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; display: grid; place-items: center; }
.drawer__lang { margin-top: var(--sp-5); }
.drawer .lang-toggle { background: rgba(255,255,255,.14); }
.drawer .lang-toggle button { color: #fff; }
html[data-lang="mr"] .drawer .lang-toggle button[data-set-lang="mr"],
html[data-lang="en"] .drawer .lang-toggle button[data-set-lang="en"] { background: var(--rang-saffron); color: var(--ink); }

@media (min-width: 1020px) {
  .site-header .container { display: flex; gap: var(--sp-5); }
  .brand { justify-self: auto; margin-right: auto; }
  .nav { display: flex; }
  .menu-btn, .lang-toggle--header { display: none; }
  .drawer { display: none; }
}
/* Mobile / tablet: menu button left, logo centred, language switch right */
@media (max-width: 1019px) { .nav .lang-toggle { display: none; } .lang-toggle button { padding: .3rem .7rem; } }

/* ---- Hero -------------------------------------------------------------- */
.hero { position: relative; overflow: hidden; padding-block: clamp(2.5rem, 6vw, 5.5rem) clamp(4.5rem, 8vw, 7rem); }
.hero__grid { position: relative; display: grid; gap: var(--sp-7); align-items: center; }
@media (min-width: 900px) { .hero__grid { grid-template-columns: 1.15fr 0.85fr; } }
.hero h1 { margin-bottom: .45em; }
.hero h1 em { font-style: normal; background: linear-gradient(transparent 62%, var(--rang-saffron) 62%, var(--rang-saffron) 92%, transparent 92%); padding-inline: .1em; }
.hero__lead { font-size: var(--fs-lg); color: var(--c-text-muted); max-width: 34rem; margin-bottom: var(--sp-6); }
.hero__meta { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-6); }
.hero__visual { position: relative; display: grid; place-items: center; }
@media (min-width: 900px) { .hero__visual { min-height: 18rem; } }
@media (max-width: 899px) { .hero__logo { width: min(70%, 15rem); } .hero__grid { gap: var(--sp-5); } }
.hero__logo { position: relative; width: min(100%, 22rem); }
.hero__logo img { width: 100%; height: auto; }
.hero__ring { right: -10%; top: -34%; width: min(78vw, 44rem); --arc-w: clamp(14px, 2vw, 28px); opacity: .8; }

/* ---- Key dates strip --------------------------------------------------- */
.dates-wrap { position: relative; z-index: 5; margin-top: calc(-1 * clamp(2.2rem, 4vw, 3.4rem)); padding-bottom: var(--sp-7); }
.dates { display: grid; gap: 0; background: #fff; border-radius: var(--r-xl); box-shadow: var(--shadow-lg); overflow: hidden; grid-template-columns: 1fr; }
@media (min-width: 640px)  { .dates { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .dates { grid-template-columns: repeat(5, 1fr); } }
.date-card { padding: var(--sp-5); border-bottom: 1px solid var(--c-line); position: relative; }
@media (min-width: 1020px) { .date-card { border-bottom: 0; border-right: 1px solid var(--c-line); } .date-card:last-child { border-right: 0; } }
.date-card__label { font-size: var(--fs-sm); color: var(--c-text-muted); margin-bottom: .3rem; display: block; line-height: 1.4; }
.date-card__date { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.35rem; line-height: 1.3; display: block; }
.date-card--now { background: var(--rang-saffron); }
.date-card--now .date-card__label { color: rgba(11,10,12,.75); }
.date-card .chip { margin-top: .6rem; }

/* ---- Countdown --------------------------------------------------------- */
.countdown { display: inline-flex; gap: var(--sp-3); }
.countdown__unit { min-width: 4.4rem; padding: .7rem .6rem .55rem; border-radius: var(--r-md); background: var(--ink); color: #fff; text-align: center; }
.countdown__unit b { display: block; font-family: var(--font-display); font-size: 1.9rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.countdown__unit span { font-size: .75rem; opacity: .75; }
.countdown--light .countdown__unit { background: rgba(255,255,255,.12); }
.countdown--saffron .countdown__unit { background: var(--rang-saffron); color: var(--ink); }
.countdown--saffron .countdown__unit span { opacity: .8; }

/* ---- Steps ------------------------------------------------------------- */
.steps { display: grid; gap: var(--sp-5); counter-reset: step; }
@media (min-width: 820px) { .steps { grid-template-columns: repeat(3, 1fr); } }
.step { position: relative; padding: var(--sp-6) var(--sp-5) var(--sp-5); background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow-sm); border: 1px solid var(--c-line); }
.step__num {
  font-family: var(--font-display); font-weight: 800; font-size: 4.2rem; line-height: 1;
  color: transparent; -webkit-text-stroke: 2px var(--setu-violet); margin-bottom: var(--sp-3); display: block;
}
.step:nth-child(2) .step__num { -webkit-text-stroke-color: var(--sun-marigold); }
.step:nth-child(3) .step__num { -webkit-text-stroke-color: var(--rani-rose); }
.step h3 { font-size: var(--fs-h4); }
.step p { color: var(--c-text-muted); font-size: 1rem; }
.step__icon { position: absolute; top: var(--sp-5); right: var(--sp-5); width: 2.6rem; height: 2.6rem; }

/* ---- Split / about ----------------------------------------------------- */
.split { display: grid; gap: var(--sp-7); align-items: center; }
@media (min-width: 900px) { .split { grid-template-columns: 1fr 1fr; } .split--reverse > :first-child { order: 2; } }
.photo-ph {
  position: relative; aspect-ratio: 4 / 3.4; border-radius: var(--r-xl); overflow: hidden;
  background:
    linear-gradient(135deg, rgba(129,117,171,.9), rgba(94,82,127,.95)),
    var(--setu-violet);
  display: grid; place-items: center; color: rgba(255,255,255,.85); font-size: var(--fs-sm); text-align: center; padding: var(--sp-5);
}
.photo-ph::before { content: ""; position: absolute; width: 70%; aspect-ratio: 1; right: -18%; bottom: -30%; border-radius: 50%; border: 22px solid var(--rang-saffron); opacity: .9; }
.photo-ph > div { position: relative; z-index: 1; }
.photo-ph svg { width: 3rem; height: 3rem; margin: 0 auto .6rem; opacity: .8; }
.photo-ph--tall { aspect-ratio: 3 / 4; }
.photo-ph--rose { background: linear-gradient(135deg, var(--festival-coral), var(--rani-rose)); }
.photo-ph--rose::before { border-color: var(--rang-saffron); }

.checklist { list-style: none; display: grid; gap: .7rem; margin-top: var(--sp-5); }
.checklist li { display: flex; gap: .8rem; align-items: flex-start; }
.checklist li::before { content: ""; flex: none; width: 1.4rem; height: 1.4rem; margin-top: .25rem; border-radius: 50%; background: var(--rang-saffron) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0A0C' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat; }

/* ---- Cards ------------------------------------------------------------- */
.card { background: #fff; border-radius: var(--r-lg); border: 1px solid var(--c-line); padding: var(--sp-5); box-shadow: var(--shadow-sm); }
.card--flat { box-shadow: none; }
.card h3 { font-size: var(--fs-h4); }

/* ---- Prizes ------------------------------------------------------------ */
.prizes { display: grid; gap: var(--sp-5); align-items: end; }
@media (min-width: 820px) { .prizes { grid-template-columns: 1fr 1.15fr 1fr; } }
.prize { position: relative; border-radius: var(--r-xl); padding: var(--sp-6) var(--sp-5); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); text-align: center; overflow: hidden; }
.prize__rank { font-size: var(--fs-sm); letter-spacing: .08em; text-transform: uppercase; opacity: .85; font-weight: 600; }
:root[lang="mr"] .prize__rank { text-transform: none; letter-spacing: 0; }
.prize__amount { font-family: var(--font-display); font-weight: var(--display-weight); font-size: clamp(2rem, 1.4rem + 2vw, 3rem); line-height: 1.2; margin: .4rem 0 .6rem; }
.prize__note { font-size: var(--fs-sm); opacity: .8; }
.prize--first { background: var(--rang-saffron); color: var(--ink); border-color: transparent; padding-block: calc(var(--sp-6) + 1.2rem); box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.prize--first .prize__note { opacity: .85; }
@media (max-width: 819px) { .prize--first { order: -1; } }
.medal { width: 3.2rem; height: 3.2rem; margin: 0 auto var(--sp-3); }

/* ---- Stage band (finale teaser) --------------------------------------- */
.stage-band { position: relative; }
.stage-band::before { content: ""; position: absolute; inset: 0; background: radial-gradient(50rem 28rem at 15% 0%, rgba(129,117,171,.5), transparent 60%), radial-gradient(40rem 24rem at 100% 100%, rgba(217,79,138,.35), transparent 60%); pointer-events: none; }
.stage-band .container { position: relative; }
.info-tiles { display: grid; gap: var(--sp-4); margin-top: var(--sp-6); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.info-tile { padding: var(--sp-4) var(--sp-5); border-radius: var(--r-lg); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); }
.info-tile small { display: block; font-size: var(--fs-sm); opacity: .7; }
.info-tile b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.25rem; line-height: 1.4; }
.live-badge { display: inline-flex; align-items: center; gap: .5rem; background: #FF0033; color: #fff; padding: .3rem .9rem; border-radius: var(--r-pill); font-weight: 700; font-size: .8125rem; }
.live-badge::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: #fff; animation: pulse 1.6s infinite; }
@keyframes pulse { 50% { opacity: .3; } }
.video-ph { position: relative; aspect-ratio: 16/9; border-radius: var(--r-xl); background: linear-gradient(135deg, #1c1722, #2c2540); border: 1px solid rgba(255,255,255,.14); display: grid; place-items: center; overflow: hidden; }
.video-ph .play { width: 5rem; height: 5rem; border-radius: 50%; background: var(--rang-saffron); color: var(--ink); display: grid; place-items: center; box-shadow: 0 0 0 12px rgba(255,185,0,.2); }
.video-ph .play svg { width: 2rem; height: 2rem; margin-left: .2rem; }
.video-ph span.tag { position: absolute; left: var(--sp-4); bottom: var(--sp-4); }

/* ---- FAQ --------------------------------------------------------------- */
.faq { display: grid; gap: var(--sp-3); }
.faq details { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md); transition: box-shadow .2s, border-color .2s; }
.faq details[open] { box-shadow: var(--shadow-md); border-color: var(--setu-violet); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: var(--sp-4); padding: 1.1rem 1.4rem; font-weight: 600; line-height: 1.45; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; margin-left: auto; flex: none; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: var(--mist); font-size: 1.4rem; line-height: 1; transition: transform .25s var(--ease), background .2s; }
.faq details[open] summary::after { content: "–"; background: var(--rang-saffron); transform: rotate(180deg); }
.faq .faq__body { padding: 0 1.4rem 1.3rem; color: var(--c-text-muted); font-size: 1.0625rem; }
.faq-cat { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-6); }
.faq-cat a { text-decoration: none; padding: .5rem 1.1rem; border-radius: var(--r-pill); background: #fff; border: 1px solid var(--c-line-strong); font-weight: 500; font-size: 1rem; }
.faq-cat a:hover, .faq-cat a.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---- Page head (inner pages) ------------------------------------------ */
.page-head { position: relative; background: var(--deep-violet); color: #fff; padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(3.5rem, 7vw, 5.5rem); overflow: hidden; }
.page-head .container { position: relative; z-index: 2; }
.page-head h1 { font-size: var(--fs-h1); margin-bottom: .3em; }
.page-head p { font-size: var(--fs-lg); color: rgba(255,255,255,.82); max-width: 38rem; }
.crumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: var(--fs-sm); margin-bottom: var(--sp-4); color: rgba(255,255,255,.75); list-style: none; }
.crumbs li + li::before { content: "/"; margin-right: .5rem; opacity: .6; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.page-head .arc { right: -6%; top: -60%; width: min(60vw, 34rem); --arc-w: clamp(18px, 2.4vw, 34px); opacity: .85; }
.page-head .shape-orn { right: 12%; bottom: 14%; width: clamp(32px, 5vw, 58px); }
@media (max-width: 640px) { .page-head .shape-orn { top: 1.2rem; bottom: auto; right: 1.2rem; opacity: .9; } .page-head .crumbs { padding-right: 3.5rem; } }

/* ---- Rules ------------------------------------------------------------- */
.rules-layout { display: grid; gap: var(--sp-6); }
@media (min-width: 960px) { .rules-layout { grid-template-columns: 17rem 1fr; gap: var(--sp-8); align-items: start; } }
.toc { position: sticky; top: calc(var(--header-h) + 20px); background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--sp-4); }
.toc h2 { font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: .1em; color: var(--c-text-muted); margin: .2rem .6rem .6rem; font-family: var(--font-body); font-weight: 600; }
:root[lang="mr"] .toc h2 { text-transform: none; letter-spacing: 0; }
.toc ol { list-style: none; display: grid; gap: 2px; }
.toc a { display: flex; gap: .7rem; padding: .5rem .7rem; border-radius: var(--r-sm); text-decoration: none; font-size: 1rem; line-height: 1.4; }
.toc a span.n { color: var(--c-text-muted); font-variant-numeric: tabular-nums; }
.toc a:hover { background: var(--mist); }
.toc a.is-active { background: var(--rang-saffron); font-weight: 600; }
.toc a.is-active span.n { color: var(--ink); }
@media (max-width: 959px) { .toc { position: static; } .toc ol { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); } }

.glance { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); margin-bottom: var(--sp-7); }
.glance div { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); }
.glance small { display: block; color: var(--c-text-muted); font-size: var(--fs-sm); }
.glance b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.4rem; line-height: 1.4; }
.glance div:first-child { background: var(--rang-saffron); border-color: transparent; }
.glance div:first-child small { color: rgba(11,10,12,.75); }

.rule { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: clamp(1.4rem, 3vw, 2.4rem); margin-bottom: var(--sp-5); position: relative; }
.rule__head { display: flex; align-items: center; gap: var(--sp-4); margin-bottom: var(--sp-4); }
.rule__num { flex: none; width: 3rem; height: 3rem; border-radius: 50% 50% 50% 8px; background: var(--setu-violet); color: var(--ink); display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; }
.rule:nth-of-type(3n+2) .rule__num { background: var(--rang-saffron); }
.rule:nth-of-type(3n) .rule__num { background: var(--festival-coral); }
.rule h2 { font-size: var(--fs-h3); margin: 0; }
.rule ul { padding-left: 1.3rem; display: grid; gap: .5rem; margin: 1rem 0; }
.rule ul li::marker { color: var(--setu-violet); }
.callout { border-left: 5px solid var(--rang-saffron); background: #FFF3CF; border-radius: 0 var(--r-md) var(--r-md) 0; padding: 1rem 1.3rem; margin-top: var(--sp-4); font-size: 1.0625rem; }

/* ---- Timeline ---------------------------------------------------------- */
.tl { list-style: none; position: relative; display: grid; gap: var(--sp-5); padding-left: 2.2rem; }
.tl::before { content: ""; position: absolute; left: .55rem; top: .6rem; bottom: .6rem; width: 3px; background: linear-gradient(var(--rang-saffron), var(--setu-violet) 55%, var(--rani-rose)); border-radius: 3px; }
.tl__item { position: relative; }
.tl__item::before { content: ""; position: absolute; left: -2.2rem; top: 1.45rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #fff; border: 4px solid var(--setu-violet); }
.tl__item.is-done::before { background: var(--setu-violet); }
.tl__item.is-now::before { background: var(--rang-saffron); border-color: var(--ink); box-shadow: 0 0 0 7px rgba(255,185,0,.35); }
.tl__card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); display: grid; gap: .3rem var(--sp-5); }
.tl__item.is-now .tl__card { border-color: var(--ink); box-shadow: var(--shadow-md); }
.tl__date { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.3rem; line-height: 1.35; }
.tl__title { font-weight: 600; }
.tl__card p { color: var(--c-text-muted); font-size: 1rem; margin: 0; }
.tl__card .chip { justify-self: start; }
@media (min-width: 820px) {
  .tl { padding-left: 0; }
  .tl::before { left: 50%; transform: translateX(-50%); }
  .tl__item { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--sp-7); }
  .tl__item::before { left: 50%; transform: translateX(-50%); top: 1.5rem; z-index: 2; }
  .tl__item:nth-child(odd) .tl__card { grid-column: 1; text-align: right; }
  .tl__item:nth-child(even) .tl__card { grid-column: 2; }
  .tl__item:nth-child(odd) .tl__card .chip { justify-self: end; }
}

/* ---- Judges / finalists ------------------------------------------------ */
.person { text-align: center; }
.person__avatar { width: 8.5rem; aspect-ratio: 1; border-radius: 50%; margin: 0 auto var(--sp-4); background: linear-gradient(135deg, var(--setu-violet), var(--rani-rose)); display: grid; place-items: center; color: rgba(255,255,255,.9); position: relative; }
.person__avatar svg { width: 3.4rem; height: 3.4rem; }
.person__avatar::after { content: ""; position: absolute; right: .2rem; bottom: .4rem; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--rang-saffron); border: 3px solid var(--paper); }
.person h3 { font-size: var(--fs-h4); margin-bottom: .2em; }
.person p { color: var(--c-text-muted); font-size: 1rem; }

.finalists { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr)); }
.finalist { background: #fff; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-line); transition: transform .2s var(--ease), box-shadow .2s; }
.finalist:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.finalist__poster { position: relative; aspect-ratio: 3/4; display: grid; place-items: center; color: rgba(255,255,255,.9); background: linear-gradient(160deg, var(--deep-violet), var(--setu-violet)); }
.finalist:nth-child(2) .finalist__poster { background: linear-gradient(160deg, var(--festival-coral), var(--rani-rose)); }
.finalist:nth-child(3) .finalist__poster { background: linear-gradient(160deg, var(--sun-marigold), var(--festival-coral)); }
.finalist:nth-child(4) .finalist__poster { background: linear-gradient(160deg, #3d3560, var(--deep-violet)); }
.finalist:nth-child(5) .finalist__poster { background: linear-gradient(160deg, var(--rani-rose), var(--setu-violet)); }
.finalist__poster svg { width: 3rem; height: 3rem; opacity: .75; }
.finalist__rank { position: absolute; top: .8rem; left: .8rem; }
.finalist__body { padding: var(--sp-4); }
.finalist__body h3 { font-size: 1.1rem; margin-bottom: .15em; }
.finalist__body p { color: var(--c-text-muted); font-size: var(--fs-sm); margin: 0; line-height: 1.5; }

/* ---- Forms (design preview only) -------------------------------------- */
.form-card { background: #fff; border-radius: var(--r-xl); border: 1px solid var(--c-line); box-shadow: var(--shadow-md); overflow: hidden; }
.form-card__head { padding: var(--sp-5) clamp(1.2rem, 3vw, 2.2rem); background: var(--mist); }
.form-card__body { padding: clamp(1.2rem, 3vw, 2.2rem); }
.form-card__foot { padding: var(--sp-4) clamp(1.2rem, 3vw, 2.2rem); border-top: 1px solid var(--c-line); display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.stepper { display: flex; gap: var(--sp-2); list-style: none; align-items: center; flex-wrap: wrap; }
.stepper li { display: flex; align-items: center; gap: .6rem; font-size: var(--fs-sm); font-weight: 600; color: var(--c-text-muted); }
.stepper li b { width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--c-line-strong); font-size: .9rem; }
.stepper li.is-current { color: var(--ink); }
.stepper li.is-current b { background: var(--rang-saffron); border-color: var(--ink); }
.stepper li + li::before { content: ""; width: 1.6rem; height: 2px; background: var(--c-line-strong); }
@media (max-width: 640px) { .stepper { flex-wrap: nowrap; gap: var(--sp-1); } .stepper li:not(.is-current) span { display: none; } .stepper li + li::before { width: .9rem; } .stepper li { gap: .4rem; } }
.form-grid { display: grid; gap: var(--sp-5); }
@media (min-width: 700px) { .form-grid { grid-template-columns: 1fr 1fr; } .form-grid .full { grid-column: 1 / -1; } }
.field label { display: block; font-weight: 600; font-size: 1rem; margin-bottom: .4rem; }
.field label .req { color: var(--festival-coral); }
.field .hint { font-size: var(--fs-sm); color: var(--c-text-muted); margin-top: .35rem; display: block; line-height: 1.5; }
.input {
  width: 100%; min-height: 3.1rem; padding: .65rem 1rem; background: #fff; border: 2px solid var(--c-line-strong); border-radius: var(--r-md);
  font-size: 1.0625rem; transition: border-color .15s, box-shadow .15s;
}
.input:hover { border-color: var(--slate); }
.input:focus { outline: none; border-color: var(--deep-violet); box-shadow: 0 0 0 4px rgba(129,117,171,.3); }
.input::placeholder { color: #9b94a3; }
select.input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0A0C' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .9rem center; background-size: 1.2rem; padding-right: 2.6rem; }
.check { display: flex; gap: .8rem; align-items: flex-start; font-size: 1rem; }
.check input { flex: none; width: 1.4rem; height: 1.4rem; margin-top: .25rem; accent-color: var(--deep-violet); }
.preview-banner { display: flex; gap: .7rem; align-items: center; background: #FFF3CF; border-bottom: 1px solid #f1d27a; padding: .7rem var(--gutter); font-size: var(--fs-sm); justify-content: center; text-align: center; }

.status-card { background: var(--ink); color: #fff; border-radius: var(--r-xl); padding: clamp(1.5rem, 4vw, 2.6rem); position: relative; overflow: hidden; }
.status-card .arc { right: -14%; top: -50%; width: 22rem; --arc-w: 24px; opacity: .8; }
.status-card > * { position: relative; }
.status-card h2 { font-size: var(--fs-h3); }
.status-card .countdown { margin-top: var(--sp-5); }
.aside-stack { display: grid; gap: var(--sp-5); }
.register-layout { display: grid; gap: var(--sp-6); }
@media (min-width: 980px) { .register-layout { grid-template-columns: 1.6fr 1fr; align-items: start; } }

/* ---- Footer ------------------------------------------------------------ */
.site-footer { background: var(--ink); color: #fff; padding-block: var(--sp-8) var(--sp-6); position: relative; overflow: hidden; }
.site-footer .arc { right: -8%; top: -55%; width: 28rem; --arc-w: 22px; opacity: .3; }
.footer-grid { position: relative; display: grid; gap: var(--sp-7); }
@media (min-width: 860px) { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer-brand .logo-inverse { display: block; height: 96px; width: auto; filter: brightness(0) invert(1); }   /* inverse logo for dark backgrounds (logo standards); stand-in until the designer supplies an inverse file */
.footer-brand p { color: rgba(255,255,255,.7); font-size: 1rem; margin-top: var(--sp-4); max-width: 22rem; }
.site-footer h3 { font-family: var(--font-body); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--rang-saffron); margin-bottom: var(--sp-4); }
:root[lang="mr"] .site-footer h3 { text-transform: none; letter-spacing: 0; }
.site-footer ul { list-style: none; display: grid; gap: .55rem; }
.site-footer ul a { text-decoration: none; color: rgba(255,255,255,.82); font-size: 1rem; }
.site-footer ul a:hover { color: #fff; text-decoration: underline; }
.footer-base { position: relative; margin-top: var(--sp-8); padding-top: var(--sp-5); border-top: 1px solid rgba(255,255,255,.14); display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--sp-4) var(--sp-5); align-items: center; font-size: var(--fs-sm); line-height: 1.7; color: rgba(255,255,255,.65); }
.footer-base__left { justify-self: start; }
.footer-base__mid { justify-self: center; }
.footer-base__right { justify-self: end; text-align: right; }
.footer-base__right a { text-decoration: none; }
.footer-base__right a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 720px) { .footer-base { grid-template-columns: 1fr; justify-items: center; text-align: center; } .footer-base__left, .footer-base__mid, .footer-base__right { justify-self: center; text-align: center; } .footer-base__mid { order: -1; } }
.footer-base .lang-toggle { background: rgba(255,255,255,.14); }
.footer-base .lang-toggle button { color: #fff; }
html[data-lang="mr"] .footer-base .lang-toggle button[data-set-lang="mr"],
html[data-lang="en"] .footer-base .lang-toggle button[data-set-lang="en"] { background: var(--rang-saffron); color: var(--ink); }
.social { display: flex; gap: .6rem; }
.social a { width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.12); }
.social a:hover { background: var(--rang-saffron); color: var(--ink); }
.social svg { width: 1.15rem; height: 1.15rem; }

/* ---- Sticky mobile CTA ------------------------------------------------- */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; padding: .7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom));
  background: rgba(11,10,12,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  display: flex; align-items: center; gap: var(--sp-3); justify-content: space-between; color: #fff;
  transform: translateY(110%); transition: transform .3s var(--ease);
}
.sticky-cta.is-visible { transform: none; }
.sticky-cta small { display: block; font-size: .8125rem; opacity: .75; line-height: 1.3; }
.sticky-cta b { font-size: 1rem; line-height: 1.3; }
@media (min-width: 820px) { .sticky-cta { display: none; } }
/* Phones: keep the last footer lines clear of the fixed bar (bar is ~5.5rem tall + safe area) */
@media (max-width: 819px) { .has-sticky .site-footer { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px) + var(--sp-4)); } }
body.has-sticky { padding-bottom: 0; }

/* ---- Final CTA --------------------------------------------------------- */
.cta-band { text-align: center; }
.cta-band h2 { max-width: 40rem; margin-inline: auto; }
.cta-band p { font-size: var(--fs-lg); max-width: 36rem; margin-inline: auto; margin-bottom: var(--sp-6); }
.cta-band .btn-row { justify-content: center; }

/* ---- Styleguide helpers ------------------------------------------------ */
.swatches { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); }
.swatch { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-line); background: #fff; }
.swatch__color { height: 6.5rem; padding: .8rem; display: flex; align-items: flex-end; font-size: .8125rem; font-weight: 600; }
.swatch__meta { padding: .7rem .9rem; font-size: var(--fs-sm); line-height: 1.4; }
.swatch__meta b { display: block; }
.swatch__meta code { color: var(--c-text-muted); font-size: .8125rem; }
.balance { display: flex; height: 1.1rem; border-radius: var(--r-pill); overflow: hidden; margin: var(--sp-4) 0 var(--sp-2); }
.balance i { display: block; }
.sg-block { margin-bottom: var(--sp-8); }
.sg-block > h2 { font-size: var(--fs-h3); padding-bottom: .5rem; border-bottom: 2px solid var(--ink); margin-bottom: var(--sp-5); }
.type-row { display: grid; gap: .2rem var(--sp-5); padding: var(--sp-4) 0; border-bottom: 1px solid var(--c-line); }
@media (min-width: 760px) { .type-row { grid-template-columns: 9rem 1fr; align-items: baseline; } }
.type-row small { color: var(--c-text-muted); font-size: var(--fs-xs); font-family: ui-monospace, monospace; }
.type-row > :last-child { margin: 0; }
.demo-row { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }
.dark-demo { background: var(--ink); color: #fff; border-radius: var(--r-xl); padding: var(--sp-5); }
.spec-list { list-style: none; display: grid; gap: .4rem; font-size: var(--fs-sm); color: var(--c-text-muted); }


/* ==========================================================================
   PARTICIPATION FLOW (3 parts) + FORMS  — added in round 2
   ========================================================================== */

/* Three-part navigation shown on Register / Ekankika / Upload / Entry pages */
.parts-bar { background: var(--mist); border-bottom: 1px solid var(--c-line); padding-block: var(--sp-4); }
.parts-nav { display: grid; gap: var(--sp-2); grid-template-columns: repeat(3, 1fr); list-style: none; }
.parts-nav a { display: flex; gap: .8rem; align-items: center; padding: .65rem .9rem; border-radius: var(--r-lg); background: #fff; border: 2px solid transparent; text-decoration: none; min-height: 3.6rem; height: 100%; }
.parts-nav a:hover { border-color: var(--setu-violet); }
.parts-nav .n { flex: none; width: 2.1rem; height: 2.1rem; border-radius: 50%; display: grid; place-items: center; background: var(--mist); font-weight: 700; font-size: .95rem; }
.parts-nav b { display: block; font-size: 1rem; line-height: 1.3; }
.parts-nav small { display: block; color: var(--c-text-muted); font-size: .8125rem; line-height: 1.3; }
.parts-nav a[aria-current="step"] { background: var(--ink); color: #fff; }
.parts-nav a[aria-current="step"] .n { background: var(--rang-saffron); color: var(--ink); }
.parts-nav a[aria-current="step"] small { color: rgba(255,255,255,.72); }
@media (max-width: 719px) { .parts-nav a { flex-direction: column; text-align: center; gap: .3rem; padding: .6rem .4rem; } .parts-nav small { display: none; } .parts-nav b { font-size: .875rem; } }

/* step cards extra */
.step__meta { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: var(--sp-4); }
.step .btn { margin-top: var(--sp-4); }

/* Wizard */
[data-step][hidden], [hidden] { display: none !important; }
.stepper li.is-done b { background: var(--ink); color: var(--ink); border-color: var(--ink); position: relative; font-size: 0; }
.stepper li.is-done b::after { content: ""; position: absolute; inset: 0; background: var(--rang-saffron) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0A0C' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 62% no-repeat; border-radius: 50%; }
.stepper li.is-done { color: var(--ink); }
.panel-title { display: flex; align-items: center; gap: .8rem; margin-bottom: var(--sp-2); }
.panel-title h2 { font-size: var(--fs-h3); margin: 0; }
.panel-lead { color: var(--c-text-muted); margin-bottom: var(--sp-6); font-size: 1.0625rem; }
.form-section { margin-top: var(--sp-7); padding-top: var(--sp-5); border-top: 1px dashed var(--c-line-strong); }
.form-section:first-of-type { margin-top: 0; border: 0; padding: 0; }
.form-section > h3 { font-size: var(--fs-h4); margin-bottom: var(--sp-4); display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.field textarea.input { min-height: 7.5rem; resize: vertical; line-height: 1.6; }
.field .opt { color: var(--c-text-muted); font-weight: 400; font-size: var(--fs-sm); }
.form-card__foot .btn-row { margin-left: auto; }
.form-card__foot .back { background: transparent; border: 0; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; padding: .6rem .4rem; }
.form-card__foot .back[disabled] { visibility: hidden; }

/* Notices */
.notice { display: flex; gap: .9rem; padding: 1rem 1.2rem; border-radius: var(--r-md); background: #EFEBF8; border: 1px solid #d5cce9; font-size: 1rem; line-height: 1.6; }
.notice::before { content: "i"; flex: none; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--deep-violet); color: #fff; display: grid; place-items: center; font: 700 .85rem/1 var(--font-body); margin-top: .15rem; }
.notice--warn { background: #FFF3CF; border-color: #f1d27a; }
.notice--warn::before { content: "!"; background: var(--ink); color: var(--rang-saffron); }
.notice--stop { background: #FDE6E4; border-color: #f4b8b3; }
.notice--stop::before { content: "!"; background: var(--festival-coral); color: var(--ink); }
.notice p { margin: 0; }

/* Entry ID card */
.id-card { background: var(--ink); color: #fff; border-radius: var(--r-xl); padding: clamp(1.4rem, 3vw, 2.2rem); position: relative; overflow: hidden; }
.id-card .arc { right: -12%; top: -50%; width: 20rem; --arc-w: 22px; opacity: .7; }
.id-card > * { position: relative; }
.id-card small { opacity: .75; font-size: var(--fs-sm); display: block; }
.id-card__code { font-family: var(--font-display); font-weight: 800; font-size: clamp(2.6rem, 2rem + 4vw, 4.2rem); line-height: 1.1; letter-spacing: .04em; color: var(--rang-saffron); font-variant-numeric: tabular-nums; }
.id-card__row { display: flex; flex-wrap: wrap; gap: var(--sp-4); align-items: center; margin-top: var(--sp-3); }

/* Success */
.success { text-align: center; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: clamp(1.6rem, 4vw, 3rem); box-shadow: var(--shadow-md); }
.success__tick { width: 4.4rem; height: 4.4rem; margin: 0 auto var(--sp-4); border-radius: 50%; background: var(--rang-saffron); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(255,185,0,.25); }
.success__tick svg { width: 2.2rem; height: 2.2rem; }
.success .id-card { margin: var(--sp-6) auto; max-width: 28rem; text-align: left; }
.success .checklist { text-align: left; max-width: 34rem; margin-inline: auto; }

/* Payment */
.pay-grid { display: grid; gap: var(--sp-5); }
@media (min-width: 760px) { .pay-grid { grid-template-columns: 13rem 1fr; align-items: start; } }
.qr { aspect-ratio: 1; border-radius: var(--r-lg); border: 2px dashed var(--c-line-strong); background:
  conic-gradient(from 90deg at 50% 50%, #cfcad6 0 25%, #fff 0 50%, #cfcad6 0 75%, #fff 0) 0 0 / 18px 18px, #fff;
  display: grid; place-items: center; position: relative; overflow: hidden; }
.qr span { background: #fff; padding: .5rem .8rem; border-radius: var(--r-md); font-size: var(--fs-sm); font-weight: 600; text-align: center; box-shadow: var(--shadow-sm); }
.kv { display: grid; gap: 0; border: 1px solid var(--c-line); border-radius: var(--r-lg); overflow: hidden; background: #fff; }
.kv div { display: grid; grid-template-columns: 9rem 1fr auto; gap: .5rem 1rem; align-items: center; padding: .7rem 1rem; border-bottom: 1px solid var(--c-line); font-size: 1rem; }
.kv div:last-child { border-bottom: 0; }
.kv dt, .kv .k { color: var(--c-text-muted); font-size: var(--fs-sm); }
.kv b { font-variant-numeric: tabular-nums; word-break: break-all; }
.copy { border: 1px solid var(--c-line-strong); background: #fff; border-radius: var(--r-pill); padding: .2rem .7rem; font-size: .8125rem; font-weight: 600; }
.copy:hover, .copy.is-done { background: var(--rang-saffron); border-color: var(--rang-saffron); }
@media (max-width: 520px) { .kv div { grid-template-columns: 1fr auto; } .kv .k { grid-column: 1 / -1; margin-bottom: -.4rem; } }
.amount-badge { display: inline-flex; align-items: baseline; gap: .5rem; background: var(--rang-saffron); border-radius: var(--r-lg); padding: .6rem 1.2rem; font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.9rem; line-height: 1.2; }
.amount-badge small { font-size: .9rem; font-weight: 500; }

/* File inputs */
.file { display: flex; align-items: center; gap: 1rem; padding: .85rem 1rem; border: 2px dashed var(--c-line-strong); border-radius: var(--r-md); background: #fff; cursor: pointer; transition: border-color .15s, background .15s; }
.file:hover { border-color: var(--deep-violet); background: #faf8ff; }
.file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.file:focus-within { outline: 3px solid var(--c-focus); outline-offset: 3px; }
.file__icon { flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--mist); display: grid; place-items: center; color: var(--deep-violet); }
.file__icon svg { width: 1.3rem; height: 1.3rem; }
.file__text b { display: block; font-size: 1rem; }
.file__text small { color: var(--c-text-muted); font-size: var(--fs-sm); }
.file.is-set { border-style: solid; border-color: var(--deep-violet); background: #f6f3fc; }
.file.is-set .file__icon { background: var(--rang-saffron); color: var(--ink); }

/* Dynamic rows (cast / crew) */
.rows { display: grid; gap: var(--sp-3); }
.rows__head, .row { display: grid; gap: .6rem; grid-template-columns: 1fr 1fr 2.6rem; align-items: center; }
.rows__head { font-size: var(--fs-sm); font-weight: 600; color: var(--c-text-muted); padding-inline: .2rem; }
.row .input { min-height: 2.8rem; }
.row__del { width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 1px solid var(--c-line-strong); background: #fff; display: grid; place-items: center; }
.row__del:hover { background: #FDE6E4; border-color: var(--festival-coral); }
.row__del svg { width: 1rem; height: 1rem; }
@media (max-width: 640px) { .rows__head { display: none; } .row { grid-template-columns: 1fr 2.6rem; } .row .input:nth-child(2) { grid-column: 1; } .row__del { grid-row: 1 / span 2; grid-column: 2; } .row { padding: .8rem; background: var(--paper); border-radius: var(--r-md); } }
.add-row { margin-top: var(--sp-3); }

/* Radio cards */
.radio-cards { display: grid; gap: var(--sp-3); }
@media (min-width: 700px) { .radio-cards { grid-template-columns: 1fr 1fr; } }
.radio-card { position: relative; display: block; cursor: pointer; }
.radio-card input { position: absolute; opacity: 0; }
.radio-card span.box { display: block; height: 100%; padding: 1rem 1.2rem 1rem 3.2rem; border: 2px solid var(--c-line-strong); border-radius: var(--r-md); background: #fff; transition: border-color .15s, background .15s; line-height: 1.5; }
.radio-card span.box::before { content: ""; position: absolute; left: 1.1rem; top: 1.15rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; border: 2px solid var(--slate); background: #fff; }
.radio-card input:checked + span.box { border-color: var(--deep-violet); background: #f6f3fc; }
.radio-card input:checked + span.box::before { border-color: var(--deep-violet); background: radial-gradient(var(--deep-violet) 45%, #fff 50%); }
.radio-card input:focus-visible + span.box { outline: 3px solid var(--c-focus); outline-offset: 3px; }
.radio-card b { display: block; }
.radio-card small { color: var(--c-text-muted); font-size: var(--fs-sm); }

/* Undertakings / declaration list */
.declare { display: grid; gap: .8rem; }
.declare .check { padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md); }
.declare .check:has(input:checked) { border-color: var(--deep-violet); background: #f6f3fc; }
.sign { display: grid; gap: var(--sp-4); margin-top: var(--sp-4); }
@media (min-width: 700px) { .sign { grid-template-columns: 1fr 1fr; } }
.sign__box { border: 1px solid var(--c-line); background: #fff; border-radius: var(--r-lg); padding: var(--sp-4); display: grid; gap: var(--sp-3); }
.sign__box > b { font-size: 1rem; }
.input--sign { font-style: italic; font-size: 1.25rem; border-style: dashed; }
.conditional[hidden] { display: none; }

/* Upload */
.dz { position: relative; border: 3px dashed var(--c-line-strong); border-radius: var(--r-xl); background: #fff; padding: clamp(1.6rem, 5vw, 3.2rem); text-align: center; transition: border-color .15s, background .15s; cursor: pointer; display: block; }
.dz:hover, .dz.is-over { border-color: var(--deep-violet); background: #faf8ff; }
.dz input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dz:focus-within { outline: 3px solid var(--c-focus); outline-offset: 4px; }
.dz__icon { width: 4.6rem; height: 4.6rem; margin: 0 auto var(--sp-4); border-radius: 50%; background: var(--rang-saffron); display: grid; place-items: center; }
.dz__icon svg { width: 2.1rem; height: 2.1rem; }
.dz h3 { margin-bottom: .3em; }
.progress { height: 1rem; border-radius: var(--r-pill); background: var(--mist); overflow: hidden; }
.progress i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--rang-saffron), var(--rani-rose), var(--setu-violet)); transition: width .25s linear; }
.upload-job { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: var(--sp-5); display: grid; gap: var(--sp-3); box-shadow: var(--shadow-sm); }
.upload-job__row { display: flex; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; align-items: baseline; font-size: 1rem; }
.filename { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: .95rem; background: var(--mist); border-radius: var(--r-sm); padding: .35rem .7rem; display: inline-block; word-break: break-all; }
.spec-grid { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.spec { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--sp-4); }
.spec b { display: block; font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.35rem; line-height: 1.3; }
.spec small { color: var(--c-text-muted); font-size: var(--fs-sm); line-height: 1.4; display: block; }

/* Entry gate + dashboard */
.gate { max-width: 34rem; margin-inline: auto; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: clamp(1.4rem, 4vw, 2.4rem); box-shadow: var(--shadow-md); }
.gate .form-grid { margin-block: var(--sp-5); }
.entry-chip { display: inline-flex; gap: .7rem; align-items: center; flex-wrap: wrap; background: var(--ink); color: #fff; border-radius: var(--r-pill); padding: .4rem 1.1rem .4rem .5rem; font-size: var(--fs-sm); margin-bottom: var(--sp-5); }
.entry-chip b { background: var(--rang-saffron); color: var(--ink); border-radius: var(--r-pill); padding: .15rem .8rem; font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.dash { display: grid; gap: var(--sp-5); }
@media (min-width: 960px) { .dash { grid-template-columns: 1.6fr 1fr; align-items: start; } }
.part-row { display: grid; gap: var(--sp-3) var(--sp-5); grid-template-columns: auto 1fr; align-items: center; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); }
.part-row .n { width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; background: var(--mist); }
.part-row.is-done .n { background: var(--rang-saffron); }
.part-row.is-now { border: 2px solid var(--ink); box-shadow: var(--shadow-md); }
.part-row.is-now .n { background: var(--ink); color: var(--rang-saffron); }
.part-row h3 { margin: 0; font-size: var(--fs-h4); }
.part-row p { margin: 0; color: var(--c-text-muted); font-size: 1rem; }
.part-row .btn { grid-column: 1 / -1; justify-self: start; }
@media (min-width: 640px) { .part-row { grid-template-columns: auto 1fr auto; } .part-row .btn { grid-column: auto; } }
.part-list { display: grid; gap: var(--sp-3); }
.msgs { list-style: none; display: grid; gap: .2rem; }
.msgs li { padding: .8rem 0; border-bottom: 1px solid var(--c-line); font-size: 1rem; line-height: 1.5; }
.msgs li:last-child { border: 0; }
.msgs time { display: block; color: var(--c-text-muted); font-size: .8125rem; }

/* Rules page extras */
.table-wrap { overflow-x: auto; margin-top: var(--sp-4); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.table { width: 100%; border-collapse: collapse; font-size: 1rem; background: #fff; }
.table th, .table td { padding: .8rem 1.1rem; text-align: left; border-bottom: 1px solid var(--c-line); vertical-align: top; line-height: 1.5; }
.table th { background: var(--mist); font-size: var(--fs-sm); font-weight: 600; }
.table tr:last-child td { border-bottom: 0; }
.table td.amt { font-family: var(--font-display); font-weight: var(--display-weight); }
.table tr.gold td:first-child { box-shadow: inset 5px 0 0 var(--rang-saffron); }
.table tr.silver td:first-child { box-shadow: inset 5px 0 0 var(--setu-violet); }
.rule ol.list { padding-left: 1.4rem; display: grid; gap: .6rem; margin: 1rem 0; }
.rule ol.list li::marker { color: var(--deep-violet); font-weight: 700; }
.draft-flag { display: inline-flex; gap: .5rem; align-items: center; background: #FFF3CF; border: 1px solid #f1d27a; border-radius: var(--r-pill); padding: .25rem .9rem; font-size: var(--fs-sm); font-weight: 600; }
.sub-prizes { display: grid; gap: var(--sp-4); }
@media (min-width: 760px) { .sub-prizes { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); } }
.award { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--sp-5); }
.award .amt { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.7rem; line-height: 1.3; }
.award p { margin: .2rem 0 0; color: var(--c-text-muted); font-size: var(--fs-sm); }
.award h3 { font-size: var(--fs-h4); }
.row--3, .rows__head--3 { grid-template-columns: 1fr 1fr 1.5fr 2.6rem; }
@media (max-width: 640px) { .row--3 { grid-template-columns: 1fr 2.6rem; } .row--3 .input:nth-child(3) { grid-column: 1; } .row--3 .row__del { grid-row: 1 / span 3; } }
.lock-card { display: flex; gap: 1.2rem; align-items: center; background: var(--mist); border: 2px dashed var(--c-line-strong); border-radius: var(--r-xl); padding: var(--sp-5); }
.lock-card__icon { flex: none; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 1.5rem; }
.lock-card h3 { font-size: var(--fs-h4); margin: 0 0 .2em; }
.lock-card p { margin: 0; color: var(--c-text-muted); font-size: 1rem; }

.part-row__side { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; grid-column: 1 / -1; }
@media (min-width: 640px) { .part-row__side { grid-column: auto; justify-content: flex-end; } }
.part-row .btn { grid-column: auto; }
/* simple vertical timeline (inside narrow cards) */
@media (min-width: 820px) {
  .tl.tl--simple { padding-left: 2.2rem; }
  .tl--simple::before { left: .55rem; transform: none; }
  .tl--simple .tl__item { display: block; }
  .tl--simple .tl__item::before { left: -2.2rem; transform: none; top: 1.45rem; }
  .tl--simple .tl__item:nth-child(odd) .tl__card, .tl--simple .tl__item:nth-child(even) .tl__card { text-align: left; }
  .tl--simple .tl__item:nth-child(odd) .tl__card .chip { justify-self: start; }
}
.rules-layout > *, .register-layout > *, .dash > *, .split > *, .pay-grid > * { min-width: 0; }

/* Logo usage demo (styleguide) */
.logo-demos { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.logo-demo { border-radius: var(--r-lg); padding: var(--sp-5); display: grid; place-items: center; min-height: 12rem; border: 1px solid var(--c-line); }
.logo-demo img { height: 110px; width: auto; }
.logo-demo--ink img { filter: brightness(0); }
.logo-demo--dark { background: var(--ink); border-color: var(--ink); }
.logo-demo--dark img { filter: brightness(0) invert(1); }
.logo-demo--light { background: #fff; }


/* ==========================================================================
   Round 3 — payment sharing, OTP, consent, trophies, awards, team, blog
   ========================================================================== */

/* Heads-up block at the top of the form */
.form-card__lead { --inset: clamp(1.2rem, 3vw, 2.2rem); padding: var(--inset); }   /* same inset as the stepper and body, on all four sides */
.heads-up { padding: 1.25rem 1.5rem; border-radius: var(--r-lg); gap: 1rem; }       /* radius sits concentric inside the card's rounded corner */
.heads-up p { margin: 0 0 .5rem; }
.heads-up p:last-of-type { margin-bottom: 0; }
.heads-up b { font-weight: 700; }
@media (max-width: 520px) { .heads-up { padding: 1.1rem 1.1rem; gap: .75rem; border-radius: var(--r-md); } }

/* Payment: summary row, expandable block, QR image */
.pay-summary { display: flex; flex-wrap: wrap; gap: var(--sp-4); align-items: center; justify-content: space-between; margin-top: var(--sp-4); }
.pay-summary .amount-badge { margin: 0; }
.pay-block { margin-top: var(--sp-5); border: 1px solid var(--c-line-strong); border-radius: var(--r-lg); background: #fff; overflow: hidden; }
.pay-block summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-4) var(--sp-5); }
.pay-block summary::-webkit-details-marker { display: none; }
.pay-block summary:hover { background: var(--paper); }
.pay-block summary:focus-visible { outline: 3px solid var(--c-focus); outline-offset: -3px; }
.pay-block__ico { flex: none; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: var(--rang-saffron); display: grid; place-items: center; }
.pay-block__ico svg { width: 1.4rem; height: 1.4rem; }
.pay-block__txt { flex: 1; display: grid; line-height: 1.3; }
.pay-block__txt small { color: var(--c-text-muted); font-size: var(--fs-sm); }
.pay-block__chev { flex: none; width: 1.5rem; height: 1.5rem; transition: transform .2s; }
.pay-block[open] .pay-block__chev { transform: rotate(180deg); }
.pay-block[open] summary { border-bottom: 1px solid var(--c-line); }
.pay-block__body { padding: var(--sp-5); container-type: inline-size; }
@container (max-width: 40rem) { .pay-block__body .pay-grid { grid-template-columns: 1fr; } .pay-block__body .qr--img { margin-inline: auto; } }
@container (max-width: 32rem) { .pay-block__body .kv div { grid-template-columns: 1fr auto; } .pay-block__body .kv .k { grid-column: 1 / -1; margin-bottom: -.4rem; } }
.qr.qr--img { border: 1px solid var(--c-line); background: #fff; padding: .6rem; display: block; max-width: 16.5rem; }
.qr--img img { display: block; width: 100%; height: auto; }

/* Dialogs (lightbox + share) */
.rs-dialog { border: 0; padding: 0; background: transparent; max-width: min(92vw, 40rem); width: 100%; max-height: 92vh; overflow: visible; color: var(--ink); }
.rs-dialog::backdrop { background: rgba(11,10,12,.62); backdrop-filter: blur(3px); }
.rs-dialog__box { position: relative; background: #fff; border-radius: var(--r-xl); padding: clamp(1.4rem, 4vw, 2.2rem); box-shadow: var(--shadow-lg); max-height: 90vh; overflow: auto; }
.rs-dialog__box h2 { font-size: var(--fs-h3); padding-right: 3rem; margin-bottom: .4rem; }
.rs-dialog__close { position: absolute; right: .9rem; top: .9rem; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 0; background: var(--mist); display: grid; place-items: center; }
.rs-dialog__close:hover { background: var(--rang-saffron); }
.rs-dialog__close svg { width: 1.2rem; height: 1.2rem; }
.rs-dialog--light { max-width: min(94vw, 52rem); }
.light-grid { display: grid; gap: var(--sp-5); margin-top: var(--sp-4); align-items: start; }
@media (min-width: 720px) { .light-grid { grid-template-columns: 20rem 1fr; } .light-grid .qr--img { max-width: none; } }
.share-link { display: flex; gap: var(--sp-3); margin: var(--sp-4) 0; flex-wrap: wrap; }
.share-link .input { flex: 1; min-width: 12rem; font-size: .9375rem; }
.share-link .btn svg, .share-opt svg { width: 1.3rem; height: 1.3rem; }
.share-grid { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); }
.share-opt { display: grid; justify-items: center; gap: .5rem; padding: 1rem .6rem; border-radius: var(--r-md); border: 1px solid var(--c-line-strong); background: #fff; color: var(--ink); text-decoration: none; font-weight: 600; font-size: .9375rem; text-align: center; cursor: pointer; transition: background .15s, border-color .15s; }
.share-opt:hover { background: var(--paper); border-color: var(--ink); }
.share-opt svg { width: 1.8rem; height: 1.8rem; }
.share-opt[data-share="whatsapp"] svg { color: #1a9b50; }
.share-email { margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--c-line); }
.share-email__row { display: flex; gap: var(--sp-3); margin-top: .5rem; flex-wrap: wrap; }
.share-email__row .input { flex: 1; min-width: 12rem; }
.share-email__status { margin: .6rem 0 0; font-size: 1rem; min-height: 1.4em; }
.share-email__status.is-ok { color: #0d5a2e; font-weight: 600; }
.share-email__status.is-err { color: #b3261e; }

/* Email OTP */
.otp { margin-top: var(--sp-3); }
.otp__bar { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.otp__ok { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; color: #0d5a2e; background: #d8f3e2; border-radius: var(--r-pill); padding: .35rem .9rem .35rem .6rem; }
.otp__ok svg { width: 1.1rem; height: 1.1rem; }
.otp__entry { margin-top: var(--sp-3); padding: var(--sp-4); border-radius: var(--r-md); background: var(--mist); }
.otp__entry label { font-weight: 500; margin-bottom: .6rem; }
.otp__row { display: flex; gap: var(--sp-3); align-items: center; flex-wrap: wrap; }
.otp__input { width: 11rem; letter-spacing: .4em; font-size: 1.4rem; text-align: center; font-variant-numeric: tabular-nums; }
.otp__resend { border: 0; background: none; font-weight: 600; text-decoration: underline; padding: .4rem .2rem; color: var(--deep-violet); }
.otp__resend:disabled { color: var(--slate); text-decoration: none; cursor: default; }
.otp__msg { margin: .6rem 0 0; font-size: var(--fs-sm); min-height: 1.3em; }
.otp__msg.is-err { color: #b3261e; font-weight: 600; }
.otp.is-needed .otp__bar, .otp.is-needed .otp__entry { animation: otpnudge .5s; }
@keyframes otpnudge { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }

/* Segmented choice (WhatsApp) */
fieldset.field { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.field legend { display: block; font-weight: 600; font-size: 1rem; margin-bottom: .4rem; padding: 0; }
.seg { display: grid; gap: .5rem; }
.seg__opt { position: relative; display: block; cursor: pointer; }
.seg__opt input { position: absolute; opacity: 0; }
.seg__box { display: block; height: 100%; position: relative; padding: .8rem 1rem .8rem 2.9rem; border: 2px solid var(--c-line-strong); border-radius: var(--r-md); background: #fff; line-height: 1.4; transition: border-color .15s, background .15s; }
.seg__box::before { content: ""; position: absolute; left: 1rem; top: 50%; translate: 0 -50%; width: 1.2rem; height: 1.2rem; border-radius: 50%; border: 2px solid var(--slate); background: #fff; }
.seg__opt:hover .seg__box { border-color: var(--slate); }
.seg__opt input:checked + .seg__box { border-color: var(--deep-violet); background: #f6f3fc; font-weight: 600; }
.seg__opt input:checked + .seg__box::before { border-color: var(--deep-violet); background: radial-gradient(var(--deep-violet) 45%, #fff 50%); }
.seg__opt input:focus-visible + .seg__box { outline: 3px solid var(--c-focus); outline-offset: 3px; }
@media (min-width: 560px) { .seg { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); } }

/* Confirm step */
.kv--sum div { grid-template-columns: 9rem 1fr auto; }
.kv--sum b { font-variant-numeric: normal; word-break: break-word; font-weight: 600; }
.sum__chip { padding: .15rem .6rem .15rem .4rem; font-size: .8125rem; }
.sum__chip svg { width: .9rem; height: .9rem; }
.consent { background: var(--paper); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--sp-5); }
.consent h3 { font-size: var(--fs-h4); margin-bottom: .2rem; }
.consent__list { margin: var(--sp-3) 0 var(--sp-4); padding-left: 1.3rem; display: grid; gap: .55rem; }
.consent__list li::marker { color: var(--deep-violet); font-weight: 700; }
.consent__check { padding: 1rem 1.1rem; background: #fff; border: 2px solid var(--c-line-strong); border-radius: var(--r-md); font-weight: 600; }
.consent__check:has(input:checked) { border-color: var(--deep-violet); background: #f6f3fc; }
.sign--stack { grid-template-columns: 1fr !important; }
.sign--stack .input--sign { width: 100%; }

/* Success checklist: done vs pending */
.checklist--steps { counter-reset: part 1; }
.checklist--steps li.is-pending { counter-increment: part; color: var(--c-text-muted); }
.checklist--steps li.is-pending::before { content: counter(part); background: #fff; border: 2px dashed var(--setu-violet); color: var(--deep-violet); display: grid; place-items: center; font: 700 .8rem/1 var(--font-body); }
html[data-lang="mr"] .checklist--steps li.is-pending::before { content: counter(part, devanagari); }
.status-card__date { font-family: var(--font-display); font-weight: var(--display-weight); font-size: clamp(1.7rem, 1.2rem + 2vw, 2.4rem); line-height: 1.2; margin: .3rem 0 0; color: var(--rang-saffron); }

/* Announcement card (finale) */
.announce-card { position: relative; overflow: hidden; background: var(--ink); color: #fff; border-radius: var(--r-xl); text-align: center; padding: clamp(2rem, 5vw, 3.6rem) clamp(1.4rem, 4vw, 3rem); }
.announce-card .arc { right: -18%; top: -60%; width: 24rem; --arc-w: 24px; opacity: .7; }
.announce-card > * { position: relative; }
.announce-card__icon { width: 3.6rem; height: 3.6rem; color: var(--rang-saffron); margin: 0 auto var(--sp-3); }
.announce-card h2 { font-size: var(--fs-h3); max-width: 34rem; margin-inline: auto; }
.announce-card p:not(.eyebrow) { max-width: 36rem; margin: var(--sp-3) auto 0; opacity: .85; }

/* Team awards: gold & silver podium + special mentions */
.podium { display: grid; gap: var(--sp-5); align-items: stretch; }
@media (min-width: 820px) { .podium { grid-template-columns: 1.15fr 1fr; } }
.podium__card { position: relative; border-radius: var(--r-xl); padding: clamp(2rem, 4vw, 3rem) var(--sp-5) clamp(1.8rem, 3.5vw, 2.6rem); text-align: center; color: var(--ink); overflow: hidden; display: grid; justify-items: center; align-content: center; gap: .5rem; box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.podium__card--gold { background: linear-gradient(150deg, #FFD65A 0%, var(--rang-saffron) 55%, var(--sun-marigold) 100%); }
.podium__card--silver { background: linear-gradient(150deg, #FFFFFF 0%, #E4E0EF 55%, #C9C2E0 100%); }
.podium__card::after { content: ""; position: absolute; inset: auto -20% -45% auto; width: 70%; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.28); }
.podium__card > * { position: relative; z-index: 1; }
.podium__trophy { width: clamp(5rem, 9vw, 7rem); aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.72); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(255,255,255,.28); margin-bottom: var(--sp-3); }
.podium__trophy svg { width: 62%; height: 62%; }
.podium__card--gold .podium__trophy { color: #7a4a00; }
.podium__card--silver .podium__trophy { color: var(--deep-violet); }
.podium__tier { font-weight: 700; font-size: var(--fs-sm); letter-spacing: .14em; text-transform: uppercase; background: var(--ink); color: #fff; border-radius: var(--r-pill); padding: .3rem 1rem; }
:root[lang="mr"] .podium__tier { letter-spacing: 0; text-transform: none; font-size: 1rem; }
.podium__rank { font-weight: 600; font-size: var(--fs-lg); margin-top: .3rem; }
.podium__amount { font-family: var(--font-display); font-weight: var(--display-weight); font-size: clamp(2.8rem, 2rem + 4vw, 4.8rem); line-height: 1.1; }
.podium__card--silver .podium__amount { font-size: clamp(2.4rem, 1.8rem + 3.2vw, 4rem); }
.podium__note { font-size: var(--fs-sm); opacity: .85; font-weight: 500; }

.mentions { margin-top: var(--sp-6); border-radius: var(--r-xl); border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.07); padding: var(--sp-5); }
.mentions__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem var(--sp-5); margin-bottom: var(--sp-4); }
.mentions__head h3 { font-size: var(--fs-h4); }
.mentions__head p { margin: 0; opacity: .8; font-size: var(--fs-sm); }
.mentions__grid { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.mention { display: flex; align-items: center; gap: var(--sp-3); background: rgba(255,255,255,.1); border-radius: var(--r-md); padding: .8rem 1rem; }
.mention__ico { flex: none; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--deep-violet); display: grid; place-items: center; }
.mention__ico svg { width: 1.6rem; height: 1.6rem; }
.mention b { display: block; line-height: 1.25; }
.mention small { opacity: .8; }

/* Individual awards */
.awards { display: grid; gap: var(--sp-4); grid-template-columns: 1fr; }
/* Two rows: Direction + Writing (feature cards) on top, then the two performance awards and the notable artist. */
@media (min-width: 640px) {
  .awards { grid-template-columns: repeat(6, 1fr); gap: var(--sp-5); }
  .awards > :nth-child(-n+4) { grid-column: span 3; }
  .awards > :nth-child(5) { grid-column: 1 / -1; }
}
@media (min-width: 980px) {
  .awards > :nth-child(-n+2) { grid-column: span 3; }
  .awards > :nth-child(n+3) { grid-column: span 2; }
}
.award-card { --accent: var(--rang-saffron); position: relative; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: var(--sp-6) var(--sp-5) var(--sp-5); display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.award-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.award-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: .5rem; background: var(--accent); }
.award-card__ico { width: 3.6rem; height: 3.6rem; border-radius: 1.1rem; background: color-mix(in srgb, var(--accent) 22%, #fff); color: var(--ink); display: grid; place-items: center; margin-bottom: var(--sp-2); }
.award-card__ico svg { width: 1.9rem; height: 1.9rem; }
.award-card h3 { font-size: var(--fs-h4); line-height: 1.3; }
.award-card__amt { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 2rem; line-height: 1.2; }
.award-card .chip { margin-top: auto; }
.award-card h3 { margin: 0; }
.award-card::after { content: ""; position: absolute; right: -4rem; top: -4rem; width: 13rem; height: 13rem; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--accent) 20%, transparent), transparent); pointer-events: none; }
.award-card > * { position: relative; z-index: 1; }
.award-card__amt { margin-bottom: var(--sp-2); }
/* First row: the two lead awards are larger */
@media (min-width: 640px) {
  .award-card:nth-child(-n+2) { padding: var(--sp-7) var(--sp-6) var(--sp-6); gap: .7rem; }
  .award-card:nth-child(-n+2) .award-card__ico { width: 4.6rem; height: 4.6rem; border-radius: 1.4rem; }
  .award-card:nth-child(-n+2) .award-card__ico svg { width: 2.4rem; height: 2.4rem; }
  .award-card:nth-child(-n+2) h3 { font-size: var(--fs-h3, 1.6rem); }
  .award-card:nth-child(-n+2) .award-card__amt { font-size: 2.6rem; }
  .award-card:nth-child(-n+2)::after { width: 17rem; height: 17rem; right: -5rem; top: -5rem; }
}
@media (min-width: 640px) and (max-width: 979px) { .award-card:nth-child(5) { max-width: 32rem; justify-self: center; width: 100%; } }
.award-card:nth-child(2) { --accent: var(--setu-violet); }
.award-card:nth-child(3) { --accent: var(--festival-coral); }
.award-card:nth-child(4) { --accent: var(--rani-rose); }
.award-card:nth-child(5) { --accent: var(--deep-violet); }
.awards-total { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-4); background: var(--ink); color: #fff; border-radius: var(--r-xl); padding: var(--sp-5) var(--sp-6); margin-bottom: var(--sp-5); }
.awards-total b { font-family: var(--font-display); font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); color: var(--rang-saffron); }
.awards-total p { margin: 0; opacity: .85; }

/* Team page */
.people { display: grid; gap: var(--sp-6) var(--sp-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.person__role { color: var(--deep-violet); font-weight: 600; font-size: var(--fs-sm); margin: 0 0 .3rem; }
.partners { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.partner { display: grid; place-items: center; gap: .6rem; text-align: center; min-height: 9.5rem; padding: var(--sp-4); background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); font-weight: 600; }
.partner svg { width: 2.4rem; height: 2.4rem; color: var(--setu-violet); }
.partner small { display: block; color: var(--c-text-muted); font-weight: 400; font-size: var(--fs-sm); }
.team-group + .team-group { margin-top: var(--sp-7); }
.team-group > h3 { font-size: var(--fs-h4); margin-bottom: var(--sp-4); padding-bottom: .5rem; border-bottom: 2px solid var(--ink); }
.members { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.member { display: flex; align-items: center; gap: var(--sp-3); background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: .8rem 1rem; }
.member__av { flex: none; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: linear-gradient(135deg, var(--setu-violet), var(--rani-rose)); color: #fff; display: grid; place-items: center; }
.member__av svg { width: 1.5rem; height: 1.5rem; }
.member b { display: block; line-height: 1.3; }
.member small { color: var(--c-text-muted); }

/* Blog */
.post-grid { display: grid; gap: var(--sp-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.post-card { display: grid; grid-template-rows: auto 1fr; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); overflow: hidden; text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s; }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.post-card__cover { aspect-ratio: 16 / 9; position: relative; display: grid; place-items: center; background: linear-gradient(135deg, var(--setu-violet), var(--rani-rose)); overflow: hidden; }
.post-card__cover--saffron { background: linear-gradient(135deg, var(--rang-saffron), var(--festival-coral)); }
.post-card__cover--ink { background: linear-gradient(135deg, var(--ink), var(--deep-violet)); }
.post-card__cover svg { width: 22%; color: rgba(255,255,255,.85); }
.post-card__body { padding: var(--sp-5); display: grid; gap: .6rem; align-content: start; }
.post-card h3 { font-size: var(--fs-h4); line-height: 1.35; }
.post-card p { margin: 0; color: var(--c-text-muted); font-size: 1rem; }
.post-meta { display: flex; flex-wrap: wrap; gap: .5rem .8rem; align-items: center; font-size: var(--fs-sm); color: var(--c-text-muted); }
.post-langs { display: inline-flex; gap: .3rem; }
.post-langs .chip { padding: .1rem .55rem; font-size: .75rem; }
.post-card--featured { grid-column: 1 / -1; }
@media (min-width: 860px) { .post-card--featured { grid-template-columns: 1.1fr 1fr; grid-template-rows: none; } .post-card--featured .post-card__cover { aspect-ratio: auto; min-height: 20rem; } .post-card--featured .post-card__body { align-content: center; padding: var(--sp-7); } .post-card--featured h3 { font-size: var(--fs-h3); } }
.post { max-width: 46rem; margin-inline: auto; }
.post__cover { aspect-ratio: 21 / 9; border-radius: var(--r-xl); margin: var(--sp-5) 0 var(--sp-6); }
.prose { font-size: var(--fs-base); line-height: 1.85; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: var(--fs-h3); margin-top: 1.8em; }
.prose h3 { font-size: var(--fs-h4); margin-top: 1.5em; }
.prose ul, .prose ol { padding-left: 1.4rem; display: grid; gap: .4rem; }
.prose blockquote { border-left: 5px solid var(--rang-saffron); padding: .3rem 0 .3rem 1.2rem; font-size: var(--fs-lg); color: var(--deep-violet); }
.prose a { color: var(--deep-violet); text-decoration: underline; text-underline-offset: 3px; }
.prose img { border-radius: var(--r-lg); }
.lang-note { display: none; align-items: center; gap: .7rem; margin: var(--sp-4) 0; padding: .8rem 1.1rem; border-radius: var(--r-md); background: var(--mist); font-size: var(--fs-sm); }
html[data-lang="mr"] .post[data-only="en"] .lang-note, html[data-lang="en"] .post[data-only="mr"] .lang-note { display: flex; }
html[data-lang="mr"] .post[data-only="en"] :is(h1, .prose) .en, html[data-lang="en"] .post[data-only="mr"] :is(h1, .prose) .mr { display: revert !important; }
.post__back { display: inline-flex; gap: .4rem; align-items: center; font-weight: 600; text-decoration: none; margin-bottom: var(--sp-4); }
.post__back svg { width: 1.1rem; height: 1.1rem; rotate: 180deg; }

/* Shareable payment page */
.pay-page { max-width: 46rem; margin-inline: auto; display: grid; gap: var(--sp-5); }
.pay-page__org { background: #FFF3CF; border: 1px solid #f1d27a; border-radius: var(--r-md); padding: .8rem 1.1rem; font-weight: 600; }
.pay-steps { counter-reset: s; display: grid; gap: .8rem; list-style: none; }
.pay-steps li { counter-increment: s; display: flex; gap: .9rem; align-items: flex-start; }
.pay-steps li::before { content: counter(s); flex: none; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--ink); color: var(--rang-saffron); display: grid; place-items: center; font: 700 .95rem/1 var(--font-body); margin-top: .1rem; }
html[data-lang="mr"] .pay-steps li::before { content: counter(s, devanagari); }


/* Undertaking process (Part 2, step 4) */
.proc { list-style: none; display: grid; gap: var(--sp-5); margin-top: var(--sp-5); }
.proc__step { position: relative; display: grid; grid-template-columns: 2.6rem 1fr; gap: var(--sp-4); }
.proc__step:not(:last-child)::before { content: ""; position: absolute; left: 1.3rem; top: 2.9rem; bottom: calc(var(--sp-5) * -1 + .3rem); width: 2px; background: var(--c-line-strong); translate: -1px 0; }
.proc__n { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--rang-saffron); border: 2px solid var(--ink); display: grid; place-items: center; font-weight: 700; font-size: 1.05rem; position: relative; z-index: 1; }
.proc__body { min-width: 0; }
.proc__body h3 { font-size: var(--fs-h4); margin: .35rem 0 .25rem; }
.proc__body > p { margin: 0; color: var(--c-text-muted); font-size: 1rem; }
.fill-list { margin: .4rem 0 0; padding-left: 1.2rem; display: grid; gap: .55rem; font-size: 1rem; }
.fill-list li::marker { color: var(--deep-violet); }
.dl-card { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-4); margin-top: var(--sp-4); padding: var(--sp-4); background: #fff; border: 1px solid var(--c-line-strong); border-radius: var(--r-lg); }
.dl-card__thumb { flex: none; width: 4.8rem; border-radius: .5rem; overflow: hidden; border: 1px solid var(--c-line-strong); box-shadow: var(--shadow-sm); display: block; background: #fff; }
.dl-card__thumb img { display: block; width: 100%; height: auto; }
.dl-card__meta { flex: 1; min-width: 11rem; display: grid; gap: .1rem; }
.dl-card__meta small { color: var(--c-text-muted); font-size: var(--fs-sm); }
.dl-card .btn svg { width: 1.2rem; height: 1.2rem; }

/* ---- Coming soon overlay (Parts 2, 3 and My entry in the first release) ------------------- */
.coming-soon { position: relative; overflow: hidden; max-height: 70rem; }
.coming-soon__content { filter: blur(10px) saturate(.85); opacity: .8; pointer-events: none; user-select: none; }
.coming-soon::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to bottom, rgb(255 249 240 / .25), var(--paper) 96%); pointer-events: none; }
.coming-soon__card {
  position: absolute; z-index: 2; top: clamp(4rem, 14vh, 9rem); left: 50%; transform: translateX(-50%);
  width: min(34rem, calc(100% - 2rem)); padding: var(--sp-7) var(--sp-6); text-align: center; overflow: hidden;
  background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 28px; box-shadow: 0 24px 60px rgb(11 10 12 / .18);
  display: flex; flex-direction: column; align-items: center; gap: var(--sp-3);
}
.coming-soon__card > :not(.arc) { position: relative; z-index: 1; margin: 0; }
.coming-soon__card h2 { font-size: var(--fs-h2, 2rem); }
.coming-soon__card p { color: var(--c-text-muted); max-width: 26rem; }
.coming-soon__card .btn { margin-top: var(--sp-3); }
.coming-soon__icon { width: 2.6rem; height: 2.6rem; color: var(--c-primary); }
.preview-flag { position: fixed; z-index: 90; left: 0; bottom: 0; background: var(--c-accent); color: #fff; font: 700 .72rem/1 var(--font-body); letter-spacing: .12em; padding: .4rem .7rem; border-top-right-radius: 10px; pointer-events: none; }

/* ---- Part 1 submission states ---------------------------------------------------------- */
.form-error { margin: var(--sp-4) 0 0; padding: .75rem 1rem; border-radius: 14px; background: #FDE7E5; color: #8a1d17; font-weight: 600; font-size: var(--fs-sm); }
.form-error[hidden], .form-warn[hidden], .field-dup[hidden] { display: none; }
.form-warn { margin: var(--sp-4) 0 0; padding: .75rem 1rem; border-radius: 14px; background: #FFF1D6; color: #6a4700; font-size: var(--fs-sm); }
.field-dup { margin-top: .6rem; padding: .7rem .9rem; border-radius: 14px; background: #FFF1D6; color: #6a4700; font-size: var(--fs-sm); }
.ts-wrap { margin-top: var(--sp-4); }
.ts-wrap:empty { display: none; }

/* Team page: optional photos / logos */
.person__avatar img, .member__av img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.partner img { width: 3rem; height: 3rem; object-fit: contain; flex: none; }
a.partner { text-decoration: none; color: inherit; }
