.wedding-music{right:var(--gutter);z-index:60;color:#fff;max-width:280px;font-family:Inter,Arial,sans-serif;position:fixed;top:26px;bottom:auto}.music-controls{border:1px solid var(--gold-soft);background:#0a2a20;border-radius:999px;justify-content:flex-end;align-items:center;width:max-content;margin-left:auto;display:flex;overflow:hidden}.music-controls button{min-width:44px;min-height:44px;color:var(--cream);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font:14px/1.4 Inter,Arial,sans-serif;display:flex}.music-play span{display:none}.music-controls button:hover{background:#ffffff0c}.wedding-music button:focus-visible{outline:2px solid var(--cream);outline-offset:-4px}.music-error{border:1px solid var(--gold-soft);background:#0a2a20fa;border-radius:12px;width:280px;margin:0;padding:20px;font-size:14px;line-height:1.6;position:absolute;top:58px;right:0;box-shadow:0 8px 30px #0003}@media (min-width:801px){.flow-header nav{grid-template-columns:repeat(3,calc(16.6667% - 18.6667px)) 112px repeat(4,calc(12.5% - 39px));gap:0}.flow-header nav a:nth-child(n+4){justify-self:start}}@media (min-width:801px) and (max-width:1100px){.wedding-music{top:20px}.flow-header nav{grid-template-columns:repeat(3,calc(16.6667% - 15px)) 90px repeat(4,calc(12.5% - 36.25px))}}@media (max-width:800px){.wedding-music{left:var(--gutter);top:17px;right:auto}.music-error{width:min(280px,100vw - 48px);left:0;right:auto}body:has(.wedding-music) .header-signature{visibility:hidden}}.celebration-welcome{z-index:200;isolation:isolate;color:#fff;background:linear-gradient(#0e3b2e,#0a2a20);place-items:center;min-height:100svh;padding:48px 24px 60px;display:grid;position:fixed;inset:0;overflow:auto}.celebration-welcome:before{content:"";pointer-events:none;border:1px solid #c6a96838;position:absolute;inset:22px}.celebration-welcome:after{content:"";pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.7' d='M0 0h160v160H0z'/%3E%3C/svg%3E");position:absolute;inset:0}.welcome-content{z-index:1;text-align:center;transform-origin:50% 40%;flex-direction:column;align-items:center;width:min(100%,700px);display:flex;position:relative}.welcome-monogram{aspect-ratio:1;background:#fff;border-radius:50%;width:clamp(150px,22vh,224px);margin:0 0 30px;padding:10px;box-shadow:0 0 0 8px #ffffff03,0 0 0 9px #c6a96835}.welcome-monogram img{object-fit:contain;border-radius:50%;width:100%;height:100%;display:block}.celebration-welcome h1{letter-spacing:-.04em;color:#fff;margin:0;font:400 clamp(48px,5.7vw,78px)/1.08 Bodoni,Georgia,serif}.celebration-welcome h1 span{display:block}.celebration-welcome h1 em{color:#e5d2a4;font-weight:400}.welcome-title-line{margin-bottom:-.16em;padding:0 .08em .16em;overflow:hidden}.welcome-title-words{transform-origin:0 100%;animation:1.25s cubic-bezier(.16,1,.3,1) .16s both welcome-line-rise}.welcome-title-line:nth-child(2) .welcome-title-words{animation-delay:.32s}.welcome-enter{animation:1s cubic-bezier(.16,1,.3,1) .64s both welcome-button-arrive}@keyframes welcome-line-rise{0%{opacity:0;transform:translateY(110%)rotate(1.5deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes welcome-button-arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.is-entering .welcome-title-line{animation:.85s cubic-bezier(.4,0,.2,1) both welcome-line-depart}.is-entering .welcome-title-line:nth-child(2){animation-delay:80ms}@keyframes welcome-line-depart{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.welcome-enter{color:#e5d2a4;letter-spacing:.05em;cursor:pointer;background:0 0;border:1px solid #c6a9689c;border-radius:999px;justify-content:center;align-items:center;gap:22px;min-height:56px;margin-top:36px;padding:17px 28px;font:12px/1.5 Inter,Arial,sans-serif;transition:background .25s,border-color .25s;display:inline-flex}.welcome-enter:hover{background:#ffffff08;border-color:#e5d2a4}.welcome-enter:focus-visible{outline-offset:6px;outline:2px solid #e5d2a4}.welcome-enter:disabled{cursor:default}html{scrollbar-gutter:stable}body:has(.celebration-welcome){overflow:hidden}.celebration-welcome.is-entering{pointer-events:none;will-change:opacity;animation:1.6s cubic-bezier(.4,0,.2,1) both welcome-dissolve}.is-entering .welcome-content{will-change:transform,opacity;animation:1.6s cubic-bezier(.25,.46,.45,.94) both welcome-zoom}body:has(.celebration-welcome.is-entering) #celebration-site{transform-origin:50% 45svh;will-change:transform;animation:1.6s cubic-bezier(.25,.46,.45,.94) both celebration-arrival}@keyframes welcome-zoom{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.14)}}@keyframes welcome-dissolve{0%,10%{opacity:1}to{opacity:0}}@keyframes celebration-arrival{0%{transform:scale(.985)}to{transform:scale(1)}}@media (max-width:600px){.celebration-welcome{padding:36px 28px 58px}.celebration-welcome:before{inset:14px}.welcome-monogram{width:176px;margin-bottom:28px}.welcome-enter{margin-top:32px;padding:16px 24px}}@media (max-height:700px){.celebration-welcome{padding-top:32px;padding-bottom:48px}.welcome-monogram{width:136px;margin-bottom:22px}.celebration-welcome h1{font-size:48px}}@media (prefers-reduced-motion:reduce){.celebration-welcome.is-entering{animation:.16s linear both welcome-dissolve!important}.is-entering .welcome-content{animation:none!important;transform:none!important}body:has(.celebration-welcome.is-entering) #celebration-site{animation:none!important;transform:none!important}}
