.project-gallery{outline:none;width:100%}.project-gallery-frame{border:1px solid var(--border);box-shadow:var(--shadow-md);background:#0b0b0b;border-radius:12px;position:relative;overflow:hidden}.project-gallery-stage{background:radial-gradient(circle,#ffffff0a,#0000 55%),#0b0b0b;width:100%;height:clamp(360px,58vh,620px);display:block;position:relative}.project-gallery-image{object-fit:contain;object-position:center;padding:.75rem}.project-gallery-nav{z-index:2;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c0c0cb8;border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;font-size:1.75rem;line-height:1;transition:background-color .2s,border-color .2s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.project-gallery-nav:hover,.project-gallery-nav:focus-visible{background:#141414e6;border-color:#ffffff73;outline:none}.project-gallery-nav:focus-visible{outline-offset:2px;outline:2px solid #fff}.project-gallery-nav-prev{left:.75rem}.project-gallery-nav-next{right:.75rem}.project-gallery-footer{flex-direction:column;gap:.85rem;margin-top:1rem;display:flex}.project-gallery-caption{min-height:1.5rem;color:var(--muted-foreground);margin:0;font-size:.9375rem}.project-gallery-meta{justify-content:space-between;align-items:center;gap:1rem;display:flex}.project-gallery-dots{flex-wrap:wrap;gap:.5rem;display:flex}.project-gallery-dot{border:1px solid var(--border);background:var(--background);cursor:pointer;border-radius:999px;width:.7rem;height:.7rem;padding:0;transition:background-color .2s,border-color .2s,transform .2s}.project-gallery-dot.is-active{background:var(--foreground);border-color:var(--foreground);transform:scale(1.15)}.project-gallery-dot:hover,.project-gallery-dot:focus-visible{border-color:var(--foreground)}.project-gallery-dot:focus-visible{outline:2px solid var(--foreground);outline-offset:2px}.project-gallery-counter{font-variant-numeric:tabular-nums;color:var(--muted-foreground);flex-shrink:0;font-size:.875rem}@media (max-width:640px){.project-gallery-stage{height:clamp(240px,48vh,360px)}.project-gallery-image{padding:.5rem}.project-gallery-nav{width:2.4rem;height:2.4rem;font-size:1.5rem}.project-gallery-nav-prev{left:.5rem}.project-gallery-nav-next{right:.5rem}}
.project-detail{padding-top:5rem}.project-detail-hero{border-bottom:1px solid var(--border);padding:3rem 0 4rem}.project-detail-hero-inner,.project-detail-section{width:100%;max-width:1100px;margin:0 auto;padding:0 2rem}.project-detail-hero-inner{grid-template-columns:1fr;align-items:start;gap:2.5rem;max-width:1100px;display:grid}.project-detail-badge{border:1px solid var(--border);background:var(--background);color:var(--muted-foreground);border-radius:20px;margin-bottom:.75rem;padding:.375rem .875rem;font-size:.875rem;font-weight:500;display:inline-block}.project-detail-title{margin-bottom:.75rem;font-size:clamp(2.25rem,5vw,3.25rem)}.project-detail-hero-subtitle{color:var(--muted-foreground);margin-bottom:1.25rem;font-size:1.25rem;font-weight:600}.project-detail-intro,.project-detail-prose{color:var(--foreground);margin-bottom:1.75rem;line-height:1.75}.project-detail-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.project-detail-cta-primary{align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.project-detail-cta-secondary{min-height:44px;color:var(--muted-foreground);text-underline-offset:3px;align-items:center;gap:.35rem;padding:.5rem .25rem;font-size:.9375rem;font-weight:500;text-decoration:underline;display:inline-flex}.project-detail-cta-secondary:hover,.project-detail-cta-secondary:focus-visible{color:var(--foreground)}.project-detail-external-icon{font-size:.85em}.project-detail-back{background:var(--foreground);color:var(--background);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.project-detail-image-wrap{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden}.project-detail-image{width:100%;height:auto;display:block}.project-detail-section{padding-top:4.5rem;padding-bottom:1rem}.project-detail-section h2{margin-bottom:1.75rem;font-size:clamp(1.75rem,3.5vw,2.25rem)}.project-detail-features{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.project-detail-feature-item{border:1px solid var(--border);background:var(--card);height:100%;color:var(--foreground);border-radius:10px;padding:1.25rem 1.35rem;line-height:1.5}.project-detail-stack-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;display:grid}.project-detail-stack-group h3{margin-bottom:.85rem;font-size:1.05rem}.project-detail-stack-group ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.project-detail-tag{background:var(--background);border:1px solid var(--border);color:var(--foreground);border-radius:20px;padding:.35rem .8rem;font-size:.875rem;display:inline-block}.project-detail-challenges{padding-bottom:2rem}.project-detail-challenges-list{flex-direction:column;gap:1.5rem;display:flex}.project-detail-challenge{border:1px solid var(--border);border-left:3px solid var(--foreground);background:var(--card);box-shadow:var(--shadow-sm);border-radius:12px;padding:2rem 2.25rem}.project-detail-challenge h3{margin-bottom:.85rem;font-size:1.35rem}.project-detail-challenge p{color:var(--foreground);margin:0;line-height:1.75}.project-detail-final-cta{padding-bottom:5rem}.project-detail-final-cta .project-detail-prose{max-width:40rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:900px){.project-detail-hero-inner{gap:2rem}}@media (max-width:768px){.project-detail{padding-top:4rem}.project-detail-hero-inner,.project-detail-section{padding-left:1.5rem;padding-right:1.5rem}.project-detail-section{padding-top:3.5rem}.project-detail-challenge{padding:1.5rem}.project-detail-actions{flex-direction:column;align-items:stretch}.project-detail-cta-primary,.project-detail-cta-secondary,.project-detail-back{justify-content:center;width:100%}}@media (max-width:480px){.project-detail-hero-inner,.project-detail-section{padding-left:1rem;padding-right:1rem}}
