/* An editorial service index and a corner-led, scroll-controlled reel. */
.showreel-journey{position:relative;--reel-gap:clamp(140px,25svh,300px);height:calc(950svh + var(--reel-gap));margin-top:0;padding-top:var(--reel-gap);background:#f2f2f6;color:#131419}
.showreel-stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate}
.showreel-eyebrow{position:absolute;top:calc(var(--header) + 32px);left:var(--pad);margin:0;font:11px 'IBM Plex Mono',monospace;letter-spacing:.06em;z-index:1}
.service-index{position:absolute;left:var(--pad);top:0;margin:0;padding:0;list-style:none;z-index:1;width:64%;will-change:transform}
.service-index li{font:400 clamp(26px,3.7vw,66px)/1.2 'IBM Plex Mono',monospace;letter-spacing:-.055em;white-space:nowrap;margin:0;padding:0 0 .30em;will-change:transform,opacity}
.service-index .service-letter{color:#dedee3;transition:none}
.reel-frame{position:absolute;z-index:2;overflow:hidden;background:#131419;will-change:width,height,left,top;contain:layout paint}
.reel-montage,.reel-shot{position:absolute;inset:0}
.reel-shot{margin:0;opacity:0;animation:reel-shot 25s linear infinite;animation-delay:calc(var(--shot) * 5s)}
.reel-shot:first-child{opacity:1}
.reel-shot img{width:100%;height:100%;object-fit:cover;display:block;animation:reel-drift 25s ease-in-out infinite;animation-delay:calc(var(--shot) * 5s)}
.reel-shot figcaption{position:absolute;left:24px;bottom:23px;color:white;font:12px 'IBM Plex Mono',monospace;opacity:var(--reel-label-opacity,0);z-index:1}
.reel-shot:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#0007);pointer-events:none}
.reel-badge{position:absolute;right:22px;top:22px;color:#fff;font:10px 'IBM Plex Mono',monospace;letter-spacing:.08em;background:#10111599;padding:5px 7px;opacity:var(--reel-label-opacity,0);z-index:4}
.reel-curtain{position:absolute;inset:0;background:#101115;z-index:5;pointer-events:none}
.reel-montage{opacity:0}.reel-revealed .reel-montage{opacity:1}
.showreel-journey:not(.reel-on-screen) .reel-shot,.showreel-journey:not(.reel-on-screen) .reel-shot img,.ambient-paused .reel-shot,.ambient-paused .reel-shot img{animation-play-state:paused}
@keyframes reel-shot{0%,18%{opacity:1}20%,98%{opacity:0}100%{opacity:1}}
@keyframes reel-drift{0%{transform:scale(1.05) translateX(-1%)}20%,100%{transform:scale(1.15) translateX(1%)}}
@media(max-width:700px){.showreel-eyebrow{font-size:10px;top:calc(var(--header) + 25px)}.service-index{width:94%}.service-index li{font-size:6.2vw;line-height:1.35}.reel-badge{font-size:8px;right:12px;top:12px}.reel-shot figcaption{font-size:10px;left:12px;bottom:15px}}
@media(prefers-reduced-motion:reduce){.showreel-journey{height:auto;padding:100px var(--pad) 65px}.showreel-stage{position:relative;height:auto;overflow:visible}.showreel-eyebrow{position:relative;inset:auto;margin-bottom:30px}.service-index{position:relative;inset:auto;width:100%;transform:none!important;margin-bottom:40px}.service-index li{font-size:clamp(32px,5vw,72px);transform:none!important;opacity:1!important}.service-letter{color:#131419!important}.reel-frame{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;aspect-ratio:16/9;opacity:1!important}.reel-curtain{display:none}.reel-montage{opacity:1}.reel-shot,.reel-shot img{animation:none}.reel-shot:first-child{opacity:1}.reel-badge,.reel-shot figcaption{opacity:1}}

.reel-frame.reel-docked{position:fixed;z-index:30}
.reel-docked .reel-montage{opacity:1}


/* A new dark chapter rises behind the reel during its return to the dock. */
.reel-dark-takeover{position:absolute;inset:0;z-index:0;background:#131419;transform:translateY(100%);will-change:transform;pointer-events:none}
.reel-dark-continuation{position:relative;min-height:100svh;background:#131419}
.reel-dark-active .topbar{background:#13141980;color:#f1f0ee}
.reel-dark-active .motion-toggle{color:#b4afac}
@media(prefers-reduced-motion:reduce){.reel-dark-takeover{display:none}}

.reel-docked .reel-curtain{display:none}

.site-showreel{display:block;width:100%;height:100%;object-fit:cover}
