.gallery-page{background:var(--background);background-image:var(--bg-gradient);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);background-attachment:fixed;border-radius:25px;margin:40px;padding:100px 10%;overflow:hidden;box-shadow:0 30px 60px -12px #000000a6,0 18px 36px -18px #0006}.gallery-container{width:100%;max-width:1200px;margin:0 auto}.gallery-header{text-align:center;max-width:700px;margin:0 auto 3rem}.gallery-title{letter-spacing:-.03em;margin-bottom:1rem;font-size:clamp(2.5rem,5vw,4rem);font-weight:800}.gallery-subtitle{opacity:.8;font-size:1.15rem;line-height:1.6}.filter-bar{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:4rem;display:flex}.filter-btn{cursor:pointer;color:var(--foreground);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:50px;padding:.6rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.16,1,.3,1)}.filter-btn:hover{background:var(--glass-border);transform:translateY(-2px)}.filter-btn.active{background:var(--foreground);color:var(--background);border-color:#0000;box-shadow:0 4px 15px #0000001a}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.gallery-item{cursor:zoom-in;border-radius:16px;flex-direction:column;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;animation:.5s backwards fadeScaleIn;display:flex;overflow:hidden}.gallery-item:hover{transform:translateY(-8px)scale(1.02)rotateY(2deg);box-shadow:0 20px 40px #00000026}[data-theme=dark] .gallery-item{box-shadow:0 15px 35px #17171780}[data-theme=dark] .gallery-item:hover{box-shadow:0 25px 60px #000c}@keyframes fadeScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.gallery-image-placeholder{aspect-ratio:4/3;color:#000;justify-content:center;align-items:center;width:100%;font-weight:700;display:flex;position:relative;overflow:hidden}.placeholder-text{background:#fffc;border-radius:8px;padding:.5rem 1rem;font-size:1.1rem}.gallery-item-info{justify-content:space-between;align-items:center;padding:1rem;display:flex}.gallery-tags{flex-wrap:wrap;gap:.5rem;display:flex}.gallery-tag{background:var(--glass-border);color:var(--foreground);opacity:.8;border-radius:4px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.mt-1{margin-top:1rem}.lightbox{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#000c;justify-content:center;align-items:center;width:100vw;height:100vh;padding:2rem;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.lightbox-content{width:90vw;max-width:1600px;height:90vh;box-shadow:none;background:0 0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.lightbox-image-placeholder{justify-content:center;align-items:center;width:100%;height:calc(100% - 80px);display:flex;position:relative;background:0 0!important}.placeholder-text-large{color:#000;background:#fffc;border-radius:12px;padding:1rem 3rem;font-size:2rem;font-weight:700}.lightbox-info{text-align:center;color:#fff;padding:1rem}.lightbox-info h3{text-shadow:0 2px 10px #00000080;margin:0 0 .5rem;font-size:1.5rem}.lightbox-info .gallery-tags{justify-content:center}.lightbox-info .gallery-tag{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border:1px solid #ffffff1a}.lightbox-close{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;z-index:10;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.5rem;transition:background .3s,transform .3s;display:flex;position:fixed;top:2rem;right:2rem}.lightbox-close:hover{background:#ffffff4d;transform:scale(1.1)}.gallery-real-image{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.gallery-real-image-large{object-fit:contain;filter:drop-shadow(0 20px 40px #00000080);border-radius:8px;width:auto;max-width:100%;height:auto;max-height:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:900px){.gallery-page{grid-template-columns:repeat(3,1fr);margin:10px;padding-top:100px}}@media (max-width:500px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}}
