/* white_ivory (classic, ink and wash leaf sprays): drawn section pieces + the signature treatment of each section's own
   content, on top of the motion kit (generated by src/white_ivory/gen.py). Plain rules = the final state (reduced motion). */
body.sc-white_ivory{--wi-e:cubic-bezier(.23,1,.32,1);--wi-corner:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M17 14q1.5-2.5 4-3.5q2.5-1 6-1q3 .5 6 1q3 .5 6 1.5l0 0q-3 1.5-6 2.5q-2.5 1.5-6 2.5q-3 .5-6 0q-2.5-1-4-3z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M32.5 26.5q2 1 2.5 3.5q.5 2 0 5q-.5 2.5-1.5 5q-1 2.5-2 5l0 0q-.5-2.5-1.5-5q-.5-2.5-.5-5q-.5-3 .5-5q.5-2.5 2.5-3.5z' fill='%23D9DBD5' fill-opacity='.8'/%3E%3Cpath d='M44.5 40.5q1.5-1.5 3.5-1.5q2.5 0 5 1q2 1 4 2.5q2 1 4.5 2.5l0 0q-3 0-5.5.5q-2 0-5 0q-2.5-.5-4.5-1.5q-1.5-1.5-2-3.5z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cpath d='M45 41q8 2 15 3.5' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cpath d='M55.5 59q2 1 2 2.5q.5 2-.5 4q-1 2.5-2 4q-1 2-2.5 3.5l0 0q0-2-.5-4q0-2 0-4q0-2.5 1-4q1-1.5 2.5-2z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M58.5 64q2 0 3.5 1.5q1 1 2 3.5q.5 2 1 4q0 2 .5 4l0 0q-1.5-1.5-3-3q-1.5-1.5-3-3q-1-2-1.5-3.5q0-2 .5-3.5z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M20 6q0-2 1-3.5q1-1.5 3-3q2-1 4-2q2-1 4-2l0 0q-1 2.5-2 4.5q-1.5 1.5-3 3.5q-1.5 2-3.5 2.5q-1.5 1-3.5 0z' fill='%23E4BBAA' fill-opacity='.7'/%3E%3Cpath d='M20.5 5.5q5.5-4.5 11-9' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cpath d='M51.5 11q1.5-.5 3 .5q1 1 2.5 2.5q1 2 1.5 3.5q.5 2 1 4l0 0q-1.5-1-3-2q-1.5-1-3-2.5q-1-1.5-2-3q-.5-1.5 0-3z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cpath d='M52 11.5q3.5 4.5 7 9' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cpath d='M55.5 12q1-1.5 2.5-1.5q2 0 3.5.5q2 1 3.5 2q1.5 1 3.5 2l0 0q-2 0-4 0q-2 .5-4 0q-2 0-3.5-1q-1-.5-1.5-2z' fill='%23E4BBAA' fill-opacity='.7'/%3E%3Cpath d='M56 12q6 1.5 11.5 2.5' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cg fill='none' stroke='%232F302C' stroke-width='0.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6q20 14 29 24q9 10 23 34' stroke-width='0.8'/%3E%3Cpath d='M16 13q1-3 3.5-4q2.5-1 6-1q3.5 0 6.5.5q3 .5 6 1l0 0q-3 2-5.5 3.5q-3 1.5-6.5 2.5q-3 1-6 .5q-2.5-.5-4-3'/%3E%3Cpath d='M16.5 13q10.5-1.5 20-3' stroke-width='.7'/%3E%3Cpath d='M23.5 12q1.5-2 3.5-3.5m-3.5 3.5q1.5 1.5 4 2.5m1-3q1.5-2 3-3.5m-3 3.5q1.5 1.5 3.5 2.5' stroke-width='.5' stroke-opacity='.55'/%3E%3Cpath d='M31 25.5q2 1 3 3.5q.5 2 0 5q0 3-1 5.5q-1 2.5-2 5l0 0q-.5-2.5-1.5-5q-.5-2.5-1-5q-.5-3 0-5.5q.5-2 2.5-3.5'/%3E%3Cpath d='M31 26.5q.5 8.5 0 16.5' stroke-width='.7'/%3E%3Cpath d='M54.5 58q1.5 1 2 3q.5 1.5-.5 4q-.5 2-1.5 4q-1 2-2.5 4l0 0q-.5-2.5-.5-4.5q-.5-2-.5-4q0-2.5.5-4q1-2 3-2.5'/%3E%3Cpath d='M54.5 58.5q-1 7-2 13' stroke-width='.7'/%3E%3Cpath d='M57.5 63q2 0 3 1.5q1.5 1 2.5 3q1 2.5 1.5 4.5q0 2 .5 4l0 0q-1.5-1.5-3-2.5q-1.5-1.5-3-3.5q-1.5-1.5-2-3.5q-.5-2 .5-3.5'/%3E%3Cpath d='M57.5 63.5q4 6 7 11.5' stroke-width='.7'/%3E%3Cpath d='M6 6q24 0 50 6' stroke-width='0.7'/%3E%3C/g%3E%3C/svg%3E");--wi-ring:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M7 24a17 17 0 1 0 34 0a17 17 0 1 0-34 0z' fill='%23FDFDFB'/%3E%3Cpath d='M15 38.5q1 1 .5 2.5q0 1.5-.5 3q-1 1.5-2 2.5q-1 1.5-2.5 2.5l0 0q0-1.5 0-3q.5-2 .5-3.5q.5-1.5 1.5-3q1-1 2.5-1z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M36 38.5q1 0 2 1.5q1 1 1 3q0 1.5 0 3q0 2 0 3.5l0 0q-1-1.5-2-2.5q-1-1.5-2-3q-.5-2-.5-3q0-1.5 1.5-2.5z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cg fill='none' stroke='%232F302C' stroke-width='0.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 24a17 17 0 1 0 34 0a17 17 0 1 0-34 0z'/%3E%3Cpath d='M10 24a14 14 0 1 0 28 0a14 14 0 1 0-28 0z' stroke-width='.5' stroke-opacity='.6'/%3E%3Cpath d='M13.5 37.5q1 1 1 2.5q0 1.5-.5 3q-1 2-2 3q-1 1.5-2 3l0 0q-.5-2-.5-3.5q0-2 .5-3.5q0-2 1-3q1-1.5 2.5-1.5'/%3E%3Cpath d='M13.5 38q-2 5-3.5 10' stroke-width='.7'/%3E%3Cpath d='M12.5 41.5q.5 1 1 2m-1-2q-1.5.5-2.5 1m1.5 1.5q.5 1 1 2m-1-2q-1 .5-2 1' stroke-width='.5' stroke-opacity='.55'/%3E%3Cpath d='M34.5 37.5q1.5 0 2.5 1.5q1 1 1 3q.5 1.5.5 3.5q0 1.5-.5 3.5l0 0q-1-1.5-2-3q-1-1-2-3q-.5-1.5-.5-3q0-1.5 1-2.5'/%3E%3Cpath d='M34.5 38q2 5 3.5 10' stroke-width='.7'/%3E%3Cpath d='M35.5 41.5q1.5.5 2.5 1m-2.5-1q-.5 1-1 2m2 .5q1 .5 2 1m-2-1q-.5 1-1 2' stroke-width='.5' stroke-opacity='.55'/%3E%3C/g%3E%3C/svg%3E");--wi-edge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 50'%3E%3Cpath d='M75.5 33q0 3-2 5q-2 2.5-5 3.5q-3.5 1.5-6.5 2q-3 .5-6 1.5l0 0q2-3 4-5.5q2-2.5 4.5-5q3-2 5.5-2.5q3-.5 5.5 1z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M54 29.5q-2.5 0-4.5-1q-1.5-1.5-3-4q-1.5-2-2-4.5q-.5-2.5-1.5-5.5l0 0q2 1.5 4 3q2 1.5 4 3.5q2 2 3 4q.5 2 0 4.5z' fill='%23D9DBD5' fill-opacity='.8'/%3E%3Cpath d='M33 24q-.5 2.5-2.5 3.5q-1.5 1.5-4.5 2q-2.5 1-5 1q-2 .5-5 .5l0 0q2-2 4-3.5q2-1.5 4.5-3q2.5-1.5 4.5-1.5q2.5 0 4 1z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cpath d='M32 24.5q-7.5 3-14.5 6' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cpath d='M14 17q-1.5.5-3-1q-1.5-1.5-2.5-3.5q-1-2.5-1.5-4.5q-.5-2-.5-4.5l0 0q1.5 1.5 3 3q1.5 1.5 3 3q1.5 2 2 4q.5 2-.5 3.5z' fill='%23E4BBAA' fill-opacity='.7'/%3E%3Cpath d='M14 16.5q-4-6-7-12' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cpath d='M8 15q-1.5 1.5-3 1q-2 0-4-1.5q-2-1-3.5-2.5q-1.5-1.5-3-3l0 0q2.5.5 4.5.5q2 .5 4 1q2 .5 3.5 1.5q1.5 1.5 1.5 3z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cg fill='none' stroke='%232F302C' stroke-width='0.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M86 34q-26-4-40-7q-14-3-40-13' stroke-width='0.8'/%3E%3Cpath d='M74 32q.5 3.5-1.5 5.5q-2 2.5-5 4q-3.5 1.5-6.5 2q-3 1-6.5 2l0 0q2-3.5 4-6q2-3 4.5-5q3-2.5 5.5-3.5q3-.5 5.5 1'/%3E%3Cpath d='M73.5 32.5q-9.5 6-17.5 11.5' stroke-width='.7'/%3E%3Cpath d='M67.5 36.5q-.5 2.5-1.5 5m1.5-5q-2.5-1-5-1m.5 3.5q-.5 3-1.5 5.5m1.5-5.5q-2.5-.5-5-.5' stroke-width='.5' stroke-opacity='.55'/%3E%3Cpath d='M52.5 28.5q-2.5.5-4.5-.5q-2-1.5-3.5-4q-1.5-2.5-2-5q-1-2.5-2-5l0 0q2.5 1.5 4.5 2.5q2 1.5 4.5 3.5q2 2 3 4q1 2 0 4.5'/%3E%3Cpath d='M52 28q-5.5-6.5-10.5-13' stroke-width='.7'/%3E%3Cpath d='M6.5 14.5q-1 1-3 1q-2-.5-4-1.5q-2-1-3.5-2.5q-1.5-1-3.5-2.5l0 0q2.5 0 4.5 0q2 0 4 .5q2.5.5 4 2q1.5 1 1.5 3'/%3E%3Cpath d='M6 14q-6.5-2.5-12.5-4.5' stroke-width='.7'/%3E%3C/g%3E%3C/svg%3E")}
@property --wi-s{syntax:'<angle>';inherits:false;initial-value:180deg}

/* ---- piece marks: the needle swings to rest, the pin goes in, the tag is hung ---- */
.sc-js .sc-piece.sc-white_ivory:not(.sc-in) [data-wi=needle]{opacity:0;transform:rotate(-58deg)}
.sc-js .sc-piece.sc-white_ivory.sc-in [data-wi=needle]{animation:sc-wi-needle var(--d,1700ms) linear var(--t,0ms) backwards}
@keyframes sc-wi-needle{0%{opacity:0;transform:rotate(-58deg);animation-timing-function:cubic-bezier(.3,.6,.4,1)}12%{opacity:1}
  38%{transform:rotate(16deg);animation-timing-function:cubic-bezier(.45,0,.4,1)}62%{transform:rotate(-6deg);animation-timing-function:cubic-bezier(.45,0,.4,1)}
  82%{transform:rotate(2deg);animation-timing-function:cubic-bezier(.45,0,.4,1)}100%{opacity:1;transform:none}}
.sc-js .sc-piece.sc-white_ivory:not(.sc-in) [data-wi=pin]{opacity:0;transform:translate(16px,-3px)}
.sc-js .sc-piece.sc-white_ivory.sc-in [data-wi=pin]{animation:sc-wi-pin var(--d,700ms) var(--wi-e) var(--t,0ms) backwards}
@keyframes sc-wi-pin{from{opacity:0;transform:translate(16px,-3px)}to{opacity:1;transform:none}}
.sc-js .sc-piece.sc-white_ivory:not(.sc-in) [data-wi=hang]{opacity:0;transform:translateY(-10px) rotate(-7deg)}
.sc-js .sc-piece.sc-white_ivory.sc-in [data-wi=hang]{animation:sc-wi-hang var(--d,800ms) var(--wi-e) var(--t,0ms) backwards}
@keyframes sc-wi-hang{from{opacity:0;transform:translateY(-10px) rotate(-7deg)}to{opacity:1;transform:none}}

/* ---- head pieces ---- */
body.sc-white_ivory #sa-sections section>.sc-piece{margin:-18px auto 10px}
body.sc-white_ivory #countdown>.sc-p-countdown{width:min(82%,310px)}
body.sc-white_ivory #details>.sc-p-details{width:min(66%,250px)}
body.sc-white_ivory #program>.sc-p-program{width:min(82%,310px)}
body.sc-white_ivory #gallery>.sc-p-gallery{width:min(64%,240px)}
body.sc-white_ivory #dress_code>.sc-p-dress_code{width:min(70%,264px)}
body.sc-white_ivory #gifts>.sc-p-gifts{width:min(74%,280px)}
body.sc-white_ivory #rsvp>.sc-p-rsvp{width:min(64%,240px)}
body.sc-white_ivory #sa-sections :is(#details,#rsvp):has(>.sc-piece){padding-top:var(--wd-space)}

/* ---- countdown: each number inside a small open wreath the pen draws up from its foot, both sides at once ---- */
body.sc-white_ivory #countdown .grid{gap:4px!important;max-width:420px}
body.sc-white_ivory #countdown .grid>div{--cs:clamp(29px,8vw,40px);padding:0 0 2px!important;font-size:var(--cs);isolation:isolate}
body.sc-white_ivory #countdown .grid>div+div{border-inline-start:0!important}
body.sc-white_ivory #countdown .grid>div::before{content:"";position:absolute;max-width:none;z-index:-1;left:50%;top:.66em;width:2.6em;height:2.6em;translate:-50% -50%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cpath d='M80.5 102.5q-1-2 0-4.5q1-2 2.5-4q2-2 4-4q2-1.5 4-3l0 0q-.5 2.5-1.5 5q-.5 3-2 5.5q-1 2.5-3 4q-1.5 1-4 1z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M96.5 90.5q0-2 2-3.5q2-1 4.5-1.5q2.5-.5 5-.5q2.5.5 5.5.5l0 0q-2.5 1.5-4.5 3q-2 1-4 2q-2.5 1-5 1q-2 .5-3.5-1z' fill='%23D9DBD5' fill-opacity='.8'/%3E%3Cpath d='M106 71q-2-.5-3-2q-1.5-1.5-2-4q-.5-2-.5-4.5q-.5-2-.5-4l0 0q1.5 1.5 3 3q1.5 2 3 4q1 2 1 4q.5 2-1 3.5z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M106 51q-1-1.5-.5-3.5q0-1.5 1.5-3.5q1.5-1.5 3.5-3q1.5-1 3.5-2.5l0 0q-.5 2.5-1 4q-.5 2-1.5 4q-.5 2-2 3.5q-1.5 1-3.5 1z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cpath d='M97.5 33q-1 1-2.5.5q-2-.5-3.5-1.5q-1.5-1-3-2q-1-1.5-2.5-2.5l0 0q2 0 4 .5q1.5 0 3.5.5q2 1 3 2q1 1 1 2.5z' fill='%23D9DBD5' fill-opacity='.8'/%3E%3Cpath d='M91 26q-1.5.5-3-.5q-1.5-1-2.5-2.5q-1-1.5-2-3q-.5-2-1.5-3.5l0 0q2 1 3.5 1.5q1.5 1 3 2.5q1.5 1 2 2.5q1 1.5.5 3z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M42 102.5q-1 1.5-3 2.5q-2 .5-5 0q-2.5 0-4.5-.5q-2.5-.5-4.5-1l0 0q2-1.5 4.5-2q2-1 5-1.5q2.5-.5 4.5 0q2 .5 3 2.5z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cpath d='M25 89.5q-2-1-3-3q-1-2.5-.5-5.5q.5-2.5 1.5-5q.5-2.5 1.5-5.5l0 0q1 2.5 2 5q.5 2.5 1 5.5q.5 2.5 0 5q-.5 2-2.5 3.5z' fill='%23E4BBAA' fill-opacity='.7'/%3E%3Cpath d='M25 88.5q-.5-8.5-.5-16.5' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cpath d='M16.5 71q-1.5.5-3.5-.5q-1.5-.5-3-2.5q-1.5-1.5-2.5-3.5q-1-1.5-2-3.5l0 0q2 1 4 1.5q2 1 4 2q2 1.5 2.5 3q1 1.5.5 3.5z' fill='%23607D68' fill-opacity='.78'/%3E%3Cpath d='M15.5 50q-1-1.5 0-3.5q1-1.5 3-3q2-1 4-2q2-.5 4.5-1.5l0 0q-1.5 2-2.5 4q-1 1.5-2.5 3.5q-1.5 1.5-3 2.5q-2 1-3.5 0z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cpath d='M15.5 50q5.5-5 10.5-9' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cpath d='M25 33q-1.5-.5-2-2.5q-.5-1.5 0-3.5q.5-2 1-3.5q0-2 .5-3.5l0 0q1 1.5 1.5 3.5q.5 1.5 1 3.5q0 2.5-.5 4q-.5 1.5-1.5 2z' fill='%23E4BBAA' fill-opacity='.7'/%3E%3Cpath d='M30.5 25q-.5-1.5.5-3q.5-1.5 2-2.5q2-1.5 3.5-2q1.5-1 3.5-1.5l0 0q-1 1.5-2 3q-.5 1.5-2 3.5q-1 1.5-2.5 2q-1.5 1-3 .5z' fill='%2398AC96' fill-opacity='.72'/%3E%3Cpath d='M31 24.5q4-4 8-8' fill='none' stroke='%23FFFFFF' stroke-width='0.6' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.45'/%3E%3Cg fill='none' stroke='%232F302C' stroke-width='0.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M68 105.5q9-3 13.5-5q4-2.5 8-5.5q3.5-3 6.5-7q3-3.5 5-8q2-4.5 3.5-9q1-4.5 1-9.5q.5-4.5-.5-9.5q-1-4.5-2.5-9q-2-4.5-4.5-8.5q-3-4-9.5-10.5' stroke-width='0.8'/%3E%3Cpath d='M79.5 101.5q-1-2-.5-4.5q.5-2 2.5-4.5q1.5-2 3.5-4q2-1.5 4-3.5l0 0q-.5 3-1 5.5q-.5 2.5-1.5 5.5q-1 2.5-3 4q-2 1.5-4 1.5'/%3E%3Cpath d='M80 101q4.5-7.5 8.5-14.5' stroke-width='.7'/%3E%3Cpath d='M95 89.5q.5-2 2-3.5q2-1.5 4.5-2q3-.5 5.5-.5q2.5 0 5.5 0l0 0q-2.5 1.5-4.5 3q-2 1.5-4 3q-2.5 1-5 1q-2 .5-4-1'/%3E%3Cpath d='M95.5 89q8-2.5 15.5-5' stroke-width='.7'/%3E%3Cpath d='M104.5 70q-2 0-3.5-2q-1-1.5-2-3.5q-.5-2.5-.5-4.5q-.5-2.5-1-4.5l0 0q2 1.5 3.5 3q2 1.5 3 4q1.5 2 2 4q0 2-1.5 3.5'/%3E%3Cpath d='M104.5 69.5q-3-7-6-13' stroke-width='.7'/%3E%3Cpath d='M104.5 50q-1-1.5-.5-3.5q0-1.5 1.5-3.5q1.5-2 3-3q2-1.5 3.5-3l0 0q0 2-.5 4q-.5 2-1 4.5q-1 2-2.5 3.5q-1 1-3.5 1'/%3E%3Cpath d='M105 49.5q3-6 6.5-11.5' stroke-width='.7'/%3E%3Cpath d='M96.5 32q-1.5 1-3 1q-1.5-.5-3.5-1.5q-1.5-1-3-2q-1.5-1.5-3-2.5l0 0q2 0 4 0q2 .5 4 1q2 .5 3 1.5q1.5 1 1.5 2.5'/%3E%3Cpath d='M96 32q-5.5-2.5-11-4.5' stroke-width='.7'/%3E%3Cpath d='M89.5 25q-1.5.5-3-.5q-1.5-.5-2.5-2q-1.5-2-2-3.5q-1-1.5-2-3l0 0q2 .5 3.5 1.5q1.5.5 3.5 2q1.5 1 2 2.5q1 1.5.5 3'/%3E%3Cpath d='M89 24.5q-4-4-8-8' stroke-width='.7'/%3E%3Cpath d='M52 105.5q-9-3-13.5-5q-4-2.5-8-5.5q-3.5-3-6.5-7q-3-3.5-5-8q-2-4.5-3.5-9q-1-4.5-1-9.5q-.5-4.5.5-9.5q1-4.5 2.5-9q2-4.5 4.5-8.5q3-4 9.5-10.5' stroke-width='0.8'/%3E%3Cpath d='M40.5 101.5q-1 2-3 2.5q-2 1-4.5 1q-3-.5-5-.5q-2.5-.5-5-1l0 0q2.5-1.5 4.5-2.5q2.5-1 5-1.5q2.5-1 5-.5q2 .5 3 2.5'/%3E%3Cpath d='M40 101.5q-8 .5-15.5 1.5' stroke-width='.7'/%3E%3Cpath d='M15.5 70q-2 .5-4 0q-1.5-1-3-2.5q-2-1.5-3-3.5q-1-1.5-2.5-3.5l0 0q2.5.5 4.5 1.5q2 .5 4 1.5q2 1.5 3 3q1.5 1.5 1 3.5'/%3E%3Cpath d='M15 69.5q-5.5-4.5-11-8.5' stroke-width='.7'/%3E%3Cpath d='M23.5 32q-1.5-.5-2-2q-.5-2 0-4q0-2 .5-4q.5-1.5.5-3.5l0 0q1 2 2 3.5q.5 2 1 4q.5 2 0 4q-.5 1.5-2 2'/%3E%3Cpath d='M23.5 31.5q0-6-.5-12' stroke-width='.7'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;pointer-events:none;
  -webkit-mask:conic-gradient(from 180deg,#000 var(--wi-s),transparent 0),conic-gradient(from 180deg,transparent calc(360deg - var(--wi-s)),#000 0);
  mask:conic-gradient(from 180deg,#000 var(--wi-s),transparent 0),conic-gradient(from 180deg,transparent calc(360deg - var(--wi-s)),#000 0)}
body.sc-white_ivory #countdown .grid>div:nth-child(even)::before{scale:-1 1}
body.sc-white_ivory #countdown [id^=cd_]{position:relative;font-size:1em!important;line-height:1.24!important}
body.sc-white_ivory #countdown .grid>div>span:last-child{position:relative;margin-top:calc(var(--cs) * .5 + 7px)!important}
.sc-js body.sc-white_ivory #countdown .grid:not(.sc-in)>div::before{--wi-s:0deg}
.sc-js body.sc-white_ivory #countdown .grid.sc-in>div::before{animation:sc-wi-sweep 1.1s cubic-bezier(.45,0,.3,1) calc(80ms + var(--k,0) * 140ms) backwards}
@keyframes sc-wi-sweep{from{--wi-s:0deg}to{--wi-s:180deg}}

/* ---- venue: each detail inside an inked ring with two leaves; the map is matted on an inked double rule, a spray
   over its corner ---- */
body.sc-white_ivory #details .sa-map-rows>div>div:first-child:has(svg){width:46px!important;height:46px!important;background:var(--wi-ring) center/contain no-repeat!important}
body.sc-white_ivory #details .sa-map-rows>div>div:first-child:has(svg){color:#2F302C!important}
body.sc-white_ivory #details .sa-map-rows>div>div:first-child svg{width:18px;height:18px}
body.sc-white_ivory #details :is(.sa-map-embed,.sa-venue-photo){position:relative;overflow:visible!important;padding:8px!important;background:var(--paper)!important;border:1px solid rgba(47,48,44,.55)!important;
  border-radius:0!important;outline:1px solid rgba(47,48,44,.3);outline-offset:3px;box-shadow:none!important}
body.sc-white_ivory #details .sa-map-embed .sa-gallery-card{overflow:hidden;border-radius:0!important}
body.sc-white_ivory #details .sa-venue-photo .sa-venue-photo__img{border-radius:0}
body.sc-white_ivory #details :is(.sa-map-embed,.sa-venue-photo)::before{content:"";position:absolute;max-width:none;z-index:2;inset-inline-start:-16px;top:-16px;width:80px;height:80px;
  background:var(--wi-corner) center/contain no-repeat;pointer-events:none}
html[dir=rtl] body.sc-white_ivory #details :is(.sa-map-embed,.sa-venue-photo)::before{scale:-1 1}
.sc-js body.sc-white_ivory #details:not(.sc-in) .sa-map-embed::before,.sc-js body.sc-white_ivory #details .sa-venue-photo:not(.sc-in)::before{clip-path:inset(0 100% 100% 0)}
.sc-js body.sc-white_ivory #details.sc-in .sa-map-embed::before,.sc-js body.sc-white_ivory #details .sa-venue-photo.sc-in::before{animation:sc-wi-corner 1.2s cubic-bezier(.45,0,.3,1) .45s backwards}
.sc-js[dir=rtl] body.sc-white_ivory #details:not(.sc-in) .sa-map-embed::before,.sc-js[dir=rtl] body.sc-white_ivory #details .sa-venue-photo:not(.sc-in)::before{clip-path:inset(0 0 100% 100%)}
.sc-js[dir=rtl] body.sc-white_ivory #details.sc-in .sa-map-embed::before,.sc-js[dir=rtl] body.sc-white_ivory #details .sa-venue-photo.sc-in::before{animation-name:sc-wi-corner-rtl}
@keyframes sc-wi-corner{from{clip-path:inset(0 100% 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes sc-wi-corner-rtl{from{clip-path:inset(0 0 100% 100%)}to{clip-path:inset(0 0 0 0)}}

/* ---- programme: the line is an inked stem that grows down (the kit's unveil); each stop is an inked ring with a
   leaf either side, drawn round as its row arrives ---- */
body.sc-white_ivory #program .sa-prog-line-v{width:16px!important;inset-inline-start:11px!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 72'%3E%3Cpath d='M9.5 19q-1.5.5-2.5 0q-1.5-.5-2.5-1.5q-1.5-1-2-2q-1-1.5-2-2.5l0 0q1.5 0 3 .5q1.5.5 3 1q1.5 1 2 2q1 1 1 2.5z' fill='%23BFC2BB' fill-opacity='.62'/%3E%3Cpath d='M9.5 49q0-1.5.5-2.5q1-1 2.5-1.5q1.5-.5 3-1q1.5 0 3-.5l0 0q-1 1.5-2 2.5q-1 1-2 2q-1.5 1-2.5 1.5q-1.5 0-2.5-.5z' fill='%23D9DBD5' fill-opacity='.8'/%3E%3Cg fill='none' stroke='%232F302C' stroke-width='0.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 0c-.5 24 .5 48 0 72'/%3E%3Cpath d='M8 18q-1 .5-2.5.5q-1.5-.5-2.5-1.5q-1.5-1-2.5-2.5q-1-1-2-2.5l0 0q2 .5 3.5 1q1 0 3 1q1.5.5 2 1.5q1 1 1 2.5'/%3E%3Cpath d='M7.5 18q-4-3-8-5.5' stroke-width='.7'/%3E%3Cpath d='M5 16q-1.5.5-2.5.5m2.5-.5q-.5-1-1-2m-1 .5q-1.5.5-2.5.5m2.5-.5q-.5-1-1-2' stroke-width='.5' stroke-opacity='.55'/%3E%3Cpath d='M8 48q0-1.5 1-2.5q.5-1 2-1.5q2-1 3-1q1.5-.5 3.5-1l0 0q-1 1.5-2 2.5q-1 1.5-2.5 2.5q-1 1-2.5 1.5q-1.5 0-2.5-.5'/%3E%3Cpath d='M8.5 48q4-3 8-5.5' stroke-width='.7'/%3E%3Cpath d='M11 46q.5-1 1-2m-1 2q1.5.5 2.5.5m-.5-2q.5-1 1-2m-1 2q1.5.5 2.5.5' stroke-width='.5' stroke-opacity='.55'/%3E%3C/g%3E%3C/svg%3E") center top/16px 72px repeat-y!important}
html[dir=rtl] body.sc-white_ivory #program .sa-prog-line-v{right:15px!important;left:auto!important}
body.sc-white_ivory #program .sa-prog-row>div:first-child{width:46px!important;height:46px!important;margin:-4px -4px 0!important;background:var(--wi-ring) center/contain no-repeat!important;
  border:0!important;box-shadow:none!important;border-radius:0!important;position:relative;z-index:2;color:#2F302C!important;
  -webkit-mask:conic-gradient(from 180deg,#000 var(--wi-s),transparent 0),conic-gradient(from 180deg,transparent calc(360deg - var(--wi-s)),#000 0);
  mask:conic-gradient(from 180deg,#000 var(--wi-s),transparent 0),conic-gradient(from 180deg,transparent calc(360deg - var(--wi-s)),#000 0)}
body.sc-white_ivory #program .sa-prog-row>div:first-child svg{width:18px;height:18px}
.sc-js body.sc-white_ivory #program .sa-prog-row:not(.sc-in)>div:first-child{--wi-s:0deg}
.sc-js body.sc-white_ivory #program .sa-prog-row.sc-in>div:first-child{animation:sc-wi-sweep 1s cubic-bezier(.45,0,.3,1) calc(.1s + var(--k,0) * 60ms) backwards}
body.sc-white_ivory #program .sa-prog-item>div:nth-child(2){background:var(--wi-ring) center/contain no-repeat!important;border:0!important;box-shadow:none!important;color:#2F302C!important}

/* ---- gallery: each photo in an inked passe-partout, a spray over its top corner ---- */
body.sc-white_ivory #gallery .sa-gallery-card{position:relative;overflow:visible!important;border:9px solid var(--paper)!important;border-radius:0!important;
  outline:1px solid rgba(47,48,44,.5);outline-offset:-4px;box-shadow:0 0 0 1px rgba(47,48,44,.45),0 14px 24px -20px rgba(58,59,54,.5)!important}
body.sc-white_ivory #gallery .sa-gallery-card img{border-radius:0}
body.sc-white_ivory #gallery .sa-gallery-card::after{content:"";position:absolute;max-width:none;z-index:2;left:-20px;top:-20px;width:62px;height:62px;background:var(--wi-corner) center/contain no-repeat;pointer-events:none}
body.sc-white_ivory #gallery .sa-gallery-card:nth-child(even)::after{left:auto;right:-20px;scale:-1 1}
.sc-js body.sc-white_ivory #gallery .sa-gallery-card:not(.sc-in)::after{clip-path:inset(0 100% 100% 0)}
.sc-js body.sc-white_ivory #gallery .sa-gallery-card.sc-in::after{animation:sc-wi-corner 1.1s cubic-bezier(.45,0,.3,1) .5s backwards}
.sc-js body.sc-white_ivory #gallery .sa-gallery-card:nth-child(even):not(.sc-in)::after{clip-path:inset(0 0 100% 100%)}
.sc-js body.sc-white_ivory #gallery .sa-gallery-card:nth-child(even).sc-in::after{animation-name:sc-wi-corner-rtl}

/* ---- dress code / gifts: the note sits on a card ruled in ink ---- */
body.sc-white_ivory :is(#dress_code,#gifts) .sa-text-section__body{position:relative;padding:18px 20px;background:var(--paper);border:1px solid rgba(47,48,44,.45);
  outline:1px solid rgba(47,48,44,.22);outline-offset:-6px;box-shadow:0 16px 28px -26px rgba(58,59,54,.5)}

/* ---- rsvp: the reply card is ruled in ink with sprays in two corners, as on the hero ---- */
body.sc-white_ivory #rsvp form{border-radius:0!important;border:1px solid rgba(47,48,44,.45)!important;outline:1px solid rgba(47,48,44,.22);outline-offset:-7px;box-shadow:0 24px 40px -36px rgba(58,59,54,.5)!important}
body.sc-white_ivory #rsvp form::before,body.sc-white_ivory #rsvp form::after{content:"";position:absolute;max-width:none;z-index:1;width:78px;height:78px;background:var(--wi-corner) center/contain no-repeat;pointer-events:none}
body.sc-white_ivory #rsvp form::before{inset-inline-end:-10px;top:-40px;width:92px;height:50px;background:var(--wi-edge) center/contain no-repeat}
body.sc-white_ivory #rsvp form::after{inset-inline-start:-10px;bottom:-40px;width:92px;height:50px;background:var(--wi-edge) center/contain no-repeat;rotate:180deg}
html[dir=rtl] body.sc-white_ivory #rsvp form::before,html[dir=rtl] body.sc-white_ivory #rsvp form::after{scale:-1 1}
.sc-js body.sc-white_ivory #rsvp:not(.sc-in) form::before{clip-path:inset(0 0 0 100%)}
.sc-js body.sc-white_ivory #rsvp.sc-in form::before{animation:sc-wi-edge 1.2s cubic-bezier(.45,0,.3,1) .5s backwards}
.sc-js[dir=rtl] body.sc-white_ivory #rsvp:not(.sc-in) form::before{clip-path:inset(0 100% 0 0)}
.sc-js[dir=rtl] body.sc-white_ivory #rsvp.sc-in form::before{animation-name:sc-wi-edge-rtl}
@keyframes sc-wi-edge{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes sc-wi-edge-rtl{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

/* ---- closing: the piece frames the sign-off. The text block becomes the grid's own rows (display:contents), so the
   piece shares the sign-off's row and grows with the names; named rows keep the optional link and sign-off in order;
   no sign-off, no frame. The design's hero band stays above. ---- */
body.sc-white_ivory #sa-sections #closing{display:grid;grid-template-columns:minmax(var(--wd-gutter),1fr) minmax(0,42rem) minmax(var(--wd-gutter),1fr);
  grid-template-rows:[band] auto [head] auto [body] auto [link] auto [sign] auto;padding:0 0 30px}
body.sc-white_ivory #closing>div:not(.sc-piece){display:contents}
body.sc-white_ivory #sa-sections #closing>.wd-section-art{grid-column:1/-1;grid-row:band}
body.sc-white_ivory #closing h2{grid-column:2;grid-row:head;margin-top:40px;position:relative}
body.sc-white_ivory #closing .sa-text-section__body{grid-column:2;grid-row:body;position:relative}
body.sc-white_ivory #closing>div>p:not(.sa-closing-sign){grid-column:2;grid-row:link;position:relative}
body.sc-white_ivory #closing .sa-closing-sign{grid-column:2;grid-row:sign;position:relative;z-index:1;padding:58px 8px 54px;margin-top:6px!important}
body.sc-white_ivory #sa-sections #closing>.sc-p-closing{grid-column:2;grid-row:sign;align-self:stretch;width:100%;max-width:400px;justify-self:center;margin:6px 0 0;padding:0}
body.sc-white_ivory #sa-sections #closing:not(:has(.sa-closing-sign))>.sc-p-closing{display:none}
body.sc-white_ivory #closing>.sc-p-closing>.sc-stage{aspect-ratio:auto!important;height:100%}
