/* Quiet, static project mosaic and full-image viewer. */
.portfolio-intro.page-intro{padding:48px 0 30px}.portfolio-intro h1{font-size:clamp(2.5rem,4.6vw,4.4rem);margin:20px 0 16px}.portfolio-intro .lead{font-size:1rem;max-width:650px}
.portfolio .filters{gap:8px;margin:0 0 28px;padding-bottom:18px;border-bottom:1px solid var(--line)}.portfolio .filters button{padding:9px 15px;border-radius:13px;font-size:.85rem}
.portfolio .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.portfolio .category-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px}
.portfolio .project-card,.portfolio .project-card:nth-child(even){padding:0;min-width:0;border:1px solid #ffffff20;border-radius:18px;background:#121517;overflow:hidden;box-shadow:none}
.portfolio .project-card>a{display:flex;flex-direction:column;height:100%}.portfolio .project-photo{aspect-ratio:4/3;border-radius:0;margin:0}.portfolio .project-photo img{width:100%;height:100%;object-fit:cover}.portfolio .photo-link{width:34px;height:34px;font-size:1.1rem}
.portfolio .project-caption{margin:0;padding:19px 20px 22px;display:block}.portfolio .project-caption p{font-size:.75rem;line-height:1.4;letter-spacing:.06em;color:#b8cdd8;margin-bottom:9px}.portfolio .project-caption h3{font-size:1.35rem;line-height:1.2;letter-spacing:-.025em}.portfolio .project-caption>span{display:none}.portfolio .project-card:hover{border-color:#66838e}
@media(max-width:1000px){.portfolio .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}
@media(max-width:600px){.portfolio-intro.page-intro{padding:32px 0 24px}.portfolio-intro h1{font-size:2.7rem;margin:17px 0 14px}.portfolio .project-grid{grid-template-columns:1fr;gap:22px}.portfolio .filters{flex-wrap:nowrap;overflow-x:auto;margin-bottom:23px;scrollbar-width:thin;scrollbar-color:#648294 #00202f;padding:3px 3px 14px}.portfolio .filters button{flex-shrink:0}.portfolio .project-caption{padding:17px 18px 20px}.portfolio .project-photo{aspect-ratio:4/3}}
.selected .project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.selected .project-card,.selected .project-card:nth-child(even){grid-column:span 3;padding:0;min-width:0}
.selected .project-card:nth-child(1){grid-column:span 7}.selected .project-card:nth-child(2){grid-column:span 5}
.selected .category-grid .project-card,.selected .category-grid .project-card:nth-child(1),.selected .category-grid .project-card:nth-child(2),.selected .category-grid .project-card:nth-child(even){grid-column:span 6}
.selected .project-photo{aspect-ratio:1.05;border:1px solid #728b9a60;border-radius:24px;box-shadow:0 10px 30px #00131f30}
.selected .project-card:nth-child(-n+2) .project-photo{aspect-ratio:auto;height:420px}
.selected .project-caption{margin-top:14px;align-items:start;gap:10px}.selected .project-caption>span{display:none}.selected .project-caption h3{font-size:1.4rem}.selected .project-caption p{font-size:.75rem;line-height:1.4}
.photo-viewer.gallery{display:block;position:relative;margin:0;border:1px solid #55758270;border-radius:28px;background:radial-gradient(ellipse at top,#123c50,#00202f);overflow:clip}
.photo-carousel-arrow{position:absolute;z-index:4;top:50%;width:52px;height:52px;padding:0;border:1px solid #cfe1e980;border-radius:50%;background:#102b3ce8;color:white;font-size:1.4rem;line-height:1;transform:translateY(-50%);box-shadow:0 8px 24px #0007}.photo-carousel-arrow:hover{background:#29495c}.photo-carousel-prev{left:18px}.photo-carousel-next{right:18px}
.photo-viewer .gallery-item{display:block;margin:0;position:relative}
.photo-viewer .gallery-item img,.photo-viewer .gallery-item:first-child img{width:100%;height:clamp(360px,62vh,720px);object-fit:contain;background:transparent}
.photo-viewer .gallery-item>span{position:absolute;bottom:18px;right:18px;padding:10px 17px;border-radius:14px;background:#1c3547e6;border:1px solid #64829480;color:white}
.photo-status{color:#b8cdd8;font-size:.85rem;margin:14px 0}
.photo-thumbnails{display:flex;gap:12px;overflow-x:auto;padding:5px 5px 15px;scrollbar-width:thin;scrollbar-color:#648294 #00202f}
.photo-thumbnails button{flex:0 0 112px;height:85px;border:2px solid transparent;background:#1c3547;padding:4px;border-radius:15px;opacity:.65;transition:opacity .2s,border-color .2s}
.photo-thumbnails button:hover{opacity:1}.photo-thumbnails button[aria-pressed=true]{opacity:1;border-color:#c2e69b}.photo-thumbnails img{width:100%;height:100%;object-fit:cover;border-radius:9px}
@media(max-width:1000px){.selected .project-card{grid-column:span 6}.selected .project-card:nth-child(even){grid-column:span 6}.selected .project-card:nth-child(1){grid-column:span 6}.selected .project-card:nth-child(-n+2) .project-photo{height:320px}.selected .project-photo{aspect-ratio:1.35}}
@media(max-width:600px){.portfolio .category-grid{grid-template-columns:1fr}.selected .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px}.selected .project-card,.selected .project-card:nth-child(even),.selected .project-card:nth-child(1){grid-column:span 1}.selected .category-grid .project-card,.selected .category-grid .project-card:nth-child(1),.selected .category-grid .project-card:nth-child(2),.selected .category-grid .project-card:nth-child(even){grid-column:span 1}.selected .project-card:first-child{grid-column:1/-1}.selected .project-card:last-child{grid-column:1/-1}.selected .category-grid .project-card:first-child,.selected .category-grid .project-card:last-child{grid-column:span 1}.selected .project-card:nth-child(-n+2) .project-photo{height:auto;aspect-ratio:1.1}.selected .project-card:first-child .project-photo,.selected .project-card:last-child .project-photo{aspect-ratio:1.35}.selected .category-grid .project-card:first-child .project-photo,.selected .category-grid .project-card:last-child .project-photo{aspect-ratio:1.1}.selected .project-photo{border-radius:18px;aspect-ratio:1.1}.selected .project-caption h3{font-size:1.2rem}.photo-viewer.gallery{border-radius:22px}.photo-viewer .gallery-item img,.photo-viewer .gallery-item:first-child img{height:440px;max-height:65svh}.photo-carousel-arrow{width:44px;height:44px}.photo-carousel-prev{left:10px}.photo-carousel-next{right:10px}.photo-thumbnails{gap:8px}.photo-thumbnails button{flex-basis:84px;height:68px}.photo-status{font-size:.8rem}.photo-viewer .gallery-item>span{bottom:12px;right:12px;font-size:.8rem}}
