/* Program gallery · arc edition */
/* 统一 token 覆盖：accent 对齐全站红，字体栈对齐 gb-sans */
:root{--accent:#e52030;font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif}
:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;--page:#f7f7f8;--ink:#151516;--muted:#85858a;--card:#fff;--line:rgba(0,0,0,.09);--accent:#df2438;--gutter:46px;--card-width:256px;--card-height:332px;--gap:32px;--radius:22px;--stage-height:530px}
*{box-sizing:border-box}html,body{margin:0;background:var(--page);color:var(--ink)}body{overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}.topbar-space{height:56px}main{max-width:1300px;margin:0 auto;padding:38px 0 54px}.program-section{position:relative;padding:0 0 32px;margin:0 0 38px}.program-section:not(:last-child)::after{content:"";position:absolute;height:1px;bottom:0;left:var(--gutter);right:var(--gutter);background:var(--line)}.program-section:last-child{padding-bottom:0;margin-bottom:0}.section-title{margin:0 var(--gutter) 8px;font-size:28px;font-weight:600;line-height:1.3;letter-spacing:-.045em}.arc-stage{position:relative;width:100%;height:var(--stage-height);isolation:isolate}.arc-track{position:relative;display:flex;align-items:flex-start;gap:var(--gap);width:100%;height:100%;padding:40px 20px 108px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pan-y;cursor:grab;mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 88%,transparent 100%);-webkit-overflow-scrolling:touch}.arc-track::-webkit-scrollbar{display:none}.arc-track:focus-visible{outline:1px solid var(--accent);outline-offset:-10px;border-radius:24px}.arc-track.is-dragging,.arc-track.is-animating,.arc-track.is-interacting{scroll-snap-type:none!important;scroll-behavior:auto!important}.arc-track.is-dragging{cursor:grabbing}.arc-card{position:relative;flex:0 0 var(--card-width);width:var(--card-width);height:var(--card-height);background:var(--card);border:1px solid rgba(0,0,0,.06);border-radius:var(--radius);overflow:hidden;scroll-snap-align:center;transform-origin:50% 50%;box-shadow:0 9px 24px -8px rgba(0,0,0,.11),0 2px 4px rgba(0,0,0,.025);user-select:none;-webkit-user-select:none;will-change:transform,filter,opacity;backface-visibility:hidden;transition:border-color 240ms ease,box-shadow 240ms ease}.arc-card.is-current{border-color:rgba(0,0,0,.07);box-shadow:0 15px 32px -10px rgba(0,0,0,.15),0 2px 5px rgba(0,0,0,.025)}.card-media{width:100%;height:100%;background:transparent;overflow:hidden}.card-media img{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none}.card-copy{position:absolute;bottom:0;left:0;right:0;padding:24px 21px 21px;background:linear-gradient(transparent,rgba(255,255,255,.96) 30%);color:#171719}.card-title{margin:0;font-size:18px;line-height:1.4;font-weight:600;letter-spacing:-.025em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-description{margin:6px 0 0;font-size:13px;line-height:1.5;color:#747479;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-link{position:absolute;inset:0;z-index:2;border-radius:inherit}.card-link:focus-visible{outline:2px solid var(--accent);outline-offset:-5px}.arc-indicators{position:absolute;bottom:25px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:7px;height:7px;pointer-events:none}.arc-indicators span{width:3px;height:3px;border-radius:999px;background:rgba(0,0,0,.18);transition:width 260ms ease,background-color 260ms ease}.arc-indicators span.is-active{width:14px;background:var(--accent)}.arc-status{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
body[data-theme="float"]{--page:#fff;--card:#fafafa;--card-width:260px;--card-height:338px;--gap:38px;--radius:20px;--stage-height:544px}.float .arc-card,body[data-theme="float"] .arc-card{background:linear-gradient(145deg,#fff,#f5f5f6);border-color:rgba(0,0,0,.08);box-shadow:0 12px 24px -10px rgba(0,0,0,.10)}body[data-theme="float"] .arc-card.is-current{border-color:rgba(223,36,56,.22);box-shadow:0 17px 32px -12px rgba(0,0,0,.18)}
body[data-theme="noir"]{color-scheme:dark;--page:#09090b;--ink:#f5f5f7;--card:#f7f7f8;--line:rgba(255,255,255,.12);--card-width:258px;--card-height:336px;--gap:35px;--stage-height:544px}body[data-theme="noir"] .arc-card{border-color:rgba(255,255,255,.12);box-shadow:0 15px 35px rgba(0,0,0,.3)}body[data-theme="noir"] .arc-card.is-current{border-color:rgba(255,255,255,.4);box-shadow:0 18px 42px rgba(0,0,0,.34)}body[data-theme="noir"] .arc-indicators span{background:rgba(255,255,255,.22)}body[data-theme="noir"] .arc-indicators span.is-active{background:var(--accent)}
@media(min-width:1600px){:root{--card-width:270px;--card-height:350px;--stage-height:550px;--gutter:50px}body[data-theme="float"]{--card-width:276px;--card-height:358px;--stage-height:568px}body[data-theme="noir"]{--card-width:274px;--card-height:354px;--stage-height:562px}}
@media(max-width:900px){:root{--gutter:32px;--card-width:232px;--card-height:304px;--gap:28px;--stage-height:500px}.section-title{font-size:26px}body[data-theme="float"],body[data-theme="noir"]{--card-width:236px;--card-height:308px;--stage-height:514px}}
@media(max-width:600px){:root,body[data-theme="float"],body[data-theme="noir"]{--gutter:25px;--card-width:54vw;--card-height:calc(54vw * 1.3);--gap:18px;--radius:18px;--stage-height:calc(54vw * 1.3 + 122px)}.topbar-space{height:56px}main{padding-top:24px;padding-bottom:40px}.section-title{font-size:24px;margin-bottom:4px}.program-section{padding-bottom:23px;margin-bottom:28px}.arc-track{padding-top:27px;padding-bottom:75px;mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent)}.arc-indicators{bottom:23px}.card-copy{padding:20px 17px 17px}.card-title{font-size:16px}.card-description{font-size:12px}}
@media(prefers-reduced-motion:reduce){.arc-card,.arc-indicators span{transition:none}}

body{min-height:100vh}

/* Selected theatre edition: black → black/red gradient → red. */
main{padding-bottom:0}
.program-section{isolation:isolate;margin-bottom:0;padding:38px 0}
.program-section:first-child{padding-top:0}
.program-section:last-child{padding-bottom:48px}
.program-section::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;pointer-events:none}
.program-section[data-section="recommended"]::before{background:#09090b}
.program-section[data-section="popular"]::before{background:linear-gradient(180deg,#09090b 0%,#310811 38%,#921327 78%,#d62235 100%)}
.program-section[data-section="guests"]::before{background:#d62235}
.program-section[data-section="popular"],.program-section[data-section="guests"]{--accent:#fff;--line:rgba(255,255,255,.20)}
@media(max-width:600px){.program-section{margin-bottom:0;padding:28px 0}.program-section:first-child{padding-top:0}.program-section:last-child{padding-bottom:38px}}

/* Slightly larger cards, keeping the accepted arc geometry. */
body[data-theme="noir"]{--card-width:284px;--card-height:370px;--stage-height:580px}
.arc-card{cursor:pointer}.arc-track.is-dragging .arc-card{cursor:grabbing}
.arc-card:focus-visible{outline:2px solid #fff;outline-offset:5px}
@media(min-width:1600px){body[data-theme="noir"]{--card-width:300px;--card-height:388px;--stage-height:600px}}
@media(min-width:601px) and (max-width:900px){body[data-theme="noir"]{--card-width:258px;--card-height:336px;--stage-height:548px}}
@media(max-width:600px){body[data-theme="noir"]{--card-width:58vw;--card-height:calc(58vw * 1.3);--stage-height:calc(58vw * 1.3 + 126px)}}
