.mosaic-root{--mx:0;--my:0;position:absolute;inset:0;width:100%;height:100%;overflow:hidden;background:#050507;isolation:isolate;contain:strict;perspective:1600px;perspective-origin:50% 45%}.mosaic-base{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 30%,#0c0e15 0,#050507 60%,#020203 100%);z-index:0}.mosaic-stage{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;transform:translate3d(calc(var(--mx) * -20px),calc(var(--my) * -14px),0) rotateX(28deg) rotate(-18deg) scale(1.15);transform-origin:50% 50%;transition:transform .9s cubic-bezier(.16,1,.3,1);will-change:transform}.mosaic-grid{--col-gap:28px;--card-radius:18px;width:175vw;height:170vh;display:grid;grid-template-columns:repeat(5,1fr);gap:0 var(--col-gap);transform-style:preserve-3d}.mosaic-col{position:relative;overflow:hidden;will-change:transform;align-self:stretch}.mosaic-col:first-child{transform:translateY(-6vh)}.mosaic-col:nth-child(2){transform:translateY(4vh)}.mosaic-col:nth-child(3){transform:translateY(-2vh)}.mosaic-col:nth-child(4){transform:translateY(7vh)}.mosaic-col:nth-child(5){transform:translateY(-4vh)}.mosaic-col--down,.mosaic-col--up,.mosaic-set{display:flex;flex-direction:column}.mosaic-set{gap:28px;padding:14px 0;flex-shrink:0}.mosaic-col--up .mosaic-set{animation:mosaicScrollUp linear infinite;animation-duration:inherit}.mosaic-col--down .mosaic-set{animation:mosaicScrollDown linear infinite;animation-duration:inherit}.mosaic-col .mosaic-set{animation-duration:inherit}@keyframes mosaicScrollUp{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes mosaicScrollDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.mosaic-card{position:relative;width:100%;aspect-ratio:9/13.5;border-radius:var(--card-radius);overflow:hidden;background:#0a0a0d;box-shadow:0 30px 60px -25px rgba(0,0,0,.85),0 8px 22px -10px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.04)}.mosaic-card img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;filter:saturate(1.05) contrast(1.02)}.mosaic-card:after{content:"";background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0) 22%,rgba(0,0,0,0) 70%,rgba(0,0,0,.25));border-radius:inherit}.mosaic-card:after,.mosaic-darken{position:absolute;inset:0;pointer-events:none}.mosaic-darken{z-index:2;background:radial-gradient(70% 55% at 50% 50%,rgba(0,0,0,.35) 0,rgba(0,0,0,.55) 60%,rgba(0,0,0,.78) 100%)}.mosaic-grain{position:absolute;inset:-4%;z-index:3;width:108%;height:108%;pointer-events:none;opacity:.13;mix-blend-mode:overlay;animation:mosaicGrainShift 1.6s steps(6) infinite}@keyframes mosaicGrainShift{0%{transform:translateZ(0)}20%{transform:translate3d(-2%,1%,0)}40%{transform:translate3d(1%,-2%,0)}60%{transform:translate3d(-1%,2%,0)}80%{transform:translate3d(2%,-1%,0)}to{transform:translateZ(0)}}.mosaic-vignette{position:absolute;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse 85% 75% at center,rgba(0,0,0,0) 35%,rgba(0,0,0,.4) 75%,rgba(0,0,0,.85) 100%)}.mosaic-foreground{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;pointer-events:auto}.mosaic-root[data-ready=false] .mosaic-stage{opacity:0}.mosaic-root[data-ready=true] .mosaic-stage{opacity:1;transition:opacity 1.2s ease,transform .9s cubic-bezier(.16,1,.3,1)}@media (max-width:900px){.mosaic-grid{grid-template-columns:repeat(4,1fr);width:150vw;height:170vh;--col-gap:22px}.mosaic-set{gap:22px}.mosaic-stage{transform:translate3d(calc(var(--mx) * -14px),calc(var(--my) * -10px),0) rotateX(22deg) rotate(-15deg) scale(1.05)}}@media (max-width:560px){.mosaic-grid{grid-template-columns:repeat(3,1fr);width:145vw;height:175vh;--col-gap:16px}.mosaic-set{gap:16px}.mosaic-stage{transform:translateZ(0) rotateX(20deg) rotate(-12deg) scale(1)}.mosaic-col:first-child{transform:translateY(-4vh)}.mosaic-col:nth-child(2){transform:translateY(3vh)}.mosaic-col:nth-child(3){transform:translateY(-2vh)}}@media (prefers-reduced-motion:reduce){.mosaic-col--down .mosaic-set,.mosaic-col--up .mosaic-set,.mosaic-grain{animation:none!important}}