/* Font licenses: url(assets/fonts/dmsans-OFL-v10.txt), url(assets/fonts/dmserifdisplay-OFL-v10.txt) */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/reset-font-1-v10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/reset-font-2-v10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/reset-font-1-v10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/reset-font-2-v10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/reset-font-1-v10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/reset-font-2-v10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/reset-font-1-v10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/reset-font-2-v10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/reset-font-3-v10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/reset-font-4-v10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/reset-font-5-v10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/reset-font-6-v10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--ink:#173b33;--deep:#102c27;--paper:#f6f0e4;--sand:#e9dfca;--gold:#deb976;--rust:#b24b31;--muted:#626f65;--line:#173b3326;--serif:'DM Serif Display',Georgia,serif;--depth:0}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 'DM Sans',Arial,sans-serif}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font:400 48px/1.08 var(--serif);letter-spacing:-.025em}em{font-weight:400}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;width:100%;height:auto}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{opacity:.3;cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--rust);outline-offset:5px}.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}.sprite,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;z-index:110;padding:12px 20px;background:var(--paper)}.skip-link:focus{top:12px}.eyebrow{font-size:10px;line-height:1.5;letter-spacing:.17em;text-transform:uppercase;font-weight:600}.eyebrow.with-line{display:flex;align-items:center;gap:14px}.eyebrow.with-line:before{content:'';width:35px;height:1px;background:currentColor}.small{font-size:12px}.section-shell{padding:90px max(6vw,24px)}.section-link{display:inline-flex;align-items:center;gap:20px;min-height:44px;border-bottom:1px solid currentColor;font-size:13px;padding:6px 0}.section-link .icon{transition:transform .25s}.section-link:hover .icon{transform:translate(3px,-3px)}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;min-height:52px;border:1px solid transparent;padding:14px 23px;border-radius:5px;background:var(--gold);color:var(--deep);font-size:13px;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s}.button:hover{background:#edc888;transform:translateY(-2px);box-shadow:0 8px 20px #0002}.button .icon{transition:transform .2s}.button:hover .icon{transform:translateX(3px)}.button-outline{background:transparent;border-color:currentColor;color:inherit}.button-outline:hover{background:#ffffff12}.round-button{display:grid;place-items:center;width:48px;height:48px;min-width:48px;border:1px solid currentColor;border-radius:50%;background:transparent;transition:background .2s,color .2s}.round-button:hover:not(:disabled){background:var(--ink);color:var(--paper)}
/* The opening is a composed scene; independent foreground and background react to scroll. */
.masthead{position:fixed;z-index:50;top:0;left:0;right:0;height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;color:var(--paper);border-bottom:1px solid #f6f0e425;transition:height .3s,background .3s,box-shadow .3s}.scrolled .masthead{height:72px;background:#102c27f2;backdrop-filter:blur(16px);box-shadow:0 3px 22px #0001}.brand{font:30px/1 var(--serif);letter-spacing:-.03em;white-space:nowrap}.brand span{display:block;font:7px/1.5 'DM Sans',Arial,sans-serif;letter-spacing:.18em;margin-top:7px}.header-right,.header-nav{display:flex;align-items:center;gap:30px}.header-nav{font-size:12px}.header-nav a{position:relative;padding:12px 0}.header-nav a:after{content:'';position:absolute;bottom:5px;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s}.header-nav a:hover:after,.header-nav a[aria-current]{transform:scaleX(1)}.header-book{min-height:43px;padding:9px 17px;font-size:12px;gap:13px}.menu-toggle{display:flex;align-items:center;gap:10px;background:none;border:0;color:inherit;padding:10px 0 10px 10px;min-height:44px;font-size:11px}.menu-toggle .icon{width:26px;height:26px}
.hero-scene{position:relative;background:var(--deep);color:var(--paper);overflow:hidden}.hero-visual{position:relative;min-height:650px;height:min(79vh,860px);isolation:isolate}.hero-images{position:absolute;inset:0;z-index:-2;overflow:hidden}.hero-art{position:absolute;top:0;right:0;width:78%;height:100%;object-fit:cover;object-position:65% center;transform:translateY(calc(var(--depth)*-38px)) scale(1.08)}.hero-images:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#102c27 0%,#102c27f2 18%,#102c27b3 38%,#102c2730 61%,#102c2700 82%),linear-gradient(0deg,#102c2780,transparent 35%)}.hero-tabla{position:absolute;right:2%;bottom:-4%;width:31%;height:62%;object-fit:contain;filter:drop-shadow(0 20px 20px #0004);transform:translateY(calc(var(--depth)*-76px)) rotate(calc(var(--depth)*-2deg));z-index:2}.hero-copy{position:relative;padding:175px 0 95px 6%;width:58%;max-width:790px;z-index:3}.hero-copy>.eyebrow{color:var(--gold)}.hero-copy h1{font-size:clamp(44px,4.55vw,68px);line-height:1.05;margin:26px 0 22px;max-width:660px;text-wrap:balance}.hero-copy h1 em{color:var(--gold)}.hero-intro{font-size:14px;max-width:360px;color:#f6f0e4d9;line-height:1.8}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:28px}.hero-explore{display:inline-flex;gap:12px;align-items:center;min-height:44px;font-size:12px}.hero-explore .icon{transition:transform .3s}.hero-explore:hover .icon{transform:translateY(4px)}.booking-note{font-size:10px;letter-spacing:.03em;color:#e9dfcac9;margin-top:12px}.date-seal{position:absolute;right:6%;top:128px;width:101px;height:101px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #f6f0e480;border-radius:50%;background:#102c2738;backdrop-filter:blur(8px);color:var(--paper);transform:rotate(9deg);z-index:3}.date-seal strong{font:38px/1 var(--serif)}.date-seal span{font-size:10px;letter-spacing:.13em}.date-seal .seal-year{font-size:8px;margin-top:5px}.hero-bottom-caption{position:absolute;right:6%;bottom:30px;z-index:4;font-size:9px;letter-spacing:.13em;color:var(--paper)}.hero-facts{display:grid;grid-template-columns:1.15fr 1fr 1.1fr;gap:25px;align-items:center;padding:25px 6%;background:#183b33;border-top:1px solid #f6f0e430;position:relative;z-index:5}.fact{display:flex;align-items:center;gap:16px;font-size:12px;line-height:1.5}.fact>.icon{color:var(--gold);width:25px;height:25px}.fact small{display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#e9dfcaac;margin-bottom:3px}.hero-descriptor{font-size:12px;line-height:1.65}
/* Each chapter has its own composition, while the text remains live and readable. */
.music-scene{display:grid;grid-template-columns:1.08fr 1fr;align-items:center;gap:9%;position:relative;overflow:hidden;padding-top:95px;padding-bottom:105px}.music-image{position:relative;max-width:650px}.photo-frame{overflow:hidden;position:relative;background:var(--ink);border-radius:4px 90px 4px 4px;aspect-ratio:1.16}.photo-frame img{height:100%;object-fit:cover;object-position:60% center;transform:scale(1.04) translateY(calc(var(--depth)*-16px))}.music-image:before{content:'';position:absolute;inset:-22px 25px 25px -22px;border:1px solid #173b3338;border-radius:4px 95px 4px 4px;z-index:-1}.music-image figcaption{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-top:16px}.photo-tag{position:absolute;bottom:40px;right:-28px;background:var(--ink);color:var(--paper);padding:17px 21px;display:flex;gap:15px;align-items:center;box-shadow:0 12px 35px #102c2720;z-index:2;border-radius:4px}.photo-tag .icon{color:var(--gold);width:28px;height:28px}.photo-tag strong{display:block;font:22px/1.2 var(--serif)}.photo-tag span{font-size:9px;color:var(--sand)}.music-copy{position:relative}.music-copy h2{font-size:clamp(43px,4.7vw,70px);margin:24px 0 18px}.music-copy h2 em{display:block;color:var(--rust)}.expressive-line{font:italic 23px/1.3 var(--serif);margin-bottom:21px}.music-copy>p:not(.eyebrow):not(.expressive-line){font-size:14px;line-height:1.9;max-width:470px}.music-copy .section-link{margin-top:23px}.sound-contour{position:absolute;right:-120px;bottom:-95px;width:460px;height:250px;border:1px solid #173b3314;border-radius:50%;box-shadow:0 0 0 27px #173b3307,0 0 0 54px #173b3305;z-index:-1;transform:rotate(-25deg)}
.audience-scene{position:relative;display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:12%;background:#e9e6d8;overflow:hidden;padding-top:55px;padding-bottom:55px}.audience-copy{position:relative;z-index:2}.audience-copy h2{font-size:clamp(35px,3.7vw,54px);margin:23px 0}.audience-copy h2 em{color:var(--rust)}.audience-copy>p:not(.eyebrow){max-width:440px;font-size:14px;line-height:1.9}.audience-copy .edition-line{font-size:11px;margin-top:24px;padding-left:18px;border-left:2px solid var(--rust)}.audience-art{width:100%;max-width:360px;justify-self:center;position:relative;transform:translateY(calc(var(--depth)*-20px)) rotate(-3deg)}.audience-art img{border-radius:150px 150px 6px 6px;box-shadow:20px 22px 0 #c6cbb744}.audience-scene:before{content:'';position:absolute;width:550px;height:550px;right:-180px;top:-130px;border:1px solid #173b3320;border-radius:50%;box-shadow:0 0 0 40px #173b3304}.audience-art figcaption{position:absolute;bottom:20px;left:-35px;padding:12px 20px;background:var(--paper);color:var(--ink);font:italic 19px/1.2 var(--serif);transform:rotate(3deg);box-shadow:0 5px 25px #173b3315}
.programme-scene{padding-bottom:90px;overflow:hidden}.programme-heading{display:flex;justify-content:space-between;gap:8%;align-items:end;margin-bottom:36px}.programme-heading h2{font-size:clamp(34px,3.8vw,55px);margin-top:17px}.programme-heading h2 em{color:var(--rust)}.programme-heading>div:last-child{max-width:380px;font-size:13px}.programme-heading .small{margin-top:13px;color:var(--muted);font-size:11px}.rail-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.rail-tabs{display:flex;gap:8px;flex-wrap:wrap}.rail-tabs button{background:none;border:1px solid transparent;border-radius:30px;min-height:46px;display:flex;align-items:center;gap:10px;padding:10px 19px;font-size:12px;transition:background .25s,color .25s}.rail-tabs button .icon{width:18px;height:18px}.rail-tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.rail-tabs button:hover:not([aria-pressed=true]){border-color:var(--line)}.rail-controls{display:flex;align-items:center;gap:13px}.rail-count{font-size:11px;min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.rail-viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:8px}.rail-viewport::-webkit-scrollbar{display:none}.programme-track{display:flex;position:relative;width:100%;gap:24px}.programme-panel{flex:0 0 100%;scroll-snap-align:start;display:grid;grid-template-columns:1.12fr 1fr;min-height:430px;background:var(--ink);color:var(--paper);border-radius:8px;overflow:hidden;isolation:isolate}.panel-image{height:100%;min-height:430px;position:relative;overflow:hidden}.panel-image img{height:100%;width:100%;object-fit:cover;transition:transform .65s;transform:scale(1.035)}.programme-panel[data-active=true]:hover .panel-image img{transform:scale(1.075)}.listen-panel .panel-image img{object-position:60% center}.take-part-panel .panel-image img{object-position:center 66%}.meet-panel .panel-image img{object-position:center 74%}.table-panel .panel-image img{object-position:center 65%}.panel-copy{padding:45px 13%;display:flex;flex-direction:column;justify-content:center}.panel-label{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.15em;color:var(--gold)}.panel-copy h3{font-size:clamp(31px,3vw,45px);margin:20px 0}.panel-copy>p:not(.panel-label){font-size:13px;line-height:1.8;max-width:370px}.activity-list{list-style:none;margin:23px 0 0;padding:0}.activity-list li{display:flex;gap:12px;align-items:center;border-top:1px solid #f6f0e426;padding:10px 0;font-size:11px}.activity-list li:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.take-part-panel{background:#5b604b}.meet-panel{background:#82442d}.table-panel{background:#e1caa5;color:var(--ink)}.table-panel .panel-label{color:var(--rust)}.table-panel .activity-list li{border-color:var(--line)}.rail-progress{height:2px;background:var(--line);margin-top:24px;position:relative;overflow:hidden}.rail-progress span{display:block;width:25%;height:100%;background:var(--rust);transform:translateX(calc(var(--panel,0)*100%));transition:transform .4s}.rail-help{margin-top:11px;color:var(--muted);font-size:10px;text-align:right}
.visit-section{position:relative;display:grid;grid-template-columns:1.08fr 1fr;background:var(--deep);color:var(--paper);overflow:hidden}.venue-image{position:relative;min-height:550px}.venue-image img{width:100%;height:100%;object-fit:cover;object-position:center 68%}.venue-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#102c2780,transparent 50%)}.venue-image figcaption{position:absolute;left:7%;bottom:32px;z-index:1;display:flex;gap:13px;align-items:center;font-size:12px}.venue-image figcaption .icon{color:var(--gold)}.visit-copy{padding:65px 14% 65px 12%;align-self:center}.visit-copy>.eyebrow{color:var(--gold)}.visit-copy h2{font-size:clamp(36px,3.7vw,53px);margin:23px 0}.visit-copy h2 em{color:var(--gold)}.visit-copy>p:not(.eyebrow){font-size:13px;line-height:1.9;color:#f6f0e4cc}.guest-line{display:flex;gap:19px;align-items:center;padding:23px 0;margin:22px 0;border-top:1px solid #f6f0e433;border-bottom:1px solid #f6f0e433}.guest-line>.icon{width:35px;height:35px;color:var(--gold)}.guest-line span{font-size:9px;letter-spacing:.13em}.guest-line h3{font-size:29px;margin-top:5px}.visit-copy .section-link{font-size:12px}
.questions-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:12%;padding-top:75px;padding-bottom:75px}.questions-heading h2{font-size:40px;margin:20px 0}.questions-heading p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:280px}.questions-list details{border-bottom:1px solid var(--line)}.questions-list details:first-child{border-top:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:18px 0;cursor:pointer;font-size:14px}summary::-webkit-details-marker{display:none}summary .icon{transition:transform .25s}details[open] summary .icon{transform:rotate(45deg)}.questions-list details>p{font-size:13px;line-height:1.8;color:var(--muted);padding:0 35px 23px 0}.questions-list details a{text-decoration:underline;text-underline-offset:4px}
.attend-section{position:relative;display:grid;grid-template-columns:1fr .9fr;gap:13%;background:#dce1d3;padding-top:80px;padding-bottom:80px;overflow:hidden}.attend-section:before{content:'';position:absolute;width:650px;height:650px;right:-320px;top:-300px;border:1px solid #173b331c;border-radius:50%;pointer-events:none}.attend-intro h2{font-size:clamp(42px,4.6vw,65px);margin:23px 0}.attend-intro h2 em{color:var(--rust)}.attend-facts{font-size:13px;line-height:1.9}.attend-intro .small{margin-top:12px;color:var(--muted)}.attend-links{margin-top:24px;display:flex;flex-direction:column;align-items:start;gap:14px}.contact-link{font-size:12px;display:inline-flex;align-items:center;gap:10px;min-height:44px}.brochure-link{display:inline-flex;align-items:center;gap:10px;font-size:11px;border-bottom:1px solid var(--line);min-height:42px}.attend-ticket{align-self:center;position:relative;z-index:1;min-width:0}.ticket-card{background:var(--paper);border-radius:12px;box-shadow:0 20px 50px #173b3312;overflow:hidden}.ticket-top{display:flex;justify-content:space-between;align-items:start;gap:20px;padding:27px 29px;border-bottom:1px dashed #173b3340}.ticket-top>.brand{font-size:27px}.ticket-date{text-align:right;font:34px/1 var(--serif)}.ticket-date span{font:9px/1.5 'DM Sans',Arial,sans-serif;display:block;letter-spacing:.1em;margin-top:6px}.ticket-body{padding:27px 29px;position:relative}.ticket-body:before,.ticket-body:after{content:'';position:absolute;top:-10px;width:20px;height:20px;border-radius:50%;background:#dce1d3}.ticket-body:before{left:-10px}.ticket-body:after{right:-10px}.booking-status{display:inline-flex;align-items:center;gap:7px;border:1px solid #173b3336;border-radius:30px;padding:4px 10px;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.booking-status:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--rust)}.ticket-body h3{font-size:29px;margin:17px 0 20px}.ticket-body dl{margin:0 0 23px;font-size:12px}.ticket-body dl>div{display:flex;gap:12px;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.ticket-body dd{margin:0;text-align:right;color:var(--muted)}.ticket-body .button{width:100%}.ticket-body .small{font-size:10px;text-align:center;margin-top:13px;color:var(--muted)}.barcode{display:flex;align-items:center;gap:16px;padding:17px 29px;border-top:1px dashed #173b3340;font-size:8px;letter-spacing:.12em}.barcode:before{content:'';display:block;width:80px;height:23px;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 3px,var(--ink) 3px 5px,transparent 5px 8px);opacity:.4}
.site-footer{padding:40px 6% 27px;background:var(--deep);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:27px}.footer-brand{font:34px/1 var(--serif)}.footer-brand span{display:block;font:9px/1.5 'DM Sans',Arial,sans-serif;letter-spacing:.06em;margin-top:12px;color:var(--sand)}.site-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:6px 25px;font-size:11px}.site-footer nav a{display:flex;align-items:center;gap:10px;min-height:40px}.site-footer nav .icon{width:16px;height:16px;color:var(--gold)}.site-footer>p{grid-column:1/-1;border-top:1px solid #f6f0e422;padding-top:20px;font-size:9px;color:#f6f0e499}.floating-book{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;align-items:center;gap:17px;background:var(--gold);color:var(--deep);border:1px solid #102c2720;border-radius:50px;padding:13px 19px;box-shadow:0 6px 30px #102c2726;transition:opacity .25s,transform .25s;font-size:12px;font-weight:600}.floating-book>span small{display:block;font-size:8px;font-weight:400;margin-top:1px}.floating-book .icon{width:23px;height:23px}.floating-book:hover{transform:translateY(-3px)}.floating-book[aria-hidden=true]{opacity:0;pointer-events:none;transform:translateY(12px)}
/* Modal destinations keep booking status explicit and trap/restore focus natively. */
dialog{border:0;color:var(--ink);background:var(--paper);padding:0;width:min(550px,calc(100% - 28px));max-height:calc(100dvh - 32px);border-radius:12px;box-shadow:0 30px 90px #0004}dialog::backdrop{background:#102c27d9;backdrop-filter:blur(7px)}.dialog-open{overflow:hidden}.dialog-close{display:grid;place-items:center;background:none;border:1px solid var(--line);width:44px;height:44px;border-radius:50%;flex:none}.dialog-close:hover{background:var(--sand)}.booking-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:25px 30px;border-bottom:1px dashed var(--line)}.booking-dialog-body{padding:30px}.booking-dialog-body h2{font-size:43px;margin:20px 0}.booking-dialog-body>p{font-size:13px;line-height:1.8}.booking-dialog-facts{padding:20px 0;margin:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:12px}.booking-dialog-facts p{display:flex;align-items:center;gap:12px;font-size:12px}.booking-dialog-body .button{width:100%;background:var(--ink);color:var(--paper)}.booking-dialog-body .button:hover{background:#254c40}.booking-dialog-body .contact-link{justify-content:center;width:100%;margin-top:10px;font-size:11px}.dialog-fine{font-size:10px!important;text-align:center;color:var(--muted);margin-top:17px}.section-menu{margin:0 0 0 auto;height:100dvh;max-height:none;width:min(510px,100%);border-radius:0;padding:35px 40px;overflow-y:auto}.menu-top{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:65px}.section-menu h2{font-size:50px;margin:18px 0 30px}.section-menu nav{display:flex;flex-direction:column}.section-menu nav>a{display:flex;align-items:center;justify-content:space-between;min-height:70px;border-top:1px solid var(--line);font:26px/1.3 var(--serif)}.section-menu nav>a .icon{transition:transform .25s}.section-menu nav>a:hover .icon{transform:translate(4px,-4px)}.menu-other{border-top:1px solid var(--line);padding-top:22px;margin-top:25px;display:flex;flex-wrap:wrap;gap:12px 25px;font-size:11px}.menu-event{font-size:11px;margin-top:45px;color:var(--muted)}
/* Entry effects resolve once, and stay visible when JavaScript or motion is unavailable. */
.motion-ready [data-reveal]{transition:opacity .7s,transform .7s}.motion-ready [data-reveal]:not(.revealed){opacity:0;transform:translateY(22px)}.motion-ready [data-reveal].revealed{opacity:1;transform:translateY(0)}
@media(min-width:1600px){.hero-copy{padding-top:210px}.section-shell{padding-inline:max(8vw,calc((100vw - 1420px)/2))}}
@media(max-width:1100px){.header-nav{gap:18px}.header-right{gap:22px}.hero-copy{width:61%;padding-top:160px}.hero-copy h1{font-size:52px}.hero-visual{min-height:610px}.music-scene{gap:7%}.photo-tag{right:-15px}.rail-tabs button{padding-inline:15px}.panel-copy{padding:35px 10%}.visit-copy{padding:50px 10%}.questions-section{gap:8%}.attend-section{gap:8%}}
@media(max-width:800px){.masthead{height:78px}.header-nav{display:none}.hero-visual{height:640px;min-height:0}.hero-copy{padding-top:150px;width:68%}.hero-copy h1{font-size:48px}.hero-art{width:100%;object-position:58% center}.hero-images:after{background:linear-gradient(90deg,#102c27ed,#102c27a6 40%,transparent 100%),linear-gradient(0deg,#102c2766,transparent)}.hero-tabla{width:37%;height:48%;right:0;bottom:0}.date-seal{width:78px;height:78px;right:5%;top:110px}.date-seal strong{font-size:29px}.hero-bottom-caption{display:none}.hero-facts{gap:17px;padding:22px 5%;grid-template-columns:1.2fr 1fr 1fr}.fact{font-size:11px;gap:9px}.fact>.icon{width:20px;height:20px}.hero-descriptor{font-size:11px}.section-shell{padding:65px 5%}.music-copy h2{font-size:49px}.music-copy>p:not(.eyebrow):not(.expressive-line){font-size:13px}.photo-frame{aspect-ratio:.8; border-top-right-radius:65px}.photo-frame img{object-position:67% center}.photo-tag{right:-12px;padding:12px 15px;bottom:25px}.photo-tag strong{font-size:19px}.photo-tag .icon{width:23px;height:23px}.audience-scene{gap:7%;grid-template-columns:1.1fr 1fr}.audience-copy h2{font-size:37px}.audience-copy>p:not(.eyebrow){font-size:13px}.audience-art figcaption{left:-20px;font-size:16px}.programme-heading>div:last-child{max-width:280px}.programme-heading h2{font-size:37px}.rail-tabs{gap:3px}.rail-tabs button{padding:10px 12px;font-size:11px;gap:7px}.rail-controls{gap:7px}.rail-controls .round-button{width:42px;height:42px;min-width:42px}.programme-panel{min-height:400px;grid-template-columns:1fr 1fr}.panel-image{min-height:400px}.panel-copy{padding:30px 10%}.panel-copy h3{font-size:32px}.visit-copy h2{font-size:38px}.venue-image{min-height:520px}.questions-heading h2{font-size:34px}.attend-intro h2{font-size:46px}.ticket-top,.ticket-body{padding:22px}.ticket-top>.brand{font-size:23px}.ticket-body h3{font-size:26px}.site-footer{gap:25px}.site-footer nav{gap:7px 15px}}
@media(max-width:600px){html{scroll-padding-top:82px}.masthead,.scrolled .masthead{height:72px;padding:0 21px}.masthead{background:#102c27e8;backdrop-filter:blur(12px)}.brand{font-size:25px}.brand span{font-size:6px}.header-right{gap:13px}.header-book{font-size:10px;padding:8px 12px;min-height:38px;gap:9px}.header-book .icon{width:16px;height:16px}.menu-toggle{padding:9px 0}.menu-toggle>span{display:none}.menu-toggle .icon{width:24px}.hero-visual{height:auto;min-height:0;padding-top:72px;display:flex;flex-direction:column}.hero-images{position:relative;inset:auto;aspect-ratio:1.23;width:100%;order:0;z-index:0}.hero-art{width:100%;object-position:55% center;transform:translateY(calc(var(--depth)*-12px)) scale(1.06)}.hero-images:after{background:linear-gradient(0deg,#102c27 0%,#102c2700 27%)}.hero-tabla{width:40%;height:73%;right:0;bottom:-2%;transform:translateY(calc(var(--depth)*-23px))}.hero-copy{width:100%;max-width:none;order:1;padding:0 24px 29px;margin-top:-10px;z-index:4}.hero-copy>.eyebrow{font-size:9px}.hero-copy h1{font-size:39px;line-height:1.06;margin:18px 0 15px;max-width:450px;text-wrap:initial}.hero-intro{font-size:12px;line-height:1.8;max-width:310px}.hero-actions{gap:21px;margin-top:21px}.hero-actions .button{min-height:46px;padding:12px 18px;font-size:11px;gap:17px}.hero-explore{font-size:11px;gap:8px}.hero-explore .icon{width:17px}.booking-note{font-size:9px;margin-top:10px}.date-seal{top:93px;right:23px;width:66px;height:66px;z-index:3}.date-seal strong{font-size:26px}.date-seal span{font-size:8px}.date-seal .seal-year{display:none}.hero-facts{grid-template-columns:1fr 1fr;gap:16px 12px;padding:20px 24px 23px}.fact:first-child{grid-column:1/-1}.fact{font-size:11px;align-items:start;gap:10px}.fact small{font-size:8px}.hero-descriptor{font-size:11px}.hero-descriptor br{display:none}.fact>.icon{width:19px;height:19px;margin-top:2px}.section-shell{padding:52px 24px}.music-scene{display:flex;flex-direction:column;gap:34px;padding-top:65px}.music-image{width:100%}.music-image:before{inset:-14px 16px 16px -14px;border-top-right-radius:70px}.photo-frame{aspect-ratio:1.16;border-top-right-radius:70px}.photo-frame img{object-position:62% center}.photo-tag{right:-7px;bottom:35px}.music-image figcaption{font-size:9px}.music-copy{width:100%}.music-copy h2{font-size:48px;margin:18px 0 16px}.music-copy h2 em{display:inline}.expressive-line{font-size:21px;margin-bottom:18px}.music-copy>p:not(.eyebrow):not(.expressive-line){font-size:13px}.music-copy .section-link{margin-top:18px}.sound-contour{display:none}.audience-scene{display:flex;flex-direction:column-reverse;gap:35px;padding-top:42px;padding-bottom:50px}.audience-art{width:72%;max-width:270px;align-self:center;transform:translateY(calc(var(--depth)*-10px)) rotate(-3deg)}.audience-art img{border-radius:110px 110px 4px 4px;box-shadow:12px 14px 0 #c6cbb744}.audience-art figcaption{left:-25px;bottom:18px;font-size:16px;padding:10px 15px}.audience-copy h2{font-size:37px;margin:19px 0}.audience-copy .edition-line{margin-top:20px;font-size:11px}.programme-heading{display:block;margin-bottom:25px}.programme-heading h2{font-size:37px;margin-top:16px}.programme-heading>div:last-child{max-width:none;margin-top:21px}.programme-heading .small{font-size:10px;margin-top:10px}.rail-toolbar{flex-wrap:wrap;gap:16px}.rail-tabs{width:100%;justify-content:space-between;gap:0}.rail-tabs button{font-size:10px;padding:9px 10px;gap:6px;min-height:42px}.rail-tabs button .icon{width:15px;height:15px}.rail-controls{margin-left:auto;gap:13px}.rail-controls .round-button{width:44px;height:44px;min-width:44px}.rail-count{font-size:10px}.rail-viewport{margin-right:-24px;border-radius:7px 0 0 7px}.programme-track{gap:14px;padding-right:24px}.programme-panel{flex-basis:calc(100% - 25px);grid-template-columns:1fr;min-height:0}.panel-image{height:235px;min-height:0}.panel-copy{padding:28px 26px 32px;min-height:288px}.panel-copy h3{font-size:33px;margin:17px 0}.panel-copy>p:not(.panel-label){font-size:12px}.panel-label{font-size:9px}.activity-list{margin-top:18px}.activity-list li{font-size:11px;padding:9px 0}.rail-help{font-size:9px}.rail-progress{margin-top:21px}.visit-section{grid-template-columns:1fr}.venue-image{min-height:0;height:350px}.venue-image img{object-position:center 68%}.venue-image figcaption{font-size:10px;left:24px;bottom:24px}.visit-copy{padding:43px 24px 50px}.visit-copy h2{font-size:39px;margin:20px 0}.guest-line h3{font-size:28px}.questions-section{grid-template-columns:1fr;gap:26px}.questions-heading h2{font-size:36px;margin:17px 0}.questions-heading p:not(.eyebrow){max-width:none}.questions-list summary{font-size:13px;min-height:63px}.questions-list details>p{font-size:12px}.attend-section{grid-template-columns:1fr;gap:34px}.attend-intro h2{font-size:43px;margin:20px 0}.attend-links{gap:11px}.attend-facts{font-size:12px}.ticket-top,.ticket-body{padding:25px}.ticket-body h3{font-size:28px}.ticket-top>.brand{font-size:27px}.ticket-body dl{font-size:11px}.barcode{padding:17px 25px}.site-footer{grid-template-columns:1fr;padding:38px 24px 115px;gap:27px}.site-footer nav{font-size:10px}.site-footer>p{font-size:8px}.floating-book{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));padding:11px 15px;font-size:11px;gap:13px}.floating-book>span small{font-size:7px}.floating-book .icon{width:20px;height:20px}.section-menu{padding:25px}.menu-top{margin-bottom:45px}.section-menu h2{font-size:44px}.section-menu nav>a{font-size:24px;min-height:65px}.booking-dialog-head{padding:21px}.booking-dialog-body{padding:24px}.booking-dialog-body h2{font-size:36px}.booking-dialog-body>p{font-size:12px}.booking-dialog-facts p{font-size:11px}.booking-dialog-body .contact-link{font-size:10px}}
@media(max-width:350px){.masthead,.scrolled .masthead{padding-inline:18px}.brand{font-size:23px}.header-right{gap:11px}.header-book{padding:8px 10px}.header-book>.icon{display:none}.hero-copy{padding-inline:20px}.hero-copy h1{font-size:34px}.hero-actions{gap:16px}.hero-actions .button{padding:11px 14px;gap:12px}.hero-explore{font-size:10px}.hero-facts{padding-inline:20px}.section-shell{padding-inline:20px}.music-copy h2{font-size:41px}.audience-copy h2{font-size:33px}.rail-tabs button{padding:9px 8px;font-size:9px;gap:4px}.rail-tabs button .icon{width:13px}.programme-heading h2{font-size:33px}.rail-viewport{margin-right:-20px}.programme-track{padding-right:20px}.panel-image{height:195px}.panel-copy{padding:24px 21px}.panel-copy h3{font-size:29px}.ticket-top,.ticket-body{padding:22px}}
/* Bound image stages so portrait sources cannot inflate a desktop grid row. */
.masthead{background:#102c2796;backdrop-filter:blur(12px)}
.hero-art{transform:translateY(calc(var(--depth)*-58px)) scale(1.08)}.hero-tabla{transform:translateY(calc(var(--depth)*-95px)) rotate(calc(var(--depth)*-2deg))}.hero-copy{transform:translateY(calc(var(--depth)*-24px))}
@keyframes menu-enter{from{opacity:0;transform:translateX(35px)}to{opacity:1;transform:translateX(0)}}
@keyframes ticket-enter{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.section-menu[open]{animation:menu-enter .3s ease-out}#ticket-dialog[open]{animation:ticket-enter .25s ease-out}
.programme-panel{height:430px}.panel-image{min-height:0}.venue-image img{position:absolute;inset:0}
@media(max-width:800px){.programme-panel{height:400px}}
@media(max-width:600px){.programme-panel{height:auto}.panel-image{height:235px}.hero-tabla{right:3%;transform:translateY(calc(var(--depth)*-23px))}.hero-art{transform:translateY(calc(var(--depth)*-12px)) scale(1.06)}.hero-copy{transform:none}.masthead{background:#102c27e8}.programme-track:after{content:'';flex:0 0 40px}}
@media(max-width:350px){.panel-image{height:195px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-art,.hero-tabla,.hero-copy,.audience-art,.photo-frame img{transform:none!important}.motion-ready [data-reveal]{opacity:1!important;transform:none!important}}

/* V6: small solid programme arrows; the invisible reach remains comfortable for touch. */
.rail-controls{gap:10px}.rail-controls .round-button{position:relative;width:30px;height:30px;min-width:30px;border:0;border-radius:5px;background:var(--ink);color:var(--paper);padding:0}
.rail-controls .round-button:before{content:'';position:absolute;inset:-7px}.rail-controls .round-button>.icon{width:15px;height:15px;stroke-width:1.9;pointer-events:none}
.rail-controls .round-button:hover:not(:disabled){background:#315c4d;color:white}.rail-controls .round-button:disabled{background:#173b330d;color:#173b3370;opacity:1}.rail-count{font-size:10px;min-width:40px}
@media(max-width:600px){.rail-toolbar{position:relative;gap:10px;margin-bottom:19px}.rail-controls{gap:12px;min-height:36px}.rail-tabs button{min-height:40px}.hero-copy>.eyebrow{font-size:8px;letter-spacing:.11em}}
/* Entrance wrappers keep one-off arrivals independent from ongoing scroll depth. */
.hero-atmosphere{position:absolute;inset:0}.hero-instrument{position:absolute;right:2%;bottom:2%;width:31%;height:62%;z-index:2}
.hero-instrument .hero-tabla{position:relative;inset:auto;width:100%;height:100%;z-index:auto}
.hero-line,.hero-phrase{display:block}.hero-line{overflow:visible}.hero-phrase{will-change:auto}
@media(max-width:800px){.hero-instrument{width:37%;height:48%;right:0;bottom:0}}
@media(max-width:600px){.hero-instrument{width:40%;height:73%;right:3%;bottom:-2%}}
@keyframes scene-arrive{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@keyframes instrument-arrive{from{opacity:0;transform:translate(22px,18px)}to{opacity:1;transform:translate(0,0)}}
@keyframes line-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes label-arrive{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}
.intro-pending .hero-atmosphere,.intro-pending .hero-instrument,.intro-pending [data-intro]{opacity:0}


.intro-running [data-intro=label]{animation:label-arrive .55s ease-out .32s both}
.intro-running [data-intro=first]{animation:line-arrive .6s cubic-bezier(.2,.7,.3,1) .48s both}
.intro-running [data-intro=second]{animation:line-arrive .6s cubic-bezier(.2,.7,.3,1) .63s both}
.intro-running [data-intro=description]{animation:line-arrive .5s ease-out .8s both}
.intro-running [data-intro=actions]{animation:line-arrive .5s ease-out .94s both}
.intro-running [data-intro=notice]{animation:line-arrive .4s ease-out 1.04s both}
@keyframes seal-arrive{from{opacity:0}to{opacity:1}}
.intro-running .date-seal{animation:seal-arrive .6s ease-out .2s both}
.meet-panel .panel-image img{object-position:center center}
@media(prefers-reduced-motion:reduce){.intro-pending .hero-atmosphere,.intro-pending .hero-instrument,.intro-pending [data-intro],.intro-running [data-intro]{opacity:1!important;transform:none!important}.hero-atmosphere,.hero-instrument,.hero-phrase{animation:none!important;transform:none!important}}

/* V7 uses selectable chapters and reserves a small bottom area for the only booking action. */
.hero-instrument .hero-tabla{mask-image:url('assets/tabla-edge-mask-v7.svg');mask-size:100% 100%;mask-repeat:no-repeat}
.event-page[data-view]:not([data-view=home]) .masthead{background:var(--deep)}
.event-page main:focus{outline:none}
body.event-page{height:100dvh;overflow:hidden}.page-scroll{height:calc(100dvh - 80px);overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:105px}
.event-page #main{padding-top:100px;min-height:calc(100dvh - 260px)}.event-page[data-view=home] #main{padding-top:0}
.view-ready [data-page][hidden]{display:none!important}.header-nav{gap:26px}.header-right{gap:34px}.header-nav a{font-size:12px}.header-nav a[aria-current=page]{color:var(--gold)}
.menu-toggle>span{display:inline;font-size:11px}.menu-toggle{min-width:88px}.section-strip{display:none}
.booking-shelf{position:fixed;left:0;right:0;bottom:0;height:80px;z-index:45;background:var(--paper)}
.booking-shelf .floating-book{position:absolute;right:22px;bottom:14px;opacity:1;pointer-events:auto;transform:none;padding:11px 18px;font-size:12px;box-shadow:0 3px 20px #102c2716}
.booking-shelf .floating-book:hover{transform:translateY(-2px)}.booking-shelf .floating-book[aria-hidden=true]{opacity:1;pointer-events:auto;transform:none}
.home-choices{display:grid;grid-template-columns:.8fr 1.2fr;gap:12%;padding-top:55px;padding-bottom:60px}.home-choices h2{font-size:43px;margin-top:18px}.home-choices h2 em{color:var(--rust)}
.home-choices nav{display:grid;grid-template-columns:1fr 1fr;gap:22px 35px}.home-choices nav a{display:flex;gap:15px;justify-content:space-between;align-items:start;padding:14px 0;border-top:1px solid var(--line);min-height:96px}.home-choices strong{font:25px/1.15 var(--serif);display:block}.home-choices small{display:block;font-size:11px;line-height:1.7;margin-top:10px;color:var(--muted)}.home-choices nav a>.icon{width:18px;height:18px;margin-top:4px;transition:transform .2s}.home-choices nav a:hover>.icon{transform:translate(3px,-3px)}
.event-page .site-footer{padding-bottom:28px}.hero-actions{margin-top:25px}.hero-explore{border-bottom:1px solid #f6f0e470;padding:6px 0;min-height:40px}.hero-explore .icon{width:18px;height:18px}.ticket-body .small{font-size:11px;text-align:left}.barcode{margin-top:8px}
@keyframes chapter-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.chapter-enter [data-page]:not([hidden]){animation:chapter-arrive .5s ease-out}.chapter-enter[data-view=home] [data-page=home]{animation:none}
.programme-panel[data-active=true] .panel-copy h3{animation:line-arrive .45s ease-out}.programme-panel[data-active=true] .panel-copy>p:not(.panel-label){animation:line-arrive .5s ease-out .07s both}
.audience-art img{transform:translateX(calc(var(--depth)*-14px));transition:box-shadow .3s}
@media(max-width:1050px){.header-nav{gap:18px}.header-right{gap:20px}.header-nav a{font-size:11px}}
@media(max-width:800px){.masthead,.scrolled .masthead{height:64px;padding-inline:22px}.header-nav{display:none}.header-right{gap:16px}.menu-toggle>span{display:inline}.menu-toggle{min-width:88px;gap:12px}
 .section-strip{display:flex;align-items:center;gap:4px;position:fixed;top:74px;left:16px;right:16px;min-height:40px;z-index:49;background:#f6f0e4f7;border:1px solid #173b3318;border-radius:30px;padding:4px 6px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;box-shadow:0 4px 16px #102c2710;backdrop-filter:blur(16px)}
 .section-strip a{display:flex;align-items:center;justify-content:center;min-height:32px;padding:6px 13px;font-size:10px;border-radius:20px;flex:none}.section-strip a[aria-current=page]{background:var(--ink);color:var(--paper)}
 .event-page #main{padding-top:130px}.event-page[data-view=home] #main{padding-top:0}.hero-copy{padding-top:175px}.hero-visual{height:665px}.page-scroll{scroll-padding-top:130px}.home-choices{gap:7%}.home-choices h2{font-size:36px}.home-choices strong{font-size:23px}.support-page{padding-top:130px}
}
@media(max-width:600px){.masthead,.scrolled .masthead{padding-inline:21px}.menu-toggle .icon{width:22px}.menu-toggle>span{font-size:10px}.section-strip{left:12px;right:12px}.section-strip a{font-size:9px;padding:6px 12px}.hero-visual{height:auto;padding-top:120px}.hero-images{aspect-ratio:1.45}.hero-copy{padding-top:0}.hero-copy h1{font-size:37px}.hero-actions{margin-top:18px}.hero-facts{padding-block:18px}.home-choices{grid-template-columns:1fr;gap:24px;padding-block:36px 42px}.home-choices h2{font-size:34px}.home-choices nav{gap:17px 22px}.home-choices strong{font-size:22px}.home-choices small{font-size:10px}.home-choices nav a{min-height:105px}.event-page .site-footer{padding-bottom:30px}
 .booking-shelf{height:72px}.page-scroll{height:calc(100dvh - 72px)}.booking-shelf .floating-book{right:14px;bottom:calc(10px + env(safe-area-inset-bottom));padding:10px 16px;font-size:11px;gap:14px}.booking-shelf .floating-book>span small{font-size:8px}.booking-shelf .floating-book .icon{width:20px;height:20px}.event-page[data-view=experience] .music-scene{padding-top:28px}.event-page[data-view=programme] .programme-scene,.event-page[data-view=questions] .questions-section,.event-page[data-view=attend] .attend-section{padding-top:25px}.event-page[data-view=visit] .venue-image{height:310px}
}
@media(max-width:800px){.date-seal{top:138px}}
@media(max-width:600px){.section-strip a{font-size:10px;padding-inline:9px}.date-seal{top:140px}}
@media(max-width:350px){.hero-copy h1{font-size:33px}.section-strip a{padding-inline:8px}.home-choices strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.page-scroll{scroll-behavior:auto}.audience-art img{transform:none!important}.chapter-enter [data-page],.programme-panel[data-active=true] .panel-copy h3,.programme-panel[data-active=true] .panel-copy>p{animation:none!important}}

/* V8: enquiry is a contact action; the menu is an unlabelled, conventional icon. */
.header-enquire{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:7px 0;border-bottom:1px solid #f6f0e435;font-size:11px;white-space:nowrap;color:var(--paper);transition:border-color .2s}
.header-enquire:hover{border-color:var(--gold)}.header-enquire>.icon{width:17px;height:17px;color:var(--gold)}
.menu-toggle{display:grid;place-items:center;min-width:40px;width:40px;height:44px;min-height:44px;padding:0;gap:0;border-radius:4px}.menu-toggle>.icon{width:22px;height:22px}.menu-toggle:hover{background:#f6f0e412}
@media(max-width:1050px){.header-right{gap:19px}.header-nav{gap:16px}}
@media(max-width:800px){.header-right{gap:16px}.menu-toggle{min-width:36px;width:36px}.section-strip{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);justify-content:center;padding:4px 6px;box-shadow:0 3px 12px #102c270b}}
@media(max-width:600px){.header-right{gap:12px}.header-enquire{font-size:10px;gap:7px}.header-enquire>.icon{width:16px;height:16px}.menu-toggle{min-width:32px;width:32px}.section-strip{left:50%;right:auto}}
@media(prefers-reduced-motion:reduce){.header-enquire{transition:none}}

/* V9: the button floats; its wrapper reserves no screen area. */
.page-scroll{height:100dvh}.booking-shelf{height:0;min-height:0;background:transparent;pointer-events:none}
.booking-shelf .floating-book{position:fixed;pointer-events:auto;right:22px;bottom:18px;box-shadow:0 5px 24px #102c2728}
.event-page .site-footer{padding-bottom:96px}
@media(max-width:600px){.booking-shelf{height:0}.page-scroll{height:100dvh}.booking-shelf .floating-book{right:14px;bottom:calc(12px + env(safe-area-inset-bottom));gap:10px;padding:9px 14px}.booking-shelf .floating-book>.icon:last-child{display:none}}
@media(max-width:600px) and (max-height:650px){.hero-images{aspect-ratio:1.8}}

/* V10: readable copy starts promptly; images arrive independently. */
.progressive-ready .hero-art,.progressive-ready .hero-tabla,.progressive-ready .deferred-image{opacity:0;transition:opacity .35s ease}
.progressive-ready img.is-loaded{opacity:1}
.intro-running [data-intro=label]{animation:label-arrive .3s ease-out both}
.intro-running [data-intro=first]{animation:line-arrive .35s ease-out .08s both}
.intro-running [data-intro=second]{animation:line-arrive .35s ease-out .16s both}
.intro-running [data-intro=description]{animation:line-arrive .3s ease-out .23s both}
.intro-running [data-intro=actions]{animation:line-arrive .3s ease-out .3s both}
.intro-running [data-intro=notice]{animation:line-arrive .3s ease-out .35s both}
.intro-running .date-seal{animation:seal-arrive .35s ease-out both}

/* A heading and photo share one leading surface; details stay compact. */
.programme-panel{--panel-color:#173b33;--heading-space:100px}
.take-part-panel{--panel-color:#5b604b}.meet-panel{--panel-color:#82442d}.table-panel{--panel-color:#e1caa5}
.panel-image{background:var(--panel-color);height:430px}
.panel-heading{position:absolute;top:0;left:0;right:0;z-index:2;padding:24px 30px 34px;background:linear-gradient(var(--panel-color) 78%,transparent)}
.panel-heading h3{font:clamp(29px,2.6vw,39px)/1.06 var(--serif);margin-top:12px;max-width:500px;text-wrap:balance}
.panel-image img{position:absolute;inset:var(--heading-space) 0 0;height:calc(100% - var(--heading-space));width:100%;transform:none}
.programme-panel[data-active=true]:hover .panel-image img{transform:scale(1.035)}
.panel-copy{padding:32px 10%;min-height:0}
.programme-panel[data-active=true] .panel-heading h3{animation:line-arrive .35s ease-out}
@media(max-width:800px){.panel-heading{padding:24px 22px 30px}.panel-heading h3{font-size:30px}}
@media(max-width:600px){
 .home-choices{padding-block:25px 28px;gap:18px}.home-choices .eyebrow{font-size:8px}.home-choices h2{font-size:26px;margin-top:12px}
 .home-choices nav{gap:10px 20px}.home-choices nav a{min-height:63px;padding:12px 0;align-items:center}.home-choices strong{font-size:19px}.home-choices small{display:none}.home-choices nav a>.icon{width:16px;height:16px;flex:none;margin-top:0}
 .site-footer,.event-page .site-footer{padding:25px 24px 78px;gap:15px}.footer-brand{font-size:26px}.footer-brand span{font-size:8px;margin-top:7px}
 .site-footer nav{gap:4px 20px}.site-footer nav a{min-height:36px}.site-footer>p{padding-top:13px;font-size:8px}
 .event-page[data-view=programme] .programme-scene{padding-top:19px}.programme-heading{gap:12px;margin-bottom:16px}.programme-heading h2{font-size:30px;margin-top:12px}.programme-heading>div:last-child{font-size:12px}.programme-heading>div:last-child>p:first-child{display:none}.programme-heading .small{font-size:10px;margin-top:0}
 .rail-toolbar{margin-bottom:15px;gap:10px}.rail-tabs{gap:2px}.rail-tabs button{padding:8px 9px;min-height:40px}.rail-controls{gap:10px}
 .programme-track{align-items:flex-start}.rail-viewport{transition:height .25s ease}.programme-panel{--heading-space:91px}.meet-panel{--heading-space:105px}.panel-image{height:277px;min-height:0}
 .panel-heading{padding:18px 20px 32px}.panel-label{font-size:8px;gap:8px}.panel-label .icon{width:16px;height:16px}.panel-heading h3{font-size:28px;margin-top:10px;text-wrap:initial}
 .panel-copy{padding:17px 20px 19px;min-height:0;justify-content:flex-start}.panel-copy>p:not(.panel-label){font-size:12px;line-height:1.65}.activity-list{margin-top:12px}.activity-list li{padding:7px 0;font-size:10px}.listen-panel .activity-list{display:none}
 .rail-progress{margin-top:15px}.rail-help{margin-top:9px}
}
@media(max-width:350px){.panel-heading{padding-inline:17px}.panel-heading h3{font-size:26px}.panel-image{height:250px}.panel-copy{padding-inline:17px}.home-choices strong{font-size:18px}.programme-heading h2{font-size:28px}.rail-tabs button{font-size:9px;padding-inline:7px}}
@media(prefers-reduced-motion:reduce){.programme-panel[data-active=true] .panel-heading h3{animation:none!important}.progressive-ready img{transition:none!important}}

/* V11 composition rules. This source is assembled into styles-v11.css. */
:root{--gutter:max(32px,calc((100vw - 1280px)/2));--header-height:76px}
.event-page #main{min-height:0;padding-top:var(--header-height)}
.masthead,.scrolled .masthead{height:var(--header-height);padding-inline:var(--gutter);background:#102c27f5}
.header-nav a{font-size:12px}
.page-scroll{scroll-padding-top:calc(var(--header-height) + 20px)}
.page-scroll{display:flex;flex-direction:column;background:var(--deep)}
.event-page #main{flex:none;background:var(--paper)}
.event-page .site-footer{flex:1 0 auto;align-content:start}
.hero-copy{transform:none}
.hero-images:after{background:linear-gradient(90deg,#102c27 0%,#102c27eb 18%,#102c279c 40%,#102c2710 72%),linear-gradient(0deg,#102c2760,transparent 40%)}
.hero-art{transform:translate3d(calc(var(--pointer-x,0)*-5px),calc(var(--depth)*-26px + var(--pointer-y,0)*-4px),0) scale(1.06)}
.hero-instrument .hero-tabla{transform:translate3d(calc(var(--pointer-x,0)*10px),calc(var(--depth)*-52px + var(--pointer-y,0)*8px),0)}
.hero-tabla.is-loaded{animation:foreground-settle .65s cubic-bezier(.2,.7,.3,1) both}
@keyframes foreground-settle{from{opacity:0;translate:12px 10px}to{opacity:1;translate:0 0}}
.date-seal{transform:none;background:#102c2780;backdrop-filter:blur(8px)}
.home-choices nav a{transition:color .2s,border-color .2s}
.home-choices nav a:hover{color:var(--rust);border-color:var(--rust)}
.motion-toggle{display:inline-flex;align-items:center;gap:10px;background:transparent;border:1px solid var(--line);border-radius:30px;min-height:44px;padding:8px 16px;font-size:12px;margin-top:26px}
.motion-toggle:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--rust)}
.motion-toggle[aria-pressed=true]:before{background:var(--muted)}
.event-page .site-footer{padding-inline:var(--gutter)}
.programme-panel{height:auto;min-height:0;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);border-radius:10px}
.panel-image{height:clamp(330px,47svh,455px);min-height:0;isolation:isolate}
.panel-image img{inset:0;height:100%;width:100%;object-fit:cover;transform:translate3d(calc(var(--pointer-x,0)*-5px),calc(var(--pointer-y,0)*-4px + var(--card-depth,0)*-12px),0) scale(1.055);transition:opacity .35s}
.programme-panel[data-active=true]:hover .panel-image img{transform:translate3d(calc(var(--pointer-x,0)*-5px),calc(var(--pointer-y,0)*-4px + var(--card-depth,0)*-12px),0) scale(1.055)}
.panel-heading{top:auto;bottom:0;padding:64px 32px 28px;background:linear-gradient(0deg,#102c27ed 0%,#102c27a6 56%,transparent 100%);color:var(--paper);pointer-events:none}
.panel-heading h3{font-size:clamp(30px,3vw,43px);line-height:1.08;max-width:520px;margin-top:10px;text-wrap:balance;text-align:left}
.panel-heading .panel-label{color:#f0cf95}
.panel-copy{padding:30px clamp(24px,3vw,44px);justify-content:center}
.panel-copy>p:not(.panel-label){font-size:15px;line-height:1.8}
.activity-list li{font-size:12px;padding-block:12px}
.listen-panel .panel-image img{object-position:60% 50%}
.meet-panel .panel-image img{object-position:center 36%}
.table-panel .panel-image img{object-position:center 55%}
.rail-tabs button{border-radius:0;border:0;border-bottom:2px solid transparent;padding:10px 16px;min-height:44px}
.rail-tabs button[aria-pressed=true]{background:none;color:var(--ink);border-color:var(--rust)}
.rail-tabs button:hover:not([aria-pressed=true]){border-color:#173b3340;background:#173b3305}
.rail-progress{margin-top:18px}
.rail-help{margin-top:8px}
.venue-image img{transform:translateY(calc(var(--depth)*-14px)) scale(1.06)}
.reduce-motion *, .reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.reduce-motion .hero-art,.reduce-motion .hero-tabla,.reduce-motion .audience-art,.reduce-motion .audience-art img,.reduce-motion .photo-frame img,.reduce-motion .panel-image img,.reduce-motion .venue-image img{transform:none!important;translate:none!important}
.reduce-motion [data-reveal]{opacity:1!important;transform:none!important}
@media(min-width:801px){
 .section-shell{padding-inline:var(--gutter)}
 .hero-visual{max-width:1600px;margin-inline:auto;height:clamp(520px,calc(100svh - 200px),700px);min-height:0;display:flex;align-items:center}
 .hero-copy{width:60%;max-width:850px;padding:108px 0 48px max(32px,calc((min(100vw,1600px) - 1280px)/2));margin:0}
 .hero-copy h1{font-size:clamp(46px,4.15vw,64px);line-height:1.08;max-width:660px;margin-block:23px 20px;text-wrap:initial}
 .hero-intro{font-size:15px;max-width:365px}
 .hero-actions{margin-top:24px}
 .hero-instrument{width:30%;height:60%;right:2%;bottom:0}
 .date-seal{top:108px;right:max(32px,calc((min(100vw,1600px) - 1280px)/2));width:83px;height:83px}
 .date-seal strong{font-size:31px}.date-seal span{font-size:9px}
 .hero-facts{padding:20px var(--gutter);gap:28px}
 .home-choices{padding-block:40px;grid-template-columns:.7fr 1.3fr;gap:7%}
 .home-choices h2{font-size:36px}.home-choices nav{gap:12px 30px}.home-choices nav a{min-height:85px}.home-choices strong{font-size:23px}
 .event-page[data-view=programme] .programme-scene{padding-top:36px;padding-bottom:40px}
 .programme-heading{margin-bottom:22px;gap:48px}.programme-heading h2{font-size:clamp(36px,3vw,46px);margin-top:12px}
 .programme-heading>div:last-child{max-width:340px}.rail-toolbar{margin-bottom:18px}
 .music-scene{padding-block:48px 56px;gap:7%;grid-template-columns:1fr 1fr}
 .music-image{max-width:550px}.photo-frame{aspect-ratio:1.25;max-height:430px}
 .music-copy h2{font-size:clamp(44px,4vw,60px)}
 .music-copy>p:not(.eyebrow):not(.expressive-line){font-size:15px}
 .audience-scene{padding-block:48px;gap:9%;grid-template-columns:1fr 1fr}.audience-art{max-width:300px}
 .visit-section{margin:32px var(--gutter) 40px;border-radius:10px;grid-template-columns:1.1fr 1fr}
 .venue-image{min-height:475px}.visit-copy{padding:38px clamp(28px,3vw,48px)}.visit-copy h2{font-size:clamp(38px,3vw,46px)}
 .questions-section,.attend-section{padding-top:48px;padding-bottom:56px;gap:8%}
 .questions-heading h2{font-size:42px}.attend-intro h2{font-size:clamp(44px,4vw,56px)}
 .attend-ticket{width:100%;max-width:470px;justify-self:end}
 .site-footer{padding-top:32px;gap:18px}.footer-brand{font-size:30px}
}
@media(min-width:801px) and (max-height:800px){
 .hero-visual{height:550px;min-height:0}.hero-copy{padding-top:105px;padding-bottom:32px}
 .event-page[data-view=programme] .programme-scene{padding-top:26px;padding-bottom:30px}
 .programme-heading h2{font-size:37px}.programme-heading{margin-bottom:16px}.panel-image{height:330px}
}
@media(min-width:601px) and (max-width:1000px){
 .hero-copy h1{font-size:46px}.panel-copy{padding:24px}.panel-copy>p:not(.panel-label){font-size:13px}.panel-heading{padding-inline:25px}.panel-heading h3{font-size:31px}
}
@media(max-width:800px){
 :root{--gutter:24px;--header-height:64px}
 .masthead,.scrolled .masthead{padding-inline:22px}
 .section-strip{top:64px;left:0;right:0;transform:none;width:100%;max-width:none;height:44px;min-height:44px;gap:4px;padding:0 16px;background:#102c27f5;border:0;border-bottom:1px solid #f6f0e420;border-radius:0;box-shadow:none;justify-content:center;backdrop-filter:blur(12px);color:var(--paper)}
 .section-strip a{height:44px;min-height:44px;border-radius:0;padding:10px 13px;border-bottom:2px solid transparent;color:#f6f0e4b3;font-size:11px}
 .section-strip a[aria-current=page]{background:none;color:var(--gold);border-color:var(--gold)}
 .event-page #main{padding-top:108px}.event-page[data-view=home] #main{padding-top:0}
 .page-scroll{scroll-padding-top:124px}
 .hero-visual{padding-top:108px}.hero-copy{padding-top:50px}.date-seal{top:130px}
 .programme-scene{padding-top:28px;padding-bottom:38px}
 .panel-heading h3{font-size:31px}
 .event-page .site-footer{padding-inline:24px}
}
@media(max-width:600px){
 .hero-copy{padding-top:0;margin-top:-28px}.hero-images{aspect-ratio:1.38}
 .hero-images:after{background:linear-gradient(0deg,#102c27 0%,#102c2780 15%,transparent 40%)}
 .hero-art{transform:translateY(calc(var(--depth)*-10px)) scale(1.06)}
 .hero-instrument .hero-tabla{transform:translateY(calc(var(--depth)*-20px))}
 .hero-copy h1{font-size:37px}.hero-copy>.eyebrow{position:relative}
 .date-seal{top:124px}.hero-facts{padding-bottom:24px}
 .programme-panel{grid-template-columns:1fr;flex-basis:100%;border-radius:8px}
 .rail-viewport{margin-right:0;border-radius:8px}.programme-track{gap:14px;padding-right:0}.programme-track:after{display:none}
 .panel-image{height:265px}.panel-heading{padding:55px 20px 19px}.panel-heading h3{font-size:28px;max-width:310px;margin-top:8px}
 .panel-copy{padding:17px 20px 19px}.panel-copy>p:not(.panel-label){font-size:12px}.activity-list li{font-size:11px;padding-block:8px}
 .rail-tabs{gap:0}.rail-tabs button{font-size:10px;gap:6px;padding:8px 7px;min-height:44px}
 .rail-toolbar{margin-bottom:13px;gap:7px}.rail-controls{gap:12px}.rail-count{min-width:34px}
 .programme-heading>div:last-child{margin-top:13px}.programme-heading{margin-bottom:12px}
 .programme-heading h2{font-size:30px}.rail-help{font-size:9px}
 .venue-image img{transform:none}
}
@media(max-width:350px){
 .hero-copy h1{font-size:32px}.section-strip{padding-inline:10px;gap:0}.section-strip a{padding-inline:11px;font-size:10px}
 .panel-image{height:235px}.panel-heading h3{font-size:26px}.rail-tabs button{font-size:9px;padding-inline:5px;gap:5px}
}
@media(prefers-reduced-motion:reduce){
 .hero-tabla,.panel-image img,.venue-image img{transform:none!important;translate:none!important}
}

/* V12: a softer foreground entrance and clearer music and place compositions. */
.hero-tabla.is-loaded{animation:foreground-settle 1.4s cubic-bezier(.22,.61,.36,1) .45s both}
@keyframes foreground-settle{from{opacity:0;translate:16px 12px}to{opacity:1;translate:0 0}}
.photo-frame img{transform:translate3d(calc(var(--pointer-x,0)*-6px),calc((var(--depth) - .5)*-32px + var(--pointer-y,0)*-5px),0) scale(1.1)}
.photo-tag{border:1px solid #f6f0e418;border-radius:6px;padding:16px 21px;gap:13px}
.photo-tag strong{font-size:23px}.photo-tag span{display:block;letter-spacing:.12em;font-size:8px;margin-top:6px;color:var(--gold)}
.progressive-ready .photo-tag{opacity:0}
.music-image.media-ready.is-present .photo-tag{opacity:1;animation:music-label-arrive .9s cubic-bezier(.22,.61,.36,1) .3s both}
@keyframes music-label-arrive{from{opacity:0;translate:18px 8px}to{opacity:1;translate:0 0}}
.venue-image{overflow:hidden;isolation:isolate}
.venue-image img{transform:translate3d(calc(var(--pointer-x,0)*-6px),calc((var(--depth) - .5)*-28px + var(--pointer-y,0)*-4px),0) scale(1.1)}
.venue-image:after{background:linear-gradient(0deg,#102c27f2, #102c277d 24%,transparent 60%);pointer-events:none}
.venue-image .venue-heading{display:block;left:0;right:0;bottom:0;padding:32px;z-index:2}
.venue-heading .eyebrow{color:var(--gold)}
.venue-heading h2{font-size:clamp(36px,3.4vw,48px);max-width:410px;line-height:1.05;text-wrap:balance;margin-top:15px;color:var(--paper)}
.visit-copy .venue-name{font-size:clamp(29px,2.8vw,38px);line-height:1.12;margin:22px 0 20px;max-width:420px;text-wrap:balance}
.visit-copy .visit-date{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--paper)}
.visit-date .icon{width:21px;height:21px;color:var(--gold)}
.visit-copy .visit-note{font-size:12px;line-height:1.8;margin-top:17px;color:#f6f0e4b3;max-width:380px}
.visit-copy .guest-line{padding-block:20px;margin-block:24px 16px}
.visit-copy .guest-line h3{font-size:27px}
.reduce-motion .photo-tag{opacity:1!important;translate:none!important}
@media(min-width:801px){
 .visit-section{grid-template-columns:1.15fr 1fr}
 .venue-image{min-height:470px}
 .visit-copy{padding:36px clamp(28px,3vw,48px)}
}
@media(min-width:601px) and (max-width:800px){
 .visit-section{grid-template-columns:1fr 1fr}.venue-image{min-height:480px}
 .venue-image .venue-heading{padding:25px}.venue-heading h2{font-size:36px}.visit-copy{padding:32px 26px}
}
@media(max-width:600px){
 .photo-tag{right:-5px;bottom:36px;padding:14px 17px}.photo-tag strong{font-size:21px}.photo-tag .icon{width:24px;height:24px}
 .photo-frame img{transform:translateY(calc((var(--depth) - .5)*-18px)) scale(1.08)}
 .event-page[data-view=visit] .venue-image{height:320px}
 .venue-image img{transform:translateY(calc((var(--depth) - .5)*-14px)) scale(1.08);object-position:center 60%}
 .venue-image .venue-heading{padding:24px}.venue-heading h2{font-size:36px;max-width:280px;margin-top:12px}
 .visit-copy{padding:28px 24px 38px}.visit-copy>.eyebrow{display:none}.visit-copy .venue-name{font-size:29px;margin:0 0 16px;max-width:320px;text-wrap:initial}
 .visit-copy .visit-date{font-size:12px}.visit-copy .visit-note{margin-top:13px;font-size:12px}
 .visit-copy .guest-line{margin-block:20px 12px;padding-block:16px}.visit-copy .guest-line h3{font-size:25px}
}
@media(max-width:350px){.event-page[data-view=visit] .venue-image{height:285px}.venue-heading h2{font-size:32px}.visit-copy .venue-name{font-size:27px}}
@media(prefers-reduced-motion:reduce){.photo-tag{opacity:1!important;translate:none!important}.photo-frame img,.venue-image img{transform:none!important}}

/* V12-3: simpler booking. Ticket count on the card; KonfHub's Quick Registration form in the site's own dialog.
   Replaces booking-v12-2.css in the generated stylesheet; v12-2 rules are kept below where unchanged. */
.dialog-open .page-scroll{overflow:hidden}
.booking-frame-dialog{width:min(680px,calc(100vw - 32px));height:min(780px,calc(100dvh - 48px));max-width:none;max-height:none;overflow:hidden;background:var(--paper)}
.booking-frame-dialog[open]{display:flex;flex-direction:column}
/* Header: title + close, then the ticket-count strip, then one helper line. */
.booking-frame-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title close" "qty qty" "help help";align-items:center;column-gap:16px;padding:14px 14px 0 24px;border-bottom:1px solid var(--line);flex:none}
.booking-frame-title{grid-area:title;min-width:0}
.booking-frame-title h2{font-size:26px;line-height:1.1}
.booking-frame-title p{font-size:12px;color:var(--muted);margin-top:4px}
.booking-frame-head .dialog-close{grid-area:close}
.booking-frame-qty{grid-area:qty;margin:12px 10px 0 0;min-width:0}
.booking-frame-help{grid-area:help;margin:0;padding:8px 10px 12px 0;font-size:12px;line-height:1.55;color:var(--muted)}
.booking-frame-body{position:relative;flex:1;min-height:0;background:#fff}
.booking-frame-body iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.booking-frame-status{position:absolute;inset:0;display:grid;place-content:center;gap:12px;padding:24px;text-align:center;font-size:13px;line-height:1.7;color:var(--muted);background:#fff;z-index:1}
.booking-frame-status[hidden]{display:none}
.booking-frame-foot{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:6px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);flex:none}
.booking-newtab{display:inline-flex;align-items:center;gap:8px;min-height:40px;color:var(--ink);font-weight:500;text-decoration:underline;text-underline-offset:4px}
.booking-newtab .icon{width:15px;height:15px}
/* Ticket-count control, shared by the card and the dialog header. */
.ticket-qty{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:9px 9px 9px 16px;background:#efe7d6;border:1px solid var(--line);border-radius:8px}
.ticket-qty[hidden]{display:none}
.qty-text{display:grid;gap:1px;min-width:0}
.qty-label{font-size:13px;font-weight:600;color:var(--ink);line-height:1.3}
.qty-total{font-size:12px;color:var(--muted);line-height:1.4;white-space:nowrap}
.qty-total strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.qty-stepper{display:flex;align-items:center;gap:4px;flex:none}
.qty-button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #173b3355;border-radius:50%;background:var(--paper);color:var(--ink);transition:background .15s,opacity .15s}
.qty-button:hover{background:#fff}
.qty-button:focus-visible{outline-offset:2px}
.qty-button .icon{width:18px;height:18px;stroke-width:2}
.qty-button[aria-disabled=true]{opacity:.35;cursor:not-allowed}
.qty-button[aria-disabled=true]:hover{background:var(--paper)}
.qty-value{min-width:2.2ch;text-align:center;font:26px/1 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}
.ticket-qty.is-compact{margin:0;padding:6px 12px 6px 14px;gap:10px;justify-content:flex-start}
.ticket-qty.is-compact .qty-total{margin-left:auto;font-size:13px}
.ticket-qty.is-compact .qty-button{width:40px;height:40px}
.ticket-qty.is-compact .qty-value{font-size:22px}
@media(max-width:600px),(max-height:500px){
 .booking-frame-dialog{width:100%;height:100%;max-width:100%;max-height:100%;margin:0;border-radius:0;inset:0}
 .booking-frame-head{padding:8px 10px 0 18px;column-gap:10px}
 .booking-frame-title h2{font-size:21px}
 .booking-frame-title p{font-size:11px;margin-top:2px}
 .booking-frame-qty{margin:8px 8px 0 0}
 .booking-frame-help{font-size:11px;padding:6px 8px 8px 0;line-height:1.5}
 .booking-frame-foot{padding:2px 18px calc(2px + env(safe-area-inset-bottom));font-size:10px}
}
@media(max-height:500px){
 .booking-frame-head{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"title qty close";padding:6px 10px 6px 18px}
 .booking-frame-title h2{font-size:19px;white-space:nowrap}
 .booking-frame-qty{margin:0;justify-self:end;width:min(100%,340px)}
 .booking-frame-help{display:none}
 .booking-frame-head .dialog-close{width:40px;height:40px}
 .ticket-qty.is-compact{padding:3px 10px 3px 12px}
 .ticket-qty.is-compact .qty-button{width:36px;height:36px}
}
@media(max-width:360px){
 .booking-frame-foot>span{display:none}.booking-frame-foot{justify-content:flex-end}
 .ticket-qty{padding-left:12px;gap:8px}
 .ticket-qty.is-compact{padding:5px 8px 5px 12px;gap:6px}
 .ticket-qty.is-compact .qty-button{width:38px;height:38px}
 .ticket-qty.is-compact .qty-value{min-width:2ch}
}
#ticket-dialog.booking-frame-dialog[open]{animation:none}
@media(prefers-reduced-motion:no-preference){#ticket-dialog.booking-frame-dialog[open]{animation:booking-frame-enter .2s ease-out}}
@keyframes booking-frame-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* Ticket card with live details */
.booking-status.is-open:before{background:#3f7d5c}
.ticket-body dd{color:var(--ink)}
.ticket-body .inline-book{margin-top:2px}
.ticket-body .small{text-align:center}
.ticket-body .group-note{line-height:1.6}
.ticket-notes{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px dashed var(--line);display:grid;gap:9px;font-size:11px;line-height:1.7;color:var(--muted)}
.ticket-notes a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.attend-facts{font-size:14px}
@media(max-width:600px){.attend-facts{font-size:13px}}

/* V12-5: tablet, desktop and large-desktop refinement. Every rule here is inside a min-width:601px
   query, so the approved phone layout is untouched. Design language (palette, type, imagery) unchanged. */
@media(min-width:601px){
 /* 1. The bottom of a chapter. The footer keeps its own height; the chapter's own surface fills
    whatever the screen has left, instead of a stretched footer rising up the page. */
 .event-page #main{flex:1 0 auto;display:flex;flex-direction:column}
 .event-page .site-footer{flex:none}
 .event-page[data-view=home] .home-choices,.event-page[data-view=experience] .audience-scene,.event-page[data-view=programme] .programme-scene,.event-page[data-view=questions] .questions-section,.event-page[data-view=attend] .attend-section{flex:1 0 auto}
 .event-page[data-view=visit] .visit-section{flex:1 0 auto;max-height:720px}
 .attend-section{align-items:center}
 .audience-scene{align-items:center}
 /* On the Tickets chapter the card's own Book tickets button is the action; the floating duplicate
    otherwise covers the card's lower corner at every tablet and desktop width below about 1700px.
    Phones keep it (this block is 601px and up). Reverse by deleting this one line. */
 .event-page[data-view=attend] .booking-shelf .floating-book{display:none}
}
@media(min-width:801px){
 /* 2. Attend: intro and ticket card share one vertical centre; FAQ answers stay a readable width. */
 .attend-intro{align-self:center}
 .questions-list details>p{max-width:640px}
}
@media(min-width:1601px){
 /* 3. The opening scene reaches the right edge of wide screens instead of stopping at the 1600px frame. */
 .hero-images{right:calc((var(--hero-bound,1600px) - 100vw)/2)}
 .hero-art{width:min(78%,1400px)}
}
@media(min-width:1800px){
 /* 4. Large desktops: a wider content frame and slightly larger reading sizes. Headlines keep their caps. */
 :root{--bound:1440px;--hero-bound:1800px;--gutter:max(32px,calc((100vw - var(--bound))/2))}
 .hero-visual{max-width:var(--hero-bound);height:clamp(520px,calc(100svh - 200px),760px)}
 .hero-copy{padding-left:calc((min(100vw,var(--hero-bound)) - var(--bound))/2)}
 .date-seal{right:calc((min(100vw,var(--hero-bound)) - var(--bound))/2)}
 .hero-copy h1{font-size:clamp(46px,4.15vw,72px);max-width:760px}
 .hero-intro{font-size:16px;max-width:400px}
 .home-choices strong{font-size:26px}.home-choices small{font-size:12px}
 .music-image{max-width:620px}.photo-frame{max-height:480px}
 .music-copy>p:not(.eyebrow):not(.expressive-line),.audience-copy>p:not(.eyebrow),.panel-copy>p:not(.panel-label){font-size:16px}
 .expressive-line{font-size:25px}
 .visit-copy .visit-note{font-size:13px;max-width:420px}
 .questions-section summary{font-size:15px}.questions-list details>p{font-size:14px;max-width:680px}
 .questions-heading p:not(.eyebrow){font-size:14px;max-width:320px}
 .attend-facts{font-size:15px}
 .site-footer nav{font-size:12px}
}
@media(min-width:1800px) and (min-height:801px){
 .panel-image{height:clamp(330px,47svh,540px)}
}
@media(min-width:2200px){
 :root{--bound:1560px;--hero-bound:1960px}
}

/* V12-6: food and evening highlights, and the phone fold audit. Appended after layout-v12-5.css.
   Part A (all widths): the "Share a table" panel's day-part strip, its line on the image, the ticket
   card's When note. Part B (600px and below unless noted): what a visitor must see without scrolling
   on a phone with browser bars showing. Palette, type and imagery unchanged. */

/* A1. Line on the image, under the panel heading. */
.panel-heading .panel-sub{font-size:14px;line-height:1.55;margin:10px 0 0;max-width:440px;color:#f6f0e4d9;text-wrap:pretty}
/* A2. The shape of the day: three day-parts read left to right (phones) or top to bottom (wide panels). */
.evening-arc{list-style:none;margin:16px 0 0;padding:0;counter-reset:none}
.evening-arc li{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.evening-arc li:last-child{border-bottom:1px solid var(--line)}
.evening-arc .icon{width:22px;height:22px;color:var(--rust)}
.evening-arc .arc-when{font-size:9px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--rust);min-width:84px}
.evening-arc strong{font:19px/1.2 var(--serif);font-weight:400;letter-spacing:-.01em}
.table-panel .panel-copy>p:not(.panel-label){max-width:400px}
@media(min-width:601px) and (max-width:1000px){.evening-arc strong{font-size:15px}.evening-arc .arc-when{min-width:62px}.evening-arc li{padding:9px 0;gap:8px}.evening-arc .icon{width:20px;height:20px}}
@media(min-width:1800px){.evening-arc strong{font-size:21px}}
/* A3. Ticket card: one muted line under When. */
.dd-note{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:2px}

@media(max-width:600px){
 /* A2 on phones: one compact strip, about 100px tall, that cannot hide below the fold. */
 .evening-arc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 4px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
 .evening-arc li{position:relative;display:grid;justify-items:center;align-content:start;gap:4px;padding:0 2px;border:0;text-align:center;min-width:0}
 .evening-arc li:last-child{border:0}
 .evening-arc li+li:before{content:'';position:absolute;left:-5px;top:8px;width:6px;height:6px;border-top:1px solid #173b3366;border-right:1px solid #173b3366;transform:rotate(45deg)}
 .evening-arc .icon{width:20px;height:20px}
 .evening-arc .arc-when{font-size:8px;letter-spacing:.14em;min-width:0}
 .evening-arc strong{font-size:14px;line-height:1.2}
 .table-panel .panel-copy{padding-bottom:16px}
 .panel-heading .panel-sub{font-size:12px;line-height:1.5;margin-top:7px;max-width:300px}
 /* A3. All four Afternoon panels: picture about 20% shorter, so the scene's title and the
    first line of copy are on screen when the chapter opens. */
 .panel-image{height:212px}
 .panel-heading{padding-top:46px}
 .panel-heading h3{font-size:27px}
 /* B1. The "Choose a chapter" hint sat under the floating Book tickets button. */
 .rail-help{text-align:left;padding-right:132px}
 /* B2. The floating Book button steps aside while the ticket card's own button is on screen
    (class set by site-v12-6.js; without script the button simply stays). */
 .card-book-visible .booking-shelf .floating-book{opacity:0;pointer-events:none;transform:translateY(12px)}
 /* B3. Menu: all seven chapter links fit a 667px-high screen; the smaller links follow. */
 .section-menu{padding:22px 24px 28px}.menu-top{margin-bottom:24px}
 .section-menu h2{font-size:36px;margin:8px 0 14px}
 .section-menu nav>a{min-height:54px;font-size:22px}
 .motion-toggle{margin-top:16px;min-height:40px}.menu-other{margin-top:16px;padding-top:14px}.menu-event{margin-top:18px}
 /* B4. Tap targets under 44px in the header and the opening scene. */
 .header-enquire{min-height:44px}.menu-toggle{min-width:44px;width:44px}.hero-explore{min-height:44px}
 /* B5. Opening scene: the price line wraps clear of the floating button instead of running under it. */
 .booking-note{max-width:calc(100% - 118px);text-wrap:balance}
}
@media(max-width:350px){
 .panel-image{height:190px}.panel-heading{padding-top:40px}.panel-heading h3{font-size:25px}
 .evening-arc strong{font-size:13px}.evening-arc .arc-when{letter-spacing:.1em}
 .section-menu nav>a{min-height:50px;font-size:21px}.section-menu h2{font-size:32px}
}
