/* Shared project components; content is supplied by each project's HTML. */
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.project-card{display:block;max-width:520px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#101010;transition:border-color .2s}
.project-card:hover{border-color:#777}
.project-card:focus-visible,.project-back a:focus-visible,.project-external a:focus-visible{outline:2px solid var(--fg);outline-offset:5px}
.project-card-image{padding:24px;background:#141414}
.project-card-image img{display:block;width:100%;max-height:410px;object-fit:contain}
.project-card-info{padding:23px 24px 25px}
.project-card-info h3{font:400 clamp(1.4rem,3vw,1.85rem)/1.2 Georgia,serif;margin:0 0 10px}
.project-card-info p{color:var(--muted);font-size:.9rem;margin:0 0 20px}
.project-card-link{font-size:.9rem;border-bottom:1px solid #666;padding-bottom:4px}
.project-back{padding:30px 0 0;color:var(--muted);font-size:.9rem}
.project-back a:hover{color:var(--fg)}
.project-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start;gap:64px;padding:58px 0 64px}
.project-copy h1{font:400 clamp(2.5rem,4.8vw,4.5rem)/1.06 Georgia,serif;letter-spacing:-.02em;margin:18px 0 22px;text-wrap:balance}
.project-subtitle{font:400 1.1rem/1.5 Georgia,serif;margin:0 0 20px;color:#d0cdc7}
.project-meta{font-size:.8rem;color:var(--muted);line-height:1.6;margin:0 0 30px}
.project-description{font-size:1.05rem;line-height:1.75;max-width:580px}
.project-description p{margin:0 0 20px}
.project-credits{margin:30px 0 0;padding-top:22px;border-top:1px solid var(--line);font-size:.85rem;line-height:1.6}
.project-credits div{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;margin-bottom:9px}
.project-credits dt{color:var(--muted)}.project-credits dd{margin:0}
.project-cover{margin:0;max-width:430px;justify-self:end}
.project-cover img{display:block;width:100%;height:auto;border-radius:12px}
.project-cover figcaption{color:var(--muted);font-size:.78rem;margin-top:12px}
.project-materials{padding:54px 0;border-top:1px solid var(--line)}
.project-section-heading h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:12px}
.project-section-heading p{margin:0 0 32px;max-width:600px}
.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 22px}
.project-material{margin:0;min-width:0}
.project-image-link{display:block;cursor:zoom-in;border-radius:12px;overflow:hidden;background:#fff}
.project-image-link:focus-visible{outline:2px solid var(--fg);outline-offset:5px}
.project-material img{display:block;width:100%;height:auto}
.project-material figcaption{font:400 1.1rem/1.4 Georgia,serif;padding:12px 2px 0}
.project-external{padding:0 0 56px;font-size:.95rem}
.project-external a{display:inline-block;border-bottom:1px solid #666;padding-bottom:6px}
.project-external a:hover{border-color:var(--fg)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.project-viewer{position:fixed;inset:0;margin:0;max-width:none;max-height:none;width:100%;height:100%;height:100dvh;border:0;padding:42px 64px 20px;background:rgba(0,0,0,.96);color:var(--fg)}
.project-viewer::backdrop{background:#000}
.project-viewer[open]{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:12px}
.project-viewer figure{margin:0;min-width:0;display:flex;align-items:center;flex-direction:column}
.project-viewer-image{display:block;max-width:100%;max-height:calc(100dvh - 110px);object-fit:contain}
.project-viewer figcaption{display:flex;justify-content:space-between;gap:24px;width:min(100%,650px);padding-top:14px;font:400 1.1rem/1.4 Georgia,serif}
.project-viewer-position{font:.8rem/1.5 Arial,sans-serif;color:var(--muted)}
.project-viewer button{border:0;background:transparent;color:var(--fg);cursor:pointer;min-width:44px;min-height:44px}
.project-viewer-close{position:absolute;right:14px;top:8px;font-size:2.2rem}
.project-viewer-prev,.project-viewer-next{font-size:3rem;line-height:1}
.project-viewer button:focus-visible{outline:2px solid white;outline-offset:2px}
body.project-viewer-open{overflow:hidden}
@media(max-width:800px){.project-overview{gap:30px;grid-template-columns:1fr 1fr}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.project-grid{grid-template-columns:1fr}.project-card-image{padding:18px}.project-card-image img{max-height:360px}.project-overview{grid-template-columns:1fr;gap:32px;padding:36px 0 40px}.project-copy h1{font-size:clamp(2.45rem,10vw,3.4rem)}.project-cover{width:min(100%,350px);justify-self:center}.project-description{font-size:1rem}.project-materials{padding:38px 0}.project-gallery{gap:22px 12px}.project-material figcaption{font-size:1rem}.project-viewer{padding:48px 12px 20px}.project-viewer[open]{grid-template-columns:1fr}.project-viewer-image{max-height:calc(100dvh - 120px)}.project-viewer-prev,.project-viewer-next{position:absolute;top:45%;background:rgba(0,0,0,.55)!important;border-radius:50%;font-size:2.3rem}.project-viewer-prev{left:5px}.project-viewer-next{right:5px}.project-viewer figcaption{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.project-card{transition:none}}
