/* Photorealistic scene layer; all copy and controls remain accessible DOM. */
.silk-intro{background:#b99e8e}
.silk-photo-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.silk-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:opacity .8s cubic-bezier(.22,.7,.2,1),transform 1.2s cubic-bezier(.22,.7,.2,1)}
.silk-photo-open{opacity:0;transform:scale(1.025)}
.silk-rive-scene{position:absolute;inset:0;width:100%;height:100%;z-index:2;opacity:0;transition:opacity .35s ease;pointer-events:none}
.silk-template[data-rive-ready=true] .silk-rive-scene{opacity:1}
.silk-template[data-rive-ready=true] .silk-photo{opacity:0}
.silk-template[data-state=opening] .silk-photo-closed{opacity:0;transform:scale(1.02)}
.silk-template[data-state=opening] .silk-photo-open{opacity:1;transform:scale(1)}
.silk-atmosphere{display:none}
.silk-envelope{z-index:8;width:min(86vw,400px);height:min(64svh,610px);aspect-ratio:auto;filter:none}
.silk-envelope-back,.silk-envelope-body,.silk-flap,.silk-seal{display:none}
.silk-card{left:18%;top:22%;width:64%;height:44%;z-index:9;padding:18px;background:transparent;border:0;box-shadow:none;opacity:0;transform:translateY(24%);transition:opacity .4s .35s,transform .8s .25s cubic-bezier(.2,.75,.18,1);text-shadow:0 1px 0 #fff8}
.silk-template[data-state=opening] .silk-card{opacity:1;transform:translateY(0)}
.silk-card .silk-sprig{display:none}
.silk-open-label{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);font:600 10px var(--dg-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);opacity:0}
.silk-intro-copy{text-shadow:0 1px 16px #fff}
.silk-cover{position:relative;background-position:center}
.silk-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#f8f1e910 25%,#f8f1e9e8 92%);pointer-events:none}
.silk-cover>*{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.silk-photo,.silk-card,.silk-rive-scene{transition-duration:.08s!important}}
/* The invitation shares the viewport with the catalogue demo toolbar. */
body:has(.demo-toolbar) .silk-template{--demo-stage-height:calc(100svh - var(--demo-header-height,0px))}
body:has(.demo-toolbar) .silk-intro{min-height:var(--demo-stage-height)}
body:has(.demo-toolbar) .silk-preview-badge{top:calc(var(--demo-header-height,0px) + 12px)}
body:has(.demo-toolbar) .silk-intro-copy{top:8%}
body:has(.demo-toolbar) .silk-intro-copy button{top:calc(var(--demo-stage-height) - 155px)}
.silk-cover h2,.silk-final strong,.silk-section h2{overflow-wrap:anywhere}
.silk-cover h2{line-height:.96;letter-spacing:.015em}
.silk-schedule li>div,.silk-detail-grid>div,.silk-counts>label{min-width:0}
.silk-detail-grid strong,.silk-schedule strong{overflow-wrap:anywhere}
.silk-swatches{flex-wrap:wrap}
@media(max-width:380px){.silk-section{padding:64px 22px}.silk-cover{padding-inline:22px}.silk-section h2{font-size:36px}.silk-schedule li{grid-template-columns:54px minmax(0,1fr);gap:12px}.silk-detail-grid div{padding-inline:8px}.silk-counts{gap:12px}}
@media(min-width:900px){.silk-invitation{width:min(100%,760px)}.silk-cover h2{font-size:78px}.silk-section{padding-inline:80px}.silk-gallery{grid-template-columns:1fr 1fr}.silk-gallery figure:last-child:nth-child(odd){grid-column:1/-1;aspect-ratio:16/10}.silk-section>p{max-width:500px}.silk-gallery figure{aspect-ratio:4/5}}
@media(min-width:900px){body:has(.demo-toolbar) .silk-invitation{width:min(100%,960px)}body:has(.demo-toolbar) .silk-cover{min-height:calc(100svh - var(--demo-header-height,0px));padding-inline:100px}body:has(.demo-toolbar) .silk-section>p{max-width:500px}body:has(.demo-toolbar) .silk-detail-grid,body:has(.demo-toolbar) .silk-schedule,body:has(.demo-toolbar) .silk-rsvp form{max-width:560px;margin-inline:auto}}
