@font-face{font-family:Limelight;src:url(fonts/Limelight-Regular.ttf)}
@font-face{font-family:Playfair;src:url(fonts/Playfair.ttf);font-weight:400 900}
@font-face{font-family:OpenSans;src:url(fonts/OpenSans.ttf);font-weight:100 900}
*{box-sizing:border-box}body{margin:0;background:#1c0306 radial-gradient(circle at 50% 0,#6b0f1a,#2a0508 60%,#14020a) fixed;color:#fff8e8;font:500 20px/1.55 OpenSans,'Open Sans',system-ui,sans-serif}
a{color:#ffe08a}main{max-width:900px;margin:0 auto;padding:0 18px}
.mq{text-align:center;padding:26px 10px 18px;border-bottom:4px double #d4af37}.mq a{text-decoration:none}
.m1{font-family:Limelight,serif;color:#d4af37;font-size:clamp(28px,6vw,52px);letter-spacing:4px;text-shadow:0 0 18px #f5c24b88}.m2{color:#e8c872;letter-spacing:8px;font-size:15px}
h1,h2{font-family:Playfair,Georgia,serif}h1{font-size:clamp(34px,7vw,56px);margin:.4em 0 .2em;text-align:center}
h2{font-family:Limelight,serif;font-weight:400;color:#d4af37;letter-spacing:2px;font-size:28px;margin:0 0 6px}h3{margin:14px 0 4px;color:#fff1cc;font-size:21px}
.fest,.film section{border:2px solid #d4af37;border-radius:8px;background:rgba(0,0,0,.35);padding:18px 22px;margin:20px 0}
.fest h2 a{color:#d4af37}.dr{color:#e8c872;font-weight:600}
.sched{list-style:none;padding:0;margin:0}.sched li{padding:4px 0;border-bottom:1px dotted #d4af3755;font-size:21px}
.cards{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}.card{flex:1 1 200px;text-decoration:none;text-align:center;color:#fff8e8}.card img{width:100%;max-width:240px;aspect-ratio:2/3;object-fit:cover;border:3px solid #d4af37}.card span{display:block;font-weight:700;font-size:20px}.card small{color:#e8c872}
.top{display:flex;gap:24px;align-items:flex-start;margin-top:20px}.poster{width:260px;max-width:40%;border:4px solid #d4af37;box-shadow:0 0 20px #000}.top h1{text-align:left;margin-top:0}
.meta{color:#d4af37;font-weight:700;letter-spacing:3px;font-size:22px}.plot{font-size:22px}.cr{color:#fff1cc}
.big{font-size:24px;font-weight:700;margin:4px 0}.runs{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.runs li{background:#ffffff0d;padding:8px 12px;border-left:3px solid #d4af37}.rd{font-weight:700;color:#ffe08a}.pair{color:#e9d7ad;font-size:17px}
.ig{width:100%;max-width:360px;margin-top:12px;border:2px solid #d4af37}
footer{text-align:center;padding:24px 12px 40px;border-top:4px double #d4af37;margin-top:30px;font-size:20px}.sm{font-size:16px;color:#e9d7ad;margin-top:6px}
@media(max-width:600px){.top{flex-direction:column;align-items:center}.poster{max-width:70%}.top h1{text-align:center}body{font-size:19px}}
.cards{gap:24px;justify-content:center}.card{flex:0 0 auto;width:170px}.card img{width:150px;max-width:150px}
.card span{font-size:18px}
.poster{width:280px;max-width:40%;flex:none}
@media(max-width:600px){.poster{max-width:60%;width:220px}.card{width:140px}.card img{width:130px}}
.fx{display:flex;gap:20px;align-items:flex-start}.sc{flex:1}.cards{flex:none;margin-top:6px;gap:12px}.card{width:140px}.card img{width:130px}.card span{font-size:16px;line-height:1.3}
@media(max-width:700px){.fx{flex-direction:column}.cards{align-self:center}}
.cols{display:flex;gap:24px;margin-top:12px}.col{flex:1;text-align:center}
.col .card{display:block;width:auto}.col .card img{width:160px;max-width:160px}.col .card span{font-size:20px;margin-top:6px}
.dg{margin-top:12px;font-weight:700;color:#fff1cc;font-size:19px}.tm{font-size:22px;font-weight:700;color:#fff}

.fest h1{margin-top:0}.pres .logo{display:block;max-width:100%;margin:14px auto 4px;background:#fff8e8;padding:6px;border-radius:4px}
.ptitle{text-align:center;font-family:Playfair,serif;font-size:24px}.pt{text-align:center;font-size:26px}.days{color:#e9d7ad;margin:6px 0;font-size:18px}
.pres .sm{font-size:16px;color:#e9d7ad}.orig{text-align:center;font-size:16px}

.cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.col{min-width:0}
.col .card img{width:100%;max-width:160px;height:auto}
@media(max-width:600px){.fest{padding:14px 12px}.col .card span{font-size:16px}.col .card small{font-size:14px}.dg{font-size:15px;margin-top:8px}.tm{font-size:17px}.col{overflow-wrap:anywhere}}
.fest h2 a,.dr a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.btn{display:inline-block;margin:16px auto 2px;padding:10px 22px;background:linear-gradient(#f1d27a,#c9a031);color:#2a0508!important;font-weight:800;font-size:19px;border-radius:30px;text-decoration:none;box-shadow:0 2px 8px #000a}
.fest{text-align:left}.fest .btn{display:table;margin:16px auto 2px}
.nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin-top:12px;font-weight:700;font-size:17px}.nav a{color:#ffe08a}.nl{color:#e9d7ad}
#now>h1,#upcoming>h1{margin-bottom:0}#upcoming .bf{display:none}#upcoming .blk{margin:12px 0}.gh{margin-top:18px}.gh a{color:#d4af37}
.bl{text-align:center;font-size:22px;color:#fff1cc}.tba{text-align:center;font-size:22px;font-weight:700}
.fgrp{border-top:2px solid #d4af3766;margin-top:24px;padding-top:4px}
#q{width:100%;font-size:22px;padding:12px 14px;border-radius:8px;border:2px solid #d4af37;background:#fff8e8;color:#2a0508;margin:10px 0}
.legend{font-size:16px;color:#e9d7ad;margin:6px 0 10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:800;color:#f6dc8a;letter-spacing:.5px;vertical-align:middle;white-space:nowrap}
.src{display:inline-block;font-size:13px;font-weight:700;border:1px solid #e9d7ad;color:#e9d7ad;border-radius:4px;padding:0 6px;vertical-align:middle}
.res{list-style:none;padding:0}.res li{border-bottom:1px dotted #d4af3755;padding:10px 0}.rt{font-weight:700;font-size:20px}.rd2{color:#ffe08a;font-size:17px}.rn{color:#e9d7ad;font-size:16px}
.hid{display:none!important}
.badge.og{color:#d3c780}.badge.or{color:#ffe58a}
.badge.s1{color:#e6eaee}.badge.rt{color:#ff8a80}
details.arch{padding:12px 18px;margin:10px 0}details.arch summary{cursor:pointer;list-style:none}.an{font-weight:700;font-size:20px;color:#fff1cc}.arch .dr{font-size:16px}.abl{font-size:17px;line-height:1.45;padding-left:18px}.abl li{margin:4px 0}
.bf h2,.bf .dr,.gh,.fgrp>.dr,.fest>h2,.fest>.dr{text-align:center}
.fg{border-bottom:1px solid #d4af3755;padding:12px 0!important}.fh{font-family:Playfair,serif;font-weight:700;font-size:23px;color:#fff1cc}.fh a{color:#ffe08a}.fc{font-family:OpenSans,sans-serif;font-size:15px;font-weight:600;color:#e9d7ad}
.fl{list-style:none;padding:4px 0 0 4px;margin:0}.fl li{padding:3px 0;font-size:17px;line-height:1.35;border:0}.fl .tk{vertical-align:-5px}.sd{color:#ffe08a}.fl .rn{color:#e9d7ad;font-size:15px}
@media(max-width:600px){.fh{font-size:20px}.fl li{font-size:15px}.fl .tk{width:34px;height:20px}}
.legend{gap:6px 16px}.legend .li{white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
details.arch summary{text-align:center;list-style:none}
details.arch summary::-webkit-details-marker{display:none}
details.arch summary .an{display:block;text-align:center}
details.arch summary .dr{display:block;text-align:center;margin-top:4px;font-size:.9em;opacity:.9}

.abl{list-style:none;padding-left:0}.abl li{margin:0 0 14px}.abl .bd{display:block}.abl .bf2{display:block;padding-left:12px}.abl .tm2{opacity:.8;font-size:.9em}
.m1{white-space:nowrap;font-size:clamp(14px,6.4vw,52px);letter-spacing:clamp(1px,.4vw,4px)}

.nav{flex-wrap:nowrap;gap:0;font-weight:400;font-size:clamp(10px,2.8vw,15px);letter-spacing:clamp(2px,.6vw,8px);text-transform:uppercase;white-space:nowrap;margin-top:14px}
.nav a{color:#e8c872;text-decoration:none;padding:2px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.nav a+a::before{content:"·";display:inline-block;margin:0 clamp(4px,1.2vw,14px);color:#e8c872;border:0}
.nav a:hover,.nav a:focus-visible{color:#fff1cc;border-bottom-color:#d4af37aa}
.nav a.on{color:#fff1cc;border-bottom-color:#d4af37}

.dtop{display:block;text-align:center;font-size:15px;letter-spacing:1px;opacity:.9;margin:0 0 4px}
details.arch summary .dtop{margin:0 0 4px}
.bf h2,.gh,.fest h1{margin-top:0}
details.arch summary .dtop{letter-spacing:0;font-size:14px}

.addr{font-style:normal;line-height:1.5;font-size:17px;letter-spacing:0;text-transform:none;margin-bottom:10px}.addr a{text-decoration:none;color:#f3e3b5}.addr a:hover{text-decoration:underline}.addr .an1{font-weight:700}
.addr{font-size:14px;margin-bottom:0}

.bf h2 a,.bf h2 a:hover,.bf h2 a:focus,.bf h2 a:visited,.gh a,.gh a:hover,.gh a:focus,.gh a:visited,.fest .dr a,.fest .dr a:hover{text-decoration:none!important}

.ogsum{display:block;font-size:.8em}.ogsum .badge{vertical-align:middle;margin-right:6px}

.nav a+a::before{content:none!important}
.nav{--ls:clamp(2px,.6vw,8px);align-items:baseline}
.nav .sep{color:#e8c872;margin:0 clamp(6px,1.6vw,14px) 0 calc(clamp(6px,1.6vw,14px) - var(--ls))}
.nav a{border-bottom:0!important;padding-bottom:3px;background:linear-gradient(#d4af37,#d4af37) left bottom/0 1px no-repeat;transition:background-size .2s,color .2s}
.nav a.on{background-size:calc(100% - var(--ls)) 1px;color:#fff1cc}
.nav a:hover,.nav a:focus-visible{background-size:calc(100% - var(--ls)) 1px}
.nav .sep{letter-spacing:0}

.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
main>section:first-child{margin-top:18px}
.vh+.fgrp{border-top:0!important;padding-top:0;margin-top:0}

.day h4{margin:14px 0 6px;font-size:17px;color:#fff1cc}.dsch{list-style:none;padding:0;margin:0 0 6px}.dsch li{margin:4px 0;line-height:1.6}
.dsch .df{font-weight:700;margin-right:6px}.dsch .st{white-space:nowrap;margin-right:10px}
.gcal{color:#d4af37;opacity:.8;margin-left:3px;vertical-align:-1px;text-decoration:none}.gcal:hover{opacity:1}.calic{display:inline-block}
.days{margin-top:10px;text-align:left}details.day{border-top:1px solid #d4af3744;padding:6px 2px}details.day summary{cursor:pointer;color:#e8c872;font-weight:700}
.gct{color:inherit;text-decoration:underline dotted rgba(212,175,55,.7);text-underline-offset:3px}.gct:hover,.gct:focus-visible{color:#ffe08a;text-decoration:underline solid #d4af37}
.bill+.bill{margin-top:18px;padding-top:6px;border-top:1px solid #d4af3733}

.card.noimg{display:flex;align-items:center;justify-content:center;min-height:90px;padding:12px;border:1px solid #d4af3766;border-radius:6px;background:#2a0509;text-align:center}
.ptm{font-size:14px;opacity:.85;margin-top:4px;text-align:center}
a.pfl,a.pfl:hover,a.pfl:visited{color:inherit;text-decoration:none}a.pfl:hover{color:#ffe08a}
.fest h1{font-family:Limelight,serif;color:#d4af37;text-shadow:0 0 18px #f5c24b88;letter-spacing:.04em;font-weight:400}
.ety{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:1px 6px;border-radius:9px;border:1px solid #d4af37;color:#f6dc8a;vertical-align:middle;margin-right:4px;white-space:nowrap}
.ety-short{color:#b9e3ff;border-color:#6aa9d6}.ety-newsreel{color:#d8d8d8;border-color:#999}.ety-vaudeville{color:#ffb3d1;border-color:#c96a92}.ety-special-event{color:#c9f2b0;border-color:#79b257}.ety-unknown{color:#bbb;border-color:#777;border-style:dashed}
.yrnav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px 0 16px}.yrnav a{color:#e8c872;text-decoration:none;border:1px solid #d4af37;border-radius:14px;padding:3px 9px;font-weight:700;font-size:15px}
.yr .yh{font-family:Limelight,serif;color:#d4af37;font-size:24px;letter-spacing:2px}.yl{list-style:none;padding:0;margin:6px 0}.yl li{padding:5px 0;border-bottom:1px solid #ffffff14}.yd{color:#e8c872;font-weight:600;margin-right:6px}.yr{scroll-margin-top:70px}
.an100{display:inline-block;font-family:Limelight,serif;font-weight:400;color:#d4af37;letter-spacing:1.5px;font-size:.95em;padding:0 8px;border-top:2px solid #d4af37;border-bottom:2px solid #d4af37;margin-left:6px;text-shadow:0 0 6px #d4af3755;white-space:nowrap}
.opd{text-align:center;color:#fff1cc;margin:8px 0}.opd .an100{margin:0 6px 0 0}

.fl .rl{display:block;padding-left:.2em;color:#e8dcc0;font-size:.95em}

.film .top .meta{text-align:center}.crd{text-align:center;margin:.5em 0 1em;line-height:1.45}.crl{font-size:1.02em}.crk{color:#d4af37;font-weight:700}

.film .top h1,.film .top .meta,.film .top .crd{text-align:center!important}.film .top .meta{display:block;width:100%;box-sizing:border-box;padding-left:3px;align-self:stretch}.film .top>div{flex:1 1 auto;min-width:0}

.slogo{text-align:center;margin:.2em 0 1em}.slogo img{height:56px;width:auto;max-width:80%;object-fit:contain;background:none;padding:0;border:0;border-radius:0;box-shadow:none}
/* SPLITCARD experiment: closed card + showtimes outside (remove with SPLITCARD=False in build.py) */
.fest.blk.split{border:0;background:none;padding:0}
.blk.split>.cardbox{border:2px solid #d4af37;border-radius:8px;background:rgba(0,0,0,.35);padding:14px 12px 16px}
.blk.split>.days{margin:14px 4px 0;padding:4px 10px;background:rgba(0,0,0,.25);border-radius:8px}
.blk.split>.days details.day:first-child{border-top:0}
/* single-feature program: center the lone poster */
.cols>.col:only-child{grid-column:1/-1;justify-self:center;width:calc(50% - 7px)}
