.portfolio-page{padding-top:270px;min-height:70vh}.portfolio-page h1{font-size:clamp(48px,6vw,100px);max-width:1000px;margin:30px 0}.project-description{font-size:16px;max-width:680px;line-height:1.9;margin:30px 0 70px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 36px}.project-grid h2{font-size:40px;margin:20px 0}.project-cover{aspect-ratio:4/5;overflow:hidden;background:#f3f2ef}.project-cover img{transition:transform .8s}.project-cover:hover img{transform:scale(1.025)}.project-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}.image-open{padding:0;border:0;background:none;cursor:zoom-in}.image-open img{width:100%;height:auto}.portfolio-contact{text-align:center;padding:100px 0}.preview-note{padding:16px;background:#efe9dc;color:#292722}.image-dialog{position:fixed;inset:0;max-width:100vw;max-height:100dvh;width:100%;height:100dvh;border:0;padding:60px 20px 20px;background:#161616}.image-dialog::backdrop{background:#161616}.image-dialog img{height:100%;width:100%;object-fit:contain}.image-close{position:absolute;right:20px;top:10px;background:none;color:white;border:0;font-size:38px;cursor:pointer;width:48px;height:48px}@media(max-width:700px){.portfolio-page{padding-top:155px}.project-grid,.project-images{grid-template-columns:1fr;gap:40px}.project-description{margin-bottom:40px}.project-grid h2{font-size:34px}}
.project-grid{display:flex;gap:32px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:30px;scrollbar-width:thin;scrollbar-color:#927543 #eee}.project-grid article{flex:0 0 calc((100% - 64px)/3);min-width:0;scroll-snap-align:start}.project-cover{aspect-ratio:3/4}.project-grid h2{font-size:34px}.project-controls{display:flex;gap:12px;justify-content:flex-end;margin:0 0 24px}.project-controls button{border:1px solid #bbb;background:white;width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:24px}.project-controls button:disabled{opacity:.3;cursor:default}.project-navigation{display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap;margin-top:60px;font-size:14px}.image-dialog .image-prev,.image-dialog .image-next{position:absolute;top:50%;width:44px;height:44px;background:#fff;color:#111;border:0;border-radius:50%;cursor:pointer;font-size:24px}.image-prev{left:16px}.image-next{right:16px}.image-dialog img{padding-inline:35px}.image-dialog .image-close{z-index:2}.project-images{columns:2;display:block;column-gap:28px}.project-images .image-open{display:block;width:100%;break-inside:avoid;margin-bottom:28px}@media(max-width:1000px){.project-grid article{flex-basis:calc((100% - 32px)/2)}}@media(max-width:700px){.project-grid article{flex-basis:84%}.project-grid{gap:18px}.project-images{columns:1}.image-dialog img{padding:0}.project-grid h2{font-size:30px}}@media(prefers-reduced-motion:reduce){.project-cover img{transition:none}}

/* Portfolio index: published projects fill consecutive rows in admin order. */
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:64px 32px;overflow:visible;scroll-snap-type:none;overscroll-behavior-x:auto;padding-bottom:0}
.project-grid article{min-width:0;scroll-snap-align:none}
.project-grid h2{overflow-wrap:anywhere}
@media(max-width:1000px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.project-grid{grid-template-columns:minmax(0,1fr);gap:44px}}
