/* Supplied key visuals: keep the existing guide and interactions intact. */
.hero.visual-hero{padding:30px max(20px,calc((100vw - 1240px)/2)) 34px;background:linear-gradient(180deg,#d8f3ff,#f6fcff);border-bottom:5px solid var(--yellow)}
.visual-hero .sky-drift{opacity:.18;pointer-events:none;z-index:0}
.hero-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:32px}
.hero-keyvisual,.athlete-intro-visual{display:block;width:100%;height:auto;object-fit:contain;border-radius:16px}
.hero-info{min-width:0;text-align:left}
.visual-hero h1{margin:0 0 10px;max-width:350px;padding:0;background:none}
.visual-hero h1 img{display:block;width:100%;height:auto;object-fit:contain}
.hero-event-date{display:flex;flex-direction:column;gap:3px;font-size:1.125rem;line-height:1.6}
.hero-event-date strong{font-size:clamp(1.2rem,1.8vw,1.55rem)}
.hero-event-date small{font-size:.875rem;margin-left:10px}
.hero-venue{font-weight:800;margin:10px 0}
.hero-participation{font-size:.9375rem;line-height:1.8;margin:10px 0 14px}
.hero-info>.button{display:flex;min-height:48px;text-align:center;justify-content:center;width:100%;white-space:normal}
.visual-hero .hero-note{padding:0;background:none;margin:12px 0;text-align:left;font-size:.875rem;line-height:1.7}
.intro{background:linear-gradient(180deg,#fff,#f2faff);padding-top:56px;padding-bottom:56px}
.entrances-heading{margin-top:32px}
.five-ways.illustrated-entrances{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-top:24px}
.five-ways.illustrated-entrances>div{background:none;border:0;box-shadow:none;padding:0;transform:none!important;min-width:0}
.entrance-illustration{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.illustrated-entrances p{font-size:.9375rem;line-height:1.8;margin:10px auto 0;max-width:220px}
.athletes .athlete-visual-heading{margin-bottom:24px;max-width:1200px}
.athlete-intro-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:36px;max-width:1150px;margin:0 auto 32px}
.athlete-intro-layout .athlete-intro{font-size:1rem;line-height:1.9;margin:0;text-align:left}
.athlete-intro-layout .athlete-program-logo{width:240px;margin:16px 0}
.athlete-intro-layout .athlete-join{display:inline-block;margin:0}
.event-closing{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:center;gap:60px;padding:56px max(24px,calc((100vw - 1040px)/2)) 72px;background:linear-gradient(180deg,#f4fbff,#d8f3ff);border-bottom:8px solid #91c9e3}
.event-closing>img{display:block;width:100%;max-width:290px;height:auto;object-fit:contain;justify-self:center;border-radius:16px}
.event-closing>div{min-width:0}
.event-closing h2{font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.6;margin:16px 0}
.event-closing p:not(.kicker){line-height:1.9;max-width:500px}
.event-closing .button{margin-top:12px;min-height:48px;white-space:normal;text-align:center}
@media(max-width:760px){
.hero.visual-hero{padding:18px 16px 26px}
.hero-layout{grid-template-columns:minmax(0,1fr);gap:18px}
.hero-keyvisual{max-height:240px}
.visual-hero h1{max-width:235px;margin:0 auto 10px}
.hero-info .hero-series{text-align:center;font-size:.8rem;margin-bottom:4px}
.hero-event-date,.hero-venue,.hero-participation{text-align:center}
.hero-venue{font-size:1rem}
.hero-info>.text-link{display:block;text-align:center}
.intro{padding:40px 18px}
.five-ways.illustrated-entrances{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
.five-ways.illustrated-entrances>div:last-child{grid-column:1/-1;width:calc((100% - 14px)/2);justify-self:center}
.illustrated-entrances p{font-size:.875rem}
.athletes .athlete-visual-heading{margin-bottom:18px}
.athlete-intro-layout{grid-template-columns:minmax(0,1fr);gap:20px;margin-bottom:26px}
.athlete-intro-layout .athlete-program-logo{width:210px}
.event-closing{grid-template-columns:minmax(0,1fr);gap:26px;padding:40px 20px 48px;text-align:center}
.event-closing>img{width:76%;max-width:270px}
.event-closing p:not(.kicker){text-align:left;margin-left:auto;margin-right:auto}
}
/* Match the supplied category illustrations across tags, cards and map pins. */
:root{--entrance-watch:#048cfc;--entrance-play:#34bc2c;--entrance-eat:#fc6400;--entrance-learn:#f82470;--entrance-start:#8420ec}
.program-category.category-watch{color:#092c48!important}
.venue-number-pin[data-booth="1"]{color:#092c48;text-shadow:none}
/* Registration-first hero and focused listening surface. */
.hero-branding{position:relative;z-index:1;text-align:center;margin:0 auto 18px}
.visual-hero .hero-branding h1{max-width:610px;width:66%;margin:0 auto}
.hero-branding .hero-series{margin:0 0 3px}
.hero-layout{align-items:start;gap:28px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.visual-hero .hero-keyvisual{align-self:start;margin:0;max-height:none}
.hero-info .event-overview{background:#fff;border:1px solid #9dccdf;border-radius:20px;padding:20px 24px;box-shadow:4px 5px 0 #a8d4e62b}
.event-overview .hero-participation{margin:10px 0 0}
.event-hours{font-weight:900}
.registration-lead{font-size:1rem;font-weight:700;line-height:1.8;margin:16px 0 8px}
.registration-status{font-size:.875rem;font-weight:800;color:#184b70;margin:8px 0}
.registration-help{font-size:.875rem;text-align:center;margin:10px 0}
.athlete-intro-layout.without-intro-image{display:block;max-width:900px;margin:0 auto 28px}
.without-intro-image>div{display:grid;grid-template-columns:240px minmax(0,1fr);align-items:center;column-gap:28px}
.without-intro-image .athlete-program-logo{grid-column:1;grid-row:1/3;width:240px;margin:0}
.without-intro-image .athlete-intro,.without-intro-image .athlete-join{grid-column:2}
.without-intro-image .athlete-join{margin-top:12px}
.walk-in-note{background:#ffffffb8;border:1px solid #bfd6e0;border-radius:16px;padding:20px 24px;margin:24px 0}
.walk-in-note h3{font-size:1rem;margin:0 0 8px}.walk-in-note p{font-size:.9375rem;line-height:1.9;margin:0}
.specific-join{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.specific-join article{padding:22px;background:#fff;border-radius:16px;min-width:0}
.specific-join h3{margin:0 0 12px}.specific-join p{line-height:1.9}
.closing-actions{display:flex;gap:12px;flex-wrap:wrap}.closing-actions .button{font-size:.9375rem}
.theme-song{display:block}
.song-listening-panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:26px 42px;max-width:1120px;margin:0 auto 32px;padding:32px;border:1px solid #abd4e7;border-radius:28px;background:linear-gradient(140deg,#ffffffed,#ddf3ffe6);box-shadow:0 12px 34px #17476614}
.song-listening-panel .song-sleeve{max-width:430px}
.song-listening-panel .song-status{border:1px solid #6fadc9;border-radius:20px;background:linear-gradient(120deg,#c2e6f7,#e9f7ff);padding:20px;margin-top:22px;box-shadow:0 4px 0 #2b718a14}
.song-listening-panel .music-controls{padding:0;background:none;border:0;box-shadow:none}
.song-listening-panel .music-play{border-radius:50px;min-height:48px;box-shadow:3px 3px 0 #ddbd30}
.song-listening-panel .music-wave{width:52px;gap:4px;height:36px}
.song-listening-panel .music-wave i{width:4px}
.song-listening-panel .lyrics-entry{grid-column:2;text-align:left;padding:0}
.song-listening-panel .lyrics-open{border:1px solid #408bb7;background:#fff;color:#174b6f;box-shadow:3px 3px 0 #c0def0}
.song-story{margin-top:32px}
@media(max-width:760px){
.visual-hero .hero-branding h1{width:96%;max-width:390px}
.hero-branding{margin-bottom:16px}.hero-branding .hero-series{font-size:.8rem}
.hero-layout{grid-template-columns:minmax(0,1fr);gap:16px}
.hero-info .event-overview{padding:18px}
.without-intro-image>div{display:flex;flex-direction:column;gap:14px}
.without-intro-image .athlete-program-logo{order:-1;width:240px;max-width:85%}
.specific-join{grid-template-columns:minmax(0,1fr);gap:14px}.walk-in-note{padding:18px}
.song-listening-panel{grid-template-columns:minmax(0,1fr);padding:20px 16px;gap:22px;border-radius:22px}
.song-listening-panel .lyrics-entry{grid-column:1;text-align:center}
.song-listening-panel .song-status{padding:16px 12px}
.song-listening-panel .song-sleeve{max-width:350px}
.closing-actions{justify-content:center}.closing-actions .button{width:100%}
}

/* v30: four targeted visual refinements; preserve source artwork and playback. */
.visual-hero .hero-branding h1{max-width:640px}
.hero-logo-trim{display:block;position:relative;overflow:hidden;aspect-ratio:1774/697}
.visual-hero .hero-branding .hero-logo-trim img{position:absolute;top:-17.216643%;left:0;width:100%;height:auto;max-width:none;margin:0}
.hero-info .event-overview{border:4px solid var(--yellow)}
.athlete-visual-heading + .athlete-program-logo{display:block;width:min(340px,80%);height:auto;margin:0 auto 24px;object-fit:contain}
.athlete-intro-layout.without-intro-image>div{display:block;text-align:center}
.athlete-intro-layout.without-intro-image .athlete-intro{text-align:center}
.theme-song .song-section-heading{position:relative;z-index:1;text-align:center;margin:0 auto 30px;padding:12px 0 8px}
.theme-song .song-section-heading .kicker{font-size:clamp(1.25rem,3vw,2rem);font-weight:900;line-height:1.4;letter-spacing:.09em;color:var(--deep);margin:0}
.song-heading-line{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px auto 0;width:min(320px,75%)}
.song-heading-line span{height:3px;flex:1;background:var(--blue);border-radius:3px}
.song-heading-line b{display:grid;place-items:center;width:36px;height:36px;padding-left:2px;border-radius:50%;background:var(--yellow);color:var(--deep);font-size:15px;line-height:1}
@media(max-width:760px){
.visual-hero .hero-branding h1{max-width:400px}
.athlete-visual-heading + .athlete-program-logo{width:min(280px,85%);margin-bottom:20px}
.theme-song .song-section-heading{margin-bottom:24px;padding-top:8px}
}

/* v31: sky-to-navy listening section; decorative layers stay behind content. */
#theme-song{isolation:isolate;border-top:0;background:linear-gradient(180deg,#ccefff 0,#386080 72px,#193e60 160px,#10283f 58%,#132d49 100%);color:#fff;padding-top:100px}
#theme-song::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.14;background-image:radial-gradient(circle,#fff 1px,transparent 2px),radial-gradient(circle,#ffed24 2px,transparent 3px),repeating-linear-gradient(115deg,transparent 0 139px,#b5e4ff 140px,transparent 141px 280px);background-size:89px 103px,241px 227px,100% 100%;background-position:16px 24px,65px 91px,0 0}
#theme-song::after{content:"";position:absolute;left:0;right:0;top:45%;height:1px;background:linear-gradient(90deg,transparent,#ffffff50 20%,#ffffff70 65%,transparent);pointer-events:none;z-index:-1}
#theme-song .song-section-heading .kicker{color:white}
#theme-song .song-heading-line span{background:#b5e4ff}
#theme-song .song-listening-panel{background:#112d49ed;border-color:#a5d7f144;box-shadow:0 12px 34px #071a2b33;color:#fff}
#theme-song .song-listening-panel h2{color:white}
#theme-song .song-listening-panel .kicker{color:var(--yellow)}
#theme-song .song-listening-panel .song-status{background:#0e263fee;border-color:#a5d7f155;box-shadow:none}
#theme-song .song-listening-panel .music-controls{color:white}
#theme-song .song-listening-panel .music-play{background:var(--yellow);border-color:var(--yellow);color:#16334c;box-shadow:0 3px 0 #ffffff26}
#theme-song .song-listening-panel .music-play:hover{background:#fff;border-color:#fff}
#theme-song .song-listening-panel .music-wave i{background:#9ddfff}
#theme-song .song-listening-panel .music-wave i:nth-child(even){background:var(--yellow)}
#theme-song .song-listening-panel .lyrics-open{background:transparent;color:#fff;border:2px solid #b5e4ff;box-shadow:3px 3px 0 #ffed2444}
#theme-song .song-listening-panel .lyrics-open:hover{background:#ffffff15}
#theme-song .song-story{color:#fff;background:#193e60f5;border-color:#a5d7f144;border-top-color:var(--yellow);box-shadow:0 8px 25px #071a2b22}
#theme-song .song-story .kicker{color:var(--yellow)}
#theme-song .song-story h3{color:white}
#theme-song .song-listening-panel :is(button,input):focus-visible{outline:3px solid #fff;outline-offset:5px}
@media(max-width:760px){#theme-song{padding-top:94px}#theme-song::before{opacity:.09;background-size:113px 127px,281px 257px,100% 100%}}

/* Athlete Network: organization introduction after the producer profile. */
.athlete-network-about{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:36px;max-width:1100px;margin:40px auto 0;padding:30px 32px;background:#fff;border:1px solid var(--line);border-radius:20px}
.athlete-network-about .athlete-network-logo{display:block;width:180px;max-width:100%;height:auto;object-fit:contain;margin:0 auto}
.athlete-network-about .kicker{margin:0 0 8px;color:var(--deep);font-size:.875rem;letter-spacing:.1em}
.athlete-network-about h3{font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.6;margin:0 0 16px;overflow-wrap:anywhere}
.athlete-network-about p:not(.kicker){font-size:1rem;line-height:1.95;margin:0 0 16px}
.athlete-network-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--deep);font-weight:700;text-underline-offset:5px}
.athlete-network-link:hover{color:var(--blue)}
@media(max-width:760px){.athlete-network-about{grid-template-columns:minmax(0,1fr);gap:22px;padding:24px 20px;margin-top:28px}.athlete-network-about .athlete-network-logo{width:140px}}
