/* 0.5: existing cards, palette and buttons; manual categories and personal attendees. */
.universe-slider .category-grid{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0;overscroll-behavior-x:contain;padding:0 0 16px;scrollbar-width:thin;scrollbar-color:var(--cacao) var(--rose)}
.universe-slider .category-card{flex:0 0 calc((100% - 68px)/3.2);min-width:0;scroll-snap-align:start}
.slider-controls{display:flex;gap:15px;justify-content:flex-end;margin-top:22px}
.slider-controls button{min-width:52px;min-height:48px;padding:10px;gap:0}
.slider-controls button:disabled{opacity:.35;cursor:default;box-shadow:none;transform:none}
.viva-attendees{border:1px solid var(--line);padding:22px;margin:24px 0;width:100%;clear:both;flex-basis:100%}
.viva-attendees legend{font-size:14px;padding:0 8px}.viva-attendees>p{font-size:12px}.viva-attendees p:last-child{margin-bottom:0}
.viva-ticket svg{border:1px solid var(--line)}.viva-order-tickets{margin-top:45px}
.viva-upcoming .experience-card .button{margin-top:8px}.viva-upcoming .experience-photo img{height:100%;object-fit:cover}
@media(max-width:1000px){.universe-slider .category-card{flex-basis:44%}}
@media(max-width:600px){.universe-slider .category-card{flex-basis:82%}.viva-ticket{padding:20px!important}.viva-attendees{padding:16px}}
/* 0.6 personal event ticket: photographic body and perforated admission stub. */
.viva-ticket.viva-ticket-v6{padding:0!important;display:grid;grid-template-columns:minmax(0,1fr) 260px;box-shadow:7px 7px 0 rgba(44,12,9,.13)}
.viva-ticket-brand{display:flex;justify-content:space-between;align-items:center;gap:20px}.viva-ticket-brand img{height:48px;object-fit:contain;object-position:left center}.viva-ticket-brand span{font-size:8px;letter-spacing:.12em;text-align:right}
.viva-ticket-event-image{max-height:none!important}.viva-ticket-details h3{font-family:var(--sans);font-size:clamp(22px,2.2vw,33px);line-height:1.2;letter-spacing:-.03em;margin:0 0 25px}
.viva-ticket-details .eyebrow{display:block;font-size:8px;margin-bottom:8px}.viva-ticket-info{display:grid;grid-template-columns:1fr 1fr;gap:20px}.viva-ticket-info p{font-size:11px;line-height:1.65;margin-bottom:24px}.viva-ticket-name{font-size:16px;margin:0;overflow-wrap:anywhere}
.viva-ticket-stub{border-left:1px dashed var(--cacao);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;gap:12px}.viva-ticket-stub::before,.viva-ticket-stub::after{content:'';position:absolute;width:18px;height:18px;background:var(--ivory);border:1px solid var(--cacao);border-radius:50%;left:-10px}.viva-ticket-stub::before{top:-10px}.viva-ticket-stub::after{bottom:-10px}.viva-ticket-stub .eyebrow{font-size:8px;margin:0}.viva-ticket-stub p{margin:0}.viva-ticket-stub svg{border:0;flex:none}.viva-ticket-actions{display:flex;align-items:center;flex-direction:column;gap:20px;margin:10px 0}.viva-ticket-actions .button{font-size:9px;gap:10px;padding:13px;box-shadow:3px 3px 0 var(--cacao)}.viva-wallet-link{font-size:9px;gap:8px}
@media(max-width:900px){.viva-ticket.viva-ticket-v6{grid-template-columns:1fr}.viva-ticket-stub{border-left:0;border-top:1px dashed var(--cacao)}.viva-ticket-stub::before{top:-10px;left:-10px}.viva-ticket-stub::after{top:-10px;right:-10px;left:auto}.viva-ticket-brand{gap:12px}.viva-ticket-brand span{font-size:7px}.viva-ticket-info{grid-template-columns:1fr;gap:0}}
