.spotify-shell{grid-column:1/-1;display:none;height:152px;overflow:hidden;opacity:0}
.music-dock.open .spotify-shell{display:block;opacity:1}
.spotify-shell iframe{display:block;border:0}

/* Carrossel contínuo e lanterna global */
.carousel-top>div:first-child{display:grid;gap:7px}
.carousel-top>div:first-child small{color:var(--muted);font:400 9px DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase}
.carousel-progress span{width:10%}
.carousel-viewport{scroll-snap-type:none}
.carousel-slide{scroll-snap-align:none}

.project-carousel{position:relative;isolation:isolate}
.flashlight-overlay{position:absolute;inset:0;z-index:8;pointer-events:none;background:rgba(0,0,0,.91);opacity:0;transition:opacity .35s ease;-webkit-mask-image:radial-gradient(circle 175px at var(--flash-x,50%) var(--flash-y,50%),transparent 0,transparent 44%,rgba(0,0,0,.5) 72%,#000 100%);mask-image:radial-gradient(circle 175px at var(--flash-x,50%) var(--flash-y,50%),transparent 0,transparent 44%,rgba(0,0,0,.5) 72%,#000 100%)}
.flashlight-ring{position:absolute;z-index:9;left:0;top:0;width:350px;height:350px;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(circle,rgba(220,244,67,.045),transparent 66%);box-shadow:inset 0 0 0 1px rgba(220,244,67,.09);will-change:transform;transition:opacity .35s ease}
.project-carousel.flashlight-active .flashlight-overlay,.project-carousel.flashlight-active .flashlight-ring{opacity:1}

@media(pointer:coarse){.flashlight-overlay,.flashlight-ring{display:none}}
@media(prefers-reduced-motion:reduce){.flashlight-overlay,.flashlight-ring{transition:none}}
