.heart{width:min(700px,100%);aspect-ratio:1.6;height:auto;margin:30px auto;position:relative}.heart canvas{width:100%;height:100%;inset:0;position:absolute;touch-action:none;border-radius:4px;filter:drop-shadow(0 8px 12px #4d231722)}.heart .hidden-date{position:absolute;inset:0;padding:20px;background:#eee2c9;border:1px solid #b99b72;display:flex;align-items:center;justify-content:center;flex-direction:column}.heart .hidden-date .revealed-day{font-size:12cqw}.heart .hidden-date .revealed-month{font-size:5cqw}.heart .hidden-date .revealed-year{font-size:7cqw}.heart:before{display:none}.reveal{background:#eee3cb}.heart canvas.revealed{opacity:0;pointer-events:none}.photo-placeholder{background:linear-gradient(145deg,#ece1d0,#f9f4eb);color:#916264;border:1px solid #c8b192;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;min-height:260px}.photo-placeholder span{font-family:var(--script);font-size:32px}.photo-placeholder small{font:11px var(--sans);letter-spacing:.13em;margin-top:20px}.celebrations .event-invitation{background-image:none!important;background-color:#f7eddd;flex-basis:calc((100% - 36px)/2);max-width:470px;border:1px solid #c8b192;box-shadow:inset 0 0 0 8px #f7eddd,inset 0 0 0 9px #c8b192;min-height:650px}.celebrations .event-invitation:before{content:'✧';position:absolute;top:4%;left:0;right:0;font-size:45px;color:#ab8960}.celebrations .event-invitation .event-copy{inset:15% 11% 9%;justify-content:center}.celebrations .event-venue{font-size:clamp(15px,4.3cqi,20px);line-height:1.5}.celebrations .event-copy h3{font-size:clamp(30px,9cqi,43px)}.event-copy .pill{margin-top:20px}.family-closing{max-width:600px;margin:22px auto}.story .chapters p{margin-top:12px}@media(max-width:760px){.celebrations .event-invitation{min-height:610px;flex-basis:auto}.heart{width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Let the page's continuous ivory background show around the red paper. */
#reveal{background:transparent}
#reveal .heart{aspect-ratio:1681/936;background:transparent;box-shadow:none;border:0}
#reveal .heart .hidden-date{background:transparent;border:0;box-shadow:none;filter:none;padding:12% 8%}
#reveal .heart canvas{border:0;border-radius:0;background:transparent;filter:drop-shadow(0 7px 9px #4d23171a)}

/* Blush torn-paper keepsake revealed beneath the scratch coating. */
#reveal .heart .hidden-date{isolation:isolate;padding:10% 7%;gap:0;filter:drop-shadow(0 6px 7px #70544810)}
#reveal .heart .hidden-date::before{content:'';position:absolute;inset:2% 1%;z-index:-1;background:radial-gradient(ellipse at 22% 30%,#f7eee360,transparent 60%),radial-gradient(ellipse at 75% 80%,#bfa19825,transparent 58%),linear-gradient(115deg,#e6cfc2,#eee0d2 50%,#dfc5ba);clip-path:polygon(1% 5%,4% 3%,7% 4%,10% 2%,13% 4%,16% 3%,19% 5%,23% 3%,27% 4%,31% 2%,35% 4%,39% 3%,43% 5%,47% 3%,51% 4%,55% 2%,59% 4%,63% 3%,67% 5%,71% 3%,75% 4%,79% 2%,83% 4%,87% 3%,91% 4%,95% 3%,98% 5%,99% 12%,98% 20%,99% 28%,98% 37%,100% 46%,98% 55%,99% 64%,98% 73%,99% 82%,98% 94%,95% 97%,91% 96%,87% 98%,83% 96%,79% 98%,75% 96%,71% 97%,67% 95%,63% 98%,59% 96%,55% 98%,51% 96%,47% 97%,43% 95%,39% 98%,35% 96%,31% 98%,27% 96%,23% 97%,19% 95%,15% 98%,11% 96%,7% 98%,4% 95%,1% 92%,0% 85%,1% 76%,0% 68%,1% 60%,0% 52%,1% 44%,0% 36%,1% 28%,0% 20%)}
#reveal .heart .hidden-date span{color:#681f2c}
#reveal .heart .hidden-date .reveal-weekday{font:500 clamp(9px,1.45cqw,12px)/1.5 var(--sans);letter-spacing:.3em;margin:0 0 3.4cqw;text-indent:.3em}
#reveal .heart .hidden-date .reveal-full-date{font:600 clamp(25px,7.4cqw,54px)/1.12 var(--serif);letter-spacing:-.035em;white-space:nowrap}
#reveal .heart .hidden-date .reveal-caption{font:400 clamp(24px,5.2cqw,39px)/1.3 var(--script);margin-top:3cqw;letter-spacing:0}


/* One continuous celebration sequence: mobile stack, desktop pairs. */
#celebrations{padding-inline:clamp(12px,4vw,70px)}
.celebration-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,44px);max-width:1240px;margin:auto;align-items:start}
.celebration-page{position:relative;container-type:inline-size;margin:0;background:#f6eddf;border-radius:6px;overflow:hidden;box-shadow:0 10px 25px #55352616;border:1px solid #aa876c35}
.celebration-page>img{display:block;width:100%;height:auto;object-fit:contain}
.celebration-actions{position:absolute;left:0;right:0;padding:0;text-align:center;background:transparent;z-index:1}
#celebration-page-0 .celebration-actions{top:62.3%}
#celebration-page-1 .celebration-actions{top:65.3%}
#celebration-page-3 .celebration-actions{top:69%}
.celebration-actions .pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 20px;border:1px solid #b08a64;border-radius:999px;background:#681f2c;color:#fff8eb;font:500 clamp(8px,1.7cqw,11px)/1.4 var(--sans);letter-spacing:.1em;box-shadow:0 3px 8px #55232120}
.celebration-actions .pill:hover{background:#501722}
.celebration-actions .pill:focus-visible{outline:2px solid #681f2c;outline-offset:3px}
@media(max-width:760px){.celebration-pages{grid-template-columns:minmax(0,1fr);max-width:580px;gap:28px}}
@media(max-width:380px){.celebration-actions .pill{min-height:32px;padding:7px 14px;letter-spacing:.07em}}
/* Use the coating's own alpha silhouette for an exactly aligned underlayer. */
#reveal .heart .hidden-date{inset:0;filter:none;animation:none;visibility:hidden;-webkit-mask-image:url('scratch-paper.png');mask-image:url('scratch-paper.png');-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-mode:alpha}
#reveal .heart.scratch-ready .hidden-date{visibility:visible}
#reveal .heart .hidden-date::before{inset:0;clip-path:none}
