:root,[data-theme=dark]{color-scheme:dark;--brand-stage: oklch(12% .004 95);--brand-graphite: oklch(18% .005 95);--brand-ivory: oklch(93% .014 85);--brand-ivory-dim: oklch(72% .01 80);--brand-accent: oklch(87.4% .229 128);--brand-accent-text: oklch(87.4% .229 128);--color-paper: var(--brand-stage);--color-paper-2: var(--brand-graphite);--color-paper-3: oklch(22% .006 95);--color-paper-4: oklch(27% .007 95);--color-rule: oklch(25% .006 95);--color-rule-strong: oklch(36% .008 95);--color-inverse: var(--brand-ivory);--color-inverse-ink: var(--brand-stage);--color-backdrop: oklch(6% .004 95 / .78);--color-ink: var(--brand-ivory);--color-muted: var(--brand-ivory-dim);--color-neutral: oklch(56% .008 95);--color-primary: var(--brand-ivory);--color-primary-strong: oklch(98% .008 85);--color-primary-ink: var(--brand-stage);--color-accent: var(--brand-accent);--color-accent-strong: oklch(92% .2 128);--color-accent-ink: var(--brand-stage);--color-accent-text: var(--brand-accent-text);--color-focus: var(--brand-ivory);--color-positive: oklch(56% .08 150);--color-positive-text: oklch(74% .06 150);--color-positive-bg: oklch(24% .03 150);--color-danger: oklch(62% .15 25);--color-danger-bg: oklch(22% .045 25);--color-warning: oklch(74% .12 70);--color-warning-bg: oklch(24% .04 45);--color-success: var(--color-positive-text);--light-spot: oklch(93% .014 85 / .2);--light-spill: oklch(93% .014 85 / .05);--light-floor: oklch(93% .014 85 / .12);--shadow-deep: oklch(4% .004 95 / .85);--glow-accent: oklch(87.4% .229 128 / .16);--glow-warm: oklch(58% .13 50 / .2);--glow-accent-text: oklch(87.4% .229 128 / .38);--haze: oklch(93% .014 85 / .7);--color-poster-bg: oklch(9% .004 95);--color-poster-light: var(--brand-ivory);--color-poster-dim: oklch(30% .006 95);--color-poster-accent: var(--brand-accent);--color-seat-selected: var(--brand-ivory);--color-seat-selected-ink: var(--brand-stage);--color-seat-selected-ring: var(--brand-accent);--color-seat-num: var(--brand-stage);--color-seat-held: oklch(28% .006 95);--color-seat-sold: oklch(21% .005 95);--color-seat-unpriced: oklch(17% .004 95);--color-seat-blocked: oklch(40% .008 95);--color-stage-light: var(--brand-ivory);--cat-0: var(--brand-accent);--cat-1: oklch(76% .055 95);--cat-2: oklch(58% .022 95);--cat-3: oklch(44% .016 95);--cat-4: oklch(66% .04 30);--cat-5: oklch(50% .03 90);--shadow-raised: 0 18px 40px -18px oklch(2% .004 95 / .9)}[data-theme=paper]{color-scheme:light;--color-paper: var(--brand-ivory);--color-paper-2: oklch(90% .014 85);--color-paper-3: oklch(86% .014 85);--color-paper-4: oklch(81% .014 85);--color-rule: oklch(84% .012 85);--color-rule-strong: oklch(68% .012 80);--color-inverse: var(--brand-stage);--color-inverse-ink: var(--brand-ivory);--color-ink: oklch(15% .005 95);--color-muted: oklch(38% .008 95);--color-neutral: oklch(50% .008 95);--color-primary: var(--brand-stage);--color-primary-strong: oklch(26% .006 95);--color-primary-ink: var(--brand-ivory);--color-accent-text: oklch(46% .13 127);--color-focus: var(--brand-stage)}:root{--font-display: "Archivo", ui-sans-serif, sans-serif;--display-width: 112%;--font-body: "Be Vietnam Pro", ui-sans-serif, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.1875rem;--text-xl: 1.5rem;--text-2xl: 1.95rem;--text-3xl: 2.5rem;--text-4xl: clamp(2.5rem, 3.6vw + 1.2rem, 4rem);--text-display: clamp(2.2rem, 4vw + 1rem, 4.5rem);--text-marquee: clamp(2.4rem, 7.2vw, 7rem);--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 5rem;--space-3xl: 8rem;--measure: 60ch;--page-max: 78rem;--page-gutter: clamp(1.25rem, 5vw, 3rem);--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--radius-pill: 999px;--rule-thick: 1px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .12s;--dur-base: .22s;--dur-slow: .42s;--dur-light: 1.6s}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{min-height:100dvh;background-color:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}h1,h2,h3{font-family:var(--font-display);font-weight:800;font-style:normal;font-stretch:var(--display-width);line-height:1.1;letter-spacing:-.01em;text-transform:uppercase}p{margin:0}.lit{color:var(--color-accent-text)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 1.4 -0.35'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}::selection{background:var(--color-accent);color:var(--color-accent-ink)}a{color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);min-height:2.75rem;padding:0 var(--space-md);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:transparent;color:var(--color-ink);font:500 var(--text-sm) / 1 var(--font-body);letter-spacing:.02em;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background-color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--color-paper-3);border-color:var(--color-neutral)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn[data-state=loading]{cursor:progress;opacity:.8}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-ink);font-weight:600}.btn--primary:hover{background:var(--color-primary-strong);border-color:var(--color-primary-strong)}.btn--accent{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink);font-family:var(--font-display);font-weight:800;font-stretch:var(--display-width);letter-spacing:.02em;text-transform:uppercase}.btn--accent:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong);box-shadow:0 0 24px var(--glow-accent)}@media(max-width:22.5rem){.btn--accent{font-stretch:100%;letter-spacing:0}}.btn--lg{min-height:3.25rem;padding:0 var(--space-lg);font-size:var(--text-base)}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-muted)}.btn--ghost:hover{background:var(--color-paper-3);color:var(--color-ink)}.btn--danger{color:var(--color-danger)}.btn--sm{min-height:2.25rem;padding:0 var(--space-sm)}.btn--block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-ink);font:400 var(--text-lg) / 1 var(--font-body);cursor:pointer;transition:background-color var(--dur-base) var(--ease-out)}.icon-btn:hover{background:var(--color-paper-3)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.field{display:grid;gap:var(--space-3xs);min-width:0}.field>span{color:var(--color-muted);font-size:var(--text-sm)}.field input,.field select{width:100%;min-height:2.75rem;padding:0 var(--space-xs);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-ink);font:400 var(--text-base) var(--font-body);transition:border-color var(--dur-base) var(--ease-out)}.field input:hover,.field select:hover{border-color:var(--color-neutral)}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--color-focus);outline-offset:0;border-color:transparent}.field input[aria-invalid=true]{border-color:var(--color-danger)}.field input:disabled{opacity:.5}.field-error{color:var(--color-danger);font-size:var(--text-sm)}.dialog{width:min(32rem,calc(100vw - 2 * var(--space-sm)));max-height:calc(100dvh - 2 * var(--space-sm));padding:0;border:1px solid var(--color-rule);border-radius:var(--radius-lg);background:var(--color-paper);color:var(--color-ink);box-shadow:var(--shadow-raised)}.dialog::backdrop{background:var(--color-backdrop)}.dialog[open]{animation:dialog-in var(--dur-slow) var(--ease-out)}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}}.dialog__body{display:grid;gap:var(--space-md);padding:var(--space-lg)}.dialog__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2xs)}.toasts{position:fixed;left:50%;bottom:calc(var(--space-md) + env(safe-area-inset-bottom));z-index:50;display:grid;gap:var(--space-2xs);width:min(26rem,calc(100vw - 2 * var(--space-sm)));transform:translate(-50%);pointer-events:none}.toast{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-bg);color:var(--color-ink);font-size:var(--text-sm);box-shadow:var(--shadow-raised);animation:toast-in var(--dur-base) var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.site{display:flex;flex-direction:column;min-height:100dvh}.site-main{flex:1}.skip-link{position:absolute;left:var(--space-sm);top:-4rem;z-index:60;padding:var(--space-2xs) var(--space-sm);background:var(--color-inverse);color:var(--color-inverse-ink)}.skip-link:focus{top:var(--space-sm)}.lockup{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--color-ink);text-decoration:none}.lockup__mark{width:auto;height:2.25rem}.lockup__word{font:800 var(--text-lg) / 1 var(--font-display);font-stretch:var(--display-width);letter-spacing:-.02em;white-space:nowrap}.lockup__word span{font-weight:500}.site-head{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-xs) var(--page-gutter);border-bottom:1px solid var(--color-rule);background:var(--color-paper)}.site-head--focus{position:static}.site-head__note{color:var(--color-muted);font-size:var(--text-sm);text-align:right}.site-head__toggle{display:none}.site-nav{display:flex;align-items:center;gap:var(--space-lg)}.site-nav__link{padding-block:var(--space-2xs);color:var(--color-muted);font-weight:500;text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;transition:color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.site-nav__link:hover{color:var(--color-ink)}.site-nav__link.active{color:var(--color-ink);border-bottom-color:var(--color-ink)}@media(max-width:48rem){.site-head{flex-wrap:wrap;gap:0}.site-head__toggle{display:inline-flex;min-height:2.5rem;padding:0 var(--space-sm);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:transparent;color:var(--color-ink);font:500 var(--text-sm) var(--font-body);align-items:center;cursor:pointer}.site-nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding-block:var(--space-xs)}.site-head[data-open=true] .site-nav{display:flex}.site-nav__link{padding-block:var(--space-xs);border-bottom:1px solid var(--color-rule);font-size:var(--text-lg)}.site-nav__link.active{border-bottom-color:var(--color-rule)}.site-nav__cta{margin-top:var(--space-sm);min-height:2.75rem}.site-head__note{display:none}}.site-foot{background:var(--color-paper);color:var(--color-ink)}.site-foot__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-xl);max-width:var(--page-max);margin:0 auto;padding:var(--space-2xl) var(--page-gutter) var(--space-xl)}.site-foot__brand{display:grid;gap:var(--space-md);align-content:start}.site-foot__mark{width:4.5rem;height:auto}.site-foot__statement{max-width:16ch;font:800 var(--text-2xl) / 1.12 var(--font-display);font-stretch:var(--display-width);letter-spacing:-.01em;text-transform:uppercase}.site-foot__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}.site-foot h2{margin-bottom:var(--space-xs);color:var(--color-muted);font:500 var(--text-sm) var(--font-body);letter-spacing:0}.site-foot ul{display:grid;gap:var(--space-2xs);margin:0;padding:0;list-style:none}.site-foot a{text-decoration:none;white-space:nowrap}.site-foot a:hover{text-decoration:underline;text-underline-offset:3px}.site-foot__muted{color:var(--color-neutral);font-size:var(--text-sm)}.site-foot__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2xs) var(--space-lg);max-width:var(--page-max);margin:0 auto;padding:var(--space-md) var(--page-gutter) calc(var(--space-md) + env(safe-area-inset-bottom));border-top:1px solid var(--color-rule);color:var(--color-neutral);font-size:var(--text-sm)}.site-foot__base a{color:var(--color-muted);text-decoration:underline}@media(max-width:48rem){.site-foot__inner{grid-template-columns:minmax(0,1fr)}.site-foot__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}.page{max-width:var(--page-max);margin:0 auto;padding:var(--space-xl) var(--page-gutter) var(--space-3xl)}.page-head{display:grid;gap:var(--space-xs);margin-bottom:var(--space-xl)}.page-head h1{font-size:var(--text-display)}.page-head__lead{max-width:var(--measure);color:var(--color-muted);font-size:var(--text-lg)}.text-link{color:var(--color-ink);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;white-space:nowrap}.text-link:hover{text-decoration-thickness:2px}.mono{font-family:var(--font-mono);letter-spacing:.04em}.empty-state{display:grid;justify-items:start;gap:var(--space-md);max-width:40rem}.empty-state h1{font-size:var(--text-3xl)}.empty-state p{color:var(--color-muted)}.home-band{max-width:var(--page-max);margin:0 auto;padding:var(--space-2xl) var(--page-gutter);border-top:1px solid var(--color-rule-strong)}.band-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);margin-bottom:var(--space-lg)}.band-head h2{font-size:var(--text-4xl)}.about{margin-top:var(--space-3xl);background:var(--color-paper);color:var(--color-ink)}.about__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--space-xl) var(--space-2xl);max-width:var(--page-max);margin:0 auto;padding:var(--space-3xl) var(--page-gutter)}.about__title{font-size:var(--text-display)}.about__copy{display:grid;gap:var(--space-sm);max-width:var(--measure);color:var(--color-muted);font-size:var(--text-lg)}.method{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg);margin:0;padding:var(--space-lg) 0 0;border-top:1px solid var(--color-rule-strong);list-style:none;counter-reset:step}.method li{display:grid;gap:var(--space-2xs);align-content:start;counter-increment:step}.method li:before{content:counter(step,decimal-leading-zero);color:var(--color-accent-text);font:600 var(--text-sm) var(--font-mono)}.method h3{font-size:var(--text-xl)}.method p{color:var(--color-muted)}@media(max-width:48rem){.about__inner,.method{grid-template-columns:minmax(0,1fr)}}.hero{--beam-x: 28%;--beam-y: -12%;--aim: 0deg;--bx: calc((var(--beam-x) + 50%) / 2);--by: calc((var(--beam-y) + 50%) / 2);--cue-light: 0s;--cue-lines: .7s;--cue-strike: 1.3s;--cue-copy: 1.8s;position:relative;display:grid;align-items:end;min-height:min(92svh,60rem);overflow:hidden;isolation:isolate}.hero__ambient,.hero__rig,.hero__beam,.hero__haze{position:absolute;top:0;right:0;bottom:0;left:0}.hero__rig{top:-50%;right:-50%;bottom:-50%;left:-50%}.hero__ambient,.hero__rig{z-index:-1;pointer-events:none}.hero__ambient{background:radial-gradient(ellipse 70% 55% at 40% 45%,var(--light-spill),transparent 75%),radial-gradient(ellipse 45% 55% at 104% -4%,var(--glow-accent),transparent 70%),radial-gradient(ellipse 45% 50% at -6% 104%,var(--glow-warm),transparent 70%);animation:lights-up var(--dur-light) var(--ease-in-out) var(--cue-light) both,glow-breathe 7s var(--ease-in-out) var(--dur-light) infinite alternate}.hero__rig{transform:rotate(var(--aim));transform-origin:var(--bx) var(--by);transition:transform 1.4s var(--ease-out)}.hero__beam{background:radial-gradient(ellipse 15% 37.5% at var(--bx) var(--by),var(--light-spot),transparent 72%),radial-gradient(ellipse 18% 3.5% at var(--bx) 72%,var(--light-floor),transparent 72%);transform-origin:var(--bx) var(--by);animation:lamp-strike var(--dur-light) var(--ease-in-out) var(--cue-light) both,beam-sway 16s var(--ease-in-out) var(--dur-light) infinite alternate}.hero__haze{-webkit-mask-image:radial-gradient(ellipse 17% 58% at var(--bx) var(--by),black 50%,transparent 95%);mask-image:radial-gradient(ellipse 17% 58% at var(--bx) var(--by),black 50%,transparent 95%)}.mote{position:absolute;bottom:40%;left:calc((var(--x) + 50%) / 2);width:var(--size);height:var(--size);border-radius:50%;background:var(--haze);box-shadow:0 0 6px var(--haze);opacity:0;animation:mote-drift var(--dur) linear calc(var(--dur-light) + var(--delay)) infinite}@keyframes lights-up{0%{opacity:0}}@keyframes lamp-strike{0%{opacity:0}14%{opacity:.55}20%{opacity:.15}34%{opacity:.7}to{opacity:1}}@keyframes beam-sway{0%{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}@keyframes glow-breathe{to{opacity:.65}}@keyframes mote-drift{0%{opacity:0;transform:translate(0)}15%{opacity:.9}85%{opacity:.6}to{opacity:0;transform:translate(2.5rem,-55svh)}}.hero__inner{display:grid;gap:var(--space-lg);justify-items:start;width:100%;max-width:var(--page-max);margin:0 auto;padding:var(--space-3xl) var(--page-gutter) var(--space-2xl)}.hero__mark{width:clamp(2.75rem,5vw,4rem);height:auto;color:var(--color-muted);animation:cue-rise .9s var(--ease-out) calc(var(--cue-lines) - .2s) both}.hero__marquee{max-width:14ch;margin:0;font-size:var(--text-marquee);line-height:1.12;letter-spacing:-.02em;text-wrap:balance}.hero__line{display:block;animation:line-lit 1.1s var(--ease-out) var(--cue-lines) both}.hero__line:nth-child(2){animation-delay:calc(var(--cue-lines) + .18s)}.hero__line--strike{animation:lamp-word .9s linear var(--cue-strike) both,word-glow 7s var(--ease-in-out) calc(var(--cue-strike) + .9s) infinite alternate}.hero__intro{max-width:42ch;color:var(--color-muted);font-size:var(--text-lg);font-weight:300;line-height:1.5;animation:cue-rise .9s var(--ease-out) var(--cue-copy) both}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);animation:cue-rise .9s var(--ease-out) calc(var(--cue-copy) + .15s) both}@keyframes line-lit{0%{opacity:0;filter:brightness(.3);transform:translateY(.18em)}to{opacity:1;filter:none;transform:none}}@keyframes lamp-word{0%{opacity:0}10%{opacity:.9}16%{opacity:.1}28%{opacity:1}34%{opacity:.35}48%,to{opacity:1;text-shadow:0 0 .6em var(--glow-accent-text)}}@keyframes word-glow{0%{text-shadow:0 0 .6em var(--glow-accent-text)}to{text-shadow:0 0 .25em var(--glow-accent)}}@keyframes cue-rise{0%{opacity:0;transform:translateY(.75rem)}}@media(max-width:48rem){.hero{--beam-x: 35%;--beam-y: -10%;min-height:86svh}.hero__inner{gap:var(--space-md);padding-block:var(--space-2xl) var(--space-xl)}.hero__ambient{background:radial-gradient(ellipse 45% 55% at 104% -4%,var(--glow-accent),transparent 70%)}.hero__beam{background:radial-gradient(ellipse 35% 35% at var(--bx) var(--by),var(--light-spot),transparent 72%),radial-gradient(ellipse 35% 3% at var(--bx) 72.5%,var(--light-floor),transparent 72%)}.hero__haze{-webkit-mask-image:radial-gradient(ellipse 35% 55% at var(--bx) var(--by),black 50%,transparent 95%);mask-image:radial-gradient(ellipse 35% 55% at var(--bx) var(--by),black 50%,transparent 95%)}.hero__actions .btn{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.hero__ambient,.hero__beam,.hero__mark,.hero__line,.hero__line--strike,.hero__intro,.hero__actions{animation:none}.hero__haze{display:none}}.perf-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-rule-strong)}.perf-row{position:relative;display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto auto;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-rule-strong);transition:background-color var(--dur-base) var(--ease-out)}.perf-row:hover{background:var(--color-paper-2)}.perf-row__date{display:grid;justify-items:center;line-height:1}.perf-row__day{font:800 var(--text-3xl) / 1 var(--font-display);font-stretch:var(--display-width)}.perf-row__month{color:var(--color-muted);font:600 var(--text-xs) var(--font-mono);text-transform:uppercase}.perf-row__body{display:grid;gap:var(--space-3xs);min-width:0}.perf-row__title{font-size:var(--text-xl)}.perf-row__title a{text-decoration:none}.perf-row__title a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.perf-row__title a:first-letter{text-transform:uppercase}.perf-row__meta,.perf-row__sub{color:var(--color-muted);font-size:var(--text-sm)}.perf-row__when{display:inline-block;color:var(--color-ink);font-weight:500}.perf-row__when:first-letter{text-transform:uppercase}.perf-row__side{display:grid;justify-items:end;gap:var(--space-3xs)}.perf-row__price{font-size:var(--text-sm);white-space:nowrap}.perf-row__cta{min-width:7rem;padding:var(--space-2xs) var(--space-sm);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;text-align:center;white-space:nowrap}.perf-row__cta.is-buy{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.perf-row[data-state=sold-out] .perf-row__day,.perf-row[data-state=locked] .perf-row__day{color:var(--color-neutral)}.sale-badge{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--color-ink);font:500 var(--text-xs) var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.sale-badge:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:currentColor}.sale-badge[data-state=few-left]{color:var(--color-accent-text)}.sale-badge[data-state=upcoming],.sale-badge[data-state=sold-out],.sale-badge[data-state=locked],.sale-badge[data-state=ended]{color:var(--color-neutral)}.sale-badge[data-state=sold-out]:before,.sale-badge[data-state=locked]:before,.sale-badge[data-state=upcoming]:before{background:transparent;box-shadow:inset 0 0 0 1px currentColor}.poster{display:block;width:100%;height:auto;aspect-ratio:3 / 4}.prod-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xl) var(--space-lg);margin:0;padding:0;list-style:none}.prod-card{position:relative;display:grid;gap:var(--space-sm);align-content:start}.prod-card__poster{filter:brightness(.78);transition:filter var(--dur-slow) var(--ease-out)}.prod-card:hover .prod-card__poster,.prod-card:focus-within .prod-card__poster{filter:brightness(1.05)}.prod-card__body{display:grid;gap:var(--space-3xs)}.prod-card__title{font-size:var(--text-2xl)}.prod-card__title a{text-decoration:none}.prod-card__title a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.prod-card__en{color:var(--color-neutral);font:500 var(--text-sm) var(--font-mono);text-transform:uppercase}.prod-card__tagline{margin-top:var(--space-2xs)}.prod-card__next{color:var(--color-muted);font-size:var(--text-sm)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2xs);margin-bottom:var(--space-xl)}.chip{min-height:2.5rem;padding:0 var(--space-sm);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:transparent;color:var(--color-ink);font:500 var(--text-sm) var(--font-body);white-space:nowrap;cursor:pointer}.chip:hover{background:var(--color-paper-3)}.chip[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-ink)}.month+.month{margin-top:var(--space-2xl)}.month__title{margin-bottom:var(--space-sm);color:var(--color-accent-text);font-size:var(--text-xl)}.crumbs{margin-bottom:var(--space-lg);color:var(--color-neutral);font-size:var(--text-sm)}.crumbs a{color:var(--color-muted)}@media(max-width:56rem){.prod-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:40rem){.prod-grid{grid-template-columns:minmax(0,1fr)}.perf-row{grid-template-columns:3.25rem minmax(0,1fr);gap:var(--space-2xs) var(--space-sm);align-items:start}.perf-row__day{font-size:var(--text-2xl)}.perf-row__side{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-2xs)}.perf-row__cta{grid-column:2;justify-self:start}}.production__head{display:grid;grid-template-columns:minmax(0,20rem) minmax(0,1fr);gap:var(--space-xl);align-items:end}.production__poster{box-shadow:var(--shadow-raised)}.production__intro{display:grid;gap:var(--space-sm);justify-items:start}.production__intro h1{margin:0;font-size:var(--text-marquee);line-height:1.12;letter-spacing:-.02em;overflow-wrap:anywhere;min-width:0}.production__en{color:var(--color-accent-text);font:500 var(--text-base) var(--font-mono);text-transform:uppercase}.production__tagline{max-width:36ch;font-size:var(--text-xl);line-height:1.35}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm) var(--space-lg);width:100%;margin:var(--space-xs) 0}.facts--lg{grid-template-columns:minmax(0,1fr);margin:var(--space-lg) 0;padding:var(--space-md) 0;border-block:1px solid var(--color-rule-strong)}.facts div{display:grid;gap:var(--space-3xs)}.facts--lg div{grid-template-columns:8rem minmax(0,1fr)}.facts dt{color:var(--color-muted);font-size:var(--text-sm)}.facts dd{margin:0;font-weight:500}.facts__muted{color:var(--color-muted);font-weight:400}.trailer{margin:var(--space-2xl) 0}.trailer iframe,.trailer__placeholder{display:block;width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--radius-sm)}.trailer__placeholder{display:grid;place-content:center;gap:var(--space-2xs);background:var(--color-paper-3);color:var(--color-muted);text-align:center}.trailer__placeholder p{color:var(--color-ink);font:800 var(--text-xl) var(--font-display);font-stretch:var(--display-width)}.synopsis{display:grid;gap:var(--space-sm);max-width:var(--measure);font-size:var(--text-lg)}.production__people{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-xl);margin:var(--space-2xl) 0;padding-top:var(--space-xl);border-top:1px solid var(--color-rule-strong)}.people h2{margin-bottom:var(--space-sm);font-size:var(--text-xl)}.people__list{display:grid;gap:var(--space-xs);margin:0;padding:0;list-style:none}.people__list li{display:grid}.people__list--wide .people__name{font:800 var(--text-lg) var(--font-display);font-stretch:var(--display-width)}.people__role{color:var(--color-muted);font-size:var(--text-sm)}.production__shows h2{margin-bottom:var(--space-md);font-size:var(--text-4xl)}.performance__grid{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:var(--space-2xl);align-items:start}.performance__head{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--space-md);align-items:end}.performance__poster{border-radius:var(--radius-sm)}.performance__head h1{font-size:var(--text-display)}.performance__sub{margin-top:var(--space-2xs);color:var(--color-muted);font-size:var(--text-lg)}.buy-box{position:sticky;top:5rem;display:grid;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--color-rule-strong);border-radius:var(--radius-lg);background:var(--color-paper)}.buy-box__state{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs)}.buy-box__left{color:var(--color-muted);font-size:var(--text-sm)}.buy-box__note{padding:var(--space-sm);border-radius:var(--radius-md);background:var(--color-paper-3)}.buy-box__fine{color:var(--color-muted);font-size:var(--text-sm)}.price-list{display:grid;margin:0;padding:0;list-style:none}.price-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-xs);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule)}.price-list__swatch{width:.875rem;height:.875rem;border-radius:3px}.price-list__price{font-weight:600}.policy{margin-top:var(--space-xl)}.policy h2{margin-bottom:var(--space-sm);font-size:var(--text-xl)}.policy ul,.terms ul{display:grid;gap:var(--space-2xs);max-width:var(--measure);margin:0;padding-left:1.1rem;color:var(--color-muted)}@media(max-width:56rem){.production__head,.performance__grid{grid-template-columns:minmax(0,1fr)}.production__poster{max-width:16rem}.production__people{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.performance__grid{gap:0}.performance__main{display:contents}.performance__head{order:1}.performance .facts--lg{order:2}.buy-box{position:static;order:3}.performance .policy{order:4}}@media(max-width:40rem){.facts,.facts--lg div{grid-template-columns:minmax(0,1fr)}.performance__head{grid-template-columns:4.5rem minmax(0,1fr)}.buy-box{padding:var(--space-md)}}.hold-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xl);padding:var(--space-xs) var(--space-md);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-muted)}.hold-banner strong{color:var(--color-accent-text);font:500 var(--text-xl) / 1 var(--font-mono)}.hold-banner.is-urgent{border-color:var(--color-danger)}.hold-banner.is-urgent strong{color:var(--color-danger)}.checkout{max-width:64rem}.checkout__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2xl);align-items:start}.checkout__summary{display:grid;gap:var(--space-md);justify-items:start}.checkout__summary h1{font-size:var(--text-3xl)}.checkout__when{color:var(--color-muted)}.checkout__form h2{margin-bottom:var(--space-md);font-size:var(--text-xl)}.order-lines{width:100%}.order-lines ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-rule-strong)}.order-lines li{display:flex;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule)}.order-lines__what{display:grid;min-width:0;font-weight:500}.order-lines__what span{color:var(--color-muted);font-size:var(--text-sm);font-weight:400}.order-lines__price{white-space:nowrap}.order-lines__total{display:flex;justify-content:space-between;align-items:baseline;padding-top:var(--space-sm)}.order-lines__total strong{font:800 var(--text-2xl) var(--font-display);font-stretch:var(--display-width)}.buyer-form{display:grid;gap:var(--space-md)}.check{display:flex;align-items:flex-start;gap:var(--space-xs)}.check input{flex:none;width:1.25rem;height:1.25rem;margin:.15rem 0 0;accent-color:var(--color-primary)}.link-btn{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.buyer-form__fine{color:var(--color-muted);font-size:var(--text-sm);text-align:center}.gateway{display:grid;justify-items:center;gap:var(--space-lg);max-width:30rem}.gateway__sim{padding:var(--space-xs) var(--space-sm);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-md);color:var(--color-muted);font-size:var(--text-sm)}.gateway__card{display:grid;gap:var(--space-md);width:100%;padding:var(--space-lg);border:1px solid var(--color-rule-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-raised)}.gateway__head{display:flex;align-items:baseline;justify-content:space-between}.gateway__head h1{font-size:var(--text-2xl)}.gateway__head span{color:var(--color-neutral);font:600 var(--text-xs) var(--font-mono);text-transform:uppercase}.gateway__facts{display:grid;gap:var(--space-2xs);margin:0}.gateway__facts div{display:flex;justify-content:space-between;gap:var(--space-sm)}.gateway__facts dt{color:var(--color-muted)}.gateway__facts dd{margin:0;font-weight:500}.gateway__amount{font:800 var(--text-xl) var(--font-display);font-stretch:var(--display-width)}.gateway__qr{display:grid;justify-items:center;gap:var(--space-2xs);color:var(--color-muted);font-size:var(--text-sm)}.gateway__qr .qr{width:9rem}.gateway .hold-banner{margin:0}.gateway__actions{display:grid;gap:var(--space-2xs)}.result{max-width:40rem}.result__head{display:grid;gap:var(--space-xs);margin-bottom:var(--space-xl)}.result__tick{display:grid;place-items:center;width:3.5rem;height:3.5rem;border:1px solid var(--color-ink);border-radius:50%;color:var(--color-ink);font:800 var(--text-2xl) var(--font-display);font-stretch:var(--display-width)}.result__head h1{font-size:var(--text-4xl)}.result__demo{color:var(--color-neutral);font-size:var(--text-sm)}.result__card{display:grid;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--color-rule-strong);border-radius:var(--radius-lg)}.result__show{display:grid}.result__show span{color:var(--color-muted);font-size:var(--text-sm)}.result__code{color:var(--color-muted);font:500 var(--text-sm) var(--font-mono)}.result__cta{margin-top:var(--space-lg)}@media(max-width:48rem){.checkout__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.gateway__card,.result__card{padding:var(--space-md)}}.qr{display:block;width:100%;height:auto}.qr__bg{fill:var(--color-paper)}.qr__ink{fill:var(--color-ink)}.tickets__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-xl)}.tickets__head h1{font-size:var(--text-4xl)}.tickets__head p{color:var(--color-muted)}.tickets__actions{display:flex;gap:var(--space-2xs)}.ticket-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,30rem),1fr));gap:var(--space-md);margin:0;padding:0;list-style:none}.ticket-card{display:grid;grid-template-columns:minmax(0,1fr) 11rem;border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);box-shadow:var(--shadow-raised);overflow:hidden;break-inside:avoid}.ticket-card__info{display:grid;gap:var(--space-3xs);align-content:start;padding:var(--space-md);border-right:1px dashed var(--color-rule-strong)}.ticket-card__count{color:var(--color-neutral);font:600 var(--text-xs) var(--font-mono);text-transform:uppercase}.ticket-card__show{font-size:var(--text-xl)}.ticket-card__when,.ticket-card__venue,.ticket-card__class{color:var(--color-muted);font-size:var(--text-sm)}.ticket-card__seat{margin-top:var(--space-xs);font:800 var(--text-lg) var(--font-display);font-stretch:var(--display-width)}.ticket-card__stub{display:grid;justify-items:center;align-content:center;gap:var(--space-2xs);padding:var(--space-sm)}.ticket-card__code{color:var(--color-ink);font:500 var(--text-sm) var(--font-mono);letter-spacing:.06em}.ticket-card__used{padding:.1rem var(--space-2xs);border-radius:var(--radius-sm);background:var(--color-warning-bg);font-size:var(--text-xs);font-weight:600}.ticket-card[data-status=used] .qr,.ticket-card[data-status=void] .qr{opacity:.3}@media(max-width:30rem){.ticket-card{grid-template-columns:minmax(0,1fr)}.ticket-card__info{border-right:0;border-bottom:1px dashed var(--color-rule-strong)}.ticket-card__stub .qr{width:13rem}.tickets__actions{width:100%}.tickets__actions .btn{flex:1}}@media print{:root{--color-paper: var(--brand-ivory);--color-ink: var(--brand-stage);--color-muted: var(--brand-graphite)}body:after{display:none}.ticket-card{box-shadow:none;border:1px solid var(--brand-graphite)}.site-head,.site-foot,.tickets__actions,.tickets__guide{display:none}.page{padding:0}.ticket-cards{grid-template-columns:minmax(0,1fr)}}.scanner{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);align-content:start;min-height:100dvh;padding:var(--space-sm) max(var(--space-sm),calc((100vw - 30rem)/2)) calc(var(--space-xl) + env(safe-area-inset-bottom));background:var(--color-paper);color:var(--color-ink)}.scanner__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.scanner__head h1{font-size:var(--text-xl)}.scanner .lockup__mark{height:1.75rem}.scanner select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;min-width:0;text-overflow:ellipsis}.scanner__stats{color:var(--color-muted);font-size:var(--text-sm)}.scanner__stats strong{color:var(--color-positive-text);font:800 var(--text-2xl) var(--font-display);font-stretch:var(--display-width)}.scanner__camera{position:relative;display:grid;place-items:center;aspect-ratio:1;border:1px dashed var(--color-rule-strong);border-radius:var(--radius-lg);background:var(--color-paper-2);overflow:hidden}.scanner__camera video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}.scanner__camera>.btn{position:relative;z-index:1}.scanner__camera[data-active=true]{border-style:solid;border-color:var(--color-accent)}.scanner__camera[data-active=true] video{opacity:1}.scanner__camera[data-active=true]:after{content:"";position:absolute;top:18%;right:18%;bottom:18%;left:18%;border:3px solid var(--color-accent);border-radius:var(--radius-md);pointer-events:none}.scanner__stop{position:absolute;right:var(--space-xs);bottom:var(--space-xs);z-index:1}.scan-result{display:grid;gap:var(--space-3xs);padding:var(--space-md);border-radius:var(--radius-lg);animation:verdict-in var(--dur-base) var(--ease-out)}@keyframes verdict-in{0%{transform:scale(.97);opacity:0}}.scan-result[data-tone=ok]{background:var(--color-positive);color:var(--brand-stage)}.scan-result[data-tone=warn]{background:var(--color-warning);color:var(--brand-stage)}.scan-result[data-tone=bad]{background:var(--color-danger);color:var(--brand-stage)}.scan-result__title{font:800 var(--text-3xl) / 1.05 var(--font-display);font-stretch:var(--display-width);letter-spacing:-.02em}.scan-result__detail{font-weight:500}.scan-result__code{font:600 var(--text-sm) var(--font-mono);opacity:.75}.scanner__manual{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-2xs)}.scanner__manual input{font-family:var(--font-mono);text-transform:uppercase}.scanner__samples h2,.scanner__log h2{margin-bottom:var(--space-2xs);color:var(--color-muted);font:500 var(--text-sm) var(--font-body);letter-spacing:0}.scanner__samples ul,.scanner__log ol{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3xs);margin:0;padding:0;list-style:none}.scanner__samples button{display:flex;justify-content:space-between;gap:var(--space-sm);width:100%;min-height:2.75rem;padding:var(--space-2xs) var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-ink);font:400 var(--text-sm) var(--font-body);text-align:left;cursor:pointer}.scanner__samples button:hover{background:var(--color-paper-3)}.scanner__samples button .mono{flex:none;white-space:nowrap}.scanner__samples button span:last-child{min-width:0;overflow:hidden;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap}.scanner__log li{display:flex;justify-content:space-between;gap:var(--space-sm);padding:var(--space-2xs) 0;border-bottom:1px solid var(--color-rule);font-size:var(--text-sm)}.scanner__log li[data-kind=ok] span:last-child{color:var(--color-positive-text)}.scanner__log li:not([data-kind=ok]) span:last-child{color:var(--color-danger)}.seat-map{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}.seat{--fill: var(--seat)}.seat__body,.seat__back{fill:var(--fill);transition:fill var(--dur-fast) var(--ease-out)}.seat__back{opacity:.55}.seat__num{fill:var(--color-seat-num);font:600 1px var(--font-body);pointer-events:none}.seat__mark{fill:var(--color-paper);pointer-events:none}.seat.is-available{cursor:pointer}.seat.is-available:hover{--fill: color-mix(in oklch, var(--seat) 60%, var(--color-ink))}.seat.is-available:hover .seat__body{stroke:var(--color-ink);stroke-width:1.5}.seat.is-selected{--fill: var(--color-seat-selected);cursor:pointer}.seat.is-selected .seat__body{stroke:var(--color-seat-selected-ring);stroke-width:2.5}.seat.is-selected .seat__num{fill:var(--color-seat-selected-ink)}.seat.is-blocked{--fill: transparent}.seat.is-blocked .seat__body{stroke:var(--color-seat-blocked);stroke-width:1.2}.seat.is-blocked .seat__back{display:none}.seat__x{stroke:var(--color-seat-blocked);stroke-width:1.2;stroke-linecap:round;pointer-events:none}.seat.is-held{--fill: var(--color-seat-held)}.seat.is-sold{--fill: var(--color-seat-sold)}.seat.is-unpriced{--fill: var(--color-seat-unpriced)}.seat.is-removed .seat__body{fill:transparent;stroke:var(--color-rule-strong);stroke-width:1;stroke-dasharray:2 2}.seat.is-removed .seat__back{display:none}.seat.is-dim,.map-area.is-dim{opacity:.18}.map-stage rect:not([fill]){fill:var(--color-paper-4);stroke:var(--color-rule-strong);stroke-width:1}.map-stage text{fill:var(--color-muted);font-family:var(--font-display);font-weight:600;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}.map-area rect{fill:color-mix(in oklch,var(--seat) 16%,transparent);stroke:var(--seat);stroke-width:1.5;stroke-dasharray:6 5;transition:fill var(--dur-base) var(--ease-out)}.map-area.is-available{cursor:pointer}.map-area.is-available:hover rect{fill:color-mix(in oklch,var(--seat) 28%,transparent)}.map-area.is-selected rect{fill:color-mix(in oklch,var(--color-accent) 22%,transparent);stroke:var(--color-accent);stroke-dasharray:none;stroke-width:2;cursor:pointer}.map-area.is-sold rect,.map-area.is-unpriced rect{fill:var(--color-seat-sold);stroke:var(--color-rule)}.map-area__name{fill:var(--color-ink);font:700 17px var(--font-display);font-stretch:var(--display-width);pointer-events:none}.map-area__meta{fill:var(--color-muted);font:500 12px var(--font-body);pointer-events:none}.map-block__title{fill:var(--color-muted);font:700 15px var(--font-display);font-stretch:var(--display-width);letter-spacing:.01em;pointer-events:none}.map-block__row{fill:var(--color-neutral);font:500 9px var(--font-body);pointer-events:none}.map-outline{fill:transparent;stroke:var(--color-rule-strong);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.seat-map--design .map-block,.seat-map--design .map-stage,.seat-map--design .map-area{cursor:grab}.seat-map--design .map-block .map-outline{fill:#fff0}.seat-map--design [data-selected=true] .map-outline,.seat-map--design .map-area[data-selected=true] rect{stroke:var(--color-accent);stroke-dasharray:none;stroke-width:1.5}.seat-map--design .map-area[data-selected=true] rect{vector-effect:non-scaling-stroke}.seat-map--design .seat{pointer-events:none}.seat-map--design.is-editing-seats .seat{pointer-events:auto;cursor:pointer}.page-message{display:grid;justify-items:center;gap:var(--space-sm);padding:var(--space-2xl) var(--space-md);color:var(--color-muted);text-align:center}.theatre{min-height:100dvh;background:var(--color-paper);color:var(--color-ink)}.booking{display:grid;grid-template-columns:minmax(0,1fr) 24rem;grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"head head" "toolbar panel" "map panel";height:100dvh}.booking__head{grid-area:head;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-rule)}.back-link{flex:none;color:var(--color-muted);font-size:var(--text-sm);text-decoration:none;white-space:nowrap}.back-link:hover{color:var(--color-ink);text-decoration:underline;text-underline-offset:3px}.booking__title{min-width:0;flex:1}.booking__title h1{font-size:var(--text-xl)}.booking__title p{color:var(--color-muted);font-size:var(--text-sm)}.booking__title p:first-letter{text-transform:uppercase}.live-dot{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--color-neutral);font-size:var(--text-xs);white-space:nowrap}.live-dot:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--color-neutral)}.live-dot.is-on:before{background:var(--color-success)}.booking__toolbar{grid-area:toolbar;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-md);padding:var(--space-sm) var(--space-lg)}.segmented{display:inline-flex;padding:3px;border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2)}.segmented button{display:grid;min-height:2.75rem;padding:var(--space-3xs) var(--space-md);border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-muted);font:600 var(--text-sm) / 1.2 var(--font-body);text-align:center;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}.segmented button span{color:var(--color-neutral);font-size:var(--text-xs);font-weight:400}.segmented button:hover{color:var(--color-ink)}.segmented button[aria-selected=true]{background:var(--color-paper-4);color:var(--color-ink)}.segmented button[aria-selected=true] span{color:var(--color-muted)}.legend{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-md);margin:0;padding:0;list-style:none;font-size:var(--text-sm);color:var(--color-muted)}.legend li{display:inline-flex;align-items:center;gap:var(--space-2xs);white-space:nowrap}.legend strong{color:var(--color-ink);font-weight:600}.legend__status{color:var(--color-neutral)}.legend__swatch{width:.875rem;height:.75rem;border-radius:4px}.legend__swatch.is-selected{background:var(--color-seat-selected);box-shadow:0 0 0 1.5px var(--color-seat-selected-ring)}.legend__swatch.is-blocked{background:transparent;box-shadow:inset 0 0 0 1px var(--color-seat-blocked)}.legend__swatch.is-held{background:var(--color-seat-held)}.legend__swatch.is-sold{background:var(--color-seat-sold);box-shadow:inset 0 0 0 1px var(--color-rule-strong)}.booking__map{grid-area:map;position:relative;min-height:0;overflow:hidden;cursor:grab}.booking__map:active{cursor:grabbing}.map-hint{position:absolute;left:var(--space-lg);bottom:var(--space-md);color:var(--color-neutral);font-size:var(--text-xs);pointer-events:none}.zoom-controls{position:absolute;right:var(--space-md);bottom:var(--space-md);display:grid;gap:var(--space-2xs)}.seat-tip{position:absolute;z-index:5;display:grid;gap:2px;padding:var(--space-2xs) var(--space-xs);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-3);box-shadow:var(--shadow-raised);font-size:var(--text-sm);white-space:nowrap;transform:translate(-50%,calc(-100% - 14px));pointer-events:none}.seat-tip span{color:var(--color-muted);font-size:var(--text-xs)}.popover{position:absolute;z-index:6;display:grid;gap:var(--space-xs);width:15rem;padding:var(--space-sm);border:1px solid var(--color-rule-strong);border-radius:var(--radius-lg);background:var(--color-paper-3);box-shadow:var(--shadow-raised);transform:translate(-50%,-50%);cursor:default}.popover__title{font:800 var(--text-lg) / 1.1 var(--font-display);font-stretch:var(--display-width)}.popover__meta{color:var(--color-muted);font-size:var(--text-sm)}.stepper{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-xs);padding:3px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-md)}.stepper button{width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:var(--color-paper-4);color:var(--color-ink);font:500 var(--text-lg) / 1 var(--font-body);cursor:pointer}.stepper button:hover{background:var(--color-rule-strong)}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper span{min-width:2ch;font-weight:600;text-align:center}.stepper--sm{gap:var(--space-2xs)}.stepper--sm button{width:2rem;height:2rem;font-size:var(--text-base)}.panel{grid-area:panel;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;border-left:1px solid var(--color-rule);background:var(--color-paper-2)}.panel__handle{display:none}.panel__head{display:grid;gap:var(--space-2xs);padding:var(--space-md) var(--space-md) var(--space-sm)}.panel__head h2{font-size:var(--text-lg)}.hold-timer{color:var(--color-muted);font-size:var(--text-sm)}.hold-timer strong{color:var(--color-accent);font:500 var(--text-base) var(--font-mono)}.hold-timer.is-urgent strong{color:var(--color-danger)}.panel__list{min-height:0;overflow-y:auto;padding:0 var(--space-md)}.panel__empty{display:grid;gap:var(--space-xs);padding:var(--space-md);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-md);color:var(--color-muted);font-size:var(--text-sm)}.panel__empty p:first-child{color:var(--color-ink)}.ticket-list{display:grid;margin:0;padding:0;list-style:none}.ticket{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--space-xs);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule);animation:ticket-in var(--dur-base) var(--ease-out)}@keyframes ticket-in{0%{opacity:0}}.ticket__swatch{width:.625rem;height:2.25rem;border-radius:3px}.ticket__main{display:grid;min-width:0}.ticket__label{font-weight:500;line-height:1.3}.ticket__cat{color:var(--color-neutral);font-size:var(--text-xs)}.ticket__price{font-size:var(--text-sm);white-space:nowrap}.ticket__remove{width:2rem;height:2rem;border:0;border-radius:50%;background:transparent;color:var(--color-neutral);font-size:var(--text-lg);line-height:1;cursor:pointer}.ticket__remove:hover{background:var(--color-paper-4);color:var(--color-ink)}.panel__foot{display:grid;gap:var(--space-sm);padding:var(--space-md);border-top:1px solid var(--color-rule)}.panel__total{display:flex;justify-content:space-between;align-items:baseline;color:var(--color-muted)}.panel__total strong{color:var(--color-ink);font:800 var(--text-xl) / 1 var(--font-display);font-stretch:var(--display-width)}@media(max-width:56rem){.booking{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"head" "toolbar" "map" "panel"}.booking__head{flex-wrap:wrap;gap:var(--space-2xs) var(--space-sm);padding:var(--space-xs) var(--space-sm)}.booking__title{flex-basis:100%;order:2}.booking__title h1{font-size:var(--text-lg)}.live-dot{margin-left:auto}.booking__toolbar{flex-wrap:nowrap;flex-direction:column;align-items:stretch;padding:var(--space-xs) var(--space-sm)}.segmented{display:flex}.segmented button{flex:1;padding-inline:var(--space-xs)}.legend{flex-wrap:nowrap;overflow-x:auto;margin-right:calc(-1 * var(--space-md));padding-right:var(--space-xl);padding-bottom:var(--space-3xs);scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - var(--space-xl)),transparent);mask-image:linear-gradient(to right,#000 calc(100% - var(--space-xl)),transparent)}.map-hint{display:none}.zoom-controls{right:var(--space-sm);bottom:var(--space-sm)}.panel{position:relative;grid-template-rows:auto auto minmax(0,1fr) auto;max-height:4.5rem;border-left:0;border-top:1px solid var(--color-rule);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:env(safe-area-inset-bottom);transition:max-height var(--dur-slow) var(--ease-out)}.panel[data-expanded=true]{max-height:75dvh}.panel__handle{display:flex;justify-content:space-between;align-items:center;min-height:4.5rem;padding:0 var(--space-md);border:0;background:transparent;color:var(--color-ink);font:600 var(--text-base) var(--font-body);cursor:pointer}.panel__handle:before{content:"";position:absolute;top:6px;left:50%;width:2.5rem;height:4px;border-radius:2px;background:var(--color-rule-strong);transform:translate(-50%)}.panel__handle-total{font:800 var(--text-lg) var(--font-display);font-stretch:var(--display-width)}.panel__head{padding-top:0}.panel__head h2{display:none}.panel:not([data-expanded=true]) .panel__head,.panel:not([data-expanded=true]) .panel__list,.panel:not([data-expanded=true]) .panel__total{display:none}.panel:not([data-expanded=true]){max-height:none;grid-template-rows:auto auto}.panel:not([data-expanded=true]) .panel__foot{padding-top:0;border-top:0}}.admin{width:min(68rem,100%);margin:0 auto;padding:0 var(--space-lg) var(--space-2xl)}.admin__nav{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) 0}.admin__nav .programme__admin{margin-left:auto}.admin__badge{padding:2px var(--space-2xs);border:1px solid var(--color-rule-strong);border-radius:var(--radius-sm);color:var(--color-muted);font-size:var(--text-xs)}.admin__main{display:grid;gap:var(--space-2xl);padding-top:var(--space-lg)}.admin__section h2{margin-bottom:var(--space-md);font-size:var(--text-2xl)}.admin__create{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:end;gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-lg);background:var(--color-paper-2)}.admin-rows{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-rule)}.admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-rule)}.admin-row__main{display:grid;min-width:0}.admin-row__main strong{font-weight:600}.admin-row__main span{color:var(--color-muted);font-size:var(--text-sm)}.admin-row__actions{display:flex;flex-wrap:wrap;gap:var(--space-2xs);justify-content:flex-end}.admin-empty{padding:var(--space-md) 0;color:var(--color-muted)}.sales{display:grid;gap:var(--space-3xs);width:10rem}.sales__bar{height:6px;overflow:hidden;border-radius:3px;background:var(--color-paper-4)}.sales__bar span{display:block;height:100%;background:var(--color-accent);transform-origin:left}.sales__text{color:var(--color-muted);font-size:var(--text-xs)}.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-xs)}.field-row--wide-first{grid-template-columns:minmax(0,1fr) minmax(0,8rem)}.price-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(11rem,100%),1fr));gap:var(--space-xs);margin:0;padding:0;border:0}.price-grid legend{margin-bottom:var(--space-2xs);color:var(--color-muted);font-size:var(--text-sm)}.dot{display:inline-block;width:.625rem;height:.625rem;border-radius:50%;vertical-align:baseline}.designer{display:grid;grid-template-columns:16rem minmax(0,1fr) 19rem;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"top top top" "side canvas inspector";height:100dvh}.designer__top{grid-area:top;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--color-rule)}.designer__name{min-width:0;flex:0 1 24rem;padding:var(--space-3xs) var(--space-2xs);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);font:800 var(--text-lg) var(--font-display);font-stretch:var(--display-width)}.designer__name:hover{border-color:var(--color-rule-strong)}.designer__note{margin-left:auto;color:var(--color-neutral);font-size:var(--text-xs)}.designer__side,.designer__inspector{min-height:0;overflow-y:auto;background:var(--color-paper-2)}.designer__side{grid-area:side;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--space-md);padding:var(--space-md);border-right:1px solid var(--color-rule)}.designer__side h3,.inspector__kind{margin-bottom:var(--space-2xs);color:var(--color-muted);font:600 var(--text-xs) var(--font-body);letter-spacing:.04em;text-transform:uppercase}.designer__inspector{grid-area:inspector;border-left:1px solid var(--color-rule)}.designer__canvas{grid-area:canvas;position:relative;min-height:0;overflow:hidden;background-image:radial-gradient(var(--color-rule) 1px,transparent 1px);background-size:24px 24px;cursor:grab}.side-list{display:grid;gap:2px;margin:0 0 var(--space-2xs);padding:0;list-style:none}.side-list li{display:flex;align-items:center;gap:var(--space-2xs);padding:2px var(--space-2xs);border-radius:var(--radius-sm)}.side-list li.is-active{background:var(--color-paper-4)}.side-list input{width:0;min-width:0;flex:1;padding:var(--space-3xs) 2px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--color-ink);font:500 var(--text-sm) var(--font-body)}.side-list input:hover{border-color:var(--color-rule-strong)}.side-list__count{color:var(--color-neutral);font-size:var(--text-xs)}.side-list__x{width:1.75rem;height:1.75rem;border:0;border-radius:50%;background:transparent;color:var(--color-neutral);cursor:pointer}.side-list__x:hover{background:var(--color-paper-4);color:var(--color-danger)}.swatch-btn{flex:none;width:1.1rem;height:1.1rem;padding:0;border:0;border-radius:4px;cursor:pointer}.add-grid{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.element-list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.element-list button{display:flex;justify-content:space-between;gap:var(--space-2xs);width:100%;padding:var(--space-2xs);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);font:400 var(--text-sm) var(--font-body);text-align:left;cursor:pointer}.element-list button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-list button small{color:var(--color-neutral)}.element-list button:hover{background:var(--color-paper-3)}.element-list button[aria-pressed=true]{background:var(--color-paper-4);box-shadow:inset 2px 0 0 var(--color-accent)}.inspector{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-sm);padding:var(--space-md)}.inspector--empty{color:var(--color-muted);font-size:var(--text-sm)}.field--compact>span{display:flex;justify-content:space-between;font-size:var(--text-xs)}.field--compact input,.field--compact select{min-height:2.25rem;font-size:var(--text-sm)}.field--range input{min-height:auto;padding:0;accent-color:var(--color-accent)}.field--range output{color:var(--color-ink)}.seat-edit{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2xs);padding:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-md)}.switch{display:flex;align-items:center;gap:var(--space-2xs);font-weight:500;cursor:pointer}.switch input{width:1.1rem;height:1.1rem;accent-color:var(--color-accent)}.inspector__hint,.inspector__stat{color:var(--color-muted);font-size:var(--text-xs)}.brushes{display:flex;flex-wrap:wrap;gap:var(--space-3xs)}.brush{padding:var(--space-3xs) var(--space-2xs);border:1px solid var(--color-rule-strong);border-radius:var(--radius-pill);background:transparent;color:var(--color-muted);font:500 var(--text-xs) var(--font-body);white-space:nowrap;cursor:pointer}.brush:hover{color:var(--color-ink)}.brush[aria-checked=true]{border-color:var(--color-accent);background:var(--color-paper-4);color:var(--color-ink)}.inspector__actions{display:flex;gap:var(--space-2xs);padding-top:var(--space-xs);border-top:1px solid var(--color-rule)}@media(max-width:64rem){.designer{grid-template-columns:14rem minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top top" "side canvas" "inspector inspector"}.designer__inspector{max-height:40dvh;border-left:0;border-top:1px solid var(--color-rule)}.designer__note{display:none}}@media(max-width:40rem){.admin{padding-inline:var(--space-sm)}.admin__create,.admin-row{grid-template-columns:minmax(0,1fr)}.admin-row__actions{justify-content:flex-start}.designer{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"top" "canvas" "inspector" "side"}.designer__side{max-height:30dvh;border-right:0;border-top:1px solid var(--color-rule)}}
