:root{--green-800: #2d380a;--green-600: #5a6127;--base-light: #f5f0e8;--green-200: #e5ead3;--green-300: #c5d596;--base-dark: #1a1f0d;--text-body: #f7f7f7;--text-primary: var(--green-200);--text-secondary: var(--green-300);--bg-color: var(--base-dark)}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow-x:hidden}body{font-family:Quattrocento Sans,sans-serif;background-color:var(--bg-color);min-height:100vh;color:var(--text-primary);font-size:1.1rem;position:relative}.app{max-width:600px;margin:0 auto;padding:2rem 1.5rem;position:relative;overflow:visible}.lily{position:absolute;pointer-events:none;z-index:-1;filter:hue-rotate(10deg) brightness(.8)}.lily-1{width:323px;top:160px;left:-179px;transform:rotate(177deg) scaleX(-1)}.lily-2{width:320px;top:870px;right:-150px;transform:rotate(5deg)}.lily-3{width:280px;top:1690px;left:-140px;transform:rotate(200deg) scale(.8)}.lily-4{width:299px;bottom:1502px;right:-140px;transform:rotate(325deg) scaleX(-1)}.lily-5{width:350px;bottom:560px;left:-123px;transform:rotate(286deg)}.header{text-align:center;margin-bottom:2rem}.header-image{max-width:125%;height:auto;margin-left:-20%}.header-line{width:100%;height:1px;background:linear-gradient(to right,transparent,var(--text-secondary),transparent);margin-top:1rem}.programme{display:flex;flex-direction:column;gap:1.75rem}.program-entry{display:flex;gap:.5rem;align-items:flex-start}.entry-number{font-family:Perandory Condensed,sans-serif;font-size:4.5rem;font-weight:400;text-align:right;color:var(--text-primary);line-height:1;letter-spacing:.05em;padding-top:.6rem;margin-right:.3rem}.entry-content{flex:1}.group-name{font-family:Crimson Pro,serif;font-size:1.6rem;font-weight:700;color:var(--text-body);margin-bottom:.3rem;letter-spacing:.02em;line-height:1.4}.program-entry:nth-child(odd) .group-name,.program-entry:nth-child(odd) .entry-number{color:var(--text-primary)}.program-entry:nth-child(2n) .group-name,.program-entry:nth-child(2n) .entry-number{color:var(--text-secondary)}.song-info{font-family:Quattrocento Sans,sans-serif;font-size:1.15rem;font-style:normal;color:var(--text-body);margin-bottom:.5rem}.group-name{font-size:1.5rem}.song-title{font-style:italic}.performers{font-family:Quattrocento Sans,sans-serif;font-style:italic;font-size:1rem;color:var(--text-body);line-height:1.5}.program-entry.shift-right{margin-left:4rem}.program-entry.narrow{max-width:68%}.intermission{text-align:center;margin:1rem 0;position:relative;display:flex;align-items:center;justify-content:center;gap:1rem}.intermission:before,.intermission:after{content:"";width:80px;height:1px;background:linear-gradient(to right,transparent,var(--text-secondary),transparent);margin-bottom:.8rem}.intermission span{font-family:Perandory Condensed,sans-serif;font-size:4.5rem;color:var(--text-secondary);letter-spacing:.05em}.fin{text-align:center;padding:3rem 0 2rem}.fin-image{max-width:100%;height:auto;margin-bottom:2rem}.acknowledgements{text-align:left}.acknowledgements-title{font-family:Crimson Pro,serif;font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:1.5rem}.sponsors-title{font-family:Quattrocento Sans,sans-serif;font-size:1.3rem;font-weight:400;color:var(--text-secondary);margin-bottom:1rem}.sponsors-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:.5rem 1rem;margin-bottom:1.5rem}.sponsors-list{list-style:none;font-family:Quattrocento Sans,sans-serif;font-style:italic;font-size:1.1rem;color:var(--text-body);line-height:1.8}.sponsors-note{font-family:Quattrocento Sans,sans-serif;font-style:italic;font-size:1.1rem;color:var(--text-body)}.from-title{font-family:Quattrocento Sans,sans-serif;font-size:1.3rem;font-weight:400;color:var(--text-secondary);margin-top:3rem;margin-bottom:1.5rem}.thank-you{font-family:Quattrocento Sans,sans-serif;font-style:italic;font-size:1.1rem;color:var(--text-body);line-height:1.8;margin-top:1rem}.footer{text-align:center;padding:3rem 0 1rem;font-family:Quattrocento Sans,sans-serif;font-style:italic;font-size:1rem;color:var(--text-primary);position:relative}.footer:before{content:"";position:absolute;top:1.5rem;left:50%;transform:translate(-50%);width:60%;height:1px;background:linear-gradient(to right,transparent,var(--text-secondary),transparent)}@media(max-width:480px){.app{padding:1rem}}
