[hidden]{display:none!important}:root{--image-cover:none;--image-hero:none;--image-dress:none}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--theme-bg-dark)}body{color:var(--theme-surface-light);font-family:var(--theme-font-body);background:var(--theme-bg-dark);margin:0;font-size:16px;overflow-x:hidden}html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}body.locked{overflow:hidden}button,a,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--theme-accent);font-size:.73rem;font-weight:500}.eyebrow--dark{color:var(--theme-accent)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--theme-font-display);font-weight:400}h2{margin-bottom:1.2rem;font-size:clamp(2.7rem,10vw,5rem);line-height:.95}.opening{z-index:100;overscroll-behavior:none;background:linear-gradient(180deg, var(--theme-cover-overlay-start), var(--theme-cover-overlay-end)), var(--image-cover) center/cover no-repeat;place-items:center;transition:opacity 1s,visibility 1s;display:grid;position:fixed;inset:0;overflow:hidden auto}.opening:before{content:"";background:radial-gradient(circle at 50% 34%, var(--theme-cover-aura), transparent 31%), radial-gradient(circle, var(--theme-cover-star) 0 1px, transparent 1.4px);opacity:.7;background-size:auto,88px 78px;position:absolute;inset:0}.opening.opened{opacity:0;visibility:hidden;pointer-events:none}.opening-inner{text-align:center;width:min(92vw,430px);padding:1rem;position:relative;transform:translateY(-2vh)}.opening h1{color:var(--theme-cover-title);text-shadow:0 3px 22px var(--theme-cover-title-glow);margin:.35rem 0 .8rem;font-size:clamp(4.6rem,12vw,6.6rem);font-style:italic;line-height:.72}.opening .eyebrow{letter-spacing:.34em;color:var(--theme-accent-cool);text-shadow:0 1px 10px var(--theme-cover-label-shadow);font-size:.82rem}.opening .date{font-family:var(--theme-font-display);letter-spacing:.23em;color:var(--theme-text-cool);text-shadow:0 1px 10px var(--theme-cover-date-shadow);margin-bottom:.8rem;font-size:1.12rem}.open-copy{font:italic 1.08rem var(--theme-font-display);color:var(--theme-text-cool);letter-spacing:.01em;text-shadow:0 1px 10px var(--theme-cover-copy-shadow)}.section{padding:7rem max(1.4rem,50vw - 550px);position:relative;overflow:hidden}.section-light{background:var(--theme-surface-light);color:var(--theme-bg-dark)}.button{min-height:50px;color:inherit;text-transform:uppercase;letter-spacing:.14em;cursor:pointer;background:0 0;border:1px solid;justify-content:center;align-items:center;padding:.8rem 1.4rem;font-size:.72rem;font-weight:600;text-decoration:none;transition:all .25s;display:inline-flex}.button:hover,.button:focus-visible{background:var(--theme-bg-dark);color:var(--theme-text-light);outline:none}@keyframes flap-settle{to{filter:brightness(.78);transform:translateY(10px)}}@keyframes drift{to{transform:translateY(67px)}}@media (width<=760px){.section{padding-block:5.5rem}.opening-inner{transform:translateY(-1vh)}.opening h1{font-size:clamp(4.35rem,22vw,5.6rem)}}@media (height<=620px){.opening-inner{padding:.4rem 1rem;transform:none}.opening h1{margin:.2rem 0 .45rem;font-size:4.4rem}.opening .date{margin-bottom:.15rem}.open-copy{font-size:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}img{max-width:100%}button,.button{touch-action:manipulation}@media (width<=900px){.section{padding:clamp(4.75rem,10vw,6rem) clamp(1.1rem,5vw,2.5rem)}}@media (width<=600px){.opening-inner{width:min(96vw,380px);padding:.75rem max(.75rem, env(safe-area-inset-right)) .75rem max(.75rem, env(safe-area-inset-left));transform:translateY(-1vh)}.opening h1{margin:.3rem 0 .65rem;font-size:clamp(4.15rem,22vw,5.35rem)}.opening .eyebrow{letter-spacing:.28em;font-size:.76rem}.opening .date{margin-bottom:.35rem;font-size:1rem}.open-copy{padding-inline:.5rem;font-size:1rem}.section{padding:4.5rem 1rem}}@media (width<=360px){.opening h1{font-size:3.9rem}.section{padding-inline:.85rem}}@media (orientation:landscape) and (height<=620px){.opening-inner{grid-template-columns:minmax(180px,1fr) 230px;grid-template-areas:"eyebrow envelope""title envelope""date envelope"".instruction";align-items:center;column-gap:clamp(1rem,5vw,3rem);width:min(94vw,760px);padding:.35rem 1rem;display:grid;transform:none}.opening .eyebrow{grid-area:eyebrow;align-self:end}.opening h1{grid-area:title;margin:.2rem 0 .45rem;font-size:clamp(4rem,12vw,5.35rem)}.opening .date{grid-area:date;align-self:start;margin:0}.open-copy{grid-area:instruction;align-self:start;margin-top:-.35rem;font-size:.95rem}}#intro-root,#intro-root .section{color:#62636b;background:#f8f5ef}#memories-root,#memories-root .section{color:#62636b;background:#ede2d4}#countdown-root,#countdown-root .section{color:#4f5661;background:linear-gradient(145deg,#d8dce2 0%,#b9bec7 100%)}#event-details-root,#event-details-root .section{color:#62636b;background:#fcfaf6}#itinerario,#itinerario .section{color:#fffdf9;background:linear-gradient(160deg,#858892 0%,#636670 100%)}#dress-code-root,#dress-code-root .section{color:#62636b;background:#f1e8dc}#adults-only-root,#adults-only-root .section{color:#62636b;background:#fcfaf6}#share-photos-root,#share-photos-root .section{color:#535963;background:linear-gradient(155deg,#d6dae1 0%,#bfc5ce 100%)}#gift-section-root,#gift-section-root .section,#guest-card-root,#guest-card-root .section{color:#62636b;background:#ede2d4}#farewell-root,#farewell-root .section{color:#55545a;background:linear-gradient(160deg,#f7f0e6 0%,#e8d8c5 55%,#d7d4d5 100%)}#farewell-root h2,#farewell-root h3{color:#77717a;text-shadow:none}#farewell-root p{color:#65616a;text-shadow:none}#farewell-root .eyebrow{color:#86808a}.envelope-button{cursor:pointer;width:min(76vw,300px);height:445px;color:var(--theme-cover-envelope-control,var(--theme-envelope-control));filter:drop-shadow(0 22px 20px var(--theme-cover-envelope-shadow,var(--theme-envelope-shadow)));perspective:1100px;background:0 0;border:0;margin:0 auto .25rem;display:block;position:relative}.card-peek{z-index:2;background:var(--theme-text-light);height:235px;box-shadow:0 12px 24px var(--theme-envelope-card-shadow);transform-origin:bottom;border-radius:2px;padding:6px 6px 14px;position:absolute;top:92px;left:16%;right:16%;overflow:hidden;transform:rotate(-1deg)}.envelope-button .card-peek{background:var(--theme-cover-card-background,var(--theme-text-light));box-shadow:0 12px 24px var(--theme-cover-card-shadow,var(--theme-envelope-card-shadow))}.envelope-display .card-peek{background:var(--theme-hero-envelope-card-background,var(--theme-text-light));box-shadow:0 12px 24px var(--theme-hero-envelope-card-shadow,var(--theme-envelope-card-shadow))}.card-peek img{object-fit:cover;object-position:center 24%;border-radius:1px;width:100%;height:100%;display:block}.envelope-art{pointer-events:none;width:100%;height:auto;display:block;position:absolute;top:0;left:0}.envelope-back{z-index:1}.envelope-front{z-index:3}.seal{z-index:5;object-fit:contain;width:82px;height:82px;filter:drop-shadow(0 0 12px var(--theme-envelope-seal-glow)) drop-shadow(0 8px 9px var(--theme-envelope-seal-shadow));transition:transform .35s;position:absolute;top:321px;left:50%;transform:translate(-50%,-50%)}.envelope-button .seal{filter:drop-shadow(0 0 12px var(--theme-cover-seal-glow,var(--theme-envelope-seal-glow))) drop-shadow(0 8px 9px var(--theme-cover-seal-shadow,var(--theme-envelope-seal-shadow)))}.envelope-display .seal{filter:drop-shadow(0 0 12px var(--theme-hero-envelope-seal-glow,var(--theme-envelope-seal-glow))) drop-shadow(0 8px 9px var(--theme-hero-envelope-seal-shadow,var(--theme-envelope-seal-shadow)))}.envelope-button:hover .seal,.envelope-button:focus-visible .seal{transform:translate(-50%,-50%)scale(1.08)}.envelope-button:focus-visible{outline:2px solid var(--theme-cover-envelope-focus,var(--theme-accent));outline-offset:10px}.envelope-button.is-positioning,.envelope-button.is-opening{pointer-events:none}.envelope-button.is-positioning{animation:envelope-position var(--theme-envelope-position-duration,.56s) cubic-bezier(.22, .78, .24, 1) forwards}.envelope-button.is-opening .seal{animation:seal-release var(--theme-envelope-seal-duration,.48s) ease forwards}.envelope-button.is-opening .card-peek{animation:card-rise var(--theme-envelope-card-duration,.78s) cubic-bezier(.2, .75, .25, 1) forwards}.envelope-display.is-opened .card-peek{transform:translateY(-24px)rotate(-.8deg)}.fairy-dust{z-index:8;pointer-events:none;width:1px;height:1px;position:absolute;top:64%;left:50%;transform:translate(-50%,-50%)}.fairy-dust:before{content:"";background:radial-gradient(circle, var(--fairy-burst-primary), var(--fairy-burst-secondary) 42%, transparent 72%);width:165px;height:118px;filter:blur(5px) brightness(var(--fairy-intensity));border-radius:50%;animation:1.15s ease-out forwards fairy-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.3)}.fairy-particle{width:var(--size);height:var(--size);background:radial-gradient(circle, var(--fairy-core) 0 18%, var(--fairy-primary) 32%, var(--fairy-secondary) 67%, transparent 73%);box-shadow:0 0 7px 2px var(--fairy-particle-glow-primary), 0 0 14px var(--fairy-particle-glow-secondary);filter:brightness(var(--fairy-intensity));opacity:0;animation:fairy-burst var(--duration) cubic-bezier(.16, .72, .3, 1) var(--delay) forwards;border-radius:50%;position:absolute;top:0;left:0}.fairy-star{clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);border-radius:0}.envelope-button.is-opening:after{content:"";z-index:4;pointer-events:none;background:radial-gradient(ellipse, var(--fairy-envelope-primary), var(--fairy-envelope-secondary) 48%, transparent 72%);width:68%;height:32%;filter:blur(8px) brightness(var(--fairy-intensity));border-radius:50%;animation:1.3s ease-out forwards fairy-envelope-glow;position:absolute;top:64%;left:50%;transform:translate(-50%,-50%)scale(.4)}.envelope-display{width:min(76vw,300px);height:445px;filter:drop-shadow(0 22px 20px var(--theme-hero-envelope-shadow,var(--theme-envelope-shadow)));margin:1rem auto 0;position:relative}@keyframes fairy-glow{0%{opacity:0;transform:translate(-50%,-50%)scale(.25)}32%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.55)}}@keyframes fairy-envelope-glow{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}35%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}@keyframes fairy-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(0)}18%{opacity:1}72%{opacity:.92}to{opacity:0;transform:translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(.35) rotate(220deg)}}@keyframes envelope-position{to{transform:translate(var(--envelope-move-x), var(--envelope-move-y)) scale(var(--envelope-scale))}}@keyframes seal-release{0%,to{transform:translate(-50%,-50%)scale(1)}50%{filter:drop-shadow(0 0 18px var(--theme-cover-seal-active-glow,var(--theme-envelope-seal-active-glow))) drop-shadow(0 8px 9px var(--theme-cover-seal-shadow,var(--theme-envelope-seal-shadow)));transform:translate(-50%,-50%)scale(1.09)}}@keyframes card-rise{0%{transform:translateY(0)rotate(-1deg)}to{transform:translateY(-24px)rotate(-.8deg)}}@media (width<=760px){.envelope-button{width:min(82vw,286px);height:425px}.card-peek{height:224px;padding:6px 6px 13px;top:86px;left:16%;right:16%}.envelope-art{top:0}.seal{width:76px;height:76px;top:301px}}@media (height<=620px){.envelope-button{width:min(72vw,250px);height:365px}.opening .card-peek{height:198px;top:72px;left:16%;right:16%}.opening .envelope-art{top:0}.opening .seal{top:301px}}@media (width<=360px){.envelope-button{width:min(80vw,252px);height:375px}.card-peek{height:198px;top:76px}.seal{width:70px;height:70px;top:301px}}@media (orientation:landscape) and (height<=620px){.envelope-button{grid-area:envelope;width:220px;height:318px;margin:0}.opening .card-peek{height:174px;padding:4px 4px 10px;top:63px;left:16%;right:16%}.opening .seal{width:62px;height:62px;top:301px}}@media (width<=600px){.envelope-display{width:min(82vw,286px);height:425px;margin-top:.75rem}}@media (width<=360px){.envelope-display{width:min(80vw,252px);height:375px}}
