.project-detail{max-width:900px;margin:0 auto;padding:2rem 0}.back-link-wrapper{margin-bottom:2rem}.back-link{color:var(--primary-color);background:var(--bg-secondary);border:1px solid var(--primary-color);border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.back-link:hover{background:color-mix(in srgb,var(--bg-secondary) 90%,var(--primary-color))}.project-header{margin-bottom:3rem}.project-header h1{margin-bottom:1rem;font-size:2.5rem}.project-header .tags{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.project-header .tag{background:var(--bg-secondary);color:var(--primary-color);border:1px solid var(--primary-color);border-radius:1rem;padding:.25rem .75rem;font-size:.875rem}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tag{background:var(--bg-secondary);color:var(--primary-color);border-radius:1rem;padding:.25rem .75rem;font-size:.875rem}.project-content,.main-content{flex-direction:column;gap:2rem;display:flex}section{margin:0}.project-gallery{border-top:1px solid rgba(var(--border-rgb),.1);margin-top:2rem;padding-top:2rem}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin:1.5rem 0;display:grid}.gallery-item.featured{grid-column:1/-1}#additionalImages .gallery-grid{grid-template-columns:repeat(2,1fr)}@media (max-width:768px){.gallery-item.featured.priority-1{grid-column:span 1}#additionalImages .gallery-grid{grid-template-columns:1fr}.gallery-item img{height:200px}}.gallery-item.featured:only-of-type{grid-column:1/-1}.gallery-item.featured:only-of-type img{height:450px}.gallery-item{background:var(--bg-secondary);cursor:zoom-in;border-radius:.5rem;margin:0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.gallery-item:after{content:"";opacity:0;background:linear-gradient(#0000 0 70%,#0003 100%);transition:opacity .3s;position:absolute;inset:0}.gallery-item:before{content:"🔍";opacity:0;z-index:2;font-size:1.5rem;transition:all .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8)}.gallery-item:hover:after{opacity:1}.gallery-item:hover:before{opacity:1;transform:translate(-50%,-50%) scale(1)}.gallery-item img{object-fit:cover;opacity:0;width:100%;height:250px;transition:transform .3s,opacity .3s;display:block}.gallery-item img.preview-loaded,.gallery-item img.loaded{opacity:1}.gallery-item img.error{opacity:.7;filter:grayscale()}.gallery-item:hover img{transform:scale(1.05)}.gallery-item.featured.priority-1{--item-index:1;grid-column:span 2;position:relative}.gallery-item.featured.priority-2{--item-index:2}.gallery-item:not(.featured){--item-index:3}.gallery-item:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.featured-badge{background:var(--primary-color);color:#fff;z-index:2;border-radius:2rem;padding:.25rem .75rem;font-size:.875rem;font-weight:500;position:absolute;top:1rem;right:1rem}.gallery-item img{object-fit:cover;width:100%;height:250px;display:block}.gallery-item.featured.priority-1 img{height:400px}.gallery-item.featured.priority-2 img{height:300px}figcaption{text-align:center;color:var(--text-secondary);padding:1rem;font-size:.9rem}.gallery-expansion{flex-direction:column;align-items:center;display:flex}.expand-button{background:var(--bg-secondary);color:var(--primary-color);cursor:pointer;border:0;border-radius:.5rem;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s;display:flex}.expand-button:hover{background:color-mix(in srgb,var(--bg-secondary) 90%,var(--primary-color))}.expand-button svg{margin-top:2px;transition:transform .3s cubic-bezier(.4,0,.2,1)}.expand-button[aria-expanded=true] svg{transform:rotate(180deg)}.button-text{transition:opacity .2s;position:relative}.expand-button .button-text{opacity:1;transition:all .2s;transform:translateY(0)}.hidden{display:none}.additional-images{opacity:1;will-change:opacity,max-height;max-height:2000px;transition:opacity .3s ease-in-out,max-height .5s ease-in-out}.additional-images.hidden{opacity:0;max-height:0;margin:0;overflow:hidden}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gallery-description{color:var(--text-secondary);margin-bottom:1.5rem}@media (max-width:768px){.project-header h1{font-size:2rem}.gallery-item.featured.priority-1{grid-column:span 1}.gallery-item.featured:only-of-type{grid-column:1}.gallery-item.featured.priority-1 img{height:300px}.gallery-item.featured.priority-2 img{height:250px}.gallery-grid{grid-template-columns:1fr}.gallery-item.featured:only-of-type img{height:300px}.gallery-item img{height:200px}.gallery-item.featured img{height:300px}}.gallery-item.featured:before{content:"";background:linear-gradient(to bottom,transparent 70%,rgba(var(--bg-primary-rgb),.1));z-index:1;opacity:0;transition:opacity .3s;position:absolute;inset:0}.gallery-item.featured:hover:before{opacity:1}.gallery-item.featured:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 24px #00000026}.gallery-item.featured figcaption{z-index:2;background:var(--bg-secondary);transition:all .3s;position:relative}.gallery-item.featured:hover figcaption{color:var(--primary-color);background:color-mix(in srgb,var(--bg-secondary) 95%,var (--primary-color))}.image-modal{z-index:1000;opacity:0;-webkit-backdrop-filter:blur(8px);background:#000000f2;justify-content:center;align-items:center;transition:opacity .3s;display:none;position:fixed;inset:0}.modal-content{opacity:0;flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;transform:scale(.95)}.image-modal.active{opacity:1;display:flex}.image-modal.active .modal-content{opacity:1;transform:scale(1)}.modal-content img{object-fit:contain;border-radius:.5rem;max-width:100%;max-height:80vh;transition:transform .3s;box-shadow:0 4px 20px #0000004d}.modal-content img.loading{opacity:.5;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%{opacity:.5}50%{opacity:.8}to{opacity:.5}}.modal-close,.modal-prev,.modal-next{color:#fff;cursor:pointer;z-index:1001;opacity:.7;background:#00000080;border:0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;padding:1rem;transition:all .2s;display:flex;position:fixed}.modal-close:hover,.modal-prev:hover,.modal-next:hover{opacity:1;background:#000c;transform:scale(1.1)}.modal-close{top:1rem;right:1rem}.modal-prev{top:50%;left:1rem;transform:translateY(-50%)}.modal-next{top:50%;right:1rem;transform:translateY(-50%)}.modal-counter{color:#fff;opacity:.7;background:#00000080;border-radius:1rem;padding:.5rem 1rem;font-size:.9rem;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.gallery-item.loading{background:linear-gradient(90deg,var(--bg-secondary) 0%,color-mix(in srgb,var(--bg-secondary) 90%,var(--primary-color)) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200%0}to{background-position:-200%0}}.splash-screen{background:var(--bg-primary);z-index:9999;opacity:1;visibility:visible;justify-content:center;align-items:center;transition:opacity .5s ease-out,visibility .5s ease-out;display:flex;position:fixed;inset:0}.splash-screen.hidden{opacity:0;visibility:hidden}.splash-content{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.splash-logo{width:80px;height:80px;animation:2s ease-in-out infinite pulse-fade}.loading-dots{gap:.5rem;display:flex}.loading-dots span{background:var(--primary-color);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite loading-dot}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loading-dot{0%,to{opacity:.5;transform:scale(.5)}50%{opacity:1;transform:scale(1)}}@keyframes pulse-fade{0%,to{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1)}}.project-links[data-astro-cid-6vkduold]{border-top:1px solid rgba(var(--border-rgb),.1);margin-top:2rem;padding-top:2rem}.links-grid[data-astro-cid-6vkduold]{flex-wrap:wrap;gap:1rem;margin-top:1rem;display:flex}.link-item[data-astro-cid-6vkduold]{background:var(--bg-secondary);color:var(--text-primary);border-radius:.5rem;align-items:center;gap:.5rem;padding:.75rem 1rem;text-decoration:none;transition:all .2s;display:flex}.link-item[data-astro-cid-6vkduold]:hover{background:color-mix(in srgb,var(--bg-secondary) 90%,var(--primary-color));transform:translateY(-2px)}.link-item[data-astro-cid-6vkduold] svg[data-astro-cid-6vkduold]{color:var(--primary-color)}@media (max-width:768px){.links-grid[data-astro-cid-6vkduold]{flex-direction:column}.link-item[data-astro-cid-6vkduold]{width:100%}}