@charset "UTF-8";
:root{--navy:#124074;--muted:#72828a;--paper:#f7f6f0;--orange:#ef7020;--teal:#2eb3bb;--cream:#f0dba3;--sidebar:220px;--serif:"Songti SC","STSong",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--sans);color:var(--navy);background:var(--paper);font-size:14px}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,.viewer:focus-visible{outline:2px solid #d49c36;outline-offset:-2px}button:disabled{opacity:.3;cursor:default}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0}.app{display:flex;height:100dvh;overflow:hidden;background:var(--paper)}.sidebar{width:var(--sidebar);flex:0 0 var(--sidebar);background:#123d54;color:#e6ecea;display:flex;flex-direction:column;padding:28px 15px 20px;overflow:auto;scrollbar-width:thin;z-index:5}.brand{display:block;padding:0 10px 26px;font-size:21px;letter-spacing:3px;font-family:var(--serif)}.brand-en{display:block;font-family:var(--sans);font-size:8px;letter-spacing:1.3px;margin-top:8px;color:#a8bdc3}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;padding:9px 8px 18px;font-size:11px;color:#a8bdc3;letter-spacing:2px}.live-dot{color:#7fd0cd;font-size:10px;letter-spacing:1px}.live-dot:before{content:"";display:inline-block;width:4px;height:4px;background:#71c8c8;border-radius:50%;margin-right:6px}.cover-link{display:flex;gap:10px;align-items:center;width:100%;padding:12px 10px;text-align:left;border:1px solid transparent;border-radius:3px;color:#d7e2e4;font-size:12px}.cover-link.active{background:#275269;border-color:#547383;color:var(--cream)}.nav-arrow{margin-left:auto;color:var(--cream)}.repertoire-label{display:flex;justify-content:space-between;margin:25px 8px 12px;font-size:10px;color:#9bb3bc;letter-spacing:1px}.repertoire-label span:last-child{font-size:8px;letter-spacing:1px}.work-link{display:grid;grid-template-columns:18px 1fr;gap:6px;width:100%;text-align:left;padding:15px 7px;border-bottom:1px solid #ffffff12;border-left:2px solid transparent}.work-link:hover{background:#ffffff09}.work-link.active{background:#ffffff0e;border-left-color:#eabf74}.work-number{font-family:Georgia,serif;color:#8aabb9;font-size:11px;line-height:21px}.work-link.active .work-number{color:var(--cream)}.work-title{display:block;font-size:12px;line-height:1.65;font-weight:500;color:#e5ebea}.work-subtitle{display:flex;justify-content:space-between;gap:5px;margin-top:6px;color:#91aebc;font-size:9px}.work-link.active .work-title{color:var(--cream)}.sidebar-bottom{margin-top:auto;padding:24px 8px 0;font-size:10px;color:#afc2c9}.small-rule{display:block;width:25px;height:2px;background:#4bb5ba;margin-bottom:16px}.sidebar-bottom p{margin:8px 0}.sidebar-bottom strong{color:#e4e8df;letter-spacing:3px;margin-left:10px;font-weight:500}.sidebar-bottom p:nth-child(3){font-family:Georgia,serif;font-size:14px;letter-spacing:1px}.sidebar-bottom p span{margin-left:8px}.sidebar-bottom .venue{font-size:10px;color:#8eaab5}.main{flex:1;min-width:0;display:flex;flex-direction:column}.toolbar{height:38px;flex:0 0 38px;border-bottom:1px solid #123d5412;display:flex;gap:12px;align-items:center;padding:0 10px;background:#faf9f5}.icon-button{display:grid;place-items:center;width:28px;height:28px;border-radius:3px;flex-shrink:0}.icon-button:hover:not(:disabled){background:#123d540c}.breadcrumb{display:flex;gap:10px;align-items:center;white-space:nowrap;font-size:11px;min-width:0}.breadcrumb-slash{color:#b9c3c6}.breadcrumb #context-label{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.toolbar-actions{display:flex;gap:10px;align-items:center;margin-left:auto}.view-switch{display:flex;background:#eeeee8;padding:2px;border-radius:4px;gap:2px}.view-switch button{display:flex;align-items:center;gap:5px;font-size:10px;padding:4px 8px;border-radius:2px;color:#7c898b;white-space:nowrap}.view-switch button svg{width:14px;height:14px}.view-switch .selected{background:#fff;color:var(--navy)}.fullscreen-button{display:flex;align-items:center;gap:6px;padding:5px 10px;background:#123d54;color:#fff;border-radius:3px;font-size:10px;white-space:nowrap}.fullscreen-button svg{width:16px;height:16px}.fullscreen-button:hover{background:#225871}.workspace{flex:1;min-height:0;padding:0;display:flex;flex-direction:column}.viewer{position:relative;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;overflow-anchor:none;background:#e5e8e2}.viewer::-webkit-scrollbar{width:0}.slide{height:100%;width:100%;position:relative;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;cursor:pointer}.cover-slide{container-type:size;overflow:clip;isolation:isolate;color:var(--navy);background:#ef7020 url('assets/poster-background.jpg') center/100% 100% no-repeat}.cover-top{position:absolute;left:4.5%;right:4.5%;top:4%;display:flex;justify-content:space-between;align-items:flex-start;z-index:2}.cover-top>span{font-size:clamp(9px,1.1cqw,17px);line-height:1.35;color:#861f41}.pku-mark{width:22%;max-height:9cqh;object-fit:contain;object-position:right top}.portrait{position:absolute;bottom:0;right:-5.5%;height:87%;width:53%;object-fit:contain;object-position:right bottom;z-index:-1;pointer-events:none}.cover-content{position:absolute;top:13%;left:4.5%;bottom:4%;width:58%;display:flex;flex-direction:column;justify-content:space-between;gap:1.5cqh}.cover-titles h1{margin:0;height:25cqh;line-height:0;text-align:left}.cover-titles h1 img{height:100%;max-width:100%;width:auto;object-fit:contain;object-position:left center}.cover-subtitle{font-family:var(--serif);font-size:clamp(16px,2.15cqw,33px);color:var(--cream);margin:1.3cqh 0 1.6cqh;letter-spacing:.03em}.cover-english{font-size:clamp(18px,2.45cqw,39px);line-height:1.15;margin:0 0 .7cqh;letter-spacing:-.5px}.cover-english-subtitle{font-family:Garamond,Georgia,serif;font-size:clamp(10px,1.22cqw,20px);margin:0;line-height:1.2}.event-row{display:flex;align-items:center;gap:2cqw;padding:1cqh 0}.performer{flex:0 0 auto}.performer>span{display:block;font-family:var(--serif);font-size:clamp(10px,1.1cqw,16px);margin-bottom:.5cqh}.performer>div{display:flex;align-items:center;gap:1.3cqw}.performer img{width:8.4cqw;height:4.2cqw;max-height:6cqh;object-fit:contain;object-position:left center}.performer p{font-size:clamp(10px,1.05cqw,17px);margin:0;line-height:1.4}.performer small{display:block;font-family:var(--serif);font-size:clamp(10px,1.05cqw,16px);margin-top:.3cqh}.event-date{padding-left:1.8cqw;border-left:1px solid #12407455;white-space:nowrap}.event-date strong{display:block;font-size:clamp(15px,1.9cqw,29px);font-weight:500;line-height:1.3}.event-date>span{display:block;font-family:var(--serif);font-size:clamp(10px,1.15cqw,18px);margin-top:.6cqh}.hosts{display:grid;grid-template-columns:1fr 1.15fr;gap:1.8cqw;font-family:var(--serif);padding:.8cqh 0;border-top:1px solid #12407430}.hosts h2{font-size:clamp(14px,1.55cqw,24px);font-weight:400;margin:0 0 .5cqh;line-height:1.4}.hosts h2>span{margin-right:.7cqw}.hosts h2 small{font-size:.83em}.hosts p{margin:0;font-size:clamp(11px,1.18cqw,18px);line-height:1.55}.organizers{display:grid;grid-template-columns:5em 1fr;gap:.65cqh 1.2cqw;font-family:var(--serif);font-size:clamp(11px,1.15cqw,18px);line-height:1.4;margin:0;color:#fff9df}.organizers dt,.organizers dd{margin:0}.start-button{position:absolute;right:4%;bottom:4%;display:flex;gap:28px;align-items:center;padding:10px 16px;border:1px solid #fff7d780;color:#fff9df;background:#1240749c;font-size:12px;z-index:3}.start-button:hover{background:#124074}.start-button span{font-size:20px}.score-slide{display:flex;align-items:center;justify-content:center;padding:4px;background:#e7eae4}.score-header{display:none}.spread-pages{display:flex;align-items:center;justify-content:center;gap:8px;height:var(--page-height);max-width:100%}.sheet-wrap{margin:0;width:calc(var(--page-height) * var(--ratio));height:100%;flex-shrink:0}.sheet-wrap img{display:block;width:100%;height:100%;object-fit:contain;background:white;box-shadow:0 1px 5px #223b4520;user-select:none}.transport{height:32px;flex:0 0 32px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;background:#faf9f5}.page-context{display:flex;align-items:center;gap:7px;font-size:10px;min-width:0;flex:1}.status-dot{width:4px;height:4px;border-radius:50%;background:#319d9f;flex-shrink:0}#page-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#original-pdf{display:flex;gap:4px;align-items:center;font-size:10px;color:#7e8d8e;white-space:nowrap;margin-left:4px}#original-pdf[hidden]{display:none}#original-pdf svg{width:11px;height:11px}.page-controls{display:flex;align-items:center;gap:7px}.page-controls .icon-button{width:26px;height:26px}.page-picker{display:flex;align-items:center;gap:5px;font-size:11px;font-family:Georgia,serif}.page-picker select{background:transparent;border:0;cursor:pointer;min-width:70px;padding:3px 2px;color:var(--navy);font-family:inherit;font-size:13px}.page-picker>span:last-child{color:#98a19e}.next-button{background:#123d54;color:#fff}.next-button:hover:not(:disabled){background:#275e74}.zoom-controls{display:flex;align-items:center;justify-content:flex-end;flex:1;gap:4px}.zoom-controls button{height:24px;min-width:25px;border:1px solid #dfe2dc;font-size:12px;border-radius:3px}.zoom-controls #fit-page{font-size:9px;padding:0 7px}#overall-count{font-size:10px;letter-spacing:1px;margin-right:12px;color:#8b9999;font-family:Georgia,serif}.progress-track{height:1px;background:#dce3df;flex:0 0 1px}.progress-track>div{height:100%;background:var(--teal);width:3.84%}.sidebar-hidden .sidebar{display:none}.sidebar-shade{display:none}.scroll-mode .viewer{scroll-snap-type:none;scrollbar-width:thin;background:#dfe4df}.scroll-mode .slide{height:auto;min-height:0;margin-bottom:16px;scroll-snap-align:none}.scroll-mode .cover-slide{height:calc(100dvh - 71px);min-height:650px}.scroll-mode .score-slide{display:block;padding:0 10px 12px}.scroll-mode .score-header{display:flex;gap:15px;align-items:center;padding:10px 0}.score-header h2{font-family:var(--serif);font-size:16px;font-weight:500;margin:0}.score-header span{font-size:11px;color:#6c7c7b}.scroll-mode .spread-pages{display:block;height:auto;overflow:auto;max-width:100%}.scroll-mode .sheet-wrap{width:var(--score-width,100%);height:auto;margin:0 auto}.scroll-mode .sheet-wrap img{width:100%;height:auto}.scroll-mode .score-slide:last-child{margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.toast{position:fixed;bottom:50px;left:50%;transform:translateX(-50%);background:#123d54ee;color:white;font-size:12px;padding:12px 20px;border-radius:5px;z-index:20;opacity:0;pointer-events:none;max-width:85vw}.toast.visible{opacity:1}.app:fullscreen .toolbar,.focus-mode .toolbar{height:32px;flex-basis:32px}.app:fullscreen .transport,.focus-mode .transport{height:28px;flex-basis:28px}
@media(max-height:760px){.sidebar{padding-top:20px}.brand{padding-bottom:20px}.work-link{padding-top:11px;padding-bottom:11px}.sidebar-bottom{padding-top:16px}.cover-content{gap:1cqh}.cover-titles h1{height:23cqh}.cover-english{font-size:min(2.4cqw,4.2cqh)}.cover-subtitle{margin:.8cqh 0 1cqh}.event-row{padding:.5cqh 0}.hosts p{line-height:1.4}.organizers{gap:.4cqh 1cqw}}
@media(max-width:1100px){.breadcrumb>span:first-child,.breadcrumb-slash{display:none}.cover-content{width:64%}.portrait{right:-10%;width:52%;height:80%}.hosts{grid-template-columns:1fr 1.2fr}.event-row{gap:1cqw}.performer p{font-size:10px}.event-date{padding-left:1cqw}.event-date strong{font-size:1.9cqw}.organizers{font-size:1.5cqw}.hosts p{font-size:1.45cqw}.cover-english-subtitle{font-size:1.5cqw}}
@media(max-width:760px){.sidebar{position:fixed;inset:0 auto 0 0;width:240px;box-shadow:10px 0 40px #123d5440}.app:not(.sidebar-hidden) .sidebar-shade{display:block;position:fixed;inset:0;background:#123d5444;z-index:4}.toolbar{padding:0 7px;gap:7px;height:34px;flex-basis:34px}.breadcrumb{font-size:10px}.view-switch button{padding:4px 6px}.view-switch button span,.fullscreen-button span{display:none}.fullscreen-button{padding:5px}.toolbar-actions{gap:6px}.transport{gap:5px;padding:0 5px}.page-context{max-width:30%;font-size:9px}.zoom-controls{flex:0}.zoom-controls #fit-page{display:none}#overall-count{display:none}.page-controls{margin-left:auto;gap:1px}.page-picker select{font-size:11px;min-width:63px}.cover-top{top:3%;left:5%;right:5%}.cover-top>span{font-size:8px}.pku-mark{width:33%;max-height:6cqh}.cover-content{top:12%;bottom:3%;left:5%;width:86%;gap:1cqh}.cover-titles h1{height:19cqh}.cover-subtitle{font-size:4.1cqw;margin:1cqh 0}.cover-english{font-size:5cqw;margin-bottom:.8cqh}.cover-english-subtitle{font-size:2.8cqw}.portrait{opacity:.3;height:66%;width:85%;right:-25%}.event-row{gap:3cqw}.performer>span{font-size:10px}.performer img{width:15cqw;height:7.5cqw}.performer p,.performer small{font-size:9px}.event-date{padding-left:3cqw}.event-date strong{font-size:3.5cqw}.event-date>span{font-size:2.7cqw}.hosts{gap:3cqw}.hosts h2{font-size:4cqw}.hosts p{font-size:3cqw;line-height:1.6}.organizers{font-size:3.2cqw;line-height:1.5;gap:1cqh 2cqw}.start-button{right:4%;bottom:3%;padding:4px 7px;font-size:10px;gap:5px}.start-button span{font-size:14px}.scroll-mode .cover-slide{height:calc(100dvh - 67px);min-height:660px}.score-header h2{font-size:13px}.score-header span{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.site-footer{flex:0 0 24px;display:flex;align-items:center;justify-content:center;background:#faf9f5;border-top:1px solid #123d5412;color:#52666d;font-size:12px;line-height:23px}.site-footer a{white-space:nowrap}.site-footer a:hover{text-decoration:underline}.scroll-mode .cover-slide{height:calc(100dvh - 95px)}
@media(max-width:760px){.scroll-mode .cover-slide{height:calc(100dvh - 91px)}}

/* Programme title pages share the original poster's extracted artwork. */
.title-slide{container-type:size;isolation:isolate;color:var(--navy);background:var(--orange) url('assets/poster-background.jpg') center/100% 100% no-repeat}
.title-top{position:absolute;top:4.5%;left:6%;right:6%;display:flex;justify-content:space-between;align-items:center;gap:4cqw}
.title-top>div>span{font-family:var(--serif);font-size:2.1cqw;letter-spacing:.12em;color:var(--cream)}
.title-top small{display:block;margin-top:.6cqh;font-family:Georgia,serif;font-size:1.1cqw;color:var(--navy)}
.title-top img{width:19cqw;height:9cqh;object-fit:contain;object-position:right center}
.title-body{position:absolute;inset:21% 6% 15%;display:flex;flex-direction:column;justify-content:space-between;gap:2cqh}
.title-heading h2{font-family:"Kaiti SC","STKaiti","KaiTi",var(--serif);font-size:min(5.7cqw,9cqh);line-height:1.22;font-weight:500;letter-spacing:.035em;color:var(--cream);margin:0}
.title-catalog{font-family:Georgia,serif;font-size:min(3cqw,4.5cqh);line-height:1.1;margin:1cqh 0 0;color:var(--cream)}
.title-english{font-family:Georgia,serif;font-size:min(2.2cqw,3.8cqh);line-height:1.3;margin:1.3cqh 0 0}
.title-edition{font-size:1.3cqw;letter-spacing:.12em;margin:1cqh 0 0}
.title-composer p{margin:0;font-family:var(--serif);font-size:min(2.1cqw,3.5cqh);line-height:1.4}
.title-composer p+p{font-family:Georgia,serif;font-style:italic;font-size:min(1.5cqw,2.8cqh);margin-top:.4cqh}
.title-movements{display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,auto);grid-template-columns:1fr 1fr;gap:1.7cqh 5cqw;margin:0;padding:2.2cqh 0 0;border-top:1px solid #f0dba380;list-style:none}
.title-movements li{display:flex;gap:1cqw;align-items:baseline;font-family:var(--serif);font-size:min(1.9cqw,3.1cqh);line-height:1.25}
.movement-label{min-width:2.7em;font-family:Georgia,var(--serif);font-size:.8em}
.movement-label:empty{display:none}
.title-movements small{display:block;font-family:Georgia,serif;font-style:italic;font-size:.74em;line-height:1.3;margin-top:.5cqh}
.title-bottom{position:absolute;bottom:4%;left:6%;right:6%;display:flex;justify-content:space-between;align-items:center;gap:3cqw;font-family:var(--serif);font-size:1.25cqw}
.title-bottom>div{display:flex;align-items:center;gap:1.5cqw}
.title-bottom img{width:6cqw;height:4cqh;object-fit:contain}
.title-bottom>div>span:last-child{font-family:var(--sans);font-size:1.1cqw}
.title-bottom>span{letter-spacing:.12em}
.title-slide-simple .title-body{inset-block:31% 29%}
.title-slide-simple .title-heading h2{font-size:min(7.2cqw,12cqh)}
.scroll-mode .title-slide{height:calc(100dvh - 95px);min-height:480px}
@container (max-aspect-ratio:1/1){
 .title-top>div>span{font-size:3.6cqw}.title-top small{font-size:2.3cqw}.title-top img{width:26cqw}
 .title-body{inset:20% 7% 15%;gap:2cqh}.title-heading h2{font-size:8cqw;line-height:1.35}.title-catalog{font-size:5cqw}.title-english{font-size:3.7cqw}.title-edition{font-size:3cqw}
 .title-composer p{font-size:4.1cqw}.title-composer p+p{font-size:3.2cqw}
 .title-movements{grid-auto-flow:row;grid-template-columns:1fr;grid-template-rows:none;gap:1.3cqh}.title-movements li{font-size:3.8cqw}.title-movements small{font-size:.8em;margin-top:.25cqh}
 .title-bottom{font-size:2.6cqw;align-items:flex-end}.title-bottom>div{flex-wrap:wrap;max-width:52%;gap:2cqw}.title-bottom img{width:12cqw}.title-bottom>div>span:last-child{font-size:2.3cqw}.title-bottom>span{font-size:2.5cqw}
 .title-slide-simple .title-heading h2{font-size:10cqw}
}
@container (max-height:400px) and (min-aspect-ratio:1/1){
 .title-body{inset:19% 6% 13%;gap:1cqh}
 .title-heading h2{font-size:8cqh}.title-catalog{font-size:4cqh;margin-top:.6cqh}.title-english{font-size:3.3cqh;margin-top:.8cqh}.title-edition{font-size:2.8cqh;margin-top:.6cqh}
 .title-composer p{font-size:3cqh}.title-composer p+p{font-size:2.5cqh}
 .title-movements{gap:1cqh 5cqw;padding-top:1.2cqh}.title-movements li{font-size:2.8cqh}.title-movements small{margin-top:.25cqh}
 .title-slide-simple .title-body{inset-block:31% 29%}
}
