/* Small requirement-specific finishing touches for the original VAMOS design. */
.nav { position: fixed; }
.nav .reg { font-size: 12px !important; padding: 16px 23px !important; letter-spacing: .08em !important; }
.hero .badge { font-size: 16px; padding: 15px 18px; }
.hero .copy strong { color: #fff; font-weight: 900; }
.festival .sticky > p { font-size: 18px; font-weight: 700; color: #fff; }
.hero .eyebrow { color: #dbe6f5; }
.hero h1 { max-width: 850px; }
.reference-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(35px, 6vw, 70px); border: 1px solid rgba(255,255,255,.24); background: rgba(7,22,47,.68); backdrop-filter: blur(12px); }
.reference-stats div { padding: 16px 18px; border-right: 1px solid rgba(255,255,255,.19); }
.reference-stats div:last-child { border: 0; }
.reference-stats strong { display: block; color: var(--lime); font: clamp(24px, 3.4vw, 40px)/.9 var(--d); letter-spacing: -.07em; }
.reference-stats span { display: block; margin-top: 7px; color: #d1ddec; font: 9px var(--m); letter-spacing: .07em; text-transform: uppercase; }
.experience .placeholder { grid-column: 2; display: inline-block; margin-top: 9px; color: var(--lime); font: 10px var(--m); letter-spacing: .04em; }
.faq-pending { padding: 24px; border: 1px dashed var(--line); font-size: 17px; line-height: 1.7; }
.faq-pending strong { color: var(--red); font: 700 12px var(--m); letter-spacing: .08em; }
section[id] { scroll-margin-top: 96px; }
@media(max-width: 540px) {
  .nav .reg { font-size: 11px !important; padding: 14px 18px !important; }
  .hero .badge { font-size: 12px; padding: 13px 14px; }
}
@media(max-width: 700px) {
  .reference-stats { grid-template-columns: repeat(2, 1fr); }
  .reference-stats div:nth-child(2) { border-right: 0; }
  .reference-stats div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.19); }
}

/* Continuous one-page motion, adapted from the supplied VAMOS reference. */
html { scroll-padding-top: 88px; }
.nav { transition: background .35s, box-shadow .35s, border-color .35s; }
.nav.scrolled { background: rgba(7,22,47,.96); box-shadow: 0 8px 24px rgba(3,13,30,.18); }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--e), transform .7s var(--e); transition-delay: var(--reveal-delay, 0ms); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.hero .eyebrow, .hero h1, .hero .hero-bottom, .hero .reference-stats { animation: hero-rise .8s var(--e) both; }
.hero .eyebrow { animation-delay: .08s; }
.hero h1 { animation-delay: .16s; }
.hero .hero-bottom { animation-delay: .28s; }
.hero .reference-stats { animation-delay: .38s; }
@keyframes hero-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.back-to-top { position: fixed; z-index: 90; right: 22px; bottom: 22px; width: 44px; height: 44px; display: grid; place-items: center; background: var(--lime); color: var(--ink); text-decoration: none; font-size: 20px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s, transform .25s, visibility .25s; }
.back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
@media(prefers-reduced-motion:reduce) { .reveal { opacity: 1; transform: none; } .hero .eyebrow, .hero h1, .hero .hero-bottom, .hero .reference-stats { animation: none; } }

/* Landing page: keep the full event story visible before the first scroll. */
.hero { min-height: 100svh; }
.hero .hero-bottom { gap: clamp(20px, 4vw, 58px); align-items: center; }
.hero .copy { font-size: clamp(16px, 1.65vw, 21px); line-height: 1.6; }
.hero .cta .btn { min-height: 48px; font-size: 11px; }
.race-date-card { position: relative; display: grid; justify-items: center; gap: 3px; width: 166px; margin: 0 auto 18px; padding: 16px 14px 14px; color: var(--ink); text-align: center; background: linear-gradient(145deg,#f7fbff 0%,#d8e8ff 52%,#b8d5ff 100%); border: 1px solid rgba(255,255,255,.7); border-radius: 13px; box-shadow: 0 18px 42px rgba(0,0,0,.3), inset 0 1px 0 #fff; transform: perspective(850px) rotateX(7deg) rotateY(-8deg); transform-style: preserve-3d; animation: date-card-float 4.2s ease-in-out infinite; }
.date-kicker,.date-meta,.date-city { font: 700 9px var(--m); letter-spacing: .16em; text-transform: uppercase; }
.race-date-card strong { display: block; color: #1766c8; font: 900 72px/.82 var(--d); letter-spacing: -.07em; text-shadow: 0 7px 0 rgba(23,102,200,.12); transform: translateZ(30px); }
.date-meta { color: #1766c8; }
.date-city { margin-top: 6px; color: #506780; font-size: 8px; }
.race-date-card i { position: absolute; top: 9px; right: -12px; padding: 5px 8px; color: #fff; background: var(--red); border-radius: 99px; font: 700 8px var(--m); font-style: normal; transform: translateZ(24px) rotate(7deg); }
@keyframes date-card-float { 0%,100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 -7px; rotate: 1deg; } }
.count { gap: 5px; padding: 5px; border-radius: 14px; border-color: rgba(255,255,255,.36); background: rgba(5,18,39,.55); perspective: 900px; }
.count div { min-width: 0; padding: 11px 8px 9px; border: 1px solid rgba(255,255,255,.12); border-radius: 9px; background: linear-gradient(155deg,rgba(24,52,91,.98),rgba(7,22,47,.98)); box-shadow: 0 8px 18px rgba(0,0,0,.2); transform-style: preserve-3d; transition: transform .28s, border-color .28s, box-shadow .28s; }
.count div:hover { transform: translateY(-5px) rotateX(7deg); border-color: var(--lime); box-shadow: 0 15px 24px rgba(0,0,0,.28); }
.count strong { transform-origin: 50% 50%; backface-visibility: hidden; font-variant-numeric: tabular-nums; }
.count span { display: block; margin-top: 5px; text-transform: uppercase; letter-spacing: .1em; }
.reference-stats { border-radius: 12px; overflow: hidden; }
.reference-stats div { background: rgba(5,18,39,.5); transition: background .3s, transform .3s; }
.reference-stats div:hover { background: rgba(33,75,128,.7); transform: translateY(-3px); }
/* Experience cards retain the PDF copy and order, with tactile depth. */
.experiences { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; border: 0; perspective: 1200px; }
.experience { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; min-height: 214px; padding: 20px; border: 1px solid rgba(255,255,255,.16); border-top: 3px solid rgba(214,255,0,.55); border-radius: 12px; background: linear-gradient(145deg,#102e58,#07162f 78%); box-shadow: 0 15px 32px rgba(0,0,0,.2); transform-style: preserve-3d; transition: transform .48s var(--e),box-shadow .48s,border-color .3s,background .3s; }
.experience:nth-child(3n+2) { border-top-color: rgba(240,53,66,.75); }
.experience:hover { z-index: 2; padding-left: 20px; color: #fff; border-color: rgba(255,255,255,.34); transform: perspective(900px) translateY(-8px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); box-shadow: 0 28px 48px rgba(0,0,0,.38); }
.experience .num { color: var(--lime); font-size: 10px; letter-spacing: .16em; transform: translateZ(20px); }
.experience>div { margin-top: auto; transform: translateZ(24px); }
.experience h3 { margin: 0 0 8px; font-size: clamp(18px,1.7vw,24px); line-height: 1.08; }
.experience p { margin: 0; color: #bdcde0; font-size: 12px; line-height: 1.55; }
.experience .plus { position: absolute; top: 16px; right: 17px; color: rgba(255,255,255,.45); font-size: 21px; transition: color .3s,transform .3s; }
.experience:hover .plus { color: var(--lime); transform: rotate(45deg) translateZ(22px); }
.experience .placeholder { color: var(--lime); }
/* Four horizontal distance cards and four interactive prize cards. */
.race-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 48px; border: 0; perspective: 1300px; }
.race { min-height: 345px; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 22px 18px; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 13px; color: #fff; background: linear-gradient(150deg,#153b6e 0%,#0a2143 72%,#07162f 100%); box-shadow: 0 17px 36px rgba(2,12,28,.25); transform-style: preserve-3d; transition: transform .48s var(--e),box-shadow .48s,border-color .3s; }
.race:nth-child(2) { background: linear-gradient(150deg,#233b67,#102344 72%,#07162f); }
.race:nth-child(3) { background: linear-gradient(150deg,#7d2636,#401c35 72%,#1c1934); }
.race:nth-child(4) { background: linear-gradient(150deg,#b63d42,#6f263e 72%,#2c1d3c); }
.race:before { z-index: -1; inset: 0; background: radial-gradient(circle at 85% 10%,rgba(255,255,255,.22),transparent 42%); border-radius: inherit; transform: none; transition: opacity .4s; opacity: .62; }
.race:hover:before { transform: none; opacity: 1; }
.race:hover { padding: 22px 18px; color: #fff; transform: perspective(950px) translateY(-9px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); box-shadow: 0 30px 55px rgba(2,12,28,.4); border-color: rgba(255,255,255,.4); }
.race .num { color: #c9d9ee; font: 700 9px var(--m); letter-spacing: .15em; }
.race .distance { margin-top: 14px; color: #fff; font-size: clamp(52px,6.2vw,82px); line-height: .82; }
.race .price { margin-top: auto; color: #fff; font-size: 24px; }
.race .btn { align-self: stretch; justify-content: center; margin-top: 8px; padding: 12px 10px; color: #fff; border-color: rgba(255,255,255,.5); border-radius: 99px; }
.race .btn:hover { color: var(--ink); background: var(--lime); border-color: var(--lime); }
.prize-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; perspective: 1300px; }
.prize { position: relative; min-height: 300px; overflow: hidden; border-radius: 13px; background: linear-gradient(150deg,#1b477e,#0b2448); box-shadow: 0 17px 34px rgba(0,0,0,.22); transform-style: preserve-3d; transition: transform .48s var(--e),box-shadow .48s,background .3s; }
.prize:after { content: ''; position: absolute; inset: -40% -70%; pointer-events: none; background: linear-gradient(110deg,transparent 42%,rgba(255,255,255,.1) 50%,transparent 58%); transform: translateX(-55%) rotate(8deg); transition: transform .8s var(--e); }
.prize:hover { transform: perspective(950px) translateY(-9px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); box-shadow: 0 30px 55px rgba(0,0,0,.38); }
.prize:hover:after { transform: translateX(55%) rotate(8deg); }
.prize>* { transform: translateZ(22px); }
.prize strong { font-size: clamp(38px,4vw,58px); }
/* Smooth one-page reveals; no moving ticker. */
.reveal { opacity: 0; transform: translate3d(0,28px,0) rotateX(3deg) scale(.98); transform-origin: 50% 100%; transition: opacity .72s var(--e),transform .72s var(--e); transition-delay: var(--reveal-delay,0ms); backface-visibility: hidden; }
.reveal.visible { opacity: 1; transform: translate3d(0,0,0) rotateX(0) scale(1); }
.experience.reveal.visible:hover,.race.reveal.visible:hover,.prize.reveal.visible:hover { transform: perspective(950px) translateY(-8px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.hero .eyebrow,.hero h1,.hero .hero-bottom,.hero .reference-stats { animation: hero-rise .8s var(--e) both; }
.hero .eyebrow { animation-delay: .08s; }
.hero h1 { animation-delay: .16s; }
.hero .hero-bottom { animation-delay: .28s; }
.hero .reference-stats { animation-delay: .4s; }
@keyframes hero-rise { from { opacity: 0; transform: translateY(26px) scale(.985); filter: blur(4px); } to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } }
@media(max-width:1050px) { .race-list,.prize-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .experiences { grid-template-columns: repeat(2,minmax(0,1fr)); } .race { min-height: 300px; } }
@media(max-width:700px) { .experiences { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; } .experience { min-height: 195px; padding: 15px; } .race-list,.prize-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; } .race { min-height: 285px; padding: 17px 13px; } .race:hover { padding: 17px 13px; } .race .distance { font-size: clamp(48px,12vw,68px); } .prize { min-height: 235px; padding: 16px; } .hero { padding-top: 115px; } .hero-bottom { grid-template-columns: 1fr; } .race-date-card { width: 145px; } .race-date-card strong { font-size: 62px; } }
@media(max-width:440px) { .experiences,.race-list,.prize-grid { grid-template-columns: 1fr; } .experience,.race,.prize { min-height: 190px; } .race { min-height: 240px; } .reference-stats div { padding: 12px 10px; } .count { gap: 3px; } .count div { padding: 9px 5px 7px; } }
@media(prefers-reduced-motion:reduce) { .race-date-card { animation: none; } .reveal { opacity: 1; transform: none; transition: none; } .experience,.race,.prize { transition: none; } }

/* Fit the event proposition, date, countdown and key facts into a desktop first screen. */
@media(min-width:851px) {
  .hero { padding-top: 120px; padding-bottom: 32px; }
  .hero h1 { font-size: clamp(62px,8.4vw,120px); line-height: .82; margin: 15px 0 19px; }
  .reference-stats { margin-top: clamp(18px,2.2vw,32px); }
}
@media(min-width:851px) and (max-width:1120px) {
  .hero .hero-bottom { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(270px,.9fr); gap: 24px; }
  .hero .count { width: 100%; }
}
@media(max-width:540px) { .hero h1 { font-size: 61px; } }

/* Keep every added animation inside the original VAMOS color palette. */
.race-date-card { background: var(--paper); border: 2px solid var(--lime); box-shadow: 0 18px 42px rgba(0,0,0,.3), inset 0 1px 0 #fff; }
.race-date-card strong { color: var(--red); text-shadow: 0 7px 0 rgba(240,53,66,.12); }
.date-meta { color: var(--ink); }
.date-meta { font-size: 11px; letter-spacing: .12em; }
.date-city { color: var(--ink); font-size: 10px; letter-spacing: .12em; }
.count div { background: linear-gradient(155deg,rgba(255,255,255,.12),rgba(7,22,47,.98)); }
.reference-stats div:hover { background: rgba(255,255,255,.12); }
.experience { background: linear-gradient(145deg,rgba(255,255,255,.08),var(--ink) 78%); }
.experience p { color: var(--sky); }
.race { background: linear-gradient(150deg,rgba(255,255,255,.1),var(--ink) 72%); }
.race:nth-child(2),.race:nth-child(3),.race:nth-child(4) { background: linear-gradient(150deg,rgba(255,255,255,.1),var(--ink) 72%); }
.race .num { color: var(--sky); }
.prize { background: linear-gradient(150deg,rgba(255,255,255,.1),var(--ink)); }

/* Section-by-section 3D entrances inspired by the supplied long-page reference. */
.reveal {
  transform: perspective(1100px) translate3d(var(--reveal-x,0),var(--reveal-y,38px),-54px)
    rotateX(var(--reveal-rx,7deg)) rotateY(var(--reveal-ry,0deg)) scale(.965);
  transform-origin: 50% 55%;
  transition: opacity .76s var(--e),transform .82s var(--e);
  backface-visibility: hidden;
}
.reveal.visible { transform: perspective(1100px) translate3d(0,0,0) rotateX(0) rotateY(0) scale(1); }
.experience,.race,.prize,.photo,.cause-img,.logo { transform-style: preserve-3d; backface-visibility: hidden; }
.experience .num,.experience h3,.experience p,.race .num,.race .distance,.race .price,.race .btn,.prize>* { transform: translateZ(22px); }
.race .distance { transition: transform .38s var(--e); }
.race:hover .distance { transform: translateZ(38px) translateY(-3px) scale(1.045); }
.photo img,.cause-img img { transform: translateZ(1px); transition: transform .8s var(--e),filter .8s var(--e); }
.photo:hover img,.cause-img:hover img { transform: translateZ(18px) scale(1.035); }
.logo { transition: transform .42s var(--e),box-shadow .42s var(--e); }
.logo:hover { transform: perspective(900px) rotateX(5deg) rotateY(-6deg) translateY(-6px); box-shadow: 0 18px 32px rgba(7,22,47,.18); }
.prize:after {
  background: radial-gradient(ellipse at var(--foil-x,50%) var(--foil-y,28%),rgba(255,255,255,.2),transparent 42%),
    linear-gradient(110deg,transparent 42%,rgba(255,255,255,.12) 50%,transparent 58%);
}
.faq-pending { transform-style: preserve-3d; transition: transform .4s var(--e),box-shadow .4s var(--e),border-color .4s; }
.faq-pending:hover { transform: perspective(900px) rotateX(3deg) rotateY(-3deg) translateY(-4px); box-shadow: 0 18px 35px rgba(7,22,47,.12); border-color: var(--red); }
.race-date-card:hover { transform: perspective(850px) rotateX(calc(7deg + var(--tilt-x,0deg))) rotateY(calc(-8deg + var(--tilt-y,0deg))) translateY(-3px); }
.count { perspective: 1200px; }
.count div { transform-style: preserve-3d; backface-visibility: hidden; }
.count strong { transform-style: preserve-3d; transform-origin: 50% 55%; backface-visibility: hidden; }
@media(prefers-reduced-motion:reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .photo img,.cause-img img,.logo,.faq-pending,.race .distance { transition: none; }
}

/* Match the supplied page's bold, editorial event sections using existing colors. */
.hero h1 { max-width: 10ch; font-size: clamp(64px,10vw,145px); line-height: .78; letter-spacing: -.045em; }
.hero-mantra { display: inline-block; margin: -4px 0 22px; padding-left: 13px; border-left: 3px solid var(--red); color: var(--lime); font: 800 clamp(14px,1.6vw,20px)/1 var(--d); letter-spacing: .08em; text-transform: uppercase; animation: hero-rise .8s .24s both; }
#intro { overflow: hidden; color: var(--paper); background: var(--ink); }
#intro .kick { color: var(--lime); }
#intro .heading,#intro .copy { color: var(--paper); }
#intro .money { border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.07); }
#intro .money p { color: var(--sky); }
.festival { color: var(--ink); background: var(--paper); }
.festival .kick,.festival .num { color: var(--red); }
.festival .sticky>p { color: var(--ink); }
.races { background: var(--paper); }
.race-image { position: relative; z-index: 1; width: calc(100% + 36px); height: 122px; margin: -22px -18px 2px; overflow: hidden; border-radius: 10px 10px 0 0; transform: translateZ(28px); }
.race-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.05); transition: transform .75s var(--e),filter .75s var(--e); }
.race:nth-child(1) .race-image img { object-position: 12% 48%; }
.race:nth-child(2) .race-image img { object-position: 38% 52%; }
.race:nth-child(3) .race-image img { object-position: 67% 50%; }
.race:nth-child(4) .race-image img { object-position: 91% 47%; }
.race:hover .race-image img { transform: scale(1.16); filter: saturate(1.08) contrast(1.06); }
.corporate { background: var(--ink); color: var(--paper); }
.corporate .kick { color: var(--lime); }
.corporate .copy,.corporate .copy p,.corporate .copy li { color: var(--paper); }
.corporate .btn { color: var(--paper); }
.prizes { background: var(--ink); }
#cause { color: var(--paper); background: var(--red); }
#cause .kick { color: var(--lime); }
#cause .heading,#cause .copy { color: var(--paper); }
.logos { color: var(--paper); background: var(--ink); }
.logos .copy { color: var(--sky); }
.logo-row { border-color: rgba(255,255,255,.22); }
.logo { border-color: rgba(255,255,255,.22); }
.logo:hover { background: rgba(255,255,255,.08); }
#faq { background: var(--paper); }
.race-list,.prize-grid { perspective: 1500px; }
.race,.prize,.experience { transform-origin: center center; }
@media(max-width:700px) {
  .race-image { height: 112px; width: calc(100% + 26px); margin: -17px -13px 2px; }
  .hero h1 { font-size: clamp(54px,12vw,76px); }
}

/* Image-led experience carousel: advances every second and loops continuously. */
.experience-slider { min-width:0; perspective:1600px; }
.experience-slider-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; color:var(--ink); font:700 10px var(--m); letter-spacing:.1em; text-transform:uppercase; }
.experience-slider-controls>div { display:flex; align-items:center; gap:12px; }
.experience-slider-controls button { width:42px; height:42px; border:1px solid rgba(7,22,47,.3); border-radius:50%; color:var(--ink); background:transparent; font-size:22px; cursor:pointer; transition:transform .25s,background .25s,color .25s; }
.experience-slider-controls button:hover:not(:disabled) { transform:translateY(-3px) rotate(-8deg); color:var(--paper); background:var(--red); }
.experience-slider-controls button:disabled { opacity:.32; cursor:default; }
.experience-counter { min-width:54px; text-align:center; }
.experience-viewport { overflow:hidden; padding:8px 2px 24px; margin:-8px -2px 0; }
.experiences { display:flex; gap:16px; border:0; transition:transform .72s cubic-bezier(.2,.8,.2,1); will-change:transform; }
.experience-slider .experience { position:relative; flex:0 0 calc((100% - 16px)/2); min-width:0; min-height:385px; display:flex; flex-direction:column; align-items:stretch; gap:12px; padding:0 0 20px; overflow:hidden; border:1px solid rgba(7,22,47,.12); border-radius:14px; color:var(--ink); background:linear-gradient(150deg,#fffdf7,#eae5d9); box-shadow:0 14px 25px rgba(7,22,47,.12); transform-style:preserve-3d; transition:transform .4s var(--e),box-shadow .4s var(--e); }
.experience-slider .experience:hover { padding-left:0; color:var(--ink); transform:perspective(1000px) translateY(-7px) rotateX(2deg) rotateY(-2deg); box-shadow:0 24px 42px rgba(7,22,47,.2); }
.experience-art { width:100%; height:190px; object-fit:cover; background:var(--ink); transform:translateZ(22px); }
.experience-slider .experience .num { align-self:flex-start; margin:4px 18px 0; font:700 11px var(--m); color:var(--red); }
.experience-slider .experience>div { padding:0 18px; }
.experience-slider .experience h3 { font-size:clamp(21px,2.4vw,30px); line-height:.98; }
.experience-slider .experience p { margin-top:10px; color:#53637a; font-size:13px; line-height:1.55; }
.experience-slider .experience .plus { position:absolute; right:18px; top:155px; display:grid; place-items:center; width:48px; height:48px; border:1px solid rgba(255,255,255,.65); border-radius:50%; color:var(--ink); background:var(--lime); font-size:20px; transform:translateZ(45px); }
.experience-slider .placeholder { display:block; margin-top:10px; font:10px var(--m); color:var(--red); }
.experience-progress { height:4px; overflow:hidden; background:rgba(7,22,47,.15); }
.experience-progress span { display:block; width:100%; height:100%; background:var(--red); transform:scaleX(.333); transform-origin:left; transition:transform .55s var(--e); }
.prize { position:relative; overflow:hidden; transform-style:preserve-3d; box-shadow:0 12px 25px rgba(0,0,0,.2); }
.prize:before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(135deg,rgba(255,255,255,.2),transparent 35%,transparent 68%,rgba(214,255,0,.13)); transform:translateZ(2px); }
.prize>* { position:relative; }
.prize strong { font-size:clamp(48px,5vw,72px); text-shadow:0 7px 0 rgba(0,0,0,.18); }
.prize:hover { transform:perspective(760px) translateY(-15px) translateZ(26px) rotateX(8deg) rotateY(calc(-10deg + var(--tilt-y,0deg))) scale(1.035); box-shadow:0 34px 58px rgba(0,0,0,.42),0 0 26px rgba(214,255,0,.15); }
.prize { transition:transform .28s cubic-bezier(.16,.84,.24,1),box-shadow .28s,background .3s; }
.prize strong { transition:transform .32s cubic-bezier(.16,.84,.24,1),text-shadow .32s; }
.prize:hover strong { transform:translateZ(48px) scale(1.1) rotate(-2deg); text-shadow:0 12px 0 rgba(0,0,0,.22),0 0 22px rgba(214,255,0,.25); }
.corporate-grid { grid-template-columns:1.1fr .9fr; }
.corporate-story { min-width:0; }
.corporate-story .heading { font-size:clamp(47px,7vw,92px); }
.corporate-photo { position:relative; max-width:620px; height:clamp(190px,26vw,300px); margin-top:30px; overflow:hidden; border:1px solid rgba(255,255,255,.3); border-radius:14px; box-shadow:0 18px 36px rgba(0,0,0,.3); transform:perspective(1000px) rotateY(5deg) rotateX(2deg); transform-style:preserve-3d; }
.corporate-photo img { width:100%; height:100%; object-fit:cover; filter:saturate(.82); transition:transform .8s var(--e),filter .8s; }
.corporate-photo:hover img { transform:scale(1.09); filter:saturate(1.1); }
.corporate-photo span { position:absolute; left:16px; bottom:16px; padding:10px 13px; color:var(--ink); background:var(--lime); font:700 10px var(--m); letter-spacing:.08em; text-transform:uppercase; }
.corporate .corporate-lead { font-size:clamp(20px,2.5vw,30px); line-height:1.25; font-weight:800; }
.partners-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(35px,7vw,100px); align-items:center; }
.partners-copy .heading { font-size:clamp(47px,7vw,92px); }
.partners-copy .copy { margin:26px 0; color:var(--sky); }
.partner-categories { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 25px; padding:0; list-style:none; }
.partner-categories li { padding:9px 11px; border:1px solid rgba(255,255,255,.25); border-radius:99px; color:var(--paper); font:10px var(--m); }
.partner-overline { color:var(--lime); font:700 11px var(--m); letter-spacing:.12em; text-transform:uppercase; }
.partners-showcase .logo-row { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:18px; perspective:1200px; }
.partners-showcase .logo { min-height:158px; padding:17px; filter:grayscale(0); opacity:1; background:var(--paper); color:var(--ink); border-radius:10px; box-shadow:0 12px 24px rgba(0,0,0,.24),inset 0 1px 0 #fff; transform-style:preserve-3d; will-change:transform; animation:partner-float 4s ease-in-out infinite; }
.partners-showcase .logo:nth-child(2) { animation-delay:.35s; }
.partners-showcase .logo:nth-child(3) { animation-delay:.7s; }
.partners-showcase .logo:nth-child(4) { animation-delay:1.05s; }
.partners-showcase .logo:hover { transform:perspective(900px) rotateX(7deg) rotateY(-8deg) translateY(-8px) translateZ(18px); }
.partners-showcase .logo img { width:92%; max-width:92%; max-height:108px; object-fit:contain; transform:translateZ(28px); }
.partners-showcase .wild { color:var(--ink); font-size:clamp(34px,4.5vw,52px); }
.partners-showcase .your-brand { color:var(--ink); background:var(--lime); font:800 22px/1 var(--d); text-align:center; text-transform:uppercase; }
.partners-showcase .your-brand b { font-size:36px; }
.partners-showcase .your-brand:hover { background:var(--red); color:var(--paper); }
.partner-note { margin:14px 0 0; color:var(--sky); font-size:11px; line-height:1.5; }
@keyframes partner-float { 0%,100% { transform:perspective(950px) translateY(0) rotateX(0) rotateY(0); } 50% { transform:perspective(950px) translateY(-7px) rotateX(2deg) rotateY(-2deg); } }
@media(max-width:850px) {
  .partners-layout { grid-template-columns:1fr; }
  .corporate-grid { grid-template-columns:1fr; }
}
@media(max-width:700px) {
  .experience-slider .experience { flex-basis:100%; min-height:375px; }
  .experience-art { height:205px; }
  .partners-showcase .logo-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partners-showcase .logo { min-height:136px; padding:13px; }
}
@media(prefers-reduced-motion:reduce) {
  .partners-showcase .logo { animation:none; }
  .experience-slider .experiences { transition:none; }
}

/* Keep the bold display scale, while giving letters and words room to read. */
.hero h1,.heading,.final h2,.footer-title { letter-spacing:0; word-spacing:.08em; line-height:.9; text-wrap:pretty; }
.experience-slider .experience h3,.race h3,.prize small { letter-spacing:.015em; word-spacing:.06em; line-height:1.12; }
.copy,p,.quote,.prize p,.sticky>p { letter-spacing:.012em; word-spacing:.035em; }
.race-date-card strong,.count strong,.reference-stats strong,.number,.distance,.price,.prize strong { letter-spacing:.015em; word-spacing:.05em; }
.experience-slider .experience .num,.experience-counter { letter-spacing:.1em; word-spacing:.04em; }
.experience-progress { display:none; }

/* Client refinements: clearer type, tighter vertical rhythm, and touch-friendly controls. */
.nav { height:82px; }
.brand img { width:156px; height:54px; padding:5px; }
.links { gap:clamp(9px,1.45vw,22px); }
.links a { font-size:12px; }
.nav .reg { font-size:14px !important; padding:17px 24px !important; }
.section { padding-top:clamp(52px,6.5vw,92px); padding-bottom:clamp(52px,6.5vw,92px); }
.kick,.eyebrow,.partner-overline { font-size:14px; }
.heading { font-size:clamp(50px,8vw,112px); }
#intro .heading,.corporate-story .heading,.partners-copy .heading { font-size:clamp(52px,8vw,112px); }
.money { margin-top:36px; padding:clamp(24px,3vw,42px); }
.number { font-size:clamp(72px,11vw,144px); }
.money .btn { min-width:180px; min-height:64px; font-size:14px; }
.experience-slider .experience { min-height:360px; }
.experience-slider-controls { font-size:14px; }
.race-list,.prize-grid { gap:20px; margin-top:34px; }
.race { min-height:320px; }
.race .num { font-size:13px; }
.race .btn,.partners-copy > .btn { min-height:54px; font-size:13px; }
.route-link { display:inline-flex; align-items:center; min-height:42px; color:var(--sky); font:700 12px var(--m); text-decoration:underline; text-underline-offset:4px; }
.route-notes { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:24px; color:#43536b; font-size:14px; line-height:1.5; }
.route-notes p { margin:0; }
.route-notes a { flex-basis:100%; font-weight:800; }
.venue-note { display:block; margin-top:4px; font-size:9px; letter-spacing:.04em; }
.partner-categories { gap:11px; }
.partner-categories li { padding:13px 16px; font-size:13px; }
.partner-note { font-size:13px; }
@media(max-width:850px) { .nav { height:72px; } .nav .reg { font-size:12px !important; padding:13px 16px !important; } .brand img { width:132px; height:47px; } .links.open { top:72px; max-height:calc(100svh - 72px); overflow:auto; } }
@media(max-width:540px) { .section { padding-top:54px; padding-bottom:54px; } .heading,#intro .heading,.corporate-story .heading,.partners-copy .heading { font-size:clamp(42px,12vw,65px); } .experience-slider .experience { min-height:350px; } .race { min-height:260px; } .race .btn { min-height:48px; } .partner-categories li { padding:12px 14px; font-size:12px; } .route-notes { display:grid; } }

.partners-showcase .logo-row { gap:10px; border:0; }
.partners-showcase .logo { border:0; border-radius:12px; }
.race .num { font-size:15px; color:#fff; text-shadow:0 1px 8px #07162f; }
.race .route-link { align-self:flex-start; margin-top:auto; }
.race .price { margin-top:8px; }
@media(max-width:850px) { .race .route-link { margin-top:0; } .race .btn { width:100%; } }

.footer p { font-size:15px; }
.footer-brand img { filter:url(#kyn-logo-on-dark); }

/* Real event photos and a clearer, full-colour race director portrait. */
.race-image img { filter:saturate(.94) contrast(1.04); object-fit:cover; }
.race:hover .race-image img { transform:scale(1.06); filter:saturate(1.08) contrast(1.06); }
.photo { padding:12px; border:1px solid rgba(7,22,47,.16); border-radius:18px; background:linear-gradient(145deg,#fffdf7,#d6e5ef); box-shadow:0 22px 50px rgba(7,22,47,.17); }
.photo img { aspect-ratio:4/5; object-fit:contain; filter:none; border-radius:11px; background:#fff; image-rendering:auto; }
.photo:after { bottom:-.1em; left:.1em; color:rgba(7,22,47,.12); }
/* Prize pool: compact jackpot-inspired spotlight with an original animated trophy and running track. */
.money.money-feature { grid-template-columns:minmax(0,1fr) minmax(150px,220px) auto; gap:clamp(14px,2vw,28px); margin-top:28px; padding:clamp(22px,3vw,38px); border:1px solid rgba(255,255,255,.18); border-radius:16px; background:radial-gradient(ellipse at 72% 45%,rgba(214,255,0,.11),transparent 37%),linear-gradient(120deg,#0b1f3d,#07162f 70%); }
.money.money-feature:before { color:rgba(255,255,255,.055); }
.money-copy .kick { margin-bottom:10px; color:var(--lime)!important; font-size:clamp(16px,1.4vw,20px); }
.money-copy .number { font-size:clamp(68px,8.7vw,118px); line-height:.9; color:var(--lime); text-shadow:0 0 30px rgba(214,255,0,.12); }
.money-copy p { max-width:470px; margin:14px 0 0; font-size:14px; }
.money-visual { min-width:0; display:grid; justify-items:center; gap:0; align-self:center; }
.money-visual svg { display:block; width:100%; max-width:220px; overflow:visible; }
.money-visual>span { margin-top:-7px; color:#b8e1ff; font:700 9px var(--m); letter-spacing:.12em; text-align:center; }
.prize-cup { transform-origin:160px 120px; animation:cup-float 4.6s ease-in-out infinite; }
.prize-track-line { animation:road-drift 9s linear infinite; }
.prize-coin { transform-origin:center; animation:coin-lift 3.7s ease-in-out infinite; }
.prize-coin-second { animation-delay:1.1s; }
@keyframes cup-float { 0%,100% { transform:translateY(1px) rotate(-1deg); } 50% { transform:translateY(-5px) rotate(1deg); } }
@keyframes road-drift { to { stroke-dashoffset:-120; } }
@keyframes coin-lift { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-4px); } }
.money-details { min-width:190px; justify-self:end; align-self:center; }
.money-details summary { min-width:190px; min-height:62px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border:1px solid var(--lime); border-radius:7px; color:var(--ink); background:var(--lime); box-shadow:0 8px 24px rgba(214,255,0,.16); font:800 12px var(--m); letter-spacing:.08em; text-transform:uppercase; cursor:pointer; list-style:none; transition:transform .25s var(--e),box-shadow .25s,background .25s; }
.money-details summary::-webkit-details-marker { display:none; }
.money-details summary:after { content:none; }
.money-details summary:hover,.money-details summary:focus-visible { transform:translateY(-3px); box-shadow:0 14px 30px rgba(214,255,0,.28); outline:2px solid var(--paper); outline-offset:3px; }
.money-details summary:active { transform:scale(.98); }
.split-icon { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:var(--paper); background:var(--ink); font:700 20px/1 var(--b); transition:transform .25s; }
.money-details[open] .split-icon { transform:rotate(45deg); }
.money-details[open] { grid-column:1/-1; width:100%; justify-self:stretch; }
.money-breakdown { margin-top:12px; padding:18px 20px; border:1px solid rgba(255,255,255,.17); border-radius:10px; color:#fff; background:rgba(5,18,39,.92); box-shadow:0 18px 38px rgba(0,0,0,.2); animation:split-open .28s var(--e) both; }
.split-kicker { margin-bottom:10px; color:var(--lime); font:700 11px var(--m); letter-spacing:.12em; text-transform:uppercase; }
.money-breakdown ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 13px; padding:0; list-style:none; }
.money-breakdown li { display:grid; gap:6px; padding:12px; border:1px solid rgba(255,255,255,.12); border-radius:7px; color:#c6d6e8; font-size:12px; }
.money-breakdown li strong { color:#fff; font:700 24px var(--d); }
.money-breakdown>a { color:var(--lime); font:700 12px var(--m); text-underline-offset:4px; }
@keyframes split-open { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
/* Venue card: decorative road ending at the verified event venue, clearly separate from course maps. */
.hero-venue { width:min(470px,100%); display:grid; grid-template-columns:minmax(120px,.72fr) minmax(0,1.28fr); gap:14px; align-items:center; margin-top:12px; padding:12px 14px; border:1px solid rgba(255,255,255,.2); border-radius:13px; background:linear-gradient(115deg,rgba(255,255,255,.12),rgba(7,22,47,.85)); box-shadow:0 14px 32px rgba(0,0,0,.22); backdrop-filter:blur(8px); }
.venue-road { min-width:0; overflow:hidden; border-radius:9px; background:linear-gradient(145deg,#173861,#07162f); }
.venue-road svg { width:100%; height:auto; display:block; }
.venue-dash { animation:venue-flow 8s linear infinite; }
@keyframes venue-flow { to { stroke-dashoffset:-84; } }
.venue-copy { min-width:0; }
.venue-label { display:block; margin-bottom:5px; color:var(--lime); font:700 10px var(--m); letter-spacing:.13em; }
.venue-copy strong { display:block; color:#fff; font:700 13px/1.2 var(--b); }
.venue-copy p { margin:4px 0 8px; color:#c4d6e9; font-size:11px; line-height:1.35; }
.venue-copy>a { color:#fff; font:700 10px var(--m); text-decoration:underline; text-decoration-color:var(--lime); text-underline-offset:4px; }
.venue-copy small { display:block; margin-top:7px; color:#9fb4cc; font-size:9px; line-height:1.35; }
.hero-venue:focus-within { border-color:var(--lime); }
/* Use real VAMOS community imagery for corporate and cause sections. */
.corporate-photo:after { content:''; position:absolute; inset:30% 0 0; pointer-events:none; background:linear-gradient(0deg,rgba(7,22,47,.72),transparent); }
.corporate-photo span { z-index:1; }
.cause-img { display:block; position:relative; border-radius:15px; box-shadow:0 22px 48px rgba(7,22,47,.2); }
.cause-img img { filter:saturate(.94) contrast(1.04); }
.cause-photo-link { position:absolute; z-index:2; left:18px; bottom:18px; display:flex; align-items:center; gap:18px; padding:12px 16px; border:1px solid rgba(255,255,255,.45); border-radius:99px; color:#fff; background:rgba(7,22,47,.72); backdrop-filter:blur(8px); font:700 11px var(--m); letter-spacing:.06em; text-transform:uppercase; transition:background .25s,transform .25s; }
.cause-photo-link b { color:var(--lime); font-size:17px; }
.cause-img:hover .cause-photo-link { transform:translateY(-3px); background:rgba(7,22,47,.92); }
@media(max-width:1050px) { .money.money-feature { grid-template-columns:minmax(0,1fr) 150px; } .money-details { grid-column:1/-1; justify-self:start; } .money-details[open] { width:100%; } }
@media(max-width:700px) { .hero-venue { grid-template-columns:112px minmax(0,1fr); } .money.money-feature { grid-template-columns:minmax(0,1fr) 128px; padding:20px; gap:12px; } .money-copy .number { font-size:clamp(60px,12vw,84px); } .money-copy p { font-size:12px; } .money-visual svg { max-width:140px; } .money-visual>span { font-size:8px; } .money-details { grid-column:1/-1; width:100%; } .money-breakdown ul { grid-template-columns:repeat(2,minmax(0,1fr)); } .cause-img { height:350px; } }
@media(max-width:440px) { .hero-venue { grid-template-columns:1fr; gap:8px; } .venue-road { max-height:96px; } .venue-road svg { max-height:96px; } .money.money-feature { grid-template-columns:minmax(0,1fr); } .money-visual { grid-row:2; width:100%; grid-template-columns:120px 1fr; justify-items:center; } .money-visual svg { width:120px; } .money-visual>span { margin:0; max-width:140px; } .money-details { grid-row:3; } .money-breakdown ul { grid-template-columns:repeat(2,minmax(0,1fr)); } .cause-photo-link { left:12px; bottom:12px; font-size:9px; } }
@media(prefers-reduced-motion:reduce) { .prize-cup,.prize-track-line,.prize-coin,.venue-dash,.money-breakdown { animation:none!important; transition:none!important; } }
/* Latest polish: tighten the page rhythm, keep the hero centered, and let visitors steer the highlights. */
.section { padding-block:clamp(52px,6.8vw,96px); }
.nav .brand img { width:164px; height:50px; padding:3px 6px; }
.hero { align-items:center; padding-top:112px; padding-bottom:38px; }
.hero>div { width:min(1360px,100%); margin-inline:auto; }
.hero h1 { max-width:980px; }
.hero-bottom { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(390px,.9fr); align-items:center; gap:clamp(24px,4vw,64px); }
.hero-bottom>div:last-child { display:grid; grid-template-columns:150px minmax(0,1fr); grid-template-rows:auto auto; align-items:center; gap:12px; }
.hero-bottom .race-date-card { grid-column:1; grid-row:1/3; width:145px; margin:0; }
.hero-bottom .count { grid-column:2; grid-row:1; width:100%; margin:0; }
.hero-bottom .hero-venue { grid-column:2; grid-row:2; width:100%; max-width:none; margin:0; }
.hero-venue { grid-template-columns:minmax(90px,.68fr) minmax(0,1.32fr); padding:10px 11px; }
.hero-venue .venue-road svg { min-height:100px; }
.hero-bottom .count div { padding:10px 7px; }
.hero-bottom .count span { font-size:8px; }
.reference-stats { margin-top:24px; }
.money.money-feature { margin-top:22px; }
.money-details summary { min-width:220px; min-height:70px; font-size:13px; }
.money-breakdown li { font-size:11px; }
.money-breakdown li strong { font-size:22px; }
.festival-note { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:22px 0 0; padding:14px 16px; width:max-content; max-width:100%; border:1px solid rgba(214,255,0,.34); border-radius:11px; color:#f7f4ec; background:linear-gradient(115deg,rgba(214,255,0,.12),rgba(255,255,255,.045)); font-size:clamp(13px,1.3vw,16px); font-weight:800; box-shadow:0 14px 30px rgba(0,0,0,.15); }
.festival-note span { color:var(--lime); }
.festival-note i { color:rgba(255,255,255,.42); font-style:normal; }
.festival-note b { flex-basis:100%; margin-top:4px; color:#d7e4f1; font:600 11px var(--m); letter-spacing:.04em; }
.experience-slider-controls { margin-bottom:10px; color:var(--paper); }
.experience-slider-controls>div { gap:9px; }
.experience-slider-controls button { width:40px; height:40px; border-color:rgba(255,255,255,.32); color:var(--paper); }
.experience-slider-controls button:hover:not(:disabled) { color:var(--ink); background:var(--lime); }
.experience-counter { min-width:60px; color:var(--sky); font:700 10px var(--m); }
.experience-viewport { touch-action:pan-y; cursor:grab; user-select:none; }
.experience-viewport:active { cursor:grabbing; }
.distance-intro { align-self:end; }
.distance-intro>.copy { margin-bottom:18px; padding:18px 19px; border-left:4px solid var(--red); border-radius:0 12px 12px 0; background:linear-gradient(100deg,rgba(240,53,66,.09),transparent); font-weight:800; }
.distance-ribbon { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.distance-ribbon span { display:flex; align-items:center; gap:8px; padding:10px 11px; border:1px solid rgba(7,22,47,.13); border-radius:9px; color:#263850; background:#fff; font:700 9px var(--m); letter-spacing:.015em; }
.distance-ribbon b { display:grid; place-items:center; width:24px; height:24px; flex:0 0 24px; border-radius:50%; color:var(--ink); background:var(--lime); font-size:9px; }
.race-list { margin-top:34px; }
.race-image { height:clamp(160px,17vw,220px); }
.race-image img { object-position:center 50%; }
.prize-grid { margin-top:34px; }
.prize { min-height:250px; }
.prize-grid .prize p { max-width:32ch; font-size:12px; }
.cause-grid { gap:clamp(28px,5vw,72px); }
@media(max-width:1050px) {
 .hero-bottom { grid-template-columns:1fr; gap:22px; }
 .hero-bottom>div:last-child { max-width:710px; }
 .hero h1 { font-size:clamp(58px,10vw,112px); }
}
@media(max-width:700px) {
 .section { padding-block:48px; }
 .nav .brand img { width:146px; height:46px; }
 .hero { min-height:0; padding-top:112px; padding-bottom:40px; }
 .hero-bottom>div:last-child { grid-template-columns:1fr; }
 .hero-bottom .race-date-card,.hero-bottom .count,.hero-bottom .hero-venue { grid-column:1; grid-row:auto; }
 .hero-bottom .race-date-card { width:145px; margin-inline:auto; }
 .hero-bottom .hero-venue { grid-template-columns:minmax(85px,.68fr) minmax(0,1.32fr); }
 .money.money-feature { grid-template-columns:minmax(0,1fr) minmax(100px,.72fr); }
 .money-details { grid-column:1/-1; width:100%; justify-self:stretch; }
 .money-details summary { width:100%; }
 .distance-ribbon { grid-template-columns:1fr 1fr; }
}
@media(max-width:440px) {
 .hero-bottom .hero-venue { grid-template-columns:1fr; }
 .hero-bottom .hero-venue .venue-road { max-height:105px; }
 .money-breakdown ul { grid-template-columns:1fr 1fr; }
 .festival-note { width:100%; }
 .distance-ribbon span { padding:8px 7px; font-size:8px; }
 .race-image { height:170px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero .venue-dash,.money-feature .prize-cup,.money-feature .prize-track-line,.money-feature .prize-coin { animation:none; }
}
/* Current interaction pass */
.money-copy>.kick { display:flex; align-items:center; gap:10px; }
.money-copy>.kick:before { content:'₹'; display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border:1px solid rgba(214,255,0,.6); border-radius:50%; color:var(--ink); background:var(--lime); box-shadow:0 0 0 5px rgba(214,255,0,.1); font:800 16px var(--b); animation:rupee-mark 2.8s ease-in-out infinite; }
@keyframes rupee-mark { 0%,100% { box-shadow:0 0 0 4px rgba(214,255,0,.08),0 0 0 0 rgba(214,255,0,.16); } 50% { box-shadow:0 0 0 5px rgba(214,255,0,.1),0 0 0 9px rgba(214,255,0,0); } }
.festival-note { display:grid; justify-items:start; gap:12px; width:100%; margin:20px 0 0; padding:0; border:0; border-radius:0; background:none; box-shadow:none; }
.festival-tags { display:flex; flex-wrap:wrap; gap:7px; }
.festival-tags span { padding:8px 10px; border:1px solid rgba(214,255,0,.35); border-radius:8px; color:var(--lime); background:linear-gradient(130deg,rgba(214,255,0,.12),rgba(255,255,255,.035)); font:700 10px var(--m); letter-spacing:.035em; transition:transform .3s var(--e),background .3s; }
.festival-tags span:hover { transform:translateY(-3px) rotate(-2deg); background:rgba(214,255,0,.2); }
.festival-note>b { margin:0; padding-left:11px; border-left:3px solid var(--red); color:var(--paper); font:700 13px var(--m); letter-spacing:.02em; }
.distance-ribbon { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:20px 0 5px; padding-top:0; }
.distance-ribbon-line { position:absolute; z-index:0; top:19px; left:12.5%; right:12.5%; height:3px; border-radius:9px; background:linear-gradient(90deg,var(--red),#f5a31b,var(--lime)); box-shadow:0 0 15px rgba(240,53,66,.18); }
.distance-stop { position:relative; z-index:1; display:grid; justify-items:center; gap:5px; min-width:0; text-align:center; }
.distance-pin { position:relative; display:block; width:22px; height:22px; border:2px solid var(--red); border-radius:50% 50% 50% 0; background:#fffdf7; box-shadow:0 0 0 5px #fffdf7; transform:rotate(-45deg); }
.distance-pin:after { content:''; position:absolute; inset:6px; border-radius:50%; background:var(--red); }
.distance-stop strong { color:var(--ink); font:800 22px/.95 var(--d); }
.distance-stop small { color:#58667a; font:700 8px var(--m); letter-spacing:.025em; text-transform:uppercase; }
.race .route-link,.route-notes { display:none!important; }
.corporate-grid { grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); align-items:center; gap:clamp(28px,4vw,56px); }
.corporate-photo { max-width:none; height:clamp(290px,34vw,430px); margin-top:22px; transform:none; border-radius:17px; box-shadow:0 24px 52px rgba(0,0,0,.3); }
.corporate-photo img { filter:saturate(.94) contrast(1.04); }
.corporate-lead { padding:18px 20px; border-left:4px solid var(--lime); border-radius:0 12px 12px 0; background:rgba(7,22,47,.12); font-size:clamp(17px,1.7vw,21px); font-weight:800; line-height:1.45; }
.corporate .copy>p:not(.corporate-lead) { color:rgba(7,22,47,.84); }
.corporate ul { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:20px 0 25px; }
.corporate li { padding:12px; border:1px solid rgba(7,22,47,.2); border-radius:8px; background:rgba(255,255,255,.12); font-size:12px; }
.corporate li:last-child { grid-column:1/-1; }
.partners-copy .copy { padding:15px 18px; border-left:3px solid var(--lime); border-radius:0 10px 10px 0; background:rgba(214,255,0,.075); }
.partner-categories { gap:9px; margin-top:22px; }
.partner-categories li { position:relative; overflow:hidden; padding:11px 13px; border-color:rgba(214,255,0,.34); border-radius:9px; background:linear-gradient(130deg,rgba(214,255,0,.11),rgba(255,255,255,.035)); box-shadow:0 8px 20px rgba(0,0,0,.1); animation:partner-chip-in .55s var(--e) both; }
.partner-categories li:nth-child(2) { animation-delay:.07s; }.partner-categories li:nth-child(3) { animation-delay:.14s; }.partner-categories li:nth-child(4) { animation-delay:.21s; }.partner-categories li:nth-child(5) { animation-delay:.28s; }
.partner-categories li:before { content:'✦ '; color:var(--lime); }
@keyframes partner-chip-in { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:translateY(0); } }
.partners-copy .btn { min-height:52px; padding-inline:23px; box-shadow:0 12px 24px rgba(240,53,66,.24); }
.partners-copy .btn:hover { box-shadow:0 17px 30px rgba(240,53,66,.36); }
.partner-note { padding-left:12px; border-left:2px solid var(--lime); }
.cause-img { height:clamp(360px,40vw,520px); }
.cause-img img { object-position:center 47%; }
@media(max-width:850px) {
 .corporate-grid { grid-template-columns:1fr; }
 .corporate-photo { height:clamp(260px,55vw,400px); }
 .corporate .copy { max-width:700px; }
}
@media(max-width:600px) {
 .distance-ribbon { gap:2px; }
 .distance-ribbon-line { left:13%; right:13%; }
 .distance-stop strong { font-size:19px; }
 .distance-stop small { font-size:7px; }
 .festival-tags span { font-size:9px; padding:8px; }
 .corporate ul { grid-template-columns:1fr; }
 .corporate li:last-child { grid-column:auto; }
 .cause-img { height:350px; }
}
@media(prefers-reduced-motion:reduce) {
 .money-copy>.kick:before,.partner-categories li { animation:none; }
}
.festival-tags { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; width:min(340px,100%); }
.festival-tags span { display:flex; align-items:center; min-height:44px; padding:10px 13px; border:1px solid rgba(214,255,0,.5); border-radius:10px; color:#fff; background:linear-gradient(120deg,rgba(214,255,0,.19),rgba(255,255,255,.07)); font:800 12px/1.2 var(--b); letter-spacing:.015em; box-shadow:0 8px 18px rgba(0,0,0,.18); }
.festival-tags span:before { content:'✦'; margin-right:9px; color:var(--lime); font-size:15px; }
.festival-note>b { margin-top:2px; font-size:14px; }
@media(max-width:600px) { .festival-tags { width:100%; gap:8px; } .festival-tags span { min-height:42px; padding:10px; font-size:11px; } }
.festival-note { gap:10px; width:auto; }
.festival-tags { display:flex; flex-wrap:wrap; align-items:center; gap:0; width:auto; }
.festival-tags span { display:inline; min-height:0; padding:0; border:0; border-radius:0; color:#fff; background:none; box-shadow:none; font:800 clamp(14px,1.55vw,18px)/1.4 var(--b); letter-spacing:-.015em; }
.festival-tags span:before { content:none; }
.festival-tags span+span:before { content:'/'; display:inline; margin:0 9px; color:var(--lime); font:700 13px var(--m); }
.festival-note>b { display:inline-block; margin:0; padding:5px 9px; border:0; border-radius:4px; color:var(--ink); background:var(--lime); font:800 10px var(--m); letter-spacing:.08em; text-transform:uppercase; }
@media(max-width:600px) { .festival-tags { width:auto; gap:0; } .festival-tags span { min-height:0; padding:0; font-size:15px; } .festival-tags span+span:before { margin:0 7px; } }
/* Calm down the four distance cards while keeping the race photos prominent. */
.race-list { gap:12px; margin-top:26px; }
.race { min-height:0; gap:9px; padding:12px; border:1px solid rgba(7,22,47,.12); border-radius:11px; color:var(--ink); background:#fff; box-shadow:0 5px 15px rgba(7,22,47,.08); transform:none; }
.race:nth-child(2),.race:nth-child(3),.race:nth-child(4) { color:var(--ink); background:#fff; }
.race:before { display:none; }
.race:hover { min-height:0; padding:12px; color:var(--ink); border-color:rgba(240,53,66,.4); transform:translateY(-3px); box-shadow:0 10px 20px rgba(7,22,47,.12); }
.race .num { color:#6c7888; font-size:10px; text-shadow:none; }
.race:hover .num { color:var(--red); }
.race .distance { color:var(--ink); font-size:clamp(42px,4vw,60px); line-height:.9; }
.race .price { margin-top:0; color:var(--ink); font-size:21px; }
.race-image { width:calc(100% + 24px); height:clamp(110px,12vw,152px); margin:-12px -12px 3px; border-radius:10px 10px 0 0; transform:none; }
.race-image img { filter:saturate(.9) contrast(1.02); }
.race:hover .race-image img { transform:scale(1.025); filter:saturate(.96) contrast(1.02); }
.race .btn { width:100%; min-height:44px; margin-top:4px; padding:10px; border-radius:6px; color:var(--ink); border-color:rgba(7,22,47,.22); font-size:10px; }
.race .btn:hover { color:#fff; background:var(--red); border-color:var(--red); }
@media(max-width:700px) { .race-image { height:clamp(112px,30vw,145px); width:calc(100% + 24px); margin:-12px -12px 3px; } .race:hover { padding:12px; } .race .btn { min-height:42px; } }
/* Brighter race photography and full-width source assets for crisp responsive display. */
.hero>img { opacity:.62; filter:saturate(1.14) contrast(1.06) brightness(1.035); }
.race-image img { filter:saturate(1.2) contrast(1.12) brightness(1.035); }
.race:hover .race-image img { filter:saturate(1.22) contrast(1.12) brightness(1.04); }
.photo img { filter:saturate(1.06) contrast(1.06) brightness(1.015); }
.cause-img img { filter:saturate(1.14) contrast(1.08) brightness(1.025); }
.corporate-photo img { filter:saturate(1.1) contrast(1.08) brightness(1.02); }
/* Strong contrast and a brighter, more dimensional prize spotlight. */
.festival-note { width:min(420px,100%); padding:13px 15px; border:1px solid rgba(214,255,0,.45); border-left:4px solid var(--lime); border-radius:10px; background:linear-gradient(105deg,rgba(7,22,47,.96),rgba(7,22,47,.82)); box-shadow:0 12px 28px rgba(0,0,0,.23); }
.festival-tags span { color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.festival-tags span+span:before { color:var(--lime); }
.money.money-feature { isolation:isolate; perspective:1400px; border-color:rgba(255,255,255,.3); box-shadow:0 25px 60px rgba(3,12,28,.35),inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(214,255,0,.16); }
.money.money-feature:after { content:''; position:absolute; z-index:0; inset:-55% auto -55% -45%; width:46%; pointer-events:none; background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),rgba(214,255,0,.11),transparent); transform:skewX(-18deg); animation:prize-sheen 7s ease-in-out infinite; }
.money.money-feature>* { z-index:1; }
@keyframes prize-sheen { 0%,38% { left:-48%; opacity:0; } 52% { opacity:.9; } 76%,100% { left:112%; opacity:0; } }
.money-visual svg { max-width:245px; filter:drop-shadow(0 14px 20px rgba(0,0,0,.28)); }
.money-copy>.kick:before { box-shadow:0 0 0 5px rgba(214,255,0,.1),0 0 20px rgba(214,255,0,.25); }
.money-details summary.btn.light { color:var(--ink); background:var(--lime); border-color:var(--lime); font-weight:900; text-shadow:none; }
.money-details summary.btn.light:hover,.money-details summary.btn.light:focus-visible { color:var(--ink); background:#e5ff62; }
.money-details .split-icon { color:#fff; background:var(--ink); }
.races.section { padding-top:38px; padding-bottom:42px; }
.races .intro { gap:clamp(22px,4vw,54px); }
.races .distance-ribbon { margin-top:14px; }
.race-list { gap:9px; margin-top:20px; }
.race { gap:7px; }
.race-image { height:clamp(96px,10vw,128px); }
@media(max-width:700px) { .races.section { padding-top:34px; padding-bottom:36px; } .race-image { height:104px; } }
@media(prefers-reduced-motion:reduce) { .money.money-feature:after { animation:none; } }
.race { position:relative; isolation:isolate; transform-style:preserve-3d; transition:transform .3s var(--e),box-shadow .3s,border-color .3s; }
.race:after { content:''; position:absolute; z-index:0; top:0; bottom:0; left:-70%; width:42%; pointer-events:none; opacity:0; background:linear-gradient(105deg,transparent,rgba(255,255,255,.34),transparent); transform:skewX(-16deg); transition:left .65s var(--e),opacity .3s; }
.race:hover { transform:perspective(900px) translateY(-4px) rotateX(1.3deg); box-shadow:0 15px 28px rgba(7,22,47,.15); }
.race:hover:after { left:135%; opacity:1; }
@media(prefers-reduced-motion:reduce) { .race:hover { transform:none; } .race:after { display:none; } }
.race>* { position:relative; z-index:1; }
.distance-ribbon { width:100%; column-gap:9px; margin:16px 0 0; }
@media(max-width:1050px) { .distance-ribbon { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:12px; } .distance-ribbon-line { display:none; } }
@media(max-width:440px) { .distance-ribbon { grid-template-columns:1fr; row-gap:8px; } .distance-stop { grid-template-columns:26px auto 1fr; justify-items:start; gap:9px; text-align:left; } .distance-stop small { justify-self:end; } }
.prize-poster-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(10px,1.5vw,18px); margin-top:34px; }
.prize-poster { min-width:0; overflow:hidden; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.2); border-radius:12px; color:var(--paper); background:#06152d; text-decoration:none; box-shadow:0 12px 28px rgba(0,0,0,.24); transition:transform .35s var(--e),box-shadow .35s,border-color .35s; }
.prize-poster:hover { transform:translateY(-5px) perspective(900px) rotateX(1deg); border-color:var(--lime); box-shadow:0 20px 36px rgba(0,0,0,.34),0 0 18px rgba(214,255,0,.12); }
.prize-poster img { display:block; width:100%; aspect-ratio:1/1; object-fit:contain; background:#050a0b; }
.prize-poster-meta { display:grid; gap:5px; min-height:64px; padding:11px 13px; border-top:1px solid rgba(255,255,255,.12); }
.prize-poster-meta strong { color:var(--lime); font:800 13px var(--m); }
.prize-poster-meta small { color:#d8e3ef; font:10px/1.45 var(--b); }
.prize-poster:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }
@media(max-width:1000px) { .prize-poster-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } }
@media(max-width:440px) { .prize-poster-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .prize-poster { transition:none; } .prize-poster:hover { transform:none; } }
/* Subtle Chennai route texture beneath the content, with no impact on reading or clicks. */
.section,.hero,.footer { position:relative; isolation:isolate; }
.section:before,.footer:before,.hero:before { content:''; position:absolute; z-index:0; inset:0; pointer-events:none; background-image:url('assets/chennai-route-pattern.svg'); background-size:720px 720px; background-repeat:repeat; opacity:.1; }
.section>* ,.footer>* { position:relative; z-index:1; }
.hero:before { opacity:.07; }
.hero>img { z-index:-1; }
.hero:after { z-index:0; }
.cause-gallery { position:relative; width:100%; height:clamp(320px,36vw,460px); min-width:0; }
.cause-photo { position:absolute; display:block; overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:15px; background:var(--ink); box-shadow:0 20px 45px rgba(7,22,47,.24); }
.cause-photo-main { inset:0 8% 8% 0; }
.cause-photo-inset { right:0; bottom:0; width:52%; height:42%; border:5px solid var(--paper); border-radius:13px; box-shadow:0 16px 36px rgba(7,22,47,.3); }
.cause-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--e),filter .7s; }
.cause-photo-main img { object-position:center 54%; filter:saturate(1.06) contrast(1.06); }
.cause-photo-inset img { object-position:center 60%; filter:saturate(1.12) contrast(1.08); }
.cause-photo:hover img { transform:scale(1.045); }
.cause-photo span { position:absolute; left:12px; bottom:12px; padding:8px 10px; border:1px solid rgba(255,255,255,.25); border-radius:5px; color:#fff; background:rgba(7,22,47,.82); backdrop-filter:blur(8px); font:700 9px var(--m); letter-spacing:.07em; }
.cause-photo-inset span { left:8px; bottom:8px; padding:6px 7px; color:var(--ink); background:var(--lime); font-size:8px; }
@media(max-width:700px) { .cause-gallery { height:330px; } .cause-photo-main { inset:0 6% 8% 0; } .cause-photo-inset { width:54%; height:42%; } }
@media(prefers-reduced-motion:reduce) { .cause-photo img { transition:none; } }
/* Custom motion artwork replaces the older photo and poster blocks in sections 04 and 06. */
.race-motion-art { position:relative; overflow:hidden; width:100%; margin:12px 0 12px; border:1px solid rgba(7,22,47,.12); border-radius:16px; background:#e5f0f5; box-shadow:0 16px 36px rgba(7,22,47,.1); }
.race-motion-art svg { display:block; width:100%; height:auto; }
.race-motion-art>span { position:absolute; right:14px; bottom:12px; padding:7px 10px; border:1px solid rgba(255,255,255,.6); border-radius:5px; color:#fff; background:rgba(7,22,47,.75); font:700 9px var(--m); letter-spacing:.11em; }
.route-dashes { animation:road-flow 8s linear infinite; }
.route-runner { transform-box:fill-box; transform-origin:center; animation:route-jog 8s ease-in-out infinite alternate; }
.runner-two { animation-delay:-3s; }
@keyframes road-flow { to { stroke-dashoffset:-150; } }
@keyframes route-jog { from { translate:0 0; } to { translate:115px -4px; } }
.prize-motion-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(16px,2.8vw,34px); align-items:stretch; margin-top:28px; }
.prize-motion-art { position:relative; align-self:stretch; display:grid; align-content:center; overflow:hidden; min-height:310px; padding:12px; border:1px solid rgba(255,255,255,.18); border-radius:16px; background:linear-gradient(145deg,#0b2342,#06142b); box-shadow:0 20px 45px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.1); }
.prize-motion-art:after { content:''; position:absolute; inset:-50% auto -50% -45%; width:40%; pointer-events:none; background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),rgba(214,255,0,.12),transparent); transform:skewX(-16deg); animation:prize-sheen 8s ease-in-out infinite; }
.prize-motion-art svg { display:block; width:100%; max-height:300px; filter:drop-shadow(0 12px 18px rgba(0,0,0,.2)); }
.prize-motion-art>span { justify-self:center; margin-top:4px; color:var(--lime); font:700 9px var(--m); letter-spacing:.13em; }
.trophy-float { transform-box:fill-box; transform-origin:center; animation:trophy-hover 3.8s ease-in-out infinite; }
.prize-medal { transform-box:fill-box; transform-origin:center; animation:medal-hover 3s ease-in-out infinite; }
.medal-two { animation-delay:-1.3s; }
@keyframes trophy-hover { 0%,100% { translate:0 2px; rotate:-1deg; } 50% { translate:0 -7px; rotate:1deg; } }
@keyframes medal-hover { 0%,100% { translate:0 2px; } 50% { translate:0 -8px; } }
.prize-value-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.prize-value { position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; min-height:145px; padding:17px; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:linear-gradient(145deg,rgba(255,255,255,.1),rgba(7,22,47,.5)); box-shadow:0 10px 22px rgba(0,0,0,.12); transition:transform .3s var(--e),border-color .3s,box-shadow .3s; }
.prize-value:before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--lime); opacity:.72; }
.prize-value:hover { transform:translateY(-4px); border-color:rgba(214,255,0,.52); box-shadow:0 15px 26px rgba(0,0,0,.2); }
.prize-value small { color:var(--lime); font:700 9px var(--m); letter-spacing:.06em; }
.prize-value strong { margin:9px 0 5px; color:#fff; font:800 clamp(34px,4vw,52px)/.9 var(--d); }
.prize-value span { color:#d3deeb; font:10px/1.45 var(--b); }
.races.section .race-list { margin-top:10px; }
.races.section .race { min-height:178px; }
.races.section .race .btn { margin-top:7px; }
.cause-grid { grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); align-items:center; }
.cause-gallery { height:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:stretch; }
.cause-photo { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:1.18/1; border:1px solid rgba(255,255,255,.72); border-radius:13px; }
.cause-photo-main,.cause-photo-inset { position:relative; inset:auto; width:100%; height:auto; border:1px solid rgba(255,255,255,.72); border-radius:13px; }
.cause-photo-inset { border-width:1px; }
.cause-photo-main img,.cause-photo-inset img { object-fit:cover; object-position:center; }
.cause-photo span,.cause-photo-inset span { left:8px; right:8px; bottom:8px; width:max-content; max-width:calc(100% - 16px); padding:7px 8px; border-radius:4px; font-size:8px; }
@media(max-width:1050px) { .prize-motion-layout { grid-template-columns:1fr; } .prize-motion-art { min-height:260px; } .prize-value { min-height:128px; } .cause-grid { grid-template-columns:1fr; } .cause-gallery { max-width:760px; } }
@media(max-width:700px) { .race-motion-art { margin:10px 0; } .race-motion-art>span { right:8px; bottom:8px; font-size:7px; } .prize-motion-art { min-height:215px; } .prize-value { min-height:120px; padding:13px; } .cause-gallery { gap:8px; } .cause-photo { aspect-ratio:1.05/1; } .cause-photo span,.cause-photo-inset span { font-size:7px; } }
@media(prefers-reduced-motion:reduce) { .route-dashes,.route-runner,.trophy-float,.prize-medal,.prize-motion-art:after { animation:none; } }
.distance-stop { border:0; padding:0; color:inherit; background:transparent; font:inherit; cursor:pointer; }
.distance-stop[aria-pressed="true"] .distance-pin { border-color:var(--red); background:var(--lime); box-shadow:0 0 0 6px rgba(214,255,0,.28),0 5px 12px rgba(7,22,47,.17); scale:1.08; }
.distance-stop[aria-pressed="true"] strong { color:var(--red); }
.distance-stop:focus-visible { outline:2px solid var(--red); outline-offset:4px; border-radius:8px; }
.prize-value-top { display:flex; align-items:center; gap:11px; min-height:44px; }
.prize-value-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border:1px solid rgba(255,255,255,.22); border-radius:12px; box-shadow:0 8px 16px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.25); transform:perspective(500px) rotateY(-9deg) rotateX(5deg); animation:prize-icon-float 3.7s ease-in-out infinite; }
.prize-value-icon svg { width:27px; height:27px; }
.icon-cup { color:#fff1a3; background:linear-gradient(145deg,#f1ba47,#8d5718); }
.icon-medal { color:#e6f5ff; background:linear-gradient(145deg,#7fc3e8,#285b9b); animation-delay:-.7s; }
.icon-shoe { color:#26350a; background:linear-gradient(145deg,#e2ff59,#8db52b); animation-delay:-1.4s; }
.icon-laurel { color:#fff0c6; background:linear-gradient(145deg,#d77e69,#8d394c); animation-delay:-2.1s; }
@keyframes prize-icon-float { 0%,100% { translate:0 0; rotate:-1deg; } 50% { translate:0 -4px; rotate:1deg; } }
.cause-grid { grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); }
.cause-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.cause-photo,.cause-photo-main,.cause-photo-inset { aspect-ratio:1.5/1; }
.cause-photo img { object-position:center 55%; }
@media(max-width:1050px) { .races.section .race-list { height:280px; } .races.section .race-list .race { width:min(360px,calc(100% - 80px)); } }
@media(max-width:600px) { .races.section .race-list { height:260px; } .races.section .race-list .race { width:min(330px,calc(100% - 58px)); min-height:210px; } .cause-gallery { gap:9px; } .cause-photo span,.cause-photo-inset span { font-size:7px; } }
@media(max-width:440px) { .cause-gallery { grid-template-columns:1fr; } .cause-photo,.cause-photo-main,.cause-photo-inset { aspect-ratio:1.5/1; } }
@media(prefers-reduced-motion:reduce) { .prize-value-icon { animation:none; } }

/* Race cards stay together in a dealt, interactive grid; no carousel motion. */
.races.section .race-list#raceDeck { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; gap:clamp(9px,1.25vw,16px); width:100%; height:auto; margin-top:14px; overflow:visible; perspective:1400px; touch-action:auto; }
.races.section .race-list#raceDeck .race { position:relative; inset:auto; left:auto; top:auto; display:flex; width:auto; min-width:0; min-height:198px; margin:0; padding:clamp(14px,1.45vw,20px); justify-content:space-between; gap:9px; opacity:1; pointer-events:auto; transform:translateY(0) rotate(0) scale(1); transform-origin:center; transform-style:preserve-3d; backface-visibility:hidden; border:1px solid rgba(7,22,47,.13); border-radius:14px; box-shadow:0 10px 23px rgba(7,22,47,.09),inset 0 1px 0 rgba(255,255,255,.82); animation:race-card-deal .72s cubic-bezier(.2,.8,.2,1) both; transition:transform .3s var(--e),box-shadow .3s,border-color .3s; }
.races.section .race-list#raceDeck .race:nth-child(1) { animation-delay:.04s; --card-turn:-2deg; }
.races.section .race-list#raceDeck .race:nth-child(2) { animation-delay:.13s; --card-turn:1.5deg; }
.races.section .race-list#raceDeck .race:nth-child(3) { animation-delay:.22s; --card-turn:-1.3deg; }
.races.section .race-list#raceDeck .race:nth-child(4) { animation-delay:.31s; --card-turn:2deg; }
@keyframes race-card-deal { from { opacity:0; transform:translateY(30px) rotate(var(--card-turn,0deg)) scale(.94); } to { opacity:1; transform:translateY(0) rotate(0) scale(1); } }
.races.section .race-list#raceDeck .race:after { content:""; position:absolute; inset:0; z-index:0; border-radius:inherit; pointer-events:none; background:linear-gradient(115deg,transparent 22%,rgba(255,255,255,.42) 48%,transparent 70%); opacity:0; transform:translateX(-45%); transition:opacity .25s,transform .65s; }
.races.section .race-list#raceDeck .race:hover,.races.section .race-list#raceDeck .race:focus-within { z-index:2; transform:translateY(-7px) rotateX(4deg) rotateY(-2deg); border-color:rgba(240,53,66,.34); box-shadow:0 22px 34px rgba(7,22,47,.17),0 0 0 1px rgba(255,255,255,.7) inset; }
.races.section .race-list#raceDeck .race:hover:after,.races.section .race-list#raceDeck .race:focus-within:after { opacity:.75; transform:translateX(35%); }
.races.section .race-list#raceDeck .race.card-selected { animation:race-card-pick .62s cubic-bezier(.2,.8,.2,1); }
@keyframes race-card-pick { 0%,100% { box-shadow:0 10px 23px rgba(7,22,47,.09),inset 0 1px 0 rgba(255,255,255,.82); } 45% { transform:translateY(-8px) rotateX(5deg) scale(1.025); box-shadow:0 24px 38px rgba(7,22,47,.2),0 0 0 2px var(--lime); } }
.races.section .race-list#raceDeck .race .num,.races.section .race-list#raceDeck .race .distance,.races.section .race-list#raceDeck .race .price,.races.section .race-list#raceDeck .race .btn { position:relative; z-index:1; }
.races.section .race-list#raceDeck .race .distance { font-size:clamp(44px,5vw,68px); }
.races.section .race-list#raceDeck .race .num { font-size:10px; letter-spacing:.12em; }
.races.section .race-list#raceDeck .race .price { font-size:clamp(19px,2vw,25px); }
.races.section .race-list#raceDeck .race .btn { padding:10px 12px; font-size:9px; }
@media(max-width:1050px) { .races.section .race-list#raceDeck { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .races.section .race-list#raceDeck .race { min-height:190px; } }
@media(max-width:600px) { .races.section .race-list#raceDeck { gap:10px; } .races.section .race-list#raceDeck .race { min-height:180px; padding:14px; } .races.section .race-list#raceDeck .race .distance { font-size:clamp(42px,12vw,60px); } }
@media(max-width:440px) { .races.section .race-list#raceDeck { grid-template-columns:1fr; } .races.section .race-list#raceDeck .race { min-height:168px; } }
@media(prefers-reduced-motion:reduce) { .races.section .race-list#raceDeck .race,.races.section .race-list#raceDeck .race.card-selected { animation:none; } .races.section .race-list#raceDeck .race,.races.section .race-list#raceDeck .race:hover { transition:none; transform:none; } }

/* Restore the layered community photo treatment for the cause section. */
#cause .cause-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); gap:clamp(28px,5vw,72px); align-items:center; }
#cause .cause-gallery { position:relative; display:block; width:100%; height:clamp(320px,36vw,460px); }
#cause .cause-photo { position:absolute; display:block; overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:15px; background:var(--ink); box-shadow:0 20px 45px rgba(7,22,47,.24); }
#cause .cause-photo-main { inset:0 8% 8% 0; width:auto; height:auto; aspect-ratio:auto; }
#cause .cause-photo-inset { right:0; bottom:0; left:auto; top:auto; width:52%; height:42%; border:5px solid var(--paper); border-radius:13px; box-shadow:0 16px 36px rgba(7,22,47,.3); }
#cause .cause-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--e),filter .7s; }
#cause .cause-photo-main img { object-position:center 54%; filter:saturate(1.06) contrast(1.06); }
#cause .cause-photo-inset img { object-position:center 60%; filter:saturate(1.12) contrast(1.08); }
#cause .cause-photo:hover img { transform:scale(1.045); }
#cause .cause-photo span { position:absolute; left:12px; bottom:12px; right:auto; width:max-content; max-width:calc(100% - 24px); padding:8px 10px; border:1px solid rgba(255,255,255,.25); border-radius:5px; color:#fff; background:rgba(7,22,47,.82); backdrop-filter:blur(8px); font:700 9px var(--m); letter-spacing:.07em; }
#cause .cause-photo-inset span { left:8px; bottom:8px; padding:6px 7px; color:var(--ink); background:var(--lime); font-size:8px; }
@media(max-width:700px) { #cause .cause-grid { grid-template-columns:1fr; } #cause .cause-gallery { height:330px; } #cause .cause-photo-main { inset:0 6% 8% 0; } #cause .cause-photo-inset { width:54%; height:42%; } }
@media(prefers-reduced-motion:reduce) { #cause .cause-photo img { transition:none; } }

/* Individual race insignia: crisp vector artwork, one motif per distance. */
.races.section .race-list#raceDeck .race { padding-top:13px; }
.race-mark { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:54px; height:54px; color:#d6ff00; opacity:.96; filter:drop-shadow(0 6px 10px rgba(0,0,0,.28)); transition:transform .35s var(--e),filter .35s; }
.race-mark svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.race-mark i { position:relative; z-index:1; display:grid; place-items:center; width:23px; height:23px; border:1px solid currentColor; border-radius:50%; color:var(--ink); background:var(--lime); font:800 10px var(--m); font-style:normal; }
.race-mark-5k { color:#b8e1ff; }
.race-mark-5k i { color:#07162f; background:#b8e1ff; }
.race-mark-10k { color:#ff8d77; }
.race-mark-10k i { color:#07162f; background:#ff8d77; }
.race-mark-21k { color:#f4ca72; }
.race-mark-21k i { color:#07162f; background:#f4ca72; }
.races.section .race-list#raceDeck .race:hover .race-mark { transform:translateY(-3px) rotate(-8deg) scale(1.08); filter:drop-shadow(0 9px 12px rgba(214,255,0,.25)); }
@media(max-width:600px) { .race-mark { width:46px; height:46px; } }

/* Animate the four prize cards in place, with clear race kit and award icons. */
.prize-motion-layout { perspective:1400px; }
.prize-value-list .prize-value { transform-origin:center bottom; animation:prize-card-deal .72s cubic-bezier(.2,.8,.2,1) both; transition:transform .35s var(--e),box-shadow .35s,border-color .35s; }
.prize-value-list .prize-value:nth-child(1) { animation-delay:.05s; }
.prize-value-list .prize-value:nth-child(2) { animation-delay:.15s; }
.prize-value-list .prize-value:nth-child(3) { animation-delay:.25s; }
.prize-value-list .prize-value:nth-child(4) { animation-delay:.35s; }
@keyframes prize-card-deal { from { opacity:0; transform:translateY(24px) rotateX(12deg) scale(.96); } to { opacity:1; transform:translateY(0) rotateX(0) scale(1); } }
.prize-value-list .prize-value:hover { transform:perspective(850px) translateY(-7px) rotateX(4deg) rotateY(-2deg); border-color:rgba(214,255,0,.64); box-shadow:0 22px 34px rgba(0,0,0,.24),0 0 0 1px rgba(255,255,255,.2) inset; }
.prize-value-list .prize-value:after { content:""; position:absolute; inset:-20% auto -20% -55%; width:48%; pointer-events:none; background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent); transform:skewX(-14deg); transition:transform .7s var(--e); }
.prize-value-list .prize-value:hover:after { transform:translateX(360%) skewX(-14deg); }
.prize-value-icon { width:48px; height:48px; flex-basis:48px; }
.prize-value-icon svg { width:31px; height:31px; }
.runner-body { transform-box:fill-box; transform-origin:50% 90%; animation:runner-bob .48s ease-in-out infinite alternate; }
.runner-two .runner-body { animation-delay:-.24s; }
.runner-leg { transform-box:fill-box; transform-origin:50% 0; animation:runner-stride .48s ease-in-out infinite alternate; }
.runner-leg.leg-b { animation-delay:-.48s; }
@keyframes runner-bob { from { translate:0 0; rotate:-1deg; } to { translate:0 -3px; rotate:1deg; } }
@keyframes runner-stride { from { rotate:-15deg; } to { rotate:15deg; } }
@media(prefers-reduced-motion:reduce) { .prize-value-list .prize-value,.runner-body,.runner-leg { animation:none; } .prize-value-list .prize-value,.prize-value-list .prize-value:hover { transition:none; transform:none; } }

/* Make the road runners readable at a glance and give the card deal a visible arrival. */
.route-runner { animation-duration:6.4s; }
.runner-two { animation-delay:-2.8s; }
.runner-body { animation-duration:.36s; }
.runner-two .runner-body { animation-delay:-.18s; }
.runner-leg { animation-duration:.36s; }
.runner-leg.leg-b { animation-delay:-.36s; }
.prize-value-list .prize-value { animation:none; }
.prize-value-list .prize-value.reveal.visible { animation:prize-card-deal .78s cubic-bezier(.18,.78,.2,1); }
@keyframes prize-card-deal { 0% { opacity:0; transform:perspective(900px) translateY(38px) rotateY(18deg) scale(.9); filter:blur(2px); } 72% { opacity:1; transform:perspective(900px) translateY(-4px) rotateY(-2deg) scale(1.02); filter:blur(0); } 100% { opacity:1; transform:perspective(900px) translateY(0) rotateY(0) scale(1); filter:none; } }
.prize-value-list .prize-value:nth-child(1).reveal.visible { animation-delay:.05s; }
.prize-value-list .prize-value:nth-child(2).reveal.visible { animation-delay:.18s; }
.prize-value-list .prize-value:nth-child(3).reveal.visible { animation-delay:.31s; }
.prize-value-list .prize-value:nth-child(4).reveal.visible { animation-delay:.44s; }
.icon-medal { color:#eef1f6; background:linear-gradient(145deg,#ef695f,#a7343c); }
@media(prefers-reduced-motion:reduce) { .route-runner,.runner-body,.runner-leg { animation:none; } .prize-value-list .prize-value.reveal.visible { animation:none; } }

.prize-kit-float { transform-box:fill-box; transform-origin:center; animation:prize-icon-float 3.5s ease-in-out infinite; } .kit-shoe { animation-delay:-1.7s; }

/* Keep the runner drawings composed: move the full figures along the road, not the joints. */
.route-runner { animation:route-jog 8s cubic-bezier(.42,0,.58,1) infinite alternate; }
.runner-two { animation-delay:-3.1s; }
.runner-body,.runner-leg,.runner-leg.leg-b { animation:none !important; }
.runner-body { transform:none !important; }
.race-motion-art { background:linear-gradient(145deg,#e6f4fb,#f7f2e8); box-shadow:0 18px 38px rgba(7,22,47,.16),inset 0 1px 0 rgba(255,255,255,.9); }
.race-motion-art svg { filter:drop-shadow(0 8px 5px rgba(7,22,47,.08)); }
@media(prefers-reduced-motion:reduce) { .route-runner,.runner-body,.runner-leg { animation:none !important; transform:none !important; } }

/* Rebuilt runners as clean, human-proportioned silhouettes with readable kit. */
.route-runner { animation:route-jog 8s ease-in-out infinite alternate !important; }
.runner-two { animation-delay:-3s !important; }
.runner-body,.runner-leg { animation:none !important; transform:none !important; }

/* A small, repeatable Central Station sketch links each distance card to Chennai. */
.races.section .race-list#raceDeck .race:before { display:block !important; background-image:url("assets/chennai-central-sketch.svg"),radial-gradient(circle at 85% 10%,rgba(255,255,255,.2),transparent 42%); background-repeat:no-repeat,no-repeat; background-position:right 8px bottom 7px,center; background-size:68px 68px,100% 100%; opacity:.3; mix-blend-mode:screen; }
/* Stronger prize-card arrival, with a soft 3D turn and a brighter hover response. */
.prize-value-list .prize-value.reveal.visible { animation:prize-card-arrive .95s cubic-bezier(.16,.82,.19,1) both; }
.prize-value-list .prize-value:nth-child(1).reveal.visible { animation-delay:.08s; }
.prize-value-list .prize-value:nth-child(2).reveal.visible { animation-delay:.25s; }
.prize-value-list .prize-value:nth-child(3).reveal.visible { animation-delay:.42s; }
.prize-value-list .prize-value:nth-child(4).reveal.visible { animation-delay:.59s; }
@keyframes prize-card-arrive { 0% { opacity:0; transform:perspective(1000px) translateY(48px) rotateY(26deg) rotateX(8deg) scale(.88); filter:blur(4px); } 68% { opacity:1; transform:perspective(1000px) translateY(-7px) rotateY(-4deg) rotateX(-1deg) scale(1.035); filter:blur(0); } 100% { opacity:1; transform:perspective(1000px) translateY(0) rotateY(0) rotateX(0) scale(1); filter:none; } }
.prize-value-list .prize-value:hover { transform:perspective(900px) translateY(-9px) rotateX(5deg) rotateY(-3deg) scale(1.025); border-color:rgba(214,255,0,.82); box-shadow:0 26px 40px rgba(0,0,0,.3),0 0 0 1px rgba(214,255,0,.24) inset; }
.prize-value-list .prize-value:hover .prize-value-icon { transform:perspective(500px) rotateY(0) rotateX(0) translateY(-3px) scale(1.08); }
.race-runner-style-note { display:none; }
@media(max-width:600px) { .races.section .race-list#raceDeck .race:before { background-size:54px 54px,100% 100%; } }
@media(prefers-reduced-motion:reduce) { .prize-value-list .prize-value.reveal.visible { animation:none; } .prize-value-list .prize-value:hover { transform:none; } }

/* Gentle, opposing arm and leg swings keep the reference-style runners visibly in stride. */
.runner-sway { transform-box:fill-box; transform-origin:50% 82%; animation:run-bounce .42s ease-in-out infinite alternate !important; }
.runner-arm,.runner-leg { transform-box:fill-box; transform-origin:50% 8%; animation:run-limb .42s ease-in-out infinite alternate !important; }
.runner-arm.arm-b,.runner-leg.leg-back { animation-delay:-.42s !important; }
.runner-two .runner-sway,.runner-two .runner-arm,.runner-two .runner-leg { animation-delay:-.21s !important; }
@keyframes run-bounce { from { translate:0 0; } to { translate:0 -2px; } }
@keyframes run-limb { from { rotate:-15deg; } to { rotate:15deg; } }
@media(prefers-reduced-motion:reduce) { .runner-sway,.runner-arm,.runner-leg,.route-runner { animation:none !important; transform:none !important; } }

/* Reference-style runners on a clean Chennai start-line stage. */
.race-motion-art.runner-showcase { position:relative; height:clamp(230px,25vw,310px); min-height:230px; overflow:hidden; isolation:isolate; border:1px solid rgba(7,22,47,.1); border-radius:17px; background:linear-gradient(180deg,#fff 0 69%,#f5f2ea 69% 100%); box-shadow:0 18px 38px rgba(7,22,47,.13),inset 0 1px 0 #fff; }
.runner-showcase .runner-cutout { position:absolute; z-index:2; bottom:29px; display:block; width:clamp(140px,17vw,230px); height:calc(100% - 36px); object-fit:contain; object-position:center bottom; mix-blend-mode:multiply; filter:drop-shadow(0 8px 8px rgba(7,22,47,.12)); animation:reference-run 1.6s ease-in-out infinite alternate; }
.runner-showcase .runner-woman { left:19%; animation-delay:-.8s; }
.runner-showcase .runner-man { left:55%; width:clamp(190px,23vw,310px); height:calc(100% - 42px); animation-delay:-.2s; }
@keyframes reference-run { from { translate:-7px 0; } to { translate:15px -5px; } }
.station-stamp { position:absolute; z-index:1; top:15px; right:20px; display:grid; place-items:center; width:76px; height:76px; border:1px solid rgba(7,22,47,.12); border-radius:50%; background:linear-gradient(145deg,#173b65,#07162f); box-shadow:0 8px 18px rgba(7,22,47,.15); }
.station-stamp img { display:block; width:65px; height:65px; object-fit:contain; opacity:.85; }
.showcase-road { position:absolute; z-index:1; right:-4%; bottom:-37px; left:-4%; height:91px; border-radius:50% 50% 0 0/32% 32% 0 0; background:linear-gradient(180deg,#122a4b,#07162f); box-shadow:0 -5px 17px rgba(7,22,47,.12); }
.showcase-road span { position:absolute; top:25px; left:0; width:200%; height:3px; background:repeating-linear-gradient(90deg,var(--lime) 0 18px,transparent 18px 38px); opacity:.9; animation:road-dash-run 3s linear infinite; }
@keyframes road-dash-run { to { transform:translateX(-38px); } }
.race-motion-art.runner-showcase>span { z-index:4; right:12px; bottom:10px; border-color:rgba(255,255,255,.32); font-size:8px; }
@media(max-width:600px) { .race-motion-art.runner-showcase { height:228px; } .runner-showcase .runner-woman { left:4%; } .runner-showcase .runner-man { left:40%; } .station-stamp { top:9px; right:10px; width:60px; height:60px; } .station-stamp img { width:51px; height:51px; } }
@media(prefers-reduced-motion:reduce) { .runner-showcase .runner-cutout,.showcase-road span { animation:none; } }

/* Prize card artwork uses one clear, event-specific mark per category. */
.icon-shirt { color:#dff1ff; background:linear-gradient(145deg,#5ba5d7,#1d477a); }
.icon-community { color:#fff2e2; background:linear-gradient(145deg,#e98767,#993c50); }
.prize-value-icon { border-radius:14px; box-shadow:0 9px 18px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.32); }
.prize-value-icon svg { overflow:visible; }

/* Human-free Chennai route scene for section 04. */
.race-motion-art.chennai-route-scene { position:relative; height:clamp(210px,23vw,270px); min-height:210px; overflow:hidden; isolation:isolate; border:1px solid rgba(7,22,47,.12); border-radius:17px; background:linear-gradient(145deg,#fff 0%,#f4f8f6 66%,#e8f0ed 100%); box-shadow:0 18px 38px rgba(7,22,47,.12),inset 0 1px 0 #fff; }
.route-scene-grid { position:absolute; inset:0; opacity:.25; background-image:linear-gradient(rgba(7,22,47,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(7,22,47,.08) 1px,transparent 1px); background-size:36px 36px; mask-image:linear-gradient(90deg,black,transparent 88%); }
.route-scene-map { position:absolute; inset:0; z-index:1; width:100%; height:100%; overflow:visible; }
.route-scene-shadow { fill:none; stroke:#07162f; stroke-opacity:.1; stroke-width:30; stroke-linecap:round; }
.route-scene-line { fill:none; stroke:#f03542; stroke-width:5; stroke-linecap:round; stroke-dasharray:10 14; animation:chennai-route-flow 5s linear infinite; filter:drop-shadow(0 0 5px rgba(240,53,66,.35)); }
@keyframes chennai-route-flow { to { stroke-dashoffset:-144; } }
.route-point { stroke:#fff; stroke-width:4; }
.start-point { fill:#d6ff00; }.finish-point { fill:#f03542; }.station-point { fill:#07162f; }
.route-scene-station { position:absolute; z-index:2; top:22px; left:50%; display:flex; align-items:center; gap:10px; padding:8px 14px 8px 8px; border:1px solid rgba(7,22,47,.12); border-radius:12px; background:rgba(255,255,255,.92); box-shadow:0 10px 24px rgba(7,22,47,.1); transform:translateX(-50%); }
.route-scene-station img { width:58px; height:58px; padding:3px; border-radius:9px; background:#07162f; }
.route-scene-station span { color:#07162f; font:800 10px var(--m); letter-spacing:.08em; white-space:nowrap; }
.route-scene-label { position:absolute; z-index:2; top:66%; padding:6px 9px; border-radius:4px; color:#fff; background:#07162f; font:700 8px var(--m); letter-spacing:.12em; }
.label-start { left:4%; }.label-finish { right:4%; }
.route-scene-caption { position:absolute; z-index:3; right:12px; bottom:10px; padding:6px 8px; border:1px solid rgba(7,22,47,.1); border-radius:4px; color:#07162f; background:rgba(255,255,255,.88); font:700 8px var(--m); letter-spacing:.08em; }
.races.section .race-list#raceDeck .race:before { opacity:.16; }
@media(max-width:600px) { .route-scene-station { top:12px; } .route-scene-station img { width:46px; height:46px; } .route-scene-label { top:68%; } .route-scene-caption { font-size:7px; } }
@media(prefers-reduced-motion:reduce) { .route-scene-line { animation:none; } }

/* Return section 04 to the illustrated road animation; keep it human-free. */
.race-motion-art.chennai-road-scene { position:relative; overflow:hidden; border:1px solid rgba(7,22,47,.12); border-radius:17px; background:#e7f1f5; box-shadow:0 18px 38px rgba(7,22,47,.14),inset 0 1px 0 #fff; }
.race-motion-art.chennai-road-scene svg { display:block; width:100%; height:auto; }
.road-dash-flow { animation:road-dashes-flow 4.5s linear infinite; }
.central-station { transform-box:fill-box; transform-origin:center bottom; animation:station-arrive 1.1s cubic-bezier(.2,.8,.2,1) both; }
@keyframes road-dashes-flow { to { stroke-dashoffset:-144; } }
@keyframes station-arrive { from { opacity:0; transform:translateY(9px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
.race-motion-art.chennai-road-scene>span { z-index:2; right:12px; bottom:10px; border-color:rgba(255,255,255,.42); }
@media(max-width:600px) { .race-motion-art.chennai-road-scene>span { right:7px; bottom:7px; font-size:7px; } }
@media(prefers-reduced-motion:reduce) { .road-dash-flow,.central-station { animation:none; } }

/* Running-road motion inside the section 06 prize artwork. */
.race-lane-dash { stroke-dasharray:10 14; animation:prize-road-drive 1.8s linear infinite; }
@keyframes prize-road-drive { to { stroke-dashoffset:-96; } }
.prize-motion-art .race-lane-dash { filter:drop-shadow(0 0 5px rgba(214,255,0,.62)); }
.prize-motion-art .trophy-float { transform-origin:center; animation:trophy-hover 2.8s ease-in-out infinite; }
.prize-motion-art .prize-kit-float { animation-duration:2.5s; }
.prize-motion-art:after { animation-duration:5s; }
@media(prefers-reduced-motion:reduce) { .race-lane-dash,.prize-motion-art .trophy-float,.prize-motion-art .prize-kit-float,.prize-motion-art:after { animation:none; } }

/* Premium motion pass for the Chennai road illustration. */
.race-motion-art.chennai-road-scene { border-color:rgba(184,225,255,.36); background:linear-gradient(145deg,#102442,#06142b); box-shadow:0 22px 46px rgba(7,22,47,.22),inset 0 1px 0 rgba(255,255,255,.22),0 0 0 1px rgba(214,255,0,.08); }
.race-motion-art.chennai-road-scene svg { filter:drop-shadow(0 10px 18px rgba(7,22,47,.18)); }
.race-motion-art.chennai-road-scene:after { content:""; position:absolute; z-index:1; right:-25%; bottom:5%; width:46%; height:40%; pointer-events:none; background:linear-gradient(112deg,transparent,rgba(214,255,0,.1),rgba(184,225,255,.16),transparent); filter:blur(10px); transform:skewX(-18deg); animation:road-light-sweep 6s ease-in-out infinite; }
@keyframes road-light-sweep { 0%,100% { translate:-30px 0; opacity:.35; } 50% { translate:-230px -4px; opacity:.9; } }
.road-dash-flow { stroke-width:5; animation-duration:2.6s; filter:drop-shadow(0 0 3px rgba(214,255,0,.85)) drop-shadow(0 0 12px rgba(214,255,0,.45)); }
.central-station { filter:drop-shadow(0 0 8px rgba(255,225,187,.2)); }
.race-motion-art.chennai-road-scene svg rect:first-of-type { stroke:rgba(255,255,255,.2); stroke-width:1; }
@media(prefers-reduced-motion:reduce) { .race-motion-art.chennai-road-scene:after { animation:none; } }

/* Restore the bright Chennai morning road treatment, without runner figures. */
.race-motion-art.chennai-road-scene { border-color:rgba(7,22,47,.12); background:linear-gradient(145deg,#e4f1f6,#f8f4e9); box-shadow:0 18px 38px rgba(7,22,47,.14),inset 0 1px 0 rgba(255,255,255,.9); }
.race-motion-art.chennai-road-scene svg { filter:drop-shadow(0 8px 14px rgba(7,22,47,.12)); }
.race-motion-art.chennai-road-scene:after { opacity:.5; background:linear-gradient(112deg,transparent,rgba(242,185,71,.2),rgba(214,255,0,.12),transparent); }
.road-dash-flow { filter:drop-shadow(0 0 3px rgba(214,255,0,.72)); }

/* Prize marks now identify each race tier rather than repeating generic badges. */
.icon-route { color:#e2f3ff; background:linear-gradient(145deg,#74b9e2,#214b7a); }
.icon-ages { color:#fff5e7; background:linear-gradient(145deg,#e68b68,#8e4052); }
.icon-route svg,.icon-ages svg { width:34px; height:34px; }
.prize-value-icon { transition:transform .3s var(--e),filter .3s; }
.prize-value-icon svg { filter:drop-shadow(0 2px 2px rgba(7,22,47,.2)); }
.prize-value-list .prize-value:hover .icon-route { filter:drop-shadow(0 5px 9px rgba(116,185,226,.5)); }
.prize-value-list .prize-value:hover .icon-ages { filter:drop-shadow(0 5px 9px rgba(230,139,104,.42)); }

/* One reference runner joins the Chennai road without a white image tile. */
.race-motion-art.chennai-road-scene { position:relative; }
.chennai-road-scene .single-runner { position:absolute; z-index:3; left:39%; bottom:66px; width:clamp(116px,13vw,170px); height:clamp(130px,15vw,185px); object-fit:cover; object-position:center center; mix-blend-mode:multiply; filter:drop-shadow(0 5px 7px rgba(7,22,47,.14)); animation:single-runner-stride 1.15s ease-in-out infinite alternate; }
@keyframes single-runner-stride { from { translate:-5px 0; } to { translate:10px -3px; } }
/* Keep each anchor target clear of the fixed header on desktop and mobile. */
section[id],header[id] { scroll-margin-top:98px; }
@media(max-width:850px) { .chennai-road-scene .single-runner { left:35%; bottom:64px; width:112px; height:128px; } section[id],header[id] { scroll-margin-top:88px; } }
@media(prefers-reduced-motion:reduce) { .chennai-road-scene .single-runner { animation:none; } }

/* Refine the prize-card category marks into clean, relevant editorial icons. */
.prize-value-icon { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border:1px solid rgba(255,255,255,.24); border-radius:10px; background:rgba(255,255,255,.055); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); transform:none; animation:none; }
.prize-value-icon svg { width:30px; height:30px; filter:none; }
.icon-cup { color:#f3c96f; background:rgba(243,201,111,.08); }
.icon-route { color:#a8dfff; background:rgba(120,185,226,.09); }
.icon-shoe { color:#d6ff00; background:rgba(214,255,0,.07); }
.icon-ages { color:#ffc3a9; background:rgba(230,139,104,.08); }
.prize-value-list .prize-value:hover .prize-value-icon { transform:translateY(-2px) scale(1.04); box-shadow:0 0 18px currentColor; }
.prize-value-list .prize-value:hover .icon-route,.prize-value-list .prize-value:hover .icon-ages { filter:none; }

/* Keep the supplied runner as a small, still figure; the road stays animated. */
.chennai-road-scene .single-runner { left:42%; bottom:64px; width:clamp(72px,8vw,104px); height:clamp(96px,11vw,132px); animation:none !important; translate:none; }
@media(max-width:850px) { .chennai-road-scene .single-runner { left:38%; bottom:61px; width:72px; height:96px; } }

/* Use a luminance cut-out so only the still runner remains, with no white panel. */
.chennai-road-scene .single-runner { mix-blend-mode:normal; object-fit:contain; filter:drop-shadow(0 7px 8px rgba(7,22,47,.24)); }

/* Marathon-first prize icons: award, race kit, shoe, and Masters fitness. */
.icon-medal { color:#f3cc73; background:rgba(243,204,115,.08); }
.icon-shirt { color:#a8dfff; background:rgba(120,185,226,.09); }
.icon-shoe { color:#d6ff00; background:rgba(214,255,0,.07); }
.icon-fitness { color:#ffc3a9; background:rgba(230,139,104,.08); }
/* Crop the supplied runner artwork to the figure and align his feet with the asphalt. */
.chennai-road-scene .single-runner { left:42%; bottom:37px; width:clamp(96px,10vw,128px); height:clamp(132px,13vw,162px); object-fit:cover; object-position:50% 50%; }
.race-motion-art.chennai-road-scene { height:clamp(210px,20vw,290px); min-height:210px; }
.race-motion-art.chennai-road-scene svg { width:100%; height:100%; }
@media(max-width:850px) { .chennai-road-scene .single-runner { left:36%; bottom:33px; width:92px; height:126px; } }

/* Bring the supplied runner to a readable scale and add restrained jogging motion. */
.chennai-road-scene .single-runner { left:40%; bottom:20px; width:clamp(142px,15vw,196px); height:clamp(174px,18vw,222px); object-fit:cover; object-position:44% 50%; animation:runner-road-bob 1.25s ease-in-out infinite alternate !important; transform-origin:center bottom; }
@keyframes runner-road-bob { from { translate:0 0; } to { translate:3px -4px; } }
@media(max-width:850px) { .chennai-road-scene .single-runner { left:35%; bottom:17px; width:clamp(118px,24vw,150px); height:clamp(145px,31vw,180px); } }
@media(prefers-reduced-motion:reduce) { .chennai-road-scene .single-runner { animation:none !important; translate:none; } }

/* Let native anchor navigation land precisely, with the fixed bar accounted for. */
html { scroll-padding-top:104px; }
section[id],header[id] { scroll-margin-top:104px; }
@media(max-width:850px) { html { scroll-padding-top:88px; } section[id],header[id] { scroll-margin-top:88px; } }

/* Keep every mobile distance marker visible as an easy-to-tap 2×2 map key. */
@media(max-width:600px) {
 .distance-ribbon { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .distance-ribbon-line { display:none; }
 .distance-stop { display:grid; grid-template-columns:28px minmax(38px,auto) 1fr; align-items:center; justify-items:start; gap:8px; min-height:50px; padding:8px 10px; border:1px solid rgba(7,22,47,.13); border-radius:10px; background:rgba(255,255,255,.78); text-align:left; }
 .distance-pin { display:block; width:22px; height:22px; margin:0 0 0 2px; }
 .distance-stop strong { font-size:21px; }
 .distance-stop small { justify-self:end; font-size:8px; }
}

/* Tighten section rhythm and bring heading targets close under the fixed nav. */
.section { padding-top:clamp(42px,5.1vw,76px); padding-bottom:clamp(42px,5.1vw,76px); }
html { scroll-padding-top:94px; }
section[id],header[id] { scroll-margin-top:94px; }
@media(max-width:850px) { .section { padding-top:44px; padding-bottom:44px; } html { scroll-padding-top:82px; } section[id],header[id] { scroll-margin-top:82px; } }

/* Compact page rhythm and align nav landings to each section start. */
.section { padding-top:clamp(28px,3.7vw,52px); padding-bottom:clamp(28px,3.7vw,52px); }
@media(max-width:850px) { .section { padding-top:30px; padding-bottom:30px; } }

/* Keep the user-requested three-second highlights loop active in all motion settings. */
@media(prefers-reduced-motion:reduce) { .experience-slider .experiences { transition:transform .72s cubic-bezier(.2,.8,.2,1) !important; } }

/* Make the 3-second Race Day Highlights loop visible with a running timer bar. */
.experience-slider.is-autoplaying .experience-progress span { transform:scaleX(0) !important; animation:experience-three-second-countdown 3s linear both; }
@keyframes experience-three-second-countdown { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(prefers-reduced-motion:reduce) { .experience-slider.is-autoplaying .experience-progress span { animation:experience-three-second-countdown 3s linear both !important; } }

/* Give the animated ₹17L trophy and road a larger share of the section 01 card. */
.money.money-feature { grid-template-columns:minmax(0,1fr) minmax(290px,370px) auto; gap:clamp(18px,2.2vw,32px); align-items:center; }
.money-visual { width:100%; min-height:245px; }
.money-visual svg { width:100%; max-width:370px; transform:scale(1.04); filter:drop-shadow(0 17px 23px rgba(0,0,0,.32)); }
.money-visual>span { margin-top:-2px; font-size:10px; }
.money.money-feature { background:radial-gradient(ellipse at 68% 48%,rgba(214,255,0,.16),transparent 43%),linear-gradient(120deg,#0b1f3d,#07162f 70%); }
@media(max-width:1050px) { .money.money-feature { grid-template-columns:minmax(0,1fr) minmax(230px,.72fr); } .money-visual { min-height:210px; } .money-visual svg { max-width:320px; } }
@media(max-width:700px) { .money.money-feature { grid-template-columns:minmax(0,1fr) minmax(185px,.72fr); } .money-visual { min-height:170px; } .money-visual svg { max-width:255px; } }
@media(max-width:440px) { .money.money-feature { grid-template-columns:1fr; } .money-visual { grid-row:2; min-height:190px; grid-template-columns:minmax(0,1fr); justify-items:center; } .money-visual svg { width:min(100%,300px); max-width:300px; } .money-visual>span { margin-top:-4px; max-width:none; } .money-details { grid-row:3; } }

/* Add a little dimension and light to the rebuilt ₹17L trophy. */
.money-visual .prize-cup { transform-origin:161px 118px; filter:drop-shadow(0 8px 8px rgba(0,0,0,.22)); }
.money-visual .prize-cup text { filter:drop-shadow(0 1px 1px rgba(85,45,8,.2)); }

/* The highlights carousel is a clean, automatic display without arrows or counts. */
.experience-slider-controls { justify-content:flex-start; }
.experience-counter,.experience-prev,.experience-next { display:none !important; }

.money-visual .prize-cup { animation:cup-float 4.2s ease-in-out infinite; filter:drop-shadow(0 12px 10px rgba(0,0,0,.24)); }
.money-visual .prize-cup text { font-size:30px; }



/* Each race-day word pops in place, then settles before the next word takes its turn. */
.festival-marquee { width:100%; overflow:hidden; position:relative; -webkit-mask-image:none; mask-image:none; }
.festival-note .festival-tags { display:flex; flex-wrap:wrap; align-items:center; gap:0; width:max-content; max-width:100%; padding:0; white-space:nowrap; }
.festival-note .festival-tags span { display:inline-block; transform-origin:center; animation:festival-word-pop 2.8s cubic-bezier(.2,.8,.2,1) infinite; }
.festival-note .festival-tags span:nth-child(1) { animation-delay:0s; }
.festival-note .festival-tags span:nth-child(2) { animation-delay:.32s; }
.festival-note .festival-tags span:nth-child(3) { animation-delay:.64s; }
.festival-note .festival-tags span:nth-child(4) { animation-delay:.96s; }
@keyframes festival-word-pop { 0%,14%,100% { transform:scale(1); color:#fff; text-shadow:none; } 5% { transform:scale(1.13); color:var(--lime); text-shadow:0 0 14px rgba(214,255,0,.44); } }
@media(prefers-reduced-motion:reduce) { .festival-note .festival-tags span { animation:none; } }
.footer-bottom>a { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(255,255,255,.3); border-radius:50%; font-size:24px; line-height:1; }
/* Pause decorative motion outside the viewport, then resume it on the next visit. */
.hero:not(.motion-visible),.section:not(.motion-visible),.footer:not(.motion-visible),.hero:not(.motion-visible) *, .section:not(.motion-visible) *, .footer:not(.motion-visible) * { animation-play-state:paused !important; }

/* Registration CTA: raised lacquer button with a clear press depth. */
.hero .cta .btn.register-3d,.race .btn.register-3d { position:relative; isolation:isolate; color:#fff; border:1px solid rgba(255,255,255,.42); background:linear-gradient(145deg,#ff5760 0%,#f03542 48%,#c91c31 100%); box-shadow:0 5px 0 #8c1425,0 13px 24px rgba(240,53,66,.34),inset 0 1px 0 rgba(255,255,255,.4); text-shadow:0 1px 1px rgba(90,0,0,.26); transform:translateY(-2px) translateZ(22px); transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,filter .2s; }
.hero .cta .btn.register-3d:hover,.race .btn.register-3d:hover { color:#fff; border-color:#fff; background:linear-gradient(145deg,#ff6971 0%,#f03542 50%,#d51d34 100%); box-shadow:0 7px 0 #8c1425,0 18px 30px rgba(240,53,66,.42),inset 0 1px 0 rgba(255,255,255,.48); transform:translateY(-5px) translateZ(30px); filter:saturate(1.08); }
.hero .cta .btn.register-3d:active,.race .btn.register-3d:active { transform:translateY(3px) translateZ(14px); box-shadow:0 1px 0 #8c1425,0 5px 12px rgba(240,53,66,.25),inset 0 2px 4px rgba(90,0,0,.2); }
.hero .cta .btn.register-3d:focus-visible,.race .btn.register-3d:focus-visible { outline:3px solid var(--lime); outline-offset:4px; }
/* Keep the primary registration action in the fixed top navigation. */
.nav .reg { transform:translateY(-2px); box-shadow:0 4px 0 #8c1425,0 10px 20px rgba(240,53,66,.3),inset 0 1px 0 rgba(255,255,255,.38); transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,filter .2s; }
.nav .reg:hover { transform:translateY(-4px); box-shadow:0 6px 0 #8c1425,0 15px 25px rgba(240,53,66,.4),inset 0 1px 0 rgba(255,255,255,.44); filter:saturate(1.08); }
.nav .reg:active { transform:translateY(2px); box-shadow:0 1px 0 #8c1425,0 4px 10px rgba(240,53,66,.24),inset 0 2px 4px rgba(90,0,0,.2); }
/* Give partnership enquiry the same tactile raised treatment as registration. */
.partners-copy>.btn.register-3d { position:relative; isolation:isolate; color:#fff; border:1px solid rgba(255,255,255,.42); background:linear-gradient(145deg,#ff5760 0%,#f03542 48%,#c91c31 100%); box-shadow:0 5px 0 #8c1425,0 13px 24px rgba(240,53,66,.34),inset 0 1px 0 rgba(255,255,255,.4); text-shadow:0 1px 1px rgba(90,0,0,.26); transform:translateY(-2px); transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,filter .2s; }
.partners-copy>.btn.register-3d:hover { color:#fff; border-color:#fff; background:linear-gradient(145deg,#ff6971 0%,#f03542 50%,#d51d34 100%); box-shadow:0 7px 0 #8c1425,0 18px 30px rgba(240,53,66,.42),inset 0 1px 0 rgba(255,255,255,.48); transform:translateY(-5px); filter:saturate(1.08); }
.partners-copy>.btn.register-3d:active { transform:translateY(3px); box-shadow:0 1px 0 #8c1425,0 5px 12px rgba(240,53,66,.25),inset 0 2px 4px rgba(90,0,0,.2); }
.partners-copy>.btn.register-3d:focus-visible { outline:3px solid var(--lime); outline-offset:4px; }
/* Brand and readability refinements from the supplied KYN marks. */
.nav .brand { display:flex; align-items:center; justify-content:center; padding:5px 10px; min-width:208px; min-height:62px; border-radius:8px; background:var(--paper); }
.nav .brand .brand-lockup { display:flex; align-items:center; gap:7px; }
.nav .brand .kyn-brand-mark { width:34px; height:24px; padding:0; object-fit:contain; }
.nav .brand .kyn-brand-wordmark { width:142px; height:auto; padding:0; object-fit:contain; }
.nav .brand .brand-times { color:#014850; font:700 14px var(--m); }
.links { gap:clamp(8px,1.05vw,16px); }
.links a { font-size:clamp(15px,1.15vw,18px) !important; font-weight:800; }
.nav .reg { font-size:15px !important; padding:15px 18px !important; }
.hero .eyebrow,.hero .hero-mantra { display:none !important; }
.festival-note { display:block !important; width:auto !important; max-width:100% !important; margin-top:20px !important; padding:0 !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; }
.festival-note .festival-tags { display:flex !important; flex-wrap:wrap; align-items:center; gap:0; width:auto; max-width:100%; padding:0; white-space:normal; }
.festival-note .festival-tags span { padding:0; border:0; border-radius:0; background:none; box-shadow:none; font-size:clamp(17px,1.7vw,22px); line-height:1.4; }
.festival-note .festival-tags span+span:before { margin:0 9px; }
.festival-note>b { display:block !important; width:max-content; margin:5px 0 0 !important; padding:0 !important; color:var(--lime) !important; background:none !important; font:700 12px var(--m) !important; letter-spacing:.06em; }
#director .sign { display:inline-block; margin-top:16px; padding:8px 0 8px 14px; border-left:4px solid var(--red); color:var(--ink); font-size:clamp(17px,1.5vw,21px) !important; line-height:1.25; font-weight:800; }
#races .race-motion-art,#races .race-motion-art *,#races .race-motion-art:before,#races .race-motion-art:after { animation:none !important; transition:none !important; }
.footer-brand { display:inline-flex; align-items:center; margin-right:14px; padding:5px 9px; border-radius:6px; background:var(--paper); vertical-align:middle; }
.footer-brand img { width:125px; height:auto; }
@media(max-width:1000px) { .links a { font-size:16px !important; } .nav .brand { min-width:190px; min-height:56px; } .nav .brand .kyn-brand-mark { width:30px; height:22px; } .nav .brand .kyn-brand-wordmark { width:126px; } }
@media(max-width:600px) { .links a { font-size:18px !important; } .nav .brand { min-width:166px; min-height:48px; padding:4px 8px; } .nav .brand .kyn-brand-mark { width:24px; height:18px; } .nav .brand .kyn-brand-wordmark { width:112px; } .nav .brand .brand-lockup { gap:5px; } .hero h1 { margin-top:0; } .footer-brand img { width:108px; } }

/* Keep section 04 race cards still and direct. */
.races.section .race-list#raceDeck .race,.races.section .race-list#raceDeck .race:hover,.races.section .race-list#raceDeck .race:focus-within,.races.section .race-list#raceDeck .race.card-selected { animation:none !important; transition:none !important; transform:none !important; }
.races.section .race-list#raceDeck .race:after { display:none; }

/* Keep section 04 race cards still and direct. */
.races.section .race-list#raceDeck .race,.races.section .race-list#raceDeck .race:hover,.races.section .race-list#raceDeck .race:focus-within,.races.section .race-list#raceDeck .race.card-selected { animation:none !important; transition:none !important; transform:none !important; }
.races.section .race-list#raceDeck .race:after { display:none; }
/* One centered prize panel with a single grouped card reveal. */
.prize-box { width:min(1120px,100%); margin:clamp(36px,6vw,78px) auto 0; padding:clamp(22px,4vw,44px); border:1px solid rgba(7,22,47,.12); border-radius:22px; background:linear-gradient(145deg,#102c50,#07162f); color:#fff; box-shadow:0 24px 60px rgba(7,22,47,.17); }
.prize-box-title { margin:0 0 22px; color:var(--lime); text-align:center; font:700 12px var(--m); letter-spacing:.12em; text-transform:uppercase; }
.prize-box .prize-motion-layout { perspective:none; }
.prize-box .prize-value-list { width:min(850px,100%); margin:0 auto; }
.prize-box .prize-value-list .prize-value { animation:none !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list { animation:prize-group-assemble .8s cubic-bezier(.18,.78,.2,1) both; }
@keyframes prize-group-assemble { from { opacity:0; transform:translateY(22px) scale(.97); clip-path:inset(0 0 70% round 12px); } to { opacity:1; transform:translateY(0) scale(1); clip-path:inset(0 0 0 round 12px); } }
@media(prefers-reduced-motion:reduce) { .prize-box .prize-motion-layout.reveal.visible .prize-value-list { animation:none; } }
/* Make festival labels readable on the light section background. */
.festival-note { border-color:rgba(7,22,47,.16); border-left-color:var(--red); background:#fff; box-shadow:0 12px 28px rgba(7,22,47,.1); }
.festival-note .festival-tags span { color:var(--ink) !important; text-shadow:none !important; }
.festival-note .festival-tags span+span:before { color:var(--red); }
.experience-slider-controls,.experience-slider-controls .experience-label { color:var(--ink) !important; }
@keyframes festival-word-pop { 0%,14%,100% { transform:scale(1); color:var(--ink); text-shadow:none; } 5% { transform:scale(1.08); color:var(--red); text-shadow:0 0 10px rgba(240,53,66,.2); } }
/* Prize cards assemble into one horizontal row from alternating sides. */
.prize-box .prize-motion-layout.reveal.visible .prize-value-list { animation:none !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value { opacity:0; animation:prize-card-horizontal-assemble .72s cubic-bezier(.18,.78,.2,1) both !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(odd) { --prize-enter-x:-64px; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(even) { --prize-enter-x:64px; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(1) { animation-delay:.04s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(2) { animation-delay:.16s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(3) { animation-delay:.28s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(4) { animation-delay:.40s !important; }
@keyframes prize-card-horizontal-assemble { from { opacity:0; transform:translateX(var(--prize-enter-x,0)) scale(.94); } to { opacity:1; transform:translateX(0) scale(1); } }
@media(prefers-reduced-motion:reduce) { .prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value { opacity:1; animation:none !important; } }
/* Lay out the prize split cards in a single horizontal row. */
.prize-box .prize-value-list { grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:12px; width:100%; }
.prize-box .prize-value { min-width:0; min-height:190px; padding:16px 13px; }
@media(max-width:760px) { .prize-box .prize-value-list { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media(max-width:420px) { .prize-box .prize-value { min-height:165px; padding:13px 10px; } }
/* Remove the old artwork column so the prize cards fill their box. */
.prize-box .prize-motion-layout { display:block !important; width:100%; max-width:none; margin:0; padding:0; }
.prize-box .prize-value-list { display:grid !important; width:100%; max-width:none; margin:0; }
.prize-box { padding:clamp(18px,2.5vw,30px); }
/* Drop each horizontal prize card in from above the Prize split label. */
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value { animation:prize-card-drop .72s cubic-bezier(.2,.78,.24,1.12) both !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(1) { animation-delay:.04s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(2) { animation-delay:.16s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(3) { animation-delay:.28s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value:nth-child(4) { animation-delay:.40s !important; }
@keyframes prize-card-drop { 0% { opacity:0; transform:translateY(-92px) scale(.94); } 68% { opacity:1; transform:translateY(7px) scale(1.015); } 100% { opacity:1; transform:translateY(0) scale(1); } }
@media(prefers-reduced-motion:reduce) { .prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value { opacity:1; animation:none !important; } }
/* Let the prize container arrive first, then the cards drop into place. */
.prize-box.reveal.visible { animation:prize-box-arrive .58s cubic-bezier(.2,.78,.2,1) both; }
@keyframes prize-box-arrive { from { opacity:0; transform:translateY(18px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@media(prefers-reduced-motion:reduce) { .prize-box.reveal.visible { animation:none; } }
/* Show the full race director poster without the portrait crop or overlay. */
#director .photo:after { display:none; }
#director .photo img { aspect-ratio:3/4; object-fit:contain; filter:none; background:transparent; }

.experience-slider-controls { justify-content:space-between; }
.experience-arrow { display:inline-block; color:var(--red); font:700 24px/1 var(--d); animation:experience-arrow-nudge 2s ease-in-out infinite; }
@keyframes experience-arrow-nudge { 0%,100% { transform:translateX(0); opacity:.72; } 50% { transform:translateX(10px); opacity:1; } }
@media(prefers-reduced-motion:reduce) { .experience-arrow { animation:none; } }
.experience-slider-controls .experience-arrow { display:grid !important; place-items:center; flex:0 0 46px; width:46px; height:42px; padding:0; border:1px solid var(--red); border-radius:999px; color:#fff; background:var(--red); box-shadow:0 5px 0 #a91b2c,0 10px 20px rgba(240,53,66,.2); cursor:pointer; animation:none; }
.experience-arrow span { display:block; font:700 24px/1 var(--d); animation:experience-arrow-nudge 2s ease-in-out infinite; }
.experience-slider-controls .experience-arrow:hover { color:#fff; background:#c91c31; transform:translateY(-2px); }
.experience-slider-controls .experience-arrow:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .experience-arrow span { animation:none; } }
.scroll-register { position:fixed; z-index:102; left:50%; bottom:calc(16px + env(safe-area-inset-bottom)); display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 23px; border:1px solid rgba(255,255,255,.42); border-radius:999px; color:#fff; background:linear-gradient(145deg,#ff5760 0%,#f03542 48%,#c91c31 100%); box-shadow:0 5px 0 #8c1425,0 13px 24px rgba(240,53,66,.34),inset 0 1px 0 rgba(255,255,255,.4); font:800 11px var(--m); letter-spacing:.08em; text-decoration:none; text-transform:uppercase; opacity:0; pointer-events:none; transform:translate(-50%,130%); transition:opacity .28s var(--e),transform .28s var(--e); white-space:nowrap; }
.scroll-register.show { opacity:1; pointer-events:auto; transform:translate(-50%,0); }
.scroll-register.show:hover { transform:translate(-50%,-3px); }
.scroll-register:focus-visible { outline:3px solid var(--lime); outline-offset:4px; }
@media(max-width:600px) { .scroll-register { min-height:44px; padding-inline:19px; font-size:10px; } }
.instagram-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; align-self:center; min-width:min(310px,100%); padding:10px 12px; border:1px solid #ffffff35; border-radius:12px; color:#fff; background:#ffffff0b; text-decoration:none; transition:background .25s,transform .25s; }
.instagram-footer:hover { color:#fff; background:#ffffff16; transform:translateY(-2px); }
.instagram-copy { display:grid; gap:6px; }
.instagram-copy strong { font:700 11px var(--m); letter-spacing:.06em; text-transform:uppercase; }
.instagram-copy small { color:#aec0d5; font:10px var(--m); }
.instagram-footer img { width:76px; height:auto; border-radius:8px; background:#fff; }
.instagram-footer:focus-visible { outline:3px solid var(--lime); outline-offset:4px; }
@media(max-width:700px) { .instagram-footer { align-self:flex-start; min-width:0; } }
.experience-arrows { display:flex; align-items:center; gap:8px; }
.experience-slider-controls .experience-arrow { display:grid !important; place-items:center; flex:0 0 40px; width:40px; height:40px; padding:0 0 3px; border:1px solid rgba(7,22,47,.28); border-radius:50%; color:var(--ink); background:transparent; box-shadow:none; font:500 28px/1 Arial,sans-serif; cursor:pointer; animation:none; }
.experience-slider-controls .experience-arrow:hover { color:#fff; border-color:var(--red); background:var(--red); transform:translateY(-2px); }
.experience-slider-controls .experience-arrow:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }
.instagram-footer { display:inline-flex; align-items:center; min-width:0; padding:0; border:0; border-radius:0; color:#aec0d5; background:none; font:10px var(--m); letter-spacing:.04em; text-decoration:none; transition:color .2s; }
.instagram-footer:hover { color:var(--lime); background:none; transform:none; }
.instagram-footer:focus-visible { outline:2px solid var(--lime); outline-offset:3px; }
.instagram-copy,.instagram-footer img { display:none !important; }
.instagram-footer { display:grid; place-items:center; width:28px; height:28px; color:#aec0d5; }
.instagram-footer svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:color .2s,transform .2s; }
.instagram-footer svg .instagram-dot { fill:currentColor; stroke:none; }
.instagram-footer:hover { color:#fff; transform:none; }
.instagram-footer:hover svg { transform:scale(1.12); }
.instagram-copy,.instagram-footer img { display:none !important; }
.footer-social { display:flex; justify-content:flex-end; margin-top:12px; }
.footer-social .instagram-footer { width:34px; height:34px; border:1px solid #ffffff45; border-radius:50%; color:#fff; }
.footer-social .instagram-footer svg { width:18px; height:18px; }
.footer-social .instagram-footer:hover { background:#ffffff16; }
.footer-social + .footer-bottom { margin-top:10px; }
.back-to-top { font:700 10px var(--m); letter-spacing:.04em; text-transform:uppercase; }
.footer-social { justify-content:flex-start; }
.footer-social .instagram-footer { border:0; border-radius:0; }
.back-to-top { font:20px/1 sans-serif; letter-spacing:normal; text-transform:none; }
/* Scroll-triggered drops for the distance and prize cards. */
.races.section .race-list#raceDeck .race.scroll-drop { animation:race-scroll-drop .78s cubic-bezier(.16,.84,.24,1.12) both !important; }
.races.section .race-list#raceDeck .race.scroll-drop:nth-child(1) { animation-delay:.03s !important; }
.races.section .race-list#raceDeck .race.scroll-drop:nth-child(2) { animation-delay:.12s !important; }
.races.section .race-list#raceDeck .race.scroll-drop:nth-child(3) { animation-delay:.21s !important; }
.races.section .race-list#raceDeck .race.scroll-drop:nth-child(4) { animation-delay:.30s !important; }
@keyframes race-scroll-drop { 0% { opacity:0; translate:0 -54px; scale:.94; } 70% { opacity:1; translate:0 5px; scale:1.015; } 100% { opacity:1; translate:0 0; scale:1; } }
.prize-box .prize-motion-layout.reveal.visible .prize-value.scroll-drop { animation:prize-card-drop .72s cubic-bezier(.2,.78,.24,1.12) both !important; }
@media(prefers-reduced-motion:reduce) { .races.section .race-list#raceDeck .race.scroll-drop,.prize-box .prize-value.scroll-drop { animation:none !important; translate:none !important; scale:none !important; } }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value.scroll-drop { animation:prize-card-drop .72s cubic-bezier(.2,.78,.24,1.12) both !important; }
/* Fast staggered slam for the four prize split cards on scroll. */
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value.scroll-drop { animation:prize-mass-drop .46s cubic-bezier(.16,.88,.28,1.22) both !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value.scroll-drop:nth-child(1) { --mass-tilt:-7deg; animation-delay:.02s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value.scroll-drop:nth-child(2) { --mass-tilt:5deg; animation-delay:.09s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value.scroll-drop:nth-child(3) { --mass-tilt:-4deg; animation-delay:.16s !important; }
.prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value.scroll-drop:nth-child(4) { --mass-tilt:7deg; animation-delay:.23s !important; }
@keyframes prize-mass-drop { 0% { opacity:0; filter:blur(4px); transform:translate3d(0,-108px,0) rotate(var(--mass-tilt,0deg)) scale(.78); } 62% { opacity:1; filter:blur(0); transform:translate3d(0,9px,0) rotate(calc(var(--mass-tilt,0deg)*-.18)) scale(1.055); } 82% { transform:translate3d(0,-4px,0) rotate(0) scale(.99); } 100% { opacity:1; filter:blur(0); transform:translate3d(0,0,0) rotate(0) scale(1); } }
.prize-value.scroll-drop .prize-value-icon { animation:prize-mass-icon .38s .12s cubic-bezier(.2,.8,.2,1.2) both; }
@keyframes prize-mass-icon { 0% { transform:perspective(500px) rotateY(-28deg) rotateX(18deg) scale(.55); } 72% { transform:perspective(500px) rotateY(8deg) rotateX(-5deg) scale(1.17); } 100% { transform:perspective(500px) rotateY(-9deg) rotateX(5deg) scale(1); } }
@media(prefers-reduced-motion:reduce) { .prize-box .prize-motion-layout.reveal.visible .prize-value-list .prize-value.scroll-drop,.prize-value.scroll-drop .prize-value-icon { animation:none !important; filter:none !important; transform:none !important; } }

#intro .intro-copy-centered { max-width:520px; justify-self:center; text-align:center; }
.nav .brand .event-logo { width:172px; height:50px; padding:3px 6px; object-fit:contain; background:#fff; border-radius:4px; }
@media(max-width:850px) { .nav .brand .event-logo { width:156px; height:46px; } }
@media(max-width:600px) { .nav .brand .event-logo { width:150px; height:44px; } }

.nav .brand .brand-lockup { display:flex; align-items:center; gap:9px; perspective:700px; }
.nav .brand .event-logo-square { display:grid; place-items:center; flex:0 0 50px; width:50px; height:50px; border:1px solid rgba(255,255,255,.85); border-radius:11px; background:#fff; box-shadow:0 5px 0 rgba(0,0,0,.2),0 12px 22px rgba(0,0,0,.18); transform-style:preserve-3d; animation:brand-logo-boom .82s cubic-bezier(.16,.88,.28,1.2) both; }
.nav .brand .event-logo-square img { width:36px; height:33px; padding:0; object-fit:contain; background:transparent; border-radius:0; }
.nav .brand .event-logo-copy { display:grid; gap:2px; color:#fff; white-space:nowrap; }
.nav .brand .event-logo-copy strong { font:800 15px/.95 var(--d); letter-spacing:.015em; }
.nav .brand .event-logo-copy i { color:var(--lime); font-style:normal; }
.nav .brand .event-logo-copy small { color:#d2ddec; font:7px/1.2 var(--m); letter-spacing:.07em; }
.nav .brand:hover .event-logo-square { transform:translateY(-3px) rotateY(-8deg) rotateX(5deg); box-shadow:0 8px 0 rgba(0,0,0,.18),0 16px 24px rgba(0,0,0,.22); }
@keyframes brand-logo-boom { 0% { opacity:0; transform:translate3d(0,18px,-70px) rotateX(-55deg) scale(.48); } 68% { opacity:1; transform:translate3d(0,-5px,24px) rotateX(8deg) scale(1.12); } 86% { transform:translate3d(0,2px,0) rotateX(-3deg) scale(.98); } 100% { opacity:1; transform:translate3d(0,0,0) rotateX(0) scale(1); } }
@media(max-width:850px) { .nav .brand .brand-lockup { gap:8px; } .nav .brand .event-logo-square { flex-basis:44px; width:44px; height:44px; border-radius:9px; } .nav .brand .event-logo-square img { width:32px; height:30px; } .nav .brand .event-logo-copy strong { font-size:14px; } }
@media(prefers-reduced-motion:reduce) { .nav .brand .event-logo-square { animation:none; } }
.nav .brand .brand-lockup { display:flex; align-items:center; perspective:700px; }
.nav .brand .event-logo { display:block; width:172px; height:52px; padding:4px 6px; object-fit:contain; background:#fff; border:1px solid rgba(255,255,255,.8); border-radius:7px; box-shadow:0 5px 0 rgba(0,0,0,.2),0 12px 22px rgba(0,0,0,.18); transform-style:preserve-3d; transform-origin:center; animation:brand-logo-boom .82s cubic-bezier(.16,.88,.28,1.2) both; transition:transform .22s,box-shadow .22s; }
.nav .brand:hover .event-logo { transform:translateY(-3px) rotateY(-7deg) rotateX(4deg); box-shadow:0 8px 0 rgba(0,0,0,.18),0 16px 24px rgba(0,0,0,.22); }
@media(max-width:850px) { .nav .brand .event-logo { width:156px; height:46px; } }
@media(max-width:600px) { .nav .brand .event-logo { width:146px; height:44px; } }
@media(prefers-reduced-motion:reduce) { .nav .brand .event-logo { animation:none; } }
.nav .brand .event-logo { animation:brand-logo-boom .82s cubic-bezier(.16,.88,.28,1.2) both,brand-logo-float 3.6s ease-in-out .9s infinite; }
.nav .brand:hover .event-logo { animation:brand-logo-boom .72s cubic-bezier(.16,.88,.28,1.2) both; }
@keyframes brand-logo-float { 0%,100% { translate:0 0; rotate:0deg; } 50% { translate:0 -3px; rotate:.35deg; } }
@media(prefers-reduced-motion:reduce) { .nav .brand .event-logo,.nav .brand:hover .event-logo { animation:none; translate:none; rotate:none; } }

/* Use the supplied full Chennai Half Marathon lockup in the header and footer. */
.nav .brand .event-logo { width:216px; height:54px; padding:2px 4px; }
.footer-brand img { width:220px; }
@media(max-width:850px) { .nav .brand .event-logo { width:190px; height:48px; } }
@media(max-width:600px) { .nav .brand .event-logo { width:176px; height:44px; } .footer-brand img { width:190px; } }

/* Expanded hero details to match the venue-forward reference. */
.race-date-card { width:190px; }
.date-city,.date-venue { display:block; font:700 8px/1.35 var(--m); letter-spacing:.1em; }
.date-city { margin-top:5px; color:#506780; }
.date-venue { color:#506780; }
.hero-venue { display:grid; grid-template-columns:56px 1fr; align-items:center; gap:10px 12px; width:min(420px,100%); margin:14px auto 0; padding:12px; border:1px solid rgba(255,255,255,.22); border-radius:12px; color:#fff; background:rgba(7,22,47,.7); box-shadow:0 12px 26px rgba(0,0,0,.16); backdrop-filter:blur(9px); }
.hero-venue>img { width:56px; height:56px; padding:6px; border-radius:10px; background:rgba(255,255,255,.1); }
.hero-venue>div { display:grid; gap:4px; }
.hero-venue strong { color:var(--lime); font:700 9px var(--m); letter-spacing:.1em; }
.hero-venue span { color:#e0e9f5; font-size:10px; line-height:1.45; }
.hero-venue a { width:max-content; color:#fff; font:700 9px var(--m); text-underline-offset:3px; }
.hero-venue small { grid-column:1/-1; color:#bac9dc; font:8px/1.45 var(--m); }
@media(max-width:850px) { .race-date-card { width:190px; } .hero-venue { margin-top:12px; } }
@media(max-width:600px) { .hero { min-height:900px; } .hero-venue { width:min(100%,390px); } }

/* Make the corporate enquiry action clear against the dark booking section. */
.corporate .corporate-enquiry { display:inline-flex; min-height:52px; align-items:center; margin-top:8px; padding:0 22px; border:2px solid var(--lime); border-radius:8px; color:var(--ink); background:var(--lime); box-shadow:0 5px 0 #93b300,0 12px 24px rgba(0,0,0,.22); font:800 11px var(--m); letter-spacing:.07em; text-transform:uppercase; }
.corporate .corporate-enquiry:hover { color:var(--ink); background:#efffa1; border-color:#efffa1; transform:translateY(-3px); box-shadow:0 8px 0 #93b300,0 16px 28px rgba(0,0,0,.26); }
.corporate .corporate-enquiry:focus-visible { outline:3px solid #fff; outline-offset:4px; }

/* Keep the floating registration shortcut on phone sized screens only. */
.scroll-register { display:none !important; }
@media(max-width:700px) { .scroll-register { display:inline-flex !important; } }

/* Show the fixed registration shortcut throughout mobile browsing only. */
.scroll-register { display:none !important; }
@media(max-width:700px) { .scroll-register { display:inline-flex !important; opacity:1; pointer-events:auto; transform:translate(-50%,0); bottom:calc(28px + env(safe-area-inset-bottom)); } }

/* Clean, unboxed KYN × VAMOS wordmark for the fixed header. */
.nav .brand { min-width:0 !important; min-height:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; }
.nav .brand .brand-lockup { display:flex; align-items:center; gap:7px; perspective:none; }
.nav .brand .brand-kyn { color:var(--lime); font:900 15px/1 var(--d); letter-spacing:.04em; }
.nav .brand .brand-times { color:#fff; font:700 13px/1 var(--m); }
.nav .brand .kyn-brand-mark { flex:0 0 auto; width:34px; height:24px; padding:0; object-fit:contain; background:transparent; border:0; border-radius:0; box-shadow:none; filter:brightness(0) invert(1); }
.nav .brand .kyn-brand-wordmark { flex:0 0 auto; width:126px; height:auto; padding:0; object-fit:contain; background:transparent; border:0; border-radius:0; box-shadow:none; filter:brightness(0) invert(1); }
.nav .brand:hover .kyn-brand-mark,.nav .brand:hover .kyn-brand-wordmark { transform:none; }

/* Mobile navigation opens as a single left-to-right scrollable strip. */
@media(max-width:850px) {
  .nav .brand .brand-lockup { gap:5px; }
  .nav .brand .brand-kyn { font-size:13px; }
  .nav .brand .kyn-brand-mark { width:28px; height:21px; }
  .nav .brand .kyn-brand-wordmark { width:106px; }
  .links.open { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:flex-start; gap:18px; width:100%; max-height:none; padding:13px 20px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; white-space:nowrap; background:rgba(7,22,47,.98); border-bottom:1px solid rgba(255,255,255,.18); box-shadow:0 12px 24px rgba(0,0,0,.18); scrollbar-width:none; }
  .links.open::-webkit-scrollbar { display:none; }
  .links.open a { flex:0 0 auto; font-size:13px !important; }
  .links.open a.reg { font-size:11px !important; padding:11px 14px !important; }
}
@media(max-width:600px) {
  .nav .brand .brand-kyn { font-size:12px; }
  .nav .brand .brand-times { font-size:11px; }
  .nav .brand .kyn-brand-mark { width:22px; height:17px; }
  .nav .brand .kyn-brand-wordmark { width:88px; }
  .links.open { gap:15px; padding-inline:16px; }
  .links.open a { font-size:12px !important; }
}

/* Keep the exact supplied KYN VAMOS logo in the header without its image canvas. */
.nav .brand .event-logo { display:block; width:232px; height:60px; max-width:min(232px,calc(100vw - 104px)); padding:0; object-fit:contain; background:transparent; border:0; border-radius:0; box-shadow:none; animation:none; transition:none; transform:none; filter:url(#kyn-logo-on-dark); }
.nav .brand .brand-lockup img:not(:first-of-type) { display:none !important; }
.nav .brand:hover .event-logo { box-shadow:none; transform:none; animation:none; }
@media(min-width:851px) and (max-width:1100px) {
  .nav { padding-inline:20px; }
  .nav .brand .event-logo { width:190px; height:50px; }
  .links { gap:12px; }
  .links a { font-size:9px; }
  .links .reg { padding:11px 14px !important; }
}
@media(max-width:850px) { .nav .brand .event-logo { width:200px; height:54px; max-width:calc(100vw - 94px); } }
@media(max-width:600px) { .nav .brand .event-logo { width:184px; height:48px; max-width:calc(100vw - 92px); } }

/* Keep all four event highlights side by side on narrow screens. */
@media(max-width:700px) {
  .reference-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .reference-stats div { min-width:0; padding:10px 5px; border-bottom:0 !important; }
  .reference-stats div:not(:last-child) { border-right:1px solid rgba(255,255,255,.19) !important; }
  .reference-stats strong { font-size:clamp(17px,5.2vw,24px); }
  .reference-stats span { margin-top:5px; font-size:clamp(6px,1.8vw,8px); line-height:1.25; letter-spacing:0; }
}

/* Match the highlight progress timing to the two-second slide advance. */
.experience-slider.is-autoplaying .experience-progress span { animation:experience-two-second-countdown 2s linear both; }
@keyframes experience-two-second-countdown { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(prefers-reduced-motion:reduce) { .experience-slider.is-autoplaying .experience-progress span { animation:experience-two-second-countdown 2s linear both !important; } }

/* Four hero highlights always stay in one left-to-right strip. */
.hero .reference-stats { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:stretch; width:100%; }
.hero .reference-stats>div { flex:1 1 0; min-width:0; border-bottom:0 !important; }
@media(max-width:700px) {
  .hero .reference-stats>div { padding:10px 5px; }
  .hero .reference-stats>div:not(:last-child) { border-right:1px solid rgba(255,255,255,.19) !important; }
  .hero .reference-stats strong { font-size:clamp(16px,5vw,23px); }
  .hero .reference-stats span { font-size:clamp(6px,1.8vw,8px); line-height:1.25; letter-spacing:0; }
}

/* Keyboard access, predictable focus, and readable controls. */
.skip-link { position:fixed; z-index:1200; top:10px; left:12px; padding:12px 16px; color:var(--ink); background:var(--lime); border:2px solid var(--ink); border-radius:6px; font-weight:800; text-decoration:none; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
:focus-visible { outline:3px solid #c41f32; outline-offset:3px; }
.nav a:focus-visible,.nav button:focus-visible { outline-color:#fff; box-shadow:0 0 0 2px #c41f32; }
.nav .menu { min-width:44px; min-height:44px; padding:0; place-items:center; }
.btn { min-height:44px; font-size:12px; }
.footer-title { margin-bottom:0; }
.kick { color:#ad1f31; }
.festival .kick,.corporate .kick,.prizes .kick,.logos .kick { color:var(--lime); }

/* A pause control lets visitors stop the automatic race-day carousel. */
.experience-toggle { min-height:44px; padding:0 12px; border:1px solid rgba(7,22,47,.32); border-radius:999px; color:var(--ink); background:transparent; font:700 10px var(--m); cursor:pointer; }
.experience-toggle:hover { color:#fff; border-color:var(--red); background:var(--red); }
.experience-toggle:focus-visible { outline:3px solid #c41f32; outline-offset:3px; }
.experience-slider .experience-viewport { scroll-margin-top:100px; }

/* Keep the event figures in one readable, keyboard-scrollable row on mobile. */
.hero .reference-stats { overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; scrollbar-color:var(--lime) rgba(255,255,255,.2); scroll-snap-type:x proximity; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
.hero .reference-stats>div { scroll-snap-align:start; }
@media(max-width:700px) {
  .hero .reference-stats>div { flex:0 0 148px; padding:12px 14px; }
  .hero .reference-stats strong { font-size:26px; }
  .hero .reference-stats span { font-size:10px; line-height:1.35; letter-spacing:.035em; }
  .links.open a { min-height:44px; display:flex; align-items:center; }
  body { padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
}

@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  *,*::before,*::after { animation:none !important; scroll-behavior:auto !important; }
  .experience-slider .experiences { transition:none !important; }
  .skip-link,.btn,.experience-toggle { transition:none !important; }
}

/* Let the event highlights panel span the full viewport, edge to edge. */
.hero .reference-stats { position:relative; width:100vw !important; max-width:100vw; margin-left:calc(-1 * var(--g)); }

/* On desktop scroll, keep the top registration action and tuck away section links. */
@media(min-width:851px) {
  .nav .links>a { transition:opacity .18s ease,visibility .18s ease; }
  .nav.scrolled .links>a:not(.reg) { display:none; }
  .nav.scrolled .links>.reg { display:inline-flex; }
}

/* Minimal, clearly highlighted burger control on mobile. */
.menu-icon { display:grid; gap:4px; width:19px; }
.menu-icon span { display:block; width:19px; height:2px; border-radius:2px; background:currentColor; transition:transform .18s ease,opacity .18s ease; }
@media(max-width:850px) {
  .nav .menu { display:grid; width:44px; min-width:44px; height:44px; min-height:44px; place-items:center; padding:0; border:1px solid rgba(214,255,0,.8); border-radius:12px; color:var(--lime); background:rgba(214,255,0,.1); box-shadow:0 0 0 3px rgba(214,255,0,.08); }
  .nav .menu:hover,.nav .menu[aria-expanded="true"] { color:var(--ink); border-color:var(--lime); background:var(--lime); }
  .nav .menu[aria-expanded="true"] .menu-icon span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .nav .menu[aria-expanded="true"] .menu-icon span:nth-child(2) { opacity:0; }
  .nav .menu[aria-expanded="true"] .menu-icon span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
}

/* Return the mobile burger to a plain white icon on the dark header. */
@media(max-width:850px) {
  .nav .menu,.nav .menu:hover,.nav .menu[aria-expanded="true"] { color:#fff; border-color:transparent; border-radius:0; background:transparent; box-shadow:none; }
  .nav .menu:active { color:#fff; background:rgba(255,255,255,.08); }
}


/* Keep the horizontal mobile menu compact so it overlays no hero text or layout. */
@media(max-width:850px) { .links.open { height:48px; min-height:48px; padding-top:0; padding-bottom:0; } }

/* The festival section is light, so use a dark red section label for contrast. */
.festival .kick { color:#ad1f31 !important; }

/* Force mobile burger links into one horizontal, swipeable row. */
@media(max-width:850px) {
  nav.nav .links.open { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important; justify-content:flex-start !important; overflow-x:auto !important; overflow-y:hidden !important; }
  nav.nav .links.open>a { display:inline-flex !important; flex:0 0 auto !important; align-items:center; white-space:nowrap; }
}


/* Masters prize icon: a readable age-group medal badge. */
.prize-value-icon.icon-ages { width:56px; height:56px; flex:0 0 56px; border-radius:16px; color:#fff4d7; background:linear-gradient(145deg,#d69743,#8e4052); border:1px solid rgba(255,226,180,.5); box-shadow:0 5px 16px rgba(184,112,51,.2); }
.prize-value-icon.icon-ages svg { width:48px; height:48px; }


/* Mobile burger menu: vertical list opening from the right edge. */
@media(max-width:850px) {
  nav.nav .links.open { top:72px !important; right:0 !important; left:auto !important; width:min(88vw,340px); height:auto !important; min-height:0 !important; max-height:calc(100svh - 72px) !important; padding:14px 18px 18px !important; display:flex !important; flex-direction:column !important; flex-wrap:nowrap !important; align-items:stretch !important; justify-content:flex-start !important; gap:0 !important; overflow-x:hidden !important; overflow-y:auto !important; background:rgba(7,22,47,.98); border:1px solid rgba(255,255,255,.12); border-top:0; border-radius:0 0 0 16px; box-shadow:0 18px 35px rgba(0,0,0,.28); }
  nav.nav .links.open>a { display:flex !important; flex:0 0 auto !important; justify-content:flex-end; width:100%; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,.12); text-align:right; white-space:nowrap; }
  nav.nav .links.open>a.reg { justify-content:center; margin-top:12px; border-bottom:0; }
}


/* Right-side mobile drawer, keeping the reference's vertical menu layout. */
@media(max-width:850px) {
  nav.nav #links.links.open { position:fixed !important; top:72px !important; right:0 !important; bottom:0 !important; left:auto !important; width:min(82vw,360px) !important; height:auto !important; min-height:0 !important; max-height:none !important; display:flex !important; flex-direction:column !important; flex-wrap:nowrap !important; align-items:stretch !important; justify-content:flex-start !important; gap:0 !important; padding:24px 24px calc(24px + env(safe-area-inset-bottom)) !important; overflow-x:hidden !important; overflow-y:auto !important; text-align:left !important; background:rgba(7,22,47,.99) !important; border:0 !important; border-left:1px solid rgba(255,255,255,.14) !important; border-radius:0 !important; box-shadow:-18px 0 38px rgba(0,0,0,.3) !important; }
  nav.nav #links.links.open>a { display:flex !important; flex:0 0 auto !important; justify-content:flex-start !important; width:100% !important; padding:13px 4px !important; text-align:left !important; white-space:nowrap !important; border-bottom:0 !important; }
  nav.nav #links.links.open>a.reg { justify-content:center !important; margin-top:8px !important; }
}


/* Full-screen mobile navigation panel, anchored to the right edge. */
@media(max-width:850px) {
  nav.nav #links.links.open { position:fixed !important; top:72px !important; right:0 !important; bottom:0 !important; left:0 !important; width:100vw !important; max-width:none !important; height:auto !important; min-height:0 !important; max-height:none !important; padding:24px var(--g) calc(24px + env(safe-area-inset-bottom)) !important; display:flex !important; flex-direction:column !important; flex-wrap:nowrap !important; align-items:stretch !important; justify-content:flex-start !important; gap:0 !important; overflow-x:hidden !important; overflow-y:auto !important; text-align:left !important; background:rgba(7,22,47,.99) !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
  nav.nav #links.links.open>a { display:flex !important; flex:0 0 auto !important; justify-content:flex-start !important; width:100% !important; padding:13px 4px !important; text-align:left !important; white-space:nowrap !important; border-bottom:0 !important; }
  nav.nav #links.links.open>a.reg { justify-content:center !important; margin-top:8px !important; }
}


/* Keep the full-screen mobile menu fixed and non-scrollable. */
@media(max-width:850px) {
  nav.nav #links.links.open { top:72px !important; bottom:0 !important; height:calc(100dvh - 72px) !important; overflow:hidden !important; padding-top:clamp(12px,3vh,24px) !important; padding-bottom:calc(12px + env(safe-area-inset-bottom)) !important; }
  nav.nav #links.links.open>a { padding-top:clamp(8px,1.8vh,13px) !important; padding-bottom:clamp(8px,1.8vh,13px) !important; }
  nav.nav #links.links.open>a.reg { margin-top:clamp(4px,1vh,8px) !important; }
}
@media(max-height:620px) and (max-width:850px) {
  nav.nav #links.links.open { padding-top:8px !important; padding-bottom:8px !important; }
  nav.nav #links.links.open>a { padding-top:6px !important; padding-bottom:6px !important; font-size:15px !important; }
}


/* Full-screen menu enters from the right when the burger is tapped. */
@keyframes mobile-menu-enter-right { from { transform:translateX(100%); } to { transform:translateX(0); } }
@media(max-width:850px) {
  nav.nav #links.links.open { inset:72px 0 0 0 !important; width:100vw !important; height:calc(100dvh - 72px) !important; animation:mobile-menu-enter-right .28s cubic-bezier(.2,.8,.2,1) both; transform:translateX(0); }
}
@media(prefers-reduced-motion:reduce) { nav.nav #links.links.open { animation:none !important; } }


/* Compact right-aligned mobile dropdown; leave the rest of the page visible. */
@media(max-width:850px) {
  nav.nav #links.links.open { position:absolute !important; top:72px !important; right:0 !important; bottom:auto !important; left:auto !important; width:min(82vw,340px) !important; height:auto !important; min-height:0 !important; max-height:none !important; display:flex !important; flex-direction:column !important; flex-wrap:nowrap !important; align-items:stretch !important; justify-content:flex-start !important; gap:0 !important; padding:12px 20px 18px !important; overflow:visible !important; text-align:left !important; background:rgba(7,22,47,.99) !important; border:1px solid rgba(255,255,255,.14) !important; border-top:0 !important; border-radius:0 0 0 16px !important; box-shadow:-12px 16px 28px rgba(0,0,0,.25) !important; animation:mobile-menu-enter-right .22s cubic-bezier(.2,.8,.2,1) both; }
  nav.nav #links.links.open>a { display:flex !important; flex:0 0 auto !important; justify-content:flex-start !important; width:100% !important; padding:10px 4px !important; text-align:left !important; white-space:nowrap !important; border:0 !important; font-size:17px !important; }
  nav.nav #links.links.open>a.reg { justify-content:center !important; margin-top:8px !important; }
}


/* Open the right-aligned mobile menu by dropping it down from the header. */
@keyframes mobile-menu-drop-down { from { opacity:0; transform:translateY(-14px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:850px) { nav.nav #links.links.open { animation:mobile-menu-drop-down .22s cubic-bezier(.2,.8,.2,1) both !important; } }
@media(prefers-reduced-motion:reduce) { nav.nav #links.links.open { animation:none !important; } }


/* Minimal mobile hamburger: clear white bars, no surrounding tile. */
@media(max-width:850px) {
  nav.nav .menu { display:grid !important; flex:0 0 44px; width:44px !important; min-width:44px !important; height:44px !important; min-height:44px !important; margin-left:auto; padding:0 !important; place-items:center !important; color:#fff !important; background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
  nav.nav .menu-icon { width:22px !important; gap:5px !important; }
  nav.nav .menu-icon span { width:22px !important; height:2px !important; background:#fff !important; border-radius:2px !important; }
  nav.nav .menu:hover,nav.nav .menu[aria-expanded],nav.nav .menu:active { color:#fff !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
}


/* Mobile header order: hamburger left, event logo right. */
@media(max-width:850px) {
  nav.nav { justify-content:space-between !important; }
  nav.nav .menu { order:1 !important; margin:0 auto 0 0 !important; }
  nav.nav .brand { order:2 !important; margin-left:auto !important; }
}


/* Keep the vertical menu, but reveal its dropdown from left to right. */
@keyframes mobile-menu-reveal-left-to-right { from { opacity:0; clip-path:inset(0 100% 0 0); } to { opacity:1; clip-path:inset(0 0 0 0); } }
@media(max-width:850px) { nav.nav #links.links.open { animation:mobile-menu-reveal-left-to-right .24s cubic-bezier(.2,.8,.2,1) both !important; } }
@media(prefers-reduced-motion:reduce) { nav.nav #links.links.open { animation:none !important; } }


/* Anchor the compact vertical mobile menu to the left; reveal left-to-right. */
@media(max-width:850px) {
  nav.nav #links.links.open { left:0 !important; right:auto !important; border-radius:0 0 16px 0 !important; box-shadow:12px 16px 28px rgba(0,0,0,.25) !important; animation:mobile-menu-reveal-left-to-right .24s cubic-bezier(.2,.8,.2,1) both !important; }
}


/* Footer social links: show Instagram and LinkedIn one below the other. */
.footer-social { flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:8px; }
.footer-social .linkedin-footer { display:grid; place-items:center; width:34px; height:34px; color:#fff; text-decoration:none; transition:color .2s,transform .2s,background .2s; }
.footer-social .linkedin-footer svg { width:18px; height:18px; fill:currentColor; }
.footer-social .linkedin-footer:hover { color:var(--lime); transform:translateY(-1px); }
.footer-social .instagram-footer { width:34px; height:34px; }


.footer-social .strava-footer { display:grid; place-items:center; width:34px; height:34px; color:#fc4c02; text-decoration:none; transition:transform .2s,filter .2s; }
.footer-social .strava-footer svg { width:20px; height:20px; fill:currentColor; }
.footer-social .strava-footer:hover { filter:brightness(1.2); transform:translateY(-1px); }


/* Show Instagram, LinkedIn, and Strava icons in one horizontal footer row. */
.footer-social { display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:14px; }
.footer-social>a { flex:0 0 36px; }


/* Tighten spacing between footer social icons. */
.footer-social { gap:5px !important; }
.footer-social>a { flex-basis:32px !important; }


/* Footer icon order: LinkedIn left, Strava center, Instagram right. */
.footer-social .linkedin-footer { order:1; }
.footer-social .strava-footer { order:2; }
.footer-social .instagram-footer { order:3; }


/* Footer icon order: Instagram left, Strava center, LinkedIn right. */
.footer-social .instagram-footer { order:1; }
.footer-social .strava-footer { order:2; }
.footer-social .linkedin-footer { order:3; }


/* Spread the three footer social logos across the row: left, center, right. */
.footer-social { width:100%; justify-content:space-between !important; gap:0 !important; }
.footer-social>a { flex:0 0 34px !important; }


/* Group Instagram, Strava, and LinkedIn together at the left of the footer. */
.footer-social { width:auto; justify-content:flex-start !important; gap:5px !important; }
.footer-social>a { flex:0 0 34px !important; }

/* Keep the expanded FAQ compact: three category rows, with short nested answers. */
.faq-list .faq-group > summary { padding:15px 0; font-size:14px; }
.faq-list .faq-group > summary small { margin-left:auto; color:#7b8798; font:10px var(--m); letter-spacing:.08em; }
.faq-answers { padding:0 0 8px 14px; border-left:1px solid rgba(255,255,255,.2); }
.faq-answers details { border-bottom:1px solid rgba(255,255,255,.14); }
.faq-answers summary { padding:11px 0; font-size:12px; line-height:1.45; }
.faq-answers summary:after { font-size:19px; }
.faq-answers p { margin:0; padding:0 30px 12px 0; color:#bdcde0; font-size:12px; line-height:1.55; }
.faq-list summary:focus-visible { outline:2px solid var(--lime); outline-offset:3px; }

/* Final FAQ polish: readable category labels and consistent compact accordion spacing. */
.faq-list .faq-group > summary { gap:16px; padding:16px 0; font-size:15px; }
.faq-list .faq-group > summary small { color:rgba(255,255,255,.58); font-size:9px; white-space:nowrap; }
.faq-answers { margin:0 0 10px 2px; padding:0 0 0 14px; border-left:1px solid rgba(255,255,255,.24); }
.faq-answers summary { padding:12px 0; font-size:13px; line-height:1.45; }
.faq-answers p { padding:0 30px 13px 0; font-size:12px; }
@media(max-width:600px) { .faq-list .faq-group > summary { padding:14px 0; font-size:14px; } .faq-answers { padding-left:10px; } .faq-answers summary { gap:12px; padding:11px 0; font-size:12px; } .faq-answers p { font-size:11px; } }

/* FAQ category boxes: click a box for its questions, then a question for its answer. */
.faq-grid { grid-template-columns:minmax(0,1fr); gap:26px; }
.faq-grid > .sticky { position:static; }
.faq-grid .heading { margin-top:10px; }
.faq-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:14px; margin-top:0; border-top:0; }
.faq-list > .faq-group { min-width:0; overflow:hidden; padding:0 16px; border:1px solid rgba(255,255,255,.2); border-radius:12px; background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025)); box-shadow:0 12px 28px rgba(0,0,0,.14); transition:border-color .25s,background .25s,transform .25s; }
.faq-list > .faq-group:hover { border-color:rgba(214,255,0,.48); transform:translateY(-2px); }
.faq-list > .faq-group[open] { border-color:rgba(214,255,0,.55); background:rgba(255,255,255,.055); }
.faq-list .faq-group > summary { min-height:74px; padding:16px 0; }
.faq-answers { padding-bottom:8px; }
@media(max-width:900px) { .faq-list { grid-template-columns:1fr; gap:10px; } .faq-list > .faq-group > summary { min-height:62px; } }
@media(max-width:600px) { .faq-grid { gap:18px; } .faq-list > .faq-group { padding-inline:13px; } }

/* Simple FAQ interaction: opening a category shows every question and answer at once. */
.faq-answers { display:grid; gap:0; margin:0; padding:0 0 8px; border:0; }
.faq-item { padding:12px 0; border-top:1px solid rgba(255,255,255,.15); }
.faq-item h3 { margin:0 0 5px; color:#fff; font:700 12px/1.45 var(--b); letter-spacing:0; }
.faq-item p { margin:0; padding:0; color:#bdcde0; font-size:11px; line-height:1.5; }
.faq-list > .faq-group[open] { transform:none; }
.faq-list > .faq-group > summary { cursor:pointer; }
@media(max-width:600px) { .faq-item { padding:10px 0; } .faq-item h3 { font-size:12px; } }

/* Make opened FAQ contents explicit and easy to scan. */
details.faq-group[open] > .faq-answers { display:grid !important; visibility:visible !important; opacity:1 !important; }
.faq-answers { counter-reset:faq-item; }
.faq-item { display:grid !important; grid-template-columns:22px minmax(0,1fr); column-gap:8px; visibility:visible !important; opacity:1 !important; }
.faq-item::before { counter-increment:faq-item; content:counter(faq-item,decimal-leading-zero); grid-row:1 / span 2; padding-top:1px; color:var(--lime); font:10px var(--m); }
.faq-item h3,.faq-item p { grid-column:2; }
.faq-list > .faq-group[open] { height:auto; overflow:visible; }
.faq-list > .faq-group[open] > summary { border-bottom:1px solid rgba(255,255,255,.2); }

/* Improve contrast for questions and answers inside expanded FAQ boxes. */
.faq-item { background:rgba(255,255,255,.045); border-radius:7px; padding:12px 10px; margin-top:6px; border-top:0; }
.faq-item::before { color:var(--lime); font-size:11px; font-weight:700; }
.faq-item h3 { color:#fff; font-size:13px; font-weight:800; }
.faq-item p { color:#f1f5fb; font-size:12px; line-height:1.6; }
@media(max-width:600px) { .faq-item { padding:11px 9px; } .faq-item h3 { font-size:12px; } .faq-item p { font-size:12px; } }

/* Light FAQ cards with black text throughout. */
.faq-list > .faq-group,.faq-list > .faq-group[open] { color:#07162f; border-color:rgba(7,22,47,.18); background:#fffdf7; box-shadow:0 10px 24px rgba(7,22,47,.08); }
.faq-list > .faq-group:hover { border-color:rgba(7,22,47,.42); }
.faq-list .faq-group > summary { color:#07162f; }
.faq-list .faq-group > summary small { color:#07162f; }
.faq-list .faq-group > summary:after { color:#07162f; }
.faq-list > .faq-group[open] > summary { border-color:rgba(7,22,47,.18); }
.faq-item { background:#f1eee6; }
.faq-item::before,.faq-item h3,.faq-item p { color:#07162f; }

/* Smoothly expand/collapse FAQ content, with a fade fallback for browsers without intrinsic-size transitions. */
.faq-list > .faq-group > .faq-answers { opacity:0; transition:opacity .22s ease; }
.faq-list > .faq-group[open] > .faq-answers { opacity:1; }
.faq-list > .faq-group::details-content { block-size:0; overflow:clip; opacity:0; transition:block-size .34s cubic-bezier(.2,.8,.2,1),opacity .24s ease,content-visibility .34s allow-discrete; }
.faq-list > .faq-group[open]::details-content { block-size:auto; opacity:1; }
.faq-item { animation:faq-item-reveal .28s ease both; }
.faq-item:nth-child(2) { animation-delay:.025s; }
.faq-item:nth-child(3) { animation-delay:.05s; }
.faq-item:nth-child(4) { animation-delay:.075s; }
.faq-item:nth-child(5) { animation-delay:.1s; }
.faq-item:nth-child(6) { animation-delay:.125s; }
@keyframes faq-item-reveal { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .faq-list > .faq-group::details-content,.faq-list > .faq-group > .faq-answers,.faq-item { animation:none; transition:none; } }

/* Show the complete official Strava wordmark in the footer. */
.footer-social > a.strava-footer { flex:0 0 96px !important; width:96px; height:34px; }
.footer-social .strava-footer img { display:block; width:92px; height:auto; max-height:26px; object-fit:contain; }
.footer-social .strava-footer:hover { filter:brightness(1.08); transform:translateY(-1px); }

/* Location links on each race card. */
.race .race-map { align-self:stretch; display:flex; align-items:center; justify-content:center; gap:8px; min-height:38px; margin-top:2px; padding:8px 11px; border:1px solid rgba(255,255,255,.28); border-radius:999px; color:#fff; background:rgba(255,255,255,.07); font:700 9px var(--m); letter-spacing:.06em; text-decoration:none; text-transform:uppercase; transition:background .2s,border-color .2s,transform .2s; }
.race .race-map svg { width:15px; height:15px; flex:none; fill:none; stroke:var(--lime); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.race .race-map i { color:var(--lime); font-style:normal; }
.race .race-map:hover,.race .race-map:focus-visible { color:var(--ink); background:var(--lime); border-color:var(--lime); transform:translateY(-2px); outline:none; }
.race .race-map:hover svg,.race .race-map:focus-visible svg { stroke:var(--ink); }
.race .race-map:hover i,.race .race-map:focus-visible i { color:var(--ink); }
.race .race-map:focus-visible { outline:2px solid #fff; outline-offset:3px; }

/* Keep only the standalone Strava mark in the footer. */
.footer-social > a.strava-footer { flex:0 0 34px !important; width:34px; height:34px; }
.footer-social .strava-footer svg { display:block; width:17px; height:23px; fill:currentColor; }
.footer-social .strava-footer { color:#fc4c02; }

/* Animated start-to-finish route motif for each distance card. */
.race .race-route { align-self:stretch; display:flex; align-items:center; width:100%; height:38px; margin:-2px 0; overflow:hidden; opacity:.96; }
.race-route svg { display:block; width:100%; height:38px; overflow:visible; }
.race-route .route-track { fill:none; stroke:rgba(255,255,255,.25); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.race-route .route-flow { fill:none; stroke:var(--lime); stroke-width:2.4; stroke-dasharray:4 7; stroke-linecap:round; stroke-linejoin:round; animation:route-flow 1.15s linear infinite; }
.race-route .route-flag-pole { fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; }
.race-route .route-flag { fill:var(--red); stroke:#fff; stroke-width:.8; stroke-linejoin:round; }
.race-route .route-runner { fill:none; stroke:#fff; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; animation:runner-bob .8s ease-in-out infinite alternate; }
.race-route .route-runner circle { fill:var(--lime); stroke:none; }
.race-route .route-pin { fill:var(--red); stroke:#fff; stroke-width:1.2; }
.race-route .route-pin-core { fill:#fff; }
@keyframes route-flow { to { stroke-dashoffset:-22; } }
@keyframes runner-bob { to { transform:translateY(-1.5px); } }
@media(prefers-reduced-motion:reduce) { .race-route .route-flow,.race-route .route-runner { animation:none; } }

/* Strava social link in its recognizable orange tile with a white brand mark. */
.footer-social > a.strava-footer { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; color:#fff; background:#fc4c02; box-shadow:0 3px 9px rgba(252,76,2,.24); }
.footer-social .strava-footer svg { width:14px; height:19px; fill:currentColor; }
.footer-social .strava-footer:hover { background:#e94700; filter:none; transform:translateY(-2px); box-shadow:0 5px 12px rgba(252,76,2,.32); }
.footer-social .strava-footer:focus-visible { outline:2px solid #fff; outline-offset:3px; }

/* Compact event-map card replaces the distance selector strip. */
.distance-map-card { display:flex; align-items:center; gap:12px; width:min(100%,320px); min-height:62px; margin:28px 0 0; padding:10px 14px; border:1px solid rgba(7,22,47,.14); border-radius:12px; color:var(--ink); background:#fff; box-shadow:0 8px 20px rgba(7,22,47,.08); text-decoration:none; transition:transform .22s,border-color .22s,box-shadow .22s; }
.distance-map-card:hover { transform:translateY(-3px); border-color:var(--red); box-shadow:0 13px 26px rgba(7,22,47,.13); }
.distance-map-pin { display:grid; place-items:center; width:36px; height:36px; flex:none; border-radius:10px; color:#fff; background:var(--red); }
.distance-map-pin svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.distance-map-copy { display:grid; gap:3px; }
.distance-map-copy small { color:#67758a; font:700 8px var(--m); letter-spacing:.1em; }
.distance-map-copy strong { font-size:13px; line-height:1.2; }
.distance-map-arrow { margin-left:auto; color:var(--red); font-size:17px; }
.distance-map-card:focus-visible { outline:3px solid var(--red); outline-offset:3px; }

/* Replace each race-number corner badge with a clickable location pin. */
.race-location-mark { color:var(--lime); border-radius:50%; text-decoration:none; cursor:pointer; }
.race-location-mark svg { width:100%; height:100%; padding:7px; }
.race-location-mark:hover { color:#fff; }
.race-location-mark:focus-visible { outline:2px solid #fff; outline-offset:3px; border-radius:50%; }

/* Keep one clear map CTA above the distance cards and avoid hover color flicker. */
.distance-map-card { color:#07162f; background:#fff; border-color:rgba(7,22,47,.22); cursor:pointer; }
.distance-map-copy small { color:#334155; font-weight:800; }
.distance-map-copy strong { color:#07162f; font-size:14px; font-weight:800; }
.distance-map-card:hover { color:#07162f; background:#fff; border-color:#f03542; box-shadow:0 10px 22px rgba(7,22,47,.1); transform:translateY(-1px); }
.distance-map-card:hover .distance-map-copy strong,.distance-map-card:hover .distance-map-copy small { color:#07162f; }
.distance-map-card:hover .distance-map-arrow { color:#f03542; }
@media(prefers-reduced-motion:reduce) { .distance-map-card { transition:none; } }

/* Red-and-white route animation; no yellow accents on the distance cards. */
.race-route .route-flow { stroke:#ff6b68; }
.race-route .route-runner circle { fill:#fff; }
.race-route .route-flag { fill:#ff4d5a; }
.race-route .route-pin { fill:#ff4d5a; }

/* Remove the browser-blue click highlight from FAQ summaries. */
.faq-list details > summary { -webkit-tap-highlight-color:transparent; }
.faq-list details > summary:focus { outline:none; box-shadow:none; }
.faq-list details > summary:focus-visible { outline:2px solid #f03542; outline-offset:3px; border-radius:6px; }
.faq-list details > summary:active { color:#07162f; background:transparent; }
.faq-list details[open] > summary { color:#07162f; }

/* Keep the header mark steady; earlier logo motion experiments are retired. */
.nav .brand,
.nav .brand .brand-lockup,
.nav .brand .event-logo,
.nav .brand:hover .event-logo {
  animation:none !important;
  transition:none !important;
  transform:none !important;
  translate:none !important;
  rotate:none !important;
}

/* Keep the supplied TechnoSport logo compact and centered on white. */
.partners-showcase .technosport-partner,
.partners-showcase .technosport-partner:hover { overflow:hidden; background:#fff !important; }
.partners-showcase .technosport-partner img {
  width:100%;
  max-width:100%;
  height:88px;
  max-height:108px;
  object-fit:contain;
  transform:translateZ(0);
}
@media(max-width:700px) {
  .partners-showcase .technosport-partner { min-width:0; }
  .partners-showcase .technosport-partner img { height:82px; max-height:82px; }
}

/* Give every card a clear, upward arrival and a lively but controlled response. */
.experience.tilt-card,
.race.tilt-card,
.prize.tilt-card,
.partners-showcase .logo.tilt-card,
.faq-list > .faq-group {
  transition:transform .42s cubic-bezier(.2,.8,.2,1),box-shadow .42s,border-color .3s,filter .3s;
}
.experience.tilt-card:hover,
.race.tilt-card:hover,
.prize.tilt-card:hover,
.partners-showcase .logo.tilt-card:hover,
.faq-list > .faq-group:hover {
  transform:perspective(1000px) translate3d(0,-11px,0) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(1.025);
  filter:saturate(1.08);
}
.experience.tilt-card:active,
.race.tilt-card:active,
.prize.tilt-card:active,
.partners-showcase .logo.tilt-card:active {
  transform:perspective(1000px) translateY(-3px) scale(.985);
}
@media(prefers-reduced-motion:reduce) {
  .experience.tilt-card,.race.tilt-card,.prize.tilt-card,.partners-showcase .logo.tilt-card,.faq-list > .faq-group { transition:none !important; }
}

/* Lock the mobile header and event mark to one steady size while scrolling. */
@media(max-width:850px) {
  nav.nav,
  nav.nav.scrolled {
    height:64px !important;
    min-height:64px !important;
    padding-inline:clamp(14px,5vw,24px) !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
  }
  nav.nav .brand,
  nav.nav.scrolled .brand {
    flex:0 1 auto !important;
    width:min(190px,calc(100vw - 92px)) !important;
    height:50px !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
  }
  nav.nav .brand .event-logo,
  nav.nav.scrolled .brand .event-logo {
    flex:0 1 auto !important;
    width:min(190px,calc(100vw - 92px)) !important;
    height:auto !important;
    max-height:50px !important;
    max-width:100% !important;
    object-fit:contain !important;
    object-position:center !important;
  }
  nav.nav .menu,
  nav.nav.scrolled .menu { flex:0 0 44px !important; margin:0 !important; }
  nav.nav #links.links.open { top:64px !important; }
}

/* Explicitly anchor the single event logo opposite the mobile menu. */
@media(max-width:850px) {
  nav.nav .brand,
  nav.nav.scrolled .brand {
    position:absolute !important;
    top:50% !important;
    right:clamp(14px,5vw,24px) !important;
    left:auto !important;
    width:min(190px,calc(100vw - 92px)) !important;
    height:50px !important;
    margin:0 !important;
    padding:0 !important;
    transform:translateY(-50%) !important;
  }
  nav.nav .brand .brand-lockup,
  nav.nav.scrolled .brand .brand-lockup { width:100% !important; justify-content:flex-end !important; }
  nav.nav .brand .event-logo,
  nav.nav.scrolled .brand .event-logo {
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:50px !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    object-fit:contain !important;
    object-position:right center !important;
    filter:url(#kyn-logo-on-dark) !important;
  }
  nav.nav .menu,
  nav.nav.scrolled .menu { order:0 !important; margin:0 !important; }
}

/* Mobile layout: show every event highlight and distance card without carousels. */
@media(max-width:600px) {
  .hero { padding-bottom:20px; }
  .reference-stats {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-flow:row;
    gap:7px;
    margin-top:14px;
    padding:0;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
    backdrop-filter:none;
  }
  .reference-stats>div,
  .reference-stats>div:nth-child(-n+2),
  .reference-stats>div:last-child {
    min-width:0;
    min-height:66px;
    padding:11px 12px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:10px;
    background:rgba(5,18,39,.72);
  }
  .reference-stats>div:nth-child(2) { border-right:1px solid rgba(255,255,255,.2); }
  .reference-stats>div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.2); }
  .reference-stats strong { font-size:clamp(23px,7vw,30px); }
  .reference-stats span { margin-top:5px; font-size:8px; line-height:1.35; }
  #intro.section { padding-top:42px; }
  .races.section { padding-top:42px; padding-bottom:42px; }
  .races.section .race-list#raceDeck {
    display:grid;
    grid-auto-flow:row;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    width:100%;
    height:auto;
    margin:14px 0 0;
    padding:0;
    overflow:visible;
    overscroll-behavior:auto;
    scroll-snap-type:none;
  }
  .races.section .race-list#raceDeck .race {
    width:100%;
    min-width:0;
    min-height:205px;
    padding:13px;
    gap:8px;
  }
  .races.section .race-list#raceDeck .race .distance {
    margin:0;
    font-size:clamp(38px,11vw,54px);
    line-height:.9;
  }
  .race-type { position:relative; z-index:1; color:rgba(255,255,255,.78); font:700 8px var(--m); letter-spacing:.09em; }
  .race .race-route { height:26px; max-width:100%; }
  .race-route svg { height:26px; }
  .races.section .race-list#raceDeck .race .price { margin-top:auto; }
  .races.section .race-list#raceDeck .race .btn { margin-top:0; padding:9px 6px; font-size:8px; }
}
@media(max-width:360px) {
  .races.section .race-list#raceDeck .race { min-height:190px; padding:11px; }
  .races.section .race-list#raceDeck .race .num { font-size:9px; }
  .races.section .race-list#raceDeck .race .btn { letter-spacing:.03em; }
}

/* Brand marks for the footer's Instagram and LinkedIn links. */
.footer-social .instagram-footer,
.footer-social .linkedin-footer {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:0;
  border-radius:8px;
  color:#fff;
}
.footer-social .instagram-footer { background:linear-gradient(145deg,#6750c8 0%,#d62976 48%,#f58529 100%); }
.footer-social .instagram-footer { width:36px; height:36px; border-radius:9px; background:linear-gradient(145deg,#6750c8 0%,#d62976 48%,#f58529 100%); box-shadow:0 3px 10px rgba(214,41,118,.3); }
.footer-social .instagram-footer svg { width:21px; height:21px; stroke-width:2.1; }
.footer-social .instagram-footer svg rect { rx:5.2; }
.footer-social .instagram-footer svg circle:not(.instagram-dot) { stroke-width:2.1; }
.footer-social .instagram-footer svg .instagram-dot { r:1.2; }
.footer-social .instagram-footer:hover { color:#fff; background:linear-gradient(145deg,#5942b5 0%,#c71f69 48%,#e7781c 100%); }
.footer-social .linkedin-footer { background:#0a66c2; }
.footer-social .linkedin-footer svg { width:17px; height:17px; }
.footer-social .instagram-footer:hover { color:#fff; background:linear-gradient(145deg,#5942b5 0%,#c71f69 48%,#e7781c 100%); }
.footer-social .linkedin-footer:hover { color:#fff; background:#004182; }@media(max-width:600px) {
  .corporate.section { padding-top:42px; padding-bottom:28px; }
  .corporate-grid { gap:18px; }
  .corporate-photo { height:clamp(210px,62vw,310px); margin-top:12px; }
  .corporate .copy p { margin-bottom:12px; }
  #partners.section { padding-top:36px; }
}
/* Keep all four event highlights together in one non-scrolling mobile row. */
@media(max-width:600px) {
  .reference-stats {
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-flow:row;
    gap:4px;
    width:100%;
    margin:14px 0 0;
    padding:0;
    overflow:hidden;
  }
  .reference-stats>div,
  .reference-stats>div:nth-child(-n+2),
  .reference-stats>div:last-child {
    display:flex;
    min-width:0;
    min-height:78px;
    padding:9px 5px;
    flex-direction:column;
    justify-content:center;
    border:1px solid rgba(255,255,255,.2);
    border-radius:9px;
    text-align:center;
  }
  .reference-stats>div:nth-child(2) { border-right:1px solid rgba(255,255,255,.2); }
  .reference-stats>div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.2); }
  .reference-stats strong { font-size:clamp(18px,5.4vw,24px); white-space:nowrap; }
  .reference-stats span { margin-top:5px; font-size:clamp(6px,1.7vw,8px); line-height:1.25; letter-spacing:.015em; }
}
/* Override the older 148px mobile carousel rule for this highlight strip only. */
@media(max-width:700px) {
  .hero .reference-stats {
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    grid-auto-flow:row !important;
    width:100% !important;
    max-width:100% !important;
    margin:14px 0 0 !important;
    overflow:hidden !important;
    overscroll-behavior:auto !important;
    scroll-snap-type:none !important;
  }
  .hero .reference-stats>div {
    flex:1 1 0 !important;
    min-width:0 !important;
    padding:9px 4px !important;
    scroll-snap-align:none !important;
    border-bottom:0 !important;
  }
  .hero .reference-stats>div:not(:last-child) {
    border-right:1px solid rgba(255,255,255,.19) !important;
  }
  .hero .reference-stats strong { font-size:clamp(16px,5vw,23px) !important; }
  .hero .reference-stats span {
    margin-top:5px !important;
    font-size:clamp(6px,1.8vw,8px) !important;
    line-height:1.25 !important;
    letter-spacing:0 !important;
  }
}
/* Center the Instagram artwork inside its flex-sized footer tile. */
.footer-social>a.instagram-footer {
  display:flex !important;
  flex:0 0 36px !important;
  align-items:center !important;
  justify-content:center !important;
  width:36px !important;
  height:36px !important;
  padding:0 !important;
  line-height:0 !important;
}
.footer-social>a.instagram-footer svg {
  display:block !important;
  flex:none !important;
  width:21px !important;
  height:21px !important;
  margin:0 auto !important;
  align-self:center !important;
  transform:none !important;
}
/* Fit the white Instagram glyph inside its gradient tile and suppress mobile tap flash. */
.footer-social>a.instagram-footer svg { width:24px !important; height:24px !important; }
.register-3d,.scroll-register { -webkit-tap-highlight-color:transparent; }
.register-3d:focus:not(:focus-visible),.scroll-register:focus:not(:focus-visible) { outline:none; }

/* Supplied Instagram and LinkedIn artwork, kept as separate clickable marks. */
.footer-social>a.instagram-footer,
.footer-social>a.linkedin-footer {
  display:grid !important;
  flex:0 0 36px !important;
  place-items:center !important;
  width:36px !important;
  height:36px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  line-height:0 !important;
}
.footer-social .instagram-footer img,
.footer-social .linkedin-footer img {
  display:block !important;
  width:36px !important;
  height:36px !important;
  max-width:none !important;
  object-fit:contain !important;
  border-radius:50% !important;
}

/* Compact the corporate booking section on phones. */
@media(max-width:600px) {
  .corporate.section { padding-top:32px; padding-bottom:20px; }
  .corporate-grid { gap:12px; }
  .corporate-story .heading { margin-top:8px; }
  .corporate-photo { height:clamp(170px,48vw,220px); margin-top:8px; }
  .corporate .corporate-lead { margin-bottom:8px; padding:11px 13px; font-size:18px; line-height:1.25; }
  .corporate .copy>p:not(.corporate-lead) { margin-bottom:8px; font-size:14px; line-height:1.45; }
  .corporate .corporate-enquiry { min-height:44px; margin-top:0; }
}
/* Give mobile event highlights room to read while keeping all four visible. */
@media(max-width:600px) {
  .hero .reference-stats {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    margin-top:16px !important;
    overflow:hidden !important;
  }
  .hero .reference-stats>div {
    min-height:82px !important;
    padding:12px 14px !important;
    border:1px solid rgba(255,255,255,.2) !important;
    border-radius:10px;
    text-align:left;
  }
  .hero .reference-stats strong { font-size:clamp(23px,7vw,30px) !important; }
  .hero .reference-stats span {
    margin-top:6px !important;
    font-size:clamp(8px,2.4vw,10px) !important;
    line-height:1.35 !important;
    letter-spacing:.025em !important;
  }
}
/* Further tighten gaps inside the mobile corporate booking section. */
@media(max-width:600px) {
  .corporate.section { padding-top:26px; padding-bottom:14px; }
  .corporate-grid { gap:6px; }
  .corporate-story .heading { margin-top:5px; }
  .corporate-photo { height:clamp(150px,42vw,190px); margin-top:5px; }
  .corporate .copy { margin-top:0; }
  .corporate .corporate-lead { margin:0 0 5px; padding:9px 11px; font-size:16px; line-height:1.2; }
  .corporate .copy>p:not(.corporate-lead) { margin:0 0 5px; font-size:13px; line-height:1.35; }
  .corporate .corporate-enquiry { min-height:42px; }
}
/* Remove the light tile behind the footer event logo. */
.footer .footer-brand {
  margin-right:0;
  padding:0;
  border-radius:0;
  background:transparent;
}
/* Make the event map buttons clear on the 10K and 21K cards. */
.races.section #raceDeck .race:nth-child(3) .race-map,
.races.section #raceDeck .race:nth-child(4) .race-map {
  color:#fff;
  border-color:#f03542;
  background:#f03542;
  box-shadow:0 3px 0 #a91d2d;
}
.races.section #raceDeck .race:nth-child(3) .race-map svg,
.races.section #raceDeck .race:nth-child(4) .race-map svg { stroke:#fff; }
.races.section #raceDeck .race:nth-child(3) .race-map:hover,
.races.section #raceDeck .race:nth-child(4) .race-map:hover {
  color:#fff;
  border-color:#d92738;
  background:#d92738;
}
.races.section #raceDeck .race:nth-child(3) .race-map:hover svg,
.races.section #raceDeck .race:nth-child(4) .race-map:hover svg { stroke:#fff; }
/* Clear the fixed controls from the bottom of the mobile page. */
@media(max-width:700px) {
  .scroll-register,
  #backToTop { display:none !important; }
}@media(max-width:700px) {
  .scroll-register { display:inline-flex !important; }
}
/* Remove the reserved blank strip below the footer; keep the fixed Register button. */
@media(max-width:700px) {
  body { padding-bottom:0 !important; }
}
/* Keep the mobile Register button hidden until the hero has scrolled away. */
@media(max-width:700px) {
  .scroll-register { opacity:0 !important; pointer-events:none !important; transform:translate(-50%,130%) !important; }
  .scroll-register.show { opacity:1 !important; pointer-events:auto !important; transform:translate(-50%,0) !important; }
}

/* Lock the mobile header and event mark to one steady size while scrolling. */
@media(max-width:850px) {
  nav.nav,
  nav.nav.scrolled {
    height:64px !important;
    min-height:64px !important;
    padding-inline:clamp(14px,5vw,24px) !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
  }
  nav.nav .brand,
  nav.nav.scrolled .brand {
    flex:0 1 auto !important;
    width:min(190px,calc(100vw - 92px)) !important;
    height:50px !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
  }
  nav.nav .brand .event-logo,
  nav.nav.scrolled .brand .event-logo {
    flex:0 1 auto !important;
    width:min(190px,calc(100vw - 92px)) !important;
    height:auto !important;
    max-height:50px !important;
    max-width:100% !important;
    object-fit:contain !important;
    object-position:center !important;
  }
  nav.nav .menu,
  nav.nav.scrolled .menu { flex:0 0 44px !important; margin:0 !important; }
  nav.nav #links.links.open { top:64px !important; }
}
