:root{--ink:#29215a;--paper:#f5f1e7;--cyan:#34c8f4;--pink:#f269e8;--yellow:#fff441;--line:#cbc6d0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}a{color:inherit}a:focus-visible{outline:3px solid var(--pink);outline-offset:4px}button{font:inherit}.wrap{width:min(1240px,calc(100% - 64px));margin:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:absolute;z-index:10;top:-100px;background:white;padding:12px}.skip-link:focus{top:8px}.artwork{background:var(--ink)}.artwork img{display:block;width:100%;height:auto;max-height:88vh;object-fit:contain}.page-nav{background:var(--ink);color:#fff;position:sticky;top:0;z-index:3;border-top:1px solid #ffffff30}.nav-inner{min-height:72px;display:flex;align-items:center;gap:40px}.wordmark{text-decoration:none;font-weight:900;letter-spacing:-.04em;white-space:nowrap;font-size:1.1rem}.wordmark span{color:var(--cyan)}.nav-links{display:flex;gap:25px;margin-left:auto}.nav-links a{text-decoration:none;font-size:.87rem;font-weight:700}.nav-links a:hover{color:var(--cyan)}.nav-cta{border:1px solid var(--yellow);padding:9px 18px;color:var(--yellow);text-decoration:none;font-weight:800;white-space:nowrap}.nav-cta:hover{color:var(--ink);background:var(--yellow)}.quick-info{background:var(--yellow);padding:25px 0}.quick-grid{display:grid;grid-template-columns:1.2fr .85fr 1.6fr auto;gap:20px;align-items:center}.quick-grid>div{display:flex;flex-direction:column}.meta-label,.index{font-size:.73rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.meta-label{margin-bottom:5px}.quick-grid strong{font-size:1rem;line-height:1.3}.button{min-height:52px;padding:13px 23px;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;text-decoration:none;font-weight:900;transition:transform .2s}.button:hover{transform:translateY(-3px)}.button-yellow{background:var(--ink);color:#fff}.section{padding:110px 0;scroll-margin-top:70px}.two-col{display:grid;grid-template-columns:1fr 1.1fr;gap:9%}h2,h3,p{margin-top:0}h2{font-size:clamp(2.6rem,5.3vw,5.8rem);line-height:.98;letter-spacing:-.065em;font-weight:900}h2 em{font-style:normal;color:#7456a8}.body-copy{font-size:1.1rem;max-width:640px}.body-copy .lead{font-size:clamp(1.4rem,2.15vw,2rem);line-height:1.34;font-weight:700;letter-spacing:-.025em}.body-copy p{margin-bottom:1.4em}.closing-question{font-weight:900;border-left:7px solid var(--pink);padding-left:20px}.interlude{background:var(--pink);padding:55px 0 60px;overflow:hidden}.interlude p{font-size:clamp(2rem,4vw,4.5rem);font-weight:900;letter-spacing:-.06em;line-height:1.12;margin:24px 0 0;max-width:1100px}.interlude p span{color:var(--yellow);font-size:.75em}.programme-section{background:#fff}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:60px}.section-heading h2{margin:12px 0 0}.section-heading p{font-weight:700}.asterisk{color:var(--pink)}.schedule{border-top:2px solid var(--ink)}.schedule-part{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:#fff;padding:15px 20px;margin:0}.schedule-row{display:grid;grid-template-columns:130px 1fr 35px;align-items:center;gap:24px;padding:16px 20px;border-bottom:1px solid var(--line);font-size:1.22rem;line-height:1.3}.schedule-row time{font-weight:900;color:#705a99}.schedule-row span:last-child{text-align:right;color:#b6abc8}.schedule-row:nth-child(odd){background:#faf7f9}.footnote{font-size:.85rem;margin-top:22px}.participate-section{background:var(--cyan)}.participate-section h2{max-width:850px;margin:18px 0 28px}.participate-intro{font-size:1.35rem;max-width:780px;font-weight:700}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:48px}.card{background:var(--paper);padding:35px;min-height:345px;display:flex;flex-direction:column}.card-number{font-size:.8rem;font-weight:900}.card h3{font-size:clamp(1.8rem,2.2vw,2.8rem);letter-spacing:-.055em;line-height:1.05;margin:45px 0 20px}.card p{margin-bottom:0}.register-panel{margin-top:12px;padding:38px;background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.register-panel p{max-width:680px;margin:13px 0 0;font-size:1.12rem}.register-panel .button{background:var(--yellow);color:var(--ink)}.support-section{padding:65px 0;background:#fff}.supporters{display:flex;flex-wrap:wrap;gap:35px;align-items:center;margin-top:25px}.supporter img{max-width:180px;max-height:85px;width:auto;height:auto;object-fit:contain}.footer{background:var(--ink);color:#fff;padding:95px 0 35px;scroll-margin-top:70px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:60px}.footer h2{font-size:clamp(3rem,5.5vw,6rem);margin:18px 0 0}.footer h2 i{color:var(--pink);font-style:normal}.footer-grid>div:last-child{align-self:end}.email{font-size:clamp(1rem,2vw,1.7rem);font-weight:800;color:var(--yellow);overflow-wrap:anywhere}.credits{font-size:.82rem;opacity:.75;margin:58px 0 0}.basic-page{padding:80px 0;min-height:70vh}body.admin-bar .page-nav{top:32px}@media(max-width:900px){.wrap{width:min(100% - 36px,720px)}.nav-inner{flex-wrap:wrap;padding:14px 0;gap:12px;min-height:auto}.nav-links{order:3;width:100%;margin:0;overflow:auto;gap:18px;white-space:nowrap}.nav-cta{margin-left:auto}.quick-grid{grid-template-columns:1fr 1fr}.quick-grid .button{grid-column:1/-1}.two-col{grid-template-columns:1fr;gap:25px}.section{padding:75px 0}.cards{grid-template-columns:1fr}.card{min-height:0}.card h3{margin-top:26px}.footer-grid{grid-template-columns:1fr}}@media(max-width:560px){.artwork img{max-height:none}.quick-grid{grid-template-columns:1fr}.section-heading{display:block;margin-bottom:32px}.section-heading p{margin-top:25px}.schedule-row{grid-template-columns:70px 1fr;gap:8px;font-size:1rem;padding:14px 8px}.schedule-row span:last-child{display:none}.register-panel{display:block;padding:24px}.register-panel .button{margin-top:25px;width:100%}.footer{padding-top:70px}body.admin-bar .page-nav{top:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* The banner, navigation and registration strip span the viewport. Content sits on a blue stage. */
body{background:var(--ink)}
.sticky-header{position:sticky;top:0;z-index:8;box-shadow:0 8px 24px #16133733}
body.admin-bar .sticky-header{top:32px}
.page-nav{position:static}
.nav-inner{min-height:62px}
.quick-info{padding:7px 0}
.quick-grid{display:flex;justify-content:space-between;gap:18px;min-height:42px}
.quick-grid strong{font-size:.78rem;letter-spacing:.12em}
.quick-grid strong span{color:#a450a8;padding:0 8px}
.quick-grid .button{min-height:38px;padding:7px 16px;font-size:.83rem}
.about-section,.interlude,.programme-section,.participate-section,.support-section{width:min(1400px,calc(100% - 48px));margin:24px auto}
.about-section{background:var(--paper)}
.interlude{background:#e8abe8;padding:42px 0}
.tag-cloud{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:19px}
.tag-cloud span{font-size:clamp(.78rem,1.1vw,.95rem);font-weight:700;line-height:1.35}
.tag-cloud span:nth-child(3n){opacity:.7}
.tag-cloud span:nth-child(5n){color:#654392}
.venue-panel{display:grid;grid-template-columns:1fr 1.2fr;gap:30px;background:var(--paper);margin-top:55px;min-height:320px}
.venue-panel>div{padding:34px}
.venue-panel h3{font-size:clamp(1.7rem,2.5vw,2.5rem);letter-spacing:-.05em;line-height:1.05;margin:18px 0}
.venue-panel p{max-width:450px}
.venue-panel a{font-weight:900;text-underline-offset:4px}
.venue-panel iframe{border:0;width:100%;height:100%;min-height:300px;filter:grayscale(.25)}
.support-section{padding:75px 0 90px}
.support-section h2{font-size:clamp(2.5rem,4.1vw,4.5rem);margin:14px 0 40px}
.supporters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:0}
.supporter{background:var(--paper);min-height:170px;display:grid;place-items:center;padding:26px;text-align:center;font-weight:900}
.supporter a{display:grid;place-items:center;width:100%;height:100%}
.supporter img{max-width:100%;max-height:105px;object-fit:contain}
@media(max-width:900px){.about-section,.interlude,.programme-section,.participate-section,.support-section{width:calc(100% - 28px);margin:14px auto}.quick-grid{display:flex}.quick-grid .button{width:auto}.supporters{grid-template-columns:repeat(2,minmax(0,1fr))}body.admin-bar .sticky-header{top:32px}}
@media(max-width:560px){.quick-grid strong{font-size:.68rem}.quick-grid .button{font-size:.73rem;padding:6px 10px;gap:8px}.venue-panel{grid-template-columns:1fr}.venue-panel iframe{height:260px}.supporters{gap:8px}.supporter{min-height:130px;padding:16px}body.admin-bar .sticky-header{top:0}}
html{scroll-padding-top:125px}
@media(max-width:900px){html{scroll-padding-top:155px}}
.about-section,.interlude,.programme-section,.participate-section,.support-section{border-radius:14px;overflow:hidden}
.card,.register-panel,.venue-panel{border-radius:9px;overflow:hidden}
.card h3{margin-top:28px}
.supporters{gap:10px}
.supporter{background:transparent;min-height:155px;padding:0 8px}
.supporter img{width:100%;height:150px;max-width:none;max-height:none;object-fit:contain}
.footer h2{font-size:clamp(2.7rem,5vw,5.5rem);line-height:1.05}
@media(max-width:560px){.about-section,.interlude,.programme-section,.participate-section,.support-section{border-radius:10px}.supporter{min-height:115px;padding:0 4px}.supporter img{height:112px}}

/* One clear yellow header, with unlabelled event details below the navigation. */
.page-nav{background:var(--yellow);color:var(--ink);border-top:0;border-bottom:1px solid #26224f40}
.wordmark span{color:#8051a1}
.nav-links a:hover{color:#8051a1}
.quick-info{background:var(--yellow);padding:8px 0}
.quick-grid{display:grid;grid-template-columns:1.02fr 1.08fr 1.55fr auto;gap:20px;align-items:center}
.quick-grid .quick-detail{display:block;font-size:.86rem;font-weight:800;line-height:1.3;letter-spacing:0;text-transform:none}
.quick-grid .button{white-space:nowrap}
.about-section,.interlude,.programme-section,.participate-section,.support-section{width:min(1180px,calc(100% - 96px));margin:26px auto}
.interlude{padding:58px 0}
.interlude h2{font-size:clamp(2.25rem,3.5vw,3.8rem);line-height:1.04;max-width:900px;margin:0 0 25px}
.tag-cloud{gap:10px 17px;margin:0}
.tag-cloud span{font-size:clamp(1rem,1.25vw,1.18rem);line-height:1.4}
.supporters{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:center}
.supporter{min-height:205px;padding:0;display:grid;place-items:center}
.supporter a{display:grid;place-items:center;width:100%;height:100%}
.supporter img{width:100%;height:155px;object-fit:contain}
.supporter:last-child img{height:205px}
html{scroll-padding-top:150px}
@media(max-width:900px){
  .quick-grid{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px}
  .quick-detail:nth-child(1),.quick-detail:nth-child(2),.quick-detail:nth-child(3){grid-column:1}
  .quick-grid .button{grid-column:2;grid-row:1/4;align-self:center}
  .about-section,.interlude,.programme-section,.participate-section,.support-section{width:calc(100% - 40px);margin:20px auto}
  .supporters{grid-template-columns:repeat(2,minmax(0,1fr))}
  html{scroll-padding-top:200px}
}
@media(max-width:560px){
  .quick-grid{gap:3px 9px}
  .quick-grid .quick-detail{font-size:.7rem;line-height:1.25}
  .quick-grid .button{font-size:.72rem;padding:7px 9px}
  .about-section,.interlude,.programme-section,.participate-section,.support-section{width:calc(100% - 24px);margin:12px auto}
  .supporter{min-height:145px}
  .supporter img{height:110px}
  .supporter:last-child img{height:140px}
  html{scroll-padding-top:210px}
}

/* Keep the artwork at the same width as the content without a card treatment. */
.artwork{width:min(1180px,calc(100% - 96px));margin:26px auto 0;background:transparent}
.artwork img{width:100%;max-height:none;height:auto}
@media(max-width:900px){.artwork{width:calc(100% - 40px);margin:20px auto 0}}
@media(max-width:560px){.artwork{width:calc(100% - 24px);margin:12px auto 0}}

/* Match the banner navy and override an existing Elementor/WordPress page background. */
html body,html body.custom-background,html body.elementor-default{background:#29215a !important}
html body #main{background:#29215a !important;min-height:100vh}
/* Keep the space above the banner inside the navy surface; a first-child
   top margin can collapse outside its parent and expose the old page colour. */
html body #main{padding-top:26px}
.artwork{margin-top:0}
@media(max-width:900px){html body #main{padding-top:20px}.artwork{margin-top:0}}
@media(max-width:560px){html body #main{padding-top:12px}.artwork{margin-top:0}}
/* The JPEG export has a pale one-pixel column at its right edge. */
.artwork img{clip-path:inset(0 3px 0 0)}
