@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
/* Match the parent website's stage.css design tokens and controls. */
:root{--ink:#000;--muted:#555;--purple:#000;--light:#f2f2f2;--line:#d9d9d9;--bg:#fff}
body{font-family:'DM Sans',Arial,sans-serif;background:#fff;color:#000}
header{background:#000;color:#fff;border-color:#333}
.brand{gap:14px}.wordmark{font-size:30px;letter-spacing:-1.8px;font-weight:700;line-height:1}.brand-name{font-size:9px;font-weight:400;border-left:1px solid #ffffff60;padding-left:14px;line-height:1.5}
.demo{color:#fff;background:transparent;border:1px solid #777;border-radius:0;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:500}
h1{font-family:'DM Sans',Arial,sans-serif;font-weight:400;letter-spacing:-.055em;line-height:1.02}
h2{font-weight:500;letter-spacing:-.03em}.eyebrow,.sample{color:#555;font-weight:500;letter-spacing:.13em;font-size:10px}
.panel{border-radius:0}.maphead{border-color:#d9d9d9}.maphead strong{font-weight:500;letter-spacing:-.02em}
.stage{background:#f2f2f2;border-bottom-color:#999;color:#555;letter-spacing:.15em;border-radius:0}
.seat{background:#fff;color:#333;border-color:#aaa;border-bottom-color:#888;border-radius:3px 3px 0 0}
.seat.access{background:#e9e9e9;color:#000;border-color:#777;border-bottom-color:#555}
.seat.chosen{background:#000;border-color:#000;color:white}
.dot{background:#fff;border-color:#999;border-radius:0}.dot.selected{background:#000;border-color:#000}.dot.access{background:#e9e9e9;border-color:#777}
.primary{border-radius:0;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600;line-height:1.4;border:1px solid #000;background:#000;color:#fff}
.primary:hover:not(:disabled){background:#333;border-color:#333}.primary:disabled{background:#eee;color:#888;border-color:#ddd;opacity:1}
button:focus-visible,input:focus-visible{outline-color:#666}.seat:focus-visible{outline-color:#000}.seat:hover{background:#ddd}.seat.chosen:hover{background:#333}
.chip,.empty,.notice,.form input{border-radius:0}.chip{background:#000;color:#fff}.empty{background:#fafafa}.notice{border-left:2px solid #000;background:#f2f2f2;color:#333}
.event strong,.success h2{font-family:'DM Sans',Arial,sans-serif;font-weight:400;letter-spacing:-.04em}.event small{color:#555}.back{color:#000}.steps{font-size:11px}.steps span{border-radius:0}.steps b{font-weight:600}.steps b span{background:#000;color:#fff}
footer{color:#555;font-size:10px}.form input{border-color:#999}
@media(max-width:600px){.wordmark{font-size:27px}.brand-name{font-size:8px;padding-left:10px}.brand{gap:10px}.demo{font-size:8px;padding:6px 8px}}
.date-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin:12px 0 5px}
select{font:inherit;color:#000;background:white;border:1px solid #999;border-radius:0;padding:8px 6px;max-width:100%}#performance{width:100%;font-size:11px}.chips{display:block}.ticket-line{display:flex;gap:6px;align-items:center;margin-bottom:6px}.ticket-line .chip{min-width:50px}.ticket-line select{flex:1;min-width:0;font-size:11px;padding:6px 3px}.event strong{font-size:22px}.event{padding-bottom:12px;margin-bottom:12px}
@media(min-width:701px){aside h2{margin-bottom:12px}.event strong{font-size:20px;line-height:1.15;margin-bottom:6px}.event small{font-size:10px}.date-label{margin-top:8px}#performance{padding:6px 4px}.event{padding-bottom:10px;margin-bottom:10px}.empty{padding:12px 8px}.primary{padding:11px 10px;font-size:10px}.fine{font-size:9px}.bill{padding-top:8px;margin-top:12px}.bill div{margin:6px 0}.bill .total{margin:10px 0}.ticket-line{margin-bottom:4px}.ticket-line select{font-size:10px;padding:4px 2px}.ticket-line .chip{padding:4px 6px;font-size:10px}}
/* Give the seating chart the space previously occupied by the introduction. */
main{max-width:1600px}.theater{max-width:none}.empty{border:0;text-align:left;padding:4px 0;background:none}.layout{align-items:start}.maphead small{display:none}.accessnote{line-height:1.5}.steps{margin-bottom:12px}.maphead strong{font-size:17px}footer{display:none}
@media(min-width:1001px){main{padding:20px 30px 16px}.layout{grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:12px}.panel{align-self:start}.scroll{padding:0 22px 16px}.legend{padding:14px 24px}.stage{height:40px;margin:0 7% 20px;padding-top:10px}.row{margin:8px 0;gap:8px}.rowlabel{width:18px;font-size:12px}.seats{gap:7px}.seat{width:calc((100% - 126px)/19);max-width:46px;height:clamp(26px,3.7vh,40px);font-size:12px;border-bottom-width:3px}.accessnote{padding:14px 22px}.exits{padding:14px 12px 0}.maphead{padding:16px 24px}aside{padding:22px}.event strong{font-size:24px}.event small{font-size:11px}.bill div{font-size:12px}.fine{font-size:10px}.primary{padding:13px 12px}}
@media(min-width:701px) and (max-width:1000px){main{padding-top:14px}.layout{margin-top:10px}.stage{margin-bottom:16px}.seat{height:28px;font-size:9px}.row{margin:7px 0}.accessnote{padding:12px}.maphead{padding:14px}}
@media(min-width:1001px) and (max-height:740px){.seat{height:26px}.row{margin:5px 0}.stage{height:30px;margin-bottom:12px;padding-top:5px}.legend{padding-top:9px;padding-bottom:9px}.maphead{padding-top:12px;padding-bottom:12px}}
#ticketPicker{position:fixed;inset:auto;margin:0;width:300px;max-width:calc(100vw - 24px);padding:20px;background:#fff;color:#000;border:1px solid #000;box-shadow:0 12px 40px #0003;overflow:visible;font-family:'DM Sans',Arial,sans-serif}#ticketPicker::backdrop{background:#0001}.picker-head{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:18px}.picker-head small{font-size:10px;letter-spacing:.1em;color:#555}.picker-head h2{font-size:18px;margin:4px 0 0}.picker-head>button{border:0;background:none;font-size:26px;line-height:1;padding:0 3px}.price-option{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:16px 12px;margin-top:10px;border:1px solid #aaa;background:#fff;color:#000;text-align:left;font-size:13px}.price-option:hover,.price-option[aria-pressed=true]{background:#000;color:#fff;border-color:#000}.price-option strong{font-size:18px}.picker-remove{border:0;border-bottom:1px solid #777;background:none;padding:0;margin-top:18px;font-size:12px;color:#555}.ticket-edit{flex:1;text-align:left;background:none;border:0;padding:4px;color:#000;font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:3px}
/* Keep motion brief and tied to selection and navigation. */
.seat{transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.primary,.price-option,.chip,.ticket-edit{transition:background-color .18s ease,color .18s ease,border-color .18s ease,opacity .18s ease}
.seat:active{transform:translateY(0) scale(.94)}
#ticketPicker{opacity:0;transform:translateY(7px) scale(.98);transform-origin:center;transition:opacity .18s ease,transform .2s cubic-bezier(.2,.8,.2,1),display .2s allow-discrete,overlay .2s allow-discrete}
#ticketPicker:popover-open{opacity:1;transform:translateY(0) scale(1)}
#ticketPicker::backdrop{background:transparent;transition:background-color .2s ease,display .2s allow-discrete,overlay .2s allow-discrete}
#ticketPicker:popover-open::backdrop{background:#0001}
@starting-style{#ticketPicker:popover-open{opacity:0;transform:translateY(7px) scale(.98)}#ticketPicker:popover-open::backdrop{background:transparent}}
.checkout-enter{animation:checkout-enter .22s ease both}
@keyframes checkout-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.seat:hover,.seat:active{transform:none}}
/* Readability takes priority over fitting the checkout into one screen. */
body{font-size:16px;overflow-y:auto}.steps{font-size:14px;gap:24px;margin-bottom:20px}.steps span{width:28px;height:28px}.brand-name{font-size:11px}.demo{font-size:11px}main{padding-top:24px;padding-bottom:40px}.layout{gap:28px}aside{position:static;padding:28px}aside h2{font-size:24px;margin-bottom:24px}.sample{font-size:12px;letter-spacing:.1em;margin-bottom:12px}.event strong{font-size:30px;line-height:1.15;margin-bottom:14px}.event small{font-size:15px;line-height:1.6}.event{padding-bottom:24px;margin-bottom:24px}.date-label{font-size:13px;margin:20px 0 9px}#performance{font-size:15px;padding:12px 10px;min-height:48px}aside>div:has(>#count){font-size:16px!important;margin-bottom:16px!important}.empty{font-size:15px;padding:8px 0}.ticket-line{gap:12px;margin-bottom:10px}.ticket-line .chip{min-width:58px;padding:10px;font-size:14px}.ticket-edit{font-size:15px;padding:10px 0}.bill{padding-top:20px;margin-top:24px}.bill div{font-size:15px;line-height:1.5;margin:12px 0;gap:14px}.bill .total{font-size:27px;margin:24px 0}.primary{font-size:13px;padding:17px 14px;min-height:52px}.fine{font-size:12px;line-height:1.6;margin-top:16px}.maphead strong{font-size:20px}.legend{font-size:14px;gap:20px;padding-top:18px;padding-bottom:18px}.accessnote{font-size:13px;line-height:1.65;padding:18px 22px}.exits{font-size:11px}.form label{font-size:15px}.form input{font-size:16px}.notice{font-size:15px}.picker-head small{font-size:12px}.picker-head h2{font-size:22px}.price-option{font-size:16px;padding:18px 14px}.price-option strong{font-size:22px}.picker-remove{font-size:14px}#ticketPicker{width:340px;padding:22px}
@media(min-width:1001px){.layout{grid-template-columns:minmax(0,1fr) 390px}.seat{font-size:14px;height:40px}.row{margin:9px 0}.rowlabel{font-size:14px}.stage{font-size:13px;height:48px;padding-top:12px;margin-bottom:24px}}
@media(min-width:701px) and (max-width:1000px){.layout{grid-template-columns:minmax(0,1fr) 300px;gap:20px}aside{padding:22px}.event strong{font-size:26px}.seat{height:30px;font-size:10px}.legend{font-size:12px;gap:12px}.accessnote{font-size:12px;padding:14px}}
@media(max-width:700px){.layout{grid-template-columns:1fr}main{padding:20px 16px 32px}.steps{font-size:12px;gap:14px}.steps span{width:25px;height:25px}aside{padding:24px}.seat{font-size:9px;height:28px}.legend{font-size:12px;gap:12px}.accessnote{font-size:12px;padding:14px}.brand-name{font-size:9px}.demo{font-size:9px}}
.event-poster{display:block;width:100%;height:auto;margin:0 0 26px;object-fit:contain;background:#000}
/* Preserve seat geometry at every viewport width. */
.scroll{overflow-x:auto;overscroll-behavior-x:contain;padding:0 20px 20px}.theater{width:100%;min-width:960px;max-width:none}.row{gap:8px;margin:9px 0}.rowlabel{width:20px;flex:0 0 20px;font-size:14px}.seats{gap:7px;width:100%;min-width:0}.seat{width:40px;height:40px;min-width:40px;max-width:40px;flex:0 0 40px;font-size:14px}.layout>section{min-width:0}
@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr)}aside{width:100%}.event-poster{max-width:360px}.scroll{padding-left:12px;padding-right:12px}}
.seat:disabled{cursor:not-allowed;background:#f5f5f5;color:#888;border-color:#ccc;transform:none}.seat:disabled:hover{background:#f5f5f5;transform:none}
.date-error{color:#a02020;font-size:14px;line-height:1.5;margin:10px 0 0}#performance[aria-invalid=true]{border:2px solid #a02020;outline-color:#a02020}
.performance-bar{margin:0 0 22px;max-width:420px}.performance-bar .date-label{margin:0 0 8px;font-size:14px}.performance-bar #performance{font-size:16px}.performance-bar .date-error{margin-top:8px}#dateDialog{width:440px;max-width:calc(100vw - 32px);padding:30px;border:1px solid #000;background:#fff;color:#000;font-family:'DM Sans',Arial,sans-serif}#dateDialog::backdrop{background:#0007;backdrop-filter:blur(3px)}#dateDialog h2{font-size:30px;font-weight:400;letter-spacing:-.04em;margin:8px 0 24px}.date-option{display:flex;flex-direction:column;gap:6px;width:100%;padding:20px;margin-top:12px;background:white;color:black;border:1px solid #999;text-align:left;transition:background-color .18s,color .18s}.date-option strong{font-size:18px;font-weight:500}.date-option span{font-size:15px}.date-option:hover{background:#000;color:white}#dateDialog[open]{animation:checkout-enter .2s ease both}@media(prefers-reduced-motion:reduce){#dateDialog[open]{animation:none}.date-option{transition:none}}
.venue-link{display:block;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.venue-link:hover small{color:#000}.venue-link:focus-visible{outline:2px solid #000;outline-offset:4px}
.venue-link,.venue-link small,.venue-link:hover small{color:#06c}.venue-link:hover{color:#004a99}.venue-link:focus-visible{outline-color:#06c}#mapsDialog{width:360px;max-width:calc(100vw - 32px);padding:24px;border:1px solid #000;background:white;color:black;font-family:'DM Sans',Arial,sans-serif}#mapsDialog::backdrop{background:#0007}#mapsTitle{font-size:24px;margin:0}.map-option{display:block;border:1px solid #aaa;padding:16px;margin-top:12px;color:#06c;font-size:17px;text-align:center;text-decoration:underline;text-underline-offset:3px}.map-option:hover{background:#f2f2f2}
.picker-remove{color:#b42318;border-bottom-color:currentColor}.picker-remove:hover{color:#871b12}
.show-times{font-size:14px;color:#555;margin:9px 0 0;line-height:1.5}
/* Freeze the page and seating map while ticket choices are open. */
html{scrollbar-gutter:stable}
html:has(#ticketPicker:popover-open),body:has(#ticketPicker:popover-open){overflow:hidden;overscroll-behavior:none}
body:has(#ticketPicker:popover-open) .scroll{overflow:hidden;touch-action:none}
#ticketPicker{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}

#ticketPicker{inset:auto;left:50vw;top:50dvh;translate:-50% -50%;margin:0;height:fit-content}
