:root{color-scheme:dark;--purple:#0d0819;--ink:#f6f2fa;--accent:#a56bff;--pink:#8843ef;font-family:Arial,Helvetica,sans-serif;background:var(--purple);color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;min-width:280px}body{overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.accessible-copy{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.stage{--poster-width:min(110vw,calc(100dvh * .5625));--poster-height:calc(var(--poster-width) * 16 / 9);--edge-shift:calc((100dvh - var(--poster-height)) / 2);position:relative;width:100%;height:100vh;height:100svh;height:100dvh;overflow:hidden;overflow:clip;isolation:isolate;background:#0d0819}
.poster-plane{position:absolute;top:50%;left:50%;width:var(--poster-width);height:var(--poster-height);transform:translate(-50%,-50%);container-type:inline-size}.poster{display:block;width:100%;height:100%;mask-image:linear-gradient(to bottom,transparent 0 15.625%,#000 16.25% 83.75%,transparent 84.375% 100%);pointer-events:none;user-select:none}.edge-case{position:absolute;left:50%;width:var(--poster-width);transform:translateX(-50%);overflow:clip;pointer-events:none;user-select:none}.edge-case img{position:absolute;width:100%;height:auto;left:0}.edge-case-top{top:0;height:calc(var(--poster-width) * 330 / 1080);mask-image:linear-gradient(#000 0 95%,transparent)}.edge-case-top img{top:0}.edge-case-bottom{bottom:0;height:calc(var(--poster-width) * 320 / 1080);mask-image:linear-gradient(transparent,#000 5% 100%)}.edge-case-bottom img{bottom:0}
/* Geometry is measured in the reference poster's 1080 × 1920 coordinate plane.
   The two moving circular label surfaces are copies of the complete middle CD.
   The transparent jewel cases, center hub and main poster never rotate. */
.disc{position:absolute;left:16.944444%;width:67.962963%;aspect-ratio:1;pointer-events:none;user-select:none;overflow:hidden;border-radius:50%;mask-image:radial-gradient(circle closest-side,transparent 0 36%,#000 36.6% 98.7%,transparent 99.4%);-webkit-mask-image:radial-gradient(circle closest-side,transparent 0 36%,#000 36.6% 98.7%,transparent 99.4%)}
.disc-top{top:calc(-27.708333% - var(--edge-shift))}.disc-bottom{top:calc(89.0625% + var(--edge-shift))}
.disc-surface{position:absolute;inset:0;animation:disc-spin 28s linear infinite;transform-origin:50% 50%;will-change:transform}.disc-bottom .disc-surface{animation-duration:34s;animation-direction:reverse}
.disc-surface img{position:absolute;width:147.138965%;height:auto;max-width:none;left:-24.93188%;top:-67.71117%;pointer-events:none;user-select:none}
@keyframes disc-spin{to{transform:rotate(360deg)}}
.ticket-hub{position:absolute;left:50.925926%;top:45%;transform:translate(-50%,-50%);width:22.6%;aspect-ratio:1;background:transparent;border-radius:50%;padding:0;display:block;min-width:44px;min-height:44px;color:var(--ink);text-align:center}
.hub-word{position:absolute;left:0;right:0;display:block;font-size:3.25cqw;line-height:1;font-weight:900;letter-spacing:.07em;text-shadow:0 1px 1px #34004f55;pointer-events:none}.hub-word-top{top:14%}.hub-word-bottom{bottom:14%}.hub-hole{position:absolute;left:28%;right:28%;top:28%;bottom:28%;border-radius:50%;box-shadow:0 0 0 1px #c79bff44;transition:box-shadow .2s,background .2s;pointer-events:none}.ticket-hub:hover .hub-hole,.ticket-hub:focus-visible .hub-hole{box-shadow:0 0 0 2px var(--accent),0 0 30px #8a3dff88;background:#a56bff24}.ticket-hub:active .hub-hole{background:#a56bff44}.ticket-hub:focus-visible{outline-offset:4px}
.event-details-link{position:absolute;left:27%;top:79%;width:46%;height:4.4%;background:transparent;border-radius:4px}
.utility-controls{position:absolute;right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));display:flex;gap:3px;z-index:3}.utility-button{display:grid;place-items:center;width:44px;height:44px;background:#100a1ecc;color:var(--ink);border:1px solid #bc91ff44;border-radius:50%;backdrop-filter:blur(4px)}.utility-button svg{width:17px;height:17px}.utility-button:hover{background:#2d144bdd}
/* Readable live content and controls accompany the reference-led raster artwork. */
dialog{width:min(460px,calc(100% - 28px));max-height:calc(100svh - 32px);padding:22px 25px 25px;background:#100b1c;color:var(--ink);border:1px solid #b989ff66;box-shadow:0 0 0 5px #b989ff1a,0 20px 80px #000000aa;overflow:auto;border-radius:8px}dialog::backdrop{background:#050309df;backdrop-filter:blur(9px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:28px;font-size:10px;font-weight:700;letter-spacing:.06em}.close-button{background:transparent;border:1px solid #b989ff66;width:44px;height:44px;font-size:29px;line-height:1;flex-shrink:0}h2{font-size:clamp(32px,7vw,43px);line-height:.96;font-weight:900;letter-spacing:-1.4px;margin:0 0 22px}dialog p{font-size:14px;line-height:1.65;color:#d8d0e6}dialog .dialog-note{font-size:11px;text-align:center;margin:17px 0 0;color:#bfb0d6}.dialog-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;width:100%;padding:14px 17px;background:#7134d9;color:#ffffff;font-size:12px;font-weight:800;margin-top:25px}.dialog-cta span{font-size:21px}.details{margin:26px 0 0}.details>div{display:grid;grid-template-columns:65px 1fr;gap:12px;padding:15px 0;border-top:1px solid #b989ff33;font-size:13px;line-height:1.6}.details dt{font-size:10px;font-weight:700;color:var(--ink)}.details dd{margin:0;color:#d8d0e6}.text-button{display:block;min-height:44px;background:transparent;font-size:12px;margin:10px auto 0;text-decoration:underline;text-underline-offset:4px}.event-list{list-style:none;padding:0;margin:20px 0 0}.event-list li{display:flex;align-items:center;gap:15px;padding:23px 0;border-top:1px solid #b989ff33}.list-date{min-width:70px;font-size:22px;font-weight:900;line-height:1}.list-date span{display:block;font-size:10px;font-weight:400;letter-spacing:1px;color:#bfb0d6;margin-top:7px}.event-list h3{font-size:13px;margin:0 0 5px;font-weight:700}.event-list p{font-size:11px;margin:0;line-height:1.5}
@media(min-aspect-ratio:4/5){.poster-plane{box-shadow:0 0 80px 12px #8d29e31f}.utility-controls{right:22px;bottom:22px}}

@media(prefers-reduced-motion:reduce){.disc-surface{animation:none!important}*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* NOCTA after dark palette; preserve geometry and texture while removing pink/yellow. */


/* A restrained violet halo makes the central ticket control the luminous focal point. */
.ticket-hub{filter:drop-shadow(0 0 9px #8a3dff55)}
button:focus-visible,a:focus-visible{outline-color:var(--accent)}
.dialog-cta:hover{background:#8243e6}

/* Price overview only: the ticket provider has not been connected yet. */
#tickets-dialog h2{margin-bottom:18px}
dialog .ticket-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:10px;line-height:1.4;letter-spacing:.03em;color:#cdb7ee;margin:0 0 20px}
.ticket-prices{margin:0;padding:0;border-top:1px solid #b989ff33}
.ticket-prices>div{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:66px;border-bottom:1px solid #b989ff33}
.ticket-prices dt{display:flex;align-items:center;gap:11px;font-size:12px;font-weight:700;letter-spacing:.025em}
.ticket-phase{color:#a56bff;font-size:10px;font-weight:400}
.ticket-prices dd{margin:0;font-size:30px;font-weight:700;white-space:nowrap;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.ticket-prices dd span{font-size:17px;letter-spacing:0;color:#cdb7ee}
dialog .ticket-status{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.5;margin:18px 0 0;color:#cdb7ee}
.status-dot{width:6px;height:6px;border-radius:50%;background:#a56bff;flex-shrink:0}
#tickets-dialog .dialog-cta{margin-top:18px}
#tickets-dialog .dialog-note{margin-top:14px}
@media(max-height:650px){#tickets-dialog{padding:15px 20px 18px}#tickets-dialog .dialog-top{margin-bottom:12px}#tickets-dialog h2{font-size:30px;margin-bottom:12px}dialog .ticket-meta{margin-bottom:12px}.ticket-prices>div{min-height:51px}.ticket-prices dd{font-size:27px}dialog .ticket-status{margin-top:14px}#tickets-dialog .dialog-cta{margin-top:14px}}

.public-legal{position:fixed;bottom:max(8px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:14px;z-index:3;white-space:nowrap;font:10px Arial}.public-legal a{color:#c5b5db;text-decoration:none}.public-legal a:focus-visible{outline:2px solid #c6a2ff;outline-offset:4px}
