:root{color-scheme:dark;font-family:"Helvetica Neue";background:#080808;color:#fff;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:focus{outline:none}input:focus-visible{outline:1px solid #fff;outline-offset:5px}body[data-input="keyboard"] button:focus-visible,body.invitation button:focus-visible{text-decoration:underline;text-underline-offset:6px}body[data-input="keyboard"] .global-nav-toggle:focus-visible{outline:1px solid rgba(255,255,255,.7);outline-offset:5px;border-radius:50%}button[disabled]{cursor:wait;opacity:.55}[hidden]{display:none!important}
.poster{height:100svh;min-height:620px;position:relative;isolation:isolate;overflow:hidden;background:transparent;z-index:1}.backdrop{position:fixed;inset:0;z-index:0;pointer-events:none}.backdrop img,.backdrop video{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.backdrop video{opacity:1}.poster::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.25),transparent 28%,transparent 70%,rgba(0,0,0,.72) 100%)}
.presenters{position:absolute;top:5.7%;left:10%;right:10%;text-align:center}.presenters p{font-size:clamp(11px,1.22vw,22px);font-weight:600;letter-spacing:.19em;margin:0}.presenters .present{font-size:clamp(10px,.85vw,15px);margin-top:22px;letter-spacing:.22em}.presenter-brand{position:relative;display:inline-block;isolation:isolate;white-space:nowrap}.presenter-brand img{position:absolute;width:clamp(52px,5vw,90px);height:auto;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;opacity:.85;pointer-events:none}
.title-group{position:absolute;left:5%;right:5%;top:42%;text-align:center}#festival-title{font-size:8vw;font-weight:200;line-height:1.12;white-space:nowrap;margin:0;display:flex;align-items:baseline;justify-content:center}#festival-title span{font-weight:200;letter-spacing:.14em}#festival-title strong{font-weight:750;letter-spacing:.22em}.tagline{margin:5vh 0 0;font-size:clamp(16px,1.7vw,32px);font-weight:600;letter-spacing:-.025em}.tagline-phrase{display:inline-block;animation:tagline-reveal 2s ease-in-out .7s both}.tagline-phrase+.tagline-phrase{animation-delay:3.3s}@keyframes tagline-reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.watch-film{display:inline-flex;align-items:center;gap:14px;margin-top:26px;padding:12px 18px;border:0;background:none;font-size:12px;letter-spacing:.15em;text-transform:uppercase;transition:background .2s}.watch-film:hover{opacity:.75}.play-icon{font-size:11px;display:inline-flex;align-items:center;width:11px;height:13px;flex:none}.play-icon svg{display:block;width:11px;height:11px;fill:currentColor}.film-status{font-size:12px;min-height:16px;margin:10px 0}
.hashtags{position:absolute;bottom:22%;left:5%;right:5%;margin:0;text-align:center;font-size:clamp(13px,1.4vw,26px);font-weight:600}.venues{text-transform:uppercase;position:absolute;left:4%;right:4%;bottom:16.5%;display:flex;justify-content:center;align-items:center;gap:14px;white-space:nowrap;font-size:clamp(11px,1.55vw,28px);font-weight:650;letter-spacing:.15em}.venues b{font-weight:300}.event-description{text-transform:uppercase;position:absolute;bottom:11.5%;left:6%;right:6%;margin:0;text-align:center;font-size:clamp(10px,1.1vw,21px);font-weight:600;letter-spacing:.15em;line-height:1.5}.proposal-label{position:absolute;bottom:25px;left:0;right:0;text-align:center}.proposal-label button{font-size:11px;letter-spacing:.12em;padding:10px 16px;color:rgba(255,255,255,.8)}
.global-nav-toggle{position:fixed;top:20px;left:20px;z-index:50;width:60px;height:60px;padding:0}.flower-label{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);font-size:11px;font-weight:400;line-height:1.2;letter-spacing:.05em;white-space:nowrap;opacity:0;pointer-events:none}.global-nav-toggle[aria-expanded="false"]:hover .flower-label,body[data-input="keyboard"] .global-nav-toggle[aria-expanded="false"]:focus-visible .flower-label{opacity:1}.global-nav-toggle img{width:100%;height:100%;object-fit:contain;animation:flower-spin 3s linear infinite}@keyframes flower-spin{to{transform:rotate(360deg)}}.maximise{position:fixed;z-index:50;top:23px;right:23px;width:36px;height:36px;padding:8px}.maximise svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2}
.film-view{position:fixed;inset:0;background:#000;z-index:10}#film-mount,.film-view iframe,#native-film{position:absolute;inset:0;width:100%;height:100%;border:0}.film-view iframe{pointer-events:none}#native-film{object-fit:contain;background:#000}.film-retry{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);z-index:3;padding:18px 24px;font-size:14px;letter-spacing:.1em}.film-retry:hover{opacity:.75}.film-back{position:absolute;top:28px;left:98px;z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;font-size:12px;letter-spacing:.08em;color:rgba(255,255,255,.9)}.film-back span{font-size:20px;font-weight:300;line-height:1}.film-back:hover{color:#fff}.film-timecode{position:absolute;left:26px;bottom:23px;z-index:2;font:12px/1.2 "Helvetica Neue";font-variant-numeric:tabular-nums;letter-spacing:.04em;color:rgba(255,255,255,.86);pointer-events:none}.playback-status{position:absolute;left:20%;right:20%;top:45%;text-align:center;font-size:14px;pointer-events:none}.playback-status:empty{display:none}body.film-open,body.panel-open{overflow:hidden}body.panel-open .poster>*{visibility:hidden}body.panel-open .poster::after{opacity:0}body.about-open .backdrop{z-index:32}
.about-panel{position:fixed;inset:0;z-index:35;background:rgba(0,0,0,.64);overflow-y:auto;overscroll-behavior:contain;padding:100px 30px 60px}.about-copy{max-width:720px;margin:auto;outline:none}.about-eyebrow{font-size:10px;letter-spacing:.24em;color:#aaa}.about-copy h2{font-weight:200;font-size:36px;letter-spacing:.04em;margin:22px 0 18px}.about-copy h2 strong{font-weight:700}.about-copy .about-tagline{font-size:18px;line-height:1.4;color:#fff;margin:0 0 28px}.about-copy p:not(.about-eyebrow):not(.about-tagline){font-size:14px;line-height:1.7;color:#eee;margin:0 0 21px}.about-levels{padding-left:1.5em;margin:0 0 21px;font-size:14px;line-height:1.7;color:#eee}.about-levels li+li{margin-top:7px}.about-copy a{color:inherit;text-underline-offset:3px}.about-copy .about-proposal{padding-top:22px;border-top:1px solid #444;font-size:12px!important;color:#ccc!important}.about-return{font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:14px 0;border-bottom:1px solid #777;margin-top:5px}
@media(min-aspect-ratio:2/1){.poster{min-height:520px}.title-group{top:34%}.tagline{margin-top:3vh}}
.opening-animation{position:absolute;inset:0;z-index:1;background:#080808 url(../poster.php) center/cover no-repeat}
html[data-background-hosted],html[data-background-hosted] body{background:transparent}
html[data-background-hosted] .backdrop>video{display:none}
body.film-open:not(.about-open) .backdrop{display:none}
/* Portrait phones use an editorial page with natural document flow. */
@media(max-width:700px){
  .poster{height:auto;min-height:100svh;overflow:visible;display:flex;flex-direction:column;padding:100px 24px 20px;gap:0}
  .poster::after{position:fixed;background:linear-gradient(180deg,rgba(0,0,0,.64) 0%,rgba(0,0,0,.62) 42%,rgba(0,0,0,.86) 78%,rgba(0,0,0,.96) 100%)}
  .global-nav-toggle{top:max(18px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left));width:44px;height:44px}
  .flower-label{font-size:10px;top:calc(100% + 5px)}
  .presenters,.title-group,.event-description,.venues,.hashtags,.proposal-label{position:static;inset:auto;text-align:left}
  .presenters p{font-size:11px;font-weight:500;line-height:1.8;letter-spacing:.1em}
  .presenter-brand{display:table;margin-top:8px}
  .presenter-brand img{width:46px;opacity:.65}
  .presenters .present{font-size:9px;margin-top:17px;letter-spacing:.16em;color:rgba(255,255,255,.7)}
  .title-group{display:flex;flex-direction:column;align-items:flex-start;margin-top:54px}
  #festival-title{font-size:clamp(27px,8.6vw,40px);line-height:1.18;justify-content:flex-start}
  #festival-title span{letter-spacing:.015em}
  #festival-title strong{letter-spacing:.025em}
  .tagline{font-size:clamp(22px,6.65vw,29px);font-weight:500;line-height:1.24;letter-spacing:-.025em;max-width:none;margin:25px 0 0}
  .tagline-phrase{display:block}
  .watch-film{min-height:52px;margin-top:27px;padding:14px 0;font-size:12px;letter-spacing:.12em;gap:12px;border-bottom:1px solid rgba(255,255,255,.7)}
  .watch-film .play-icon,.watch-film .play-icon svg{width:12px;height:12px}
  .film-status{font-size:13px;line-height:1.5;margin:14px 0 0}
  .film-status:empty{display:none}
  .event-description{margin:42px 0 0;padding-top:26px;border-top:1px solid rgba(255,255,255,.25);font-size:16px;font-weight:400;line-height:1.55;letter-spacing:0;text-transform:none;max-width:36ch}
  .event-format{display:block;margin-bottom:12px;font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.65)}
  .event-divider{display:none}
  .event-summary{display:block}
  .venues{display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-top:28px;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:.015em;white-space:normal;text-transform:none}
  .venues b{display:none}
  .hashtags{margin:28px 0 0;font-size:13px;line-height:1.5;font-weight:400;color:rgba(255,255,255,.7)}
  .proposal-label{margin:38px 0 0;text-align:center;padding-bottom:env(safe-area-inset-bottom)}
  .proposal-label button{font-size:10px;min-height:44px;padding:12px 18px}
  .about-panel{padding:100px 24px 40px;background:rgba(0,0,0,.78)}
  .about-copy p:not(.about-eyebrow):not(.about-tagline),.about-levels{font-size:16px;line-height:1.65}
  .about-copy h2{font-size:30px;letter-spacing:0}
  .about-copy .about-tagline{font-size:23px;line-height:1.3}
  .about-copy .about-proposal{font-size:13px!important}
  .about-return{min-height:48px;font-size:12px}
}
@media(max-width:700px),(pointer:coarse){
  .global-nav-toggle{top:max(18px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left));width:44px;height:44px}
  .maximise{display:none;width:44px;height:44px;padding:12px}
  body.film-open:not(.about-open) .maximise{display:block;top:auto;right:max(14px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom))}
  .film-back{top:max(14px,env(safe-area-inset-top));left:max(76px,calc(env(safe-area-inset-left) + 54px));font-size:12px}
  .film-timecode{left:max(24px,env(safe-area-inset-left));bottom:max(25px,calc(env(safe-area-inset-bottom) + 15px));font-size:12px}
}
@media(max-width:700px) and (max-height:700px){
  .poster{padding-top:92px;padding-left:24px;padding-right:24px}
  .title-group{margin-top:36px}
  .tagline{margin-top:22px}
}
@media(max-width:700px) and (hover:none){
  .global-nav-toggle[aria-expanded="false"] .flower-label{opacity:1}
}
/* Decorative media never exposes browser playback chrome over the page. */
.backdrop video::-webkit-media-controls,
.backdrop video::-webkit-media-controls-enclosure,
.backdrop video::-webkit-media-controls-start-playback-button,
.backdrop video::-webkit-media-controls-overlay-play-button{display:none!important;-webkit-appearance:none}
@media(prefers-reduced-motion:reduce){.backdrop video{transition:none}.global-nav-toggle img,.tagline-phrase{animation:none}}
