/* Approved light treatments, layered onto the preserved Original Evolved page. */
:root{--copy-size:18px;--detail-size:14px;--label-size:12px;--action-size:12px;--label-track:.1em;--cream-2:rgba(251,248,242,.84)}
.page{font-size:var(--copy-size);line-height:1.6;overflow-x:clip}
.kicker,.label,.price-from,.night-date,.night-race,.pop dt,.stat dt,.reach dt,.foot-cols h2{font-size:var(--label-size);letter-spacing:var(--label-track);line-height:1.5}
.cap,.night-meta,.price-note,.stamp,.note,.foot-legal{font-size:var(--detail-size);line-height:1.6;color:color-mix(in srgb,currentColor 84%,transparent)}
.lede{font-size:18px;line-height:1.55}.ticks,.pcard-body>p:not(.label),.faq details p{font-size:17px;line-height:1.55}
.btn,.link{font-size:var(--action-size);line-height:1.3;letter-spacing:.11em}.btn{min-height:52px;padding:12px 22px}
.when{font-size:12px;letter-spacing:.12em}.hero-bar .when,.hero-bar .btn{font-size:12px;letter-spacing:.12em}.hero-copy .when{font-size:13px;letter-spacing:.12em}

.strip{font-size:12px;line-height:1.5;letter-spacing:.06em;flex-wrap:wrap;gap:8px}
.card h3{font-size:30px;line-height:1.15}.card-body{gap:18px}.price-amt{font-size:25px}.price-note{max-width:35em}
.night-body{padding:18px 14px 12px;gap:9px;position:relative;z-index:1;background:linear-gradient(#091d3ee8,#091d3e 58%)}
.night-artist{font-size:24px}.night-artist.is-tba{font-size:20px}.night-meta{font-size:14px;line-height:1.5}.night-meta .nw{white-space:normal}
.night-date{letter-spacing:.08em}.night-race{font-size:12px;letter-spacing:.08em}.nights{gap:24px 16px}
.pop{font-size:17px}.pin-label{font-size:13px;letter-spacing:.07em;line-height:1.3}.spatial-controls button,.spatial-controls #spatial-start:disabled{font-size:13px;letter-spacing:.05em;min-height:52px}
.spatial-status{font-size:14px;min-height:4.8em}
.talent{font-size:15px;letter-spacing:.12em}.pcard h3{font-size:28px}.reach dd{font-size:24px}.reach{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.reach dt{font-size:12px;letter-spacing:.05em;overflow-wrap:normal}
.faq summary{font-size:21px;line-height:1.35}.foot-cols ul{font-size:16px}.foot-cols{gap:30px 20px}.foot-cols a{overflow-wrap:anywhere}
.sb-when{font-size:12px;letter-spacing:.08em}.sb-sub{font-size:14px}.stickybar>div{min-width:0}.stickybar .btn{font-size:12px;padding:12px 18px;flex-shrink:0}.preview-note{font-size:14px}
.memory-trigger::after{font-size:12px;letter-spacing:.05em}.memory-head .btn{font-size:13px;letter-spacing:.06em}.memory-caption{font-size:14px}.memory-head{flex-wrap:wrap}.memory-head h2{font-size:24px;flex:1;min-width:140px}
/* Booking retains readable inputs and the same field order at the more restrained scale. */
.sheet{font-size:17px;--cream-2:rgba(251,248,242,.84)}
.f-kicker,.f-label,.sheet legend,.f-field label{font-size:12px;letter-spacing:.1em}.f-title{font-size:31px}
.f-opt-note,.f-zones i,.f-chips small,.f-step-unit,.f-fine,.f-error{font-size:13px;letter-spacing:.02em;line-height:1.5}
.f-seg span{font-size:13px;line-height:1.3;letter-spacing:.04em;padding:10px 4px;min-height:50px}.f-zones b{font-size:20px}
.f-chips span{font-size:13px;line-height:1.3;min-height:68px;letter-spacing:.02em}.f-chips small{font-size:13px}.f-budget span{font-size:13px;line-height:1.45}
.f-chips .f-opt>span{height:100%}
.f-field input{font-size:18px}.f-field select{font-size:16px;letter-spacing:0}.f-tel{grid-template-columns:125px minmax(0,1fr)}
.f-check{font-size:15px}.f-submit,.f-back{font-size:13px;line-height:1.35;letter-spacing:.1em;padding:14px}.f-sum dt{font-size:13px;letter-spacing:.07em}.f-sum dd{font-size:17px}
/* The existing, pre-cut neon textures are also the source of the light outside the artwork. */
#programme{overflow-x:clip}
.headliner{isolation:isolate;z-index:1}.headliner .night-media{z-index:1}
.headliner .night-body{background:linear-gradient(#091d3e80,#091d3ed9 70%)}
.neon-spill{position:absolute;top:-5%;left:-16%;width:132%;height:114%;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.4s var(--ease-show);mask-image:radial-gradient(ellipse at 50% 50%,#000 47%,transparent 73%)}
.neon-spill img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;mix-blend-mode:screen;filter:blur(18px);opacity:.9}
.headliner.is-spotlit .neon-spill{opacity:.95}
@media(prefers-reduced-motion:no-preference){
 .neon-spill img{animation:spill-breathe 5s ease-in-out infinite alternate paused;transform:translate(var(--spill-x,0px),var(--spill-y,0px)) scale(1.04)}
 .neon-spill img+img{animation-delay:-2.5s}
 .headliner.is-live .neon-spill img{animation-play-state:running}
}
@keyframes spill-breathe{from{opacity:.65}to{opacity:1}}
/* A brief specular highlight follows the original gold frame draw. */
.gold-frame{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);overflow:visible;pointer-events:none;z-index:2;opacity:0}
.gold-frame path{fill:none;stroke:#fff0c2;stroke-width:1.8;stroke-dasharray:72 928;stroke-dashoffset:90;vector-effect:non-scaling-stroke}
.gold-frame path:first-child{stroke:#e0b769;stroke-width:5;filter:blur(4px);opacity:.7}
.card:focus-within::after{opacity:1;filter:drop-shadow(0 0 3px #c9a96e99)}
@media(prefers-reduced-motion:no-preference){
 .card.is-drawn .gold-frame{animation:gold-visible 2.8s linear 1.4s both;animation-play-state:paused}
 .card.is-drawn .gold-frame path{animation:gold-travel 2.8s cubic-bezier(.25,.1,.3,1) 1.4s both;animation-play-state:paused}
 .card.is-gold-visible .gold-frame,.card.is-gold-visible .gold-frame path{animation-play-state:running}
}
@keyframes gold-visible{0%,100%{opacity:0}12%,82%{opacity:1}}
@keyframes gold-travel{from{stroke-dashoffset:90}to{stroke-dashoffset:-910}}
.motion-paused .neon-spill{opacity:.32;transition:none}.motion-paused .neon-spill img{transform:none}.motion-paused .gold-frame{display:none}
.page-hidden .neon-spill img,.page-hidden .gold-frame,.page-hidden .gold-frame path{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.neon-spill{opacity:.32!important;transition:none}.gold-frame{display:none}}
@media(min-width:1024px){
 .strip{font-size:13px;letter-spacing:.18em;gap:28px}.lede{font-size:20px}.ticks,.pcard-body>p:not(.label),.faq details p{font-size:18px}
 .card h3{font-size:36px}.price-amt{font-size:28px}.night-artist{font-size:32px}.night-artist.is-tba{font-size:24px}.night-body{padding:22px 20px 16px}.night-meta{font-size:14px}
 .pcard h3{font-size:34px}.reach dd{font-size:28px}.faq summary{font-size:23px}.spatial-status{font-size:14px}
}
@media(max-width:600px){
 .hero-copy h1{font-size:56px}
 .memory-head .btn{font-size:12px;padding:10px 12px}.memory-head h2{font-size:23px}.spatial-controls button{font-size:12px;padding:12px 7px}.spatial-status{font-size:14px}
 .headliner .neon-spill{left:-9%;width:118%;top:-2%}.neon-spill img{filter:blur(12px)}
}
@media(max-width:359px){
 .wrap{width:calc(100% - 40px)}.card-body{padding:28px 24px 32px}.btn{padding-inline:16px}.hero-copy{padding-inline:20px}.hero-copy h1{font-size:52px}.hero-copy .when{font-size:12px}
 .fig-aerial{margin-inline:-20px}.fig-aerial .cap{padding-inline:20px}
 .nights{gap:20px 12px}.night-body{padding:16px 10px 10px}.night-artist{font-size:23px}.night-artist.is-tba{font-size:20px}.night-date{font-size:12px;letter-spacing:.04em}
 .sheet{padding-inline:20px}.f-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.f-seg{grid-template-columns:1fr}.f-seg span{min-height:44px}.f-tel{grid-template-columns:116px minmax(0,1fr)}.f-label,.sheet legend{flex-wrap:wrap;gap:4px}.stickybar{gap:8px}.stickybar .btn{font-size:13px;padding-inline:12px}.sb-when{font-size:12px}.sb-sub{font-size:14px}
}

/* Let the film show through the full hero while retaining a warm fade behind the invitation. */
.hero{min-height:clamp(620px,92svh,900px);padding-top:52px;padding-bottom:44px;background:var(--day)}
.hero-media{height:100%;object-position:50% 50%;mask-image:none}
.hero-scrim{background:linear-gradient(180deg,#020a1eb8 0%,#020a1e26 28%,#020a1e33 46%,#2e201899 68%,#5e3f35e6 100%)}
.hero-copy{gap:12px}.hero .btn{margin-top:12px}.hero-circuit{top:26%;height:41%;opacity:.85}


@media(min-width:1024px){.hero{min-height:clamp(720px,92svh,900px);padding-top:36px;padding-bottom:70px}.hero-media{height:100%;mask-image:none}.hero h1{font-size:104px}.hero-scrim{background:linear-gradient(180deg,#020a1eb8 0%,#020a1e40 30%,#020a1e66 48%,#2e2018b3 78%,#5e3f35ed 100%)}.hero-circuit{top:22%;height:48%}}
@media(max-width:359px){.hero{padding-top:42px;padding-bottom:36px}.hero-copy h1{font-size:50px}}

/* Client selection: retain the supporting photos in the source, show only the map. */
.roof--map-only [hidden]{display:none}
.roof--map-only{grid-template-columns:minmax(0,1fr)}
@media(min-width:1024px){.roof--map-only .map-visual{aspect-ratio:16/9}}

/* Client feedback: retained content is hidden, never removed from this revision. */
.page [data-client-hidden]{display:none!important}
.hero-edition{max-width:36em;text-wrap:balance}
.availability{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);font-size:17px}
.f-entry-options{grid-template-columns:repeat(2,minmax(0,1fr))}
#partners{--pad:44px;padding-block:var(--pad)}
#partners>.node{translate:0 12px}
.partner-contact{display:flex;align-items:center;justify-content:space-between;gap:28px}
.partner-contact h2{font-size:26px;line-height:1.25;max-width:26em}
.partner-contact .btn{flex-shrink:0}
/* Keep the original sky transition, now timed to lineup → day/night. */
#programme{background:linear-gradient(var(--day),var(--sunset) 55%,var(--midnight))}
#tables,.motion-paused #tables{background:var(--midnight)}
.strip{background:var(--deep)}
@media(prefers-reduced-motion:no-preference){@supports(animation-timeline:view()){
 #programme,#tables{background:none}
 #programme::before{z-index:-1;background:var(--day);animation-timeline:--programme;animation-range:exit -50% exit 5%}
 #tables::before{z-index:-2;background:linear-gradient(#2C2252,var(--sunset) 55%,#70452F);animation-timeline:--tables;animation-range:entry 5% entry 100%}
}}
@media(max-width:600px){.hero-edition{max-width:27em;font-size:12px;letter-spacing:.08em}.partner-contact{align-items:flex-start;flex-direction:column;gap:18px}.partner-contact h2{font-size:23px}}

/* Use current approved artwork while previous artist photos remain archived. */
.returning-artist{max-width:360px}
.returning-artist img{display:block;width:100%;height:auto;border:1px solid var(--line)}

/* Compact past-editions section: names and approved artwork only. */
#past.past-compact{--pad:56px}
.past-layout{display:grid;gap:28px;align-items:center}
.past-copy h2{margin-bottom:24px}
.past-copy .talent{margin-bottom:0;line-height:1.6}
.returning-artist [hidden]{display:none}
@media(min-width:900px){
 #past.past-compact{--pad:64px}
 .past-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:clamp(40px,6vw,88px)}
}

/* The portrait's existing neon contours breathe with a small matching light spill. */
.returning-visual{position:relative;isolation:isolate}
.returning-visual picture{display:block;position:relative;z-index:0}
.returning-visual::before,.returning-visual::after{content:"";position:absolute;inset:8px -8px;z-index:-1;pointer-events:none;filter:blur(16px);opacity:.65}
.returning-visual::before{background:radial-gradient(ellipse at 0% 55%,#168cff,transparent 64%);box-shadow:-12px 0 28px #127cff70}
.returning-visual::after{background:radial-gradient(ellipse at 100% 48%,#c13bff,transparent 64%);box-shadow:12px 0 28px #c13bff70}
.returning-neon{position:absolute;inset:1px;z-index:1;pointer-events:none;mix-blend-mode:screen}
.returning-neon img{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:fill;mix-blend-mode:screen;opacity:.4}
@media(prefers-reduced-motion:no-preference){
 .returning-neon img{animation:returning-neon-breathe 3s ease-in-out infinite alternate paused}
 .returning-visual::before,.returning-visual::after{animation:returning-neon-spill 3s ease-in-out infinite alternate paused}
 .returning-neon .returning-neon-purple,.returning-visual::after{animation-delay:-3s}
 .returning-artist.is-live .returning-neon img,.returning-artist.is-live .returning-visual::before,.returning-artist.is-live .returning-visual::after{animation-play-state:running}
}
@keyframes returning-neon-breathe{from{opacity:.18}to{opacity:.95}}
@keyframes returning-neon-spill{from{opacity:.3}to{opacity:1}}
.page-hidden .returning-neon img,.page-hidden .returning-visual::before,.page-hidden .returning-visual::after{animation-play-state:paused!important}
.motion-paused .returning-neon img,.motion-paused .returning-visual::before,.motion-paused .returning-visual::after{animation:none!important}

/* Preserve the supplied montage's full 4:3 composition; the poster remains the fallback. */
.returning-reel{aspect-ratio:4/3;background:var(--midnight)}
.returning-reel picture{height:100%}
.returning-reel picture img{width:100%;height:100%;object-fit:contain}
.returning-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}
.returning-video.is-playing{opacity:1}
.motion-paused .returning-video{opacity:0}
@media(prefers-reduced-motion:reduce){.page .returning-video{display:none}}

/* Direct contact stays above the booking bar and outside modal flows. */
.faq .tbc{white-space:normal;overflow-wrap:anywhere}
.whatsapp-bubble{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:51;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#128c4a;color:#fff;box-shadow:0 4px 20px #0005;border:1px solid #ffffff40;text-decoration:none}
.stickybar.is-on~.whatsapp-bubble{bottom:calc(104px + env(safe-area-inset-bottom))}
.whatsapp-bubble:hover{background:#0e743d}
.whatsapp-bubble:focus-visible{outline:3px solid var(--cream);outline-offset:4px}
body:has(dialog[open]) .whatsapp-bubble{display:none}
@media(min-width:1024px){.whatsapp-bubble{right:24px}.stickybar.is-on~.whatsapp-bubble{bottom:112px}}
