/* Curved photographic ribbon: real portfolio imagery, scroll-linked travel. */
.dusk #weddings.ribbon-section{padding:0;height:200svh;position:relative;background:#eae5da;color:#29291f;border:0;transform:none;opacity:1}
.ribbon-stage{position:sticky;top:0;min-height:720px;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:30px}
.ribbon-heading{text-align:center;padding:25px 20px 0;position:relative;z-index:3}
.ribbon-heading .eyebrow{font-size:9px;letter-spacing:.24em;color:#797361}
.ribbon-heading h2{font-size:clamp(65px,7vw,108px);line-height:1.02;margin:14px 0 16px}
.ribbon-heading h2 em{font-weight:400;color:#766343}
.ribbon-heading p{font-size:10px;letter-spacing:.08em;color:#797366}
.ribbon-viewport{position:relative;height:clamp(270px,39vh,440px);width:100%;perspective:1200px;perspective-origin:50% 50%;touch-action:pan-y;cursor:grab;user-select:none}
.ribbon-viewport.dragging{cursor:grabbing}
.ribbon-track{position:absolute;inset:0;transform-style:preserve-3d}
.ribbon-card{position:absolute;left:50%;top:50%;margin-left:calc(clamp(180px,20.5vw,300px) / -2);height:100%;padding:0;border:0;border-radius:1px;overflow:hidden;will-change:transform;backface-visibility:hidden;box-shadow:0 12px 35px #43371912;cursor:inherit;transform-style:preserve-3d;background:#c1bba9}
.ribbon-card img{height:100%;width:100%;object-fit:cover;pointer-events:none;transition:filter .4s;filter:saturate(.88)}
.ribbon-card:hover img,.ribbon-card:focus-visible img{filter:saturate(1.05)}
.ribbon-caption{position:absolute;inset:auto 0 0;text-align:left;padding:45px 17px 20px;background:linear-gradient(transparent,#130f0ddb);color:#fff3de;opacity:0;transition:opacity .3s;pointer-events:none}
.ribbon-card:hover .ribbon-caption,.ribbon-card:focus-visible .ribbon-caption{opacity:1}
.ribbon-caption strong{font:26px 'Cormorant Garamond',Georgia,serif;font-weight:400;display:block}
.ribbon-caption small{font:9px Manrope,Arial,sans-serif;letter-spacing:.09em;margin-top:8px;display:block}
.ribbon-caption i{float:right;font-size:16px;font-style:normal}
.ribbon-hint{pointer-events:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:120;font-size:8px;letter-spacing:.1em;padding:21px 14px;background:#eae5daec;border:1px solid #fff8e9;border-radius:50%;width:82px;height:82px;display:grid;place-items:center;text-align:center;line-height:1.8;box-shadow:0 10px 30px #0002;transition:opacity .25s}
.ribbon-viewport:hover .ribbon-hint,.ribbon-viewport.dragging .ribbon-hint{opacity:0}
.ribbon-footer{display:flex;align-items:center;flex-direction:column;gap:22px;padding:10px 20px 25px;position:relative;z-index:2}
.ribbon-footer>a{font-size:11px;border-bottom:1px solid #93876f;padding-bottom:10px}
.ribbon-footer>a span{margin-left:28px;font-size:17px}
.ribbon-arrows{display:flex;align-items:center;gap:30px;color:#6d6654}
.ribbon-arrows button{border:1px solid #b2a993;border-radius:50%;width:38px;height:38px;font-size:18px}
.ribbon-arrows span{font-size:8px;letter-spacing:.18em}
@media(max-width:600px){.ribbon-stage{min-height:690px;gap:32px}.ribbon-heading h2{font-size:64px}.ribbon-viewport{height:310px;perspective:950px}.ribbon-caption{opacity:1}.ribbon-caption strong{font-size:23px}.ribbon-heading{padding-top:5px}.ribbon-heading .eyebrow{font-size:8px}.ribbon-hint{width:66px;height:66px;font-size:7px;padding:14px}.ribbon-footer{gap:18px}}
@media(prefers-reduced-motion:reduce){.dusk #weddings.ribbon-section{height:auto}.ribbon-stage{position:relative}}
