/* Split out of index.html. Font URLs are relative to THIS file, which lives in
   assets/ — so they are bare filenames here, not "assets/x.woff2" as they were
   when this ruleset sat inline in the page at the site root. */

/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("0daeace5.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("451187e3.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("2155caf1.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("0f3548b4.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("3514740b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("266eb42e.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("62bcee87.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("04d0c7c3.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("0eef0f85.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("21f21a8c.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("49f9ac81.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("268f28dd.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("37415821.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("5ef55f53.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("473237b9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face{font-family:herbus;src:url("1bf6fa84.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:herbus;src:url("1e5b72e6.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:herbus;src:url("660e1009.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:herbus-serif;src:url("herbus-regular-serif.woff2") format("woff2");font-weight:400 500;font-display:swap}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#000;color:#fff;font-family:"IBM Plex Mono","IBM Plex Mono Fallback",ui-monospace,monospace;overflow-x:hidden}
.hd{font-family:herbus,"herbus Fallback",Georgia,"Times New Roman",serif}
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:#000}
::-webkit-scrollbar-thumb{background:#222}
a{color:#fff;text-decoration:none}
a:hover{color:rgba(255,255,255,0.7)}
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(0.15) contrast(1.02)}
.hero .shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.15) 30%,rgba(0,0,0,0.2) 60%,#000 100%)}
.hero-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:40px 56px 48px}
.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.55)}
.topbar>span:last-child{justify-self:end}
.topbar .brand{color:#fff;display:flex;align-items:center;gap:14px}
.topbar .brand .brand-word{font-family:herbus-serif,"herbus Fallback",Georgia,"Times New Roman",serif;font-weight:400;font-size:15px;letter-spacing:3px;text-transform:uppercase;line-height:1}
.hero-logo{font-family:herbus-serif,"herbus Fallback",Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(40px,6.5vw,84px);letter-spacing:0.08em;text-transform:uppercase;line-height:1;text-align:center;margin:0 auto 44px;text-shadow:0 2px 30px rgba(0,0,0,0.7)}
.hero-block{text-align:center;max-width:1000px;margin:0 auto;padding:0 24px}
.hero-block .orn{display:flex;justify-content:center;margin-bottom:32px}
.kicker{font-size:11px;letter-spacing:5px;text-transform:uppercase;color:rgba(255,255,255,0.65)}
h1{font-weight:500;font-size:clamp(38px,5vw,64px);line-height:1.15;letter-spacing:0.5px;text-transform:uppercase;margin:0;text-wrap:balance;text-shadow:0 2px 40px rgba(0,0,0,0.8);font-family:herbus-serif,"herbus Fallback",Georgia,"Times New Roman",serif}
.hero-sub{font-size:13px;line-height:1.8;letter-spacing:0.5px;text-transform:uppercase;color:rgba(255,255,255,0.78);max-width:560px;margin:40px auto 0;text-wrap:pretty}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.55)}
.dates{position:relative;padding:110px 40px 80px;max-width:1180px;margin:0 auto}
.ledger{display:flex;justify-content:center;margin-bottom:96px}
/* Grid, not inline-flex: 1fr columns make both cells the width of the widest,
   so the divider lands on the box's own centre line instead of wherever
   "CHURCHES" happens to end. Centre the cells too - the number is narrower
   than its label, and left-aligned it reads as knocked off-centre. */
.ledger-inner{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid rgba(255,255,255,0.22)}
.ledger-cell{padding:16px 30px;text-align:center}
.ledger-cell+.ledger-cell{border-left:1px solid rgba(255,255,255,0.22)}
.ledger-cell .k{font-size:9px;letter-spacing:3px;text-transform:uppercase;opacity:0.55;margin-bottom:6px}
.ledger-cell .v{font-size:26px;letter-spacing:1px;text-transform:uppercase}
.table-head{display:grid;grid-template-columns:70px 170px 1fr 190px;gap:24px;padding:0 16px 16px;border-bottom:1px solid rgba(255,255,255,0.22);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.55)}
/* A show that is not ready to be seen: put data-hidden on its .row and the
   whole row is gone — no button state to get right, nothing for a fan to
   click early. Delete the attribute to publish the show. */
.row[data-hidden]{display:none!important}
.row{display:grid;grid-template-columns:70px 170px 1fr auto;gap:24px;align-items:center;padding:30px 16px;border-bottom:1px solid rgba(255,255,255,0.12);transition:background 0.15s}
.row:hover{background:rgba(255,255,255,0.035)}
.row .no{font-size:11px;letter-spacing:2px;color:rgba(255,255,255,0.45)}
.row .date{font-size:22px;letter-spacing:1px;font-family:herbus,"herbus Fallback",Georgia,"Times New Roman",serif}
.row .date small{display:block;font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-top:8px}
.row .city{font-size:19px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;font-family:herbus-serif,"herbus Fallback",Georgia,"Times New Roman",serif;margin:0}
.row .venue{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-top:8px;text-wrap:balance}
.row .buy{justify-self:end}
.loc{display:flex;align-items:center;gap:26px;min-width:0}
.kirk{flex:none;width:64px;height:62px;display:flex;align-items:center;justify-content:center}
.kirk img{display:block;max-width:100%;max-height:100%;opacity:0.92}
.btn{display:inline-block;max-width:190px;padding:14px 26px;background:#fff;color:#000;border:1px solid #fff;font-family:inherit;font-size:10px;font-weight:600;letter-spacing:3px;line-height:1.7;text-transform:uppercase;text-align:center;cursor:pointer}
.btn:hover{background:rgba(255,255,255,0.85);color:#000}
.btn.few{background:transparent;color:#fff}
.btn.few:hover{background:#fff;color:#000}
.btn.soldout{background:transparent;border:1px solid rgba(255,255,255,0.2);color:rgba(255,255,255,0.4);pointer-events:none}
.table-foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:24px 16px 0;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.45)}
.closing{max-width:760px;margin:150px auto 0;text-align:center}
.closing .orn{display:flex;justify-content:center;margin-bottom:36px}
.closing p{font-size:15px;line-height:1.75;letter-spacing:0.4px;text-transform:uppercase;color:rgba(255,255,255,0.85);margin:0;text-wrap:balance;font-family:herbus,"herbus Fallback",Georgia,"Times New Roman",serif}
.closing .site{margin-top:48px;font-size:11px;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,0.55)}
footer{margin:80px 40px 0;padding:40px 16px;border-top:1px solid rgba(255,255,255,0.1);display:grid;grid-template-columns:1fr auto 1fr;gap:24px;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.45)}
footer>span:last-child{justify-self:end}
footer a{color:rgba(255,255,255,0.45)}
footer a:hover{color:#fff}
.drawer-veil{position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity 0.25s;z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100vw);background:#000;border-left:1px solid rgba(255,255,255,0.18);transform:translateX(102%);transition:transform 0.3s cubic-bezier(0.22,1,0.36,1);z-index:41;display:flex;flex-direction:column}
body.drawer-open .drawer{transform:none}
body.drawer-open .drawer-veil{opacity:1;pointer-events:auto}
/* A fixed panel does not take the page out of the scroll chain. Without the
   lock, a drag that starts on .dw-head or .dw-foot — neither of which
   scrolls — or one that runs past the end of .dw-body moves the show list
   BEHIND the drawer, which reads as the drawer refusing to scroll. The two
   halves fix two different halves of that: overscroll-behavior:contain (on
   the two .._body scrollers) stops the chaining at their own ends, and this
   takes the page out of flow entirely, which is the part iOS Safari needs —
   overflow:hidden on body alone it simply ignores. JS carries the offset in
   `top` and puts it back on close, so the fan lands on the row they opened.

   Stretched by left+right and NOT by width:100%, so the scrollbar gutter JS
   adds as padding comes out of this box rather than on top of it — width
   would resolve against the whole viewport and shove every centred block
   sideways at the moment the drawer opens. */
body.scroll-locked{position:fixed;left:0;right:0}
/* Both panels enter from the right, so a rightward swipe is what undoes them
   (dragToClose() below). While a finger is on one, .dragging kills the slide
   transition so the panel sits exactly under the hand; dropping the class
   hands the last stretch back to the stylesheet, which animates both the
   snap-back and the close. */
.drawer.dragging,.mappanel.dragging{transition:none}
.dw-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 32px 22px;border-bottom:1px solid rgba(255,255,255,0.12)}
.dw-head .back{background:none;border:none;color:#fff;font-family:inherit;font-size:18px;cursor:pointer;padding:2px 10px 2px 0;line-height:1}
.dw-title{font-family:herbus-serif,"herbus Fallback",Georgia,"Times New Roman",serif;font-weight:500;font-size:22px;letter-spacing:0.5px;text-transform:uppercase;line-height:1.2}
.dw-kirk{flex:none;width:46px;height:52px;display:none;align-items:center;justify-content:center;margin-right:2px}
.dw-kirk img{display:block;max-width:100%;max-height:100%;opacity:0.92}
.dw-sub{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-top:8px}
.dw-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:2px 0 2px 10px;line-height:1;font-family:inherit}
.dw-close:hover,.dw-head .back:hover{color:rgba(255,255,255,0.6)}
.dw-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:28px 32px}
.dw-label{font-size:9px;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:22px}
.tt-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,0.1)}
.tt-row:first-of-type{padding-top:0}
.tt-name{font-size:13px;letter-spacing:1px;text-transform:uppercase}
.tt-price{font-size:11px;color:rgba(255,255,255,0.55);margin-top:6px;letter-spacing:1px}
.stepper{display:flex;align-items:center;gap:14px}
.stepper button{width:40px;height:40px;background:transparent;border:1px solid rgba(255,255,255,0.28);color:#fff;font-family:inherit;font-size:16px;cursor:pointer;transition:all 0.15s}
.stepper button:hover{border-color:#fff}
.stepper button:disabled{opacity:0.3;cursor:default;border-color:rgba(255,255,255,0.28)}
.stepper .qty{min-width:20px;text-align:center;font-size:15px}
.dw-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 32px;border-top:1px solid rgba(255,255,255,0.12)}
.dw-total .n{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.5)}
.dw-total .s{font-family:herbus,"herbus Fallback",Georgia,"Times New Roman",serif;font-size:22px;margin-top:4px}
.dw-cta{padding:16px 30px;background:#fff;color:#000;border:1px solid #fff;font-family:inherit;font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;cursor:pointer;white-space:nowrap}
.dw-cta:hover{background:rgba(255,255,255,0.85)}
.dw-cta:disabled{background:transparent;border-color:rgba(255,255,255,0.2);color:rgba(255,255,255,0.4);cursor:default}
.sum-row{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,0.1);font-size:12px;letter-spacing:1px;text-transform:uppercase}
.sum-row .q{color:rgba(255,255,255,0.5);margin-right:10px}
.sum-total{display:flex;justify-content:space-between;gap:16px;padding:18px 0;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.dw-field{margin-top:28px}
.dw-field label{display:block;font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:10px}
.dw-field input{width:100%;padding:15px 16px;background:transparent;border:1px solid rgba(255,255,255,0.25);color:#fff;font-family:inherit;font-size:13px;letter-spacing:1px;box-sizing:border-box}
.dw-field input:focus{outline:none;border-color:#fff}
.dw-hint{font-size:10px;letter-spacing:1px;color:rgba(255,255,255,0.45);margin-top:10px;text-transform:uppercase}
.dw-note{font-size:11px;line-height:1.8;letter-spacing:0.5px;color:rgba(255,255,255,0.5);margin-top:22px;text-transform:uppercase}
/* Drawer loading state. The ring carries the "something is happening" signal
   and the text carries the meaning, so the text is not decoration — with
   reduced motion the ring stops and the sentence still says everything. */
.dw-loading{display:flex;align-items:center;gap:14px;margin-top:22px}
.dw-loading .dw-note{margin-top:0}
.dw-spin{width:12px;height:12px;flex:none;border:1px solid rgba(255,255,255,0.2);border-top-color:rgba(255,255,255,0.7);border-radius:50%;animation:dwspin 0.8s linear infinite}
@keyframes dwspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.dw-spin{animation:none;border-top-color:rgba(255,255,255,0.2)}}
.dw-error{font-size:10px;line-height:1.9;letter-spacing:1px;color:rgba(255,120,120,0.9);margin-top:18px;text-transform:uppercase}
/* The hold countdown. Quiet by design: it is reassurance, not a threat, and
   the seats are genuinely reserved while it runs. Empty when there is no
   hold, so it collapses rather than leaving a gap. */
.dw-hold{font-size:10px;letter-spacing:2px;color:rgba(255,255,255,0.55);margin-top:14px;text-transform:uppercase}
.dw-hold:empty{display:none}
.dw-error a{color:#fff;border-bottom:1px solid rgba(255,255,255,0.4)}
/* Failed-fetch retry: monochrome, same vocabulary as .dw-cta but ghost
   (transparent) so it never reads as the purchase action. Used both for the
   auto-retrying "Retrying in Xs" countdown and the manual "Try again". */
.dw-retry{margin-top:16px;padding:13px 24px;background:transparent;border:1px solid rgba(255,255,255,0.5);color:#fff;font-family:inherit;font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;cursor:pointer}
.dw-retry:hover{border-color:#fff;background:rgba(255,255,255,0.06)}
.dw-optin{display:flex;align-items:flex-start;gap:12px;margin-top:24px;cursor:pointer}
.dw-optin input{-webkit-appearance:checkbox;appearance:auto;width:15px;height:15px;min-width:15px;margin:3px 0 0;accent-color:#fff;cursor:pointer}
.dw-optin span{font-size:10px;line-height:1.9;letter-spacing:1px;color:rgba(255,255,255,0.5);text-transform:uppercase}
.dw-optin a{color:rgba(255,255,255,0.85);border-bottom:1px solid rgba(255,255,255,0.4)}
.dw-optin a:hover{color:#fff}
/* ---- zone seating (zoned rows, each with its own seat map) ---- */
.dw-labelrow{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}
.dw-venue{margin:0 0 4px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,0.1);font-size:10px;line-height:2;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,0.55);text-wrap:pretty}
.map-link{background:none;border:none;color:#fff;font-family:inherit;font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;cursor:pointer;padding:0 0 3px;border-bottom:1px solid rgba(255,255,255,0.35)}
.map-link:hover{color:rgba(255,255,255,0.7)}
.tt-row.zoned{display:block}
.tt-main{display:flex;align-items:center;justify-content:space-between;gap:16px}
.tt-meta{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.4);margin-top:8px}
.tt-blurb{font-size:10px;line-height:2;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-top:12px;max-width:300px;text-wrap:pretty}
.tt-zone-toggle{background:none;border:none;color:rgba(255,255,255,0.55);font-family:inherit;font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;cursor:pointer;padding:10px 0 0;display:inline-flex;align-items:center;gap:8px}
.tt-zone-toggle:hover{color:#fff}
.tt-zone-toggle .tgl{display:inline-block;width:14px;text-align:center}
.zone-detail{display:none;margin-top:18px;border:1px solid rgba(255,255,255,0.16);padding:18px}
.tt-row.open .zone-detail{display:block}
.zone-detail .zd-map{background:#000}
.zone-detail .zd-map svg{display:block;width:100%;height:auto}
.mappanel{position:fixed;top:0;bottom:0;right:min(480px,100vw);width:min(460px,calc(100vw - 480px));background:#000;border-left:1px solid rgba(255,255,255,0.18);border-right:1px solid rgba(255,255,255,0.12);transform:translateX(calc(100% + 480px));transition:transform 0.3s cubic-bezier(0.22,1,0.36,1);z-index:41;display:flex;flex-direction:column}
body.map-open .mappanel{transform:none}
.mp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 28px 20px;border-bottom:1px solid rgba(255,255,255,0.12)}
.mp-title{font-family:herbus-serif,"herbus Fallback",Georgia,"Times New Roman",serif;font-weight:500;font-size:19px;letter-spacing:0.5px;text-transform:uppercase}
.mp-sub{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-top:8px}
.mp-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:24px 28px}
.mp-body svg{display:block;width:100%;height:auto}
.mp-note{margin-top:18px;font-size:8px;line-height:2;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.4)}
.mp-tally{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.12);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.55)}
@media (max-width:1000px){
.mappanel{right:0;width:100vw;border-right:none;transform:translateX(102%);z-index:42}
}
.smap .outline{fill:none;stroke:rgba(255,255,255,0.22);stroke-width:1}
.smap .stage{fill:rgba(255,255,255,0.10);stroke:rgba(255,255,255,0.3);stroke-width:1}
.smap .alter{fill:#fff}
.smap .alter-t{fill:#000;font-size:8px;letter-spacing:2px;font-family:inherit;text-transform:uppercase}
.smap .zn rect{fill:rgba(255,255,255,0.05);stroke:rgba(255,255,255,0.3);stroke-width:1;transition:all 0.15s;cursor:pointer}
.smap .zn text{fill:rgba(255,255,255,0.75);font-size:9px;letter-spacing:1.5px;font-family:inherit;text-transform:uppercase;pointer-events:none}
.smap .zn .cap{fill:rgba(255,255,255,0.4);font-size:7px;letter-spacing:1px}
.smap .zn:hover rect{fill:rgba(255,255,255,0.14)}
.smap .zn.hl rect{fill:#fff;stroke:#fff}
.smap .zn.hl text{fill:#000}
.smap .zn.hl .cap{fill:rgba(0,0,0,0.6)}
.smap .lbl{fill:rgba(255,255,255,0.35);font-size:7px;letter-spacing:2px;font-family:inherit;text-transform:uppercase}
.smap.mini .zn rect{cursor:default}
.smap.mini .zn:hover rect{fill:rgba(255,255,255,0.05)}
.smap.mini .zn.hl:hover rect{fill:#fff}
@media (max-width:860px){
.hero{min-height:520px}
.hero-inner{padding:24px 20px 32px}
.topbar span.mid{display:none}
.hero-logo{font-size:clamp(28px,8.5vw,40px)}
.hero-sub{font-size:12px}
.dates{padding:70px 20px 60px}
.ledger{margin-bottom:64px}
.ledger-inner{grid-auto-flow:row;width:100%}
.ledger-cell+.ledger-cell{border-left:none;border-top:1px solid rgba(255,255,255,0.22)}
.table-head{display:none}
.row{grid-template-columns:1fr;gap:14px;padding:26px 4px}
.row .no{display:none}
.loc{gap:18px}
.kirk{width:52px;height:50px}
.row .buy{justify-self:stretch;margin-top:8px}
.row .buy .btn{display:block;width:100%;max-width:none;text-align:center;padding:16px 26px}
.table-foot{flex-direction:column;gap:8px;padding:20px 4px 0}
.closing{margin-top:90px}
footer{margin:60px 20px 0;grid-template-columns:1fr;gap:10px}
footer>span:last-child{justify-self:start}
.dw-head{padding:22px 20px 18px}
.dw-body{padding:22px 20px}
.dw-foot{padding:18px 20px calc(18px + env(safe-area-inset-bottom))}
.stepper button{width:44px;height:44px}
.dw-field input{font-size:16px}
.dw-cta{padding:16px 22px}
.mp-head{padding:22px 20px 16px}
.mp-body{padding:20px}
}
.vh{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
