
    #panto-home {
      --oat:#f2ecdf; --cream:#f6eccf; --white:#fffdfa; --charcoal:#292b30; --grey:#4d4f53;
      --blue:#00517a; --sky:#9bd3f2; --gold:#f7bf1f; --orange:#ed8c01; --pink:#af126d; --mint:#81c3af;
      --plum:#4d3066; --lilac:#f0e6f5; background:var(--oat); color:var(--charcoal); font:14px/1.55 Verdana,sans-serif;
    }
    #panto-home * { box-sizing:border-box; }
    #panto-home a { color:inherit; }
    #panto-home a:focus-visible,#panto-home summary:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
    #panto-home h1,#panto-home h2,#panto-home h3,#panto-home p { margin:0; }
    #panto-home h2 { font-size:clamp(24px,4.7vw,43px); line-height:1.06; letter-spacing:-.055em; }
    #panto-home h3 { font-size:clamp(16px,2.6vw,22px); line-height:1.15; }
    #panto-home .small-head { font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
    #panto-home .stripe { height:5px; background:linear-gradient(90deg,var(--orange) 0 20%,#b5cb52 20% 40%,var(--sky) 40% 60%,var(--gold) 60% 80%,var(--mint) 80%); }
    #panto-home header,#panto-home footer { padding:12px clamp(14px,4vw,40px); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:7px 18px; }
    #panto-home header { background:white; }
    #panto-home .logo { display:grid; gap:5px; text-decoration:none; font-size:11px; font-weight:700; }
    #panto-home .mark { display:flex; align-items:center; gap:7px; }
    #panto-home .mark img { display:block; width:65px; height:auto; }
    #panto-home .mark img + img { width:60px; }
    #panto-home nav { display:flex; align-items:center; flex-wrap:wrap; gap:4px 13px; font-size:12px; font-weight:700; }
    #panto-home nav a { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:3px; }
    #panto-home .button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 12px; background:var(--charcoal); color:white; border:2px solid var(--charcoal); border-radius:10px; font-size:12px; font-weight:800; text-decoration:none; }
    #panto-home .button:hover { text-decoration:underline; text-underline-offset:3px; }
    #panto-home .button.light { background:white; color:var(--charcoal); }
    #panto-home .button.magenta { background:var(--pink); border-color:var(--pink); }
    #panto-home .actions { display:flex; flex-wrap:wrap; gap:8px; }
    #panto-home .show-hero { display:grid; grid-template-columns:1.18fr .82fr; align-items:center; gap:clamp(15px,3vw,27px); background:var(--cream); padding:clamp(17px,4.5vw,42px); }
    #panto-home .show-copy { display:grid; gap:12px; align-content:center; }
    #panto-home .show-copy h1 { font:700 clamp(48px,10vw,114px)/.89 Georgia,serif; color:var(--plum); letter-spacing:-.075em; }
    #panto-home .show-copy p:not(.small-head) { max-width:42ch; }
    #panto-home .show-date { width:fit-content; background:var(--gold); color:var(--charcoal); border-radius:20px; padding:6px 10px; font-size:12px; font-weight:800; }
    #panto-home .poster { min-width:0; margin:0; justify-self:center; width:min(100%,246px); }
    #panto-home .poster img { width:100%; height:auto; display:block; border:5px solid var(--plum); border-radius:13px; box-shadow:6px 6px 0 #bd9bcf; }
    #panto-home .page-sections { display:grid; gap:clamp(15px,3.5vw,29px); padding:clamp(15px,4vw,37px); }
    #panto-home .ticket-panel { display:grid; gap:11px; border:2px solid #8ab6ce; border-radius:15px; background:#e7f4fb; padding:clamp(12px,2.8vw,24px); }
    #panto-home .ticket-heading { display:flex; justify-content:space-between; align-items:end; gap:8px 13px; flex-wrap:wrap; }
    #panto-home .prices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0; }
    #panto-home .prices div { padding:8px; border:1px solid #91b5c6; border-radius:9px; background:#f8fdff; }
    #panto-home .prices dt { font-size:11px; font-weight:700; }
    #panto-home .prices dd { margin:2px 0 0; color:var(--blue); font-size:clamp(20px,4vw,33px); line-height:1.06; font-weight:800; }
    #panto-home .ticket-notes { font-size:12px; }
    #panto-home .performance-list { border-top:1px solid #a7c9da; padding-top:7px; }
    #panto-home .performance-list summary { cursor:pointer; min-height:43px; padding-block:8px; font-weight:800; }
    #panto-home .performance-list dl { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5px 12px; margin:4px 0; font-size:12px; }
    #panto-home .performance-list dt { font-weight:700; }
    #panto-home .performance-list dd { margin:0; }
    #panto-home .archive { display:grid; grid-template-columns:1fr 1.12fr; border:2px solid var(--plum); border-radius:15px; overflow:hidden; background:var(--lilac); }
    #panto-home .archive figure { position:relative; margin:0; min-height:188px; }
    #panto-home .archive figure img { position:absolute; width:100%; height:100%; object-fit:cover; }
    #panto-home .archive figcaption { position:absolute; bottom:7px; left:7px; max-width:calc(100% - 14px); padding:4px 7px; border-radius:5px; background:#fff7e8; color:#2d2530; font-size:10px; }
    #panto-home .archive-copy { display:grid; gap:9px; align-content:center; padding:clamp(13px,2.8vw,25px); }
    #panto-home .info-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
    #panto-home .info-row article { min-width:0; background:#fff8e4; border:1px solid #c1a06a; border-radius:12px; padding:12px; display:grid; gap:7px; }
    #panto-home .info-row article + article { background:#fffdfa; border-color:#a9a49b; }
    #panto-home .info-row a { display:inline-flex; min-height:40px; align-items:center; font-weight:800; text-underline-offset:3px; }
    #panto-home footer { background:var(--grey); color:white; }
    #panto-home footer .mark img { filter:brightness(0) invert(1); }
    #panto-home footer .footer-address { font-size:11px; }
    #panto-home footer a:focus-visible { outline-color:white; }
    @media(max-width:620px) {
      #panto-home .show-hero,#panto-home .archive { grid-template-columns:1fr; }
      #panto-home .poster { width:min(100%,205px); }
      #panto-home .archive figure { min-height:135px; }
    }
    @media(max-width:420px) {
      #panto-home .info-row { grid-template-columns:1fr; }
    }
  
    #panto-home [data-panto-panel][hidden] { display:none; }
    #panto-home header [aria-current="page"] { text-decoration:underline; text-underline-offset:4px; }
    #panto-home .archive-view h1 { font-size:clamp(40px,8vw,80px); line-height:.95; letter-spacing:-.075em; }
    #panto-home .archive-mast { padding:clamp(17px,4.5vw,43px); display:grid; gap:10px; background:#f6eccf; border-bottom:2px solid #d9cba5; }
    #panto-home .video-view .archive-mast { background:var(--lilac); border-color:#cfbadd; }
    #panto-home .archive-mast h1 { color:var(--plum); }
    #panto-home .archive-body { display:grid; gap:15px; padding:clamp(15px,4vw,35px); }
    #panto-home .archive-title-row { display:flex; justify-content:space-between; align-items:end; flex-wrap:wrap; gap:7px 13px; }
    #panto-home .archive-title-row a { display:inline-flex; align-items:center; min-height:44px; font-weight:700; font-size:12px; text-underline-offset:3px; }
    #panto-home .picture-library { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
    #panto-home .picture-item { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid #a29985; border-radius:12px; background:var(--white); text-decoration:none; }
    #panto-home .picture-item:hover strong,#panto-home .video-item:hover strong { text-decoration:underline; text-underline-offset:3px; }
    #panto-home .picture-item img,#panto-home .picture-blank { display:block; width:100%; aspect-ratio:1.68; object-fit:cover; background:#e1cdee; }
    #panto-home .picture-blank { display:grid; place-items:center; color:var(--plum); font-size:21px; font-weight:800; }
    #panto-home .archive-item-copy { display:grid; gap:4px; padding:9px; }
    #panto-home .archive-item-copy strong { font-size:clamp(12px,2vw,16px); line-height:1.15; overflow-wrap:anywhere; }
    #panto-home .archive-item-copy small { font-size:11px; line-height:1.25; }
    #panto-home .video-library { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    #panto-home .video-item { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:3px; min-height:62px; border:1px solid #ab93bb; border-radius:11px; background:#fcf7fe; color:#30233b; text-decoration:none; }
    #panto-home .play-mark { display:grid; place-items:center; width:37px; height:37px; margin-left:8px; border-radius:50%; background:var(--plum); color:white; font-size:13px; }
    #panto-home .archive-originals,#panto-home .archive-docs { border:1px solid #a29985; border-radius:10px; padding:8px 12px; background:var(--white); }
    #panto-home .archive-originals summary { cursor:pointer; min-height:39px; padding-block:7px; font-weight:700; }
    #panto-home .archive-originals ul,#panto-home .archive-docs ul { columns:2; padding-left:19px; font-size:12px; }
    #panto-home .archive-originals li,#panto-home .archive-docs li { break-inside:avoid; margin-bottom:5px; }
    @media(max-width:610px) {
      #panto-home .picture-library { grid-template-columns:repeat(2,minmax(0,1fr)); }
    }
    @media(max-width:470px) {
      #panto-home .video-library { grid-template-columns:1fr; }
      #panto-home .archive-originals ul { columns:1; }
    }

html { color-scheme:light; }
body { margin:0; }
#panto-home { min-height:100vh; display:flex; flex-direction:column; }
#panto-home > main { flex:1; }
#panto-home header,#panto-home footer,#panto-home .page-sections,#panto-home .subpage-inner {
  width:100%; max-width:1180px; margin-inline:auto;
}
#panto-home .site-header,#panto-home .site-footer { background:white; }
#panto-home .site-footer { background:var(--grey); }
#panto-home .panto-brand-image { display:block; width:144px; height:auto; }
#panto-home .site-footer .panto-brand-image { width:126px; background:white; border-radius:6px; padding:4px; }
#panto-home [aria-current="page"]:not(.button) { text-decoration:underline; text-underline-offset:4px; }
#panto-home .skip-link { position:absolute; left:10px; top:8px; z-index:3; transform:translateY(-180%); }
#panto-home .skip-link:focus { transform:none; }
#panto-home .show-inner { display:grid; grid-template-columns:1.18fr .82fr; align-items:center; gap:clamp(15px,3vw,27px); max-width:1180px; width:100%; margin-inline:auto; }
#panto-home .show-hero { display:block; }
#panto-home .subpage-head { background:var(--cream); border-bottom:2px solid #ddcca1; }
#panto-home .subpage-inner { display:grid; gap:10px; padding:clamp(18px,4vw,38px); }
#panto-home .subpage-head h1 { color:var(--plum); font-size:clamp(32px,6vw,67px); line-height:.98; letter-spacing:-.06em; }
#panto-home .article-wrap { display:grid; align-items:start; gap:13px; }
#panto-home .article-wrap.with-aside { grid-template-columns:minmax(0,1fr) minmax(180px,.48fr); }
#panto-home .source-content { background:var(--white); border:1px solid #bab1a3; border-radius:13px; padding:clamp(13px,3vw,27px); overflow-wrap:anywhere; }
#panto-home .source-content > :first-child { margin-top:0; }
#panto-home .source-content > :last-child { margin-bottom:0; }
#panto-home .source-content h2,#panto-home .source-content h3 { margin:17px 0 8px; }
#panto-home .source-content h2 { font-size:clamp(21px,3.1vw,31px); }
#panto-home .source-content p { margin:0 0 11px; }
#panto-home .source-content li { margin-bottom:5px; }
#panto-home .source-content :is(ul,ol) { padding-left:23px; margin:0 0 12px; }
#panto-home .source-content a { color:var(--blue); font-weight:700; }
#panto-home .archive-body { width:100%; max-width:1180px; margin-inline:auto; }
#panto-home .archive-figure { margin:0; }
#panto-home .archive-figure img { display:block; width:100%; height:auto; border:2px solid var(--plum); border-radius:12px; }
#panto-home .archive-figure figcaption { margin-top:6px; font-size:11px; }
#panto-home .archive-docs p { margin:7px 0; }
#panto-home .book-frame { min-height:430px; }
#panto-home .book-frame:empty { min-height:0; }
#panto-home .book-frame iframe { width:100%; max-width:100%; border:0; border-radius:10px; }
#panto-home .video-embed { display:block; width:100%; aspect-ratio:16 / 9; border:0; border-radius:10px; background:#222; }
#panto-home .video-detail { border:1px solid #b49bc6; border-radius:10px; background:#fcf7fe; }
#panto-home .video-detail summary { cursor:pointer; padding:10px; min-height:44px; font-weight:700; }
#panto-home .video-detail .video-content { display:grid; gap:8px; padding:0 10px 10px; }
#panto-home .video-detail .video-content a { justify-self:start; font-weight:700; }
#panto-home .supplement { display:grid; gap:9px; padding:12px; border:1px solid #c7aa75; border-radius:11px; background:#fff7de; }
#panto-home .contact-options { display:flex; gap:8px; flex-wrap:wrap; }
@media(max-width:620px) {
  #panto-home .site-header .panto-brand-image { width:116px; }
  #panto-home .show-inner,#panto-home .article-wrap.with-aside { grid-template-columns:1fr; }
}
