.intro-replay{background:none;border:1px solid #567386;color:#bfeaff;padding:12px 18px;cursor:pointer;font:11px monospace;letter-spacing:2px}
.cinema-intro{position:fixed;inset:0;z-index:20000;background:#02070e;color:white;overflow:hidden;font-family:Arial,sans-serif;isolation:isolate}
.intro-cover{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,4,12,.45),rgba(0,4,12,.1)),url('artist.jpeg') center/cover;opacity:.5;filter:saturate(.75) contrast(1.15);transition:opacity 1s,transform 12s}
.intro-grid{position:absolute;inset:0;background:linear-gradient(transparent 97%,#81dcff18 98%),linear-gradient(90deg,transparent 97%,#81dcff18 98%);background-size:90px 90px;mask-image:linear-gradient(transparent,#000);pointer-events:none}
.intro-brand{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;z-index:3;transition:opacity .7s}
.intro-kicker{font:10px monospace;letter-spacing:5px;color:#b4e5ff}.intro-brand h2{font-size:clamp(48px,10vw,150px);margin:22px 0 10px;letter-spacing:-.065em;font-weight:900;line-height:1;text-shadow:0 0 50px #47a6dd80}.intro-brand p{font:11px monospace;letter-spacing:5px;color:#c1d4e2}
.intro-enter{margin-top:28px;padding:18px 28px;background:#daf5ff;color:#061320;border:0;cursor:pointer;font-size:11px;letter-spacing:2px;box-shadow:0 0 45px #68c5ff44}.intro-note{font:9px monospace;letter-spacing:2px;margin-top:18px;color:#92aec3}.intro-skip{position:absolute;right:30px;top:30px;background:#041020b8;border:1px solid #9adfff60;padding:12px 18px;color:#d5efff;font:10px monospace;letter-spacing:2px;cursor:pointer;z-index:8}
.intro-status{position:absolute;bottom:35px;left:20px;z-index:9;font-size:11px}.intro-timeline{position:absolute;bottom:0;left:0;height:3px;background:#9be7ff;width:0;z-index:9;box-shadow:0 0 20px #6bdfff}.running .intro-timeline{animation:intro-progress 11.5s linear forwards}.running .intro-cover{opacity:.16;transform:scale(1.1)}.running .intro-brand{opacity:0;pointer-events:none}.closing .intro-brand{opacity:1}.closing .intro-note{display:none}.closing .intro-cover{opacity:.65}
.intro-frame{position:absolute;width:44vw;aspect-ratio:16/9;overflow:hidden;border:1px solid #b4e7ff8a;box-shadow:0 0 60px #1881bc30;background:#06131f;animation:frame-reveal 3.2s both}.intro-shot{position:absolute;inset:0;background-image:url('intro-montage.png');background-size:200% 200%;filter:contrast(1.12) saturate(.8);animation:shot-drift 3.3s ease-out both}.shot-0{background-position:0 0}.shot-1{background-position:100% 0}.shot-2{background-position:0 100%}.shot-3{background-position:100% 100%}.shot-4{background-image:url('artist.jpeg');background-size:cover;background-position:40% center}.intro-frame span{position:absolute;bottom:16px;left:18px;font:9px monospace;letter-spacing:3px;background:#00101cba;padding:8px}.intro-frame i{position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 3px,#3c98d70a 4px);box-shadow:inset 0 0 70px #040e24a0;pointer-events:none}.crowd{top:9%;left:5%}.deck{bottom:8%;right:4%;width:39vw}.studio{top:17%;right:8%;width:41vw}.aerial{bottom:10%;left:8%;width:47vw}.portrait{top:12%;left:26%;width:51vw}.finale{left:6%;top:8%;width:65vw}.intro-shards{position:absolute;inset:0;z-index:7;pointer-events:none}.intro-shards>div{position:absolute;background-image:url('artist.jpeg');border:1px solid #c3f1ff88;filter:saturate(.65) brightness(1.2)}.revealing{background:transparent;pointer-events:none}.revealing>:not(.intro-shards){opacity:0!important}.cinema-intro button:focus-visible{outline:3px solid white;outline-offset:5px}
@keyframes intro-progress{to{width:100%}}@keyframes shot-drift{from{transform:scale(1.04)}to{transform:scale(1.14)}}@keyframes frame-reveal{0%{opacity:0;transform:translateY(22px) scale(.92);clip-path:inset(45% 0)}12%{opacity:1;transform:translateY(0) scale(1);clip-path:inset(0)}78%{opacity:1}100%{opacity:0;transform:translateY(-18px) scale(1.035)}}
@media(max-width:700px){.intro-cover{background-position:38% center}.intro-kicker{letter-spacing:2px;font-size:8px}.intro-brand p{letter-spacing:3px;font-size:9px}.intro-skip{right:16px;top:20px}.intro-frame{width:79vw}.crowd{top:17%;left:4%}.deck{bottom:18%;right:4%;width:78vw}.studio{top:22%;right:4%;width:82vw}.aerial{bottom:20%;left:4%;width:85vw}.portrait{top:29%;left:5%;width:90vw}.finale{top:20%;left:3%;width:94vw}.intro-note{font-size:8px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.cinema-intro *{animation:none!important;transition:none!important}.running .intro-brand{opacity:1}.intro-shards{display:none}}

/* Official cover: fully visible for the final reveal. */
.shot-5{background-image:url("intro-end.jpeg");background-size:contain;background-position:center;background-repeat:no-repeat;filter:none;animation:none}.intro-frame.finale{inset:0;width:100%;height:100%;aspect-ratio:auto;border:0;background:#02070e;z-index:2}.intro-frame.finale span,.intro-frame.finale i{display:none}.closing .intro-cover{background:#02070e url("intro-end.jpeg") center/contain no-repeat;opacity:1;transform:none;filter:none}.closing .intro-brand{opacity:0}.intro-shards>div{background-image:url("intro-end.jpeg");background-repeat:no-repeat;background-color:#02070e;filter:none}

/* Wider spatial montage, followed by image particles. */
.intro-frame:not(.finale){width:34vw}.crowd{top:6%;left:3%;bottom:auto;right:auto}.deck{top:auto;left:auto;bottom:5%;right:3%;width:34vw}.studio{top:8%;right:3%;left:auto;bottom:auto}.aerial{bottom:6%;left:3%;right:auto;top:auto;width:36vw}.portrait{top:34%;left:8%;right:auto;bottom:auto;width:33vw}.intro-dust{z-index:7}.intro-dust>div{background:none;border:0;filter:none;box-shadow:none;will-change:transform,opacity}.intro-dust>div>div{filter:contrast(1.12) saturate(.85)}
@keyframes frame-reveal{0%{opacity:0;transform:translateY(22px) scale(.92);clip-path:inset(45% 0)}12%{opacity:1;transform:translateY(0) scale(1);clip-path:inset(0)}100%{opacity:1;transform:translateY(0) scale(1);clip-path:inset(0)}}
@media(max-width:700px){.intro-frame:not(.finale){width:68vw}.crowd{top:9%;left:3%}.deck{top:auto;bottom:8%;right:3%;left:auto}.studio{top:13%;right:3%;left:auto;bottom:auto}.aerial{top:auto;bottom:10%;left:3%;right:auto}.portrait{top:37%;left:auto;right:3%;bottom:auto;width:70vw}}

/* Approved photo intro: three pairs, spaced around the artist wordmark. */
.intro-cover,.closing .intro-cover{background:radial-gradient(ellipse at 50% 60%,#1d1224 0%,#060608 67%);opacity:1;filter:none;transform:none}
.intro-grid{opacity:.15}
.intro-brand h2.intro-wordmark{font-size:clamp(23px,4.6vw,70px);font-weight:500;letter-spacing:.13em;line-height:1.2;margin:22px 12px 10px}
.running .intro-brand,.closing .intro-brand{opacity:1}
.running .intro-kicker,.running .intro-brand p,.running .intro-note{visibility:hidden}
.running .intro-brand h2{pointer-events:none;text-shadow:0 3px 20px #000}
.intro-frame,.intro-frame:not(.finale),.intro-frame.finale{inset:auto;width:29vw;height:min(43vh,300px);aspect-ratio:auto;border:1px solid #b4e7ff60;background:#06131f;z-index:2}
.crowd,.studio,.portrait{left:7%;right:auto;top:9%;bottom:auto}
.deck,.aerial,.intro-frame.finale{right:7%;left:auto;bottom:8%;top:auto}
.intro-frame.finale span,.intro-frame.finale i{display:block}
.intro-shot{background-size:cover;background-repeat:no-repeat;background-position:center 30%;filter:none}
.shot-0{background-image:url('intro-photo-0.webp')}
.shot-1{background-image:url('intro-photo-1.webp')}
.shot-2{background-image:url('intro-photo-2.webp')}
.shot-3{background-image:url('intro-photo-3.webp')}
.shot-4{background-image:url('intro-photo-4.webp');background-position:center}
.shot-5{background-image:url('intro-photo-5.webp');background-size:cover;background-position:center;animation:shot-drift 3.3s ease-out both}
.intro-dust>div>div{filter:none}
@media(max-width:700px){
 .intro-frame,.intro-frame:not(.finale),.intro-frame.finale{width:42vw;height:25vh;max-height:210px}
 .crowd,.studio,.portrait{left:6%;right:auto;top:14%;bottom:auto}
 .deck,.aerial,.intro-frame.finale{right:6%;left:auto;bottom:14%;top:auto}
 .intro-brand h2.intro-wordmark{font-size:clamp(22px,5.2vw,36px);letter-spacing:.1em}
 .intro-frame span{font-size:8px;letter-spacing:1px;left:8px;bottom:8px;padding:6px}
}

/* Festival premiere: ten images choreographed across the entire viewport. */
.cinema-intro{perspective:1100px}
.intro-cover,.closing .intro-cover{background:radial-gradient(ellipse at 20% 20%,#102c4a 0,transparent 55%),radial-gradient(ellipse at 85% 75%,#44104c 0,transparent 60%),#03040b}
.intro-grid{background:conic-gradient(from 40deg at 50% 110%,transparent 0deg,#46dfff38 1deg,transparent 3deg,transparent 25deg,#b851ff38 26deg,transparent 29deg);background-size:100% 100%;mask-image:none;opacity:.7}
.running .intro-grid{animation:festival-lights 5s ease-in-out infinite alternate}
.intro-brand{pointer-events:none}.intro-brand button{pointer-events:auto}
.intro-kicker{font-size:12px}.intro-brand p{font-size:14px}.intro-enter{font-size:14px}.intro-note{font-size:12px}.intro-skip{font-size:12px}.intro-replay{font-size:14px}
.cinema-intro .intro-frame{inset:auto;width:39vw;height:39vh;max-height:none;border:1px solid #bbebff80;box-shadow:0 0 30px #54caff55,0 20px 80px #000b;animation:festival-impact .6s cubic-bezier(.12,.7,.18,1) both;transform-origin:center;will-change:transform,opacity;z-index:2}
.cinema-intro .intro-frame span{display:none}.intro-frame i{background:linear-gradient(125deg,#56baff20,transparent 40%,#ef58ff16);box-shadow:inset 0 0 30px #0005}
.cinema-intro .position-0{left:4%;top:7%;--fly-x:-55vw;--fly-y:-25vh;--tilt:-5deg}
.cinema-intro .position-1{right:4%;bottom:7%;--fly-x:55vw;--fly-y:25vh;--tilt:5deg}
.cinema-intro .position-2{left:4%;bottom:6%;width:49vw;height:34vh;--fly-x:-60vw;--fly-y:20vh;--tilt:4deg}
.cinema-intro .position-3{right:6%;top:6%;width:30vw;height:46vh;--fly-x:45vw;--fly-y:-35vh;--tilt:-5deg}
.cinema-intro .position-4{right:3%;top:8%;width:46vw;--fly-x:60vw;--fly-y:-10vh;--tilt:4deg}
.cinema-intro .position-5{left:7%;bottom:5%;width:31vw;height:45vh;--fly-x:-50vw;--fly-y:30vh;--tilt:-4deg}
.cinema-intro .position-6{left:5%;top:5%;width:43vw;--fly-x:-45vw;--fly-y:-25vh;--tilt:-3deg}
.cinema-intro .position-7{right:4%;bottom:6%;width:48vw;height:34vh;--fly-x:50vw;--fly-y:30vh;--tilt:4deg}
.cinema-intro .position-8{left:4%;bottom:4%;width:36vw;height:46vh;--fly-x:-50vw;--fly-y:35vh;--tilt:3deg}
.cinema-intro .position-9{right:5%;top:5%;width:39vw;height:43vh;--fly-x:55vw;--fly-y:-35vh;--tilt:-4deg}
.cinema-intro .intro-shot{background-size:cover;background-position:center;animation:festival-camera 2s ease-out both;filter:contrast(1.06) saturate(1.12)}
.shot-0{background-image:url('festival-intro-0.webp')}.shot-1{background-image:url('festival-intro-1.webp')}.shot-2{background-image:url('festival-intro-2.webp')}.shot-3{background-image:url('festival-intro-3.webp')}.shot-4{background-image:url('festival-intro-4.webp')}.shot-5{background-image:url('festival-intro-5.webp')}.shot-6{background-image:url('festival-intro-6.webp')}.shot-7{background-image:url('festival-intro-7.webp')}.shot-8{background-image:url('festival-intro-8.webp')}.shot-9{background-image:url('festival-intro-9.webp')}
.intro-impact{position:absolute;inset:0;pointer-events:none;z-index:4;background:radial-gradient(ellipse at center,#a3deff22,transparent 65%);animation:festival-burst .55s ease-out both}
@keyframes festival-impact{0%{opacity:0;transform:translate(var(--fly-x),var(--fly-y)) translateZ(250px) scale(1.7) rotate(calc(var(--tilt)*3));filter:blur(16px) brightness(2)}45%{opacity:1;filter:blur(1px) brightness(1.3)}75%{transform:translate(0,0) translateZ(0) scale(1.025) rotate(0deg)}100%{opacity:1;transform:translate(0,0) scale(1) rotate(0deg);filter:none}}
@keyframes festival-camera{from{transform:scale(1.17)}to{transform:scale(1.025)}}
@keyframes festival-burst{from{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.3)}}
@keyframes festival-lights{from{transform:rotate(-12deg) scale(1.4)}to{transform:rotate(12deg) scale(1.5)}}
@media(max-width:700px){
.cinema-intro .intro-frame{width:62vw;height:32vh}
.cinema-intro .position-0{left:3%;top:10%}.cinema-intro .position-1{right:3%;bottom:10%}
.cinema-intro .position-2{left:3%;bottom:8%;width:86vw;height:27vh}.cinema-intro .position-3{right:3%;top:8%;width:56vw;height:36vh}
.cinema-intro .position-4{right:3%;top:10%;width:78vw}.cinema-intro .position-5{left:3%;bottom:7%;width:57vw;height:36vh}
.cinema-intro .position-6{left:3%;top:8%;width:76vw}.cinema-intro .position-7{right:3%;bottom:9%;width:87vw;height:27vh}
.cinema-intro .position-8{left:3%;bottom:6%;width:60vw;height:37vh}.cinema-intro .position-9{right:3%;top:9%;width:64vw;height:34vh}
.intro-brand h2.intro-wordmark{font-size:5.2vw;letter-spacing:.07em}.intro-kicker{letter-spacing:1px;font-size:12px}.intro-brand p{letter-spacing:2px}.intro-note{letter-spacing:1px}.intro-skip{top:16px;right:12px}
}
@media(prefers-reduced-motion:reduce){.intro-impact{display:none}.intro-grid{animation:none!important}}
