/* Reference measurements: 10px-root equivalents, scoped to the intro. */
.wedding-intro{display:none;position:fixed;inset:0;z-index:30;overflow:hidden;background:#f5f2ed;color:#232323;font:300 26px/1.15 "BerlingskeSerif","Berlingske Serif",var(--serif);letter-spacing:0}
.intro-enabled .wedding-intro{display:block}
.intro-enabled{overflow:hidden}
.intro-enabled .hero-image,.intro-enabled .hero h1 span{animation-play-state:paused}
.intro-art{position:absolute;top:50%;left:50%;width:min(88vw,480px,75svh);transform:translate(-50%,-50%)}
.intro-art svg{display:block;width:100%;height:auto;overflow:visible}
.intro-art .trace-ink path{stroke-dasharray:1;stroke-dashoffset:var(--from,1)}
.intro-running .trace-ink path{animation:trace-line calc(var(--duration) * 1.14) cubic-bezier(.42,0,.32,1) calc(var(--start) * 1.14) both}
.intro-progress{position:absolute;top:30px;left:50%;transform:translateX(-50%);height:100px;clip-path:polygon(0 0,100% 0,100% 40px,0 40px);font:inherit;letter-spacing:0}
.intro-progress-number{height:50px;display:flex;align-items:center;font-variant-numeric:tabular-nums}
.intro-progress-percent{position:absolute;bottom:30px;right:50%;transform:translateX(50%);font:inherit}
.intro-running .intro-art,.intro-running .intro-progress,.intro-running .intro-progress-percent{animation:intro-quiet .35s ease-out 2.61s forwards}
.intro-skip{position:absolute;bottom:24px;right:30px;z-index:10;color:inherit;background:transparent;border:0;padding:8px;font-size:14px;opacity:0}
.intro-skip:focus-visible{opacity:1;outline:1px solid currentColor}
.intro-photo-blast{position:absolute;inset:0;pointer-events:none;z-index:2}
 .blast-card{position:absolute;left:50%;top:50%;width:min(29vw,330px);height:min(40vw,440px);opacity:0;transform:translate(-50%,-50%);background:var(--paper);padding:7px;box-shadow:0 8px 36px #29291f18;will-change:transform,opacity}
.blast-card img{width:100%;height:100%;object-fit:cover;display:block}
.blast-one{--delay:2.96s;--x:-30px;--y:8px;--angle:-8deg}
.blast-two{--delay:3.16s;--x:29px;--y:-18px;--angle:7deg}
.blast-three{--delay:3.36s;--x:-9px;--y:12px;--angle:-4deg}
.blast-four{--delay:3.56s;--x:14px;--y:-9px;--angle:4deg}
.blast-five{--delay:3.76s;--x:-22px;--y:6px;--angle:-6deg}
.blast-six{--delay:3.96s;--x:21px;--y:-13px;--angle:5deg}
.blast-card img{object-position:50% 40%}.blast-six img{object-position:50% 32%}
.intro-running .blast-card{animation:photo-land .240602s cubic-bezier(.16,1,.3,1) var(--delay) both}
.intro-running .blast-six{animation:photo-land .240602s cubic-bezier(.16,1,.3,1) var(--delay) both,photo-open 1.4s cubic-bezier(.76,0,.24,1) 4.91s forwards}
.intro-running .wedding-intro{animation:intro-depart .35s ease-out 5.96s both}
@keyframes trace-line{from{stroke-dashoffset:var(--from,1)}to{stroke-dashoffset:0}}
@keyframes intro-quiet{to{opacity:0}}
@keyframes photo-land{from{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y) + 35px)) rotate(calc(var(--angle) - 5deg)) scale(.88)}to{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--angle)) scale(1)}}
@keyframes photo-open{to{width:100vw;height:100dvh;padding:0;box-shadow:none;transform:translate(-50%,-50%) rotate(0deg) scale(1)}}
@keyframes intro-depart{to{opacity:0;visibility:hidden}}
@media(min-width:650px){.wedding-intro{font-size:30px}}
@media(min-width:768px){.intro-art{width:min(60vw,680px,75svh)}.intro-progress{top:50%;left:40px;transform:translateY(-50%)}.intro-progress-percent{bottom:50%;right:30px;transform:translateY(50%)}}
@media(min-width:1024px){.wedding-intro{font-size:35px}}
@media(prefers-reduced-motion:reduce){.wedding-intro,.intro-enabled .wedding-intro{display:none}.intro-enabled{overflow:auto}}

.intro-progress-number{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.intro-reels{display:flex;height:100px}.intro-reel{display:flex;flex-direction:column}.intro-reel>span,.intro-hundred{height:50px;display:flex;align-items:center;justify-content:center}
.intro-hundred{display:none}.intro-running .intro-reel{animation:counter-roll 2.28s cubic-bezier(.42,0,.32,1) .17s both}.intro-running .intro-reel:last-child{animation-delay:.1s}
.intro-progress.is-complete .intro-reels{display:none}.intro-progress.is-complete .intro-hundred{display:flex}
@keyframes counter-roll{to{transform:translateY(-350px)}}

@media(max-width:767px){.blast-card{width:55vw;height:75vw;max-height:60svh}.blast-six{max-height:none}}

/* Reveal the supplied artwork without redrawing its contours. */
.intro-art svg{mix-blend-mode:multiply}
.trace-complete{opacity:0}
.intro-running .trace-complete{animation:complete-art 0s 2.46s forwards}
@keyframes complete-art{to{opacity:1}}
