:root{--ivory:#f8f4ec;--cream:#f2e9da;--gold:#c5a268;--taupe:#9b846d;--drift:0px;color-scheme:light}*{box-sizing:border-box}html{background:#e7e0d5;scroll-behavior:smooth}body{margin:0;color:var(--taupe);font-family:Georgia,serif}.sealed{overflow:hidden}button{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #9b846d;outline-offset:5px}img{display:block;max-width:100%;height:auto}.canvas{max-width:480px;margin:auto;position:relative;isolation:isolate;overflow:hidden;background:var(--ivory)}.canvas:before,.envelope:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:12;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.68' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='150' height='150' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E")}.canvas:after{content:'';position:absolute;inset:20px 12px;pointer-events:none;border-inline:1px solid #d8c09a45;z-index:8}.opening{position:fixed;inset:0;z-index:40;background:#e7e0d5;display:flex;justify-content:center;transition:opacity .65s 1.6s,visibility 0s 2.3s}.envelope{position:relative;width:min(100%,480px);height:100svh;min-height:500px;background:var(--ivory);perspective:1300px;isolation:isolate;overflow:visible}.paper-back{position:absolute;inset:0;background:linear-gradient(135deg,#eee4d4,#fbf8f1 40%,#e7dac6)}.inner-paper{position:absolute;inset:9% 8%;border:1px solid #d8c09a88;background:#fcf9f3;display:grid;place-items:center;transform:translateY(12%);transition:transform 1.5s .5s,opacity 1s;opacity:0;z-index:1}.fold{position:absolute;inset:0;z-index:3}.fold-left{clip-path:polygon(0 0,64% 58%,0 100%);background:linear-gradient(110deg,#faf6ee,#ede1d1);filter:drop-shadow(1px 0 2px #bda780)}.fold-right{clip-path:polygon(100% 0,36% 58%,100% 100%);background:linear-gradient(250deg,#fcf8ef,#e9ddcb)}.fold-bottom{clip-path:polygon(0 100%,0 88%,50% 47%,100% 88%,100% 100%);background:linear-gradient(0deg,#f8f4ec,#eee3d3);z-index:4}.lid{position:absolute;inset:0 0 40%;transform-origin:50% 0;transform-style:preserve-3d;z-index:6;transition:transform 1.7s .15s cubic-bezier(.65,0,.35,1)}.lid-face,.lid-back{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,100% 9%,50% 100%,0 9%);backface-visibility:hidden;background:linear-gradient(145deg,#fffcf6,#f5ecdf 65%,#e7d6bc);filter:drop-shadow(0 4px 4px #b59b7560)}.lid-back{transform:rotateX(180deg);background:linear-gradient(#e9dbc7,#f9f4eb)}.emboss{position:absolute;filter:grayscale(1) sepia(.3) brightness(1.3) drop-shadow(1px 2px 1px #a48c6955);opacity:.3;mix-blend-mode:multiply}.emboss-left{width:76%;top:5%;left:-8%;transform:rotate(25deg)}.emboss-right{width:76%;top:5%;right:-8%;transform:scaleX(-1) rotate(25deg)}.lower-emboss{width:110%;bottom:3%;left:-5%;transform:rotate(180deg)}.seal-trigger{position:absolute;z-index:9;top:52%;left:calc(50% - 48px);width:96px;min-height:96px;padding:0;border:0;background:none;cursor:pointer;filter:drop-shadow(1px 4px 4px #8c76594d);transition:transform .4s,opacity .3s .2s}.seal-trigger:active{transform:scale(.95)}.opening.opening-out .lid{transform:rotateX(-172deg)}.opening.opening-out .seal-trigger{transform:translateY(8px) scale(.93);opacity:0;pointer-events:none}.opening.opening-out .inner-paper{opacity:1;transform:translateY(-7%)}.opening.opening-out{opacity:0;visibility:hidden}.scene{position:relative;min-height:75svh;padding-inline:30px}.ornament{font-size:43px;font-weight:400;color:#c1a47b;line-height:1.5}.flourish{font-size:29px;color:#c0a377;text-align:center}.hero{padding:48px 20px 45px;min-height:105svh;text-align:center}.top-ornament{margin:10px auto 25px}.hero-arch{width:100%;position:relative;mask-image:linear-gradient(transparent,#000 4%,#000 89%,transparent)}.hero-arch img{width:100%;aspect-ratio:2/3;object-fit:cover}.branch{position:absolute;width:48%;height:auto;filter:sepia(.7) saturate(.5);opacity:.65;pointer-events:none;z-index:4;translate:0 var(--drift)}.hero-left{left:-19%;bottom:15%;transform:rotate(20deg)}.hero-right{right:-19%;top:15%;transform:rotate(195deg)}.blank-heading{display:flex;align-items:center;justify-content:center;gap:18px;margin:30px auto 20px}.blank-heading i{width:42px;height:1px;background:#c5a26877}.blank-heading span{font-size:32px}.scroll-line{height:42px;width:1px;background:linear-gradient(#c5a268,transparent);margin:25px auto 0}.formal{padding:50px 16px 70px;min-height:105svh}.formal-frame{position:relative;width:100%;min-height:690px;aspect-ratio:2/3}.frame-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.formal-content{position:relative;z-index:2;text-align:center;padding:25% 17% 14%}.fine-rule{width:135px;max-width:65%;height:1px;margin:24px auto;background:linear-gradient(90deg,transparent,#c5a26899,transparent)}.fine-rule.short{width:70px}.fine-rule.medium{width:100px}.names-space{height:135px}.formal-space{height:85px}.details{min-height:95svh;padding-top:100px;padding-bottom:70px;text-align:center}.detail-pair{display:grid;grid-template-columns:1fr 1fr;margin:60px auto 40px;gap:30px}.detail-pair>div+div{border-left:1px solid #d8c09a55}.detail-blank{height:60px}.detail-pair i{display:block;height:1px;width:70%;background:#d8c09a66;margin:18px auto}.detail-pair i:last-child{width:45%}.detail-branch{left:-27%;top:10%;transform:rotate(-25deg);width:65%;opacity:.36}.stem{display:flex;align-items:center;flex-direction:column;padding-top:40px;color:#c5a26899;font-size:25px}.stem i{height:60px;width:1px;background:#d8c09a77}.countdown{min-height:65svh;padding-top:90px;text-align:center}.countdown-values{display:grid;grid-template-columns:repeat(4,1fr);margin:65px 0 40px;font-size:32px;gap:12px}.countdown-values i{width:23px;height:1px;background:#d8c09a99;display:block;margin:24px auto}.count-branch{right:-23%;bottom:5%;transform:rotate(180deg);opacity:.4}.venue{min-height:100svh;padding:110px 0 90px;display:flex;flex-direction:column;justify-content:center}.palace-art{width:100%;position:relative;z-index:2;mask-image:linear-gradient(transparent,#000 10%,#000 85%,transparent);filter:sepia(.12) saturate(.7)}.palace-halo{position:absolute;width:74%;height:65%;top:7%;left:13%;border:1px solid #d8c09a77;border-radius:50% 50% 0 0;background:radial-gradient(ellipse at center,#f0dfc650,transparent 70%)}.palace-halo:before{content:'';position:absolute;inset:9px;border:1px solid #d8c09a44;border-radius:inherit}.venue-lines{margin-top:40px}.venue-branch{bottom:0;left:-23%;transform:rotate(-35deg);opacity:.35}.map-scene{min-height:78svh;padding:90px 32px;text-align:center}.map-mount{position:relative;margin:65px auto 60px;border:1px solid #d8c09a66;padding:7px;transform:rotate(-1deg)}.map-mount>img{width:100%;opacity:.75}.map-seal{position:absolute;width:61px;right:-12px;bottom:-22px;transform:rotate(12deg);filter:drop-shadow(1px 3px 2px #9b846d33)}.dress{min-height:85svh;padding:70px 0;text-align:center}.fashion{width:100%;margin:80px auto 50px;mask-image:linear-gradient(transparent,#000 10%,#000 85%,transparent)}.swatches{display:flex;justify-content:center;gap:20px;margin:35px auto}.swatches i{width:18px;height:18px;border-radius:50%;background:#dfc9c1}.swatches i:nth-child(2){background:#b9c7ce}.swatches i:nth-child(3){background:#cdc0d2}.swatches i:nth-child(4){background:#c0c5ae}.swatches i:nth-child(5){background:#d8c09a}.closing{min-height:45svh;display:grid;place-items:center;padding-bottom:100px}.closing-left{left:-20%;bottom:5%;transform:rotate(-30deg)}.closing-right{right:-20%;bottom:5%;transform:scaleX(-1) rotate(-30deg)}.music-control{position:fixed;z-index:35;right:max(16px,calc((100vw - 480px)/2 + 16px));bottom:max(22px,env(safe-area-inset-bottom));width:42px;height:42px;display:grid;place-items:center;background:#bfa174;border:1px solid #dfc9a2;border-radius:50%;padding:11px;box-shadow:0 3px 10px #92795924;cursor:pointer}.music-control[hidden]{display:none}.music-control svg{width:100%;height:100%;fill:#fffaf0;stroke:#fffaf0;stroke-width:2}.pause-icon{display:none}.music-control[aria-pressed=true] .pause-icon{display:block}.music-control[aria-pressed=true] .play-icon{display:none}.js .reveal{opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.6,.2,1)}.js .reveal.visible{opacity:1;transform:translateY(0)}@media(min-width:481px){.canvas{box-shadow:0 0 50px #b5a78e22}.scene{min-height:680px}.hero,.formal{min-height:900px}.closing{min-height:400px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}.branch{translate:none}.js .reveal{opacity:1;transform:none}}
