/**
 * Comedy Republic — Event page (one-off and season): the whole design stylesheet for single-show.php, both layouts.
 *
 * The only stylesheet this page loads (+ Google fonts): functions.php enqueues it when
 * cr_design_page() is 'event' — no theme.css, design-base.css or design-home.css. It carries its own
 * chrome (header, footer with the mailing-list form, menu), which differs slightly from the homepage's.
 *
 * PORTED from docs/design/canvas/EventPage.dc.html (its <style> block), value for value, between the
 * PORT-BEGIN / PORT-END markers. Do not round, re-tokenise or reorder; change the design, then re-port.
 * Scoping (as round 1): the design root .cr is .crd; every other selector is prefixed with `.crd `
 * (inside media queries too); the bare a / a:hover resets are :where(.crd) a; html / body stay global.
 * Asset URLs: /_blob/<id> → ../design/<file> (+ ../fonts/guess-sans-800.woff2).
 * Check the port is intact: python3 tests/visual/port-css.py docs/design/canvas/EventPage.dc.html --check assets/css/design-event.css
 *
 * After PORT-END: theme additions (things the design does not need because it is one static page).
 * The chrome block is the same in every inner page's file (foundation); the page block is the event builder's.
 */

/* ==== PORT-BEGIN docs/design/canvas/EventPage.dc.html ==== */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#F5F0D3}
:where(.crd) a{color:inherit}
:where(.crd) a:hover{color:inherit}

.crd{--cream:#F5F0D3;--card:#FFFDF6;--ivory:#FFFBEA;--ink:#2E2D2A;--ink-dk:#242321;--green:#4F744A;--green-dk:#33502F;--sage:#8E9680;--gold:#FFBC29;--gold-dk:#A87700;--ox:#720002;--ox-dk:#3F0001;--blue:#1C79AE;--grey:#B1B2B0;--line:rgba(46,45,42,.15);--muted:#5C5A53;--wrap:1320px;--gut:clamp(20px,4.4vw,64px);position:relative;background-color:var(--cream);background-image:linear-gradient(rgba(245,240,211,.85),rgba(245,240,211,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;color:var(--ink);font-family:'futura-pt','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
:where(.crd) *,:where(.crd) *::before,:where(.crd) *::after{box-sizing:border-box}
:where(.crd) img{display:block;max-width:100%;height:auto}
:where(.crd) h1,:where(.crd) h2,:where(.crd) h3,:where(.crd) p,:where(.crd) address,:where(.crd) dl,:where(.crd) dd,:where(.crd) ul{margin:0}
:where(.crd) ul{padding:0;list-style:none}
:where(.crd) button,:where(.crd) input{font:inherit;color:inherit}
.crd :focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 3px var(--gold)}
.crd .cr-footer :focus-visible,.crd .cr-signup :focus-visible,.crd .cr-done :focus-visible,.crd .cr-tab:focus-visible,.crd .cr-promo:focus-visible,.crd .cr-new__panel :focus-visible,.crd .cr-hero :focus-visible,.crd .ev-car :focus-visible,.crd .ct-pass :focus-visible,.crd .ct-cta__band :focus-visible,.crd .yv-food :focus-visible{outline-color:var(--gold);box-shadow:0 0 0 3px var(--ink-dk)}
.crd .cr-wrap{width:min(var(--wrap),calc(100% - 2 * var(--gut)));margin-inline:auto}
.crd .cr-grain{display:none}
.crd .cr-ico{flex:none;width:18px;height:18px}
.crd .cr-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.crd .cr-display{font-family:'futura-pt-bold','Futura','Century Gothic','Avenir Next',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:.95}
.crd .cr-script{font-family:'Norican','Brush Script MT',cursive;font-weight:400;line-height:1}
.crd .cr-x-ink{text-shadow:-1px 1px 0 #BAB6A2,-2px 2px 0 #AEAA96,-3px 3px 0 #A29E8A,-4px 4px 0 #96927E,-5px 5px 0 #8A8672}

/* Header */
.crd .cr-header{position:sticky;top:0;z-index:50;background:rgba(245,240,211,.9);-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3);border-bottom:1px solid var(--line)}
.crd .cr-header__inner{display:flex;align-items:center;gap:20px;min-height:88px}
.crd .cr-burger{display:none;flex:none;width:46px;height:46px;padding:0;border:0;background:none;cursor:pointer;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px}
.crd .cr-burger span{display:block;width:24px;height:2px;border-radius:2px;background:var(--ink)}
.crd .cr-burger span:nth-child(2){width:17px}
.crd .cr-burger--x{align-items:center}
.crd .cr-brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-decoration:none}
.crd .cr-brand__logo{width:232px}
.crd .cr-tagline{font-weight:900;font-size:9.5px;line-height:1;letter-spacing:.27em;text-transform:uppercase;color:var(--muted);padding-left:5px;white-space:nowrap}
.crd .cr-nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.crd .cr-nav a{font-weight:700;font-size:15.5px;text-decoration:none;padding:12px 16px;border-radius:999px;transition:background .2s}
.crd .cr-nav a:hover{background:rgba(46,45,42,.07)}
.crd .cr-nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--ox);text-decoration-thickness:2px;text-underline-offset:8px}
.crd .cr-search{flex:none;width:48px;height:48px;margin-left:6px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;text-decoration:none;transition:background .2s,color .2s}
.crd .cr-search:hover{background:var(--ink);color:var(--cream)}
.crd .cr-whatson{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px 0 18px;margin-left:8px;border-radius:999px;background:var(--ink);color:var(--cream);font-weight:900;font-size:14.5px;letter-spacing:.03em;text-decoration:none;white-space:nowrap;box-shadow:-3px 3px 0 rgba(46,45,42,.28);transition:transform .15s,box-shadow .15s}
.crd .cr-whatson:hover{color:var(--cream);transform:translate(-1px,1px);box-shadow:-2px 2px 0 rgba(46,45,42,.28)}

/* Shared bits */
.crd .cr-art{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;width:62px;height:62px;border-radius:12px;color:var(--ivory);background:var(--ink)}
.crd .cr-art::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(0,0,0,.22) 1px,rgba(0,0,0,0) 1.7px) 0 0/5px 5px,radial-gradient(120% 100% at 15% 0%,rgba(255,255,255,.22),rgba(255,255,255,0) 58%)}
.crd .cr-art__ini{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:23px;line-height:1;letter-spacing:.02em;text-shadow:-1px 1px 0 rgba(0,0,0,.3),-2px 2px 0 rgba(0,0,0,.22)}
.crd .cr-art--blue{background-color:var(--blue)}
.crd .cr-art--gold{background-color:var(--gold);color:var(--ink)}
.crd .cr-chip{position:relative;display:inline-flex;align-items:center;height:22px;padding:0 10px 0 8px;border-radius:3px;font-weight:900;font-size:10px;line-height:1;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.crd .cr-chip::after{content:'';position:absolute;top:0;right:0;width:7px;height:7px;background:linear-gradient(225deg,var(--card) 0 50%,rgba(0,0,0,.26) 50%);border-bottom-left-radius:2px}
.crd .cr-chip--last{background:var(--ox);color:#FFF6E0}
.crd .cr-cattag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border:1px solid rgba(46,45,42,.45);border-radius:4px;font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.crd .cr-status{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:13px}
.crd .cr-status--fast{color:#9A5B00}
.crd .cr-status i{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;animation:cr-pulse-f 1.8s ease-out infinite}
@keyframes cr-pulse-f{0%{box-shadow:0 0 0 0 rgba(154,91,0,.55)}70%{box-shadow:0 0 0 7px rgba(154,91,0,0)}100%{box-shadow:0 0 0 0 rgba(154,91,0,0)}}
.crd .cr-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border:0;border-radius:12px;font-weight:900;font-size:15px;line-height:1.2;letter-spacing:.02em;text-align:center;text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .2s,color .2s}
.crd .cr-btn .cr-ico{width:17px;height:17px}
.crd .cr-btn--outline{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.crd .cr-btn--outline:hover{background:var(--ink);color:var(--cream)}
.crd .cr-btn--ox{background:var(--ox);color:#FFF6E0;box-shadow:-3px 3px 0 var(--ox-dk)}
.crd .cr-btn--ox:hover{color:#FFF6E0;transform:translate(-1px,1px);box-shadow:-2px 2px 0 var(--ox-dk)}

/* Page frame */
.crd .ev-back{display:inline-flex;align-items:center;gap:9px;min-height:44px;margin-top:26px;padding-right:6px;font-weight:900;font-size:14px;letter-spacing:.02em;text-decoration:none;color:var(--ink)}
.crd .ev-back .cr-ico{width:16px;height:16px;transition:transform .2s}
.crd .ev-back:hover .cr-ico{transform:translateX(-3px)}
.crd .ev-back span{background:linear-gradient(var(--ox),var(--ox)) 0 100%/0 2px no-repeat;transition:background-size .25s}
.crd .ev-back:hover span{background-size:100% 2px}
.crd .ev-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-template-areas:"hero panel" "body panel";column-gap:56px;margin-top:12px;padding-bottom:120px}
.crd .ev-heroarea{grid-area:hero;min-width:0}
.crd .ev-panel{grid-area:panel;align-self:start;position:sticky;top:112px;min-width:0}
.crd .ev-body{grid-area:body;min-width:0}

/* Hero carousel */
.crd .ev-car{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/9;border-radius:26px;background:#14110C;box-shadow:0 44px 80px -48px rgba(46,45,42,.8),0 10px 24px -16px rgba(46,45,42,.35)}
.crd .ev-car::after{content:'';position:absolute;inset:0;z-index:7;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);pointer-events:none}
.crd .ev-slide{position:absolute;inset:0;z-index:1;overflow:hidden;opacity:0;visibility:hidden;background:#1D1A14 center/cover no-repeat;transition:opacity .6s ease,visibility 0s linear .6s}
.crd .ev-slide.is-on{z-index:2;opacity:1;visibility:visible;transition:opacity .6s ease}
.crd .ev-slide--stage::before{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(30% 78% at 50% -8%,rgba(255,236,190,.7),rgba(255,236,190,0) 72%),radial-gradient(120% 100% at 50% 34%,rgba(0,0,0,0) 42%,rgba(0,0,0,.66))}
.crd .ev-beam{position:absolute;z-index:0;left:50%;top:-4%;width:58%;height:96%;transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,236,190,.26),rgba(255,236,190,0) 88%);clip-path:polygon(40% 0,60% 0,100% 100%,0 100%);mix-blend-mode:screen;pointer-events:none}
.crd .ev-floor{position:absolute;z-index:1;left:0;right:0;bottom:0;height:29%;background:linear-gradient(180deg,#3B2515,#120904);box-shadow:0 -1px 0 rgba(255,214,150,.32)}
.crd .ev-floor::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,0) 0 64px,rgba(0,0,0,.22) 64px 66px);opacity:.6}
.crd .ev-pool{position:absolute;z-index:2;left:50%;bottom:17%;width:42%;height:15%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(255,232,180,.62),rgba(255,232,180,0))}
.crd .ev-stagechar{position:absolute;z-index:3;left:50%;bottom:21%;height:66%;width:auto;max-width:none;transform:translateX(-50%) rotate(-2deg);filter:drop-shadow(0 18px 16px rgba(0,0,0,.5))}
.crd .ev-slide--art{background:var(--blue)}
.crd .ev-slide--art::before{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(rgba(0,0,0,.24) 1.3px,rgba(0,0,0,0) 2.1px) 0 0/8px 8px,radial-gradient(110% 120% at 12% 0%,rgba(255,255,255,.26),rgba(255,255,255,0) 55%)}
.crd .ev-slide--art::after{content:'';position:absolute;z-index:0;right:-8%;top:50%;width:62%;aspect-ratio:1;transform:translateY(-58%);border-radius:50%;background:radial-gradient(rgba(255,188,41,.85) 2px,rgba(255,188,41,0) 3px) 0 0/14px 14px;-webkit-mask:radial-gradient(closest-side,#000 52%,transparent);mask:radial-gradient(closest-side,#000 52%,transparent)}
.crd .ev-arttype{position:absolute;z-index:2;left:104px;top:15%;max-width:50%;font-size:clamp(40px,5.5vw,80px);line-height:.86;color:var(--ivory);text-shadow:-2px 2px 0 rgba(0,0,0,.3),-4px 4px 0 rgba(0,0,0,.24),-6px 6px 0 rgba(0,0,0,.18)}
.crd .ev-artscript{position:absolute;z-index:2;left:7%;top:55%;font-size:clamp(26px,3vw,40px);color:var(--gold);transform:rotate(-5deg);transform-origin:left center}
.crd .ev-artchar{position:absolute;z-index:1;right:72px;bottom:16%;height:72%;width:auto;max-width:none;transform:rotate(5deg);filter:drop-shadow(-7px 8px 0 rgba(0,0,0,.22))}
.crd .ev-slide--video{background-position:center 30%}
.crd .ev-slide--video::before{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(60% 70% at 50% 40%,rgba(20,4,4,.35),rgba(14,6,5,.85))}
.crd .ev-vid{position:absolute;z-index:2;left:50%;top:44%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:14px}
.crd .ev-vid__btn{width:98px;height:98px;padding:0;border:0;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:-5px 5px 0 var(--gold-dk),0 0 0 12px rgba(255,188,41,.16),0 18px 40px rgba(0,0,0,.45);transition:transform .15s,box-shadow .15s}
.crd .ev-vid__btn:hover{transform:translate(-2px,2px);box-shadow:-3px 3px 0 var(--gold-dk),0 0 0 16px rgba(255,188,41,.2),0 18px 40px rgba(0,0,0,.45)}
.crd .ev-vid__btn svg{width:34px;height:34px}
.crd .ev-vid__label{font-weight:900;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ivory)}
.crd .ev-progress{position:absolute;z-index:8;left:0;right:0;bottom:0;height:4px;background:rgba(255,251,234,.18);opacity:0;transition:opacity .3s}
.crd .ev-progress i{display:block;width:0;height:100%;background:var(--gold)}
.crd .ev-slide--video.is-playing ~ .ev-progress{opacity:1}
.crd .ev-slide--video.is-playing ~ .ev-progress i{animation:ev-prog 16s linear forwards}
@keyframes ev-prog{from{width:0}to{width:100%}}
.crd .ev-flagwrap{position:absolute;z-index:6;top:20px;right:20px;filter:drop-shadow(-3px 3px 0 rgba(0,0,0,.34))}
.crd .ev-flag{height:30px;padding:0 15px 0 12px;font-size:11px;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}
.crd .ev-flag::after{width:8px;height:8px;background:linear-gradient(225deg,rgba(0,0,0,0) 0 50%,#A9282A 50%)}
.crd .ev-carbtn{position:absolute;z-index:6;top:50%;width:52px;height:52px;margin-top:-40px;padding:0;border:0;border-radius:50%;background:rgba(245,240,211,.94);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:-3px 3px 0 rgba(0,0,0,.34);transition:transform .15s,box-shadow .15s,background .2s}
.crd .ev-carbtn:hover{background:var(--ivory);transform:translate(-1px,1px);box-shadow:-2px 2px 0 rgba(0,0,0,.34)}
.crd .ev-carbtn--prev{left:20px}
.crd .ev-carbtn--next{right:20px}
.crd .ev-proof{position:absolute;z-index:6;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:96px 26px 22px;background:linear-gradient(180deg,rgba(12,10,8,0),rgba(12,10,8,.55) 45%,rgba(12,10,8,.9));color:var(--ivory);pointer-events:none}
.crd .ev-proof > *{pointer-events:auto}
.crd .ev-stars{display:flex;gap:3px;color:var(--gold)}
.crd .ev-stars svg{width:19px;height:19px}
.crd .ev-quote{margin-top:9px;font-weight:900;font-size:21px;line-height:1.2;letter-spacing:.005em}
.crd .ev-quote__src{margin-left:8px;font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,251,234,.78);white-space:nowrap}
.crd .ev-carnav{flex:none;display:flex;align-items:center;gap:4px}
.crd .ev-dot{width:26px;height:26px;padding:0;border:0;background:none;display:grid;place-items:center;cursor:pointer}
.crd .ev-dot i{display:block;width:9px;height:9px;border-radius:999px;background:rgba(255,251,234,.45);transition:width .25s,background .25s}
.crd .ev-dot:hover i{background:rgba(255,251,234,.8)}
.crd .ev-dot.is-on i{width:24px;background:var(--ivory)}
.crd .ev-play{display:inline-flex;align-items:center;gap:8px;height:40px;margin-left:10px;padding:0 16px 0 13px;border-radius:999px;border:1.5px solid rgba(255,251,234,.72);background:rgba(20,17,12,.28);color:var(--ivory);font-weight:900;font-size:13px;letter-spacing:.02em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s,color .2s}
.crd .ev-play:hover{background:var(--ivory);color:var(--ink)}
.crd .ev-play svg{width:13px;height:13px}

/* Booking ticket */
.crd .ev-ticket{position:relative;filter:drop-shadow(0 26px 30px rgba(46,45,42,.16)) drop-shadow(0 3px 4px rgba(46,45,42,.1))}
.crd .ev-ticket__top,.crd .ev-ticket__stub{position:relative;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply}
.crd .ev-ticket__top{padding:30px 32px 30px;border-radius:24px 24px 0 0;-webkit-mask:radial-gradient(circle 14px at 0 100%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 100%,#0000 96%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle 14px at 0 100%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 100%,#0000 96%,#000) 100% 0/51% 100% no-repeat}
.crd .ev-ticket__top::before{content:'';position:absolute;left:0;right:0;top:0;height:7px;border-radius:24px 24px 0 0;background:var(--ox)}
.crd .ev-ticket__stub{padding:28px 32px 30px;border-radius:0 0 24px 24px;-webkit-mask:radial-gradient(circle 14px at 0 0,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,#0000 96%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle 14px at 0 0,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,#0000 96%,#000) 100% 0/51% 100% no-repeat}
.crd .ev-ticket__stub::before{content:'';position:absolute;left:22px;right:22px;top:-1px;border-top:2px dashed rgba(46,45,42,.22)}
.crd .ev-tags{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
.crd .ev-title{margin-top:18px;font-size:62px;line-height:.88}
.crd .ev-hook{margin-top:18px;font-size:17px;line-height:1.55;color:var(--muted)}
.crd .ev-when{display:flex;align-items:center;gap:18px}
.crd .ev-badge{flex:none;width:70px;overflow:hidden;border-radius:12px;text-align:center;background:#fff;box-shadow:inset 0 0 0 1.5px var(--ink),-3px 3px 0 rgba(46,45,42,.16)}
.crd .ev-badge__dow{display:block;padding:6px 0 5px;background:var(--ox);color:#FFF6E0;font-weight:900;font-size:10px;line-height:1;letter-spacing:.2em}
.crd .ev-badge__d{display:block;padding-top:8px;font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:31px;line-height:1}
.crd .ev-badge__m{display:block;padding:4px 0 8px;font-weight:900;font-size:10px;line-height:1;letter-spacing:.2em;color:var(--muted)}
.crd .ev-when__main{font-weight:900;font-size:18.5px;line-height:1.25}
.crd .ev-when__sub{margin-top:6px;font-size:15px;line-height:1.4;color:var(--muted)}
.crd .ev-buy{display:flex;width:100%;margin-top:24px;text-decoration:none;filter:drop-shadow(-3px 3px 0 var(--ox-dk));transition:transform .15s ease,filter .15s ease}
.crd .ev-buy:hover{transform:translate(-1px,1px);filter:drop-shadow(-2px 2px 0 var(--ox-dk))}
.crd .ev-buy:active{transform:translate(-3px,3px);filter:drop-shadow(0 0 0 var(--ox-dk))}
.crd .ev-buy__body{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:12px;height:64px;padding:0 26px 0 76px;border-radius:12px;background:var(--ox);color:#FFF6E0;font-weight:900;font-size:18px;line-height:1;letter-spacing:.02em;white-space:nowrap;-webkit-mask:radial-gradient(circle 9px at 0 50%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,#0000 96%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle 9px at 0 50%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,#0000 96%,#000) 100% 0/51% 100% no-repeat}
.crd .ev-buy__body::before{content:'';position:absolute;left:58px;top:13px;bottom:13px;border-left:2px dashed rgba(255,246,224,.45)}
.crd .ev-buy__ico{position:absolute;left:21px;top:50%;width:22px;height:22px;margin-top:-11px;opacity:.9}
.crd .ev-buy__arrow{width:18px;height:18px;transition:transform .2s}
.crd .ev-buy:hover .ev-buy__arrow{transform:translateX(3px)}
.crd .ev-facts{display:flex;flex-direction:column;gap:11px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.4;color:var(--muted)}
.crd .ev-facts li{display:flex;align-items:flex-start;gap:11px}
.crd .ev-facts .cr-ico{width:17px;height:17px;margin-top:1px;color:var(--ink)}

/* Body sections */
.crd .ev-sec{margin-top:64px}
.crd .ev-h2{font-size:34px;line-height:.95}
.crd .ev-about__lede{margin-top:20px;max-width:34em;font-size:20px;line-height:1.6}
.crd .ev-about__tbc{margin-top:18px;max-width:34em;font-style:italic;font-size:17px;line-height:1.55;color:var(--muted)}
.crd .ev-skel{display:grid;gap:12px;margin-top:20px;max-width:34em}
.crd .ev-skel i{display:block;height:11px;border-radius:6px;background:rgba(46,45,42,.08)}
.crd .ev-skel i:nth-child(2){width:94%}
.crd .ev-skel i:nth-child(3){width:86%}
.crd .ev-skel i:nth-child(4){width:58%}
.crd .ev-about__more{margin-top:14px;max-width:38em;font-size:17px;line-height:1.65;color:var(--muted)}
.crd .ev-acts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px;margin-top:24px}
.crd .ev-act{display:flex;align-items:center;gap:18px;padding:16px 22px 16px 16px;border-radius:22px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.14);box-shadow:0 20px 36px -30px rgba(46,45,42,.5)}
.crd .ev-act__pic{flex:none;width:92px;height:92px;border-radius:50%}
.crd .ev-act__pic .cr-art__ini{font-size:30px}
.crd .ev-act__pic--tba{display:grid;place-items:center;border:2px dashed rgba(46,45,42,.32);background:rgba(245,240,211,.6);font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:17px;letter-spacing:.08em;color:rgba(46,45,42,.5)}
.crd .ev-act__role{font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--ox)}
.crd .ev-act__role--muted{color:var(--muted)}
.crd .ev-act__name{margin-top:7px;font-size:23px;line-height:1}
.crd .ev-act__bio{margin-top:7px;font-size:14.5px;line-height:1.45;color:var(--muted)}
.crd .ev-house{display:flex;align-items:center;gap:20px;padding:20px 26px 20px 20px;border-radius:22px;border:1.5px dashed rgba(46,45,42,.3);background:rgba(255,253,246,.5)}
.crd .ev-house__mark{flex:none;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--green) url('../design/texture-felt.webp') center/360px;box-shadow:-3px 3px 0 var(--green-dk)}
.crd .ev-house__mark img{width:30px}
.crd .ev-house p{font-size:16.5px;line-height:1.55}
.crd .ev-house a{font-weight:900;color:var(--ox);text-decoration:none;white-space:nowrap}
.crd .ev-house a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.crd .ev-also{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}
.crd .ev-card{display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.16);box-shadow:0 24px 40px -32px rgba(46,45,42,.55);text-decoration:none;transition:transform .3s cubic-bezier(.2,.75,.2,1),border-color .3s}
@media (hover:hover){.crd .ev-card:hover{transform:translateY(-3px);border-color:rgba(46,45,42,.34)}}
.crd .ev-card__art{position:relative;isolation:isolate;overflow:hidden;height:176px;display:grid;place-items:center}
.crd .ev-card__art::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(0,0,0,.2) 1.1px,rgba(0,0,0,0) 1.9px) 0 0/7px 7px,radial-gradient(120% 100% at 15% 0%,rgba(255,255,255,.26),rgba(255,255,255,0) 58%)}
.crd .ev-card__art--gold{background:var(--gold);color:var(--ink)}
.crd .ev-card__art--ms{background:url('../design/tile-main-stage.jpg') center/auto 100% no-repeat,url('../design/texture-felt.webp') center/360px}
.crd .ev-card__art--ms::before{display:none}
.crd .ev-typetile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;text-align:center}
.crd .ev-typetile__a{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:40px;line-height:.9;letter-spacing:.01em;text-shadow:-1px 1px 0 rgba(255,255,255,.45),-2px 2px 0 rgba(255,255,255,.3),-3px 3px 0 rgba(255,255,255,.18)}
.crd .ev-typetile__b{font-family:'Norican','Brush Script MT',cursive;font-size:34px;line-height:1;color:var(--ox)}
.crd .ev-card__body{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px 18px 20px}
.crd .ev-card__name{display:block;font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:20px;line-height:1.04;letter-spacing:.015em}
.crd .ev-card__when{display:block;margin-top:6px;font-size:14.5px;color:var(--muted)}
.crd .ev-card__go{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;transition:background .2s,color .2s}
.crd .ev-card:hover .ev-card__go{background:var(--ink);color:var(--cream)}

/* Your visit */
.crd .ev-visit{position:relative;margin-top:64px;padding:38px 38px 36px;border-radius:28px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.16);box-shadow:0 30px 60px -44px rgba(46,45,42,.6)}
.crd .ev-visit::after{content:'';position:absolute;inset:9px;border:1px solid rgba(79,116,74,.22);border-radius:21px;pointer-events:none}
.crd .ev-visit__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;margin-top:26px;align-items:stretch}
.crd .ev-fact{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;gap:14px;padding:13px 0;border-top:1px dashed rgba(46,45,42,.22)}
.crd .ev-fact:first-child{padding-top:0;border-top:0}
.crd .ev-fact:last-child{padding-bottom:0}
.crd .ev-fact dt{display:flex;align-items:center;gap:12px;font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crd .ev-fact__ico{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(79,116,74,.11);color:var(--green-dk)}
.crd .ev-fact__ico .cr-ico{width:18px;height:18px}
.crd .ev-fact dd{font-weight:700;font-size:15.5px;line-height:1.42}
.crd .ev-map{position:relative;isolation:isolate;overflow:hidden;min-height:300px;border-radius:20px;background:var(--green) url('../design/texture-felt.webp') center/360px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.crd .ev-map svg{position:absolute;inset:0;width:100%;height:100%}
.crd .ev-map__open{position:absolute;z-index:2;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:999px;background:var(--cream);color:var(--ink);font-weight:900;font-size:12.5px;text-decoration:none;box-shadow:-2px 2px 0 rgba(0,0,0,.28);transition:transform .15s}
.crd .ev-map__open:hover{transform:translate(-1px,1px)}
.crd .ev-map__open .cr-ico{width:14px;height:14px}
.crd .ev-visit__cta{position:relative;z-index:1;margin-top:30px}
.crd .ev-visit__cta .cr-ico{transition:transform .2s}
.crd .ev-visit__cta:hover .cr-ico{transform:translateX(3px)}

/* Curtains */
.crd .ev-curtain--teal{background-image:url('../design/curtain-teal.jpg')}
.crd .ev-curtain--red{background-image:url('../design/curtain-red.jpg')}
.crd .ev-curtain--olive{background-image:url('../design/curtain-olive.jpg')}

/* Season artwork slide */
.crd .ev-slide--msart{background:var(--green) url('../design/texture-felt.webp') center/360px}
.crd .ev-slide--msart::before{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(110% 120% at 12% 0%,rgba(255,255,255,.18),rgba(255,255,255,0) 55%)}
.crd .ev-slide--msart::after{content:'';position:absolute;z-index:0;right:-6%;top:50%;width:60%;aspect-ratio:1;transform:translateY(-56%);border-radius:50%;background:radial-gradient(rgba(255,188,41,.8) 2px,rgba(255,188,41,0) 3px) 0 0/14px 14px;-webkit-mask:radial-gradient(closest-side,#000 52%,transparent);mask:radial-gradient(closest-side,#000 52%,transparent)}
.crd .ev-mslogo{position:absolute;z-index:2;left:104px;top:9%;height:54%;width:auto;max-width:none;border-radius:14px;box-shadow:-6px 6px 0 rgba(0,0,0,.2)}
.crd .ev-msline{position:absolute;z-index:2;left:108px;top:66%;font-size:clamp(22px,2.6vw,34px);color:var(--gold);transform:rotate(-4deg);transform-origin:left center;white-space:nowrap}
.crd .ev-mschar{position:absolute;z-index:1;right:96px;bottom:15%;height:78%;width:auto;max-width:none;transform:rotate(4deg);filter:drop-shadow(-7px 8px 0 rgba(0,0,0,.22))}

/* Tags and stub extras */
.crd .cr-chip--sold{background:var(--ink);color:var(--cream)}
.crd .ev-sched{font-weight:900;font-size:13.5px;color:var(--muted)}
.crd .ev-stub__label{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crd .ev-stub__label .cr-chip{letter-spacing:.15em}
.crd .ev-when__cit{font-weight:700;color:var(--green)}
.crd .ev-buy--wait{filter:drop-shadow(-3px 3px 0 #A29F92)}
.crd .ev-buy--wait:hover{filter:drop-shadow(-2px 2px 0 #A29F92)}
.crd .ev-buy--wait .ev-buy__body{background:#E7E3D2;color:var(--ink)}
.crd .ev-buy--wait .ev-buy__body::before{border-left-color:rgba(46,45,42,.35)}

/* Pick a date */
.crd .ev-pick{margin-top:56px}
.crd .ev-pick__head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.crd .ev-pick__titles{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.crd .ev-pick__sub{font-size:15px;color:var(--muted)}
.crd .ev-pick__open{min-height:48px;padding:0 20px;font-size:14.5px}
.crd .ev-pick__more,.crd .ev-pick__openm{display:none}
.crd .ev-pick__close{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;border:0;background:none;font-weight:900;font-size:14.5px;color:var(--ox);cursor:pointer}
.crd .ev-pick__close .cr-ico{width:16px;height:16px}
.crd .ev-pick__close:hover{text-decoration:underline;text-underline-offset:3px}
.crd .ev-tiles{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-top:22px}
@media (max-width:1199px){.crd .ev-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:900px) and (max-width:1199px){.crd .ev-arttype{left:84px;max-width:46%;font-size:38px}.crd .ev-artchar{right:78px;bottom:18%;height:70%}.crd .ev-mslogo{left:84px;top:12%;height:44%}.crd .ev-msline{display:none}.crd .ev-mschar{right:78px;bottom:18%;height:70%}}
@media (min-width:900px) and (max-width:999px){.crd .ev-arttype{font-size:34px}}
.crd .ev-tile{position:relative;display:flex;flex-direction:column;align-items:center;min-height:128px;padding:15px 4px 12px;border-radius:16px;border:1.5px solid rgba(46,45,42,.22);background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;color:var(--ink);cursor:pointer;transition:border-color .15s,transform .15s,background .15s}
.crd .ev-tile:hover{border-color:var(--ink);transform:translateY(-2px)}
.crd .ev-tile__dow,.crd .ev-tile__m{font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.18em;color:var(--muted)}
.crd .ev-tile__d{margin:6px 0 5px;font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:32px;line-height:1}
.crd .ev-tile__st{display:inline-flex;align-items:center;gap:5px;margin-top:auto;padding-top:10px;font-weight:900;font-size:11px;line-height:1;white-space:nowrap}
.crd .ev-tile__st i{display:block;width:7px;height:7px;border-radius:50%;background:currentColor}
.crd .ev-tile__st--ok{color:var(--green)}
.crd .ev-tile__st--few{color:#9A5B00}
.crd .ev-tile__so{margin-top:auto;padding-top:9px;font-weight:900;font-size:9.5px;line-height:1;letter-spacing:.14em;text-transform:uppercase}
.crd .ev-tile__wl{margin-top:4px;font-weight:700;font-size:11px;line-height:1;text-decoration:underline;text-underline-offset:2px}
.crd .ev-tile.is-sold{background:#F1EDDA;border-style:dashed;border-color:rgba(46,45,42,.32);color:rgba(46,45,42,.55)}
.crd .ev-tile.is-sold .ev-tile__dow,.crd .ev-tile.is-sold .ev-tile__m{color:rgba(46,45,42,.45)}
.crd .ev-tile.is-sel{background:var(--ox);border-color:var(--ox);color:#FFF6E0;box-shadow:-3px 3px 0 var(--ox-dk);transform:none}
.crd .ev-tile.is-sel .ev-tile__dow,.crd .ev-tile.is-sel .ev-tile__m{color:rgba(255,246,224,.78)}
.crd .ev-tile.is-sel .ev-tile__st{color:#FFD772}
.crd .ev-tile.is-sel.is-sold{background:#E7E3D2;border:2px solid var(--ink);color:var(--ink);box-shadow:-3px 3px 0 rgba(46,45,42,.35)}
.crd .ev-tile.is-sel.is-sold .ev-tile__dow,.crd .ev-tile.is-sel.is-sold .ev-tile__m{color:var(--muted)}
.crd .ev-calcard{margin-top:22px;padding:24px 24px 22px;border-radius:24px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.16);box-shadow:0 30px 60px -44px rgba(46,45,42,.6),0 8px 18px -14px rgba(46,45,42,.2)}
.crd .ev-calcard__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.crd .ev-calcard__month{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:23px;line-height:1;letter-spacing:.02em;text-transform:uppercase}
.crd .ev-mnav{width:44px;height:44px;padding:0;border-radius:12px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s}
.crd .ev-mnav:hover:not(:disabled){background:var(--ink);color:var(--cream)}
.crd .ev-mnav:disabled{border-color:rgba(46,45,42,.2);color:rgba(46,45,42,.3);cursor:default}
.crd .ev-calcard__dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:20px;font-weight:900;font-size:10.5px;letter-spacing:.14em;text-align:center;color:var(--muted)}
.crd .ev-calcard__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:8px}
.crd .ev-cell{display:flex;flex-direction:column;align-items:center;gap:9px;width:100%;min-height:78px;padding:13px 0 10px;border-radius:14px;border:1.5px solid var(--ink);background:#fff;color:var(--ink)}
.crd button.ev-cell{cursor:pointer;transition:transform .15s,background .15s}
.crd button.ev-cell:hover{transform:translateY(-1px)}
.crd .ev-cell__n{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:19px;line-height:1}
.crd .ev-cell__s{font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.04em;white-space:nowrap}
.crd .ev-cell__s--ok{color:var(--green)}
.crd .ev-cell__s--few{color:#9A5B00}
.crd .ev-cell__s--wait{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.crd .ev-cell.is-off{border-color:rgba(46,45,42,.1);background:repeating-linear-gradient(135deg,rgba(46,45,42,.05) 0 5px,rgba(46,45,42,0) 5px 10px);color:rgba(46,45,42,.36)}
.crd .ev-cell.is-past{border-color:rgba(46,45,42,.1);background:transparent;color:rgba(46,45,42,.3)}
.crd .ev-cell.is-sold{border-style:dashed;border-color:rgba(46,45,42,.35);background:#F1EDDA;color:var(--muted)}
.crd .ev-cell.is-sel{border-color:var(--ox);background:var(--ox);color:#FFF6E0;box-shadow:-2px 2px 0 var(--ox-dk)}
.crd .ev-cell.is-sel .ev-cell__s{color:#FFD772}
.crd .ev-cell.is-sel.is-sold{border:2px solid var(--ink);background:#E7E3D2;color:var(--ink);box-shadow:-2px 2px 0 rgba(46,45,42,.35)}
.crd .ev-cell.is-sel.is-sold .ev-cell__s{color:var(--ink)}
.crd .ev-cell.is-blank{border:0;background:none}
.crd .ev-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:18px;font-size:13px;color:var(--muted)}
.crd .ev-legend span{display:inline-flex;align-items:center;gap:8px}
.crd .ev-legend a{font-weight:900;color:var(--ox);text-decoration:none}
.crd .ev-legend a:hover{text-decoration:underline;text-underline-offset:3px}
.crd .ev-lg{display:inline-block;width:14px;height:14px;border-radius:4px}
.crd .ev-lg--on{border:1.5px solid var(--ink);background:#fff}
.crd .ev-lg--sold{border:1.5px dashed rgba(46,45,42,.4);background:#F1EDDA}
.crd .ev-lg--off{border:1px solid rgba(46,45,42,.15);background:repeating-linear-gradient(135deg,rgba(46,45,42,.14) 0 3px,rgba(46,45,42,0) 3px 6px)}
.crd .ev-calnote{margin-top:10px;font-size:13px;line-height:1.45;color:var(--muted)}
.crd .ev-pickstub{display:none}

/* Regulars */
.crd .ev-regs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.crd .ev-reg{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 16px 20px;border-radius:22px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.14);box-shadow:0 20px 36px -30px rgba(46,45,42,.5);text-align:center}
.crd .ev-reg__pic{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;width:104px;height:104px;border-radius:50%}
.crd .ev-reg__pic::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(0,0,0,.22) 1px,rgba(0,0,0,0) 1.7px) 0 0/5px 5px,radial-gradient(120% 100% at 15% 0%,rgba(255,255,255,.24),rgba(255,255,255,0) 58%)}
.crd .ev-reg__pic img{width:86%;height:auto;margin-top:34%;filter:drop-shadow(-3px 4px 0 rgba(0,0,0,.18))}
.crd .ev-reg__pic--green{background-color:var(--green)}
.crd .ev-reg__pic--ox{background-color:var(--ox)}
.crd .ev-reg__pic--ox img{width:112%;margin-top:22%}
.crd .ev-reg__pic--tba{border:2px dashed rgba(46,45,42,.32);background:rgba(245,240,211,.6);font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:18px;letter-spacing:.08em;color:rgba(46,45,42,.5)}
.crd .ev-reg__pic--tba::before{display:none}
.crd .ev-reg__name{font-size:20px;line-height:1.02}

/* House note + Citizens */
.crd .ev-solo .ev-house{margin-top:56px}
.crd .ev-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:56px;align-items:stretch}
.crd .ev-pair .ev-house{margin-top:0}
.crd .ev-cit{position:relative;display:flex;align-items:center;gap:22px;padding:22px 24px 22px 20px;overflow:hidden;border-radius:22px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.16);box-shadow:0 24px 44px -34px rgba(46,45,42,.6)}
.crd .ev-cit::after{content:'';position:absolute;inset:7px;border:1px solid rgba(79,116,74,.26);border-radius:16px;pointer-events:none}
.crd .ev-pass{position:relative;flex:none;display:grid;place-items:center;width:64px;height:88px;margin:4px 2px 4px 6px;border-radius:5px 9px 9px 5px;background:linear-gradient(90deg,var(--green-dk) 0 7px,var(--green) 7px);box-shadow:-3px 3px 0 #263D23,0 14px 20px -12px rgba(0,0,0,.5);transform:rotate(-7deg)}
.crd .ev-pass::before{content:'';position:absolute;inset:6px 5px 6px 12px;border:1px solid rgba(255,188,41,.55);border-radius:4px}
.crd .ev-pass img{width:30px;margin-left:5px;filter:sepia(1) saturate(2.6) hue-rotate(-12deg) brightness(.97)}
.crd .ev-cit__copy{position:relative;z-index:1;min-width:0}
.crd .ev-cit__title{font-size:24px;line-height:1}
.crd .ev-cit__text{margin-top:7px;font-size:14.5px;line-height:1.45;color:var(--muted)}
.crd .ev-cit__btn{min-height:44px;margin-top:14px;padding:0 18px;font-size:14px}

/* Mobile buy bar */
.crd .ev-buybar{display:none}

/* Footer */
.crd .cr-footer{position:relative;isolation:isolate;overflow:hidden;padding:76px 0 34px;background:var(--ink-dk);color:var(--ivory)}
.crd .cr-footer__mark{position:absolute;z-index:-1;right:-70px;bottom:-120px;width:430px;opacity:.06;pointer-events:none}
.crd .cr-footer__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:start}
.crd .cr-footer__logo{width:280px}
.crd .cr-footer__addr{margin-top:22px;font-style:normal;font-size:16px;line-height:1.65;color:rgba(245,240,211,.78)}
.crd .cr-footer__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px}
.crd .cr-footer__links a{width:fit-content;padding:6px 0;font-size:16px;line-height:1.35;text-decoration:none;color:var(--ivory);background:linear-gradient(var(--gold),var(--gold)) 0 calc(100% - 4px)/0 2px no-repeat;transition:background-size .25s}
.crd .cr-footer__links a:hover{color:var(--ivory);background-size:100% 2px}
.crd .cr-ftform{display:flex;flex-direction:column;gap:10px}
.crd .cr-ftform__label{font-weight:900;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,240,211,.72)}
.crd .cr-ftform__row{display:flex;gap:8px}
.crd .cr-ftform__input{flex:1;min-width:0;height:52px;padding:0 16px;border-radius:12px;border:1.5px solid rgba(245,240,211,.28);background:rgba(245,240,211,.05);color:var(--ivory);font-size:15px}
.crd .cr-ftform__input::placeholder{color:rgba(245,240,211,.5)}
.crd .cr-ftform__input[aria-invalid="true"]{border-color:var(--gold)}
.crd .cr-ftform__input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,188,41,.2)}
.crd .cr-ftform__btn{flex:none;height:52px;padding:0 20px;border:0;border-radius:12px;background:var(--gold);color:var(--ink);font-weight:900;font-size:15px;cursor:pointer;box-shadow:-3px 3px 0 var(--gold-dk);transition:transform .15s,box-shadow .15s}
.crd .cr-ftform__btn:hover{transform:translate(-1px,1px);box-shadow:-2px 2px 0 var(--gold-dk)}
.crd .cr-ftform__note{font-size:13.5px;color:rgba(245,240,211,.72)}
.crd .cr-ftform__done{display:flex;align-items:center;gap:10px;min-height:52px;font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:20px;color:var(--gold)}
.crd .cr-footer__base{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:64px;padding-top:22px;border-top:1px solid rgba(245,240,211,.14);font-size:13.5px;color:rgba(245,240,211,.62)}
.crd .cr-footer__legal{display:flex;gap:22px}
.crd .cr-footer__legal a{padding:6px 0;text-decoration:none}
.crd .cr-footer__legal a:hover{color:var(--ivory)}

/* Menu */
.crd .cr-menu{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:rgba(36,35,33,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.crd .cr-menu__panel{background:var(--cream);padding-bottom:30px;box-shadow:0 30px 60px -30px rgba(0,0,0,.5);animation:cr-drop .35s cubic-bezier(.2,.75,.2,1)}
@keyframes cr-drop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.crd .cr-menu__bar{display:flex;align-items:center;gap:10px;min-height:70px;border-bottom:1.5px solid var(--ink)}
.crd .cr-menu__nav{display:flex;flex-direction:column;margin-top:6px}
.crd .cr-menu__item{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:24px 0 21px;border-bottom:1px solid var(--line);text-decoration:none}
.crd .cr-menu__label{flex:none;font-size:clamp(32px,8.6vw,46px);line-height:.95;white-space:nowrap}
.crd .cr-menu__desc{flex:1;min-width:0;font-size:15px;line-height:1.3;color:var(--muted);text-align:right}
.crd .cr-menu__cta{width:100%;margin-top:26px}

@media (max-width:1199px){
  .crd .ev-grid{grid-template-columns:minmax(0,1fr) 380px;column-gap:40px}
  .crd .ev-title{font-size:54px}
}
@media (max-width:1099px){
  .crd .cr-nav a{padding:10px 11px;font-size:15px}
  .crd .cr-brand__logo{width:200px}
}
@media (max-width:899px){
  .crd .cr-header__inner{min-height:70px;gap:10px}
  .crd .cr-burger{display:flex}
  .crd .cr-brand{flex:1;align-items:center;gap:5px}
  .crd .cr-brand__logo{width:158px}
  .crd .cr-tagline{padding-left:0;font-size:7.5px;letter-spacing:.2em}
  .crd .cr-nav,.crd .cr-search{display:none}
  .crd .cr-whatson{height:42px;padding:0 14px 0 12px;margin-left:0;gap:8px;font-size:13px;box-shadow:none}
  .crd .cr-whatson:hover{transform:none;box-shadow:none}
  .crd .cr-whatson .cr-ico{width:16px;height:16px}
  .crd .ev-back{display:none}
  .crd .ev-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "panel" "body";margin-top:0;padding-bottom:56px}
  .crd .ev-panel{position:static;margin-top:22px}
  .crd .ev-car{margin-inline:calc(var(--gut) * -1);border-radius:0;box-shadow:none}
  .crd .ev-car::after{display:none}
  .crd .ev-flagwrap{top:14px;right:14px}
  .crd .ev-flag{height:26px;padding:0 12px 0 9px;font-size:9.5px}
  .crd .ev-carbtn{width:44px;height:44px;margin-top:-36px}
  .crd .ev-carbtn .cr-ico{width:16px;height:16px}
  .crd .ev-carbtn--prev{left:12px}
  .crd .ev-carbtn--next{right:12px}
  .crd .ev-proof{gap:12px;padding:56px 16px 12px}
  .crd .ev-stars svg{width:14px;height:14px}
  .crd .ev-quote{margin-top:5px;font-size:15px}
  .crd .ev-quote__src{display:block;margin:4px 0 0;font-size:10px}
  .crd .ev-dot{width:32px;height:44px}
  .crd .ev-dot i{width:7px;height:7px}
  .crd .ev-dot.is-on i{width:18px}
  .crd .ev-play{width:40px;height:40px;margin-left:4px;padding:0;justify-content:center;border-radius:10px}
  .crd .ev-play span{display:none}
  .crd .ev-play svg{width:11px;height:11px}
  .crd .ev-vid{gap:10px}
  .crd .ev-vid__btn{width:64px;height:64px;box-shadow:-3px 3px 0 var(--gold-dk),0 0 0 8px rgba(255,188,41,.16)}
  .crd .ev-vid__btn svg{width:24px;height:24px}
  .crd .ev-vid__label{font-size:10px}
  .crd .ev-arttype{left:72px;top:13%;font-size:30px}
  .crd .ev-artscript{left:64px;top:50%;font-size:20px}
  .crd .ev-artchar{right:60px;bottom:21%;height:56%}
  .crd .ev-ticket__top{padding:24px 22px 24px}
  .crd .ev-ticket__top::before{height:6px}
  .crd .ev-ticket__stub{padding:22px 22px 24px}
  .crd .ev-ticket__stub::before{left:18px;right:18px}
  .crd .ev-title{margin-top:14px;font-size:46px}
  .crd .ev-hook{margin-top:14px;font-size:16px}
  .crd .ev-badge{width:62px}
  .crd .ev-badge__d{font-size:27px}
  .crd .ev-when{gap:14px}
  .crd .ev-when__main{font-size:16.5px}
  .crd .ev-when__sub{font-size:14px}
  .crd .ev-panel .ev-buy,.crd .ev-panel .ev-facts{display:none}
  .crd .ev-sec{margin-top:46px}
  .crd .ev-h2{font-size:26px}
  .crd .ev-about__lede{margin-top:14px;font-size:17.5px}
  .crd .ev-about__tbc{margin-top:14px;font-size:15.5px}
  .crd .ev-skel{gap:10px;margin-top:16px}
  .crd .ev-about__more{font-size:15.5px}
  .crd .ev-acts{gap:10px;margin-top:18px}
  .crd .ev-act{gap:14px;padding:12px 16px 12px 12px;border-radius:18px}
  .crd .ev-act__pic{width:70px;height:70px}
  .crd .ev-act__pic .cr-art__ini{font-size:24px}
  .crd .ev-act__pic--tba{font-size:14px}
  .crd .ev-act__name{font-size:19px}
  .crd .ev-act__bio{font-size:13.5px}
  .crd .ev-house{align-items:flex-start;gap:14px;padding:16px 18px 16px 16px;border-radius:18px}
  .crd .ev-house__mark{width:44px;height:44px}
  .crd .ev-house__mark img{width:24px}
  .crd .ev-house p{font-size:15px}
  .crd .ev-also{gap:10px;margin-top:18px}
  .crd .ev-card{border-radius:16px}
  .crd .ev-card__art{height:106px}
  .crd .ev-typetile{gap:3px;padding:0 8px}
  .crd .ev-typetile__a{font-size:20px}
  .crd .ev-typetile__b{font-size:18px}
  .crd .ev-card__body{padding:12px 12px 14px}
  .crd .ev-card__name{font-size:14.5px}
  .crd .ev-card__when{margin-top:4px;font-size:12.5px}
  .crd .ev-card__go{display:none}
  .crd .ev-visit{margin-top:46px;padding:26px 20px 24px;border-radius:22px}
  .crd .ev-visit::after{inset:7px;border-radius:16px}
  .crd .ev-visit__grid{grid-template-columns:minmax(0,1fr);gap:22px;margin-top:20px}
  .crd .ev-fact{grid-template-columns:118px minmax(0,1fr);gap:10px;padding:12px 0}
  .crd .ev-fact dt{gap:10px;font-size:9.5px;letter-spacing:.16em}
  .crd .ev-fact__ico{width:32px;height:32px;border-radius:10px}
  .crd .ev-fact__ico .cr-ico{width:16px;height:16px}
  .crd .ev-fact dd{font-size:14.5px}
  .crd .ev-map{min-height:210px;border-radius:16px}
  .crd .ev-visit__cta{width:100%;margin-top:22px}
  .crd .ev-buybar{position:sticky;bottom:0;z-index:40;display:block}
  .crd .ev-buybar__inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px var(--gut) calc(12px + env(safe-area-inset-bottom,0px));background:rgba(255,253,246,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1.5px solid var(--ink);box-shadow:0 -18px 30px -20px rgba(46,45,42,.45)}
  .crd .ev-buybar__when{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:17px;line-height:1.05;letter-spacing:.01em}
  .crd .ev-buybar__price{margin-top:5px;font-size:13.5px;line-height:1.3;color:var(--muted)}
  .crd .ev-buybar .ev-buy{width:auto;flex:none;margin-top:0}
  .crd .ev-buybar .ev-buy__body{height:52px;padding:0 18px 0 46px;font-size:15.5px}
  .crd .ev-buybar .ev-buy__body::before{left:34px;top:11px;bottom:11px}
  .crd .ev-buybar .ev-buy__ico{left:11px;width:17px;height:17px;margin-top:-8.5px}
  .crd .ev-buybar .ev-buy__arrow{display:none}
  .crd .cr-footer{padding:52px 0 28px}
  .crd .cr-footer__grid{grid-template-columns:minmax(0,1fr);gap:34px}
  .crd .cr-footer__logo{width:228px}
  .crd .cr-footer__addr{margin-top:16px;font-size:15px}
  .crd .cr-footer__links{gap:0 18px}
  .crd .cr-footer__links a{font-size:15.5px}
  .crd .cr-footer__base{flex-direction:column;align-items:flex-start;gap:10px;margin-top:40px}
  .crd .cr-footer__mark{width:260px;right:-60px;bottom:-60px}
  .crd .ev-mslogo{left:66px;top:9%;height:52%;border-radius:9px;box-shadow:-3px 3px 0 rgba(0,0,0,.2)}
  .crd .ev-msline{display:none}
  .crd .ev-mschar{right:62px;bottom:21%;height:64%}
  .crd .ev-panel.is-season .ev-ticket__stub{display:none}
  .crd .ev-panel.is-season .ev-ticket__top{border-radius:24px;-webkit-mask:none;mask:none}
  .crd .ev-pick{margin-top:34px}
  .crd .ev-pick__titles{gap:10px}
  .crd .ev-pick__sub,.crd .ev-pick__open{display:none}
  .crd .ev-pick__more{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;font-weight:900;font-size:14px;color:var(--ox);cursor:pointer}
  .crd .ev-pick__more .cr-ico{width:15px;height:15px}
  .crd .ev-pick__openm{display:inline-flex;width:100%;min-height:50px;margin-top:14px;font-size:14.5px}
  .crd .ev-tiles{display:flex;gap:8px;overflow-x:auto;margin:16px calc(var(--gut) * -1) 0;padding:4px var(--gut) 8px;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);scrollbar-width:none}
  .crd .ev-tiles::-webkit-scrollbar{display:none}
  .crd .ev-tile{flex:none;width:82px;min-height:116px;padding:13px 4px 11px;border-radius:14px;scroll-snap-align:start}
  .crd .ev-tile:hover{transform:none}
  .crd .ev-tile__d{font-size:28px}
  .crd .ev-calcard{margin-top:16px;padding:16px 14px 16px;border-radius:20px}
  .crd .ev-calcard__month{font-size:19px}
  .crd .ev-mnav{width:42px;height:42px}
  .crd .ev-calcard__dow{gap:5px;margin-top:14px}
  .crd .ev-calcard__grid{gap:5px}
  .crd .ev-cell{gap:6px;min-height:58px;padding:10px 0 8px;border-radius:10px}
  .crd .ev-cell__n{font-size:16px}
  .crd .ev-cell__s{font-size:8.5px;letter-spacing:0}
  .crd .ev-legend{gap:6px 14px;margin-top:14px;font-size:12px}
  .crd .ev-calnote{font-size:12px}
  .crd .ev-pickstub{position:relative;display:block;margin-top:16px;padding:18px 18px 18px;border-radius:18px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1.5px solid var(--ink);box-shadow:-3px 3px 0 rgba(46,45,42,.2)}
  .crd .ev-pickstub__chip{position:absolute;top:-11px;right:16px}
  .crd .ev-regs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px}
  .crd .ev-reg{gap:10px;padding:14px 6px 14px;border-radius:16px}
  .crd .ev-reg__pic{width:72px;height:72px}
  .crd .ev-reg__pic--tba{font-size:14px}
  .crd .ev-reg__name{font-size:14px}
  .crd .ev-solo .ev-house{margin-top:40px}
  .crd .ev-pair{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:40px}
  .crd .ev-cit{align-items:flex-start;gap:16px;padding:18px 18px 18px 16px;border-radius:18px}
  .crd .ev-cit::after{inset:6px;border-radius:13px}
  .crd .ev-pass{width:56px;height:76px}
  .crd .ev-pass img{width:26px}
  .crd .ev-cit__title{font-size:21px}
  .crd .ev-cit__text{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .crd .cr-status i,.crd .cr-menu__panel{animation:none}
  .crd .ev-slide,.crd .ev-buy,.crd .ev-card,.crd .cr-btn,.crd .ev-carbtn,.crd .ev-vid__btn,.crd .ev-tile,.crd .ev-cell{transition:none}
  .crd .ev-slide--video.is-playing ~ .ev-progress i{animation:none;width:35%}
}

/* Global nav (wireframe 3a): search panel, compact scrolled header, hamburger under 960px, search + sign-up in the menu */
.crd .cr-search{background:transparent;padding:0;color:var(--ink);cursor:pointer;font:inherit}
.crd .cr-search.is-on{background:var(--ink);color:var(--cream)}
.crd .cr-whatson__x{display:none}
.crd .cr-menu{overflow-y:auto}
.crd .cr-sp{border-top:1px solid var(--line);background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;box-shadow:0 34px 50px -36px rgba(46,45,42,.55);animation:cr-drop .3s cubic-bezier(.2,.75,.2,1)}
.crd .cr-sp > .cr-wrap{padding:26px 0 30px}
.crd .cr-sp__row{display:flex;align-items:center;gap:12px}
.crd .cr-sp__field{position:relative;display:block;flex:1;min-width:0}
.crd .cr-sp__ico{position:absolute;left:20px;top:50%;width:22px;height:22px;margin-top:-11px;color:var(--muted);pointer-events:none}
.crd .cr-sp__input{display:block;width:100%;height:64px;padding:0 20px 0 56px;border-radius:16px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);font:inherit;font-size:19px;-webkit-appearance:none;appearance:none}
.crd .cr-sp__input::placeholder{color:#8B887E}
.crd .cr-sp__input::-webkit-search-cancel-button,.crd .cr-ms__input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.crd .cr-sp__input:focus{outline:none;box-shadow:0 0 0 4px rgba(255,188,41,.5)}
.crd .cr-sp__close{flex:none;display:inline-flex;align-items:center;gap:8px;height:64px;padding:0 22px;border-radius:16px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:900;font-size:15px;cursor:pointer;transition:background .2s,color .2s}
.crd .cr-sp__close:hover{background:var(--ink);color:var(--cream)}
.crd .cr-sp__close .cr-ico{width:16px;height:16px}
.crd .cr-sp__meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:22px}
.crd .cr-sp__label{font-weight:900;font-size:11.5px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.crd .cr-sp__all{display:inline-flex;align-items:center;gap:6px;padding:8px 0;margin:-8px 0;font-weight:900;font-size:14px;color:var(--green);text-decoration:none;white-space:nowrap}
.crd .cr-sp__all:hover{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.crd .cr-sp__all .cr-ico{width:15px;height:15px}
.crd .cr-sp__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.crd .cr-sp__item{display:flex;align-items:center;gap:14px;min-width:0;padding:10px 16px 10px 10px;border-radius:16px;border:1px solid rgba(46,45,42,.16);background:#FFFEF9;color:var(--ink);text-decoration:none;box-shadow:0 14px 26px -22px rgba(46,45,42,.5);transition:border-color .2s,transform .2s}
.crd .cr-sp__item:hover{color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}
.crd .cr-sp__art{position:relative;isolation:isolate;overflow:hidden;flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:12px;background-color:var(--ink);color:var(--ivory)}
.crd .cr-sp__art::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(0,0,0,.22) 1px,rgba(0,0,0,0) 1.7px) 0 0/5px 5px,radial-gradient(120% 100% at 15% 0%,rgba(255,255,255,.22),rgba(255,255,255,0) 58%)}
.crd .cr-sp__art--ox{background-color:var(--ox)}
.crd .cr-sp__art--blue{background-color:var(--blue)}
.crd .cr-sp__art--green{background-color:var(--green)}
.crd .cr-sp__art--gold{background-color:var(--gold);color:var(--ink)}
.crd .cr-sp__art--sage{background-color:var(--sage);color:var(--ink)}
.crd .cr-sp__art--ms{background:var(--green) url('../design/tile-main-stage.jpg') center/cover}
.crd .cr-sp__art--ms::before{display:none}
.crd .cr-sp__ini{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:21px;line-height:1;letter-spacing:.02em;text-shadow:-1px 1px 0 rgba(0,0,0,.3),-2px 2px 0 rgba(0,0,0,.22)}
.crd .cr-sp__art--gold .cr-sp__ini,.crd .cr-sp__art--sage .cr-sp__ini{text-shadow:-1px 1px 0 rgba(255,255,255,.4),-2px 2px 0 rgba(255,255,255,.22)}
.crd .cr-sp__txt{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.crd .cr-sp__title{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:15.5px;line-height:1.08;letter-spacing:.015em}
.crd .cr-sp__when{font-size:13px;line-height:1.35;color:var(--muted)}
.crd .cr-sp__go{flex:none;width:18px;height:18px;color:var(--muted);transition:transform .2s,color .2s}
.crd .cr-sp__item:hover .cr-sp__go{color:var(--ink);transform:translateX(2px)}
.crd .cr-sp__empty{margin-top:14px;padding:20px 22px;border-radius:16px;border:1.5px dashed rgba(46,45,42,.32);font-size:15.5px;line-height:1.5;color:var(--muted)}
.crd .cr-sp__empty a{font-weight:900;color:var(--green)}
.crd .cr-ms{margin-top:16px}
.crd .cr-ms__field{position:relative;display:block}
.crd .cr-ms__field .cr-sp__ico{left:16px;width:20px;height:20px;margin-top:-10px}
.crd .cr-ms__input{display:block;width:100%;height:54px;padding:0 16px 0 46px;border-radius:14px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);font:inherit;font-size:16px;-webkit-appearance:none;appearance:none}
.crd .cr-ms__input::placeholder{color:#8B887E}
.crd .cr-ms__input:focus{outline:none;box-shadow:0 0 0 4px rgba(255,188,41,.5)}
.crd .cr-ms__results{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.crd .cr-ms__results .cr-sp__label{margin-bottom:2px}
.crd .cr-ms__results .cr-sp__item{padding:8px 14px 8px 8px}
.crd .cr-ms__results .cr-sp__art{width:46px;height:46px;border-radius:10px}
.crd .cr-ms__results .cr-sp__ini{font-size:17px}
.crd .cr-ms__results .cr-sp__empty{margin-top:0;padding:16px 18px;font-size:14.5px}
.crd .cr-msign{display:flex;flex-direction:column;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.crd .cr-msign__label{font-weight:900;font-size:11px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crd .cr-msign__row{display:flex;gap:8px}
.crd .cr-msign__input{flex:1;min-width:0;height:52px;padding:0 16px;border-radius:12px;border:1.5px solid rgba(46,45,42,.4);background:#fff;color:var(--ink);font:inherit;font-size:15px}
.crd .cr-msign__input::placeholder{color:#8B887E}
.crd .cr-msign__input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(255,188,41,.5)}
.crd .cr-msign__input[aria-invalid="true"]{border-color:var(--ox)}
.crd .cr-msign__btn{flex:none;height:52px;padding:0 20px;border:0;border-radius:12px;background:var(--ink);color:var(--cream);font-weight:900;font-size:15px;cursor:pointer;box-shadow:-3px 3px 0 rgba(46,45,42,.28)}
.crd .cr-msign__note{font-size:13.5px;color:var(--ox)}
.crd .cr-msign__done{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:20px;line-height:1;color:var(--green)}
@media (min-width:960px){
  .crd .cr-header__inner{transition:min-height .25s ease}
  .crd .cr-brand__logo{transition:width .25s ease}
  .crd .cr-header.is-compact .cr-header__inner{min-height:66px}
  .crd .cr-header.is-compact .cr-brand__logo{width:176px}
  .crd .cr-header.is-compact .cr-tagline{display:none}
  .crd .cr-header.is-compact .cr-whatson{background:var(--ox);color:#FFF6E0;box-shadow:-3px 3px 0 var(--ox-dk)}
  .crd .cr-header.is-compact .cr-whatson:hover{color:#FFF6E0;box-shadow:-2px 2px 0 var(--ox-dk)}
  .crd .cr-header.is-compact .cr-whatson__x{display:inline}
}
@media (min-width:960px) and (max-width:1099px){
  .crd .cr-sp__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:959px){
  .crd .cr-header__inner{min-height:70px;gap:10px}
  .crd .cr-burger{display:flex}
  .crd .cr-brand{flex:1;align-items:center;gap:5px}
  .crd .cr-brand__logo{width:158px}
  .crd .cr-tagline{padding-left:0;font-size:7.5px;letter-spacing:.2em}
  .crd .cr-nav,.crd .cr-search,.crd .cr-sp{display:none}
  .crd .cr-whatson{height:42px;padding:0 14px 0 12px;margin-left:0;gap:8px;font-size:13px;background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
  .crd .cr-whatson:hover{color:var(--ink);transform:none;box-shadow:inset 0 0 0 1.5px var(--ink)}
  .crd .cr-whatson .cr-ico{width:16px;height:16px}
}
@media (prefers-reduced-motion:reduce){
  .crd .cr-sp,.crd .cr-header__inner,.crd .cr-brand__logo{animation:none;transition:none}
}

/* Green header (Brett, 07 Oct, round 2): the nav takes the core CR green with the New here panel's felt texture; the page stays brand cream with its grain. Cards, panels and footer are unchanged. */
.crd .cr-header{background:var(--green) url('../design/texture-felt.webp') center/360px;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(255,251,234,.08);color:var(--ivory)}
.crd .cr-header .cr-tagline,.crd .cr-menu__bar .cr-tagline{color:rgba(255,251,234,.9)}
.crd .cr-nav a{color:var(--ivory)}
.crd .cr-nav a:hover{background:rgba(255,251,234,.14)}
.crd .cr-nav a[aria-current]{text-decoration-color:var(--gold)}
.crd .cr-burger span{background:var(--ivory)}
.crd .cr-search{border-color:rgba(255,251,234,.6);color:var(--ivory)}
.crd .cr-search:hover,.crd .cr-search.is-on{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.crd .cr-header .cr-whatson{background:var(--cream);color:var(--ink);box-shadow:-3px 3px 0 rgba(0,0,0,.45)}
.crd .cr-header .cr-whatson:hover{color:var(--ink);box-shadow:-2px 2px 0 rgba(0,0,0,.45)}
.crd .cr-menu__bar{position:relative;isolation:isolate;border-bottom:0;color:var(--ivory)}
.crd .cr-menu__bar::before{content:'';position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);background:var(--green) url('../design/texture-felt.webp') center/360px}
.crd .cr-menu__bar .cr-burger{color:var(--ivory)}
.crd .cr-menu__bar .cr-whatson{background:transparent;color:var(--ivory);box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
.crd .cr-menu__bar .cr-whatson:hover{color:var(--ivory);transform:none;box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
.crd .cr-sp{color:var(--ink)}
.crd .cr-header :focus-visible,.crd .cr-menu__bar :focus-visible{outline-color:var(--gold);box-shadow:0 0 0 3px var(--ink-dk)}
.crd .cr-sp :focus-visible{outline-color:var(--ink);box-shadow:0 0 0 3px var(--gold)}
.crd .cr-sp .cr-sp__input:focus-visible{box-shadow:0 0 0 4px rgba(255,188,41,.5)}
@media (min-width:960px){
  .crd .cr-header.is-compact .cr-whatson{background:var(--gold);color:var(--ink);box-shadow:-3px 3px 0 var(--gold-dk)}
  .crd .cr-header.is-compact .cr-whatson:hover{color:var(--ink);box-shadow:-2px 2px 0 var(--gold-dk)}
}
@media (max-width:959px){
  .crd .cr-header .cr-whatson{background:transparent;color:var(--ivory);box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
  .crd .cr-header .cr-whatson:hover{color:var(--ivory);transform:none;box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
}
/* ==== PORT-END ==== */

/* ==== Theme additions — chrome (the same block in every inner page's stylesheet) ==== */

/* Skip link: first thing in <body>, outside .crd, off-screen (no layout) until focused. */
.cr-skip{position:absolute;top:0;left:-9999px;z-index:200}
.cr-skip:focus{left:16px;top:16px;padding:12px 18px;border-radius:12px;background:#FFBC29;color:#2E2D2A;font:900 15px/1.2 'futura-pt','Helvetica Neue',Helvetica,Arial,sans-serif;text-decoration:none}

/* The global nav's parts that wait in the page ([hidden]) for design.js: the menu dialog, the header
   search panel, the menu's search results. */
.crd .cr-menu[hidden],.crd .cr-sp[hidden],.crd .cr-ms__results[hidden]{display:none}

/* Without JS the header's search is a link to What's on's search box (the <noscript> one, a flex
   item of the header row like the button): the button (it opens the panel) needs JS. */
html:not(.cr-js) .crd button.cr-search{display:none}
html:not(.cr-js) .crd .cr-header__inner>noscript{display:contents}

/* Mailing-list forms (footer.php, the menu dialog): the error note and the done state are in the
   page, hidden; design.js shows them. A known subscriber (html.cr-subscribed, set before paint by the
   head script) sees the done states. A staff platform embed (Site settings → Email form embed)
   replaces the form. */
.crd .cr-ftform[hidden]{display:none}
html.cr-subscribed .crd [data-cr-ftform],html.cr-subscribed .crd [data-cr-msign]{display:none}
html.cr-subscribed .crd [data-cr-ftform-done]{display:flex}
html.cr-subscribed .crd [data-cr-msign-done]{display:block}
.crd .cr-ftform__embed,.crd .cr-msign__embed{min-width:0}

/* Focus and anchor jumps clear the sticky header (89px; 71px under 960px; the compact header, 67px,
   keeps the same padding so in-page jumps land where the designs' do). No effect at rest. */
html{scroll-padding-top:89px}

/* Without JS (no html.cr-js): under 960px the nav the burger would open shows as a row under the
   header. */
@media (max-width:959px){
  html{scroll-padding-top:71px}
  html:not(.cr-js) .crd .cr-header__inner{flex-wrap:wrap}
  html:not(.cr-js) .crd .cr-burger{visibility:hidden}
  html:not(.cr-js) .crd .cr-nav{display:flex;flex-wrap:wrap;order:1;flex-basis:100%;margin:-6px 0 8px -11px}
}

/* Art tile from an uploaded image (a show's Art image; cr_art_attrs() puts the URL in --art). */
.crd .cr-art--image{background:var(--green) var(--art) center/cover}
.crd .cr-art--image::before{display:none}

/* Under 360px the burger, the brand and the What's on button do not fit one row (the button was cut
   off at the right edge): the button keeps its calendar icon in a 44px square, and its words stay
   its accessible name. */
@media (max-width:359px){
  .crd .cr-whatson{position:relative;width:44px;height:44px;padding:0;justify-content:center}
  .crd .cr-whatson>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* 360–389px: the burger, the brand and the What's on button need 341px and the row has 320–349px
   (the button ran past the right edge at 360, into the side gutter at 375): the gaps and the
   button's padding tighten under 390px, the wordmark and its tagline under 375px. The 390px design
   is untouched. Same for the open menu's bar. */
@media (min-width:360px) and (max-width:389px){
  .crd .cr-header__inner,.crd .cr-menu__bar{gap:8px}
  .crd .cr-whatson{padding:0 10px 0 9px;gap:6px}
}
@media (min-width:360px) and (max-width:374px){
  .crd .cr-brand__logo{width:148px}
  .crd .cr-tagline{letter-spacing:.14em}
}

/* Touch screens (pointer: coarse): the chrome's small controls get hit areas of at least 44px — an
   invisible ::after around each — without changing what is drawn (the canvas is drawn for a mouse,
   so nothing changes there): footer and legal links (33px tall in the design), the header wordmark
   (30px), What's on (42px on phones), the nav links (43px at 960–1099px), the dock's × (36–40px). */
@media (pointer:coarse){
  .crd .cr-footer__links a,.crd .cr-footer__legal a,.crd .cr-brand,.crd .cr-whatson,.crd .cr-nav a,.crd .cr-close{position:relative}
  .crd .cr-footer__links a::after,.crd .cr-footer__legal a::after{content:'';position:absolute;inset:-6px -6px}
  .crd .cr-brand::after{content:'';position:absolute;inset:-8px 0}
  .crd .cr-whatson::after,.crd .cr-nav a::after{content:'';position:absolute;inset:-2px 0}
  .crd .cr-close::after{content:'';position:absolute;inset:-4px}
}

/* ==== Theme additions — Event page (one-off and season) (the event builder) ==== */

/* Things staff can choose that the design's demo never shows. None of these rules touches the
   markup states the design draws. */

/* Hero slides: a green curtain; art colours other than the design's blue; a photo slide; the video
   playing in its slide (event.js) with the review, the dots and the Pause pill out of the way of its
   own controls (the clip has a real player, so no stand-in progress bar either: is-playing is not set). */
.crd .ev-curtain--green{background-image:url('../design/curtain-green.webp')}
.crd .ev-slide--art.ev-art--ink{background-color:var(--ink)}
.crd .ev-slide--art.ev-art--ox{background-color:var(--ox)}
.crd .ev-slide--art.ev-art--green{background-color:var(--green)}
.crd .ev-slide--art.ev-art--sage{background-color:var(--sage)}
.crd .ev-slide--art.ev-art--gold{background-color:var(--gold)}
.crd .ev-slide--art.ev-art--gold .ev-arttype{color:var(--ink);text-shadow:-2px 2px 0 rgba(255,255,255,.3),-4px 4px 0 rgba(255,255,255,.2)}
.crd .ev-slide--art.ev-art--gold .ev-artscript{color:var(--ox)}
.crd .ev-photo{position:absolute;inset:0;z-index:0;width:100%;height:100%;max-width:none;object-fit:cover}
.crd .ev-vidframe{position:absolute;inset:0;z-index:5;display:block;width:100%;height:100%;border:0;background:#000}
.crd .ev-car.is-video .ev-proof,.crd .ev-car.is-video .ev-flagwrap{display:none}

/* The Flicket selector (flagship shows with the embed flag): a section of the body column. */
.crd .ev-flicket__when{margin-top:12px;font-weight:900;font-size:18.5px;line-height:1.25}
.crd .ev-flicket__frame{margin-top:20px;overflow:hidden;border-radius:24px;background:var(--card);border:1px solid rgba(46,45,42,.16);box-shadow:0 30px 60px -44px rgba(46,45,42,.6)}
.crd .ev-flicket__frame iframe{display:block;width:100%;border:0}
/* The selector waits for event.js (data-ev-src, loaded near the screen); without JS its <noscript>
   twin is the frame. */
html:not(.cr-js) .crd .ev-flicket__frame iframe[data-ev-src]{display:none}
.crd .ev-flicket__fallback{margin-top:12px;font-size:14px;line-height:1.45;color:var(--muted)}
.crd .ev-flicket__fallback a{font-weight:900;color:var(--ox);text-decoration:none}
.crd .ev-flicket__fallback a:hover{text-decoration:underline;text-underline-offset:3px}

/* Without JS (no html.cr-js): the opening slide stands alone (arrows and dots need JS); Play video is
   the <noscript> link to the clip; the date tiles, cells and calendar buttons still work (they
   submit the GET form #ev-datepick); the strip scrolls by hand. */
html:not(.cr-js) .crd .ev-carbtn,html:not(.cr-js) .crd .ev-dot,html:not(.cr-js) .crd button.ev-play{display:none}
.crd a.ev-play{text-decoration:none}
@media (max-width:899px){
  html:not(.cr-js) .crd .ev-pick__more{display:none}
}

/* A night with nothing to buy (cancelled, no Flicket URL): the Get tickets button, the mobile Buy
   bar and the Flicket selector wait [hidden] until event.js shows them for a buyable night. */
.crd .ev-buy[hidden],.crd .ev-buybar[hidden],.crd .ev-flicket[hidden],.crd .ev-sec[hidden]{display:none}

/* Focus and anchor jumps clear the sticky Buy bar too (≤899px, while it shows): Tab never parks a
   control under it (WCAG 2.4.11). event.js keeps --ev-bar-h at the bar's height (it wraps to two
   lines on a narrow phone); 78px until it runs. */
@media (max-width:899px){
  html:has(.ev-buybar:not([hidden])){scroll-padding-bottom:var(--ev-bar-h,calc(78px + env(safe-area-inset-bottom,0px)))}
}

/* 900–1099px (an iPad in landscape, a small laptop): the page is already two columns (the 380px
   panel and a 40px gap), so the body column is only 401–583px wide — the width of the phone layout,
   not the desktop one its sub-layouts were drawn for. The facts' values shrank to 5px, the house
   note ran under the Citizens card, the hero's type met its character and the map cut its own
   label. Here the body keeps the ≤899px sub-layouts. */
@media (min-width:900px) and (max-width:1099px){
  .crd .ev-pair{grid-template-columns:minmax(0,1fr);gap:12px}
  .crd .ev-fact{grid-template-columns:118px minmax(0,1fr);gap:10px}
  .crd .ev-fact dt{gap:10px;letter-spacing:.16em}
  .crd .ev-arttype{left:72px;top:13%;font-size:30px}
  .crd .ev-artchar{right:60px;bottom:21%;height:56%}
}

/* Your visit's facts and map side by side need the desktop body column: under 1200px (a 584px
   column at most) they stack, as on phones, or the map column (215px wide, 640px tall at 1100px)
   cut its own label at the sides. */
@media (min-width:900px) and (max-width:1199px){
  .crd .ev-visit__grid{grid-template-columns:minmax(0,1fr);gap:22px}
}

/* The drawn map crops to fill its box (the SVG's slice): a box much wider than tall (520–899px:
   full width, 210px tall; 900–1199px stacked) cut the "Comedy Republic / 231 Bourke St" label off
   the top. Kept at 2:1 there, the label stays in (390px and 1440px, the design, are untouched). */
@media (min-width:520px) and (max-width:1199px){
  .crd .ev-map{min-height:0;aspect-ratio:2/1}
}

/* A show title with a long word (template-parts/event/page.php sets --ev-word, its length, when
   it is 9 letters or more: "LAUGHTERNOONS", "RELATIONSHIP", "TINSELTOWN") is sized so the word fits
   the ticket (about .7em a letter), never above the design's size; a word that still cannot fit
   breaks rather than running out of the card. The design's own titles carry no --ev-word. */
.crd .ev-ticket__top{container-type:inline-size}
.crd .ev-title{overflow-wrap:break-word}
.crd .ev-title[style*="--ev-word"]{font-size:min(62px,calc(100cqi / (var(--ev-word) * .7)))}
@media (max-width:1199px){
  .crd .ev-title[style*="--ev-word"]{font-size:min(54px,calc(100cqi / (var(--ev-word) * .7)))}
}
@media (max-width:899px){
  .crd .ev-title[style*="--ev-word"]{font-size:min(46px,calc(100cqi / (var(--ev-word) * .7)))}
}

/* Narrow phones (under 390px): the season calendar's day cells get the room the card's padding and
   gaps took (39px wide at 375). */
@media (max-width:389px){
  .crd .ev-calcard{padding-inline:10px}
  .crd .ev-calcard__dow,.crd .ev-calcard__grid{gap:3px}
}

/* Touch screens (pointer: coarse): hit areas of at least 44px around the carousel dots, the
   calendar's month arrows, Open in Maps (already positioned) and the embed's "Open Flicket in a new
   tab" text link, without changing what is drawn. */
@media (pointer:coarse){
  .crd .ev-dot,.crd .ev-mnav{position:relative}
  .crd .ev-dot::after{content:'';position:absolute;inset:-9px -4px}
  .crd .ev-mnav::after{content:'';position:absolute;inset:-2px}
  .crd .ev-map__open::after{content:'';position:absolute;inset:-4px -2px}
  .crd .ev-flicket__fallback a{position:relative}
  .crd .ev-flicket__fallback a::after{content:'';position:absolute;inset:-13px -4px}
}

/* No smooth jumps (skip link, Get tickets → #buy-tickets, #ev-pick) under reduced motion. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

/* ==== Event page restyle (Brett's list, 08 Oct 2026: design system phase 2) ====
   The event page moves onto the system (design-system.md; tokens and components in components.css),
   one group of the list at a time: Frame, Carousel, Ticket panel, Pick a date, About, Visit, Related.
   One template for every show (single-show.php), laid out by its sessions (cr_event_layout(): single,
   night, run); what differs by layout is decided in the markup, not keyed on a body class.
   Every rule here is prefixed .single-show .crd.crd: design-brand.css loads after this sheet and
   styles the event page at .crd.crd, so these take one class more to lead. Two page values, both
   from Brett's list: --ev-gap, the 64px between the page's blocks, and --ev-fs-title, the panel title
   and section headings (32px; 24px at 768px and under, where the type tokens step down). */
.single-show .crd{--ev-gap:64px;--ev-fs-title:32px}
@media (max-width:768px){
  .single-show .crd{--ev-fs-title:24px}
}

/* -- Frame. The header is black, as on home (the felt green goes; the wordmark and nav stay cream).
   The page keeps home's ground: .crd's cream with the grain at 85%, the same rule as design-base.css.
   "← What's on" is a text link (Lato 700 14px, ink, the underline 4px under its words, marigold on
   hover; the arrow stays outside the underline). The blocks under the hero sit 64px apart. */
.single-show .crd.crd .cr-header{background:var(--cr-black);border-bottom-color:transparent;box-shadow:none}
.single-show .crd.crd .ev-back{gap:8px;font-weight:700;font-size:var(--cr-fs-link);letter-spacing:0;color:var(--cr-ink)}
.single-show .crd.crd .ev-back span{background:none;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:currentColor}
.single-show .crd.crd .ev-back:hover span{text-decoration-color:var(--cr-marigold)}
.single-show .crd.crd :is(.ev-pick,.ev-sec,.ev-pair,.ev-solo,.ev-visit){margin-top:var(--ev-gap)}

/* -- Carousel. The card radius on desktop (it runs full-bleed and square under 900px, as before)
   with the card shadow. The arrows are .cr-round on black, as on home's Most booked: 50px, a 1px
   cream line at 40%, no fill, a cream icon; hover fills cream. The dots are cream at 40%, the current
   one cream. The review is one cream label row (Lato 900 11px, tracked, uppercase: stars, the quote,
   the source) at the bottom left on a 30% black scrim (--cr-glass, the frosted pill on photos), the
   dots and Play video at the bottom right. The video slide's Play is a round cream-outline button,
   its label a label; Play video under the dots is a cream text link. Marigold leaves the carousel
   (it is for buying) and brass from decoration (it is for labels and numerals only): the stars are
   cream, the art tiles' halftone dots cream at 40%, their script cream. The flag on the photo is a
   pill: Selling fast marigold (a time-sensitive positive status), Last tickets oxblood (urgency).
   The drawn title tile (a show with no image) sets the title at --cr-fs-h2: 46px, 32px on phones,
   the hero show title being the page's one large type (32px at 900–1099px, where the hero is
   narrow). */
@media (min-width:900px){
  .single-show .crd.crd .ev-car{border-radius:var(--cr-radius-lg);box-shadow:var(--cr-shadow-card)}
}
.single-show .crd.crd .ev-carbtn{width:50px;height:50px;margin-top:-25px;border:1px solid var(--cr-cream-40);border-radius:50%;background:transparent;color:var(--cr-cream);box-shadow:none;transform:none}
.single-show .crd.crd .ev-carbtn:hover{background:var(--cr-cream);color:var(--cr-ink)}
.single-show .crd.crd .ev-dot i{border-radius:var(--cr-radius-pill);background:var(--cr-cream-40)}
.single-show .crd.crd .ev-dot:hover i,.single-show .crd.crd .ev-dot.is-on i{background:var(--cr-cream)}
.single-show .crd.crd .ev-proof{left:20px;right:auto;bottom:20px;display:block;max-width:calc(100% - 200px);padding:8px 12px;border-radius:var(--cr-radius-sm);background:var(--cr-glass);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--cr-cream)}
.single-show .crd.crd .ev-quote{margin:0;font-weight:900;font-size:var(--cr-fs-label);line-height:1.5;letter-spacing:var(--cr-label-track);text-transform:uppercase;color:var(--cr-cream)}
.single-show .crd.crd .ev-stars{display:inline-flex;gap:2px;margin-right:.75em;vertical-align:-1px;color:var(--cr-cream)}
.single-show .crd.crd .ev-stars svg{width:11px;height:11px}
.single-show .crd.crd .ev-quote__src{display:inline;margin:0 0 0 .75em;font-weight:900;font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track);color:var(--cr-cream);white-space:nowrap}
.single-show .crd.crd .ev-carnav{position:absolute;z-index:6;right:20px;bottom:20px;gap:4px}
.single-show .crd.crd .ev-car.is-video .ev-carnav{display:none}
.single-show .crd.crd .ev-play{height:auto;margin-left:12px;padding:0;gap:6px;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--cr-cream);font-weight:700;font-size:var(--cr-fs-link);letter-spacing:0}
.single-show .crd.crd .ev-play span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:currentColor}
.single-show .crd.crd .ev-play:hover{background:none;color:var(--cr-cream)}
.single-show .crd.crd .ev-play:hover span{text-decoration-color:var(--cr-marigold)}
.single-show .crd.crd .ev-vid__btn{width:64px;height:64px;border:1px solid var(--cr-cream-40);border-radius:50%;background:var(--cr-glass);color:var(--cr-cream);box-shadow:none;transform:none}
.single-show .crd.crd .ev-vid__btn:hover{background:var(--cr-cream);color:var(--cr-ink);box-shadow:none;transform:none}
.single-show .crd.crd .ev-vid__btn svg{width:24px;height:24px}
.single-show .crd.crd .ev-vid__label{font-weight:900;font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track);color:var(--cr-cream)}
.single-show .crd.crd .ev-progress i{background:var(--cr-cream)}
.single-show .crd.crd :is(.ev-slide--art,.ev-slide--msart)::after{background:radial-gradient(var(--cr-cream-40) 2px,transparent 3px) 0 0/14px 14px}
.single-show .crd.crd .ev-flag.cr-chip--fast{background:var(--cr-marigold);color:var(--cr-ink)}
.single-show .crd.crd .ev-flagwrap[hidden]{display:none}
.single-show .crd.crd :is(.ev-artscript,.ev-msline){color:var(--cr-cream)}
.single-show .crd.crd .ev-arttype{font-size:var(--cr-fs-h2)}
@media (min-width:900px) and (max-width:1099px){
  .single-show .crd.crd .ev-arttype{font-size:var(--ev-fs-title)}
}
@media (max-width:899px){
  .single-show .crd.crd .ev-proof{left:16px;bottom:16px;max-width:calc(100% - 140px);padding:6px 10px}
  .single-show .crd.crd .ev-carnav{right:12px;bottom:10px}
  .single-show .crd.crd .ev-play{width:auto;height:44px;margin-left:4px;padding:0;border-radius:0}
  .single-show .crd.crd .ev-play span{display:inline}
  .single-show .crd.crd .ev-vid__btn{width:50px;height:50px}
  .single-show .crd.crd .ev-vid__btn svg{width:20px;height:20px}
}

/* -- Ticket panel. No oxblood top bar (as home's cards, which have none). The perforation notches
   stay; the tear line is home's show-row rule (1px dashed ink at 24%). One label row: the category,
   the picked night's status word and, on a season, its schedule ("ALT COMEDY · AVAILABLE"; 11px,
   tracked, muted; event.js keeps the word on the picked night). The title is the panel title (32px,
   24px on phones); the hook stays muted at the page's 16px. The date badge's day is black with cream
   type, the badge the sm corner with a 1px ink line (no drop). Under the date, a night on sale shows
   its price line, the price type (Lato 900 14px ink) with "/ Citizens $20" in the Citizens green
   (700); other nights a plain muted 14px line ("Sold out"). Get tickets is the marigold stub at
   54px; See what's on (a finished night, or not on sale yet) is the outline stub: 1px ink, no fill,
   a 6% wash on hover. A sold-out night has no waitlist (Brett, 08 Oct, item 21 amended): the same
   stub disabled — a <span aria-disabled="true">, no fill, a 1px ink line at 40%, "SOLD OUT" as a
   muted label — and under it "Next available: <night> →", an ink text link to the show's next
   bookable night (picked in place by event.js). The two lines under it are plain 13px
   muted, no icons (Brett's pick of the two). The sticky panel clears the compact header (67px; 71px
   at 900-959px, where the header keeps its phone layout) by 24px. */
.single-show .crd{--ev-head:67px}
@media (max-width:959px){
  .single-show .crd{--ev-head:71px}
}
@media (min-width:900px){
  .single-show .crd.crd .ev-panel{top:calc(var(--ev-head) + 24px)}
}
.single-show .crd.crd .ev-ticket__top::before{display:none}
.single-show .crd.crd .ev-ticket__stub::before{top:0;border-top:1px dashed color-mix(in srgb,var(--cr-ink) 24%,transparent)}
.single-show .crd.crd .ev-tags{display:block;margin:0;font-weight:900;font-size:var(--cr-fs-label);line-height:1.5;letter-spacing:var(--cr-label-track);text-transform:uppercase;color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-tags>span+span::before{content:'\00B7';margin:0 .55em;letter-spacing:0}
.single-show .crd.crd .ev-title,.single-show .crd.crd .ev-title[style*="--ev-word"]{margin-top:12px;font-size:var(--ev-fs-title);line-height:1}
.single-show .crd.crd .ev-hook{margin-top:10px;font-size:inherit}
.single-show .crd.crd .ev-stub__label{font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track)}
.single-show .crd.crd .ev-stub__label-m{display:none}
.single-show .crd.crd .ev-badge{border-radius:var(--cr-radius-sm);box-shadow:inset 0 0 0 1px var(--cr-ink)}
.single-show .crd.crd .ev-badge__dow{background:var(--cr-black);color:var(--cr-cream)}
.single-show .crd.crd .ev-when__sub{font-size:var(--cr-fs-link);color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-when__sub.is-price{font-weight:900;font-size:var(--cr-fs-price);color:var(--cr-ink)}
.single-show .crd.crd .ev-when__sub.is-price .ev-when__cit{font-weight:700;color:var(--cr-green)}
.single-show .crd.crd .ev-buy__body{height:var(--cr-btn-h);padding:0 22px 0 66px;font-size:var(--cr-fs-btn)}
.single-show .crd.crd .ev-buy__body::before{left:50px;top:11px;bottom:11px;border-left-width:1px}
.single-show .crd.crd .ev-buy__ico{left:17px;width:20px;height:20px;margin-top:-10px}
.single-show .crd.crd .ev-buy--alt .ev-buy__body{background:transparent;box-shadow:inset 0 0 0 1px var(--cr-ink);color:var(--cr-ink)}
.single-show .crd.crd .ev-buy--alt .ev-buy__body::before{border-left-color:var(--cr-ink-line)}
.single-show .crd.crd .ev-buy--alt:hover .ev-buy__body{background:color-mix(in srgb,var(--cr-ink) 6%,transparent)}
.single-show .crd.crd .ev-buy.is-soldout{cursor:default}
.single-show .crd.crd .ev-buy.is-soldout .ev-buy__body{background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cr-ink) 40%,transparent);color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-buy.is-soldout .ev-buy__body::before{border-left-color:color-mix(in srgb,var(--cr-ink) 40%,transparent)}
.single-show .crd.crd .ev-buy.is-soldout .cr-label{font-weight:900;font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track);text-transform:uppercase}
.single-show .crd.crd .ev-buy[hidden],.single-show .crd.crd .ev-next[hidden]{display:none}
.single-show .crd.crd .ev-next{display:inline-flex;align-items:center;margin-top:14px;font-weight:700;font-size:var(--cr-fs-link);line-height:1.4;color:var(--cr-ink);text-decoration:none}
.single-show .crd.crd .ev-next span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:currentColor}
.single-show .crd.crd .ev-next:hover span{text-decoration-color:var(--cr-marigold)}
.single-show .crd.crd .ev-facts{gap:6px;margin-top:20px;padding-top:16px;border-top-color:var(--cr-ink-line);font-size:13px;line-height:1.45;color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-facts li{display:block}

/* -- Pick a date (and the page's section headings). Every section heading (.ev-h2: Pick a date,
   About the show, Line-up / Regulars, Your visit, Also on, Pick your seats) is 32px, 24px on phones.
   The note beside Pick a date is muted 14px. Tiles: the sm corner; available is paper with a 1px ink
   line at 16% and an ink dot; few left is a marigold pill chip, What's on's (Brett, 08 Oct: marigold
   pill chips are a time-sensitive positive status; brass is labels and numerals only), with no dot;
   sold out sits at 55% with "Sold out", no dot or waitlist link (item 24 amended); the picked tile
   (and the picked calendar day) is black with cream type, no drop. Eight tiles to a row at most from 900px (they wrap: Main Stage's sixteen are
   two rows), a swipe strip under 900px as before. "Open full calendar" is a text link with its
   calendar icon under the tiles at every width; "Close calendar", "Next 4 weeks" and the legend's
   What's on link are ink text links (no oxblood). The full calendar's days take the sm corner and a
   1px line; a few-left day takes a marigold line and a 14% marigold wash (its words say "few left");
   a sold-out day sits at 55%, "sold out" muted. */
.single-show .crd.crd .ev-h2{font-size:var(--ev-fs-title);line-height:1}
.single-show .crd.crd .ev-pick__sub{font-size:var(--cr-fs-link);color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-tile{border:1px solid var(--cr-ink-line);border-radius:var(--cr-radius-sm);background:var(--cr-paper);background-image:none;box-shadow:none;color:var(--cr-ink)}
.single-show .crd.crd .ev-tile:hover{border-color:var(--cr-ink)}
.single-show .crd.crd :is(.ev-tile__dow,.ev-tile__m){font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track);color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-tile__st{font-size:var(--cr-fs-label);color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-tile__st--ok i{background:var(--cr-ink)}
.single-show .crd.crd .ev-tile__st--few{height:22px;padding:0 10px 0 calc(10px + var(--cr-label-track));border-radius:var(--cr-radius-pill);background:var(--cr-marigold);color:var(--cr-ink);letter-spacing:var(--cr-label-track);text-transform:uppercase}
.single-show .crd.crd .ev-tile__st--few i{display:none}
.single-show .crd.crd .ev-tile.is-sold{border-style:solid;border-color:var(--cr-ink-line);background:var(--cr-paper);color:var(--cr-ink);opacity:.55}
.single-show .crd.crd .ev-tile.is-sold :is(.ev-tile__dow,.ev-tile__m){color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-tile__so{font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track)}
.single-show .crd.crd .ev-tile.is-sel,.single-show .crd.crd .ev-tile.is-sel.is-sold{border:1px solid var(--cr-black);background:var(--cr-black);color:var(--cr-cream);box-shadow:none;opacity:1}
.single-show .crd.crd .ev-tile.is-sel :is(.ev-tile__dow,.ev-tile__m,.ev-tile__st){color:var(--cr-cream)}
.single-show .crd.crd .ev-tile.is-sel .ev-tile__st--ok i{background:var(--cr-cream)}
.single-show .crd.crd .ev-tile.is-sel .ev-tile__st.ev-tile__st--few{color:var(--cr-ink)}
.single-show .crd.crd .ev-pick__open{display:none}
.single-show .crd.crd .ev-pick__openm{display:inline-flex;align-items:center;gap:8px;width:auto;min-height:44px;margin-top:12px;padding:0;border:0;background:none;box-shadow:none;font-weight:700;font-size:var(--cr-fs-link);color:var(--cr-ink);text-decoration:none;cursor:pointer}
.single-show .crd.crd .ev-pick__openm:hover{background:none;color:var(--cr-ink);box-shadow:none}
.single-show .crd.crd :is(.ev-pick__openm,.ev-pick__close,.ev-pick__more) span,.single-show .crd.crd .ev-legend a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:currentColor}
.single-show .crd.crd :is(.ev-pick__openm,.ev-pick__close,.ev-pick__more):hover span,.single-show .crd.crd .ev-legend a:hover{text-decoration-color:var(--cr-marigold)}
.single-show .crd.crd :is(.ev-pick__close,.ev-pick__more){font-weight:700;font-size:var(--cr-fs-link);color:var(--cr-ink)}
.single-show .crd.crd :is(.ev-pick__close,.ev-pick__more):hover{text-decoration:none}
.single-show .crd.crd .ev-legend a{font-weight:700;color:var(--cr-ink)}
.single-show .crd.crd .ev-cell{border-width:1px;border-radius:var(--cr-radius-sm)}
.single-show .crd.crd button.ev-cell{border:1px solid var(--cr-ink-line);background:var(--cr-paper);color:var(--cr-ink)}
.single-show .crd.crd .ev-cell__s--ok,.single-show .crd.crd .ev-cell__s--few{color:var(--cr-ink)}
.single-show .crd.crd .ev-cell__s--sold{color:var(--cr-ink-muted);text-decoration:none}
.single-show .crd.crd button.ev-cell:has(.ev-cell__s--few):not(.is-sel){border-color:var(--cr-marigold);background:color-mix(in srgb,var(--cr-marigold) 14%,var(--cr-paper))}
.single-show .crd.crd button.ev-cell.is-sold{border-style:solid;border-color:var(--cr-ink-line);background:var(--cr-paper);opacity:.55}
.single-show .crd.crd .ev-cell.is-off{border-color:var(--cr-ink-line)}
.single-show .crd.crd .ev-cell.is-past,.single-show .crd.crd .ev-cell.is-blank{border-color:transparent;background:transparent}
.single-show .crd.crd button.ev-cell.is-sel,.single-show .crd.crd button.ev-cell.is-sel.is-sold{border:1px solid var(--cr-black);background:var(--cr-black);color:var(--cr-cream);box-shadow:none;opacity:1}
.single-show .crd.crd .ev-cell.is-sel .ev-cell__s{color:var(--cr-cream)}
.single-show .crd.crd .ev-lg{border-radius:var(--cr-radius-pill)}
.single-show .crd.crd .ev-lg--on{border:1px solid var(--cr-ink-line);background:var(--cr-paper)}
.single-show .crd.crd .ev-lg--sold{border:1px solid var(--cr-ink-line);background:var(--cr-paper);opacity:.55}
.single-show .crd.crd .ev-calcard{border-color:var(--cr-ink-line);background-image:none;box-shadow:var(--cr-shadow-card)}
@media (min-width:900px){
  .single-show .crd.crd .ev-tiles{grid-template-columns:repeat(auto-fill,minmax(max(64px,calc((100% - 70px) / 8)),1fr))}
}
@media (max-width:899px){
  .single-show .crd.crd .ev-tile{width:92px}
}

/* -- About and Line-up / Regulars. About: the lede at --cr-fs-lede (18px), the copy at
   --cr-fs-body (14.5px), at every width (they were 20 / 17px, 17.5 / 15.5px on phones). A paragraph
   that is all bold ("Special Guests to be announced") is a note: muted 14px, not bold. Line-up
   (one-off) and Regulars (season) are one card: .cr-card (paper, the lg corner, the card shadow),
   three to a row where the column allows (two, then one, as it narrows), a 56px round headshot (the
   photo, else the initials in cream on black, as the search cards), then the name (--cr-fs-h4), the
   role (a muted label) and a one-line bio (muted body, cut with an ellipsis; its full text is the
   title). */
.single-show .crd.crd .ev-about__lede{margin-top:16px;font-size:var(--cr-fs-lede);line-height:1.55}
.single-show .crd.crd .ev-about__more{margin-top:12px;font-size:var(--cr-fs-body);line-height:1.6}
.single-show .crd.crd .ev-about__note{margin-top:12px;max-width:38em;font-weight:400;font-size:var(--cr-fs-link);line-height:1.5;color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(220px,calc((100% - 32px) / 3)),1fr));gap:16px;margin-top:24px}
.single-show .crd.crd .ev-person{display:flex;align-items:center;gap:14px;min-width:0;padding:16px}
.single-show .crd.crd .ev-person__pic{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--cr-black) var(--art,none) center/cover no-repeat;color:var(--cr-cream)}
.single-show .crd.crd .ev-person__ini{font-family:var(--cr-font-display);font-weight:800;font-size:var(--cr-fs-h4);line-height:1;letter-spacing:.01em;text-transform:uppercase;color:var(--cr-cream)}
.single-show .crd.crd .ev-person__txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.single-show .crd.crd .ev-person__name{font-size:var(--cr-fs-h4);line-height:1.1}
.single-show .crd.crd .ev-person__role{margin:0;font-weight:900;font-size:var(--cr-fs-label);line-height:1.3;letter-spacing:var(--cr-label-track);text-transform:uppercase;color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-person__bio{margin:0;overflow:hidden;font-size:var(--cr-fs-body);line-height:1.4;color:var(--cr-ink-muted);white-space:nowrap;text-overflow:ellipsis}

/* -- Visit. The venue note: the card corner and a 1px ink line at 16% on the page's cream, no mark
   (Brett's pick of "brass or no icon"), body type; "See what else is on →" an ink text link. The
   Citizens card beside it (season pages): the Citizens band's deep green with cream type, "Citizens
   pay $20 · Save $4 on this show" and a cream "See Citizens" text link. Your visit: a paper card
   (the card corner, a 1px ink line, the card shadow; the green inner keyline goes: green is Citizens
   only), home's dashed row rule, the labels 11px tracked, the fact icons cream in black circles,
   the answers body type. The drawn map is a Google Maps embed in greys (the card corner), with
   "Open in Maps" a text link under it; "Everything else about your visit →" a text link too. */
.single-show .crd.crd .ev-house{gap:0;padding:20px 24px;border:1px solid var(--cr-ink-line);border-radius:var(--cr-radius-lg);background:transparent}
.single-show .crd.crd .ev-house p{font-size:var(--cr-fs-body);line-height:1.6}
.single-show .crd.crd .ev-house__link,.single-show .crd.crd .ev-house__link:hover{font-weight:700;font-size:var(--cr-fs-link);color:var(--cr-ink);text-decoration:none;white-space:nowrap}
.single-show .crd.crd .ev-cit{flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;padding:20px 24px;border:0;border-radius:var(--cr-radius-lg);background:var(--cr-green-deep);box-shadow:none;color:var(--cr-cream)}
.single-show .crd.crd .ev-cit::after{display:none}
.single-show .crd.crd .ev-cit__text{margin:0;font-size:var(--cr-fs-body);line-height:1.5;color:var(--cr-cream)}
.single-show .crd.crd .ev-cit__title{font-weight:900}
.single-show .crd.crd .ev-cit__link,.single-show .crd.crd .ev-cit__link:hover{font-weight:700;font-size:var(--cr-fs-link);color:var(--cr-cream);text-decoration:none}
.single-show .crd.crd .ev-visit{border:1px solid var(--cr-ink-line);background:var(--cr-paper);box-shadow:var(--cr-shadow-card)}
.single-show .crd.crd .ev-visit::after{display:none}
.single-show .crd.crd .ev-fact{border-top:1px dashed color-mix(in srgb,var(--cr-ink) 24%,transparent)}
.single-show .crd.crd .ev-fact:first-child{border-top:0}
.single-show .crd.crd .ev-fact dt{font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track);color:var(--cr-ink-muted)}
.single-show .crd.crd .ev-fact__ico{border-radius:50%;background:var(--cr-black);color:var(--cr-cream)}
.single-show .crd.crd .ev-fact dd{font-size:var(--cr-fs-body)}
.single-show .crd.crd .ev-mapcol{display:flex;flex-direction:column;gap:12px;min-width:0}
.single-show .crd.crd .ev-map{flex:1;min-height:300px;border-radius:var(--cr-radius-lg);background:var(--cr-black-raised);box-shadow:none}
.single-show .crd.crd .ev-map__frame{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1)}
.single-show .crd.crd .ev-map__open,.single-show .crd.crd .ev-map__open:hover{position:static;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:auto;padding:0;border-radius:0;background:none;box-shadow:none;font-weight:700;font-size:var(--cr-fs-link);color:var(--cr-ink);text-decoration:none;transform:none}
.single-show .crd.crd .ev-visit__cta,.single-show .crd.crd .ev-visit__cta:hover{display:inline-flex;align-items:center;gap:8px;width:auto;margin-top:24px;padding:0;border:0;background:none;box-shadow:none;font-weight:700;font-size:var(--cr-fs-link);color:var(--cr-ink);text-decoration:none}
.single-show .crd.crd :is(.ev-house__link,.ev-cit__link,.ev-map__open,.ev-visit__cta) span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:currentColor}
.single-show .crd.crd :is(.ev-house__link,.ev-cit__link,.ev-map__open,.ev-visit__cta):hover span{text-decoration-color:var(--cr-marigold)}
@media (max-width:899px){
  .single-show .crd.crd .ev-map{flex:none;min-height:0;aspect-ratio:4 / 3}
}

/* -- One template, laid out by the sessions (Brett, 08 Oct). A night with two or more sessions on
   its one date (layout 'night', Sashi Perera's 5:00 and 6:30) has a time toggle in the panel, under
   the date, in place of Pick a date's tiles: a row of buttons, one per session, drawn as the tiles
   are (paper, a 1px ink line at 16%, the sm corner; the picked one black with cream type; a
   sold-out one at 55%), at least 54px tall, the time in the button type (Lato 900 15px) over its
   status (an ink dot and Available, the marigold Few left chip, Sold out). */
.single-show .crd.crd .ev-times{margin-top:20px}
.single-show .crd.crd .ev-times__label{margin-bottom:10px}
.single-show .crd.crd .ev-times__row{display:flex;flex-wrap:wrap;gap:8px}
.single-show .crd.crd .ev-time{display:flex;flex:1 1 0;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:96px;min-height:var(--cr-btn-h);padding:10px 8px;border:1px solid var(--cr-ink-line);border-radius:var(--cr-radius-sm);background:var(--cr-paper);color:var(--cr-ink);cursor:pointer}
.single-show .crd.crd .ev-time:hover{border-color:var(--cr-ink)}
.single-show .crd.crd .ev-time__t{font-weight:900;font-size:var(--cr-fs-btn);line-height:1}
.single-show .crd.crd .ev-time :is(.ev-tile__st,.ev-tile__so){margin-top:0;padding-top:0}
.single-show .crd.crd .ev-time.is-sold{opacity:.55}
.single-show .crd.crd .ev-time.is-sel{border-color:var(--cr-black);background:var(--cr-black);color:var(--cr-cream);opacity:1}
.single-show .crd.crd .ev-time.is-sel :is(.ev-tile__st,.ev-tile__so){color:var(--cr-cream)}
.single-show .crd.crd .ev-time.is-sel .ev-tile__st--ok i{background:var(--cr-cream)}
.single-show .crd.crd .ev-time.is-sel .ev-tile__st.ev-tile__st--few{color:var(--cr-ink)}

/* Ticket flows (Brett, 08 Oct).
   - Embed: the Flicket selector opens at 400px and grows (event.js: Flicket's posted height if it
     sends one, else the show's Embed height once the visitor starts using it), so the card fits a
     short ticket list. The fallback "Open Flicket in a new tab" is the standard ink text link, not
     oxblood.
   - Link-out: under the booking panel's Get tickets, "Opens Flicket in a new tab" in 12px muted. */
.single-show .crd.crd .ev-flicket__frame iframe{min-height:400px;transition:height .25s ease}
.single-show .crd.crd .ev-flicket__fallback a{font-family:var(--cr-font-body);font-weight:700;font-size:var(--cr-fs-link);color:var(--cr-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.single-show .crd.crd .ev-flicket__fallback a:hover{color:var(--cr-ink);text-decoration-color:var(--cr-marigold)}
.single-show .crd.crd .ev-buy__note{margin:8px 0 0;font-family:var(--cr-font-body);font-weight:400;font-size:var(--cr-fs-fine);line-height:1.4;color:var(--cr-ink-muted);text-align:center}
.single-show .crd.crd .ev-buy__note[hidden]{display:none}
@media (prefers-reduced-motion:reduce){
  .single-show .crd.crd .ev-flicket__frame iframe{transition:none}
}

/* -- Phones (under 900px): one booking card, no sticky bar (Brett, 21 Oct). The sticky Buy bar
   is gone; the card under the photo holds the whole booking: the title half, then Pick a date (a
   'run'), Pick a time (a 'night'), "Your show" (the picked night and its price) and Get tickets.
   The markup is the desktop's — the panel's two halves and the body's Pick a date section — laid
   out as one card by the grid: the panel, its ticket and the body are display:contents here, so
   their children are the grid's items and take their order (hero, title half, Pick a date, stub,
   the rest). The title half keeps its notches and the tear line moves to the next piece: Pick a
   date, when there is one (it gets the stub's notch mask), else the stub. The stub then ends the
   card with a plain dashed line above "Your show" (the mock's second rule). Pick a date's heading
   is the panel's label here, with the run line beside it, the tiles a swipe strip to the card's
   edges, Open full calendar a text link under them; "Next 4 weeks →" (a strip scroller) goes. The
   date badge goes too: the tiles show the date. Each piece carries the ticket's drop shadow. */
@media (max-width:899px){
  .single-show .crd.crd .ev-grid{grid-template-areas:none;grid-template-columns:minmax(0,1fr)}
  .single-show .crd.crd .ev-grid>*{grid-column:1;min-width:0}
  .single-show .crd.crd .ev-heroarea{grid-area:auto;order:-4}
  .single-show .crd.crd .ev-panel,.single-show .crd.crd .ev-ticket,.single-show .crd.crd .ev-body{display:contents}
  .single-show .crd.crd .ev-ticket__top{order:-3;margin-top:22px}
  .single-show .crd.crd .ev-pick{order:-2}
  .single-show .crd.crd .ev-ticket__stub{order:-1}
  .single-show .crd.crd .ev-ticket__top,.single-show .crd.crd .ev-ticket__stub,.single-show .crd.crd .ev-pick{filter:drop-shadow(0 26px 30px rgba(46,45,42,.16)) drop-shadow(0 3px 4px rgba(46,45,42,.1))}
  .single-show .crd.crd .ev-panel.is-season .ev-ticket__top{border-radius:24px 24px 0 0;-webkit-mask:radial-gradient(circle 14px at 0 100%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 100%,#0000 96%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle 14px at 0 100%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 100%,#0000 96%,#000) 100% 0/51% 100% no-repeat}
  .single-show .crd.crd .ev-ticket__stub,.single-show .crd.crd .ev-panel.is-season .ev-ticket__stub{display:flex;flex-direction:column;align-items:stretch}
  .single-show .crd.crd .ev-panel.is-season .ev-ticket__stub{border-radius:0 0 24px 24px;-webkit-mask:none;mask:none}
  .single-show .crd.crd .ev-ticket__stub .ev-times{order:-1;margin:0 0 20px}
  .single-show .crd.crd .ev-panel .ev-buy{display:flex}
  .single-show .crd.crd .ev-panel .ev-buy[hidden]{display:none}
  .single-show .crd.crd .ev-panel .ev-facts{display:flex;flex-direction:column}
  .single-show .crd.crd .ev-stub__label-d{display:none}
  .single-show .crd.crd .ev-stub__label-m{display:inline}
  .single-show .crd.crd .ev-when{gap:0}
  .single-show .crd.crd .ev-badge{display:none}
  /* Pick a date inside the card: the stub's look, the notches and the tear line; the stub, now after
     it, keeps only a dashed line. */
  .single-show .crd.crd .ev-pick{position:relative;margin:0;padding:22px 22px 24px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;-webkit-mask:radial-gradient(circle 14px at 0 0,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,#0000 96%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle 14px at 0 0,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,#0000 96%,#000) 100% 0/51% 100% no-repeat}
  .single-show .crd.crd .ev-pick::before{content:'';position:absolute;left:18px;right:18px;top:0;border-top:1px dashed color-mix(in srgb,var(--cr-ink) 24%,transparent)}
  .single-show .crd.crd .ev-panel.is-season .ev-ticket__stub::before{left:22px;right:22px;top:0;border-top:1px dashed color-mix(in srgb,var(--cr-ink) 24%,transparent)}
  .single-show .crd.crd .ev-pick__head,.single-show .crd.crd .ev-pick__titles{align-items:baseline;gap:8px 12px}
  .single-show .crd.crd .ev-pick .ev-h2{margin:0;font-family:var(--cr-font-body);font-weight:900;font-size:var(--cr-fs-label);line-height:1;letter-spacing:var(--cr-label-track);text-transform:uppercase;color:var(--cr-ink-muted)}
  .single-show .crd.crd .ev-pick__sub{display:inline;font-size:var(--cr-fs-fine);line-height:1.3}
  .single-show .crd.crd .ev-pick__next,.single-show .crd.crd .ev-pick__sep,.single-show .crd.crd .ev-pick__more{display:none}
  .single-show .crd.crd .ev-pick__close{min-height:0;padding:0}
  .single-show .crd.crd .ev-tiles{margin:14px -22px 0;padding:4px 22px 6px;scroll-padding-inline:22px}
  .single-show .crd.crd .ev-tile{width:80px;min-height:104px;padding:11px 4px 10px}
  .single-show .crd.crd .ev-tile__d{font-size:26px}
  .single-show .crd.crd .ev-pick__openm{min-height:40px;margin-top:8px}
  .single-show .crd.crd .ev-calcard{margin-top:14px;padding:14px 12px}
}

/* -- Pick a date in the booking card on desktop too (Brett, 23 Oct; template-parts/event/page.php prints it
   between the ticket's title half and its stub at every width). The phones' treatment, from 900px: the
   piece takes the stub's look, notches and tear line; the stub after it keeps a plain dashed line and
   "Your show" (the tiles show the date, so the date badge goes). The tiles are a swipe strip four to
   the card's width; "Next 4 weeks →" scrolls it (event.js, back to the first tile at the end), and a
   trackpad or shift-wheel scrolls it too. A card taller than the window sticks by its bottom edge
   (event.js). */
@media (min-width:900px){
  .single-show .crd.crd .ev-ticket .ev-pick{position:relative;margin:0;padding:22px 32px 22px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;-webkit-mask:radial-gradient(circle 14px at 0 0,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,#0000 96%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle 14px at 0 0,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 14px at 100% 0,#0000 96%,#000) 100% 0/51% 100% no-repeat}
  .single-show .crd.crd .ev-ticket .ev-pick::before{content:'';position:absolute;left:22px;right:22px;top:0;border-top:1px dashed color-mix(in srgb,var(--cr-ink) 24%,transparent)}
  .single-show .crd.crd .ev-panel.is-season .ev-ticket__stub{border-radius:0 0 24px 24px;-webkit-mask:none;mask:none}
  .single-show .crd.crd .ev-panel.is-season .ev-ticket__stub::before{left:22px;right:22px;top:0;border-top:1px dashed color-mix(in srgb,var(--cr-ink) 24%,transparent)}
  .single-show .crd.crd .ev-ticket .ev-pick__head{flex-wrap:nowrap;align-items:baseline;gap:8px 12px}
  .single-show .crd.crd .ev-ticket .ev-pick__titles{align-items:baseline;gap:8px 12px;min-width:0}
  .single-show .crd.crd .ev-ticket .ev-pick .ev-h2{margin:0;font-family:var(--cr-font-body);font-weight:900;font-size:var(--cr-fs-label);line-height:1;letter-spacing:var(--cr-label-track);text-transform:uppercase;color:var(--cr-ink-muted)}
  .single-show .crd.crd .ev-ticket .ev-pick__sub{display:inline;font-size:var(--cr-fs-fine);line-height:1.3}
  .single-show .crd.crd .ev-ticket :is(.ev-pick__next,.ev-pick__sep){display:none}
  .single-show .crd.crd .ev-ticket .ev-pick__more{display:inline-flex;align-items:center;gap:6px;flex:none;min-height:32px;padding:0;border:0;background:none;font-size:var(--cr-fs-fine);white-space:nowrap;cursor:pointer}
  .single-show .crd.crd .ev-ticket .ev-pick__more .cr-ico{width:14px;height:14px}
  .single-show .crd.crd .ev-ticket .ev-pick__more[hidden]{display:none}
  .single-show .crd.crd .ev-ticket .ev-pick__close{min-height:32px;padding:0;font-size:var(--cr-fs-fine)}
  .single-show .crd.crd .ev-ticket .ev-tiles{display:flex;gap:8px;overflow-x:auto;margin:14px -32px 0;padding:4px 32px 6px;scroll-snap-type:x mandatory;scroll-padding-inline:32px;scrollbar-width:none;grid-template-columns:none}
  .single-show .crd.crd .ev-ticket .ev-tiles::-webkit-scrollbar{display:none}
  .single-show .crd.crd .ev-ticket .ev-tile{flex:none;width:80px;min-height:104px;padding:11px 4px 10px;scroll-snap-align:start}
  .single-show .crd.crd .ev-ticket .ev-tile__d{font-size:26px}
  .single-show .crd.crd .ev-ticket .ev-pick__openm{min-height:36px;margin-top:8px}
  .single-show .crd.crd .ev-ticket .ev-calcard{margin-top:14px;padding:14px 12px}
  .single-show .crd.crd .ev-panel.is-season .ev-stub__label-d,.single-show .crd.crd .ev-panel.is-season .ev-badge{display:none}
  .single-show .crd.crd .ev-panel.is-season .ev-stub__label-m{display:inline}
  .single-show .crd.crd .ev-panel.is-season .ev-when{gap:0}
}

/* -- Pick a time in a run of dates (Brett, 23 Oct): only the picked date's sessions show, and the row
   hides on a date with one session (times.php, event.js). From 900px the stub stacks as on phones, so
   Pick a time sits above "Your show" at every width (the design's order). */
.single-show .crd.crd .ev-times[hidden],.single-show .crd.crd .ev-time[hidden]{display:none}
@media (min-width:900px){
  .single-show .crd.crd .ev-ticket__stub{display:flex;flex-direction:column;align-items:stretch}
  .single-show .crd.crd .ev-ticket__stub .ev-times{order:-1;margin:0 0 20px}
  .single-show .crd.crd .ev-ticket__stub .ev-next{align-self:flex-start}
}
