/* One folded keepsake: a place for the next memory, not another empty chair. */
.reunion-panel,.reunion-hint{overflow-anchor:none}
.reunion-section{position:relative;isolation:isolate;overflow:hidden;padding:105px 40px 120px;background:#f5efdf;color:#fff7e7;text-align:center}
.reunion-shore,.reunion-evening{position:absolute;inset:0;z-index:-2;pointer-events:none}.reunion-shore img{width:100%;height:100%;object-fit:cover;object-position:55% center;filter:saturate(.62) brightness(.62)}
.reunion-evening{z-index:-1;background:linear-gradient(180deg,#ece1c39c 0,#3d3f3c21 18%,#d9c4aa66 46%,#f5efdf 86%)}
.reunion-section::before{content:'';position:absolute;inset:0 0 auto;height:100px;pointer-events:none;background:linear-gradient(var(--paper),transparent)}
.reunion-heading{position:relative;max-width:900px;margin:0 auto 66px;text-shadow:0 2px 20px #14272c55}.reunion-heading .scene-kicker{color:#eee4cf;font-size:10px;letter-spacing:.19em}.reunion-heading h2{font-size:clamp(43px,4.3vw,65px);line-height:1.13;margin:24px auto 0;letter-spacing:-.05em}.reunion-heading h2 em{color:#ffdfbc}.reunion-heading h2 br:nth-of-type(1){display:none}.reunion-intro{font:28px/1.35 var(--hand);color:#fff2da;margin:23px auto 0}
.reunion-keepsake{position:relative;width:min(1170px,100%);margin:auto;perspective:1900px}.keepsake-strip{position:relative;display:flex;align-items:stretch;justify-content:center;width:100%;margin:auto;filter:drop-shadow(0 20px 23px #111b2455)}
.reunion-panel{position:relative;flex:1;min-width:0;padding:13px 13px 26px;background:#fff8e8;color:#304781;border:1px solid #dfd2b1;box-shadow:inset 0 0 0 5px #fffaf0,inset 0 0 18px #9c805912;transform-origin:top center;overflow:hidden;backface-visibility:hidden;will-change:transform}
.reunion-panel:nth-child(even){background:#f7ecd7}.reunion-panel img{width:100%;height:auto;aspect-ratio:1.06;object-fit:cover;filter:saturate(.84) contrast(.96);border:1px solid #d2cbb83b}.reunion-panel figcaption{position:relative;font:25px/1.16 var(--hand);padding:17px 6px 24px;min-height:92px;overflow-wrap:anywhere}.reunion-number{position:absolute;left:14px;right:14px;bottom:11px;text-align:center;font:500 7px/1.3 var(--sans);letter-spacing:.17em;color:#9c8772;text-transform:uppercase}
.reunion-fold{position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 8px 0 15px -10px #52422e77,inset -8px 0 16px -11px #52422e99;background:linear-gradient(90deg,#fffdf527,transparent 16%,transparent 92%,#725b1920)}.reunion-panel:nth-child(even) .reunion-fold{background:linear-gradient(90deg,#725b1926,transparent 9%,transparent 92%,#fffdf548)}
.next-picture{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1.06;background:radial-gradient(ellipse at 50% 60%,#fdf8ee,#ede3cf);border:1px solid #d9c9aa80;padding:19px 9px;color:#7e513f}.next-picture p{font:33px/1.1 var(--hand);white-space:nowrap;margin:8px 0 12px}.next-picture>span:not(.next-corner){font:18px/1.25 var(--hand);color:#9c7a60}.next-picture-heart{width:54px;max-height:51px;overflow:visible;stroke:#b67458;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.next-corner{position:absolute;width:16px;height:16px;border-color:#b99e7777;border-style:solid}.corner-one{left:10px;top:10px;border-width:1px 0 0 1px}.corner-two{right:10px;top:10px;border-width:1px 1px 0 0}.corner-three{left:10px;bottom:10px;border-width:0 0 1px 1px}.corner-four{right:10px;bottom:10px;border-width:0 1px 1px 0}
.keepsake-pull,.reunion-hint{display:none}.reunion-ready .keepsake-strip{display:block;height:425px}.reunion-ready .reunion-panel{position:absolute;top:0;left:0;flex:none;width:28%;max-width:340px;min-width:270px;transform:translate3d(var(--panel-x,0px),var(--panel-y,0px),0) rotate(var(--panel-tilt,0deg)) rotateX(var(--panel-fold,0deg));opacity:var(--panel-opacity,1);z-index:calc(8 - var(--panel-index,0));filter:brightness(var(--panel-light,1))}.reunion-ready .reunion-panel:not(:first-child){pointer-events:none}.reunion-ready.is-unfolded .reunion-panel{pointer-events:auto}.reunion-ready .reunion-panel figcaption{font-size:29px;min-height:97px}
.reunion-ready .keepsake-pull{position:absolute;z-index:12;display:block;left:var(--pull-x,50%);top:var(--pull-y,340px);width:165px;height:83px;padding:0;background:none;border:0;touch-action:pan-y;color:#915843;text-align:right;transform:rotate(-4deg);transition:opacity .3s;cursor:grab}.keepsake-pull:active{cursor:grabbing}.keepsake-pull:focus-visible{outline:2px solid #fff0c7;outline-offset:7px;border-radius:3px}.pull-paper{position:absolute;right:0;top:-11px;width:67px;height:64px;background:linear-gradient(135deg,transparent 46%,#cfb991 49%,#fff9ee 51%,#f2e3c7);clip-path:polygon(0 0,100% 100%,0 100%);transform:rotate(180deg);filter:drop-shadow(-3px -4px 3px #61492922)}.pull-words{position:absolute;right:0;top:33px;width:180px;white-space:nowrap;font:23px/1 var(--hand);text-shadow:0 1px #fff8e5}.pull-words i{font-style:normal;font-size:27px;padding-left:6px}.reunion-ready .reunion-hint{display:block;font:22px/1.3 var(--hand);color:#f8e8ca;margin:30px 0 0;text-shadow:0 2px 8px #1c283455;transition:opacity .4s}.reunion-ready.is-unfolding .keepsake-pull,.reunion-ready.is-unfolded .keepsake-pull{opacity:0;pointer-events:none}.reunion-ready.is-unfolding .reunion-hint,.reunion-ready.is-unfolded .reunion-hint{opacity:0}
.reunion-wish{max-width:620px;margin:74px auto 0;font:39px/1.26 var(--hand);color:#665e55}.reunion-wish-last{font-family:var(--serif);font-size:43px;line-height:1.2;margin-top:24px;letter-spacing:-.035em;color:#2e4285}.reunion-wish-last em{font-family:var(--hand);font-size:66px;line-height:1.4;color:#a9604c}.reunion-wish>span{display:block;margin-top:22px;font:24px/1.3 var(--hand);color:#92775f}.reunion-ready:not(.is-unfolded) .reunion-wish{opacity:.0;visibility:hidden}.reunion-ready .reunion-wish{transition:opacity 1.1s,visibility 1.1s}.reunion-ready.is-unfolded .reunion-wish{opacity:1;visibility:visible}
.reunion-ready:not(.is-unfolded) .next-picture-heart path{stroke-dasharray:290;stroke-dashoffset:290}.reunion-ready.is-unfolded .next-picture-heart path{stroke-dasharray:290;stroke-dashoffset:0;transition:stroke-dashoffset 2s .2s}
@media(min-width:850px){.reunion-ready.is-unfolding .reunion-panel,.reunion-ready.is-unfolded .reunion-panel{width:25%;max-width:none;min-width:0}.reunion-ready.is-unfolding .reunion-panel figcaption,.reunion-ready.is-unfolded .reunion-panel figcaption{font-size:25px}.reunion-ready .reunion-panel img,.reunion-ready .next-picture{aspect-ratio:1.06}}
@media(max-width:849px){.reunion-section{padding:88px 27px 95px}.reunion-heading{margin-bottom:51px}.reunion-heading h2{font-size:clamp(38px,7.6vw,54px);max-width:570px}.reunion-heading h2 br:nth-of-type(1){display:block}.reunion-heading h2 em{display:block;max-width:450px;margin:auto}.reunion-heading .scene-kicker{font-size:8px;letter-spacing:.17em}.reunion-intro{font-size:25px;margin-top:21px}.reunion-keepsake{width:min(365px,100%)}.keepsake-strip{display:flex;flex-direction:column}.reunion-panel{flex:none;width:100%}.reunion-ready .reunion-panel{width:calc(100% - 16px);min-width:0;max-width:none}.reunion-panel figcaption,.reunion-ready .reunion-panel figcaption{font-size:28px;min-height:90px}.reunion-panel{padding:12px 12px 25px}.reunion-fold{box-shadow:inset 0 10px 15px -12px #594426a6,inset 0 -10px 15px -12px #59442699;background:linear-gradient(180deg,#fffdf548,transparent 15%,transparent 94%,#725b1926)}.reunion-panel:nth-child(even) .reunion-fold{background:linear-gradient(180deg,#725b1926,transparent 8%,transparent 93%,#fffdf548)}.reunion-ready .reunion-hint{font-size:20px;max-width:245px;margin:29px auto 0}.reunion-wish{font-size:34px;line-height:1.23;margin-top:45px}.reunion-wish-last{font-size:36px;margin-top:23px}.reunion-wish-last em{font-size:58px}.reunion-wish>span{font-size:22px;margin-top:20px}.reunion-shore img{object-position:55% 30%;height:1050px}.reunion-shore{background:#273a49}.reunion-evening{background:linear-gradient(180deg,#e9dcc580,transparent 170px,#26394b35 550px,#26394bed 990px,#192c3e 100%)}.next-picture p{font-size:37px}.next-picture>span:not(.next-corner){font-size:23px}.next-picture-heart{width:64px;max-height:63px}}
@media(max-width:360px){.reunion-section{padding-inline:24px}.reunion-heading h2{font-size:35px;line-height:1.13}.reunion-heading .scene-kicker{font-size:7px;letter-spacing:.13em}.reunion-intro{font-size:23px}.reunion-panel figcaption,.reunion-ready .reunion-panel figcaption{font-size:25px}.reunion-wish{font-size:30px}.reunion-wish-last{font-size:31px}.reunion-wish-last em{font-size:52px}.reunion-ready .reunion-hint{font-size:18px}.pull-words{font-size:20px}.next-picture p{font-size:31px}.next-picture>span:not(.next-corner){font-size:20px}}
@media(prefers-reduced-motion:reduce){.reunion-ready .reunion-panel{will-change:auto}.reunion-section *{transition:none!important}.reunion-ready.is-unfolded .next-picture-heart path{stroke-dashoffset:0}}
.reunion-ready .reunion-hint{color:#6f5e4e;text-shadow:0 1px 8px #fff2da55}
.reunion-ready .keepsake-pull{width:82px;height:85px}.reunion-ready .pull-words{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}
.reunion-ready:not(.is-unfolded):not(.is-unfolding) .reunion-wish{max-height:0;margin-top:0;overflow:hidden}.reunion-ready:is(.is-unfolding,.is-unfolded) .reunion-hint{height:0;margin:0;overflow:hidden}
.reunion-heading h2{word-spacing:.045em}.reunion-heading h2:focus{outline:none}.reunion-section.has-long-keepsake .reunion-panel figcaption{font-size:23px;line-height:1.35}
@media(max-width:849px){.reunion-shore{background:#f5efdf}.reunion-evening{background:linear-gradient(180deg,#e9dcc580,transparent 170px,#d5bda25c 550px,#f5efdf 1030px,#f5efdf 100%)}.reunion-section.is-unfolded .reunion-evening{background:linear-gradient(180deg,#e9dcc580,transparent 170px,#e3cbb180 570px,#f5efdf 990px,#f5efdf 100%)}}
.card-preview .reunion-section .keepsake-pull,.card-preview .reunion-section .reunion-hint{display:none}.card-preview .reunion-section .reunion-wish{opacity:1;visibility:visible}
