@font-face{font-family:Allura;src:url('../assets/fonts/Allura-Regular.ttf') format('truetype');font-display:swap;font-style:normal;font-weight:400}
@font-face{font-family:Cormorant;src:url('../assets/fonts/CormorantGaramond.ttf') format('truetype');font-display:swap;font-style:normal;font-weight:300 700}
h1,h2,.milestone h3{font-family:Cormorant,Georgia,serif;font-weight:500;letter-spacing:-.025em}
.hero-copy h2{font-size:clamp(58px,6.8vw,96px);line-height:1.02}
.hero-copy h2 em{display:inline-block;font-family:Allura,'Palatino Linotype',Georgia,serif;font-style:normal;font-weight:400;font-size:1.38em;line-height:.95;color:#923e59;letter-spacing:0;position:relative;padding:0 .07em .14em 0;margin-top:.05em}
.hero-copy h2 em:after{content:'';position:absolute;left:4%;bottom:.02em;width:86%;height:9px;border-bottom:2px solid #ba7a6577;border-radius:50%;transform:rotate(-4deg);transform-origin:left}
.opening-name{font-family:Allura,Georgia,serif;font-style:normal;font-size:clamp(44px,6vw,64px);line-height:1.1;letter-spacing:0}
.brand{font-family:Allura,Georgia,serif;font-style:normal;font-size:32px;line-height:1}
.signature{font-family:Allura,Georgia,serif;font-size:32px;line-height:1.3}.frame-note{font-family:Allura,Georgia,serif;font-style:normal;font-size:32px;left:24px;bottom:75px}.polaroid .caption{font-family:Cormorant,Georgia,serif;font-style:normal;font-weight:500;font-size:22px}
.js .motion{opacity:0;translate:0 24px;transition:opacity .85s cubic-bezier(.2,.7,.2,1),translate .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}
.js .motion.visible{opacity:1;translate:0 0}
.hero-copy h2.visible em:after{animation:love-stroke 1s .5s both cubic-bezier(.2,.7,.2,1)}
.opening-name{animation:love-name 1.1s .3s both cubic-bezier(.2,.7,.2,1)}
.hero-frame{transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s,opacity .85s,translate .85s;transition-delay:0ms}
@media(hover:hover){.hero-frame:hover{transform:rotate(0deg) translateY(-4px);box-shadow:0 26px 60px #7a3c4325}.polaroid.motion{transition:transform .35s,box-shadow .35s,opacity .85s,translate .85s;transition-delay:0ms}}
.cake.out{animation:wish-settle .75s both}
@keyframes love-stroke{from{scale:0 1;opacity:0}to{scale:1 1;opacity:1}}
@keyframes love-name{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes wish-settle{0%{translate:0 0}35%{translate:0 -5px}100%{translate:0 0}}
@media(max-width:600px){.hero-copy h2{font-size:clamp(50px,13.5vw,66px)}.hero-copy h2 em{font-size:1.45em;padding-bottom:.18em}.opening-name{font-size:52px}.brand{font-size:29px}.polaroid .caption{font-size:19px}.frame-note{font-size:29px;left:20px}}
@media(prefers-reduced-motion:reduce){.js .motion{opacity:1;translate:none;transition:none}.hero-copy h2.visible em:after,.opening-name,.cake.out{animation:none}.hero-frame{transition:none}}
#hero-photo{object-position:50% 42%;filter:none;animation:none}.hero-frame{height:auto;aspect-ratio:4 / 5;overflow:hidden}.hero-frame #hero-photo{height:100%}@media(max-width:600px){.hero-frame{height:auto;aspect-ratio:4 / 5}}
.gallery{display:block;column-count:4;column-gap:28px;padding-top:18px}.gallery .polaroid{display:inline-block;break-inside:avoid;width:100%;margin:0 0 34px;vertical-align:top}.gallery .polaroid img,.gallery .polaroid:nth-child(3n+2) img{height:auto;aspect-ratio:auto;object-fit:contain;filter:none}.gallery .polaroid:nth-child(3n){margin-top:0}.gallery .polaroid:nth-child(7n+1):after{top:-22px;font-size:46px}@media(max-width:900px){.gallery{column-count:3;column-gap:22px}}@media(max-width:600px){.gallery{column-count:2;column-gap:18px}.gallery .polaroid{margin-bottom:26px}.gallery .polaroid .caption{font-size:17px}.gallery .polaroid:nth-child(7n+1):after{font-size:36px;top:-19px}}
.milestone img{height:auto;max-height:none;object-fit:contain;width:100%;filter:none}
.milestone:first-child img{max-width:280px;margin:20px auto 0;height:auto}@media(max-width:600px){.milestone:first-child img{max-width:230px}}
.milestone:nth-child(2) img{max-width:280px;margin:20px auto 0;height:auto}@media(max-width:600px){.milestone:nth-child(2) img{max-width:230px}}
.milestone .date{font-size:9px;letter-spacing:.1em}.milestone:first-child{padding:18px 24px}.milestone:first-child h3{font-size:25px;margin:8px 0}.milestone:first-child p{font-size:13px;margin-top:8px}
.milestone:first-child{align-self:start;min-height:0;height:auto;padding:18px 24px}.milestone:first-child p{margin-bottom:0}
.milestone:last-child img{max-width:300px;margin:20px auto 0;height:auto}@media(max-width:600px){.milestone:last-child img{max-width:250px}}
.milestone:nth-child(3) img{max-width:280px;margin:20px auto 0;height:auto}@media(max-width:600px){.milestone:nth-child(3) img{max-width:230px}}
.finale figure{height:auto;border-radius:12px;overflow:hidden;padding:10px;background:#fffdf7;border:1px solid #ad7a4420}.finale #closing-photo{height:auto;width:100%;object-fit:contain;border-radius:6px;filter:none}@media(max-width:600px){.finale figure{height:auto;width:100%}}
.counter-section .counter{max-width:680px;margin:40px auto 25px;padding:30px 20px;background:#fffdf7;border:1px solid #b3856133;border-radius:14px;box-shadow:0 12px 40px #873d5308;gap:clamp(20px,4vw,55px)}.counter-section #counter-note{max-width:570px;margin:24px auto 0;color:#91435a;font-family:Cormorant,Georgia,serif;font-size:24px;line-height:1.5}.counter-section .counter strong{font-family:Cormorant,Georgia,serif;font-weight:500;color:#873d53}@media(max-width:600px){.counter-section .counter{gap:20px;padding:25px 12px}.counter-section #counter-note{font-size:21px}}
