/* Второй проход: рельефные миниатюры и более мягкая пластика движения. */
.portrait-section{margin-top:-42vh}
.portrait-heading.reveal{opacity:0;transition:transform 1.55s cubic-bezier(.22,.61,.36,1)}
.portrait-heading.reveal.visible{opacity:var(--portrait-clear,1)}
.event-art{max-width:370px;color:#929d82;filter:grayscale(1) drop-shadow(0 9px 13px #6870520b)}
.event-art svg{shape-rendering:geometricPrecision}
.event-art:has(.event-sketch){max-width:440px;filter:none;opacity:var(--event-progress);transform:translateY(calc((1 - var(--event-progress))*28px))}
.event-sketch{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;transform:scale(calc(.96 + var(--event-progress)*.04));transform-origin:center bottom}
.event-signature .event-sketch{transform:translateX(calc((1 - var(--event-progress))*-14px)) rotate(calc((1 - var(--event-progress))*-2deg))}
.event-doors .event-sketch{transform:scale(calc(.92 + var(--event-progress)*.08))}
.event-table .event-sketch{transform:translateY(calc((1 - var(--event-progress))*16px)) rotate(calc((1 - var(--event-progress))*1.5deg))}
.chapel-relief,.chapel-details,.certificate-ornament,.certificate-bouquet{opacity:var(--event-progress)}
.chapel-relief{transform:translateY(calc((1 - var(--event-progress))*6px))}
.door-left{transform-origin:93px 147px;transform:perspective(480px) rotateY(calc(var(--event-progress)*-58deg))}
.door-right{transform-origin:187px 147px;transform:perspective(480px) rotateY(calc(var(--event-progress)*58deg))}
.door-branches{transform:translateY(calc((1 - var(--event-progress))*8px));opacity:calc(.25 + var(--event-progress)*.75)}
.signature-pen{opacity:calc(1 - var(--event-progress)*.3)}
.table-fabric{opacity:calc(var(--event-progress)*.6)}
.table-flowers{opacity:var(--event-progress);transform:translateY(calc((1 - var(--event-progress))*-10px))}
.table-setting{opacity:var(--event-progress);transform:translateY(calc((1 - var(--event-progress))*-5px))}
.butterfly-flight{position:absolute;inset:0;perspective:600px;transform-style:preserve-3d;animation:butterfly-glide 8s cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
.butterfly-wing{animation-duration:3.6s;animation-timing-function:cubic-bezier(.45,0,.55,1);animation-direction:normal}
.butterfly-body{position:absolute;inset:0;z-index:3;clip-path:polygon(34% 0,66% 0,54% 33%,53% 100%,47% 100%,46% 33%);pointer-events:none}
.butterfly-body img{display:block;width:100%;height:auto}
.opening-butterfly{filter:drop-shadow(2px 9px 9px #37382f1f)}
@keyframes wing-beat-left{0%,100%{transform:rotateY(-7deg)}50%{transform:rotateY(72deg)}}
@keyframes wing-beat-right{0%,100%{transform:rotateY(7deg)}50%{transform:rotateY(-72deg)}}
@keyframes butterfly-glide{0%,100%{transform:translate3d(-10px,8px,0) rotate(-5deg)}25%{transform:translate3d(5px,-12px,0) rotate(2deg)}50%{transform:translate3d(13px,-4px,0) rotate(5deg)}75%{transform:translate3d(-3px,12px,0) rotate(-2deg)}}
.grand-copy{will-change:opacity,transform;filter:none}
@media(max-width:700px){.event-art{max-width:255px}}
@media(max-width:700px){.event-art:has(.event-sketch){max-width:340px}}
@media(prefers-reduced-motion:reduce){.event-art:has(.event-sketch){opacity:1;transform:none}.event-sketch,.event-signature .event-sketch,.event-doors .event-sketch,.event-table .event-sketch{transform:none}}
@media(prefers-reduced-motion:reduce){.portrait-section{margin-top:0}.portrait-heading.reveal{opacity:1;transition:none}.butterfly-flight,.butterfly-wing{animation:none}.chapel-relief,.door-branches{transform:none}.chapel-relief,.chapel-details,.certificate-ornament,.certificate-bouquet{opacity:1}}
