/* Native camera zoom, linked screens and a quiet monochrome geometric stage. */
.website-scroll-showcase { position:relative; isolation:isolate; background:#050505; color:#f5f5f7; --monitor-width:65vw; --desk-top:70%; --screen-width:65vw; --screen-height:36.5625vw; --screen-top:8%; --camera-scale:1; --camera-x:0px; --camera-y:0px; --title-opacity:0; --title-y:0px; --site-reveal:1; --tablet-opacity:1; --phone-opacity:1; --caption-opacity:1; }
.website-scroll-runway { height:auto; }
.home-media-showcase[data-scene="scroll"] .website-scroll-runway { height:330svh; }
.website-scroll-sticky { position:relative; top:var(--festival-header-stack); height:calc(100svh - var(--festival-header-stack)); overflow:clip; isolation:isolate; background:#050505; }
.home-media-showcase[data-scene="scroll"] .website-scroll-sticky { position:sticky; }
.website-camera-scene { position:absolute; inset:0; transform-origin:0 0; transform:translate(var(--camera-x),var(--camera-y)) scale(var(--camera-scale)); will-change:transform; }
.website-studio-room { position:absolute; inset:0; background:#050505; }
/* A single angled charcoal plane echoes the festival's cut-paper sections. */
.website-studio-room::before{content:'';position:absolute;inset:0;background:#141414;clip-path:polygon(0 69%,100% 15%,100% 64%,0 100%)}
.website-studio-desk{position:absolute;top:var(--desk-top);left:0;width:100%;height:40%;background:#080808;border-top:1px solid #363636}

.website-device-stage,.website-devices { position:absolute; inset:0; }
.website-monitor { position:absolute; left:50%; top:var(--screen-top); width:var(--screen-width); height:var(--screen-height); transform:translateX(-50%); z-index:2; }
.monitor-screen { position:absolute; inset:0; border-radius:9px; background:#0e1010; box-shadow:0 0 0 7px #141616,0 0 0 8px #767a76,0 16px 35px #0005; }.monitor-screen>.device-site { border-radius:inherit; }
.monitor-camera { position:absolute; left:50%; top:-5px; width:3px; height:3px; background:#101e23; border-radius:50%; }
.monitor-stand { position:absolute; top:100%; left:44%; width:12%; height:calc(var(--monitor-width)*.12); background:linear-gradient(90deg,#555b59,#c4c8c2 40%,#8b918a 60%,#424844); clip-path:polygon(25% 0,75% 0,83% 90%,100% 96%,100% 100%,0 100%,0 96%,17% 90%); }.monitor-stand::after { content:''; position:absolute; bottom:0; left:0; right:0; height:5%; background:#a0a59b; }
.website-tablet,.website-phone { position:absolute; top:var(--desk-top); left:50%; padding:5px; background:linear-gradient(115deg,#c0c4be,#3f4542 30%,#0e1110 60%,#8a9189); box-shadow:0 8px 18px #0008; }
.website-tablet { width:calc(var(--monitor-width)*.29); aspect-ratio:3/4; z-index:3; border-radius:14px; opacity:var(--tablet-opacity); transform:translate(calc(var(--monitor-width)*-.68 - 70px*(1 - var(--tablet-opacity))),calc(-100% + 28px*(1 - var(--tablet-opacity)))) rotate(calc(-5deg*(1 - var(--tablet-opacity)))); }
.website-phone { width:calc(var(--monitor-width)*.155); aspect-ratio:1/2.08; z-index:4; padding:4px; border-radius:21px; opacity:var(--phone-opacity); transform:translate(calc(var(--monitor-width)*.48 + 60px*(1 - var(--phone-opacity))),calc(-100% + 25px*(1 - var(--phone-opacity)))) rotate(calc(5deg*(1 - var(--phone-opacity)))); }
.tablet-screen,.phone-screen { position:absolute; inset:5px; border:3px solid #111512; border-radius:10px; overflow:hidden; background:#131715; }.phone-screen { inset:4px; border-width:2px; border-radius:17px; }
.tablet-camera { position:absolute; top:3px; left:50%; width:2px; height:2px; background:#172527; border-radius:50%; }.phone-camera { position:absolute; top:9px; left:35%; width:30%; height:6px; border-radius:99px; background:#0b0d0c; }.phone-home-indicator { position:absolute; bottom:9px; left:35%; width:30%; height:2px; background:#fffc; border-radius:99px; }
.website-scroll-heading { position:absolute; inset:0; display:grid; place-items:center; padding:24px; pointer-events:none; z-index:5; opacity:var(--title-opacity); transform:translateY(var(--title-y)); }
.home-media-showcase .website-scroll-heading h2 { color:#fff; text-align:center; font-size:clamp(48px,7.4vw,112px); line-height:1.02; letter-spacing:-.055em; margin:0; text-shadow:0 3px 40px #0005; }.website-scroll-heading h2 span { color:inherit; }
.website-scene-caption { position:absolute; left:20px; right:20px; top:84%; text-align:center; z-index:4; opacity:var(--caption-opacity); transform:translateY(calc(12px*(1 - var(--caption-opacity)))); }.website-scene-caption p { font-size:clamp(18px,2.2vw,30px); font-weight:500; letter-spacing:-.025em; margin:0; color:#edeeeb; }
.website-video-control { position:absolute; z-index:6; right:28px; top:26px; display:grid; place-items:center; width:44px; height:44px; border:1px solid #ffffff40; border-radius:50%; color:#fff; background:#24292580; backdrop-filter:blur(16px); cursor:pointer; }.website-video-control[hidden] { display:none; }.website-video-control:hover { background:#52574f; }.website-video-control:focus-visible,.device-site:focus-visible { outline:2px solid #fff; outline-offset:5px; }
.device-site { position:relative; container-type:inline-size; width:100%; height:100%; color:#fff; overflow:hidden; text-align:left; background:#141a18; }.device-site>video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:42% 50%; }
.device-site-shade { position:absolute; inset:0; background:linear-gradient(0deg,#080d0a99,transparent 65%),linear-gradient(90deg,#0004,transparent 65%); opacity:calc(.25 + .75 * var(--site-reveal)); }
.device-site-nav { position:absolute; top:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:3%; padding:4% 5%; opacity:var(--site-reveal); transform:translateY(calc(-100%*(1 - var(--site-reveal)))); background:linear-gradient(#0006,transparent); }.device-site-nav strong { font:600 2.8cqw/.95 var(--sans); letter-spacing:-.035em; }.device-site-nav>span { font-size:1.55cqw; }.device-site-nav svg { width:2.5cqw; height:2.5cqw; }
.device-site-copy { position:absolute; left:7%; bottom:17%; opacity:var(--site-reveal); transform:translateY(calc(16px*(1 - var(--site-reveal)))); }.device-site-copy>strong { font:500 8.7cqw/.98 var(--sans); letter-spacing:-.04em; }.device-site-copy>span { display:flex; align-items:center; width:max-content; gap:2cqw; margin-top:4cqw; border-radius:99px; padding:1.4cqw 2.4cqw; background:#f6f4ed; color:#222820; font-size:1.65cqw; }.device-site-copy svg { width:2cqw; height:2cqw; }
.website-monitor .device-site-copy { left:13%; }
.device-site-bottom { position:absolute; bottom:4%; left:5%; right:5%; display:flex; justify-content:space-between; font-size:1.5cqw; opacity:var(--site-reveal); }.device-site-bottom>span:last-child { display:flex; align-items:center; gap:1cqw; }.device-site-bottom svg { width:1.6cqw; height:1.6cqw; }
.website-tablet .device-site-nav strong { font-size:5.5cqw; }.website-tablet .device-site-nav>span { display:none; }.website-tablet .device-site-nav svg { width:5cqw; height:5cqw; }.website-tablet .device-site-copy>strong { font-size:13cqw; }.website-tablet .device-site-copy>span { font-size:3.5cqw; padding:3cqw 5cqw; margin-top:7cqw; }.website-tablet .device-site-copy svg { width:4cqw; height:4cqw; }.website-tablet .device-site-bottom { font-size:3cqw; }.website-tablet .device-site-bottom>span:last-child { display:none; }
.website-phone .device-site-nav { padding:20% 8% 8%; }.website-phone .device-site-nav strong { font-size:8cqw; }.website-phone .device-site-nav>span { display:none; }.website-phone .device-site-nav svg { width:9cqw; height:9cqw; }.website-phone .device-site-copy { bottom:17%; }.website-phone .device-site-copy>strong { font-size:16cqw; }.website-phone .device-site-copy>span { font-size:5cqw; padding:5cqw 7cqw; margin-top:10cqw; }.website-phone .device-site-copy svg { width:5cqw; height:5cqw; }.website-phone .device-site-bottom { bottom:8%; font-size:5cqw; }.website-phone .device-site-bottom>span:last-child { display:none; }
@media(max-width:760px) {
 .home-media-showcase[data-scene="scroll"] .website-scroll-runway { height:290svh; }.website-scroll-sticky { top:var(--festival-header-stack); height:calc(100svh - var(--festival-header-stack)); }.home-media-showcase .website-scroll-heading h2 { font-size:clamp(40px,9.5vw,70px); }.website-video-control { top:20px; right:20px; width:44px; height:44px; }
 .website-tablet { width:calc(var(--monitor-width)*.36); transform:translate(calc(var(--monitor-width)*-.58 - 35px*(1 - var(--tablet-opacity))),calc(-100% + 20px*(1 - var(--tablet-opacity)))); border-radius:10px; }.tablet-screen { inset:4px; border-width:2px; border-radius:7px; }
 .website-phone { width:calc(var(--monitor-width)*.205); transform:translate(calc(var(--monitor-width)*.35 + 35px*(1 - var(--phone-opacity))),calc(-100% + 20px*(1 - var(--phone-opacity)))); border-radius:12px; }.phone-screen { inset:3px; border-width:1px; border-radius:9px; }.phone-camera { top:6px; height:4px; }.phone-home-indicator { bottom:6px; height:1px; }
 .website-scene-caption { top:79%; }.website-studio-desk { left:3%; width:94%; }.website-scroll-footer { padding:35px 24px 65px; flex-direction:column; align-items:flex-start; gap:26px; }.website-scroll-footer p { font-size:16px; }
 .website-monitor .device-site-copy { left:30%; }.website-monitor .device-site-copy>strong { font-size:7.8cqw; }
}
@media(prefers-reduced-motion:reduce),(max-height:440px) {
 .website-scroll-runway { height:auto; }.website-scroll-sticky { position:relative; top:auto; height:max(440px,calc(100svh - 76px)); }.website-scroll-heading { display:none; }
}

/* Programme invitation follows the broad geometric partner insert. */
.home-program-section{background:#050505;padding-block:64px 82px}
.home-program-invitation{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;color:#fff;direction:ltr;text-decoration:none}
.home-program-invitation h2{font:500 clamp(36px,4.7vw,74px)/1.04 var(--sans);letter-spacing:-.045em;text-wrap:balance;max-width:640px;padding-inline:max(48px,calc((100vw - 1280px)/2)) 36px;margin:0}
.home-program-paper{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:310px;padding:64px 6vw 64px 12vw;background:white;color:#050505;clip-path:polygon(0 50%,22% 0,100% 10%,100% 90%,22% 100%)}
.home-program-paper>span{font:500 clamp(66px,9.5vw,152px)/1 var(--sans);letter-spacing:-.055em}
.home-program-paper i{display:grid;place-items:center;width:64px;height:64px;flex-shrink:0;border:1px solid #050505;border-radius:50%;transition:background 220ms,color 220ms}
.home-program-paper svg{width:28px;height:28px}
.home-program-invitation:hover i,.home-program-invitation:focus-visible i{background:#050505;color:white}
.home-program-invitation:focus-visible{outline:2px solid white;outline-offset:8px}
.website-video-control svg{width:18px;height:18px}
.website-scroll-heading h2{overflow-wrap:anywhere;text-wrap:balance}
.website-scroll-footer>div{min-width:0}.website-scroll-cta{flex-shrink:1;line-height:1.4;max-width:100%}
.website-scroll-cta svg{flex-shrink:0;width:20px;height:20px}
.website-scroll-footer h3{font-family:var(--sans)}
.home-media-showcase:not([data-scene="scroll"]) .website-scroll-heading{display:none}
.website-device-stage{direction:ltr}.device-site{direction:initial}.device-site-copy{max-width:85%}
.device-site-nav strong{flex-shrink:0}.device-site-nav>span{margin-inline-start:auto}
.website-phone .device-site-nav strong{font-size:7cqw}.website-tablet .device-site-nav strong{font-size:5cqw}
.website-phone .device-site-copy>span{width:auto;max-width:100%;line-height:1.3}.website-phone .device-site-copy>strong{font-size:15cqw}
[dir=rtl] .home-program-invitation h2,[dir=rtl] .device-site-copy,[dir=rtl] .website-scroll-footer{direction:rtl}
@media(max-width:760px){
 .home-program-section{padding-block:45px 60px}.home-program-invitation{grid-template-columns:minmax(0,1fr);gap:30px}
 .home-program-invitation h2{font-size:clamp(38px,9vw,58px);padding-inline:24px;max-width:560px}
 .home-program-paper{min-height:220px;padding:50px 7vw 50px 28vw}.home-program-paper>span{font-size:clamp(72px,18vw,120px)}
 .home-program-paper i{width:48px;height:48px}.home-program-paper svg{width:22px;height:22px}
 .website-monitor .device-site-copy{left:17%;max-width:78%}.website-monitor .device-site-copy>strong{font-size:9cqw}
 .website-scroll-footer{gap:30px}.website-scroll-cta{font-size:16px}
}
@media(prefers-reduced-motion:reduce),(max-height:440px){
 .home-media-showcase .website-scroll-runway{height:auto!important}.home-media-showcase .website-scroll-sticky{position:relative!important;top:auto}
 .home-program-paper i{transition:none}
}
@media print{.home-media-showcase .website-scroll-runway{height:auto!important}.home-media-showcase .website-scroll-sticky{position:relative!important;top:0}.website-video-control{display:none}}
.home-media-showcase:not([data-scene="scroll"]) .website-scroll-sticky{top:auto}
/* Keep the stand attached to the same desk when JavaScript is unavailable. */
.home-media-showcase:not([data-scene]){--still-height:calc(100svh - var(--festival-header-stack));--monitor-width:min(960px,65vw,calc(var(--still-height)*1.02));--screen-width:var(--monitor-width);--screen-height:calc(var(--monitor-width)*.5625);--desk-top:calc(var(--still-height)*.78);--screen-top:calc(var(--desk-top) - var(--screen-height) - var(--monitor-width)*.12)}
@media(max-width:760px){.home-media-showcase:not([data-scene]){--monitor-width:min(960px,78vw,calc(var(--still-height)*.91));--desk-top:calc(var(--still-height)*.69)}}
@media(prefers-reduced-motion:reduce),(max-height:440px){.home-media-showcase:not([data-scene]){--still-height:max(440px,calc(100svh - 76px))}}

/* Real screen links keep the visible CTA and its whole screen clickable. */
a.device-site{display:block;text-decoration:none;color:#fff}
.device-site-logo{display:block;width:13cqw;height:auto;max-width:none;flex-shrink:0;object-fit:contain}
.website-tablet .device-site-logo{width:24cqw}.website-phone .device-site-logo{width:32cqw}
.device-site:focus-visible{outline:3px solid #fff;outline-offset:-5px}
.device-site:hover .device-site-copy>span,.device-site:focus-visible .device-site-copy>span{background:#fff;color:#050505}
.home-media-showcase:has(.device-site:focus-visible){--camera-scale:1!important;--camera-x:0px!important;--camera-y:0px!important;--site-reveal:1!important;--tablet-opacity:1!important;--phone-opacity:1!important;--title-opacity:0!important}
@media(max-width:760px){.website-studio-desk{left:0;width:100%}}
.device-site>video{pointer-events:none}

/* Give the caption a deliberate black pause before the next white diagonal. */
.home-media-showcase{padding-bottom:clamp(90px,8vw,140px)}
@media(max-width:760px){
 .home-media-showcase{padding-bottom:80px;background:#000;box-shadow:0 var(--home-cut,30px) 0 #000}
 .home-media-showcase .website-scroll-sticky,.home-media-showcase .website-studio-room,.home-media-showcase .website-studio-desk{background:#000}
 .home-media-showcase:not([data-scene="scroll"]) .website-scroll-sticky{height:max(500px,calc(100svh - var(--festival-header-stack)))}
 .home-media-showcase:not([data-scene="scroll"]) .website-scroll-heading{display:block;inset:24px 24px auto;padding:0;opacity:1;transform:none}
 .home-media-showcase:not([data-scene="scroll"]) .website-scroll-heading h2{font-size:clamp(38px,9.5vw,58px)}
 .home-media-showcase:not([data-scene="scroll"]) .website-scene-caption{top:auto;bottom:28px;opacity:1;transform:none}
 .website-scene-caption p{font-size:20px}
}
