.mosaic-gallery{width:100%;max-width:1400px;margin:0 auto;padding:2rem}.mosaic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-auto-rows:200px;grid-gap:1rem;grid-auto-flow:dense}.mosaic-item.small{grid-column:span 1;grid-row:span 1}.mosaic-item.medium{grid-column:span 1;grid-row:span 2}.mosaic-item.large{grid-column:span 2;grid-row:span 2}.mosaic-item.wide{grid-column:span 2;grid-row:span 1}.mosaic-item.tall{grid-column:span 1;grid-row:span 3}.mosaic-item{position:relative;border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;background:#000;box-shadow:0 4px 20px rgba(0,0,0,.1)}.mosaic-item:hover{transform:translateY(-5px);box-shadow:0 8px 30px rgba(0,0,0,.2),0 0 0 2px #ffd700}.media-container{position:relative;width:100%;height:100%}.media-content{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.mosaic-item:hover .media-content{transform:scale(1.05)}.media-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,0,0,.3) 0,transparent 30%,transparent 70%,rgba(0,0,0,.3));display:flex;flex-direction:column;justify-content:space-between;padding:1rem;opacity:0;transition:opacity .3s ease}.mosaic-item:hover .media-overlay{opacity:1}.media-controls{display:flex;justify-content:center;align-items:center}.play-icon{font-size:2rem;color:#ffd700;text-shadow:0 2px 8px rgba(0,0,0,.5);transition:transform .2s ease}.mosaic-item:hover .play-icon{transform:scale(1.2)}.media-type-badge{position:absolute;top:.5rem;right:.5rem;background:rgba(255,215,0,.9);color:#000;padding:.3rem .6rem;border-radius:20px;font-size:.8rem;font-weight:600}.lightbox-simple{top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.95);z-index:1000;padding:2rem}.lightbox-close-simple,.lightbox-simple{position:fixed;display:flex;align-items:center;justify-content:center}.lightbox-close-simple{top:2rem;right:2rem;background:rgba(255,215,0,.9);border:none;border-radius:50%;width:50px;height:50px;font-size:2rem;font-weight:700;cursor:pointer;z-index:1001;transition:all .3s ease;color:#000}.lightbox-close-simple:hover{background:#ffd700;transform:scale(1.1)}.lightbox-image-container{position:relative;width:100%;height:100%;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.lightbox-image-full{object-fit:contain!important;width:auto!important;height:auto!important;max-width:100%;max-height:100%;position:relative!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.lightbox-simple{animation:fadeIn .3s ease}.lightbox-image-container{animation:scaleIn .3s ease}@media (max-width:1200px){.mosaic-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-rows:180px}.mosaic-item.tall{grid-row:span 2}}@media (max-width:768px){.mosaic-gallery{padding:1rem}.mosaic-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:150px;grid-gap:.5rem}.mosaic-item.large,.mosaic-item.medium,.mosaic-item.tall,.mosaic-item.wide{grid-column:span 1;grid-row:span 1}.lightbox-simple{padding:1rem}.lightbox-close-simple{top:1rem;right:1rem;width:40px;height:40px;font-size:1.5rem}}@media (max-width:480px){.mosaic-grid{grid-template-columns:1fr 1fr;grid-auto-rows:120px}.lightbox-close-simple{top:.5rem;right:.5rem;width:35px;height:35px;font-size:1.2rem}}@media (prefers-reduced-motion:reduce){.lightbox-close-simple,.media-content,.media-overlay,.mosaic-item,.play-icon{transition:none}.mosaic-item:hover{transform:none}.lightbox-image-container,.lightbox-simple{animation:none}}