.portfolio-main{padding:34px 7% 100px}
.portfolio-intro{text-align:center;max-width:900px;margin:0 auto 46px}
.portfolio-intro h1{margin:0;font-size:clamp(44px,4.4vw,64px);font-weight:400;letter-spacing:.025em}
.portfolio-intro p{font-size:19px;line-height:1.55;max-width:780px;margin:0 auto}
.gallery-section{max-width:1250px;margin:0 auto 64px}
.gallery-section h2{text-align:center;font-size:31px;font-weight:400;letter-spacing:.035em;margin:0}
.section-lead{text-align:center;max-width:720px;margin:10px auto 26px;font-size:17px;line-height:1.5}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px;align-items:stretch}
.gallery-item{position:relative;margin:0;overflow:hidden;isolation:isolate;background:#f9ebe8 url('assets/petite-petal-standard-watercolor-tall.png') center/cover no-repeat;min-height:0;border-radius:18px;aspect-ratio:4 / 5}
.gallery-item.feature{grid-column:auto;grid-row:auto}
/* Feather each photograph into the same muted watercolor used across the site. */
.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.015);filter:saturate(.96) contrast(.98);transition:transform .45s ease,filter .45s ease;-webkit-mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,#000 48%,rgba(0,0,0,.98) 60%,rgba(0,0,0,.78) 74%,rgba(0,0,0,.42) 88%,transparent 100%);mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,#000 48%,rgba(0,0,0,.98) 60%,rgba(0,0,0,.78) 74%,rgba(0,0,0,.42) 88%,transparent 100%)}
/* The muted watercolor overlays the outer edge of each photo, hiding the rectangular boundary. */
.gallery-item::after{content:"";position:absolute;inset:-4%;z-index:2;pointer-events:none;background:#f9ebe8 url('assets/petite-petal-standard-watercolor-tall.png') center/cover no-repeat;filter:blur(3px);opacity:.94;-webkit-mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,transparent 48%,rgba(0,0,0,.04) 57%,rgba(0,0,0,.24) 69%,rgba(0,0,0,.62) 82%,#000 96%);mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,transparent 48%,rgba(0,0,0,.04) 57%,rgba(0,0,0,.24) 69%,rgba(0,0,0,.62) 82%,#000 96%)}
.gallery-item::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 42px 14px rgba(249,235,232,.24)}
.gallery-item:hover img{transform:scale(1.025);filter:saturate(1.02) contrast(1.01)}
.gallery-caption{position:absolute;left:9%;right:9%;bottom:8%;z-index:3;text-align:center;font-size:14px;letter-spacing:.07em;text-transform:uppercase;color:#fff;text-shadow:0 1px 12px rgba(45,26,25,.6);opacity:0;transition:opacity .25s ease;pointer-events:none}
.gallery-item:hover .gallery-caption{opacity:1}
.instagram-cta{max-width:820px;margin:18px auto 0;padding:34px 28px 38px;text-align:center;background:rgba(255,249,247,.60);border-top:1px solid rgba(218,143,155,.42);border-bottom:1px solid rgba(218,143,155,.42)}
.instagram-cta h2{margin:0;font-size:31px;font-weight:400}
.instagram-cta p{margin:10px auto 20px;max-width:650px;font-size:18px;line-height:1.5}
.instagram-button{display:inline-block;text-decoration:none;border:1px solid var(--rose);background:rgba(255,255,255,.42);padding:12px 28px;font-size:18px;letter-spacing:.06em;color:var(--ink)}
.instagram-button:hover{background:#e2a0ab}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}}
@media(max-width:650px){.portfolio-main{padding:28px 5% 65px}.gallery-grid{grid-template-columns:1fr;gap:12px}.gallery-caption{display:none}.gallery-section{margin-bottom:44px}.gallery-section h2{font-size:27px}.portfolio-intro p{font-size:17px}}
