/* The yearly palette sits on a permanent black canvas. Cards use quiet dark surfaces. */
body{background:#000;color:var(--sloff-text)}
body :is(.elementor .e-con.card,.elementor .e-con.sloff-poster-surface,.elementor .e-con.sloff-poster-intro,.elementor .e-con.sloff-tile,.elementor .e-con.sloff-newsletter-card,.sloff-passes__card,.sloff-passes__preview-card,.sloff-passes__closed,.sloff-passes__helper,.sloff-passes__perks,.sloff-passes__comparison,.sloff-passes__faq,.sloff-passes__member-note,.sloff-lineup-card,.sloff-lineup-archive__card,.sloff-film-heading,.sloff-film-section,.sloff-showtime,.sloff-schedule__card,.sloff-schedule-meanwhile__card,.sloff-now-next__venue,.sloff-venue-card,.sloff-awards__item,.sloff-content__empty,.sloff-archive__award-group,.sloff-archive__tile,.sloff-archive__film,.sloff-archive-index__link,.sloff-archive-film__body,.sloff-account__card,.sloff-theme-404,.sloff-post-content,.sloff-theme-news .elementor-post,.sloff-theme-search .elementor-post){--sloff-text:var(--sloff-look-text,#fff);--sloff-ink:var(--sloff-look-text,#fff);--e-global-color-sloff-ink:var(--sloff-look-text,#fff);--e-global-color-sloff-fest-paper:#111;--e-global-color-sloff-text-body:var(--sloff-look-text,#fff);--e-global-color-sloff-text-muted:var(--sloff-look-text,#fff);--sloff-fest-accent:var(--sloff-look-accent,#bbc238);--sloff-fest-accent-ink:var(--sloff-look-accent-ink,#000);--sloff-fest-accent-hover:var(--sloff-look-accent,#bbc238);--sloff-fest-highlight:var(--sloff-look-highlight,#f573be);--sloff-surface-1:#111;--sloff-surface-2:#1a1a1a;--sloff-surface-3:#252525;--sloff-line:rgba(255,255,255,.24);--sloff-line-strong:rgba(255,255,255,.42);--sloff-line-input:rgba(255,255,255,.7);--sloff-focus:var(--sloff-look-accent,#bbc238);--sloff-fest-paper:#111;--sloff-text-body:var(--sloff-text);--sloff-text-muted:var(--sloff-text);--sloff-text-faint:var(--sloff-text);background:#111;color:var(--sloff-text);border-color:var(--sloff-line-strong)}
body .elementor .e-con.sloff-poster-band{background:#000}
body :is(.btn-primary,.elementor-button){--sloff-ink:var(--sloff-fest-accent-ink)}
/* A band (not a card) is the page black under a year Look, so it has no visible edge: its bottom texture strip
   floated alone between sections (Home Passes, Press). Cards keep their strip. Release the space it reserved. */
body .elementor .e-con.sloff-poster-band:not(.card)>.sloff-poster-texture{display:none}
body .elementor .e-con.sloff-poster-band:not(.card):has(>.sloff-poster-texture){padding-bottom:var(--padding-bottom,var(--sloff-space-5))}

body .elementor .sloff-newsletter-card .elementor-element.elementor-widget-form.sloff-newsletter-form .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper){background:#000;color:var(--sloff-text);border-color:var(--sloff-text)}
/* Buttons on dark surfaces. poster-art.css paints them in --sloff-ink for its light paper cards, and the line above sets
   ink to the accent ink inside buttons, so both ended up black on black. Primary = accent fill; secondary = outline. */
body .elementor :is(.e-con.card,.e-con.sloff-poster-surface) .elementor-widget-button:is(.btn-primary,.btn-orange,.btn-pink) a.elementor-button{background:var(--sloff-fest-accent);border-color:var(--sloff-fest-accent);color:var(--sloff-fest-accent-ink)}
body .elementor :is(.e-con.card,.e-con.sloff-poster-surface) .elementor-widget-button.btn-secondary a.elementor-button{background:transparent;border-color:var(--sloff-text);color:var(--sloff-text)}
/* Match the variant specificity so secondary/card colors cannot override the filled hover ink. */
body .elementor :is(.e-con.card,.e-con.sloff-poster-surface) .elementor-widget-button:is(.btn-primary,.btn-secondary,.btn-orange,.btn-pink) a.elementor-button:is(:hover,:focus-visible){background:var(--sloff-fest-accent-hover);border-color:var(--sloff-fest-accent-hover);color:var(--sloff-fest-accent-ink)}
body .elementor .sloff-newsletter-card .elementor-button{color:var(--sloff-fest-accent-ink);background:var(--sloff-fest-accent)}
/* Custom hero. As wide as the page content (the same inset as every section) and as tall as the art's own
   shape, so the art is never cropped or letterboxed. The words and buttons are one box: over the art in one
   of nine places (1025 px and wider uses the Computer choice, tablets and phones the Phone choice) or in a bar
   under it. Inline --sloff-hero-ratio / --sloff-hero-ratio-phone come from the art's pixel size. */
.sloff-hero.sloff-custom-hero{--sloff-hero-inset:clamp(14px,2vw,28px);position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);width:auto;max-width:none;min-width:0;margin:var(--sloff-space-3,24px) max(var(--sloff-gutter),calc((100% - var(--sloff-content-max,1260px)) / 2)) 0;padding:0;overflow:hidden;border-radius:var(--sloff-radius-card);background:#000;color:var(--sloff-text)}
.sloff-hero.sloff-custom-hero::before,.sloff-hero.sloff-custom-hero::after{content:none;background:none}
.sloff-custom-hero--narrow{--sloff-hero-box:28rem;--sloff-hero-box-set:28rem}
.sloff-custom-hero--medium{--sloff-hero-box:40rem;--sloff-hero-box-set:40rem}
.sloff-custom-hero--wide{--sloff-hero-box:56rem;--sloff-hero-box-set:56rem}
.sloff-custom-hero__art{grid-area:1/1;display:block;position:relative;z-index:0;min-width:0;aspect-ratio:var(--sloff-hero-ratio,3 / 2)}
.sloff-custom-hero__art img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:0}
.sloff-custom-hero__copy{grid-area:1/1;position:relative;z-index:1;box-sizing:border-box;width:calc(100% - 2 * var(--sloff-hero-inset));max-width:var(--sloff-hero-box,28rem);margin:var(--sloff-hero-inset);padding:24px;align-self:center;justify-self:start;overflow-wrap:anywhere}
.sloff-custom-hero:not(.sloff-custom-hero--with-art) .sloff-custom-hero__copy{width:100%;max-width:none;margin:0;padding:clamp(20px,4vw,48px)}
.sloff-custom-hero--panel .sloff-custom-hero__copy{background:#111;border:1px solid var(--sloff-line-strong);border-radius:var(--sloff-radius-card)}
.sloff-custom-hero__copy :is(h1,h2){font-size:clamp(30px,5vw,64px);line-height:1.12;margin:12px 0;color:var(--sloff-text)}
.sloff-custom-hero__copy p{margin:12px 0}
.sloff-custom-hero__copy .sloff-hero__body{position:static;max-width:none;margin:0}
.sloff-custom-hero__copy .sloff-hero__subhead{margin:0}
.sloff-custom-hero__copy .sloff-hero__actions{display:flex;flex-wrap:wrap;gap:12px}
.sloff-custom-hero--stack .sloff-hero__actions{flex-direction:column;align-items:stretch}
/* One box while Submissions are open: next deadline, both submit buttons, then the phase's own buttons as quiet links. */
.sloff-custom-hero__copy .sloff-hero__panel{display:block;width:auto;max-width:none;margin:0;padding:0;border:0;background:none;box-shadow:none;color:inherit}
.sloff-custom-hero__copy .sloff-hero__panel-eyebrow{margin:0 0 6px}
.sloff-custom-hero__copy .sloff-hero__panel-heading{margin:0;font-size:clamp(22px,2.2vw,28px);line-height:1.15}
.sloff-custom-hero__copy .sloff-hero__panel-later{margin:6px 0 0}
.sloff-custom-hero__copy .sloff-hero__panel-actions{flex-direction:row;flex-wrap:wrap;margin-top:14px}
.sloff-custom-hero--merged{--sloff-hero-box:max(var(--sloff-hero-box-set,28rem),30rem)}
.sloff-custom-hero__copy .sloff-hero__panel-actions{gap:8px}.sloff-custom-hero__copy .sloff-hero__panel-actions a{min-width:0;min-height:44px;padding:10px 16px;font-size:var(--sloff-fs-13);text-align:center}
.sloff-hero__links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:10px}
.sloff-hero__links .sloff-hero__link{display:inline-flex;align-items:center;min-height:32px;color:var(--sloff-text-muted);font-size:var(--sloff-fs-13);font-weight:var(--sloff-fw-bold);text-decoration:underline;text-underline-offset:3px}
.sloff-hero__links .sloff-hero__link:hover{color:var(--sloff-fest-accent)}
.sloff-custom-hero__copy .sloff-hero__letter-image{max-width:100%;width:auto;max-height:130px;object-fit:contain;display:block}
.sloff-custom-hero__year img{max-height:65px}
.sloff-hero__library-art{position:absolute;inset:0;z-index:-1;display:flex;align-items:end;justify-content:space-between;pointer-events:none}
.sloff-hero__library-piece{display:block;max-width:20%;max-height:45%;object-fit:contain}
@media(max-width:767px){.sloff-custom-hero__art{aspect-ratio:var(--sloff-hero-ratio-phone,var(--sloff-hero-ratio,3 / 2))}.sloff-custom-hero__copy{padding:20px}}
/* Computer (1025 px and wider): on the art in the chosen place, or in a bar below it. */
@media(min-width:1025px){
.sloff-custom-hero--place-over.sloff-custom-hero--with-art .sloff-custom-hero__copy{grid-area:1/1}
.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--top-"] .sloff-custom-hero__copy{align-self:start}
.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--middle-"] .sloff-custom-hero__copy{align-self:center}
.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--bottom-"] .sloff-custom-hero__copy{align-self:end}
.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--top-left"] .sloff-custom-hero__copy,.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--middle-left"] .sloff-custom-hero__copy,.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--bottom-left"] .sloff-custom-hero__copy{justify-self:start}
.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--top-center"] .sloff-custom-hero__copy,.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--middle-center"] .sloff-custom-hero__copy,.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--bottom-center"] .sloff-custom-hero__copy{justify-self:center}
.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--top-right"] .sloff-custom-hero__copy,.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--middle-right"] .sloff-custom-hero__copy,.sloff-custom-hero--place-over.sloff-custom-hero--with-art[class*="hero--bottom-right"] .sloff-custom-hero__copy{justify-self:end}
.sloff-custom-hero--place-below.sloff-custom-hero--with-art .sloff-custom-hero__copy{grid-area:2/1;align-self:stretch;justify-self:stretch;width:100%;max-width:none;margin:0;border-radius:0;border-width:1px 0 0}
.sloff-custom-hero--place-below.sloff-custom-hero--with-art .sloff-hero__body{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}
.sloff-custom-hero--place-below.sloff-custom-hero--with-art .sloff-hero__actions{flex:none;flex-direction:row}
}
/* Tablet and phone: the Phone choice. */
@media(max-width:1024px){
.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art .sloff-custom-hero__copy{grid-area:1/1}
.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-top-"] .sloff-custom-hero__copy{align-self:start}
.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-middle-"] .sloff-custom-hero__copy{align-self:center}
.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-bottom-"] .sloff-custom-hero__copy{align-self:end}
.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-top-left"] .sloff-custom-hero__copy,.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-middle-left"] .sloff-custom-hero__copy,.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-bottom-left"] .sloff-custom-hero__copy{justify-self:start}
.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-top-center"] .sloff-custom-hero__copy,.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-middle-center"] .sloff-custom-hero__copy,.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-bottom-center"] .sloff-custom-hero__copy{justify-self:center}
.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-top-right"] .sloff-custom-hero__copy,.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-middle-right"] .sloff-custom-hero__copy,.sloff-custom-hero--phone-place-over.sloff-custom-hero--with-art[class*="hero--phone-bottom-right"] .sloff-custom-hero__copy{justify-self:end}
.sloff-custom-hero--phone-place-below.sloff-custom-hero--with-art .sloff-custom-hero__copy{grid-area:2/1;align-self:stretch;justify-self:stretch;width:100%;max-width:none;margin:0;border-radius:0;border-width:1px 0 0}
}
@media(min-width:768px) and (max-width:1024px){
.sloff-custom-hero--phone-place-below.sloff-custom-hero--with-art .sloff-hero__body{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}
.sloff-custom-hero--phone-place-below.sloff-custom-hero--with-art .sloff-hero__actions{flex:none;flex-direction:row}
}
/* Sponsor artwork keeps its deliberate light tile, including name-only fallbacks. */
body :is(.sloff-content,.elementor) .sloff-sponsors__grid .sloff-sponsors__item{--sloff-text:#171717;--sloff-ink:#171717;--sloff-fest-paper:#fff;background:#fff;color:#171717}
/* A newsletter band keeps the colour set on it (Press: pink); the Look's white text on it was ~2.3:1. Dark text there,
   and a dark Subscribe button to match the dark fields (it was white with a stray accent border).
   Not the Home card: it also carries sloff-newsletter-band but sits on the dark card surface, so #111 hid its text. */
body .elementor .e-con.sloff-newsletter-band:not(.sloff-newsletter-card) :is(.elementor-widget-heading .elementor-heading-title.elementor-heading-title,.elementor-widget-text-editor.elementor-widget-text-editor,.sloff-newsletter-form .elementor-field-group>label.elementor-field-label){color:#111}
body .elementor .e-con.sloff-newsletter-band:not(.sloff-newsletter-card) .elementor-widget-form.sloff-newsletter-form .elementor-button{background:#111;border-color:#111;color:#fff}
body .elementor .e-con.sloff-newsletter-band:not(.sloff-newsletter-card) .elementor-widget-form.sloff-newsletter-form .elementor-button:hover{background:#000;border-color:#000;color:#fff}
/* Size-contained form in the band's flex column: without a set width it reserved ~30-40px of empty space under the button. */
body .elementor .e-con.sloff-newsletter-band:not(.sloff-newsletter-card)>.elementor-widget-form.sloff-newsletter-form{width:100%}

/* Numbered accent badges need accent ink, rather than the card’s white heading ink. */
body .elementor .elementor-widget-heading.sloff-step-number{--e-global-color-sloff-ink:var(--sloff-fest-accent-ink,#000)}
