:root{color:#f5f1ea;background:#000;font-family:Work Sans,sans-serif;font-synthesis:none;--red: #d15143;--cream: #f1dfbd;--gold: #a8864f;--glass: rgba(20, 18, 25, .82);--page-margin: 28px}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button,a{font:inherit}button{color:inherit}#cinema{position:absolute;inset:0;width:100%;height:100%;cursor:grab;outline:none}#cinema:active{cursor:grabbing}#cinema.seat-hover{cursor:pointer}#app>:not(#cinema,.scene-loader,.ticket-overlay){opacity:0;transition:opacity .45s ease}body:not(.scene-ready) #app>:not(#cinema,.scene-loader,.ticket-overlay){pointer-events:none}body.scene-ready #app>:not(#cinema,.scene-loader,.ticket-overlay){opacity:1}.intro{position:absolute;z-index:2;top:var(--page-margin);left:var(--page-margin);width:340px;pointer-events:none}.eyebrow{display:block;margin-bottom:7px;color:#c9a97f;font-size:10px;font-weight:600;letter-spacing:.19em;text-transform:uppercase}.intro p{margin:0;color:#ffffffeb;font-size:15px;line-height:1.6}.intro-back{display:none;align-items:center;gap:9px;padding:10px 14px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:#141219b8;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .15s ease,border-color .15s ease}.intro-back:hover,.intro-back:focus-visible{background:#302a38eb;border-color:#ffffff38;outline:none}.scene-loader{position:absolute;z-index:8;top:50%;left:50%;width:min(340px,calc(100vw - 48px));color:#ffffff6b;font-size:9px;letter-spacing:.14em;text-transform:uppercase;transform:translate(-50%,-50%);transition:opacity .25s ease}.scene-loader span{display:block;margin-bottom:9px}.scene-loader i{display:block;width:100%;height:1px;overflow:hidden;background:#ffffff24}.scene-loader i:after{content:"";display:block;width:var(--scene-progress, 10%);height:100%;background:var(--cream);box-shadow:0 0 12px #f1dfbda6;transition:width .35s ease}.scene-ready .scene-loader{opacity:0;pointer-events:none}.built-by{position:absolute;z-index:6;right:var(--page-margin);bottom:var(--page-margin);display:flex;align-items:center;gap:8px;color:#ffffff61;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.built-by .credit{white-space:nowrap}.built-by .almost{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .18s ease,opacity .18s ease}.built-by:hover .almost,.built-by:focus-within .almost{max-width:110px;opacity:1}.built-by summary{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;cursor:pointer;list-style:none;transition:color .15s ease;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#ffffff61}.built-by summary::-webkit-details-marker{display:none}.built-by summary:hover,.built-by summary:focus-visible{color:#ffffffb3;outline:none}.built-by .label{color:inherit}.built-by .name{color:#f1dfbd;font-weight:600}.built-by .summary-chevron{width:12px;height:12px;margin-left:2px;fill:currentColor;transition:transform .18s ease}.built-by details[open] .summary-chevron{transform:rotate(180deg)}.glass-menu{display:grid;padding:6px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#141219f0;box-shadow:0 16px 40px #00000052;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.built-by nav{position:absolute;right:0;bottom:calc(100% + 8px);width:176px}.built-by a{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;padding:10px;border-radius:8px;color:#ffffffbd;text-decoration:none;transition:color .15s,background .15s,transform .15s}.built-by a:hover,.built-by a:focus-visible{color:#fff;background:#ffffff1a;transform:translate(1px);outline:none}.built-by a:hover .link-arrow,.built-by a:focus-visible .link-arrow{color:#f1dfbd}.built-by .link-icon{display:block;width:18px;height:18px;padding:3px;border-radius:5px;background:#f1dfbd1f;color:#f1dfbd;fill:currentColor}.built-by .github-icon{padding:3px}.built-by .link-arrow{color:#c9a97f}.map-shell{position:absolute;z-index:4;left:var(--page-margin);bottom:var(--page-margin);width:min(330px,calc(100vw - 40px));pointer-events:none}.seat-map{padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:var(--glass);box-shadow:0 24px 70px #00000059;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;transform-origin:bottom left;transition:opacity .22s ease,transform .22s ease}.map-shell.collapsed .seat-map{opacity:0;transform:translateY(-8px) scale(.96);pointer-events:none}.map-chip{position:absolute;z-index:1;bottom:18px;left:18px;display:flex;align-items:center;gap:0;pointer-events:auto}.map-chip-toggle{flex-shrink:0;transition:background .15s ease}.map-shell:not(.collapsed) .map-chip-toggle{width:30px;height:30px;padding:0;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:#141219e6;cursor:pointer;box-shadow:0 8px 24px #00000038}.map-shell.collapsed .map-chip{gap:8px;padding:0;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:#141219e6;box-shadow:0 8px 24px #00000038;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:background .15s ease;cursor:pointer}.map-shell.collapsed .map-chip:hover{background:#24202af5}.map-shell.collapsed.has-selection .map-chip{animation:map-chip-in .4s cubic-bezier(.22,1,.36,1) both}.map-shell.collapsed .map-chip-toggle{width:auto;height:auto;padding:5px 13px;border:0;border-radius:16px 0 0 16px;background:transparent;box-shadow:none;white-space:nowrap;font-size:12px;font-weight:500;color:#ffffffe0;cursor:pointer}.map-chip-preview,.map-shell.collapsed .map-chip-symbol{display:none}.map-shell.collapsed .map-chip-preview{display:grid;gap:1px;text-align:left}.map-chip-preview small{color:#c9a97f;font-size:8px;font-weight:600;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}.map-chip-preview span{font-size:11px;line-height:1.25}.map-shell.collapsed.has-selection .map-chip-toggle{padding:5px 8px 5px 13px;border-radius:16px 0 0 16px}.map-chip-reserve{display:none;height:30px;padding:0 12px;border:0;border-radius:10px;background:var(--red);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:transform .15s,opacity .15s}.map-chip-reserve span{margin-left:6px}.map-chip-reserve:hover:not(:disabled){transform:translateY(-1px)}.map-chip-reserve:disabled{cursor:not-allowed;opacity:.35}.map-shell.collapsed.has-selection .map-chip-reserve{display:block;margin:5px 5px 5px 0}.map-heading{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:16px;margin-bottom:14px}.map-heading .eyebrow{margin-bottom:0;transform:translateY(-4px)}.screen-format-picker{position:relative;min-width:0;justify-self:end}.screen-format-picker details{position:relative}.screen-format-picker summary{display:flex;align-items:flex-start;justify-content:flex-end;gap:8px;width:max-content;max-width:100%;margin-left:auto;padding:0 8px 5px;border-radius:7px;list-style:none;cursor:pointer;transition:background .15s ease}.screen-format-picker summary::-webkit-details-marker{display:none}.screen-format-picker summary:hover,.screen-format-picker summary:focus-visible{background:#ffffff14;outline:none}.screen-format-picker summary:hover #screen-format-label,.screen-format-picker summary:focus-visible #screen-format-label{color:#f1dfbd}.screen-format-summary{display:grid;justify-items:end;text-align:right}.screen-format-picker #screen-format-label{color:#f5f1ea;font-size:17px;font-weight:600;line-height:28px;white-space:nowrap;transition:color .15s ease}.screen-format-picker #screen-format-detail{color:#ffffff6b;font-size:8px;white-space:nowrap}.screen-format-picker .summary-chevron{width:12px;height:12px;margin-top:8px;fill:#c9a97f;flex-shrink:0;transition:transform .18s ease}.screen-format-picker details[open] .summary-chevron{transform:rotate(180deg)}.screen-format-picker nav{position:absolute;right:0;top:calc(100% + 8px);z-index:5;width:220px}.screen-format-picker nav button{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:10px;width:100%;padding:10px;border:0;border-radius:8px;background:transparent;color:#ffffffbd;font:inherit;text-align:left;cursor:pointer;transition:color .15s,background .15s}.screen-format-picker nav button:hover,.screen-format-picker nav button:focus-visible{color:#fff;background:#ffffff1a;outline:none}.screen-format-picker nav button[aria-current=true]{color:#f1dfbd}.screen-format-picker nav button small{color:#ffffff6b;font-size:8px}@keyframes map-chip-in{0%{opacity:0}to{opacity:1}}.map-grid{display:grid;grid-template-columns:repeat(var(--seat-columns),1fr);gap:3px 2px;align-items:center;min-height:136px}.map-seat{aspect-ratio:1;padding:0;border:0;border-radius:4px 4px 2px 2px;background:#8f897f;box-shadow:inset 0 -2px #0000003d;cursor:pointer;transition:transform .15s,background .15s,box-shadow .15s}.map-seat:hover:not(:disabled),.map-seat:focus-visible{transform:scale(1.28);outline:1px solid white;outline-offset:2px}.map-seat.occupied{background:#38353c;box-shadow:none;cursor:not-allowed;opacity:.65}.map-seat.chosen{background:var(--gold);box-shadow:0 0 0 2px var(--cream),0 0 16px #a8864f8c}.map-screen{margin:16px auto 12px;width:94%;height:12px;border-top:2px solid #d8bd8d;border-radius:50%;color:#c9a97f;font-size:8px;text-align:center;text-transform:uppercase;letter-spacing:.16em}.map-screen span{position:relative;top:2px;padding:0 8px}.legend{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-height:43px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);font-size:9px;color:#ffffff7a}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:2px;background:#8f897f}.legend .occupied{background:#38353c}.legend .chosen{background:var(--gold)}.controls-hint{position:absolute;z-index:2;top:var(--page-margin);right:var(--page-margin);color:#ffffff61;font-size:10px;letter-spacing:.06em;text-transform:uppercase;pointer-events:none}.controls-hint span{color:#ffffffb3}body.seat-view .controls-hint{display:none}.format-disclaimer{position:absolute;z-index:2;top:calc(var(--page-margin) + 20px);right:var(--page-margin);margin:0;color:#ffffff75;font-size:clamp(7px,1.8vw,10px);line-height:1.45;text-align:right;white-space:nowrap;pointer-events:none}.format-disclaimer[hidden],.mobile-info{display:none}.mobile-info-trigger{position:absolute;z-index:3;top:var(--page-margin);right:var(--page-margin);display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:#141219d1;color:#ffffffb8;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 24px #00000038;transition:color .15s ease,background .15s ease,transform .15s ease}.mobile-info-trigger svg{width:16px;height:16px;fill:currentColor}.mobile-info-trigger:hover,.mobile-info-trigger:focus-visible{color:#f1dfbd;background:#24202af5;outline:none}.mobile-info-modal{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:var(--page-margin);pointer-events:none}.mobile-info-modal:not([hidden]){pointer-events:auto}.mobile-info-modal[hidden]{display:none}.mobile-info-backdrop{position:absolute;inset:0;border:0;background:#0000008c;cursor:pointer}.mobile-info-panel{position:relative;z-index:1;width:min(100%,360px);max-height:min(78vh,520px);overflow:auto;padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:var(--glass);box-shadow:0 24px 70px #00000073;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-info-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.mobile-info-header h2{margin:0;font-size:15px;font-weight:600}.mobile-info-close{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:#ffffff0a;color:#ffffffb8;cursor:pointer;transition:color .15s ease,background .15s ease}.mobile-info-close svg{width:14px;height:14px;fill:currentColor}.mobile-info-close:hover,.mobile-info-close:focus-visible{color:#fff;background:#ffffff1a;outline:none}.mobile-info-hint{margin:0 0 14px;color:#ffffff75;font-size:10px;letter-spacing:.06em;line-height:1.6;text-transform:uppercase}.mobile-info-hint span{color:#ffffffb3}.mobile-info-disclaimer{margin:0;color:#ffffff75;font-size:11px;line-height:1.5}body.seat-view .mobile-info-trigger{display:none}.booking-card{max-height:0;margin:0;padding-top:0;border-top:1px solid transparent;opacity:0;overflow:hidden;transform:translateY(-8px);transition:max-height .35s ease,margin .35s ease,padding .35s ease,border-color .35s ease,opacity .25s ease,transform .35s ease}.booking-card.visible{max-height:150px;margin:16px 0;padding-top:15px;border-color:#ffffff17;opacity:1;transform:translateY(0)}.booking-card>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:baseline}.booking-card .eyebrow{margin-bottom:0;transform:translateY(-4px)}.booking-card strong{display:flex;gap:.25em;font-size:20px;font-weight:600}.booking-card #selected-seat:before{content:"· "}.booking-card small{grid-column:1 / -1;margin-top:7px;color:#ffffff73;font-size:10px;text-align:right}.booking-actions{display:flex;gap:8px;margin-top:13px}.booking-actions button{height:40px;padding:0 14px;border-radius:9px;cursor:pointer;transition:transform .15s,opacity .15s,background .15s}.booking-actions button:hover:not(:disabled){transform:translateY(-1px)}.secondary{border:1px solid rgba(255,255,255,.14);background:transparent}.primary{flex:1;border:0;background:var(--gold);font-weight:600}.primary span{float:right;margin-left:18px}.primary:disabled{cursor:not-allowed;opacity:.35}.ticket-overlay{position:fixed;inset:0;z-index:20;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;padding:clamp(24px,5vw,64px);overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(92,64,22,.3),transparent 38%),#050403eb;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.ticket-overlay.visible{opacity:1;visibility:visible;pointer-events:auto}.ticket-copy{position:relative;z-index:2;justify-self:center;width:100%;max-width:540px;min-width:0;text-align:center;pointer-events:none}.ticket-copy .eyebrow{color:#d9af62}.ticket-copy h2{margin:0;font-size:clamp(28px,4vw,54px);font-weight:500;letter-spacing:-.035em}.ticket-copy p{margin:12px 0 0;color:#ffffff7a;font-size:12px}#ticket-canvas{display:block;width:100%;max-width:100%;height:100%;min-width:0;min-height:0;touch-action:none}#ticket-canvas.ticket-grab{cursor:grab}#ticket-canvas.ticket-link-hover{cursor:pointer}#ticket-canvas.ticket-holding{cursor:grabbing}.ticket-close{position:absolute;z-index:3;top:var(--page-margin);right:var(--page-margin);display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.15);border-radius:50%;background:#ffffff0f;color:#ffffffc7;cursor:pointer;transition:background .15s,transform .15s}.ticket-close:hover,.ticket-close:focus-visible{background:#ffffff21;transform:scale(1.04);outline:none}.ticket-close svg{width:16px;height:16px;fill:currentColor}body.seat-view .intro>:not(.intro-back){display:none}body.seat-view .intro-back{display:flex;animation:intro-back-in .3s ease-out both}@keyframes intro-back-in{0%{opacity:0;transform:translate(-18px)}}@media(prefers-reduced-motion:reduce){.scene-loader{transition-duration:.01ms}#app>:not(#cinema,.scene-loader,.ticket-overlay){transition:none}body.seat-view .intro-back,.map-shell.collapsed.has-selection .map-chip{animation:none}.ticket-overlay{transition:none}}@media(max-width:720px){:root{--page-margin: 14px}.intro{width:250px}.intro p{font-size:14px}.controls-hint,.format-disclaimer{display:none}.mobile-info{display:block}.map-shell{right:var(--page-margin);width:auto;bottom:calc(var(--page-margin) + 24px)}.built-by{right:var(--page-margin);left:auto;bottom:var(--page-margin);justify-content:flex-end;text-align:right}.built-by nav{top:auto;bottom:calc(100% + 8px)}.booking-card small{display:none}.ticket-overlay{padding:76px 10px 18px}.ticket-copy p{padding:0 36px;line-height:1.5}}
