:root{--ivory:#f8fbfd;--paper:#fffefa;--ink:#466e88;--muted:#809cad;--wine:#7fa8c5;--gold:#c5b17e}
body{background:#f5f9fb;color:#466e88}body.sealed{overflow:hidden}main{max-width:1000px;margin:auto;overflow:hidden;background:#fffefa}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #5e8fac;outline-offset:6px}
.envelope-stage{position:fixed;inset:0;z-index:40;perspective:1200px;isolation:isolate;overflow:hidden;max-width:1000px;margin:auto}.envelope-stage[hidden]{display:none}.envelope-paper{position:absolute;inset:0;background:#f7f3e9}.envelope-back{transition:opacity .4s .2s}.envelope-panel{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 4px #8c806322);transition:transform 1.65s cubic-bezier(.38,.05,.25,1);will-change:transform}.fold-edge{fill:none;stroke:#b7a67b;stroke-width:1.25;opacity:.8}.panel-top{z-index:1;transform-origin:top;transition-delay:.15s}.panel-bottom{z-index:2;transform-origin:bottom;transition-delay:.35s}.panel-left{z-index:3;transform-origin:left;transition-delay:.45s}.panel-right{z-index:4;transform-origin:right;transition-delay:.55s}.envelope-title{position:absolute;z-index:5;top:18%;left:0;width:100%;text-align:center;font:300 clamp(26px,5vw,43px)/1.6 'Noto Serif Armenian',Georgia,serif;letter-spacing:2px;color:#8a8c7c;transition:opacity .5s}.wax-seal{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);width:116px;height:116px;border-radius:47% 44% 48% 43%;border:2px solid #d4a65b;background:radial-gradient(ellipse at 30% 20%,#ffe6b0 0%,#d7a14e 45%,#ac6c30 70%,#e7b769 88%,#b77f3c);box-shadow:2px 8px 14px #78513745,inset 0 0 0 5px #e7b973,inset 0 0 0 8px #ac743b77;transition:transform .7s,opacity .65s}.wax-seal:before{content:'';position:absolute;inset:15px;border-radius:50%;border:1px solid #a57336;box-shadow:inset 2px 2px 3px #ffe3a8,1px 1px 3px #ffe5ba}.wax-seal>span{position:relative;font:italic 38px Georgia,serif;color:#a66c30;text-shadow:1px 1px #ffe4ae,-1px -1px #a86c2b}.seal-and{font-size:20px;margin:0 -5px;display:inline-block;transform:translateY(9px)}.wax-seal:hover{transform:translate(-50%,-50%) rotate(-8deg) scale(1.04)}.envelope-hint{position:absolute;z-index:5;top:75%;width:100%;text-align:center;color:#8a8c7c;font-size:10px;letter-spacing:2px;transition:opacity .45s}.envelope-hint small{display:block;margin-top:30px;font:18px Georgia,serif;letter-spacing:5px}.is-opening .envelope-back{opacity:0}.is-opening .panel-top{transform:translateY(-100%) rotateX(12deg)}.is-opening .panel-bottom{transform:translateY(103%)}.is-opening .panel-left{transform:translateX(-103%) rotateY(-12deg)}.is-opening .panel-right{transform:translateX(103%) rotateY(12deg)}.is-opening .wax-seal{transform:translate(-50%,-65%) rotate(12deg) scale(1.25);opacity:0}.is-opening .envelope-title,.is-opening .envelope-hint{opacity:0}
/* Each flower is an independent transparent watercolor sprite. */
.flower-garden{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.flower{position:absolute;width:var(--size);aspect-ratio:1;left:var(--x);top:var(--y);transform:translate(-50%,-50%) rotate(var(--angle));transition:left 3.1s cubic-bezier(.22,.65,.3,1),top 3.1s cubic-bezier(.22,.65,.3,1),transform 3.1s ease;transition-delay:var(--delay)}.flower-art{display:block;width:100%;height:100%;background-image:url('assets/motion-sprites.png');background-repeat:no-repeat;background-size:300% 200%;background-position:var(--cell);transform-origin:50% 90%;animation:flower-sway var(--duration) ease-in-out infinite alternate;animation-delay:var(--phase);animation-play-state:paused}.motion-active .flower-art{animation-play-state:running}.flower-garden.hero-garden .flower{left:var(--start-x);top:var(--start-y);transform:translate(-50%,-50%) rotate(var(--start-angle)) scale(1.05)}.flowers-unfurl .hero-garden .flower{left:var(--x);top:var(--y);transform:translate(-50%,-50%) rotate(var(--angle))}.hero-garden{opacity:1}.flower-garden.quiet-garden{opacity:.8}.quiet-garden .flower{width:calc(var(--size)*.9)}
@keyframes flower-sway{from{transform:rotate(-4deg) translateY(0)}to{transform:rotate(5deg) translateY(-5px)}}
/* Preserve the original content and layout, using the new blue floral palette. */
.christening-invitation{min-height:100svh!important;display:grid;place-items:center!important;padding:105px 35px 95px!important;background:#fffefa;isolation:isolate}.christening-invitation .christening-texture{background:none!important;opacity:0}.christening-content{position:relative;z-index:4;max-width:76%;transition:opacity 1.5s ease,transform 1.5s ease}.sealed .christening-content{opacity:0!important;transform:translateY(20px)!important}.christening-invitation:after{content:'';position:absolute;inset:12% 16%;border:1px solid #c7dce9;border-radius:50%;outline:1px solid #dce8ef;outline-offset:7px;opacity:0;transition:opacity 2s 1s;z-index:1}.invitation-ready .christening-invitation:after{opacity:1}.ceremony-heading,.christening-invitation .ceremony-heading,.christening-names,.christening-date,.ceremony-cross,.ceremony-divider{color:#648ca6!important}.christening-invitation .ceremony-heading{font-size:clamp(1.7rem,5.5vw,3rem);line-height:1.65}.christening-names{flex-wrap:wrap;justify-content:center}.ceremony-divider{z-index:4}.christening-invitation+.hero:before{background:linear-gradient(#fffefa,transparent)!important}.hero.engagement-ivory{--ceremony-ink:#648ca6;background:#fffefa;color:#648ca6}.hero.engagement-ivory .engagement-intro,.engagement-date{position:relative;z-index:5}.hero.engagement-ivory .engagement-names,.hero.engagement-ivory h1.engagement-names i,.engagement-date,.date-day,.date-month,.date-year{color:#6389a2!important}.engagement-ivory .flower-garden{z-index:3}.engagement-ambience:before{opacity:.2}.welcome-letter,.calendar,.countdown,.schedule,.closing{background:#fffefa!important}.welcome-letter .intro{position:relative;z-index:4;color:#516e80;max-width:650px}.calendar .calendar-card,.countdown>*:not(.flower-garden),.schedule>.events,.schedule>h2,.closing .closing-card{position:relative;z-index:4}.calendar .calendar-card{background:#fffefac9}.calendar .calendar-heading,.calendar .calendar-heading span,.calendar .calendar-heading b,.calendar .days,.calendar .weekdays,.calendar .days strong{color:#63859c!important}.countdown-section-title,.countdown .timer b,.countdown .timer span,.countdown-date,.schedule h2,.event h3,.event p,.event a,.event .time,.event-detail,.closing-card h2,.closing-date{color:#6389a2!important}.countdown .timer div{border-color:#cddfe9;background:#f0f7fbcc}.countdown-ornament,.welcome-divider,.closing-flourish{color:#97b8cc!important}.closing-atmosphere{opacity:.2}.event{position:relative}.music-control{position:fixed;z-index:50;bottom:18px;right:18px;border:1px solid #c8dce7;border-radius:50%;width:44px;height:44px;color:#668fa8;background:#fffdf7e8;font-size:21px;box-shadow:0 3px 12px #52718b11}.music-control[hidden],.replay-control[hidden]{display:none}.music-control[aria-pressed=false]{opacity:.65}.music-control[aria-pressed=true]{opacity:1}.replay-control{display:block;margin:0 auto 35px;border:0;border-bottom:1px solid #b7cedc;padding:12px 0 7px;background:transparent;font-size:11px;color:#6588a0}
/* Moving paths and actual wing flaps are separate animations. */
.butterfly-sky{position:fixed;inset:0;z-index:25;overflow:hidden;pointer-events:none;contain:strict;visibility:hidden}.flowers-unfurl .butterfly-sky,.invitation-ready .butterfly-sky{visibility:visible}.butterfly{position:absolute;left:var(--bx);top:var(--by);width:var(--bs);height:var(--bs);opacity:0;animation:butterfly-flight var(--flight-time) var(--flight-delay) ease-in-out infinite;animation-play-state:paused;will-change:transform}.flowers-unfurl .butterfly,.invitation-ready .butterfly{animation-play-state:running}.butterfly-body{position:absolute;inset:0;transform:rotate(var(--tilt));filter:drop-shadow(0 2px 2px #6c8ea51c);perspective:180px}.wing{position:absolute;top:0;width:50%;height:100%;overflow:hidden;backface-visibility:visible}.wing-left{left:0;transform-origin:100% 50%;animation:flap-left var(--flap-speed) ease-in-out infinite}.wing-right{left:50%;transform-origin:0 50%;animation:flap-right var(--flap-speed) ease-in-out infinite}.wing-art{position:absolute;top:0;width:200%;height:100%;background-image:url('assets/motion-sprites.png');background-size:300% 200%;background-position:50% 100%;background-repeat:no-repeat}.wing-left .wing-art{left:0}.wing-right .wing-art{left:-100%}.page-hidden .flower-art,.page-hidden .butterfly,.page-hidden .wing{animation-play-state:paused!important}
@keyframes flap-left{0%,100%{transform:rotateY(0deg)}50%{transform:rotateY(72deg)}}@keyframes flap-right{0%,100%{transform:rotateY(0deg)}50%{transform:rotateY(-72deg)}}
@keyframes butterfly-flight{0%{opacity:0;transform:translate3d(0,8vh,0) rotate(-20deg) scale(.7)}8%{opacity:.95}25%{transform:translate3d(var(--dx1),-12vh,0) rotate(20deg) scale(1)}50%{transform:translate3d(var(--dx2),-30vh,0) rotate(-12deg) scale(.85)}75%{opacity:.9;transform:translate3d(var(--dx1),-55vh,0) rotate(25deg) scale(1)}92%,100%{opacity:0;transform:translate3d(var(--dx3),-85vh,0) rotate(-10deg) scale(.7)}}
@media(max-width:700px){.christening-invitation{min-height:max(780px,100svh)!important;padding:100px 20px 90px!important}.christening-content{max-width:77%}.christening-invitation .ceremony-heading{font-size:clamp(1.65rem,6vw,2.5rem)}.christening-names{font-size:1rem;display:flex;flex-direction:column;gap:8px;margin-top:20px}.christening-names i{display:none}.christening-date{margin-top:25px}.christening-date .christening-day{font-size:5rem}.christening-invitation:after{inset:12% 13%}.flower{width:calc(var(--size)*.78)}.quiet-garden .flower{width:calc(var(--size)*.7)}.welcome-letter .intro{max-width:83%;font-size:1rem}.wax-seal{width:102px;height:102px}.envelope-title{top:18%;font-size:29px}.envelope-hint{font-size:9px}.hero.engagement-ivory h1.engagement-names{font-size:clamp(1.7rem,8vw,2.8rem)}.butterfly{width:calc(var(--bs)*.85);height:calc(var(--bs)*.85)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.envelope-panel,.flower,.envelope-back,.wax-seal,.christening-content{transition:none!important}.flower-art,.butterfly,.wing{animation:none!important}.butterfly-sky{display:none}.invitation-ready .christening-invitation:after{transition:none}.hero-garden .flower{left:var(--x);top:var(--y)}}
