/* The removable cover and its preview share styles; the wedding scenes do not. */
/* A page-positioned cover avoids Safari's fixed-edge colour extension. Scrolling
   is locked separately; no cream fixed layer or browser tint survives opening. */
html.cv-entry-pending:not(.cv-entry-mounted)::after{content:"";position:absolute;inset:0;z-index:2147483000;background:#f6eddd}
html.cv-entry-pending,html.cv-entry-pending body{overflow:hidden!important;overscroll-behavior:none}
.cv-cover-surface{--cv-ink:#60452b;--cv-gold:#ae8550;--cv-paper:#f6eddd;--cv-unit:1vh;--cv-height:100vh;--cv-frame-inset:clamp(12px,calc(var(--cv-unit)*2.2),26px);--cv-corner-size:clamp(88px,calc(var(--cv-unit)*18),210px);--cv-flourish-size:clamp(36px,calc(var(--cv-unit)*4.7),52px);--cv-frame-line:linear-gradient(to right,#ae855060 calc(50% - var(--cv-flourish-size)*.36),transparent calc(50% - var(--cv-flourish-size)*.36),transparent calc(50% + var(--cv-flourish-size)*.36),#ae855060 calc(50% + var(--cv-flourish-size)*.36));--cv-frame-side:linear-gradient(to bottom,#ae855060 calc(50% - var(--cv-flourish-size)*.36),transparent calc(50% - var(--cv-flourish-size)*.36),transparent calc(50% + var(--cv-flourish-size)*.36),#ae855060 calc(50% + var(--cv-flourish-size)*.36));color:var(--cv-ink);font:400 16px/1.45 Cormorant,Georgia,serif;isolation:isolate;perspective:1800px}
.cv-cover-surface *{box-sizing:border-box}
#cv-entry{position:absolute;top:0;left:0;z-index:2147483001;width:100%;height:100dvh;min-width:0;overflow:hidden;overflow:clip;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;outline:none}
.cv-cover-surface .cv-envelope{position:relative;min-height:max(32rem,var(--cv-height));width:100%;perspective:1800px;transform-style:preserve-3d;--cv-cut-top:polygon(0 0,100% 0,100% 77%,50% 55%,0 77%);--cv-cut-bottom:polygon(0 77%,50% 55%,100% 77%,100% 100%,0 100%)}
#cv-entry .cv-envelope{height:100%;min-height:0}
.cv-cover-surface .cv-paper{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#fffaf0,#f6eddd 76%);backface-visibility:hidden}
.cv-cover-surface .cv-decor{position:absolute;inset:0;pointer-events:none}
.cv-cover-surface .cv-decor::before{content:"";position:absolute;inset:var(--cv-frame-inset);background:var(--cv-frame-line) top/100% 1px no-repeat,var(--cv-frame-line) bottom/100% 1px no-repeat,var(--cv-frame-side) left/1px 100% no-repeat,var(--cv-frame-side) right/1px 100% no-repeat}
/* Set both dimensions: HTML's intrinsic 640px height otherwise displaces the flowers. */
.cv-cover-surface .cv-corner{position:absolute;display:block;width:var(--cv-corner-size);height:var(--cv-corner-size);max-width:none;max-height:none;aspect-ratio:1;object-fit:contain;margin:0;opacity:.88}
.cv-cover-surface .cv-corner--tl{top:0;left:0}
.cv-cover-surface .cv-corner--tr{top:0;right:0;transform:scaleX(-1)}
.cv-cover-surface .cv-corner--bl{bottom:0;left:0;transform:scaleY(-1)}
.cv-cover-surface .cv-corner--br{bottom:0;right:0;transform:scale(-1)}
.cv-cover-surface .cv-flourish{position:absolute;display:block;width:var(--cv-flourish-size);height:var(--cv-flourish-size);max-width:none;max-height:none;object-fit:contain;margin:0;opacity:.9}
.cv-cover-surface .cv-flourish--top{top:var(--cv-frame-inset);left:50%;transform:translate(-50%,-50%)}
.cv-cover-surface .cv-flourish--right{top:50%;right:var(--cv-frame-inset);transform:translate(50%,-50%) rotate(90deg)}
.cv-cover-surface .cv-flourish--bottom{bottom:var(--cv-frame-inset);left:50%;transform:translate(-50%,50%) rotate(180deg)}
.cv-cover-surface .cv-flourish--left{top:50%;left:var(--cv-frame-inset);transform:translate(-50%,-50%) rotate(-90deg)}
.cv-cover-surface .cv-flap{z-index:1;clip-path:var(--cv-cut-top);transform-origin:50% 0;transform-style:preserve-3d}
.cv-cover-surface .cv-fold-line{position:absolute;z-index:2;inset:0;width:100%;height:100%;fill:none;stroke:#aa8c59;stroke-width:1;stroke-opacity:.18;pointer-events:none}
.cv-cover-surface .cv-cover-content{position:relative;z-index:3;min-height:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(22px,calc(var(--cv-unit)*3.2),44px) max(24px,env(safe-area-inset-left)) max(26px,env(safe-area-inset-bottom));}
.cv-cover-surface .cv-cover-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;flex-shrink:0;transform:scale(var(--cv-fit,1));transform-origin:50% 50%}
#cv-entry .cv-cover-content{height:100%;min-height:0}
.cv-cover-surface .cv-cover-art{display:block;width:min(68%,400px);height:clamp(144px,calc(var(--cv-unit)*27),320px);object-fit:contain;flex-shrink:0;margin:0 0 12px}
.cv-cover-surface .cv-cover-copy{width:min(100%,600px)}
.cv-cover-surface .cv-cover-kicker{font-size:.875rem;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px}
.cv-cover-surface .cv-cover-names{font-size:clamp(1.8rem,calc(var(--cv-unit)*4.2),3.6rem);font-weight:400;line-height:1.07;letter-spacing:-.025em;margin:0}
.cv-cover-surface .cv-cover-names>span{display:block}
.cv-cover-surface .cv-cover-names .cv-amp{font-style:italic;font-size:.64em;line-height:1.1;margin:2px 0;color:var(--cv-gold)}
.cv-cover-surface .cv-cover-grace{font-size:1.0625rem;line-height:1.4;font-style:italic;margin:10px 0 0}
.cv-cover-surface .cv-cover-date{font-size:.9375rem;line-height:1.5;letter-spacing:.065em;margin:12px 0 0}
.cv-cover-surface .cv-greeting{max-width:440px;margin:12px auto 0}
.cv-cover-surface .cv-guest-name{font-size:1.125rem;line-height:1.35;font-weight:500;overflow-wrap:anywhere;margin:0 0 6px}
.cv-cover-surface .cv-guest-message{font-size:1rem;line-height:1.45;max-width:360px;margin:0 auto}
.cv-cover-surface .cv-seal{position:relative;z-index:4;flex-shrink:0;width:clamp(76px,calc(var(--cv-unit)*11.4),108px);aspect-ratio:1;margin:clamp(18px,calc(var(--cv-unit)*3),34px) 0 0;border:2px solid #f7d992;border-radius:50%;padding:9px;background:radial-gradient(circle at 36% 26%,#d8b16b 0,#c09448 39%,#ad7834 63%,#efd097 73%,#8e5c22 80%,#dcb975 90%,#a57536 100%);box-shadow:0 5px 10px #67431540,inset 0 0 0 2px #976625,inset 0 0 0 5px #e4bf78;color:#60411e;cursor:pointer;touch-action:manipulation;transition:box-shadow .2s ease}
.cv-cover-surface .cv-seal-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;border:1px solid #8357229c;border-radius:50%;box-shadow:inset 0 1px 2px #80561d66;text-shadow:0 1px 0 #f5d493;font:400 clamp(1.125rem,calc(var(--cv-unit)*2.8),1.6rem)/.95 Cormorant,Georgia,serif}
.cv-cover-surface .cv-seal-inner i{font-size:.65em;line-height:.7;margin:2px 0}
.cv-cover-surface .cv-seal:hover{box-shadow:0 7px 16px #67431559,inset 0 0 0 2px #976625,inset 0 0 0 5px #e4bf78}
.cv-cover-surface .cv-seal:focus-visible{outline:3px solid #60452b;outline-offset:6px}
.cv-cover-surface .cv-open-prompt{margin:16px 0 0;max-width:80%}
.cv-cover-surface .cv-open-prompt p{font-size:1.125rem;font-style:italic;line-height:1.35;margin:0}
.cv-cover-surface .cv-open-prompt span{display:block;font-size:.875rem;line-height:1.4;letter-spacing:.07em;margin-top:6px;color:#7e664b}
.cv-cover-surface .cv-personalized .cv-cover-art{height:clamp(112px,calc(var(--cv-unit)*22),260px)}
.cv-cover-surface [hidden]{display:none!important}
#cv-entry.cv-opening{pointer-events:none}
#cv-entry.cv-paper-opening>.cv-envelope{visibility:hidden}
.cv-paper-doors{position:absolute;inset:0;z-index:5;pointer-events:none}
.cv-paper-door{position:absolute;inset:0;backface-visibility:hidden;transform-style:flat;will-change:transform}
.cv-paper-door--top{transform-origin:50% 0}
.cv-paper-door--bottom{transform-origin:50% 100%}
#cv-entry .cv-door-cover{position:absolute;top:0;perspective:none;transform-style:flat;pointer-events:none}
/* Clip the printed child before rotating its parent, so the V seam travels with
   the paper and does not turn into a rectangular opening during the fold. */
.cv-paper-door--top .cv-door-cover{clip-path:var(--cv-cut-top)}
.cv-paper-door--bottom .cv-door-cover{clip-path:var(--cv-cut-bottom)}
#cv-entry.cv-paper-opening .cv-paper-door--top{animation:cv-paper-top 1.65s cubic-bezier(.42,0,.16,1) .28s both}
#cv-entry.cv-paper-opening .cv-paper-door--bottom{animation:cv-paper-bottom 1.65s cubic-bezier(.42,0,.16,1) .28s both}
#cv-entry.cv-paper-opening .cv-seal{animation:cv-seal-release .3s ease both}
#cv-entry.cv-reduced-opening{opacity:0;transition:opacity .25s ease}
@keyframes cv-seal-release{to{transform:translateY(-12px) rotate(-8deg) scale(1.035);opacity:0}}
@keyframes cv-paper-top{0%{transform:perspective(var(--cv-opening-depth,2000px)) rotateX(0);opacity:1}75%{opacity:1}100%{transform:perspective(var(--cv-opening-depth,2000px)) rotateX(-105deg);opacity:0}}
@keyframes cv-paper-bottom{0%{transform:perspective(var(--cv-opening-depth,2000px)) rotateX(0);opacity:1}75%{opacity:1}100%{transform:perspective(var(--cv-opening-depth,2000px)) rotateX(105deg);opacity:0}}
@media(max-width:767px){.cv-cover-surface{--cv-corner-size:clamp(85px,22vw,135px);--cv-frame-inset:14px;--cv-flourish-size:36px}.cv-cover-surface .cv-cover-copy{max-width:380px}}
@media(max-height:620px){#cv-entry .cv-cover-art{height:clamp(98px,calc(var(--cv-unit)*19),130px);margin-bottom:8px}#cv-entry .cv-personalized .cv-cover-art{height:clamp(78px,calc(var(--cv-unit)*15),105px)}#cv-entry .cv-cover-content{padding-top:18px;padding-bottom:max(18px,env(safe-area-inset-bottom))}#cv-entry .cv-open-prompt span{display:none}#cv-entry .cv-open-prompt{margin-top:12px}#cv-entry .cv-seal{margin-top:18px}}
@media(max-height:430px) and (min-width:600px){#cv-entry .cv-cover-content{padding:24px max(32px,env(safe-area-inset-left))}#cv-entry .cv-cover-inner{display:grid;grid-template-columns:38% 62%;grid-template-rows:auto auto;justify-items:center;align-content:center;column-gap:0;row-gap:12px}#cv-entry .cv-cover-art{grid-column:1;grid-row:1 / span 2;height:clamp(120px,calc(var(--cv-unit)*55),220px);width:90%;margin:0}#cv-entry .cv-personalized .cv-cover-art{height:clamp(120px,calc(var(--cv-unit)*55),220px)}#cv-entry .cv-cover-copy{grid-column:2;grid-row:1}#cv-entry .cv-cover-kicker{display:none}#cv-entry .cv-cover-names{font-size:1.65rem}#cv-entry .cv-cover-grace{margin-top:6px}#cv-entry .cv-cover-date{margin-top:8px}#cv-entry .cv-greeting{margin-top:8px}#cv-entry .cv-seal{grid-column:2;grid-row:2;width:62px;margin:0}#cv-entry .cv-seal-inner{font-size:1.125rem}#cv-entry .cv-open-prompt{display:none}}
@media(prefers-reduced-motion:reduce){#cv-entry.cv-opening .cv-paper-doors{display:none}#cv-entry.cv-opening>.cv-envelope{visibility:visible;opacity:0;transition:opacity .25s ease}}
