(function () {
if (window.__ppsReviewCarouselShortcodeV1) return;
window.__ppsReviewCarouselShortcodeV1 = true;
var SHORTCODE = "[pps_review_carousel]";
var STYLE_ID = "pps-review-carousel-shortcode-style";
var reviews = [
{
couple: "Reshma & Joel",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-reshma-joel.jpg",
quote: "Pearl Paper Studio made the whole process feel smooth and easy. We were awkward in front of the camera, but they helped us feel natural.",
},
{
couple: "Maddie & Craig",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-maddie-craig.jpg",
imagePosition: "center bottom",
quote: "Pearl Paper Studio kept the day on track and made sure we got the photos we hoped for, without adding stress to the wedding.",
},
{
couple: "Tara & Josef",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-tara-josef.jpg",
imagePosition: "center bottom",
quote: "After rescheduling, Pearl Paper Studio helped us lock in a new date and timeline. They made us laugh and feel comfortable all day.",
},
{
couple: "Angela & Sean",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-angela-sean.jpg",
quote: "Pearl Paper Studio brought calm to a chaotic June wedding, answered every email, and gave us photos that feel like art.",
},
{
couple: "Ashima & Anurag",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-ashima-anurag.jpg",
imagePosition: "center bottom",
quote: "Pearl Paper Studio got everyone on the same page before the wedding, then kept us calm while capturing both portraits and candids.",
},
{
couple: "Jimin & Dan",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-jimin-dan.jpg",
imagePosition: "center bottom",
quote: "Pearl Paper Studio was easy to work with, friendly, and professional, and the photos came back quickly. Everyone loved them.",
},
{
couple: "Valerie & Patrick",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-valerie-patrick.jpg",
imagePosition: "center bottom",
quote: "Pearl Paper Studio created a comfortable atmosphere, listened to our ideas, and still offered thoughtful direction when we needed it.",
},
{
couple: "Joanna & Rick",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-joanna-rick.jpg",
quote: "From engagement photos to the wedding-day timeline, communication was easy, and Pearl Paper Studio made us feel comfortable when it mattered most.",
},
{
couple: "Kathryn & Matt",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-kathryn-matt.jpg",
quote: "We were on a tight schedule, but Pearl Paper Studio kept us moving without making us feel rushed. We laughed the whole way through.",
},
{
couple: "Arielle & Mike",
image: "https://pearlpaperstudio.com/wp-content/uploads/2026/07/review-arielle-mike.jpg",
quote: "Pearl Paper Studio made our awkward photo feelings disappear, captured candid moments we never saw happening, and made the album feel like a story.",
},
];
function addStyles() {
if (document.getElementById(STYLE_ID)) return;
var style = document.createElement("style");
style.id = STYLE_ID;
style.textContent =
".pps-review-carousel-sc{width:100%;max-width:100%;background:#f7f4ef;padding:50px 0;font-family:Montserrat,'Helvetica Neue',Arial,sans-serif;color:#2f2b28}" +
".pps-review-carousel-sc *{box-sizing:border-box}" +
".pps-review-carousel-sc__shell{max-width:1180px;margin:0 auto;padding:0 24px}" +
".pps-review-carousel-sc__heading{text-align:center;margin:0 0 30px}" +
".pps-review-carousel-sc__pre{color:#df7f6c;font-size:.68rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;margin:0 0 12px}" +
".pps-review-carousel-sc h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2.1rem,5vw,4rem);font-weight:400;line-height:1.02;margin:0;color:#171717}" +
".pps-review-carousel-sc__sub{font-size:clamp(.92rem,1.2vw,1.08rem);line-height:1.6;margin:12px auto 0;max-width:620px}" +
".pps-review-carousel-sc__stage{position:relative;overflow:hidden;min-height:560px;background:#111;touch-action:pan-y}" +
".pps-review-carousel-sc__slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 520ms ease;background-size:cover;background-position:center}" +
".pps-review-carousel-sc__slide.is-active{opacity:1;pointer-events:auto}" +
".pps-review-carousel-sc__slide::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,14,12,.45),rgba(16,14,12,.08) 48%,rgba(16,14,12,.25))}" +
".pps-review-carousel-sc__card{position:absolute;left:clamp(18px,5vw,70px);bottom:clamp(18px,5vw,58px);width:min(520px,calc(100% - 36px));background:rgba(255,253,249,.82);backdrop-filter:blur(8px);box-shadow:0 18px 44px rgba(0,0,0,.2);padding:clamp(20px,3vw,34px)}" +
".pps-review-carousel-sc blockquote{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.5rem,3.2vw,2.65rem);font-weight:400;line-height:1.08;margin:0;color:#2f2b28}" +
".pps-review-carousel-sc__couple{color:#5d7e8b;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:18px 0 0}" +
".pps-review-carousel-sc__dots{display:flex;justify-content:center;gap:9px;margin-top:16px}" +
".pps-review-carousel-sc__dots button{appearance:none;border:1px solid #9a887b;border-radius:999px;width:9px;height:9px;padding:0;background:transparent;cursor:pointer}" +
".pps-review-carousel-sc__dots button.is-active{background:#df7f6c;border-color:#df7f6c}" +
"@media (max-width:700px){.pps-review-carousel-sc{padding:42px 0}.pps-review-carousel-sc__shell{padding:0 16px}.pps-review-carousel-sc__stage{min-height:640px}.pps-review-carousel-sc__slide::before{background:linear-gradient(180deg,rgba(16,14,12,.18),rgba(16,14,12,.18) 45%,rgba(16,14,12,.46))}.pps-review-carousel-sc__card{left:16px;right:16px;bottom:16px;width:auto;padding:22px;background:rgba(255,253,249,.88)}}";
document.head.appendChild(style);
}
function esc(value) {
return String(value == null ? "" : value).replace(/[&<>"']/g, function (char) {
return { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[char];
});
}
function markup() {
var slides = reviews
.map(function (review, index) {
return (
'
These are the things our couples still talk about after the wedding.
' +
slides +
'
' +
dots +
"
"
);
}
function wire(root) {
if (!root || root.dataset.ppsReviewCarouselReady === "true") return;
root.dataset.ppsReviewCarouselReady = "true";
var slides = Array.prototype.slice.call(root.querySelectorAll(".pps-review-carousel-sc__slide"));
var dots = Array.prototype.slice.call(root.querySelectorAll(".pps-review-carousel-sc__dots button"));
var stage = root.querySelector(".pps-review-carousel-sc__stage");
var active = 0;
var pointerStart = null;
var timer = null;
function show(index) {
active = (index + slides.length) % slides.length;
slides.forEach(function (slide, i) {
slide.classList.toggle("is-active", i === active);
});
dots.forEach(function (dot, i) {
dot.classList.toggle("is-active", i === active);
if (i === active) dot.setAttribute("aria-current", "true");
else dot.removeAttribute("aria-current");
});
}
function restartTimer() {
if (timer) window.clearInterval(timer);
timer = window.setInterval(function () {
show(active + 1);
}, 5000);
}
dots.forEach(function (dot, index) {
dot.addEventListener("click", function () {
show(index);
restartTimer();
});
});
if (stage) {
stage.addEventListener("pointerdown", function (event) {
pointerStart = event.clientX;
});
stage.addEventListener("pointerup", function (event) {
if (pointerStart === null) return;
var distance = event.clientX - pointerStart;
pointerStart = null;
if (Math.abs(distance) > 42) {
show(active + (distance < 0 ? 1 : -1));
restartTimer();
}
});
stage.addEventListener("pointercancel", function () {
pointerStart = null;
});
}
restartTimer();
}
function findShortcodeNodes() {
var nodes = [];
if (!document.body) return nodes;
var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, {
acceptNode: function (node) {
if (!node.nodeValue || node.nodeValue.trim() !== SHORTCODE) return NodeFilter.FILTER_REJECT;
var parent = node.parentElement;
if (parent && parent.closest && parent.closest("script,style,textarea,noscript")) return NodeFilter.FILTER_REJECT;
if (parent && parent.closest && parent.closest(".pps-review-carousel-sc")) return NodeFilter.FILTER_REJECT;
return NodeFilter.FILTER_ACCEPT;
},
});
while (walker.nextNode()) nodes.push(walker.currentNode);
return nodes;
}
function mount() {
var nodes = findShortcodeNodes();
if (!nodes.length) return;
addStyles();
nodes.forEach(function (node) {
var host = node.parentElement;
while (host && host !== document.body) {
if (host.textContent && host.textContent.trim() === SHORTCODE) break;
host = host.parentElement;
}
if (!host || host === document.body) host = node.parentElement;
var wrapper = document.createElement("div");
wrapper.innerHTML = markup();
var carousel = wrapper.firstElementChild;
host.replaceWith(carousel);
wire(carousel);
});
}
function scheduleMount() {
mount();
window.setTimeout(mount, 250);
window.setTimeout(mount, 1000);
}
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", scheduleMount);
else scheduleMount();
window.addEventListener("load", scheduleMount);
try {
new MutationObserver(function () {
mount();
}).observe(document.documentElement, { childList: true, subtree: true });
} catch (error) {}
})();
Menu✕
NORTH JERSEY · NEW YORK CITY · LONG ISLAND · HUDSON VALLEY
Engagement | Monica & Mark | Brooklyn, NY
Gorgeous weather with beautiful Monica and our handsome groom Mark all dressed up for their Spring engagement session in Brooklyn, NY. Down and under Brooklyn Bridge where there are cute little cobble stone streets, we explored Brooklyn Bridge Park while snapping some cute pictures along the way.
If you are currently engaged and looking for a wedding photographer to help document one of the most amazing days in your lives, we would love to hear your plans and seeing what we can do to be a part of them!