:root {
  --shell: min(1180px, calc(100% - 44px));
  --ink: #17213d;
  --ink-soft: #59627b;
  --cream: #fffaf0;
  --paper: #fffdf8;
  --gold: #d79831;
  --gold-bright: #f1bd62;
  --violet: #6957aa;
  --violet-deep: #4c3c86;
  --indigo: #29315f;
  --night: #11152f;
  --night-2: #181e44;
  --line: rgba(37, 43, 73, .12);
  --shadow: 0 24px 70px rgba(24, 30, 65, .14);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 16px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 100px;
  color: var(--ink);
  font-family: "DM Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 82% 12%, rgba(242, 188, 83, .18), transparent 26%),
    radial-gradient(circle at 10% 34%, rgba(149, 119, 219, .11), transparent 28%),
    linear-gradient(180deg, #fffaf0 0%, #fbf8f2 16%, #f1eef7 32%, #d8dce9 47%, #667196 59%, #39446f 72%, #252d59 84%, #192044 93%, #11152f 100%);
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.shell { width: var(--shell); margin-inline: auto; }
.section { padding: 108px 0; position: relative; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 1000; background: #fff; padding: 10px 14px; border-radius: 10px; box-shadow: var(--shadow); }
.skip-link:focus { top: 16px; }

.page-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 200; pointer-events: none; }
.page-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #e7a43d, #f6d482, #7562bd); box-shadow: 0 0 14px rgba(231,164,61,.55); }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; padding: 14px 0; }
.nav {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 10px 12px 10px 18px;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 22px;
  background: rgba(255, 252, 245, .84);
  backdrop-filter: blur(22px) saturate(1.2);
  box-shadow: 0 16px 44px rgba(31, 38, 73, .1);
}
.brand { display: flex; align-items: center; gap: 13px; min-width: 0; }
.brand-logo { width: 122px; height: auto; flex: 0 0 auto; object-fit: contain; }
.brand-divider { width: 1px; height: 34px; background: rgba(36,42,72,.16); }
.brand-title { display: flex; flex-direction: column; min-width: 0; }
.brand-title strong { font: 600 27px/1.08 "Libre Caslon Display", Georgia, serif; letter-spacing: .01em; }
.brand-title small { margin-top: 3px; color: #737b92; font-size: 17px; letter-spacing: .08em; }
.nav-links { display: flex; align-items: center; gap: 19px; font-family: Manrope, sans-serif; font-size: 13px; font-weight: 700; color: #3d4664; }
.nav-links a { position: relative; }
.nav-links a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--gold); transition: right .25s ease; }
.nav-links a:not(.nav-cta):hover::after { right: 0; }
.nav-cta { padding: 12px 16px; border-radius: 999px; background: var(--indigo); color: #fff; box-shadow: 0 8px 24px rgba(42, 48, 92, .24); }
.menu-toggle { display: none; border: 0; background: transparent; width: 42px; height: 42px; padding: 9px; }
.menu-toggle span:not(.sr-only) { display: block; height: 2px; margin: 5px 0; background: var(--ink); border-radius: 2px; }

.hero { min-height: 770px; padding: 130px 0 72px; position: relative; overflow: hidden; }
.hero-grid { min-height: 590px; display: grid; grid-template-columns: .93fr 1.07fr; align-items: center; gap: 54px; }
.hero-copy { position: relative; z-index: 4; }
.eyebrow, .section-label { margin: 0 0 16px; text-transform: uppercase; letter-spacing: .14em; font: 800 11px/1.2 Manrope, sans-serif; color: #875f27; }
.eyebrow { display: flex; align-items: center; gap: 10px; }
.eyebrow span { width: 28px; height: 1px; background: var(--gold); }
.hero h1 { margin: 0; max-width: 720px; font: 500 clamp(54px, 6.6vw, 94px)/.91 "Libre Caslon Display", Georgia, serif; letter-spacing: -.045em; }
.hero h1 em { color: var(--violet); font-style: italic; font-weight: 400; }
.hero-lead { max-width: 660px; margin: 27px 0 0; color: #525d78; font-size: 17px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-radius: 999px; font: 800 13px/1 Manrope, sans-serif; }
.button-primary { background: linear-gradient(135deg, #3d477d, #222951); color: #fff; box-shadow: 0 14px 30px rgba(39,45,89,.22); transition: transform .25s ease, box-shadow .25s ease; }
.button-primary:hover { transform: translateY(-2px); box-shadow: 0 18px 36px rgba(39,45,89,.3); }
.button-ghost { border: 1px solid rgba(38,45,77,.18); background: rgba(255,255,255,.6); }
.hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 36px; }
.hero-stats div { padding: 14px 12px; border-top: 1px solid rgba(45,52,83,.16); }
.hero-stats strong { display: block; font: 600 18px/1 "Libre Caslon Display", Georgia, serif; }
.hero-stats span { display: block; margin-top: 5px; color: #727a90; font: 800 9px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.hero-glow { position: absolute; border-radius: 50%; filter: blur(10px); pointer-events: none; }
.hero-glow-one { width: 420px; height: 420px; right: -110px; top: 80px; background: rgba(231,167,63,.19); }
.hero-glow-two { width: 360px; height: 360px; left: 18%; bottom: -220px; background: rgba(105,88,175,.16); }
.hero-grain { position: absolute; inset: 0; opacity: .055; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E"); }
.hero-visual { height: 590px; position: relative; border-radius: 34px; overflow: hidden; box-shadow: 0 34px 90px rgba(35,39,74,.26); isolation: isolate; background: #252a51; }
.hero-visual::before { content: ""; position: absolute; inset: 12px; z-index: 7; border: 1px solid rgba(255,255,255,.34); border-radius: 24px; pointer-events: none; }
.hero-slides, .hero-slide { position: absolute; inset: 0; }
.hero-slide { margin: 0; opacity: 0; transform: scale(1.055); transition: opacity 1.1s ease, transform 1.5s ease; }
.hero-slide.is-active { opacity: 1; transform: scale(1); }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.hero-veil { position: absolute; inset: 0; z-index: 4; background: linear-gradient(180deg, rgba(17,21,47,.02) 25%, rgba(17,21,47,.55) 100%); }
.hero-spark { position: absolute; width: 240px; height: 240px; border-radius: 50%; right: -90px; bottom: -90px; z-index: 5; background: radial-gradient(circle, rgba(245,194,100,.4), transparent 68%); filter: blur(2px); }
.hero-gallery-ui { position: absolute; z-index: 8; left: 28px; right: 28px; bottom: 24px; display: flex; align-items: center; justify-content: space-between; color: #fff; }
.gallery-count, .cinema-counter { display: inline-flex; align-items: center; gap: 10px; font: 700 11px/1 Manrope, sans-serif; letter-spacing: .12em; }
.gallery-count strong, .cinema-counter strong { font-size: 14px; }
.gallery-count i, .cinema-counter i { width: 44px; height: 1px; background: currentColor; opacity: .4; }
.gallery-dots { display: flex; gap: 7px; }
.gallery-dots button, .announcement-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.48); cursor: pointer; transition: transform .25s ease, background .25s ease; }
.gallery-dots button.is-active { background: #fff; transform: scale(1.45); }

.announcement-band { padding: 0 0 36px; }
.announcement-shell { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; min-height: 92px; padding: 18px 22px; border-radius: 24px; background: rgba(255,255,255,.66); border: 1px solid rgba(255,255,255,.75); backdrop-filter: blur(18px); box-shadow: 0 18px 50px rgba(36,43,74,.08); }
.announcement-kicker { display: flex; align-items: center; gap: 9px; white-space: nowrap; color: #5d4d35; font: 800 11px/1 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.pulse-dot { width: 8px; height: 8px; border-radius: 50%; background: #e8a241; box-shadow: 0 0 0 7px rgba(232,162,65,.12); animation: pulse 2.2s ease-in-out infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 11px rgba(232,162,65,.04); } }
.announcement-window { position: relative; min-height: 34px; overflow: hidden; }
.announcement-slide { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; transform: translateY(14px); transition: .55s ease; pointer-events: none; }
.announcement-slide.is-active { opacity: 1; transform: translateY(0); }
.announcement-slide p { margin: 0; color: #59627b; font-size: 14px; line-height: 1.55; }
.announcement-slide strong { color: #252e54; }
.announcement-controls { display: flex; align-items: center; gap: 10px; }
.announcement-controls > button, .cinema-controls button, .voice-controls button { width: 38px; height: 38px; border: 1px solid rgba(37,43,73,.12); border-radius: 50%; background: rgba(255,255,255,.66); color: #2e385f; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.announcement-controls > button:hover, .cinema-controls button:hover, .voice-controls button:hover { transform: scale(1.06); background: #fff; }
.announcement-dots { display: flex; gap: 5px; }
.announcement-dots button { background: rgba(53,61,91,.22); }
.announcement-dots button.is-active { background: #6e5da7; transform: scale(1.35); }

.intro { display: grid; grid-template-columns: 1.12fr .88fr; gap: 74px; align-items: start; }
.intro h2, .section-heading h2, .journey-copy h2, .recognition-head h2, .register-card h2, .contact h2, .details-heading h2, .timeline-heading h2 { margin: 0; font: 500 clamp(38px, 4.1vw, 62px)/1.02 "Libre Caslon Display", Georgia, serif; letter-spacing: -.035em; }
.intro-copy { padding-top: 38px; }
.intro-copy p, .section-heading > p:last-child, .journey-copy > p, .register-card p, .contact p, .details-heading > p:last-child, .recognition-head > p { color: var(--ink-soft); line-height: 1.75; }
.text-link { display: inline-flex; gap: 8px; margin-top: 18px; color: #5c4f98; font-weight: 800; }
.section-heading { max-width: 790px; margin-bottom: 48px; }
.section-heading > p:last-child { max-width: 720px; }

.competitions { padding-top: 94px; }
.competition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.competition-grid.four { grid-template-columns: repeat(2,1fr); }
.competition-card { overflow: hidden; border-radius: var(--radius-xl); background: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.72); box-shadow: 0 18px 54px rgba(37,43,74,.1); backdrop-filter: blur(15px); transition: transform .35s ease, box-shadow .35s ease; }
.competition-card:hover { transform: translateY(-7px); box-shadow: 0 28px 70px rgba(37,43,74,.16); }
.competition-photo { height: 240px; position: relative; overflow: hidden; background: #ebe5d9; }
.competition-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 46%, rgba(16,20,45,.68)); }
.competition-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.competition-card:hover .competition-photo img { transform: scale(1.065); }
.competition-photo > span { position: absolute; z-index: 2; left: 20px; bottom: 17px; color: #fff; font: 800 10px/1 Manrope, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.competition-body { padding: 28px; }
.competition-body h3 { margin: 0 0 13px; font: 500 31px/1.08 "Libre Caslon Display", Georgia, serif; }
.competition-body > p { margin: 0; color: var(--ink-soft); line-height: 1.65; }
.mini-list { display: grid; gap: 8px; margin: 22px 0 25px; padding: 0; list-style: none; color: #47516d; font-size: 13px; }
.mini-list li { position: relative; padding-left: 17px; }
.mini-list li::before { content: ""; position: absolute; left: 0; top: .58em; width: 6px; height: 6px; border-radius: 50%; background: #b98635; }
.card-link { display: inline-flex; gap: 7px; border: 0; background: transparent; padding: 0; color: #56488d; font-weight: 850; cursor: pointer; }
.creative-photo { display: grid; place-items: center; isolation: isolate; background: radial-gradient(circle at 50% 45%, #7566b2, #343b75 62%, #212751); }
.creative-photo::after { background: linear-gradient(180deg, transparent 45%, rgba(8,12,34,.72)); }
.creative-photo b { position: relative; z-index: 2; color: rgba(255,255,255,.94); font: 500 78px/1 "Libre Caslon Display", serif; letter-spacing: -.08em; text-shadow: 0 12px 30px rgba(0,0,0,.25); }
.creative-orbit { position: absolute; inset: 0; z-index: 1; }
.creative-orbit::before, .creative-orbit::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 170px; height: 170px; margin: -85px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; animation: orbitspin 12s linear infinite; }
.creative-orbit::after { width: 230px; height: 120px; margin: -60px -115px; transform: rotate(34deg); }
.creative-orbit span { position: absolute; width: 10px; height: 10px; border-radius: 50%; background: #f4c26c; box-shadow: 0 0 30px rgba(244,194,108,.6); }
.creative-orbit span:nth-child(1) { left: 29%; top: 28%; }
.creative-orbit span:nth-child(2) { right: 24%; top: 38%; }
.creative-orbit span:nth-child(3) { left: 48%; bottom: 20%; }
@keyframes orbitspin { to { transform: rotate(360deg); } }

.chapter-transition { height: 250px; position: relative; overflow: hidden; margin: 10px 0 -2px; color: white; background: linear-gradient(180deg, rgba(242,238,249,0), #303668 58%, #181e44 100%); }
.chapter-transition::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 0, rgba(244,194,103,.2), transparent 38%); }
.chapter-rays { position: absolute; left: 50%; bottom: -220px; width: 760px; height: 520px; transform: translateX(-50%); opacity: .22; background: repeating-conic-gradient(from 0deg, rgba(255,255,255,.2) 0 2deg, transparent 2deg 14deg); mask-image: radial-gradient(circle at center, #000 0, transparent 68%); }
.chapter-line { position: absolute; left: 50%; top: 52%; width: min(780px, 76vw); height: 1px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, rgba(244,194,103,.75), transparent); }
.chapter-line::before { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; border: 1px solid #edbd67; transform: translate(-50%,-50%) rotate(45deg); background: #343a6b; }
.chapter-copy { position: absolute; inset: auto 0 40px; display: flex; align-items: center; justify-content: center; gap: 25px; color: rgba(255,255,255,.62); font-size: 14px; letter-spacing: .08em; text-align: center; }
.chapter-copy b { color: #fff; font: 600 18px/1.2 Manrope, sans-serif; }

.details-section { margin-top: -1px; color: #f5f5ff; background: linear-gradient(180deg, #181e44 0%, #1d2451 52%, #242d5c 100%); overflow: hidden; }
.details-section::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px); background-size: 44px 44px; mask-image: linear-gradient(180deg, #000, transparent 80%); }
.details-orb { position: absolute; width: 430px; height: 430px; border-radius: 50%; filter: blur(18px); opacity: .26; }
.details-orb-one { right: -180px; top: 80px; background: #a46ad7; }
.details-orb-two { left: -220px; bottom: 80px; background: #d79731; opacity: .14; }
.details-heading { position: relative; z-index: 2; max-width: 800px; margin-bottom: 42px; }
.details-heading .section-label { color: #efbf67; }
.details-heading h2 { color: #fff; }
.details-heading > p:last-child { color: rgba(237,240,255,.7); }
.detail-switcher { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.detail-tab { display: grid; grid-template-columns: 52px 1fr; gap: 15px; align-items: center; padding: 18px; text-align: left; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; color: rgba(255,255,255,.62); background: rgba(255,255,255,.045); cursor: pointer; transition: .35s ease; }
.detail-tab > span { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 14px; color: #efbf67; background: rgba(239,191,103,.1); font: 800 11px/1 Manrope, sans-serif; }
.detail-tab strong, .detail-tab small { display: block; }
.detail-tab strong { color: #fff; font: 700 16px/1.2 Manrope, sans-serif; }
.detail-tab small { margin-top: 5px; color: rgba(255,255,255,.52); font-size: 11px; }
.detail-tab.is-active { transform: translateY(-3px); border-color: rgba(239,191,103,.52); background: linear-gradient(135deg, rgba(239,191,103,.13), rgba(133,109,192,.13)); box-shadow: 0 16px 45px rgba(8,11,35,.25); }
.detail-panels { position: relative; z-index: 2; }
.detail-panel { padding: 34px; border: 1px solid rgba(255,255,255,.13); border-radius: 30px; background: rgba(10,14,38,.38); backdrop-filter: blur(16px); box-shadow: 0 32px 90px rgba(6,8,29,.27); animation: panelin .55s cubic-bezier(.2,.7,.2,1); }
@keyframes panelin { from { opacity: 0; transform: translateY(16px) scale(.99); } to { opacity: 1; transform: none; } }
.detail-hero-row { display: grid; grid-template-columns: 1.2fr .8fr; gap: 34px; align-items: end; padding-bottom: 30px; border-bottom: 1px solid rgba(255,255,255,.12); }
.panel-kicker, .round-label { margin: 0 0 8px; color: #efbf67; font: 800 10px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .13em; }
.detail-hero-row h3 { margin: 0 0 14px; color: #fff; font: 500 clamp(34px,4vw,54px)/1 "Libre Caslon Display", Georgia, serif; letter-spacing: -.03em; }
.detail-hero-row > div > p:last-child { margin: 0; max-width: 720px; color: rgba(236,239,255,.66); line-height: 1.7; }
.detail-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.detail-metrics div { min-height: 112px; padding: 16px; display: flex; flex-direction: column; justify-content: space-between; border-radius: 18px; border: 1px solid rgba(255,255,255,.11); background: rgba(255,255,255,.055); }
.detail-metrics strong { color: #fff; font: 500 29px/1 "Libre Caslon Display", serif; }
.detail-metrics span { color: rgba(255,255,255,.5); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.round-roadmap { display: grid; grid-template-columns: 1fr 80px 1fr 80px 1fr; align-items: stretch; gap: 0; margin-top: 30px; }
.round-card { min-height: 290px; padding: 24px; border: 1px solid rgba(255,255,255,.11); border-radius: 22px; background: linear-gradient(160deg, rgba(255,255,255,.085), rgba(255,255,255,.025)); }
.round-number { display: inline-grid; place-items: center; width: 36px; height: 36px; margin-bottom: 24px; border-radius: 50%; background: rgba(239,191,103,.12); color: #f2c87c; font: 800 10px/1 Manrope, sans-serif; }
.round-card h4 { margin: 0 0 12px; color: #fff; font: 500 28px/1.1 "Libre Caslon Display", serif; }
.round-card > p:not(.round-label) { margin: 0; color: rgba(235,238,255,.61); font-size: 13px; line-height: 1.65; }
.round-card ul { margin: 19px 0 0; padding: 0; display: grid; gap: 8px; list-style: none; color: rgba(244,246,255,.72); font-size: 11px; }
.round-card li { position: relative; padding-left: 14px; }
.round-card li::before { content: ""; position: absolute; left: 0; top: .55em; width: 5px; height: 5px; border-radius: 50%; background: #e5ad50; }
.round-connector { display: grid; place-items: center; }
.round-connector::before { content: ""; width: 100%; height: 1px; background: linear-gradient(90deg, rgba(239,191,103,.2), rgba(239,191,103,.9), rgba(239,191,103,.2)); }
.round-connector span { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: #efbf67; box-shadow: 0 0 0 7px rgba(239,191,103,.08); animation: connectorpulse 2.5s ease-in-out infinite; }
@keyframes connectorpulse { 50% { transform: scale(1.45); opacity: .65; } }
.detail-info-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; margin-top: 18px; }
.info-card { padding: 24px; border-radius: 20px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.09); }
.info-card.wide { grid-column: 1 / -1; }
.info-icon { margin: 0 0 14px; color: #efbf67; font-size: 24px; }
.info-card h4 { margin: 0 0 9px; color: #fff; font: 700 15px/1.2 Manrope, sans-serif; }
.info-card p:not(.info-icon) { margin: 7px 0 0; color: rgba(237,240,255,.61); font-size: 13px; line-height: 1.65; }
.info-card p strong { color: rgba(255,255,255,.88); }
.recitation-flow { display: grid; grid-template-columns: 1fr 80px 1fr; align-items: center; gap: 0; margin-top: 30px; }
.recitation-flow article { min-height: 180px; padding: 25px; border-radius: 22px; background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.03)); border: 1px solid rgba(255,255,255,.1); }
.recitation-flow article span { color: #efbf67; font: 800 10px/1 Manrope, sans-serif; letter-spacing: .12em; }
.recitation-flow h4 { margin: 13px 0 10px; color: #fff; font: 500 30px/1 "Libre Caslon Display", serif; }
.recitation-flow p { margin: 0; color: rgba(237,240,255,.62); font-size: 13px; line-height: 1.65; }
.recitation-arrow { text-align: center; color: #efbf67; font-size: 31px; }
.syllabus-card { display: grid; grid-template-columns: .76fr 1.24fr; gap: 32px; margin-top: 18px; padding: 28px; border-radius: 22px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.045); }
.syllabus-title .section-label { color: #efbf67; }
.syllabus-title h4 { margin: 0; color: #fff; font: 500 36px/1 "Libre Caslon Display", serif; }
.syllabus-list { border-top: 1px solid rgba(255,255,255,.12); }
.syllabus-list div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.syllabus-list span { color: rgba(255,255,255,.58); font-size: 12px; }
.syllabus-list strong { color: #fff; font-size: 12px; }

.eligibility { color: #fff; background: linear-gradient(180deg, #242d5c 0%, #2d3765 52%, #313a68 100%); overflow: hidden; }
.eligibility::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 92% 18%, rgba(238,190,101,.12), transparent 28%); }
.light-heading .section-label, .recognition .section-label, .register .section-label, .contact .section-label { color: #efbf67; }
.light-heading h2, .light-heading > p:last-child { color: #fff; }
.light-heading > p:last-child { opacity: .72; }
.eligibility-table-wrap { position: relative; overflow-x: auto; border-radius: 26px; border: 1px solid rgba(255,255,255,.15); background: rgba(16,21,53,.26); box-shadow: 0 26px 70px rgba(13,16,45,.17); backdrop-filter: blur(16px); }
.eligibility-table { width: 100%; min-width: 900px; border-collapse: collapse; }
.eligibility-table th, .eligibility-table td { padding: 20px 18px; border-bottom: 1px solid rgba(255,255,255,.09); text-align: center; }
.eligibility-table thead th { color: rgba(255,255,255,.63); font: 800 10px/1.3 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .1em; background: rgba(255,255,255,.035); }
.eligibility-table thead th:first-child, .eligibility-table tbody th { text-align: left; }
.eligibility-table tbody th { color: #fff; font: 700 14px/1.2 Manrope, sans-serif; }
.eligibility-table tbody th small { display: block; margin-top: 5px; color: rgba(255,255,255,.43); font-size: 10px; font-weight: 500; }
.eligibility-table tbody tr:last-child th, .eligibility-table tbody tr:last-child td { border-bottom: 0; }
.eligibility-table tbody tr { transition: background .2s ease; }
.eligibility-table tbody tr:hover { background: rgba(255,255,255,.035); }
.yes, .no { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font-weight: 800; }
.yes { color: #1c2c49; background: #f2c36c; box-shadow: 0 5px 18px rgba(242,195,108,.18); }
.no { color: rgba(255,255,255,.28); background: rgba(255,255,255,.05); }
.table-note { max-width: 820px; margin: 18px 0 0; color: rgba(255,255,255,.5); font-size: 11px; line-height: 1.6; }

.journey {
  color: #eef0ff;
  padding-top: 118px;
  background:
    radial-gradient(circle at 8% 4%, rgba(239,191,103,.045), transparent 26%),
    linear-gradient(180deg, #313a68 0%, #2c3562 100%);
}
.journey-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 70px; align-items: start; }
.journey-copy h2 { color: #fff; }
.journey-copy > p { color: rgba(255,255,255,.6); }
.journey-copy .section-label { color: #efbf67; }
.source-note { margin-top: 26px; padding: 20px; border-left: 3px solid rgba(239,191,103,.68); background: rgba(255,255,255,.06); border-radius: 0 16px 16px 0; }
.source-note strong { display: block; margin-bottom: 6px; color: #f0c879; }
.source-note span { color: rgba(255,255,255,.56); font-size: 13px; line-height: 1.6; }
.steps { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 56px 1fr; gap: 18px; padding: 23px; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; background: rgba(255,255,255,.06); backdrop-filter: blur(12px); transition: transform .25s ease, background .25s ease; }
.steps li:hover { transform: translateX(5px); background: rgba(255,255,255,.085); }
.steps > li > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: rgba(255,255,255,.1); color: #efbf67; font-weight: 850; }
.steps h3 { margin: 0 0 7px; color: #fff; font-size: 18px; }
.steps p { margin: 0; color: rgba(255,255,255,.56); font-size: 13px; line-height: 1.6; }

.timeline {
  color: #fff;
  padding-top: 92px;
  overflow: hidden;
  background: linear-gradient(180deg, #2c3562 0%, #252e58 100%);
}
.timeline::before { content: ""; position: absolute; width: 460px; height: 460px; left: 58%; top: 8%; border-radius: 50%; background: rgba(136,112,199,.085); filter: blur(34px); }
.timeline-heading { position: relative; display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 42px; }
.timeline-heading h2 { color: #fff; }
.timeline-heading .section-label { color: #efbf67; }
.deadline-callout { min-width: 230px; padding: 18px 20px; border-radius: 18px; border: 1px solid rgba(239,191,103,.35); background: rgba(239,191,103,.08); }
.deadline-callout span { display: block; color: rgba(255,255,255,.52); font: 800 9px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.deadline-callout strong { display: block; margin-top: 7px; color: #f2c674; font: 700 18px/1 Manrope, sans-serif; }
.date-rail { position: relative; display: grid; grid-template-columns: repeat(7, minmax(180px, 1fr)); gap: 12px; overflow-x: auto; padding: 0 0 14px; scrollbar-width: thin; }
.date-rail::before { content: ""; position: absolute; left: 25px; right: 25px; top: 34px; height: 1px; background: linear-gradient(90deg, rgba(239,191,103,.08), rgba(239,191,103,.5), rgba(239,191,103,.08)); }
.date-rail article { position: relative; min-height: 235px; padding: 25px 20px 22px; border-radius: 22px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); backdrop-filter: blur(12px); }
.date-index { position: relative; z-index: 2; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #e9b85e; color: #232950; font: 800 8px/1 Manrope, sans-serif; box-shadow: 0 0 0 7px #262e5a; }
.date-rail p { margin: 42px 0 9px; color: #efbf67; font: 800 10px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.date-rail h3 { margin: 0 0 10px; color: #fff; font: 500 24px/1.05 "Libre Caslon Display", serif; }
.date-rail small { color: rgba(255,255,255,.5); font-size: 11px; line-height: 1.55; }
.date-rail .date-highlight { border-color: rgba(239,191,103,.5); background: linear-gradient(160deg, rgba(239,191,103,.15), rgba(255,255,255,.04)); }
.date-rail .date-finale { border-color: rgba(160,135,218,.42); background: linear-gradient(160deg, rgba(120,99,184,.16), rgba(255,255,255,.04)); }

.inspiration {
  color: #fff;
  padding-top: 116px;
  background:
    radial-gradient(circle at 86% 8%, rgba(239,191,103,.04), transparent 28%),
    linear-gradient(180deg, #252e58 0%, #20274f 100%);
}
.inspiration-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.inspiration-card { display: grid; grid-template-columns: 180px 1fr; gap: 26px; align-items: center; min-height: 330px; padding: 24px; border-radius: 26px; border: 1px solid rgba(255,255,255,.12); background: rgba(13,18,48,.46); backdrop-filter: blur(16px); box-shadow: 0 22px 70px rgba(8,11,34,.24); }
.inspiration-card img { width: 180px; height: 250px; object-fit: cover; border-radius: 20px; }
.card-kicker { margin: 0 0 10px; color: #e8b85e; font: 800 10px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .11em; }
.inspiration-card h3 { margin: 0 0 12px; font: 500 27px/1.08 "Libre Caslon Display", serif; }
.inspiration-card p:last-child { margin: 0; color: rgba(242,244,255,.68); font-size: 13px; line-height: 1.68; }

.team-showcase { color: #fff; overflow: hidden; }
.cinema-stage { height: 520px; position: relative; perspective: 1500px; }
.cinema-track { position: absolute; inset: 0; transform-style: preserve-3d; }
.cinema-card { position: absolute; left: 50%; top: 44%; width: 300px; min-height: 405px; padding: 12px; border-radius: 25px; background: rgba(255,255,255,.95); color: #222a4b; box-shadow: 0 26px 70px rgba(8,11,34,.32); transform-origin: center; transition: transform 1.05s cubic-bezier(.18,.76,.22,1), opacity .85s ease, filter .85s ease; overflow: hidden; }
.team-card .film-photo { height: 290px; overflow: hidden; border-radius: 18px; background: #e8e5e2; }
.team-card .film-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform 1s ease; }
.team-card.is-current .film-photo img { transform: scale(1.035); }
.film-copy { padding: 18px 10px 10px; }
.film-copy span { color: #9b6d2f; font: 850 9px/1 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .14em; }
.film-copy h3 { margin: 7px 0 5px; font: 500 25px/1.05 "Libre Caslon Display", serif; }
.film-copy p { margin: 0; color: #71798d; font-size: 12px; }
.film-light { position: absolute; left: 50%; bottom: 30px; width: 500px; height: 90px; transform: translateX(-50%); border-radius: 50%; background: rgba(150,132,216,.18); filter: blur(35px); }
.cinema-controls { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 20; display: flex; align-items: center; gap: 15px; color: #fff; }
.cinema-controls button, .voice-controls button { color: #fff; border-color: rgba(255,255,255,.15); background: rgba(255,255,255,.07); }

.voices-showcase { color: #fff; }
.voice-stage { position: relative; min-height: 485px; }
.voice-track { position: absolute; inset: 0; }
.voice-card { position: absolute; inset: 20px 80px 75px; display: grid; grid-template-columns: 210px 1fr; gap: 42px; align-items: center; padding: 28px; border-radius: 30px; border: 1px solid rgba(255,255,255,.14); background: rgba(13,18,48,.35); backdrop-filter: blur(18px); opacity: 0; transform: translateY(18px) scale(.985); transition: .7s ease; pointer-events: none; }
.voice-card.is-current { opacity: 1; transform: none; pointer-events: auto; }
.voice-portrait { height: 300px; overflow: hidden; border-radius: 22px; background: rgba(255,255,255,.08); }
.voice-portrait img { width: 100%; height: 100%; object-fit: cover; }
.quote-mark { display: block; height: 40px; color: #efbf67; font: 500 70px/.8 "Libre Caslon Display", serif; }
.voice-content > p { margin: 0; max-width: 720px; color: rgba(255,255,255,.84); font: 400 28px/1.45 "Libre Caslon Display", serif; }
.voice-content > div { margin-top: 23px; }
.voice-content h3 { margin: 0; color: #fff; font-size: 15px; }
.voice-content div span { display: block; margin-top: 5px; color: rgba(255,255,255,.47); font-size: 11px; }
.voice-controls { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); display: flex; align-items: center; gap: 15px; }

.recognition { color: #fff; overflow: hidden; padding-top: 120px; }
.recognition::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 75% 15%, rgba(239,191,103,.15), transparent 28%); }
.recognition-glow { position: absolute; left: -220px; top: 200px; width: 500px; height: 500px; border-radius: 50%; background: rgba(111,91,177,.17); filter: blur(30px); }
.recognition-head { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: 55px; align-items: end; margin-bottom: 42px; }
.recognition-head h2 { color: #fff; }
.recognition-head > p { margin: 0; color: rgba(255,255,255,.6); }
.prize-gallery { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 280px; gap: 14px; }
.prize-card { position: relative; overflow: hidden; border-radius: 24px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); box-shadow: 0 20px 55px rgba(7,10,30,.2); }
.prize-card-wide { grid-column: span 2; }
.prize-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.prize-card:nth-child(2) img { object-fit: contain; padding: 18px; background: #d0d0d0; }
.prize-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(8,11,31,.82)); }
.prize-card:hover img { transform: scale(1.055); filter: saturate(1.05); }
.prize-overlay { position: absolute; z-index: 3; left: 21px; right: 21px; bottom: 18px; }
.prize-overlay span { color: #f0c474; font: 800 9px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .11em; }
.prize-overlay h3 { margin: 5px 0 0; color: #fff; font: 500 27px/1 "Libre Caslon Display", serif; }
.prize-more { position: relative; grid-column: span 2; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: 25px; overflow: hidden; border-radius: 24px; border: 1px solid rgba(239,191,103,.2); background: linear-gradient(135deg, rgba(239,191,103,.14), rgba(107,88,175,.2)); }
.prize-more > span { display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 38px; border-radius: 50%; color: #252a50; background: #efbf67; font-size: 25px; }
.prize-more h3 { margin: 0; color: #fff; font: 500 33px/1 "Libre Caslon Display", serif; }
.prize-more p { max-width: 430px; margin: 9px 0 0; color: rgba(255,255,255,.56); font-size: 12px; line-height: 1.55; }
.prize-sparkles i { position: absolute; display: block; width: 5px; height: 5px; border-radius: 50%; background: #f4ce84; box-shadow: 0 0 18px #f4ce84; animation: floatSpark 4s ease-in-out infinite; }
.prize-sparkles i:nth-child(1) { left: 23%; top: 24%; }
.prize-sparkles i:nth-child(2) { left: 61%; top: 16%; animation-delay: .8s; }
.prize-sparkles i:nth-child(3) { right: 18%; top: 46%; animation-delay: 1.6s; }
.prize-sparkles i:nth-child(4) { left: 44%; bottom: 27%; animation-delay: 2.2s; }
@keyframes floatSpark { 50% { transform: translateY(-10px) scale(1.6); opacity: .6; } }
.prize-note { position: relative; max-width: 760px; margin: 18px 0 0; color: rgba(255,255,255,.44); font-size: 10px; line-height: 1.55; }

.register { color: #fff; padding-top: 100px; }
.register-card { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; padding: 42px; border-radius: 30px; border: 1px solid rgba(255,255,255,.18); background: linear-gradient(135deg, rgba(112,91,180,.32), rgba(239,191,103,.12)); box-shadow: 0 28px 80px rgba(6,9,29,.24); }
.register-card h2 { color: #fff; }
.register-card p { color: rgba(255,255,255,.62); }
.register-actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
.button-light { color: #252b53; background: #fff; }
.button-disabled { color: rgba(255,255,255,.55); border: 1px dashed rgba(255,255,255,.24); background: rgba(255,255,255,.05); }

.contact { color: #fff; padding-bottom: 92px; }
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: end; }
.contact h2, .contact p { color: #fff; }
.contact p { opacity: .65; }
.contact-list { border-top: 1px solid rgba(255,255,255,.16); }
.contact-list a { display: flex; justify-content: space-between; gap: 18px; padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.13); }
.contact-list span { color: rgba(255,255,255,.52); font: 800 10px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.contact-list strong { font-size: 14px; }

.footer { padding: 48px 0 60px; color: rgba(255,255,255,.75); background: rgba(7,10,28,.28); border-top: 1px solid rgba(255,255,255,.08); }
.footer-grid { display: grid; grid-template-columns: 1.2fr .7fr .9fr; gap: 56px; }
.footer-brand .brand-title strong { color: #fff; }
.footer-brand .brand-title small { color: rgba(255,255,255,.52); }
.footer p { max-width: 380px; color: rgba(255,255,255,.5); font-size: 12px; line-height: 1.65; }
.footer-links { display: grid; align-content: start; gap: 10px; font-size: 13px; }
.footer-meta { font-size: 12px; }

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .78s ease, transform .78s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1080px) {
  :root { --shell: min(100% - 32px, 940px); }
  .nav-links { gap: 12px; font-size: 11px; }
  .brand-title { display: none; }
  .brand-divider { display: none; }
  .hero-grid { gap: 32px; }
  .hero-visual { height: 530px; }
  .round-roadmap { grid-template-columns: 1fr; gap: 12px; }
  .round-connector { height: 38px; }
  .round-connector::before { width: 1px; height: 100%; }
  .round-roadmap .round-connector span { position: absolute; }
  .prize-gallery { grid-template-columns: repeat(2,1fr); }
  .prize-card-wide, .prize-more { grid-column: span 1; }
  .date-rail { grid-template-columns: repeat(7, 210px); }
}

@media (max-width: 820px) {
  .site-header { padding-top: 10px; }
  .nav { min-height: 60px; }
  .menu-toggle { display: block; }
  .nav-links { position: absolute; top: 78px; left: 16px; right: 16px; display: grid; gap: 0; padding: 12px; border-radius: 18px; background: rgba(255,252,246,.97); box-shadow: var(--shadow); transform: translateY(-8px); opacity: 0; pointer-events: none; transition: .25s ease; }
  .nav-links.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .nav-links a { padding: 13px; }
  .nav-links a::after { display: none; }
  .hero { padding-top: 112px; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { padding-bottom: 6px; }
  .hero-visual { height: min(72vw, 560px); }
  .announcement-shell { grid-template-columns: 1fr; gap: 12px; }
  .announcement-controls { justify-content: flex-end; }
  .intro, .journey-grid, .contact-grid, .register-card, .recognition-head, .detail-hero-row, .syllabus-card { grid-template-columns: 1fr; gap: 30px; }
  .intro-copy { padding-top: 0; }
  .competition-grid.four { grid-template-columns: 1fr; }
  .detail-switcher { grid-template-columns: 1fr; }
  .recitation-flow { grid-template-columns: 1fr; gap: 12px; }
  .recitation-arrow { transform: rotate(90deg); }
  .detail-info-grid { grid-template-columns: 1fr; }
  .info-card.wide { grid-column: auto; }
  .timeline-heading { align-items: start; flex-direction: column; }
  .inspiration-grid { grid-template-columns: 1fr; }
  .voice-card { inset: 34px 30px 84px; grid-template-columns: 160px 1fr; gap: 28px; }
  .voice-portrait { height: 250px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  :root { --shell: min(100% - 24px, 520px); }
  .section { padding: 76px 0; }
  .nav { padding-left: 12px; }
  .brand-logo { width: 106px; }
  .hero { padding-top: 102px; padding-bottom: 50px; }
  .hero h1 { font-size: clamp(48px, 15vw, 68px); }
  .hero-lead { font-size: 15px; }
  .hero-stats { grid-template-columns: 1fr; }
  .hero-stats div { display: flex; justify-content: space-between; align-items: baseline; }
  .hero-visual { height: 460px; border-radius: 24px; }
  .hero-visual::before { inset: 8px; border-radius: 18px; }
  .hero-gallery-ui { left: 18px; right: 18px; bottom: 17px; }
  .announcement-window { min-height: 72px; }
  .announcement-slide { align-items: flex-start; }
  .announcement-dots { display: none; }
  .competition-photo { height: 205px; }
  .chapter-transition { height: 190px; }
  .chapter-copy { gap: 10px; padding: 0 16px; }
  .chapter-copy span { display: none; }
  .chapter-copy b { font-size: 14px; }
  .detail-panel { padding: 20px; border-radius: 22px; }
  .detail-metrics { grid-template-columns: 1fr; }
  .detail-metrics div { min-height: 80px; }
  .round-card { min-height: 0; }
  .eligibility-table-wrap { margin-right: -12px; border-radius: 20px 0 0 20px; }
  .deadline-callout { min-width: 0; width: 100%; }
  .inspiration-card { grid-template-columns: 1fr; }
  .inspiration-card img { width: 100%; height: 270px; }
  .cinema-stage { height: 500px; }
  .cinema-card { width: min(76vw, 280px); top: 43%; }
  .team-card .film-photo { height: 278px; }
  .voice-stage { min-height: 585px; }
  .voice-card { inset: 25px 22px 90px; grid-template-columns: 1fr; align-content: start; gap: 20px; }
  .voice-portrait { width: 150px; height: 190px; }
  .voice-content > p { font-size: 22px; }
  .prize-gallery { grid-template-columns: 1fr; grid-auto-rows: 260px; }
  .prize-card-wide, .prize-more { grid-column: auto; }
  .register-card { padding: 26px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
}



/* 2026 revision: page-like competition guide, restrained transitions, and Vrindavan finale */
.competition-portal {
  position: relative;
  min-height: 430px;
  margin-top: 44px;
  padding: 112px 0 104px;
  overflow: hidden;
  color: #fff;
  border-radius: 46px 46px 0 0;
  background:
    radial-gradient(circle at 76% 22%, rgba(239,191,103,.10), transparent 25%),
    radial-gradient(circle at 18% 110%, rgba(111,91,177,.17), transparent 34%),
    linear-gradient(145deg, #252d59 0%, #1c2349 52%, #151b3b 100%);
  box-shadow: 0 -24px 70px rgba(22,27,59,.10);
}
.competition-portal::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .34;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(180deg, #000, transparent 90%);
}
.portal-backdrop { position: absolute; inset: 0; pointer-events: none; }
.portal-backdrop::before,
.portal-backdrop::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(239,191,103,.16);
  border-radius: 50%;
  transform: translate(-50%,-50%);
}
.portal-backdrop::before { width: 520px; height: 520px; }
.portal-backdrop::after { width: 760px; height: 760px; opacity: .55; }
.portal-backdrop span { position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: 50%; background: #efbf67; box-shadow: 0 0 28px rgba(239,191,103,.45); }
.portal-backdrop span:nth-child(1) { transform: translate(255px,-84px); }
.portal-backdrop span:nth-child(2) { transform: translate(-288px,112px) scale(.7); opacity: .55; }
.portal-backdrop span:nth-child(3) { transform: translate(96px,214px) scale(.55); opacity: .4; }
.portal-shell { position: relative; z-index: 2; display: grid; grid-template-columns: 1.02fr .98fr; gap: 72px; align-items: center; }
.portal-copy .section-label { color: #efbf67; }
.portal-copy h2 { margin: 0; max-width: 720px; color: #fff; font: 500 clamp(43px,5vw,70px)/.98 "Libre Caslon Display", Georgia, serif; letter-spacing: -.04em; }
.portal-copy > p:last-child { max-width: 620px; margin: 22px 0 0; color: rgba(241,243,255,.62); line-height: 1.75; }
.portal-open {
  position: relative;
  display: grid;
  grid-template-columns: 58px 1fr auto;
  gap: 18px;
  align-items: center;
  width: 100%;
  min-height: 126px;
  padding: 22px 24px;
  overflow: hidden;
  color: #fff;
  text-align: left;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 28px;
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(18px);
  box-shadow: 0 26px 70px rgba(7,10,30,.22);
  cursor: pointer;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s ease, background .35s ease, box-shadow .35s ease;
}
.portal-open::before { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 22%, rgba(239,191,103,.09), transparent 70%); transform: translateX(-110%); transition: transform .7s ease; }
.portal-open:hover { transform: translateY(-7px); border-color: rgba(239,191,103,.44); background: rgba(255,255,255,.095); box-shadow: 0 34px 80px rgba(7,10,30,.30); }
.portal-open:hover::before { transform: translateX(110%); }
.portal-open-index { position: relative; z-index: 2; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 17px; color: #f0c87b; background: rgba(239,191,103,.09); border: 1px solid rgba(239,191,103,.18); font: 850 10px/1 Manrope, sans-serif; letter-spacing: .08em; }
.portal-open-copy { position: relative; z-index: 2; min-width: 0; }
.portal-open-copy strong, .portal-open-copy small { display: block; }
.portal-open-copy strong { font: 650 23px/1.08 "Libre Caslon Display", Georgia, serif; }
.portal-open-copy small { margin-top: 8px; color: rgba(255,255,255,.5); font: 700 10px/1.4 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.portal-open b { position: relative; z-index: 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: #20264b; background: #efbf67; font-size: 18px; transition: transform .35s ease; }
.portal-open:hover b { transform: rotate(45deg) scale(1.05); }

body.detail-open { overflow: hidden; }
.details-section.detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 600;
  width: 100%;
  height: 100dvh;
  margin: 0;
  padding: 0 0 110px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transform: translateY(102%) scale(.985);
  transform-origin: 50% 100%;
  border-radius: 40px 40px 0 0;
  background:
    radial-gradient(circle at 88% 7%, rgba(170,108,215,.16), transparent 27%),
    radial-gradient(circle at 8% 78%, rgba(215,151,49,.11), transparent 31%),
    linear-gradient(180deg, #151a3b 0%, #1b2248 52%, #202a57 100%);
  box-shadow: 0 -40px 120px rgba(5,8,27,.42);
  transition: transform .78s cubic-bezier(.16,.78,.18,1), opacity .46s ease, visibility 0s linear .78s;
}
.details-section.detail-overlay.is-open {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: transform .78s cubic-bezier(.16,.78,.18,1), opacity .46s ease, visibility 0s;
}
.details-section.detail-overlay::before { position: fixed; opacity: .58; }
.details-section.detail-overlay > .shell { position: relative; z-index: 2; padding-top: 64px; }
.detail-page-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 76px;
  padding: 12px max(22px, calc((100vw - 1180px)/2));
  border-bottom: 1px solid rgba(255,255,255,.09);
  background: rgba(14,18,43,.80);
  backdrop-filter: blur(24px) saturate(1.1);
  box-shadow: 0 12px 38px rgba(5,8,25,.14);
}
.detail-back, .detail-close {
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.06);
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.detail-back { justify-self: start; display: inline-flex; align-items: center; gap: 10px; min-height: 42px; padding: 0 14px; border-radius: 999px; font: 750 11px/1 Manrope, sans-serif; }
.detail-back > span:first-child { color: #efbf67; font-size: 17px; }
.detail-close { justify-self: end; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border-radius: 50%; font-size: 24px; font-weight: 300; }
.detail-back:hover, .detail-close:hover { transform: translateY(-1px); border-color: rgba(239,191,103,.35); background: rgba(255,255,255,.095); }
.detail-page-brand { text-align: center; }
.detail-page-brand small, .detail-page-brand strong { display: block; }
.detail-page-brand small { color: rgba(255,255,255,.42); font: 800 8px/1 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .15em; }
.detail-page-brand strong { margin-top: 5px; color: #fff; font: 500 21px/1 "Libre Caslon Display", Georgia, serif; }
.detail-overlay .details-heading { max-width: 880px; margin-bottom: 38px; }
.detail-overlay .details-heading::before { content: "Focused guide"; display: inline-flex; margin-bottom: 24px; padding: 8px 11px; border-radius: 999px; color: rgba(255,255,255,.54); background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08); font: 800 8px/1 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .12em; }
.pending-text { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border: 1px solid rgba(239,191,103,.24); border-radius: 999px; color: #f0c678; background: rgba(239,191,103,.07); font: 800 10px/1 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .07em; }

.date-rail { grid-template-columns: repeat(6, minmax(180px, 1fr)); }
.date-rail .date-finale { border-color: rgba(239,191,103,.48); background: linear-gradient(155deg, rgba(239,191,103,.13), rgba(105,87,170,.08), rgba(255,255,255,.035)); }
.date-rail .date-finale::after { content: "VRINDAVAN"; position: absolute; right: 16px; bottom: 14px; color: rgba(239,191,103,.13); font: 800 18px/1 Manrope, sans-serif; letter-spacing: .08em; transform: rotate(-90deg) translateX(30%); transform-origin: right bottom; }

.vrindavan-feature {
  position: relative;
  padding: 18px 0 118px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(180deg, #252e58 0%, #222b54 38%, #1f274d 100%);
}
.vrindavan-feature::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 44%, rgba(239,191,103,.075), transparent 36%); pointer-events: none; }
.vrindavan-script { position: absolute; left: 50%; top: 44%; transform: translate(-50%,-50%); color: rgba(255,255,255,.018); font: 500 clamp(120px,20vw,300px)/1 Georgia, serif; white-space: nowrap; letter-spacing: -.06em; user-select: none; }
.vrindavan-card {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 130px 1fr 250px;
  gap: 38px;
  align-items: center;
  min-height: 330px;
  padding: 44px 48px;
  border: 1px solid rgba(239,191,103,.22);
  border-radius: 34px;
  background: linear-gradient(130deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  box-shadow: 0 34px 90px rgba(8,11,34,.24), inset 0 1px rgba(255,255,255,.04);
  backdrop-filter: blur(18px);
}
.vrindavan-card::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(255,255,255,.045); border-radius: 24px; pointer-events: none; }
.vrindavan-ornament { position: relative; width: 112px; height: 112px; border: 1px solid rgba(239,191,103,.28); border-radius: 50%; }
.vrindavan-ornament::before, .vrindavan-ornament::after { content: ""; position: absolute; left: 50%; top: 50%; border: 1px solid rgba(239,191,103,.18); border-radius: 50%; transform: translate(-50%,-50%); }
.vrindavan-ornament::before { width: 76px; height: 76px; }
.vrindavan-ornament::after { width: 40px; height: 40px; }
.vrindavan-ornament span, .vrindavan-ornament i, .vrindavan-ornament b { position: absolute; left: 50%; top: 50%; display: block; width: 9px; height: 9px; border-radius: 50%; background: #efbf67; box-shadow: 0 0 24px rgba(239,191,103,.38); }
.vrindavan-ornament span { transform: translate(-50%,-56px); }
.vrindavan-ornament i { transform: translate(47px,-50%); }
.vrindavan-ornament b { transform: translate(-56px,-50%); }
.vrindavan-copy .section-label { color: #efbf67; }
.vrindavan-copy h2 { margin: 0; max-width: 700px; color: #fff; font: 500 clamp(42px,4.8vw,68px)/.98 "Libre Caslon Display", Georgia, serif; letter-spacing: -.04em; }
.vrindavan-copy h2 em { color: #efc77d; font-style: italic; font-weight: 400; }
.vrindavan-copy > p:last-child { max-width: 720px; margin: 20px 0 0; color: rgba(242,244,255,.62); line-height: 1.75; }
.vrindavan-date { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; min-height: 196px; padding: 26px; border-radius: 26px; border: 1px solid rgba(239,191,103,.26); background: rgba(10,14,38,.34); box-shadow: inset 0 0 60px rgba(239,191,103,.025); text-align: center; }
.vrindavan-date span { color: #efbf67; font: 850 10px/1 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .16em; }
.vrindavan-date strong { margin: 12px 0 8px; color: #fff; font: 500 clamp(48px,5vw,72px)/.9 "Libre Caslon Display", Georgia, serif; letter-spacing: -.04em; }
.vrindavan-date small { color: rgba(255,255,255,.48); font: 700 10px/1.2 Manrope, sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.inspiration { padding-top: 108px; background: linear-gradient(180deg, #1f274d 0%, #20274f 100%); }
.inspiration-card:first-child { grid-template-columns: 205px 1fr; }
.inspiration-card:first-child img { width: 205px; height: 286px; object-position: center 18%; }
.inspiration-card:first-child p:last-child { font-size: 13px; line-height: 1.72; }

@media (max-width: 900px) {
  .portal-shell { grid-template-columns: 1fr; gap: 34px; }
  .competition-portal { padding: 90px 0 88px; }
  .detail-page-topbar { grid-template-columns: 1fr auto; padding-inline: 18px; }
  .detail-page-brand { display: none; }
  .details-section.detail-overlay > .shell { padding-top: 48px; }
  .vrindavan-card { grid-template-columns: 90px 1fr; }
  .vrindavan-date { grid-column: 1 / -1; min-height: 150px; flex-direction: row; align-items: baseline; gap: 16px; }
  .vrindavan-date strong { margin: 0; }
  .inspiration-card:first-child { grid-template-columns: 180px 1fr; }
  .inspiration-card:first-child img { width: 180px; height: 270px; }
}

@media (max-width: 560px) {
  .competition-portal { min-height: 0; margin-top: 24px; padding: 78px 0 72px; border-radius: 28px 28px 0 0; }
  .portal-open { grid-template-columns: 48px 1fr auto; min-height: 112px; padding: 18px; border-radius: 22px; }
  .portal-open-index { width: 44px; height: 44px; border-radius: 14px; }
  .portal-open-copy strong { font-size: 20px; }
  .portal-open-copy small { font-size: 8px; }
  .portal-open b { width: 40px; height: 40px; }
  .details-section.detail-overlay { border-radius: 24px 24px 0 0; }
  .detail-page-topbar { min-height: 66px; padding-inline: 12px; }
  .detail-back { padding-inline: 11px; }
  .detail-back span:last-child { display: none; }
  .details-section.detail-overlay > .shell { padding-top: 38px; }
  .date-rail { grid-template-columns: repeat(6, 210px); }
  .vrindavan-feature { padding: 8px 0 82px; }
  .vrindavan-card { grid-template-columns: 1fr; gap: 24px; min-height: 0; padding: 30px 24px; border-radius: 26px; }
  .vrindavan-ornament { width: 82px; height: 82px; }
  .vrindavan-ornament::before { width: 57px; height: 57px; }
  .vrindavan-ornament::after { width: 30px; height: 30px; }
  .vrindavan-ornament span { transform: translate(-50%,-41px); }
  .vrindavan-ornament i { transform: translate(32px,-50%); }
  .vrindavan-ornament b { transform: translate(-41px,-50%); }
  .vrindavan-date { grid-column: auto; min-height: 132px; flex-direction: column; align-items: center; gap: 0; }
  .inspiration-card:first-child { grid-template-columns: 1fr; }
  .inspiration-card:first-child img { width: 100%; height: 330px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* --- 2026-09-04 revision: reliable registration CTA --- */
.register-now { gap: 9px; min-height: 54px; font-size: 14px; }
.register-now b { font-size: 17px; transition: transform .2s ease; }
.register-now:hover b { transform: translate(2px,-2px); }

/* 2026 layout refinement: wider desktop canvas + slightly larger reading scale */
@media (min-width: 1081px) {
  :root {
    --shell: calc(100% - clamp(80px, 7vw, 140px));
  }

  .detail-page-topbar {
    padding-inline: clamp(40px, 3.5vw, 70px);
  }

  body {
    font-size: 17px;
  }

  .nav-links { font-size: 14px; gap: 22px; }
  .hero-lead { font-size: 18px; max-width: 720px; }
  .announcement-slide p { font-size: 15px; }
  .mini-list { font-size: 14px; }
  .chapter-copy { font-size: 15px; }

  .detail-tab small { font-size: 12px; }
  .detail-metrics span { font-size: 11px; }
  .round-card > p:not(.round-label) { font-size: 14px; }
  .round-card ul { font-size: 12px; }
  .info-card p:not(.info-icon) { font-size: 14px; }
  .recitation-flow p { font-size: 14px; }
  .syllabus-list span,
  .syllabus-list strong { font-size: 13px; }
  .eligibility-table tbody th small { font-size: 11px; }
  .table-note { font-size: 12px; }
  .source-note span { font-size: 14px; }
  .steps p { font-size: 14px; }
  .date-rail small { font-size: 12px; }
  .inspiration-card p:last-child,
  .inspiration-card:first-child p:last-child { font-size: 14px; }
  .film-copy p { font-size: 13px; }
  .voice-content h3 { font-size: 16px; }
  .voice-content div span { font-size: 12px; }
  .prize-more p { font-size: 13px; }
  .prize-note { font-size: 11px; }
  .contact-list strong { font-size: 15px; }
  .footer p { font-size: 13px; max-width: 440px; }
  .footer-links { font-size: 14px; }
  .footer-meta { font-size: 13px; }

  .competition-grid,
  .inspiration-grid,
  .prize-gallery,
  .footer-grid,
  .contact-grid,
  .journey-grid {
    column-gap: clamp(24px, 2.4vw, 42px);
  }
}

/* 2026-09-04 final typography balance */
@media (min-width: 1081px) {
  body { font-size: 18px; }

  .eyebrow,
  .section-label { font-size: 12px; }

  .nav-links { font-size: 15px; }
  .button { font-size: 14px; }
  .hero-lead { font-size: 20px; line-height: 1.72; }
  .hero-stats strong { font-size: 20px; }
  .hero-stats span { font-size: 10px; }
  .announcement-kicker { font-size: 12px; }
  .announcement-slide p { font-size: 16px; }

  .intro-copy p,
  .section-heading > p:last-child,
  .journey-copy > p,
  .register-card p,
  .contact p,
  .details-heading > p:last-child,
  .recognition-head > p,
  .competition-body > p,
  .detail-hero-row > div > p:last-child,
  .vrindavan-copy > p:last-child { font-size: 17px; }

  .text-link,
  .card-link { font-size: 15px; }
  .competition-photo > span { font-size: 11px; }
  .mini-list { font-size: 15px; line-height: 1.5; }
  .chapter-copy { font-size: 16px; }
  .chapter-copy b { font-size: 20px; }

  .detail-tab > span { font-size: 12px; }
  .detail-tab strong { font-size: 18px; }
  .detail-tab small { font-size: 13px; }
  .panel-kicker,
  .round-label { font-size: 11px; }
  .detail-metrics span { font-size: 12px; }
  .round-number { font-size: 11px; }
  .round-card > p:not(.round-label) { font-size: 15px; }
  .round-card ul { font-size: 13.5px; line-height: 1.5; }
  .info-card p:not(.info-icon),
  .recitation-flow p { font-size: 15px; }
  .syllabus-list span,
  .syllabus-list strong { font-size: 14px; }
  .eligibility-table thead th { font-size: 11.5px; }
  .eligibility-table tbody th { font-size: 15.5px; }
  .eligibility-table tbody th small { font-size: 12px; }
  .table-note { font-size: 13px; }
  .source-note span,
  .steps p { font-size: 15px; }
  .steps h3 { font-size: 20px; }

  .date-index { font-size: 9px; }
  .date-rail p { font-size: 11.5px; }
  .date-rail h3 { font-size: 26px; }
  .date-rail small { font-size: 13px; }
  .vrindavan-date span,
  .vrindavan-date small { font-size: 11px; }

  .card-kicker { font-size: 11px; }
  .inspiration-card p:last-child,
  .inspiration-card:first-child p:last-child { font-size: 15.5px; line-height: 1.72; }

  .film-copy span { font-size: 10px; }
  .film-copy p { font-size: 14px; }

  .voice-content h3 { font-size: 18px; }
  .voice-content div span { font-size: 13px; }
  .prize-overlay span { font-size: 10px; }
  .prize-more p { font-size: 14px; }
  .prize-note { font-size: 12px; }
  .contact-list span { font-size: 11px; }
  .contact-list strong { font-size: 17px; }
  .footer p { font-size: 14.5px; line-height: 1.7; }
  .footer-links { font-size: 15px; }
  .footer-meta { font-size: 14px; }
}

@media (min-width: 721px) and (max-width: 1080px) {
  body { font-size: 16.5px; }
  .hero-lead { font-size: 17px; }
  .intro-copy p,
  .section-heading > p:last-child,
  .journey-copy > p,
  .register-card p,
  .contact p,
  .recognition-head > p,
  .competition-body > p { font-size: 16px; }
  .mini-list { font-size: 14px; }
  .inspiration-card p:last-child,
  .inspiration-card:first-child p:last-child { font-size: 14.5px; }
}

/* 2026-09-04 mobile-only responsive hardening.
   All rules below are scoped to phone-sized/coarse-pointer layouts so the
   existing desktop presentation remains unchanged. */
@media (max-width: 820px), (max-width: 1080px) and (hover: none) and (pointer: coarse) {
  html,
  body {
    width: 100%;
    max-width: 100%;
  }

  body {
    margin: 0;
    min-width: 0;
  }

  main,
  .footer,
  .site-header {
    width: 100%;
    max-width: 100%;
  }

  .shell {
    width: min(calc(100% - 24px), 940px);
    max-width: 100%;
  }

  /* Navigation: keep the existing hamburger interaction usable in portrait
     and landscape phone layouts. */
  .site-header { padding-top: 10px; }
  .nav {
    min-height: 60px;
    padding: 8px 10px 8px 12px;
  }
  .menu-toggle {
    display: block;
    flex: 0 0 auto;
  }
  .nav-links {
    position: absolute;
    top: 78px;
    left: 12px;
    right: 12px;
    display: grid;
    gap: 0;
    max-height: calc(100dvh - 96px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 12px;
    border-radius: 18px;
    background: rgba(255,252,246,.98);
    box-shadow: var(--shadow);
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: .25s ease;
  }
  .nav-links.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
  .nav-links a { padding: 13px; }
  .nav-links a::after { display: none; }

  /* Prevent grid/flex min-content sizing from forcing horizontal overflow. */
  .hero-copy,
  .announcement-window,
  .intro > *,
  .journey-grid > *,
  .contact-grid > *,
  .register-card > *,
  .recognition-head > *,
  .detail-hero-row > *,
  .syllabus-card > *,
  .portal-shell > *,
  .vrindavan-card > *,
  .voice-content,
  .competition-body,
  .film-copy {
    min-width: 0;
  }

  /* Hero: use the full phone width instead of inheriting the desktop body
     gutter, while retaining the same content and visual hierarchy. */
  .hero {
    min-height: 0;
    padding-top: 104px;
  }
  .hero-grid {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .hero-copy { padding-bottom: 0; }
  .hero h1 {
    max-width: 100%;
    font-size: clamp(48px, 15vw, 68px);
    line-height: .96;
  }
  .hero-lead {
    max-width: none;
    font-size: 15px;
    line-height: 1.68;
  }
  .hero-visual {
    width: 100%;
    height: clamp(380px, 105vw, 520px);
    max-width: 100%;
  }

  /* Cards and content blocks get compact, consistent phone gutters. */
  .announcement-shell {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px;
  }
  .announcement-slide p,
  .competition-body > p,
  .intro-copy p,
  .section-heading > p:last-child,
  .journey-copy > p,
  .register-card p,
  .contact p,
  .details-heading > p:last-child,
  .recognition-head > p,
  .detail-hero-row > div > p:last-child,
  .vrindavan-copy > p:last-child {
    overflow-wrap: anywhere;
  }
  .intro,
  .journey-grid,
  .contact-grid,
  .register-card,
  .recognition-head,
  .detail-hero-row,
  .syllabus-card,
  .portal-shell {
    grid-template-columns: 1fr;
  }
  .competition-grid.four,
  .inspiration-grid {
    grid-template-columns: 1fr;
  }
  .competition-body { padding: 24px; }

  /* Full-screen competition guide remains scrollable and readable without
     introducing page-level horizontal scrolling. */
  .details-section.detail-overlay {
    width: 100vw;
    max-width: 100vw;
    overflow-x: hidden;
  }
  .detail-panel,
  .detail-tab,
  .round-card,
  .info-card,
  .recitation-flow article,
  .syllabus-card {
    max-width: 100%;
  }
  .detail-tab {
    grid-template-columns: 46px 1fr;
    gap: 12px;
  }
  .detail-tab > div,
  .portal-open-copy {
    min-width: 0;
  }
  .detail-tab strong,
  .detail-tab small,
  .portal-open-copy strong,
  .portal-open-copy small {
    overflow-wrap: anywhere;
  }
  .round-roadmap,
  .recitation-flow,
  .detail-info-grid {
    grid-template-columns: 1fr;
  }
  .round-connector { height: 32px; }
  .round-connector::before { width: 1px; height: 100%; }
  .recitation-arrow { transform: rotate(90deg); }

  /* Wide data stays intentionally horizontally scrollable rather than
     shrinking to unreadable text. */
  .eligibility-table-wrap,
  .date-rail {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }
  .date-rail {
    scroll-snap-type: x proximity;
    padding-bottom: 18px;
  }
  .date-rail article { scroll-snap-align: start; }

  /* Long contact strings can wrap cleanly instead of widening the page. */
  .contact-list a {
    align-items: flex-start;
    min-width: 0;
  }
  .contact-list strong {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-align: right;
  }

  /* Touch targets. */
  .button,
  .nav-cta,
  .announcement-controls > button,
  .cinema-controls button,
  .voice-controls button,
  .detail-back,
  .detail-close {
    min-height: 44px;
  }
}

@media (max-width: 560px) {
  .section { padding: 72px 0; }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .hero-actions .button { width: 100%; }

  .hero-stats div {
    gap: 16px;
  }

  .announcement-controls {
    justify-content: space-between;
  }

  .portal-open {
    grid-template-columns: 44px minmax(0, 1fr) 40px;
    gap: 12px;
    padding: 16px;
  }

  .detail-panel { padding: 18px; }
  .detail-switcher { gap: 10px; }
  .detail-tab { padding: 14px; }
  .detail-metrics { grid-template-columns: 1fr; }

  .syllabus-list div {
    align-items: flex-start;
    gap: 12px;
  }
  .syllabus-list span,
  .syllabus-list strong {
    max-width: 52%;
  }
  .syllabus-list strong { text-align: right; }

  .vrindavan-copy h2,
  .portal-copy h2,
  .details-heading h2,
  .timeline-heading h2,
  .recognition-head h2,
  .register-card h2,
  .contact h2,
  .intro h2,
  .section-heading h2,
  .journey-copy h2 {
    overflow-wrap: anywhere;
  }

  .voice-card {
    left: 12px;
    right: 12px;
  }

  .contact-list a {
    flex-direction: column;
    gap: 7px;
  }
  .contact-list strong { text-align: left; }

  .register-actions .button { width: 100%; }
}

@media (max-width: 380px) {
  :root { --shell: calc(100% - 20px); }
  .brand-logo { width: 96px; }
  .nav { border-radius: 18px; }
  .hero h1 { font-size: clamp(44px, 14vw, 54px); }
  .hero-visual { height: 370px; }
  .competition-body,
  .register-card,
  .vrindavan-card { padding-left: 20px; padding-right: 20px; }
}
