/* TICKETS B: physical ticket stubs */
.v-tickets-b{background:radial-gradient(90% 70% at 70% 30%,#24563b,#0f2e1f 70%);color:#fff;padding:clamp(80px,10vw,140px) 0;overflow:hidden}
.v-tickets-b .tb-wrap{width:min(1240px,100% - 40px);margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,5vw,80px);align-items:center}
.v-tickets-b h2{font-size:clamp(2.4rem,6vw,5.2rem)}
.v-tickets-b .tb-lede{font-size:1.15rem;margin-top:18px;max-width:40ch}
.v-tickets-b .tb-pill{display:inline-block;margin-top:20px;background:var(--gold);color:var(--ink);font-family:var(--fb);text-transform:uppercase;font-size:.85rem;padding:9px 16px;border-radius:99px;border:3px solid var(--ink);box-shadow:4px 4px 0 #000}
.v-tickets-b .tb-early{font-size:1rem;margin-top:14px;max-width:40ch;opacity:.9}
.v-tickets-b .tb-hint{font-family:var(--fh);font-size:1.2rem;color:var(--gold);margin-top:22px;transform:rotate(-3deg);display:inline-block;margin-left:14px}
.v-tickets-b .tb-stack{display:grid;gap:0;perspective:1200px}
.v-tickets-b .tb-t{--rx:0deg;--ry:0deg;--gx:50%;position:relative;display:grid;grid-template-columns:1fr clamp(84px,9vw,118px);color:var(--ink);margin-top:-18px;
  transform:rotate(calc((var(--i) - 1.5) * 1.6deg)) translateX(calc((var(--i) - 1.5) * 18px)) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .3s ease,filter .3s;filter:drop-shadow(8px 10px 0 rgba(0,0,0,.55));z-index:calc(var(--i) + 1)}
.v-tickets-b .tb-t:first-child{margin-top:0}
.v-tickets-b .tb-t:hover,.v-tickets-b .tb-t:focus-within{z-index:10;transform:translateY(-10px) rotate(0) rotateX(var(--rx)) rotateY(var(--ry))}
.v-tickets-b .tb-main,.v-tickets-b .tb-stub{position:relative;border:4px solid var(--ink);background:var(--bg,#fff)}
.v-tickets-b .tb-main{border-right:0;border-radius:18px 0 0 18px;padding:clamp(16px,2vw,22px) clamp(16px,2.4vw,28px);overflow:hidden;
  -webkit-mask:radial-gradient(circle 14px at 100% 0,transparent 97%,#000) top right/100% 51% no-repeat,radial-gradient(circle 14px at 100% 100%,transparent 97%,#000) bottom right/100% 51% no-repeat;
  mask:radial-gradient(circle 14px at 100% 0,transparent 97%,#000) top right/100% 51% no-repeat,radial-gradient(circle 14px at 100% 100%,transparent 97%,#000) bottom right/100% 51% no-repeat}
.v-tickets-b .tb-main::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.35) 45%,transparent 60%);background-size:250% 100%;background-position:var(--gx) 0;pointer-events:none;mix-blend-mode:soft-light}
.v-tickets-b .tb-stub{border-left:4px dashed var(--ink);border-radius:0 18px 18px 0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:12px 6px;gap:8px;transform-origin:0 100%;transition:transform .8s cubic-bezier(.5,0,.75,0),opacity .8s}
.v-tickets-b .tb-ga{--bg:var(--green)}.v-tickets-b .tb-ga .tb-main{color:#fff}
.v-tickets-b .tb-u18{--bg:#fff}
.v-tickets-b .tb-vip{--bg:var(--red)}.v-tickets-b .tb-vip .tb-main{color:#fff}
.v-tickets-b .tb-vvip{--bg:var(--ink)}.v-tickets-b .tb-vvip .tb-main,.v-tickets-b .tb-vvip .tb-stub{color:var(--gold)}
.v-tickets-b .tb-vvip .tb-stub{border-left-color:var(--gold)}
.v-tickets-b .tb-stub{color:var(--ink);background:var(--gold)}
.v-tickets-b .tb-vvip .tb-stub{background:#2b2b2b}
.v-tickets-b .tb-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.v-tickets-b .tb-top img{height:26px;width:auto}
.v-tickets-b .tb-age{font-family:var(--fb);font-size:.7rem;text-transform:uppercase;border:3px solid currentColor;border-radius:99px;padding:2px 10px}
.v-tickets-b .tb-new{display:inline-block;margin-top:10px;background:var(--ink);color:var(--gold);font-family:var(--fb);text-transform:uppercase;font-size:.66rem;padding:4px 10px;border-radius:99px}
.v-tickets-b .tb-main h3{font-size:clamp(1.9rem,4vw,3.3rem);margin:8px 0 2px}
.v-tickets-b .tb-note{font-weight:700;opacity:.9}
.v-tickets-b .tb-meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:12px;font-size:.78rem}
.v-tickets-b .tb-meta dt{text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;opacity:.75}
.v-tickets-b .tb-meta dd{font-family:var(--fb);text-transform:uppercase}
.v-tickets-b .tb-admit{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--fb);text-transform:uppercase;font-size:.78rem;letter-spacing:.14em}
.v-tickets-b .tb-code{width:70%;height:34px;background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 4px,currentColor 4px 7px,transparent 7px 9px,currentColor 9px 10px,transparent 10px 13px)}
.v-tickets-b .tb-no{font-family:var(--fb);font-size:.66rem}
.v-tickets-b .tb-tear{background:var(--ink);color:#fff;border:0;border-radius:99px;font-family:var(--fb);text-transform:uppercase;font-size:.66rem;padding:7px 10px;cursor:pointer;transition:transform .2s}
.v-tickets-b .tb-vvip .tb-tear{background:var(--gold);color:var(--ink)}
.v-tickets-b .tb-tear:hover{transform:scale(1.08) rotate(-4deg)}
.v-tickets-b .tb-stamp{position:absolute;right:14px;bottom:12px;font-family:var(--fh);font-size:clamp(1.6rem,3vw,2.4rem);color:var(--red);border:4px solid var(--red);border-radius:12px;padding:0 12px;transform:rotate(-12deg) scale(2);opacity:0;transition:transform .35s cubic-bezier(.2,1.6,.4,1) .35s,opacity .2s .35s;background:rgba(255,255,255,.85)}
.v-tickets-b .tb-back{position:absolute;left:clamp(16px,2.4vw,28px);bottom:12px;opacity:0;pointer-events:none;background:none;border:0;text-decoration:underline;cursor:pointer;font-weight:800;font-size:.8rem;color:inherit}
.v-tickets-b .torn .tb-stub{transform:translate(30px,160px) rotate(38deg);opacity:0;pointer-events:none}
.v-tickets-b .torn .tb-stamp{opacity:1;transform:rotate(-12deg) scale(1)}
.v-tickets-b .torn .tb-back{opacity:1;pointer-events:auto}
.v-tickets-b .torn .tb-meta{visibility:hidden}
@media(max-width:960px){
  .v-tickets-b .tb-wrap{grid-template-columns:1fr}
  .v-tickets-b .tb-t{margin-top:14px;transform:rotate(calc((var(--i) - 1.5) * 1deg)) rotateX(var(--rx)) rotateY(var(--ry))}
}
@media(max-width:480px){
  .v-tickets-b .tb-t{grid-template-columns:1fr 74px}
  .v-tickets-b .tb-meta{gap:4px 14px}
  .v-tickets-b .tb-top img{height:20px}
}
