:root{--surface:#2f0710;--surface-2:color-mix(in srgb, var(--surface) 82%, #000);--accent:#d4a64a;--ink:#f7f1e6;--ink-dim:color-mix(in srgb, var(--ink) 72%, transparent);--paper:#f4efe6;--bar-h:64px;--top-h:52px;--qr-w:300px;--focus:#ffd97a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--surface-2);color:var(--ink);overscroll-behavior:none;font:16px/1.4 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}[hidden]{display:none!important}.app.has-fixture{padding-top:26px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button,a.btn{font:inherit}code{background:#0000004d;border-radius:4px;padding:0 4px}.app{height:100vh;background:radial-gradient(ellipse at 50% 40%, var(--surface) 0%, var(--surface-2) 75%);height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:grid;overflow:hidden}.booting,.notice-screen{text-align:center;color:var(--ink-dim);margin:auto;padding:24px}.notice-screen h1{color:var(--accent);font-family:Georgia,Times New Roman,serif}.fixture-banner{z-index:50;color:#000;text-align:center;pointer-events:none;background:#ffd400;padding:4px 8px;font-size:13px;font-weight:700;position:fixed;top:0;bottom:auto;left:0;right:0}.guest{grid-template-rows:var(--top-h) minmax(0, 1fr) auto}.topbar{justify-content:center;align-items:baseline;gap:14px;min-width:0;padding:8px 16px;display:flex}.topbar h1{color:var(--accent);letter-spacing:.02em;white-space:nowrap;margin:0;font:600 clamp(20px,3.4vw,28px)/1.1 Georgia,Times New Roman,serif}.topbar .sub{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}@media (max-width:560px){.topbar .sub{display:none}}.stage{min-width:0;min-height:0;display:flex;position:relative}.stage-book{outline:none;flex:1;justify-content:center;align-items:center;min-width:0;min-height:0;margin:6px 8px;display:flex}.guest .stage-book{margin:6px 52px}@media (max-width:640px){.guest .stage-book{margin:4px 6px}}.stage-book.fade{animation:.22s ease-out fade}@keyframes fade{0%{opacity:.25}to{opacity:1}}.edge{z-index:5;cursor:pointer;width:44px;height:88px;color:var(--ink);background:#00000040;border:0;border-radius:10px;font-size:34px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.edge:hover:not(:disabled){color:var(--accent);background:#00000073}.edge:disabled{opacity:.25;cursor:default}.edge.prev{left:4px}.edge.next{right:4px}@media (max-width:640px){.edge{display:none}}.book{position:relative}.book .stf__wrapper{height:100%}.page{background:var(--paper);overflow:hidden}.page img{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block}.page.exact img{object-fit:fill}.page-status{color:#4a2b2b;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.page.loading .page-status,.page.failed .page-status{display:flex}.page.loading .msg,.page.loading .retry,.page.failed .spinner{display:none}.spinner{border:4px solid #0000001f;border-top-color:#8a1c2c;border-radius:50%;width:32px;height:32px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.retry{color:#8a1c2c;cursor:pointer;background:#fff;border:2px solid #8a1c2c;border-radius:8px;min-height:44px;padding:0 18px;font-weight:600}.toolbar{background:#00000047;align-items:center;gap:6px;min-width:0;padding:6px 8px 8px;display:flex}.group{align-items:center;gap:4px;display:flex}.nav-group{flex:none}.tools{scrollbar-width:thin;flex:auto;min-width:0;padding:2px;overflow-x:auto}.tools>:first-child{margin-left:auto}@media (max-width:1500px){.tools .compact .label{display:none}}.btn{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#ffffff0f;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 12px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);background:#ffffff24}.btn:disabled{opacity:.35;cursor:default}.btn[aria-pressed=true]{background:var(--accent);color:#2a0610;border-color:var(--accent)}.btn .icon{font-size:18px;line-height:1}.btn .size{color:var(--ink-dim);font-size:13px}.btn.primary{background:var(--accent);color:#2a0610;border-color:var(--accent);font-weight:700}.btn.small{min-height:36px;font-size:13px}.nav-group .btn .label{display:none}.page-input{border:1px solid var(--accent);width:3.6em;min-height:44px;color:var(--ink);font:inherit;text-align:center;background:#00000059;border-radius:10px}.position{color:var(--ink-dim);white-space:nowrap;padding:0 4px;font-size:14px}@media (max-width:720px){.toolbar{flex-wrap:wrap;justify-content:center}.nav-group{justify-content:center;width:100%}.tools .btn .label{display:none}.tools .pdf-link .label{display:inline}}@media (max-width:380px){.nav-group [data-act=first],.nav-group [data-act=last]{display:none}}.app.pseudo-fs{z-index:40;position:fixed;top:0;bottom:0;left:0;right:0}.guest.is-fullscreen{grid-template-rows:0 minmax(0,1fr) auto}.guest.is-fullscreen .topbar{display:none}.stage-book.scroll-view{margin:0;padding:12px 16px 24px;display:block;overflow-y:auto}.scrolling .edge,.scrolling [data-act=zoom],.scrolling [data-act=play]{display:none}.scroll-notice{border-left:4px solid var(--accent);background:#00000059;border-radius:10px;max-width:760px;margin:0 auto 12px;padding:12px 16px}.scroll-notice a{color:var(--accent)}.scroll-pages{gap:18px;max-width:820px;margin:0 auto;padding:0;list-style:none;display:grid}.scroll-pages figure{margin:0}.scroll-pages img{background:var(--paper);width:100%;height:auto;display:block}.scroll-pages figcaption{color:var(--ink-dim);text-align:center;padding-top:4px;font-size:13px}dialog{color:var(--ink);background:var(--surface-2);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);padding:0}dialog::backdrop{background:#000000b3}.panel{border-radius:14px;width:min(960px,100vw - 24px);max-height:calc(100dvh - 24px)}.panel[open]{flex-direction:column;display:flex}.panel-head{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:8px 8px 8px 16px;display:flex}.panel-head h2{color:var(--accent);margin:0;font:600 20px Georgia,serif}.close{border:1px solid var(--accent);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:10px;padding:0 14px}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px;margin:0;padding:12px;list-style:none;display:grid;overflow-y:auto}.thumb{width:100%;color:var(--ink-dim);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;gap:4px;padding:4px;font-size:13px;display:grid}.thumb img{background:var(--paper);width:100%;height:auto;display:block}.thumb[aria-current=page]{border-color:var(--accent);color:var(--ink)}.text-note{color:var(--ink-dim);margin:0;padding:10px 16px;font-size:14px}.text-body{padding:0 16px 16px;overflow-y:auto}.text-body h3{color:var(--accent);margin:16px 0 6px;font:600 17px Georgia,serif}.page-text{white-space:pre-wrap;max-width:70ch;line-height:1.55}.zoom{background:#120306;border:0;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none}.zoom[open]{flex-direction:column;display:flex}.zoom-bar{background:#00000080;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.zoom-bar button{border:1px solid var(--accent);min-width:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffff0f;border-radius:10px;padding:0 12px;font-size:18px}.zoom-level{text-align:center;min-width:4em}.zoom-hint{color:var(--ink-dim);flex:1;font-size:13px}@media (max-width:560px){.zoom-hint{display:none}}.zoom-close{margin-left:auto}.zoom-viewport{touch-action:none;cursor:zoom-in;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.zoom-viewport.zoomed{cursor:grab}.zoom-content{transform-origin:50%;will-change:transform;display:flex}.zoom-content img{width:auto;height:auto;max-height:calc(100dvh - 72px);max-width:calc(100vw / var(--n,1) - 8px);background:var(--paper);-webkit-user-select:none;user-select:none;pointer-events:none;display:block}.toast{left:50%;bottom:calc(var(--bar-h) + 20px);color:#fff;opacity:0;pointer-events:none;z-index:60;overflow-wrap:anywhere;background:#000;border-radius:10px;max-width:calc(100vw - 32px);padding:10px 16px;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.event{--qr-w:clamp(320px, 25vw, 560px);grid-template-columns:minmax(0, 1fr) var(--qr-w);grid-template-rows:minmax(0,1fr)}.event .stage{grid-area:1/1}.event .stage-book{margin:16px}.qr-panel{border-left:1px solid color-mix(in srgb, var(--accent) 30%, transparent);text-align:center;background:#0000004d;flex-direction:column;grid-area:1/2;justify-content:center;align-items:center;gap:14px;padding:20px 18px;display:flex}.qr-panel h1{color:var(--accent);margin:0;font:600 clamp(30px,2.3vw,46px)/1.15 Georgia,Times New Roman,serif}.qr-code{background:#fff;border-radius:8px;width:100%}.qr-code svg{width:100%;height:auto;display:block}.qr-call{margin:0;font-size:clamp(22px,1.7vw,34px);font-weight:700;line-height:1.2}.qr-url{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:clamp(17px,1.3vw,26px)}.qr-missing .qr-code{border:2px dashed var(--accent);background:0 0}.qr-setup{color:var(--ink);padding:16px;font-size:15px}.qr-setup p{color:var(--ink-dim);margin:8px 0 0}.event-controls{transform:translateX(calc(-50% - var(--qr-w) / 2));z-index:20;max-width:calc(100vw - var(--qr-w) - 32px);background:#000000b8;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:8px;transition:opacity .3s;display:flex;position:fixed;bottom:16px;left:50%}.event-controls .position{color:var(--ink)}.offline-status{color:var(--ink-dim);max-width:20em;font-size:13px}.offline-status[data-ready=true]{color:#9fe0a8}.event.idle{cursor:none}.event.idle .event-controls{opacity:0;pointer-events:none}.event[data-play=paused] .event-controls [data-act=play]{background:var(--accent);color:#2a0610;font-weight:700}.start-overlay{inset:0 var(--qr-w) 0 0;z-index:30;background:#0a0204b8;justify-content:center;align-items:center;display:flex;position:fixed}.start-overlay[hidden]{display:none}.start-card{background:var(--surface-2);border:1px solid var(--accent);border-radius:16px;width:min(520px,100% - 32px);padding:24px}.start-card h2{color:var(--accent);margin:0 0 14px;font:600 26px Georgia,serif}.progress{background:#ffffff1f;border-radius:6px;height:12px;overflow:hidden}.progress span{background:var(--accent);width:0;height:100%;transition:width .2s;display:block}.progress-text{margin:10px 0}.load-errors{color:#ffb4b4;max-height:8em;margin:0 0 10px;padding-left:20px;overflow:auto}.start-actions{flex-wrap:wrap;gap:8px;display:flex}.start-actions .start{min-height:56px;padding:0 24px;font-size:19px}.start-note{color:var(--ink-dim);margin:14px 0 0;font-size:14px}@media (max-width:900px){.event{--qr-w:220px}.qr-panel h1{font-size:22px}.qr-call{font-size:17px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}.stage-book.fade{animation-duration:.15s}.spinner{animation-duration:2s}}
