@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Serif+SC:wght@500;700&family=Playfair+Display:wght@400;500;600&display=swap');
:root{--plum:#261626;--panel:#352236;--ivory:#f6efe2;--muted:#c8b8c7;--amber:#edbd77;--line:#60485e;--lilac:#c6abd4;--green:#a4d0b1;color-scheme:dark;font-family:'DM Sans',sans-serif;background:var(--plum);color:var(--ivory);line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--amber);outline-offset:5px}::selection{background:var(--amber);color:var(--plum)}.demo{text-align:center;padding:7px 16px;background:#e8d8bc;color:#39243b;font-size:12px}header{max-width:1320px;margin:auto;padding:26px 48px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:19px;white-space:nowrap}.brand b{font-family:'Noto Serif SC',serif}.brand small{display:block;font-size:9px;letter-spacing:.18em;color:var(--muted)}.seal{font-family:'Noto Serif SC',serif;background:var(--amber);color:var(--plum);padding:2px 10px;font-size:30px}nav{display:flex;align-items:center;gap:30px;font-size:14px}nav a{text-decoration:none}.text{border:0;background:none;color:inherit;padding:8px 4px}.text:hover,nav a:hover{color:var(--amber)}#cartCount{background:var(--panel);padding:2px 8px;border-radius:50%;margin-left:5px}main{min-height:65vh}.wrap{max-width:1224px;margin:auto;padding:40px 32px 80px}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.08;text-wrap:balance}h1{font-size:clamp(42px,6vw,80px);letter-spacing:-.025em;margin-bottom:25px}h2{font-size:clamp(32px,4vw,48px);margin-bottom:24px}h3{font-size:21px;line-height:1.3}p{max-width:65ch}.muted{color:var(--muted)}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:590px;align-items:center;gap:64px;padding-top:10px}.hero p{color:var(--muted);max-width:440px}.hero h1 em{color:var(--amber);font-weight:400}.hero .cn{font:500 clamp(38px,5vw,64px)/1.3 'Noto Serif SC',serif;display:block;margin-bottom:18px}.actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:30px}.btn{display:inline-block;background:var(--amber);color:var(--plum);border:1px solid transparent;padding:13px 24px;border-radius:3px;text-decoration:none;font-weight:600}.btn:hover{background:#ffcf88}.btn.secondary{background:transparent;border-color:var(--line);color:var(--ivory)}.btn.secondary:hover{border-color:var(--amber)}.poster{position:relative;min-height:520px;overflow:hidden;background:#533444;padding:40px;display:flex;flex-direction:column;justify-content:space-between}.poster:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 80%,#ae754866,transparent 60%),linear-gradient(135deg,#5c314b,#322535);pointer-events:none}.poster>*{position:relative}.poster .strings{position:absolute;inset:0;width:100%;height:100%;opacity:.6}.poster .poster-title{font:500 90px/1.2 'Noto Serif SC',serif;writing-mode:vertical-rl;align-self:flex-end;letter-spacing:.12em}.poster-bottom{display:flex;justify-content:space-between;gap:16px;font-size:13px;border-top:1px solid #bfa37d77;padding-top:18px}.poster small{color:#e4c9d3;letter-spacing:.12em}.featureline{display:flex;gap:28px;flex-wrap:wrap;font-size:13px;margin-top:30px;color:var(--muted)}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:70px 0 28px}.sectionhead h2{margin:0}.eventlist{border-top:1px solid var(--line)}.eventrow{display:grid;grid-template-columns:100px 1fr auto;gap:32px;align-items:center;border-bottom:1px solid var(--line);padding:32px 0}.datebox{color:var(--amber);font-size:15px}.datebox strong{display:block;font:400 42px/1.2 'Playfair Display',serif}.eventrow h3{margin-bottom:8px;font-size:25px}.tag{display:inline-block;font-size:12px;padding:4px 10px;background:#463246;color:#e5cde9;border-radius:3px}.archive{display:grid;grid-template-columns:1fr 1fr;gap:26px}.archive article{border-bottom:1px solid var(--line);padding-bottom:24px}.archive-art{height:240px;display:flex;align-items:center;justify-content:center;font:500 64px 'Noto Serif SC',serif;letter-spacing:.15em;background:#5a3b45;color:#e6cba3;margin-bottom:22px}.archive article:nth-child(2) .archive-art{background:#33433e;color:#e0d6b4}.archive h3{margin:10px 0}.about{margin-top:90px;padding:50px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:60px}.about p{color:var(--muted)}footer{border-top:1px solid var(--line);padding:35px max(24px,calc((100vw - 1160px)/2));display:flex;gap:25px;align-items:center;flex-wrap:wrap}footer p{margin:0;color:var(--muted)}footer>a:last-of-type{margin-left:auto;font-size:13px}footer small{width:100%;color:var(--muted);font-size:11px}.back{display:inline-block;margin-bottom:28px;color:var(--muted)}.detailtop{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:35px}.detailtop h1{font-size:52px;margin-bottom:12px}.ticketlayout{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:start}.mapbox{background:#f0e7d6;color:#342739;padding:30px 20px;text-align:center;border-radius:4px}.mapbox svg{width:100%;max-height:400px}.mapbox text{font:600 14px 'DM Sans',sans-serif}.mapbox p{font-size:13px;margin:16px auto 0}.mapbox .zone{cursor:pointer;stroke:transparent;stroke-width:4}.mapbox .zone:hover,.mapbox .zone.selected{stroke:#29202c}.map-controls{display:flex;justify-content:center;gap:14px;margin-top:12px}.map-controls button{color:#352236;border:1px solid #ae9fad;background:transparent;border-radius:3px;padding:5px 12px}.switch{display:flex;border-bottom:1px solid var(--line);margin-bottom:12px}.switch button{flex:1;padding:14px 8px;background:transparent;color:var(--muted);border:0;border-bottom:3px solid transparent}.switch button.active{color:var(--amber);border-bottom-color:var(--amber)}.ticket{padding:22px 0;border-bottom:1px dashed var(--line);display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.ticket h3{margin:0 0 4px;display:flex;align-items:center;gap:10px}.dot{width:12px;height:12px;border-radius:50%;display:inline-block}.ticket small{color:var(--muted)}.ticket .price{font-size:24px;font-weight:600;display:block;text-align:right}.ticket select{padding:8px;background:var(--panel);border:1px solid var(--line);color:var(--ivory);border-radius:3px}.ticket .btn{padding:8px 16px;font-size:14px}.notice{background:#3b2a3d;padding:16px 20px;font-size:14px;margin:20px 0;border-radius:3px;color:#dfcce3}.note{font-size:13px;color:var(--muted)}dialog{background:var(--plum);color:var(--ivory);border:1px solid var(--line);width:min(600px,calc(100% - 24px));padding:28px;max-height:90vh;border-radius:8px}dialog::backdrop{background:#100a12bd}.dialoghead{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialoghead h2{font-size:32px;margin:0}.cartrow{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:20px 0}.cartrow p{margin:0}.total{display:flex;justify-content:space-between;font-size:23px;margin:25px 0}.full{width:100%;text-align:center}.formgrid{display:grid;gap:18px;margin:28px 0}label{display:block;font-size:14px}input,select{display:block;width:100%;background:var(--panel);color:var(--ivory);border:1px solid var(--line);padding:12px;border-radius:3px;margin-top:6px;caret-color:var(--amber)}input::placeholder{color:var(--muted)}input[type=checkbox]{width:auto;display:inline;margin-right:8px}.inline{display:flex;gap:10px;align-items:end}.inline input{flex:1;min-width:0}.inline button{flex-shrink:0}.message{min-height:24px;color:var(--amber);font-size:14px;margin-top:10px}.adminnav{display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:20px;margin:25px 0}.adminnav button{padding:9px 15px;background:var(--panel);color:var(--ivory);border:1px solid var(--line);border-radius:3px}.adminnav button.active{background:var(--amber);color:var(--plum);border-color:var(--amber)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin:30px 0 45px}.stat{border-bottom:1px solid var(--line);padding:15px 0}.stat strong{font-size:32px;display:block;color:var(--amber)}.stat small{color:var(--muted)}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:16px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-weight:500}td button{font-size:13px}.adminform{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:16px;align-items:end;margin:30px 0}.adminform .btn{height:50px}.empty{padding:40px 0;color:var(--muted)}.gallerygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallerytile{background:var(--panel);min-height:210px;display:flex;align-items:center;justify-content:center;padding:25px;text-align:center;color:var(--muted);border:1px dashed var(--line)}.review{padding:24px 0;border-bottom:1px solid var(--line)}.review p{margin:12px 0}.review .tag{margin-left:12px}.skip{position:absolute;left:12px;top:-80px;background:var(--amber);color:var(--plum);padding:10px;z-index:10}.skip:focus{top:10px}html{scroll-behavior:smooth;scrollbar-color:var(--line) var(--plum)}@media(max-width:800px){header{padding:20px 24px;flex-wrap:wrap}nav{gap:18px;font-size:13px;flex-wrap:wrap}.wrap{padding:25px 24px 55px}.hero{gap:28px;grid-template-columns:1fr}.hero>div:first-child{padding:24px 0}.poster{min-height:430px}.poster .poster-title{font-size:78px}.hero h1{font-size:55px}.sectionhead{margin-top:50px}.ticketlayout,.about{grid-template-columns:1fr;gap:25px}.eventrow{grid-template-columns:65px 1fr;gap:20px}.eventrow>.btn{grid-column:2;justify-self:start}.archive{gap:18px}.archive-art{height:180px;font-size:40px}.detailtop{display:block}.detailtop h1{font-size:42px}.stats{grid-template-columns:1fr 1fr}.adminform{grid-template-columns:1fr 1fr}.gallerygrid{grid-template-columns:1fr}.about{margin-top:50px}footer>a:last-of-type{margin-left:0}}@media(max-width:420px){.brand{font-size:17px}nav{gap:14px}.hero h1{font-size:46px}.archive{grid-template-columns:1fr}.poster{padding:26px}.inline{flex-wrap:wrap}.adminform{grid-template-columns:1fr}.ticketlayout{gap:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Real archive assets and clearly labelled example gallery. */
.archive-feature{display:grid;grid-template-columns:minmax(200px,340px) 1fr;gap:55px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:36px}.archive-feature img{display:block;width:100%;height:auto}.archive-feature h3{font-family:'Playfair Display','Noto Serif SC',serif;font-size:36px;line-height:1.35;margin:24px 0}.archive-feature .note{margin-top:20px}.archive-detail{display:grid;grid-template-columns:minmax(220px,420px) 1fr;gap:55px;align-items:center}.original-poster{width:100%;height:auto;display:block}.archive-detail h1{font-family:'Noto Serif SC',serif;font-size:clamp(36px,5vw,64px)}.venue-plan{width:100%;max-height:660px;object-fit:contain;display:block;background:white}.mapbox .map-controls{flex-wrap:wrap}.plan-link{color:#352236;display:inline-block;margin-top:14px;font-size:14px}.gallery-photo{margin:0;min-width:0}.gallery-photo img{display:block;width:100%;height:250px;object-fit:cover;background:var(--panel)}.gallery-photo a{display:block}.gallery-photo figcaption{padding:16px 0}.gallery-photo figcaption span{display:block;color:var(--muted);font-size:12px;margin-top:5px}@media(max-width:800px){.archive-feature,.archive-detail{grid-template-columns:1fr;gap:28px}.archive-feature>a{max-width:340px}.original-poster{max-width:420px}.archive-feature h3{font-size:30px}.gallery-photo img{height:260px}}

.ticket-facts{margin:22px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ticket-facts h3{font-size:23px}.ticket-facts p:last-child{margin-bottom:0}.selection-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}#ticketQuantity{max-width:150px;font-size:20px}#ticketQuantity[readonly]{background:#453046;color:var(--ivory)}#ticketPicker .notice[hidden]{display:none}#ticketPickerDescription{margin:12px 0 0}@media(max-width:420px){.selection-actions{flex-direction:column-reverse}.selection-actions .btn{width:100%}}
