:root{--bg: #0b0a12;--panel: #14121d;--panel-2: #1d1a2a;--border: #2b2740;--border-strong: #3d3757;--text: #f4f1e6;--muted: #a29bb2;--gold: #f0b43c;--gold-hi: #ffd069;--amber-deep: #d97b26;--ink-on-gold: #241503;--glow: rgba(240, 180, 60, .28);--glow-soft: rgba(240, 180, 60, .14);--danger: #ff5a5f;--success: #35c98a;--radius: 12px;--font-display: "Futura", "Avenir Next", "Century Gothic", "Trebuchet MS", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1100px 500px at 50% -120px,var(--glow-soft),transparent 70%),var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{max-width:960px;margin:0 auto;padding:1.5rem 1rem 4rem}.app-header h1{font-family:var(--font-display);font-size:1.45rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;margin:0 0 .25rem}.app-header h1:after{content:"";display:block;width:3.5rem;height:3px;margin-top:.5rem;border-radius:999px;background:linear-gradient(90deg,var(--gold-hi),var(--amber-deep));box-shadow:0 0 10px var(--glow)}.app-header p{margin:.75rem 0 1.5rem;color:var(--muted)}.steps{display:flex;gap:.5rem;margin:0 0 1.5rem;padding:0;flex-wrap:wrap}.steps li{list-style:none;padding:.3rem .8rem;border:1px solid var(--border);border-radius:999px;font-size:.85rem;color:var(--muted);white-space:nowrap}.steps li.active{border-color:var(--gold);color:var(--gold-hi);background:var(--glow-soft);box-shadow:0 0 12px var(--glow-soft)}.steps li.done{border-color:var(--success);color:var(--success)}h2{font-family:var(--font-display);font-size:1.15rem;font-weight:600;letter-spacing:.05em;margin:0 0 1rem}.text-input{width:100%;padding:.65rem .85rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:1rem}.text-input:focus-visible{outline:2px solid var(--gold-hi);outline-offset:1px}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5ch;padding:.6rem 1.35rem;border-radius:999px;border:1px solid var(--border-strong);background:linear-gradient(180deg,var(--panel-2),var(--panel));color:var(--text);font:inherit;font-size:.95rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:border-color .14s ease,color .14s ease,background-color .14s ease,box-shadow .14s ease,filter .14s ease,transform 90ms ease}.btn:hover{border-color:var(--gold);color:var(--gold-hi);box-shadow:0 0 14px var(--glow-soft)}.btn:active{transform:translateY(1px);box-shadow:none}.btn:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none;border-color:var(--border);color:var(--muted)}.btn.chip-btn{padding:.45rem .95rem;font-size:.85rem}.btn.chip-btn.selected{border-color:var(--gold);background:linear-gradient(180deg,var(--gold-hi),var(--gold));color:var(--ink-on-gold);box-shadow:0 0 12px var(--glow)}.btn.chip-btn.selected:hover{color:var(--ink-on-gold);filter:brightness(1.06)}.btn-primary{--stub-cut: var(--bg);border:none;color:var(--ink-on-gold);font-weight:700;padding:.65rem 2.1rem .65rem 1.5rem;background-image:repeating-linear-gradient(to bottom,#4628068c 0,#4628068c 4px,#46280600 4px,#46280600 8px),linear-gradient(115deg,var(--gold-hi),var(--gold) 55%,var(--amber-deep));background-size:1px calc(100% - 12px),100% 100%;background-position:calc(100% - 1.15rem) 6px,0 0;background-repeat:no-repeat;box-shadow:0 0 18px var(--glow),inset 0 1px #ffffff59}.btn-primary:before,.btn-primary:after{content:"";position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:var(--stub-cut);transform:translateY(-50%);pointer-events:none}.btn-primary:before{left:-6px;box-shadow:inset -1px 0 #0000004d}.btn-primary:after{right:-6px;box-shadow:inset 1px 0 #0000004d}.btn-primary:hover{color:var(--ink-on-gold);filter:brightness(1.07);box-shadow:0 0 26px var(--glow),inset 0 1px #ffffff59}.btn-primary:active{filter:brightness(.97)}.btn-primary:disabled{opacity:1;color:#24150399;filter:saturate(.35) brightness(.7);box-shadow:none}.toolbar{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.toolbar .text-input{flex:1 1 220px}.filter-tabs{display:flex;gap:.4rem;flex-wrap:wrap}.movie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.movie-card{display:flex;flex-direction:column;text-align:left;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;overflow:hidden;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.movie-card:hover,.movie-card:focus-visible{border-color:var(--gold);box-shadow:0 0 18px var(--glow-soft),0 8px 20px #00000073;transform:translateY(-3px)}.movie-card:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}.movie-card:active{transform:translateY(-1px)}.movie-card img{width:100%;aspect-ratio:320 / 470;object-fit:cover;display:block;background:var(--panel-2)}.movie-card .movie-meta{display:block;padding:.6rem .7rem .75rem}.movie-card .movie-name{display:block;font-weight:600;font-size:.92rem;margin:0 0 .2rem}.movie-card .movie-sub{display:block;font-size:.78rem;color:var(--muted);margin:0}.badge{display:inline-block;font-size:.7rem;padding:.1rem .45rem;border-radius:999px;margin-top:.4rem}.badge.now-playing{background:#35c98a26;color:var(--success)}.badge.coming-soon{background:var(--glow-soft);color:var(--gold-hi)}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:0}.chip{list-style:none;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .4rem .3rem .8rem;background:var(--glow-soft);border:1px solid var(--gold);border-radius:999px;font-size:.85rem;color:var(--text);box-shadow:0 0 10px var(--glow-soft)}.chip button{border:none;background:transparent;color:var(--gold-hi);font:inherit;font-size:1rem;line-height:1;cursor:pointer;padding:.15rem .4rem;border-radius:50%}.chip button:hover{background:#f0b43c40;color:var(--text)}.chip button:focus-visible{outline:2px solid var(--gold-hi);outline-offset:1px}.theatre-list{display:flex;flex-direction:column;gap:.4rem;max-height:24rem;overflow-y:auto;padding:.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.theatre-row{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:8px;cursor:pointer}.theatre-row:hover{background:var(--panel-2)}.theatre-row:has(input:focus-visible){outline:2px solid var(--gold-hi);outline-offset:-2px}.theatre-row input{accent-color:var(--gold);width:1.05rem;height:1.05rem;flex-shrink:0}.theatre-row .theatre-name{font-size:.95rem}.theatre-row .theatre-city{font-size:.8rem;color:var(--muted)}.time-window{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:1rem 1.1rem .9rem;margin:1.25rem 0 0}.time-window legend{padding:0 .5rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.preset-chips{display:flex;flex-wrap:wrap;gap:.4rem}.custom-times{display:flex;gap:.75rem 1rem;flex-wrap:wrap;margin-top:.9rem}.custom-times label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}.custom-times .text-input{width:auto}.hint{margin:0;font-size:.8rem;color:var(--muted)}.custom-times .hint{flex-basis:100%}.time-window-readout{margin:.9rem 0 0;font-size:.88rem;color:var(--muted)}.time-window-readout strong{color:var(--gold-hi);font-weight:600}.showtimes-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1.25rem}.showtimes-panel h3{margin:0}.disclosure{display:flex;align-items:baseline;gap:.5rem;width:100%;padding:.15rem 0;border:none;background:none;text-align:left;cursor:pointer;font-family:var(--font-display);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-hi)}.disclosure:hover{color:var(--text)}.disclosure:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px;border-radius:4px}.disclosure .chevron{display:inline-block;transition:transform .14s ease;color:var(--gold)}.disclosure .chevron.open{transform:rotate(90deg)}.disclosure-summary{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;text-transform:none;letter-spacing:.02em;color:var(--muted)}.showtimes-body{margin-top:.6rem}.showtimes-body>.hint{margin-bottom:.75rem}.showtimes-scroll{max-height:16rem;overflow-y:auto;padding-right:.25rem}.showtimes-theatre h4{font-size:.9rem;font-weight:600;margin:.9rem 0 .4rem}.showtimes-theatre:first-child h4{margin-top:0}.showtimes-theatre .empty{padding:.25rem 0 .5rem;text-align:left;font-size:.85rem}.showtimes-day{display:flex;gap:.75rem;align-items:baseline;margin-bottom:.55rem}.showtimes-date{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;flex:0 0 6rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.advance-badge{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:.05rem .4rem;border-radius:999px;color:var(--ink-on-gold);background:linear-gradient(180deg,var(--gold-hi),var(--gold));box-shadow:0 0 8px var(--glow-soft)}.session-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.4rem;margin:0;padding:0;list-style:none;flex:1;min-width:0}.session{display:flex;flex-direction:column;gap:.1rem;width:100%;min-height:4.5rem;padding:.4rem .7rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel-2);color:var(--text);text-decoration:none;font-size:.85rem;min-width:0;transition:border-color .14s ease,box-shadow .14s ease}a.session:hover,a.session:focus-visible{border-color:var(--gold);box-shadow:0 0 12px var(--glow-soft)}a.session:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}.session.no-link{cursor:default}.session .session-time{font-weight:600}.session .session-sub{display:block;max-width:100%;font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session .session-flag-row{display:block;height:1.05rem;margin-top:auto}.session .session-flag{display:inline-block;font-size:.65rem;line-height:1.3;padding:.05rem .4rem;border-radius:999px;background:#ff5a5f26;color:var(--danger);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session.outside-window{opacity:.55}.session.outside-window:not(.sold-out) .session-flag{background:var(--panel);color:var(--muted);border:1px dashed var(--border-strong)}.session.sold-out .session-time{text-decoration:line-through;text-decoration-color:var(--danger)}.out-link{color:var(--gold-hi);font-size:.85rem;text-decoration:none;border-bottom:1px dotted var(--gold)}.out-link:hover{color:var(--text);border-bottom-style:solid}.out-link:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px;border-radius:2px}.summary{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem}.summary dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:.75rem}.summary dt:first-child{margin-top:0}.summary dd{margin:.15rem 0 0}.email-form{display:flex;flex-direction:column;gap:.75rem;max-width:420px}.email-form label{font-size:.9rem;color:var(--muted)}.step-nav{display:flex;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap}.error{color:var(--danger);background:#ff5a5f1a;border:1px solid rgba(255,90,95,.4);border-radius:var(--radius);padding:.6rem .9rem;margin:.75rem 0;font-size:.92rem}.state-msg{color:var(--muted);padding:2rem 0;text-align:center}.empty{color:var(--muted);padding:1.5rem 0;text-align:center;font-size:.95rem}.app-centered{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;padding-top:1rem;padding-bottom:1rem}.success{background:var(--panel);border:1px solid var(--success);border-radius:var(--radius);padding:1.5rem;max-width:640px}.success-layout{display:flex;gap:1.5rem;align-items:flex-start}.success-poster{flex-shrink:0;width:140px;aspect-ratio:320 / 470;object-fit:cover;border-radius:var(--radius);border:1px solid var(--gold);background:var(--panel-2);box-shadow:0 0 22px var(--glow-soft),0 8px 20px #00000073}.success-body{min-width:0}.success-body h2{margin-top:0}.success .btn-primary{--stub-cut: var(--panel)}.success h2{color:var(--success)}.success ul{padding-left:1.2rem}.success .fine-print{color:var(--muted);font-size:.88rem}@media (max-width: 480px){.app{padding:1rem .75rem 3rem}.movie-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem}.step-nav .btn{flex:1 1 auto}.custom-times label{flex:1 1 40%}.showtimes-day{flex-direction:column;gap:.25rem}.success-layout{flex-direction:column;align-items:center}.success-poster{width:120px}}.popcorn-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000}.popcorn-kernel{position:absolute;line-height:1;opacity:0;will-change:transform,opacity;animation:popcorn-pop .75s cubic-bezier(.2,.6,.35,1) forwards}.popcorn-kernel svg{display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}@keyframes popcorn-pop{0%{transform:translate(-50%,-50%) scale(.4) rotate(0);opacity:1}55%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1) rotate(var(--rot));opacity:1}to{transform:translate(calc(-50% + var(--dx) * 1.25),calc(-50% + var(--dy) * .35 + 48px)) scale(.9) rotate(calc(var(--rot) * 1.6));opacity:0}}@media (prefers-reduced-motion: reduce){*{transition:none!important}.movie-card:hover,.movie-card:focus-visible,.btn:active{transform:none}.popcorn-kernel{animation:none;opacity:0}}.site-disclaimer{max-width:640px;margin:2.5rem auto 1.5rem;padding:1rem 1.25rem 0;border-top:1px solid var(--border, #2a2a35);font-size:.72rem;line-height:1.5;color:var(--muted, #8a8a99);text-align:center}
