.ticket-stub{background:var(--paper);color:var(--ink);border-bottom:1px dashed #8f8272}
.poster-ticket{--ticket-stub-height:132px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius);background:var(--paper);color:var(--ink);padding:calc(var(--ticket-stub-height) + 7px) 7px 7px;box-shadow:0 30px 70px rgba(0,0,0,.34)}
.poster-ticket::before,.poster-ticket::after{content:"";position:absolute;z-index:5;top:calc(var(--ticket-stub-height) - 11px);width:22px;height:22px;border-radius:50%;background:var(--bg)}.poster-ticket::before{left:-12px}.poster-ticket::after{right:-12px}
.ticket-art{display:block;width:100%;height:100%;overflow:hidden;border-radius:calc(var(--radius) - 5px);background:#0c0c0e}.poster-ticket img{display:block;width:100%;height:100%;object-fit:cover;background:#0c0c0e}
.ticket-meta{position:absolute;z-index:4;left:7px;right:7px;top:0;height:var(--ticket-stub-height);padding:16px 13px 13px;display:flex;flex-direction:column;justify-content:center;text-align:left;overflow:hidden}.ticket-meta strong{font:950 clamp(20px,2.2vw,31px)/.86 var(--display);letter-spacing:-.035em;text-transform:uppercase}.ticket-meta span{margin-top:7px;color:#716659;font-size:13px;font-weight:750;line-height:1.4}.ticket-price{position:absolute;z-index:4;right:14px;bottom:14px;padding:9px 11px;border:1px solid rgba(23,18,15,.14);border-radius:7px;background:var(--paper);color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.25);font-size:10px;font-weight:900}.event-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.event-card{position:relative;min-width:0;aspect-ratio:.66;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}.event-card:hover{transform:translateY(-8px) rotate(.3deg);box-shadow:0 34px 80px rgba(0,0,0,.52)}.event-card a{position:absolute;inset:0;z-index:6}.event-card .poster-ticket{height:100%}.event-card .ticket-meta strong{font-size:24px}.event-card.no-event{aspect-ratio:.66}.proof-rail{display:grid;grid-template-columns:1.2fr .8fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.proof-rail div{min-height:150px;padding:28px 24px;border-right:1px solid var(--line)}.proof-rail div:last-child{border-right:0}.proof-rail strong{display:block;font:950 35px/1 var(--display);color:var(--brand)}.proof-rail span{display:block;max-width:300px;margin-top:12px;color:var(--muted);font-size:12px;line-height:1.55}
.city-dialog{width:min(680px,calc(100vw - 28px));max-height:min(700px,calc(100dvh - 40px));border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:0;background:#121214;color:var(--text);box-shadow:0 50px 150px rgba(0,0,0,.75);overscroll-behavior:contain}.city-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(12px)}.city-panel{padding:28px}.city-panel-head{display:flex;align-items:center;justify-content:space-between;gap:24px}.city-panel h2{margin:0;font:950 clamp(30px,5vw,48px)/.9 var(--display);letter-spacing:-.04em;text-transform:uppercase}.dialog-close{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:transparent;color:#fff;cursor:pointer;font-size:22px}.city-detect-row{display:flex;align-items:center;gap:14px;margin:20px 0 16px}.city-detect{min-height:44px;padding:0 15px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:#1a1a1e;color:#fff;font-size:13px;font-weight:800;cursor:pointer}.city-detect:hover{border-color:var(--brand)}.city-detect:disabled{opacity:.55;cursor:wait}.city-status{flex:1;margin:0;color:#bdb8b0;font-size:13px;font-weight:600;line-height:1.4}.city-search{width:100%;height:50px;margin:0 0 16px;border:1px solid rgba(255,255,255,.22);border-radius:11px;background:#09090a;color:#fff;padding:0 15px}.city-search::placeholder{color:#8c8983}.city-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-height:390px;overflow:auto;overscroll-behavior:contain}.city-option{min-height:55px;border:1px solid var(--line);border-radius:11px;background:#18181b;color:#fff;text-align:left;padding:10px 13px;cursor:pointer}.city-option:hover,.city-option[aria-pressed=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 15%,#18181b)}@media(max-width:1380px){.event-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:1100px){.event-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.event-grid{grid-template-columns:repeat(2,1fr);gap:11px}.event-card .ticket-meta strong{font-size:20px}.proof-rail{grid-template-columns:1fr}.proof-rail div{border-right:0;border-bottom:1px solid var(--line)}.proof-rail div:last-child{border-bottom:0}.city-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.event-grid{grid-template-columns:1fr}.event-card{aspect-ratio:.74}.city-panel{padding:20px}.city-detect-row{display:block}.city-status{margin-top:10px}.city-list{grid-template-columns:1fr}}
.ticket-details{display:flex;flex-direction:column;gap:3px}.ticket-details .ticket-date-time,.ticket-details .ticket-venue,.ticket-details .ticket-empty{display:block;margin:0}.ticket-details .ticket-date-time{color:#3d342c;font-weight:900}.ticket-details .ticket-venue{color:#62584e}.ticket-meta span{font-size:14px;font-weight:800;line-height:1.45}.ticket-price{font-size:12px}/* Real notches for catalog tickets. Cast the shadow outside the scroll clip. */
.poster-ticket{box-shadow:none;mask-image:radial-gradient(circle at 11px var(--ticket-stub-height),transparent 10px,#000 11px),radial-gradient(circle at calc(100% - 11px) var(--ticket-stub-height),transparent 10px,#000 11px);mask-composite:intersect;mask-repeat:no-repeat}
.poster-ticket::before,.poster-ticket::after{display:none}
.event-card,.event-card:hover{box-shadow:none}
.event-grid,.program-grid{filter:drop-shadow(0 18px 20px rgba(0,0,0,.28))}

/* Individual letters arc into the open bin; the hit area stays still. */
.filter-reset.reset-bin{position:relative;isolation:isolate;gap:10px;border-color:transparent;background:transparent;box-shadow:none;min-width:0;width:max-content;max-width:100%;grid-column:-2/-1;justify-self:end;justify-content:flex-start;padding-inline:16px;overflow:visible}
.reset-bin::before{content:"";position:absolute;inset:0;z-index:-1;border:1px solid var(--line);border-radius:999px;background:var(--surface,var(--bg))}
.reset-bin-icon{position:relative;width:20px;height:22px;flex:none;overflow:visible;z-index:2}
.reset-bin-lid{transform-origin:5px 6px}
.reset-bin-body{fill:var(--surface,var(--bg))}
.reset-bin-label{display:inline-flex;white-space:nowrap}
.reset-bin-letter{display:inline-block;transform-origin:center}
.reset-bin.is-resetting::before{animation:resetBinShell 1.9s cubic-bezier(.4,0,.2,1)}
.reset-bin.is-resetting .reset-bin-lid{animation:resetBinLid 1.9s ease-in-out}
.reset-bin.is-resetting .reset-bin-icon{animation:resetBinBounce 1.9s ease-in-out}
@keyframes resetBinShell{0%,48%,100%{clip-path:inset(0 round 999px)}62%,73%{clip-path:inset(0 calc(100% - 52px) 0 0 round 999px)}}
@keyframes resetBinLid{0%,4%,60%,100%{transform:rotate(0)}12%,51%{transform:translate(-2px,-5px) rotate(-42deg)}}
@keyframes resetBinBounce{0%,59%,78%,100%{transform:rotate(0)}64%{transform:translateY(1px) rotate(-9deg)}70%{transform:rotate(7deg)}74%{transform:rotate(-3deg)}}
@media(prefers-reduced-motion:reduce){.reset-bin.is-resetting::before,.reset-bin.is-resetting .reset-bin-lid,.reset-bin.is-resetting .reset-bin-icon{animation:none}}


/* Heraldry shared by the header city dialog and afisha filters. */
.city-choice-arms{display:block;flex:0 0 27px;width:27px;height:36px;background:currentColor;-webkit-mask-image:var(--arms-image);mask-image:var(--arms-image);-webkit-mask-size:400% 200%;mask-size:400% 200%;-webkit-mask-position:var(--arms-x) var(--arms-y);mask-position:var(--arms-x) var(--arms-y);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.city-option{display:flex;align-items:center;gap:11px}.city-option>span:last-child{min-width:0;overflow-wrap:anywhere}
.picker-options button{gap:12px}.picker-option-label{flex:1;min-width:0}.picker-options .city-choice-arms{flex-basis:24px;width:24px;height:32px}
