/* The same floating fan, with one compositor layer providing idle movement. */
.scene{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
.scene-camera{animation:portfolio-float 7s ease-in-out infinite}
@keyframes portfolio-float{0%,100%{translate:0 -4px}50%{translate:0 5px}}
.scene.is-interacting .scene-camera,.scene.is-offscreen .scene-camera{animation-play-state:paused}
.scene-card .scene-card-face>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.spatial-hero .scene-card .scene-card-face>video{position:absolute;inset:0;opacity:0;transition:none}
.spatial-hero .scene-card.is-front.has-preview .scene-card-face>video{opacity:1}
.scene-card>*{pointer-events:none}
.carousel-active .ambient-blob,.carousel-active .sculpture-ring,.media-playing .ambient-blob,.intro-playing .ambient-blob{animation-play-state:paused}
/* One stable 3D surface keeps the visible expand icon and button hit area aligned. */
.work-card{position:relative;transform-style:flat;pointer-events:none;transition:none;transform:perspective(1600px) rotateY(var(--work-angle,-3deg));translate:none}
.work-card:nth-child(even){--work-angle:3deg}
.work-media{transform:none;translate:none;transform-style:flat;pointer-events:auto;touch-action:manipulation;cursor:pointer}
.work-media>*,.work-open svg{pointer-events:none}
.work-info{transform:none}
.work-media:focus-visible{outline:3px solid #f9edcf;outline-offset:7px}
.work-open{min-width:44px;min-height:44px;backdrop-filter:none;background:#181021e6}
.motion-paused .work-card{transform:none;translate:none}
.intro-video-frame{transform-style:flat}
.intro-video-frame>video{display:block}
.intro-video-frame.is-playing{transform:none}
.intro-actions{display:flex;justify-content:center;margin-top:36px}
.intro-start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:13px;padding:18px 25px;border-radius:99px;background:#fff3d6;color:#21182b;border:1px solid #fff8e9;box-shadow:0 6px 0 #b5a88d,0 10px 24px #0006;font:600 .95rem var(--body);white-space:nowrap;cursor:pointer}
.intro-start[hidden]{display:none}
.intro-start svg{width:20px;height:20px}
.intro-start:focus-visible{outline:3px solid #dec0ff;outline-offset:8px}
@media(max-width:700px){
 .ambient-blob{animation:none}
 .spatial-hero .scene-card:not(.is-front){box-shadow:4px 4px 0 #60516f,-1px -1px 0 #ead6fc55}
 .spatial-hero .card-depth{box-shadow:5px 7px 0 #41334f}
 .intro-video-frame>video{border-radius:16px}
 .intro-start{padding:13px 18px;font-size:.82rem;gap:8px}
}
@media(prefers-reduced-motion:reduce){.scene-camera{animation:none}}
