@font-face{font-family:FineRoman;src:url('assets/cormorant-regular.woff2') format('woff2');font-display:swap}
:root{color-scheme:light;--ink:#4d594f;--gold:#927342;--ex:156.10764px;--ey:385.0438px;--ew:510.23622px;--eh:368.50393px;--fh:275px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f5f3ed}body{color:var(--ink);font-family:FineRoman,Georgia,serif;overflow-x:hidden;background-image:radial-gradient(ellipse at 22% 14%,#ffffffaa,transparent 75%),linear-gradient(#ffffff83,#ffffff83),url('assets/cotton-seamless.webp');background-size:auto,auto,780px 706px}button{font:inherit;color:inherit}button:focus-visible{outline:2px solid #947947;outline-offset:7px}button{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button[hidden],[hidden]{display:none!important}
#invitation{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 10px 35px;isolation:isolate}.scene-frame{position:relative;flex:none}.scene{position:absolute;width:775px;height:930px;left:0;top:0;transform-origin:0 0}.greeting{position:absolute;top:145px;left:90px;width:595px;text-align:center;z-index:31;pointer-events:none}.greeting p{font:12px/1.5 Georgia,serif;letter-spacing:3.7px;margin:0}.greeting p:last-child{font-size:11px;letter-spacing:2.2px}.greeting span{padding:0 11px;color:#947b50}.greeting h1{font:58px/1.2 FineRoman,Georgia,serif;margin:16px 0 19px;font-weight:400;letter-spacing:.4px}.greeting em{font-size:32px;color:#967d51;margin:0 8px;font-weight:400}
.body-shadow,.envelope-back,.envelope-front,.envelope-hit{position:absolute;left:var(--ex);top:var(--ey);width:var(--ew);height:var(--eh)}.body-shadow{z-index:0;border-radius:1px;box-shadow:4px 12px 13px #403a3027,1px 2px 3px #39342b32;background:#ece7dc}.envelope-back{z-index:1;background:linear-gradient(145deg,#78745e25,#dbd7c517 40%,#5d564418),url('assets/cotton-seamless.webp');background-size:auto,510px 460px;border-radius:1px}.envelope-back:after{content:"";position:absolute;inset:0;background:linear-gradient(#68634e30,transparent 26%);box-shadow:inset 0 1px 1px #d0cabb}
.flap-space{position:absolute;left:var(--ex);top:var(--ey);width:var(--ew);height:var(--fh);perspective:1800px;perspective-origin:50% 0;z-index:30;pointer-events:none}.flap{position:absolute;inset:0;transform-origin:50% 0;transform-style:preserve-3d;backface-visibility:visible;will-change:transform}.flap svg{position:absolute;inset:0;overflow:visible}.embossed{position:absolute;top:142px;left:0;width:100%;text-align:center;font:italic 42px FineRoman,Georgia,serif;letter-spacing:-5px;color:#b19767;text-shadow:0 1px 0 #fff,0 -1px .5px #74624455}.embossed span{font-size:22px;padding:0 3px;letter-spacing:-3px}.flap-shadow{position:absolute;left:var(--ex);top:var(--ey);width:var(--ew);height:var(--fh);transform-origin:50% 0;pointer-events:none;background:none;will-change:transform,opacity;filter:blur(4px)}.flap-ground-shadow{z-index:1}.flap-pocket-shadow{z-index:25}
.contents{position:absolute;inset:0;z-index:10;pointer-events:none;clip-path:polygon(-150px -150px,925px -150px,925px 753.54773px,-150px 753.54773px)}.piece{position:absolute;left:0;top:0;transform-origin:50% 50%;margin:0;padding:0;border:0;background:none;will-change:transform}.piece>img{width:100%;height:100%;object-fit:fill;display:block;user-select:none;-webkit-user-drag:none}.flowers{filter:drop-shadow(3px 7px 4.8px #353e2d50) drop-shadow(.4px 1px 1px #32362b25)}.card{pointer-events:none;filter:drop-shadow(3px 5px 4px #49443655) drop-shadow(.5px 1px .7px #49403042)}[data-state="open"] .card{pointer-events:auto;cursor:pointer}.invite-card>img:first-child{filter:contrast(1.015)}.invite-card .wax-seal{position:absolute;object-fit:fill;filter:drop-shadow(1px 2px 1.2px #4b37275c)}
.envelope-front{z-index:20;pointer-events:none;filter:drop-shadow(0 -.45px .55px #625c4247)}.envelope-front>img{display:block;width:100%;height:100%;user-select:none}.envelope-hit{z-index:40;cursor:pointer;border:0;background:transparent;border-radius:2px}.envelope-hit:focus-visible{outline-offset:12px}
.controls{height:45px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;margin-top:-7px;z-index:50}.controls p{font:10px/1.6 Georgia,serif;letter-spacing:2.1px;margin:0;color:#787c70;min-height:16px}.controls button{border:0;border-bottom:1px solid #afa48a6b;background:none;font-size:17px;letter-spacing:.15px;padding:3px 1px;cursor:pointer}.controls button span{padding-left:8px;color:#968064;font-family:Arial,sans-serif;font-size:13px}.music-button{position:fixed;right:25px;bottom:23px;z-index:80;width:49px;height:49px;border-radius:50%;border:1px solid #a6936c66;background:#f7f5efb5;box-shadow:0 2px 10px #4b412318;cursor:pointer;backdrop-filter:blur(8px)}.music-button{display:grid;place-items:center;color:#8d764b}.music-icon{display:block;width:24px;height:24px}.music-off{paint-order:stroke;stroke-width:2}.music-button[aria-pressed="true"] .music-off{display:none}.music-button[aria-pressed="false"]{color:#77786e;background:#f7f5efd9}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){#invitation{padding:20px 2px 55px}.music-button{right:16px;bottom:16px;width:43px;height:43px}.controls{margin-top:3px}.controls p{font-size:9px;letter-spacing:1.3px}.controls button{font-size:16px}}@media(prefers-reduced-motion:reduce){.piece,.flap{will-change:auto}}

html{overflow-x:clip}#invitation{overflow:hidden;width:100%}.botanicals{position:absolute;inset:0;z-index:9;pointer-events:none}

.flap-shadow svg{display:block;overflow:visible}.card[aria-pressed="true"]{cursor:pointer}.flowers>img{transform-origin:50% 94%;animation:flower-sway var(--sway-duration,6.8s) ease-in-out infinite;--sway-angle:1.45deg}.flowers[data-piece="flowersLeft"]>img{--sway-angle:1.7deg;--sway-duration:7.5s;animation-delay:-2.1s}.flowers[data-piece="flowersRight"]>img{--sway-angle:1.9deg;--sway-duration:6.3s;animation-delay:-3.4s}@keyframes flower-sway{0%,100%{transform:rotate(calc(var(--wind,0) * var(--sway-angle) * -1))}50%{transform:rotate(calc(var(--wind,0) * var(--sway-angle)))}}@media(prefers-reduced-motion:reduce){.flowers>img{animation:none}}

/* The photographic strip stays monochrome, including the Venice image. */
.photos>img{filter:grayscale(1)}
.invitation-art,.invitation-art>svg{display:block;width:100%;height:100%}
