body.royal-vow{--royal-screen-height:100svh;--gold:#c9a45a;--burgundy:#4a1025;--wine:#6d1838;--ivory:#f9f6f1;--beige:#efe6d8;--ink:#2e2a26;--line:#e7d7b4;--motion-fade:cubic-bezier(.4,0,.2,1);--motion-ease:cubic-bezier(.22,1,.36,1);margin:0;background:#302527;color:#4a1025;font:16px/1.5 Manrope,sans-serif;overflow-x:hidden}
.royal-vow .royal-frame{width:100%;max-width:440px;margin:auto;position:relative;isolation:isolate;container:royal/inline-size;background:#f8edd7;box-shadow:0 0 100px #1c111133}
.royal-vow .royal-frame *,.royal-vow .royal-frame *:before,.royal-vow .royal-frame *:after{box-sizing:border-box}
.royal-vow #wedding-content{opacity:1;transform:none;overflow:hidden}
.royal-vow :where(#wedding-content h1,#wedding-content h2,#wedding-content h3,#wedding-content p,#wedding-content figure,#wedding-content fieldset){margin:0;padding:0;font:inherit;letter-spacing:normal}
.royal-vow img,.royal-vow svg{vertical-align:middle}
.royal-vow button,.royal-vow input,.royal-vow textarea,.royal-vow select{font:inherit}
.royal-vow button,.royal-vow a{-webkit-tap-highlight-color:transparent}
.royal-vow .royal-hero{padding:0;display:block;min-height:0;height:var(--royal-screen-height);position:relative;background:#f8edd7;color:#4a1025}
.royal-vow .royal-hero:after,.royal-vow .royal-hero:before{content:none}
.royal-vow .mobile-reference-background{z-index:0}
.royal-vow .mobile-reference-copy{z-index:1}
.royal-vow .intro-names:focus{outline:none}
.royal-vow .royal-accessible{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}

/* latin-ext */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-0.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-0.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-0.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-2.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-3.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-4.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-6.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-7.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-8.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-9.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-11.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-7.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-8.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-9.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-10.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-11.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-12.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-13.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-14.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-15.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-16.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-17.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-12.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-13.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-14.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-15.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-16.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../img/royal/fonts/royal-font-17.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Royal Vow: scene styling adapted from the requested Daniel & Hannah reference. */
.royal-vow .intro-mobile-background{background-image: var(--intro-mobile-image);}
@keyframes slow-pan { 
  0% { transform: scale(1) translate(0px); }
  50% { transform: scale(1.04) translate(-0.5%, -0.5%); }
  100% { transform: scale(1) translate(0px); }
}
@keyframes ambient-fall { 
  0% { opacity: 0; transform: translateY(-calc(var(--royal-screen-height) * 0.05)) translate(0px) rotate(0deg); }
  10% { opacity: 0.8; }
  30% { transform: translateY(calc(var(--royal-screen-height) * 0.3)) translateX(var(--sway)) rotate(120deg); }
  60% { transform: translateY(calc(var(--royal-screen-height) * 0.65)) translateX(calc(var(--sway) * -.6)) rotate(240deg); }
  90% { opacity: 0.8; }
  100% { transform: translateY(calc(var(--royal-screen-height) * 1.1)) translateX(calc(var(--sway) * .4)) rotate(360deg); opacity: 0; }
}
@keyframes side-leaf-fall { 
  0% { transform: translate3d(0, -calc(var(--royal-screen-height) * 0.08), 0) rotate(var(--leaf-start-rotation)) scale(var(--leaf-scale)) scaleX(var(--leaf-flip)); opacity: 0; }
  12%, 82% { opacity: 0.42; }
  38% { transform: translate3d(var(--leaf-sway), calc(var(--royal-screen-height) * 0.38), 0) rotate(calc(var(--leaf-start-rotation) + 90deg)) scale(var(--leaf-scale)) scaleX(var(--leaf-flip)); }
  68% { transform: translate3d(var(--leaf-sway-back), calc(var(--royal-screen-height) * 0.76), 0) rotate(calc(var(--leaf-start-rotation) + 190deg)) scale(var(--leaf-scale)) scaleX(var(--leaf-flip)); }
  100% { transform: translate3d(var(--leaf-sway-end), calc(var(--royal-screen-height) * 1.12), 0) rotate(var(--leaf-end-rotation)) scale(var(--leaf-scale)) scaleX(var(--leaf-flip)); opacity: 0; }
}
@keyframes pulse { 
  50% { opacity: 0.5; }
}
@container royal (width <= 820px){.royal-vow .reception-mobile{isolation: isolate; color: rgb(248, 238, 220); text-align: center; background: rgb(44, 11, 26); flex-direction: column; justify-content: flex-end; min-height: calc(var(--royal-screen-height) * 1); display: flex; position: relative; overflow: hidden;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-hall{z-index: -3; object-fit: cover; object-position: center 40%; width: 100%; height: 100%; position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-dusk{z-index: -2; pointer-events: none; background: radial-gradient(at 50% 22%, rgba(255, 206, 130, 0.18), rgba(0, 0, 0, 0) 55%), linear-gradient(rgba(44, 11, 26, 0.05) 0%, rgba(44, 11, 26, 0.2) 24%, rgba(44, 11, 26, 0.7) 38%, rgba(44, 11, 26, 0.9) 52%, rgb(44, 11, 26) 66%, rgb(37, 9, 21) 100%); position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-content{padding: 0px 30px 64px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-eyebrow{letter-spacing: 0.36em; text-transform: uppercase; color: rgb(255, 250, 242); text-shadow: rgba(20, 4, 10, 0.9) 0px 1px 10px; margin: 0px; font: 700 10px / 1.5 Cinzel, Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile .reception-mobile-content h2{letter-spacing: -1px; color: rgb(251, 242, 226); text-shadow: rgba(20, 4, 10, 0.5) 0px 2px 24px; margin: 10px 0px 0px; padding: 0px; font: 400 clamp(52px, 15cqw, 66px) / 1.02 Ethereal, Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile .reception-mobile-intro{color: rgb(242, 228, 205); text-shadow: rgba(20, 4, 10, 0.6) 0px 1px 10px; text-wrap: balance; max-width: 280px; margin: 12px auto 0px; font: italic 700 19px / 1.5 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-date{flex-direction: column; align-items: center; margin: 40px auto 0px; display: flex;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-day-arch{background: radial-gradient(80% 70% at 50% 100%, rgba(232, 190, 110, 0.2), rgba(232, 190, 110, 0.06) 60%, rgba(0, 0, 0, 0) 80%); border-width: 1px 1px 0px; border-style: solid solid none; border-color: rgba(216, 178, 106, 0.8) rgba(216, 178, 106, 0.8) currentcolor; border-image: none; border-radius: 999px 999px 0px 0px; flex-direction: column; justify-content: flex-end; align-items: center; width: 128px; height: 178px; padding-bottom: 20px; display: flex; position: relative;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-day-arch::before{content: ""; pointer-events: none; border-width: 1px 1px 0px; border-style: solid solid none; border-color: rgba(216, 178, 106, 0.3) rgba(216, 178, 106, 0.3) currentcolor; border-image: none; border-radius: 999px 999px 0px 0px; position: absolute; inset: 6px 6px 0px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-star{color: rgb(232, 196, 124); text-shadow: rgba(232, 196, 124, 0.6) 0px 0px 8px; padding: 0px 5px; font-size: 13px; font-style: normal; line-height: 1; position: absolute; top: -11px; left: 50%; translate: -50%;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-day-arch strong{color: rgb(240, 207, 138); text-shadow: rgba(232, 190, 110, 0.25) 0px 0px 18px; font: 400 76px / 1 "Libre Caslon Display", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-day-arch small{letter-spacing: 0.32em; text-transform: uppercase; color: rgb(233, 211, 166); margin-top: 10px; padding-left: 0.32em; font: 700 10px / 1 Cinzel, Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-base{background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgb(216, 178, 106) 30%, rgb(216, 178, 106) 70%, rgba(0, 0, 0, 0)); width: 270px; height: 1px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-month{color: rgb(244, 230, 204); margin-top: 18px; font: 500 26px / 1 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-month b,.royal-vow .reception-mobile-time b{letter-spacing: 0.02em; color: rgb(236, 201, 131); font: 400 1.05em / 1 "Libre Caslon Display", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-month i{color: rgb(216, 178, 106); margin: 0px 6px; font-style: normal;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-time{color: rgb(230, 212, 191); margin: 12px 0px 0px; font: italic 500 23px / 1.4 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-venue{border-top: 1px solid rgba(216, 178, 106, 0.25); margin-top: 30px; padding-top: 24px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-venue h3{color: rgb(251, 242, 226); margin: 0px; font: 600 24px / 1.2 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-venue address{color: rgb(205, 184, 163); margin: 4px 0px 0px; font: italic 500 16px / 1.5 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-venue a{color: rgb(243, 223, 180); text-transform: uppercase; letter-spacing: 0.24em; border: 1px solid rgb(216, 178, 106); border-radius: 999px; align-items: center; gap: 9px; margin-top: 20px; padding: 12px 24px; font: 700 9.5px / 1 Cinzel, Georgia, serif; text-decoration: none; transition: background-color 0.35s, color 0.35s; display: inline-flex;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-venue a:hover{color: rgb(44, 11, 26); background: rgb(216, 178, 106);}}
@container royal (width <= 820px){.royal-vow .reception-mobile-venue a:focus-visible{outline-offset: 4px; outline: rgb(216, 178, 106) solid 2px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile{z-index: 2; background: 0px 0px; margin-top: -110px; padding-top: 110px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-hall{mask-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15) 30px, rgba(0, 0, 0, 0.45) 65px, rgba(0, 0, 0, 0.8) 105px, rgb(0, 0, 0) 150px);}}
@container royal (width <= 820px){.royal-vow .reception-mobile-dusk{mask-image: linear-gradient(rgba(0, 0, 0, 0), rgb(0, 0, 0) 150px);}}
@container royal (width <= 820px){.royal-vow .reception-mobile::after{content: ""; z-index: -4; background: linear-gradient(rgba(0, 0, 0, 0) 60px, rgb(90, 58, 46) 150px, rgb(44, 11, 26) 260px); position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .reception-mobile .reception-mobile-hall{filter: brightness(0.55) saturate(0.7); transition: filter 3.2s cubic-bezier(0.4, 0, 0.2, 1) 0.1s;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-hall{filter: none;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-content h2 > i{font-style: normal; display: inline-block;}}
@container royal (width <= 820px){.royal-vow .reception-mobile-content .reception-mobile-eyebrow,.royal-vow .reception-mobile-content h2 > i,.royal-vow .reception-mobile-content .reception-mobile-intro,.royal-vow .reception-mobile-day-arch,.royal-vow .reception-mobile-star,.royal-vow .reception-mobile-day-arch strong,.royal-vow .reception-mobile-day-arch small,.royal-vow .reception-mobile-base,.royal-vow .reception-mobile-month,.royal-vow .reception-mobile-time,.royal-vow .reception-mobile-venue{opacity: 0;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-eyebrow{animation: 2s ease 0.2s 1 normal both running reception-track;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-content h2 > i{animation: reception-letter 1.6s cubic-bezier(.25,.1,.25,1) var(--letter-delay) both;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-intro{animation: 2s ease 1.3s 1 normal both running reception-float;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-base{animation: 1.8s cubic-bezier(0.22, 1, 0.36, 1) 1.9s 1 normal both running reception-unfurl;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-day-arch{animation: 2.2s cubic-bezier(0.45, 0, 0.2, 1) 2.1s 1 normal both running reception-arch, 5s ease-in-out 4.5s infinite normal none running reception-candle;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-day-arch strong{animation: 2s ease 2.9s 1 normal both running reception-glow;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-day-arch small{animation: 1.8s ease 3.3s 1 normal both running reception-track;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-star{animation: 1.6s ease 3.7s 1 normal both running reception-star, 3.6s ease-in-out 5.3s infinite normal none running reception-twinkle;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-month{animation: 1.8s ease 3.6s 1 normal both running reception-float;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-time{animation: 1.8s ease 3.85s 1 normal both running reception-float;}}
@container royal (width <= 820px){.royal-vow .reception-mobile[data-shown="true"] .reception-mobile-venue{animation: 2s ease 4.15s 1 normal both running reception-float;}}
@keyframes reception-track { 
  0% { opacity: 0; letter-spacing: 0.7em; }
  100% { opacity: 1; }
}
@keyframes reception-letter { 
  0% { opacity: 0; filter: blur(5px); transform: translateY(0.18em); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes reception-float { 
  0% { opacity: 0; filter: blur(3px); transform: translateY(10px); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes reception-unfurl { 
  0% { opacity: 0; transform: scaleX(0); }
  100% { opacity: 1; transform: none; }
}
@keyframes reception-arch { 
  0% { opacity: 1; clip-path: inset(100% -10% 0px); }
  100% { opacity: 1; clip-path: inset(-12% -10% 0px); }
}
@keyframes reception-candle { 
  0%, 100% { box-shadow: rgba(240, 200, 120, 0.18) 0px -30px 40px -20px inset, rgba(240, 200, 120, 0) 0px 0px; }
  50% { box-shadow: rgba(240, 200, 120, 0.3) 0px -40px 50px -20px inset, rgba(240, 200, 120, 0.12) 0px 0px 24px; }
}
@keyframes reception-glow { 
  0% { opacity: 0; filter: blur(10px); text-shadow: rgba(240, 207, 138, 0) 0px 0px; }
  60% { opacity: 1; filter: none; text-shadow: rgba(240, 207, 138, 0.65) 0px 0px 30px; }
  100% { opacity: 1; filter: none; text-shadow: rgba(232, 190, 110, 0.25) 0px 0px 18px; }
}
@keyframes reception-star { 
  0% { opacity: 0; transform: scale(0.4); }
  100% { opacity: 1; transform: none; }
}
@keyframes reception-twinkle { 
  0%, 100% { opacity: 1; transform: none; }
  50% { opacity: 0.55; transform: scale(0.85); }
}
@media (prefers-reduced-motion: reduce){.royal-vow .reception-mobile .reception-mobile-hall{filter: none; transition: none;}}
@media (prefers-reduced-motion: reduce){.royal-vow .reception-mobile-content *{opacity: 1 !important; animation: auto ease 0s 1 normal none running none !important;}}
@container royal (width <= 820px){.royal-vow .reception-mobile{min-height: calc(180px + calc(var(--royal-screen-height) * 1));}}
@container royal (width <= 820px){.royal-vow .reception-mobile .reception-mobile-hall{object-position: 50% 0px; height: min(100%, 260px + 128cqw); inset: 60px 0px auto;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile{color: rgb(76, 24, 50); text-align: center; background: linear-gradient(rgb(244, 233, 217), rgb(246, 236, 223) 45%, rgb(239, 227, 209)); padding: 46px 0px 70px; position: relative; overflow: hidden;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-heading{padding: 0px 24px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile .ceremony-mobile-eyebrow{letter-spacing: 2.3px; text-transform: uppercase; color: rgb(150, 112, 68); justify-content: center; align-items: center; gap: 7px; margin: 0px; font: 600 10px / 1.5 Cinzel, Georgia, serif; display: flex;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile h2.royal-ceremony-title{letter-spacing: -0.7px; color: rgb(76, 24, 50); margin: 17px 0px 0px; font: 400 clamp(37px, 10.5cqw, 53px) / 1.05 Ethereal, Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile h2.royal-ceremony-title span{color: rgb(159, 120, 71); margin-top: 4px; font: italic 1.17em / 1.08 "Cormorant Garamond", Georgia, serif; display: block;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-intro{color: rgb(124, 100, 81); margin: 19px 0px 0px; font: italic 17px / 1.5 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-photo{border: 6px solid rgb(251, 243, 231); border-radius: 50% 50% 0px 0px / 45% 45% 0px 0px; outline: rgba(177, 138, 81, 0.3) solid 1px; width: calc(100% - 68px); max-width: 400px; height: clamp(260px, 78cqw, 360px); margin: 30px auto 0px; position: relative; overflow: hidden; box-shadow: rgba(84, 34, 58, 0.1) 0px 14px 35px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-photo img{object-fit: cover; object-position: center 45%; width: 100%; height: 100%; display: block;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-photo::after{content: ""; background: linear-gradient(rgba(0, 0, 0, 0), rgba(75, 28, 52, 0.267)); position: absolute; inset: 70% 0px 0px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper{color: rgb(255, 241, 223); isolation: isolate; background: radial-gradient(at 50% 0px, rgb(117, 66, 90), rgb(74, 28, 53) 60%, rgb(54, 19, 41)); border: 1px solid rgba(185, 147, 91, 0.533); border-radius: 35px 35px 7px 7px; width: calc(100% - 36px); max-width: 450px; margin: -32px auto 0px; padding: 0px 24px 34px; position: relative; box-shadow: rgba(74, 28, 53, 0.125) 0px 16px 30px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper::before{content: ""; z-index: -1; pointer-events: none; border: 1px solid rgba(217, 185, 128, 0.2); border-radius: 28px 28px 3px 3px; position: absolute; inset: 8px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-date{color: rgb(76, 24, 50); background: rgb(248, 238, 223); border: 1px solid rgb(181, 139, 81); border-radius: 50%; flex-direction: column; justify-content: center; align-items: center; gap: 4px; width: 126px; height: 126px; margin: -44px auto 0px; display: flex; position: relative; box-shadow: rgba(248, 238, 223, 0.333) 0px 0px 0px 6px, rgba(32, 9, 22, 0.145) 0px 6px 15px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-weekday{letter-spacing: 2px; text-transform: uppercase; color: rgb(152, 115, 67); font: 600 8px / 1.4 Cinzel, Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-day{letter-spacing: -2px; font: 400 57px / 0.95 Ethereal, Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-date-copy{letter-spacing: 0.5px; font: 500 12px / 1.5 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-service{padding: 25px 0px 26px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-rings{stroke: rgb(217, 183, 125); stroke-width: 1.3px; width: 36px; height: 28px; margin: 0px auto 10px; display: block;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-service h3{color: rgb(255, 241, 223); margin: 0px; font: 400 28px / 1.2 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-service p{color: rgb(234, 214, 184); justify-content: center; gap: 11px; margin: 12px 0px 0px; font: 500 16px / 1.4 "Cormorant Garamond", Georgia, serif; display: flex;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-venue{border-top: 1px solid rgba(217, 183, 125, 0.27); padding: 25px 0px 0px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper .ceremony-mobile-eyebrow{letter-spacing: 2px; color: rgb(217, 183, 125); font-size: 9px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-venue h3{letter-spacing: -0.3px; color: rgb(255, 241, 223); margin: 16px 0px 11px; font: 400 clamp(25px, 7cqw, 32px) / 1.15 Ethereal, Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-venue address{color: rgb(234, 214, 184); font: 400 16px / 1.5 "Cormorant Garamond", Georgia, serif;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-calendar{color: rgb(76, 24, 50); letter-spacing: 1.4px; text-transform: uppercase; cursor: pointer; background: rgb(249, 239, 223); border: 1px solid rgb(217, 183, 125); border-radius: 99px; justify-content: center; align-items: center; gap: 9px; width: 100%; max-width: 285px; min-height: 48px; margin: 25px auto 0px; padding: 12px; font: 600 9px / 1.4 Cinzel, Georgia, serif; display: flex;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-calendar:focus-visible{outline-offset: 4px; outline: rgb(247, 223, 171) solid 2px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-end{color: rgb(217, 183, 125); margin-top: 22px; font: 11px / 1 Georgia, serif; display: block;}}
@container royal (width <= 820px){@container royal (width <= 350px){.royal-vow .ceremony-mobile-paper{padding-left: 22px; padding-right: 22px;}}}
@container royal (width <= 820px){@container royal (width <= 350px){.royal-vow .ceremony-mobile-photo{width: calc(100% - 54px);}}}
@container royal (width <= 820px){@container royal (width <= 350px){.royal-vow .ceremony-mobile-intro{font-size: 16px;}}}
@container royal (width <= 820px){@container royal (width <= 350px){.royal-vow .ceremony-mobile-venue address{font-size: 15px;}}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile h2.royal-ceremony-title i{font-style: inherit; display: inline-block;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile h2.royal-ceremony-title i,.royal-vow .ceremony-mobile-intro,.royal-vow .ceremony-mobile-photo,.royal-vow .ceremony-mobile-date,.royal-vow .ceremony-mobile-paper > :not(.ceremony-mobile-date){opacity: 0;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile[data-shown="true"] h2.royal-ceremony-title i{animation: ceremony-letter 1.6s cubic-bezier(.25,.1,.25,1) var(--letter-delay) both;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile[data-shown="true"] .ceremony-mobile-intro{animation: 1.8s ease 1.5s 1 normal both running ceremony-float;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile[data-shown="true"] .ceremony-mobile-photo{animation: 2s cubic-bezier(0.65, 0, 0.25, 1) 0.7s 1 normal both running ceremony-doors;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile[data-shown="true"] .ceremony-mobile-photo img{animation: 3.2s ease 0.7s 1 normal both running ceremony-light;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper::after{content: ""; z-index: 2; pointer-events: none; border-radius: inherit; opacity: 0; background: linear-gradient(105deg, rgba(0, 0, 0, 0) 35%, rgba(240, 205, 140, 0.22) 50%, rgba(0, 0, 0, 0) 65%) 150% 0px / 250% 100% no-repeat; position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"]::after{animation: 2.2s cubic-bezier(0.4, 0, 0.2, 1) 0s 1 normal both running ceremony-sheen;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] .ceremony-mobile-date{animation: 1.6s cubic-bezier(0.22, 1, 0.36, 1) 0.1s 1 normal both running ceremony-medallion, 2.4s ease-out 0.8s 1 normal both running ceremony-halo;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-rings circle,.royal-vow .ceremony-mobile-rings path{stroke-dasharray: 1; stroke-dashoffset: 1px;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] .ceremony-mobile-rings circle:first-child{animation: 1.4s cubic-bezier(0.65, 0, 0.35, 1) 0.7s 1 normal forwards running ceremony-draw;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] .ceremony-mobile-rings circle:nth-child(2){animation: 1.4s cubic-bezier(0.65, 0, 0.35, 1) 1.05s 1 normal forwards running ceremony-draw;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] .ceremony-mobile-rings path{animation: 0.8s ease 1.8s 1 normal forwards running ceremony-draw;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] > .ceremony-mobile-service{animation: 1.6s ease 0.45s 1 normal both running ceremony-float;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] > .ceremony-mobile-venue{animation: 1.6s ease 0.75s 1 normal both running ceremony-float;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] > .ceremony-mobile-calendar{animation: 1.6s ease 1.05s 1 normal both running ceremony-float;}}
@container royal (width <= 820px){.royal-vow .ceremony-mobile-paper[data-shown="true"] > .ceremony-mobile-end{animation: 1.4s ease 1.3s 1 normal both running ceremony-float;}}
@keyframes ceremony-letter { 
  0% { opacity: 0; filter: blur(5px); transform: translateY(0.18em); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes ceremony-float { 
  0% { opacity: 0; filter: blur(3px); transform: translateY(14px); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes ceremony-arch { 
  0% { opacity: 1; clip-path: inset(116% -15% -15%); }
  100% { opacity: 1; clip-path: inset(-15%); }
}
@keyframes ceremony-settle { 
  0% { filter: brightness(1.15); scale: 1.12; }
  100% { filter: none; scale: 1; }
}
@keyframes ceremony-doors { 
  0% { opacity: 1; clip-path: inset(0px 50% -15%); }
  100% { opacity: 1; clip-path: inset(-15%); }
}
@keyframes ceremony-light { 
  0% { filter: brightness(1.7) saturate(0.6); scale: 1.1; }
  45% { filter: brightness(1.25) saturate(0.85); }
  100% { filter: none; scale: 1; }
}
@keyframes ceremony-draw { 
  100% { stroke-dashoffset: 0; }
}
@keyframes ceremony-halo { 
  0% { box-shadow: rgba(248, 238, 223, 0.333) 0px 0px 0px 6px, rgba(32, 9, 22, 0.145) 0px 6px 15px, rgba(217, 183, 125, 0.7) 0px 0px 0px 6px; }
  100% { box-shadow: rgba(248, 238, 223, 0.333) 0px 0px 0px 6px, rgba(32, 9, 22, 0.145) 0px 6px 15px, rgba(217, 183, 125, 0) 0px 0px 0px 30px; }
}
@keyframes ceremony-sheen { 
  0% { opacity: 1; background-position: 150% 0px; }
  100% { opacity: 1; background-position: -50% 0px; }
}
@keyframes ceremony-medallion { 
  0% { opacity: 0; transform: translateY(-10px) scale(0.86); }
  100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .ceremony-mobile *,.royal-vow .ceremony-mobile-paper{opacity: 1 !important; animation: auto ease 0s 1 normal none running none !important;}}
@media (prefers-reduced-motion: reduce){.royal-vow .ceremony-mobile-rings circle,.royal-vow .ceremony-mobile-rings path{stroke-dashoffset: 0 !important;}}
.royal-vow .venue-reference{display: none;}
@container royal (width <= 820px){.royal-vow .venue-reference{aspect-ratio: 9 / 20; isolation: isolate; background: rgb(245, 233, 216); width: 100%; min-height: calc(var(--royal-screen-height) * 1); display: block; position: relative; overflow: hidden; container-type: inline-size;}}
@container royal (width <= 820px){.royal-vow .venue-reference-background,.royal-vow .venue-reference-type{width: 100%; height: 100%; display: block; position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .venue-reference-background{object-fit: fill;}}
@container royal (width <= 820px){.royal-vow .venue-reference-type{overflow: visible;}}
@container royal (width <= 820px){.royal-vow .venue-reference-accessible{clip-path: inset(50%); white-space: nowrap; width: 1px; height: 1px; margin: -1px; position: absolute; overflow: hidden;}}
@container royal (width <= 820px){.royal-vow .venue-reference-type text{fill: rgb(75, 23, 53); font-weight: 400;}}
@container royal (width <= 820px){.royal-vow .venue-reference-type .venue-reference-kicker{letter-spacing: 7.5px; text-transform: uppercase; fill: rgb(134, 97, 47); stroke: rgb(134, 97, 47); stroke-width: 0.3px; paint-order: stroke; font-family: Cinzel, Georgia, serif; font-size: 26px; font-weight: 600;}}
@container royal (width <= 820px){.royal-vow .venue-reference-name{letter-spacing: -1px; font-family: Ethereal, Georgia, serif; font-size: 83px;}}
@container royal (width <= 820px){.royal-vow .venue-reference-type .venue-reference-script{fill: rgb(159, 115, 58); font-family: Candlescript, cursive; font-size: 144px;}}
@container royal (width <= 820px){.royal-vow .venue-reference-address{font-family: "Cormorant Garamond", Georgia, serif; font-size: 35px;}}
@container royal (width <= 820px){.royal-vow .venue-reference-message{font-family: "Cormorant Garamond", Georgia, serif; font-size: 40px; font-style: italic;}}
@container royal (width <= 820px){.royal-vow .venue-reference-actions{flex-direction: column; gap: 3cqw; width: 58%; display: flex; position: absolute; top: 61.5%; left: 21%;}}
@container royal (width <= 820px){.royal-vow .venue-reference-actions > a,.royal-vow .venue-reference-actions > button{text-transform: uppercase; letter-spacing: 0.3cqw; white-space: nowrap; cursor: pointer; border-radius: 100px; justify-content: center; align-items: center; gap: 3cqw; width: 100%; height: 11cqw; min-height: 44px; padding: 0px 3cqw; font: 600 2.9cqw / 1.2 Cinzel, Georgia, serif; text-decoration: none; display: flex; position: relative;}}
@container royal (width <= 820px){.royal-vow .venue-reference-actions svg{stroke-width: 1.8px; flex: 0 0 auto; width: 4.6cqw; height: 4.6cqw;}}
@container royal (width <= 820px){.royal-vow .venue-reference-directions{color: rgb(255, 245, 229); background: radial-gradient(at 50% 0px, rgb(117, 65, 92), rgb(67, 21, 46) 80%); border: 1px solid rgb(185, 142, 81); box-shadow: rgb(75, 35, 60) 0px 0px 0px 3px inset, rgb(188, 150, 94) 0px 0px 0px 4px inset, rgba(72, 32, 51, 0.19) 0px 5px 9px;}}
@container royal (width <= 820px){.royal-vow .venue-reference-directions svg{color: rgb(215, 178, 119); fill: rgb(181, 139, 87);}}
@container royal (width <= 820px){.royal-vow .venue-reference-calendar{color: rgb(75, 23, 53); background: rgba(255, 249, 238, 0.333); border: 1.5px solid rgb(181, 138, 80);}}
@container royal (width <= 820px){.royal-vow .venue-reference-actions > a:focus-visible,.royal-vow .venue-reference-actions > button:focus-visible{outline-offset: 4px; outline: rgb(112, 65, 91) solid 2px;}}
@container royal (width <= 820px){.royal-vow .venue-reference{background: rgb(239, 227, 209);}}
@container royal (width <= 820px){.royal-vow .venue-reference-background{mask-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.25) 40px, rgba(0, 0, 0, 0.65) 85px, rgb(0, 0, 0) 140px);}}
@container royal (width <= 820px){.royal-vow .venue-reference-type text,.royal-vow .venue-reference-divider,.royal-vow .venue-reference-actions > *{opacity: 0;}}
@container royal (width <= 820px){.royal-vow .venue-reference-type text,.royal-vow .venue-reference-divider{transform-box: fill-box; transform-origin: 50% center;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-reference-kicker{animation: 1.3s ease 0.11s 1 normal both running venue-track;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-step-divider-top{animation: 1.04s cubic-bezier(0.22, 1, 0.36, 1) 0.28s 1 normal both running venue-unfurl;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-reference-name{animation: 1.17s ease 0.44s 1 normal both running venue-float;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-reference-script{animation: 1.17s cubic-bezier(0.6, 0, 0.3, 1) 0.77s 1 normal both running venue-write;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-step-divider-mid{animation: 1.04s cubic-bezier(0.22, 1, 0.36, 1) 1.21s 1 normal both running venue-unfurl;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-step-icon{animation: 1.04s ease 1.38s 1 normal both running venue-float;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-step-icon-rule{animation: 0.78s cubic-bezier(0.22, 1, 0.36, 1) 1.49s 1 normal both running venue-grow;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-reference-address{animation: 1.04s ease 1.54s 1 normal both running venue-float;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-reference-actions > :first-child{animation: 1.04s ease 1.76s 1 normal both running venue-float;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-reference-actions > :last-child{animation: 1.04s ease 1.9s 1 normal both running venue-float;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-step-divider-end{animation: 1.04s cubic-bezier(0.22, 1, 0.36, 1) 2.09s 1 normal both running venue-unfurl;}}
@container royal (width <= 820px){.royal-vow .venue-reference[data-shown="true"] .venue-reference-message{animation: 1.17s ease 2.23s 1 normal both running venue-float;}}
@keyframes venue-track { 
  0% { opacity: 0; letter-spacing: 22px; }
  100% { opacity: 1; }
}
@keyframes venue-unfurl { 
  0% { opacity: 0; scale: 0 1; }
  100% { opacity: 1; scale: 1; }
}
@keyframes venue-float { 
  0% { opacity: 0; filter: blur(4px); translate: 0px 14px; }
  100% { opacity: 1; filter: none; translate: none; }
}
@keyframes venue-write { 
  0% { opacity: 0; clip-path: inset(-30% 100% -30% -10%); }
  15% { opacity: 1; }
  100% { opacity: 1; clip-path: inset(-30% -10%); }
}
@keyframes venue-grow { 
  0% { opacity: 0; scale: 1 0; }
  100% { opacity: 1; scale: 1; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .venue-reference-type *,.royal-vow .venue-reference-actions > *{opacity: 1 !important; animation: auto ease 0s 1 normal none running none !important;}}
.royal-vow .invitation{background: var(--ivory); color: var(--ink); font-family: Manrope, sans-serif; overflow: hidden;}
.royal-vow .invitation-message{text-align: center; background: var(--ivory); place-items: center; min-height: 730px; padding: 100px 24px; display: grid;}
.royal-vow .invitation-message > div{max-width: 900px;}
.royal-vow .invitation-message blockquote{color: var(--burgundy); margin: 38px 0px; font: 400 clamp(44px, 6cqw, 78px) / 1.06 "Cormorant Garamond";}
.royal-vow .invitation-message blockquote em{color: var(--gold);}
.royal-vow .invitation-message > div > p:last-child{color: rgb(109, 99, 91); max-width: 560px; margin: auto; font: 16px / 1.8 Manrope;}
@keyframes float { 
  0%, 100% { opacity: 0.15; transform: translateY(15px); }
  50% { opacity: 0.9; transform: translateY(-18px); }
}
@container royal (width <= 480px){.royal-vow .invitation-message blockquote{font-size: 42px;}}
.royal-vow .invitation{overflow: clip;}
.royal-vow .invitation-footer{text-align: center; text-transform: none; letter-spacing: normal; flex-direction: column; justify-content: center; gap: 7px; height: auto; min-height: 125px; padding: 22px 20px;}
.royal-vow .invitation-footer p{color: rgb(244, 231, 207); margin: 0px 0px 2px; font: italic 16px / 1.3 "Cormorant Garamond", serif;}
.royal-vow .invitation-footer p strong{color: rgb(224, 189, 113); font-weight: 500;}
.royal-vow .invitation-footer > span{color: rgba(244, 231, 207, 0.7); letter-spacing: 0.1em; font: 500 7px Manrope, sans-serif;}
.royal-vow .invitation-footer > span i{color: rgb(213, 168, 82); font-style: normal;}
.royal-vow .invitation-footer > span b{color: rgb(244, 231, 207); letter-spacing: 0.08em; font: 600 8px Manrope, sans-serif;}
.royal-vow .invitation-footer a{color: rgb(213, 178, 107); letter-spacing: 0.14em; text-transform: uppercase; border-bottom: 1px solid rgba(213, 178, 107, 0.48); margin-top: 2px; padding-bottom: 3px; font: 600 7px Manrope, sans-serif; text-decoration: none;}
@font-face { font-family: Ethereal; src: url("../img/royal/fonts/Ethereal.otf") format("opentype"); font-weight: 400; font-style: normal; font-display: swap; }
@container royal (width <= 820px){.royal-vow .invitation-message{min-height: auto; padding: 85px 24px;}}
.royal-vow .mobile-reference-intro{display: none;}
@container royal (width <= 820px){.royal-vow .mobile-reference-intro{color: rgb(72, 23, 53); width: 100%; height: 177.778cqw; min-height: calc(var(--royal-screen-height) * 1); display: block; position: relative; overflow: hidden;}}
@container royal (width <= 820px){.royal-vow .mobile-reference-background{object-fit: cover; object-position: center center; width: 100%; height: 100%; position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .mobile-reference-copy{text-align: center; flex-direction: column; align-items: center; display: flex; position: absolute; inset: 8.3% 3.4% auto 43%;}}
@container royal (width <= 820px){.royal-vow .intro-cross{fill: none; stroke: rgb(156, 117, 75); stroke-width: 1.5px; flex-shrink: 0; width: 6.2cqw; height: 9.5cqw; display: block;}}
@container royal (width <= 820px){.royal-vow .intro-flourish{background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgb(165, 123, 82) 20%, rgb(165, 123, 82) 80%, rgba(0, 0, 0, 0)); width: 24cqw; height: 1px; margin: 2.2cqw 0px 3.4cqw; display: block;}}
@container royal (width <= 820px){.royal-vow .intro-families,.royal-vow .intro-invite{letter-spacing: 0.32cqw; text-transform: uppercase; color: rgb(72, 23, 53); width: 100%; margin: 0px; font-family: Cinzel, Georgia, serif; font-size: clamp(9.5px, 2.65cqw, 20px); font-weight: 700; line-height: 1.8;}}
@container royal (width <= 820px){.royal-vow .intro-invite{letter-spacing: 0.26cqw; font-size: clamp(9px, 2.5cqw, 19px);}}
@container royal (width <= 820px){.royal-vow .intro-rule{color: rgb(174, 133, 92); flex-shrink: 0; align-items: center; gap: 0px; width: 48%; height: 2cqw; margin: 2cqw 0px; font: 2cqw Georgia, serif; display: flex;}}
@container royal (width <= 820px){.royal-vow .intro-rule::before,.royal-vow .intro-rule::after{content: ""; background: rgba(174, 133, 92, 0.6); flex: 1 1 0%; height: 1px;}}
@container royal (width <= 820px){.royal-vow .hero .intro-names{letter-spacing: -0.025em; color: rgb(72, 23, 53); width: 100%; margin: 3cqw 0px 0px; font-family: Ethereal, Georgia, serif; font-size: 14cqw; font-style: normal; font-weight: 400; line-height: 1.06; position: static;}}
@container royal (width <= 820px){.royal-vow .intro-names > span{white-space: nowrap; font-size: 1em; display: block;}}
@container royal (width <= 820px){.royal-vow .hero .intro-names em{letter-spacing: 0.2cqw; text-transform: uppercase; color: rgb(140, 93, 48); justify-content: center; align-items: center; gap: 1.6cqw; width: 62%; height: 4cqw; margin: 0.45cqw auto; padding: 0px; font-family: Cinzel, Georgia, serif; font-size: clamp(8px, 2.2cqw, 16px); font-style: normal; font-weight: 700; line-height: 1; display: flex; position: static; transform: none;}}
@container royal (width <= 820px){.royal-vow .hero .intro-names em::before,.royal-vow .hero .intro-names em::after{content: ""; opacity: 0.8; background: rgb(164, 124, 80); flex: 1 1 0%; height: 1px; display: block;}}
@container royal (width <= 820px){.royal-vow .intro-reference-date{letter-spacing: 0.35cqw; color: rgb(72, 23, 53); white-space: nowrap; width: 100%; margin: 2.5cqw 0px 0px; font-family: Cinzel, Georgia, serif; font-size: clamp(11px, 3.1cqw, 23px); font-weight: 700; line-height: 1.5;}}
@container royal (width <= 820px){.royal-vow .intro-rule-bottom{width: 42%; margin: 1.5cqw 0px;}}
@container royal (width <= 820px){.royal-vow .intro-reference-place{letter-spacing: 0.3cqw; text-transform: uppercase; color: rgb(72, 23, 53); width: 100%; margin: 0px; font-family: Cinzel, Georgia, serif; font-size: clamp(9px, 2.4cqw, 18px); font-weight: 700; line-height: 1.5;}}
@container royal (width <= 820px){.royal-vow .intro-next{color: rgb(91, 16, 42); backdrop-filter: blur(4px); -webkit-tap-highlight-color: transparent; background: radial-gradient(circle at 35% 30%, rgba(255, 250, 242, 0.95), rgba(243, 230, 208, 0.88)); border: 1px solid rgba(201, 164, 90, 0.8); border-radius: 50%; place-items: center; width: 42px; height: 42px; animation: 2.4s ease-in-out 0s infinite normal none running intro-next-bob; display: grid; position: absolute; bottom: 16px; left: calc(50% - 21px); box-shadow: rgba(255, 250, 242, 0.7) 0px 0px 0px 3px inset, rgba(201, 164, 90, 0.4) 0px 0px 0px 4px inset, rgba(67, 17, 34, 0.2) 0px 6px 18px;}}
@container royal (width <= 820px){.royal-vow .intro-next svg{width: 20px; height: 20px;}}
@keyframes hero-flower-fall { 
  0% { opacity: 0; transform: translate(0px, 0px); }
  6% { opacity: 0.42; }
  88% { opacity: 0.32; }
  100% { transform: translate3d(var(--flower-drift),100%,0); opacity: 0; }
}
@keyframes hero-flower-sway { 
  0% { transform: translate(-4px); }
  100% { transform: translate(4px); }
}
@keyframes hero-flower-turn { 
  0% { transform: rotate(-35deg) rotateY(-25deg); }
  100% { transform: rotate(var(--flower-turn)) rotateY(45deg); }
}
@media (prefers-reduced-motion: reduce){.royal-vow .mobile-reference-background{transform: none !important;}}
@keyframes intro-next-bob { 
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(5px); }
}
@media (prefers-reduced-motion: reduce){.royal-vow .intro-next{animation: auto ease 0s 1 normal none running none;}}
.royal-vow .mobile-reference-copy > *,.royal-vow .mobile-reference-copy .intro-names > *{opacity: 0;}
.royal-vow .mobile-reference-copy[data-entered="true"] > *,.royal-vow .mobile-reference-copy[data-entered="true"] .intro-names > *{animation: intro-rise 1.3s cubic-bezier(.22,1,.36,1) var(--intro-delay,0s) both;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-names{opacity: 1; animation: auto ease 0s 1 normal none running none;}
.royal-vow .mobile-reference-copy .intro-cross path{stroke-dasharray: 1; stroke-dashoffset: 1px;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-cross{animation: 0.6s ease 0.3s 1 normal both running intro-fade;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-cross path{animation: 1.3s cubic-bezier(0.65, 0, 0.35, 1) 0.3s 1 normal forwards running intro-draw;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-flourish{--intro-delay: .5s; animation-name: intro-unfurl; animation-duration: 1.1s;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-families{--intro-delay: .55s; animation-name: intro-centre; animation-duration: 1.5s;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-rule{--intro-delay: .6s; animation-name: intro-unfurl; animation-duration: 1.1s;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-invite{--intro-delay: .75s; animation-name: intro-centre; animation-duration: 1.5s;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-names > span{opacity: 1; animation: auto ease 0s 1 normal none running none;}
.royal-vow .mobile-reference-copy .intro-names > span > i{opacity: 0; font-style: normal; display: inline-block;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-names > span > i{animation: intro-letter 1.1s cubic-bezier(.22,1,.36,1) var(--letter-delay) both;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-names > em{--intro-delay: 1.6s; animation-name: intro-unfurl; animation-duration: 1.1s;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-reference-date{--intro-delay: 2.85s; animation-name: intro-shimmer-in; animation-duration: 1.6s;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-rule-bottom{--intro-delay: 2.95s; animation-name: intro-unfurl; animation-duration: 1.1s;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-reference-place{--intro-delay: 3.05s; animation-name: intro-shimmer-in; animation-duration: 1.6s;}
.royal-vow .intro-next{opacity: 0;}
.royal-vow .intro-next[data-entered="true"]{animation: 0.8s ease 4.1s 1 normal both running intro-fade, 2.4s ease-in-out 4.9s infinite normal none running intro-next-bob;}
.royal-vow .mobile-reference-copy .intro-reference-date,.royal-vow .mobile-reference-copy .intro-reference-place{background: linear-gradient(100deg, currentcolor 40%, rgb(217, 178, 103) 50%, currentcolor 60%) 100% 0px / 250% 100% no-repeat text;}
.royal-vow .mobile-reference-copy[data-entered="true"] .intro-reference-date,.royal-vow .mobile-reference-copy[data-entered="true"] .intro-reference-place{-webkit-text-fill-color: transparent;}
@keyframes intro-centre { 
  0% { opacity: 0; clip-path: inset(-20% 50%); filter: blur(5px); }
  25% { opacity: 1; }
  100% { opacity: 1; clip-path: inset(-20% -5%); filter: none; }
}
@keyframes intro-letter { 
  0% { opacity: 0; filter: blur(6px); transform: translateY(0.35em) rotate(4deg); }
  60% { opacity: 1; filter: none; }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes intro-shimmer-in { 
  0% { opacity: 0; background-position: 100% 0px; transform: translateY(8px); }
  30% { opacity: 1; transform: none; }
  100% { opacity: 1; background-position: 0px 0px; transform: none; }
}
@keyframes intro-emerge { 
  0% { opacity: 0; clip-path: inset(0px -10% 100%); transform: translateY(45%); }
  35% { opacity: 1; }
  100% { opacity: 1; clip-path: inset(-20% -10%); transform: none; }
}
@keyframes intro-rise { 
  0% { opacity: 0; filter: blur(4px); transform: translateY(14px); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes intro-track { 
  0% { opacity: 0; letter-spacing: 2.2cqw; filter: blur(3px); }
  100% { opacity: 1; letter-spacing: var(--intro-track); filter: none; }
}
@keyframes intro-name { 
  0% { opacity: 0; letter-spacing: 0.08em; filter: blur(8px); transform: translateY(22px) scale(0.94); }
  70% { opacity: 1; filter: none; transform: translateY(-2px) scale(1.01); }
  100% { opacity: 1; letter-spacing: -0.025em; filter: none; transform: none; }
}
@keyframes intro-unfurl { 
  0% { opacity: 0; transform: scaleX(0.1); }
  100% { opacity: 1; transform: none; }
}
@keyframes intro-fade { 
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes intro-draw { 
  100% { stroke-dashoffset: 0; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .mobile-reference-copy > *,.royal-vow .mobile-reference-copy .intro-names > *,.royal-vow .mobile-reference-copy .intro-names > span > i,.royal-vow .intro-next{opacity: 1 !important; animation: auto ease 0s 1 normal none running none !important;}}
@media (prefers-reduced-motion: reduce){.royal-vow .mobile-reference-copy .intro-reference-date,.royal-vow .mobile-reference-copy .intro-reference-place{-webkit-text-fill-color: currentcolor !important; background: 0px 0px !important;}}
@media (prefers-reduced-motion: reduce){.royal-vow .mobile-reference-copy .intro-cross path{stroke-dashoffset: 0 !important; animation: auto ease 0s 1 normal none running none !important;}}
@container royal (width <= 820px){.royal-vow .mobile-reference-background{mask-image: linear-gradient(rgb(0, 0, 0) calc(100% - 70px), rgba(0, 0, 0, 0.78) calc(100% - 52px), rgba(0, 0, 0, 0.42) calc(100% - 32px), rgba(0, 0, 0, 0.14) calc(100% - 12px), rgba(0, 0, 0, 0));}}
@font-face { font-family: Candlescript; src: url("../img/royal/fonts/Candlescript.otf") format("opentype"); font-weight: 400; font-style: normal; font-display: swap; }
.royal-vow .opening-accessible-title{clip-path: inset(50%); white-space: nowrap; width: 1px; height: 1px; position: absolute; overflow: hidden;}
.royal-vow .opening-portrait-stage{isolation: isolate; width: min(100cqw, calc(var(--royal-screen-height) * 0.45)); height: calc(var(--royal-screen-height) * 1); position: relative; overflow: hidden; container-type: inline-size;}
.royal-vow .opening-scene-layer,.royal-vow .opening-live-typography{width: 100%; height: 100%; display: block; position: absolute; inset: 0px;}
.royal-vow .opening-scene-layer{object-fit: cover; object-position: center center; z-index: 0;}
.royal-vow .opening-live-typography{z-index: 1; overflow: visible;}
.royal-vow .opening-live-typography text{letter-spacing: 5px; text-transform: uppercase; fill: rgb(88, 49, 60); font-family: Cinzel, Georgia, serif; font-size: 36px; font-weight: 600;}
.royal-vow .opening-gold-crest{fill: none; stroke: rgb(165, 119, 60); stroke-width: 2.5px; stroke-linejoin: round;}
.royal-vow .opening-live-typography .opening-honour-copy{fill: rgb(72, 23, 53); letter-spacing: 5px;}
.royal-vow .opening-live-typography .opening-wedding-word,.royal-vow .opening-live-typography .opening-invitation-label{letter-spacing: 0px; text-transform: none; fill: rgb(72, 23, 53); font-family: Candlescript, "Pinyon Script", cursive; font-size: 170px; font-style: normal; font-weight: 400;}
.royal-vow .opening-live-typography .opening-tap-label{letter-spacing: 4.5px; fill: rgb(72, 23, 53); font-size: 28px; font-weight: 600;}
.royal-vow .opening-live-typography .opening-family-copy,.royal-vow .opening-live-typography .opening-honour-copy,.royal-vow .opening-live-typography .opening-celebration-copy,.royal-vow .opening-live-typography .opening-tap-label{fill: rgb(72, 23, 53); stroke: rgb(72, 23, 53); stroke-width: 0.35px; paint-order: stroke; font-weight: 700;}
.royal-vow .opening-live-seal{z-index: 5; aspect-ratio: 1 / 1; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; filter: drop-shadow(rgba(56, 16, 42, 0.314) 0px 5px 4px); background: 0px 0px; border: 0px; border-radius: 50%; width: 22%; min-width: 44px; min-height: 44px; padding: 0px; position: absolute; top: 82%; left: 39%;}
.royal-vow .opening-live-seal img{object-fit: contain; user-select: none; width: 100%; height: 100%; display: block;}
.royal-vow .opening-live-seal:focus-visible{outline-offset: 4px; outline: rgb(215, 182, 110) solid 2px;}
.royal-vow .opening-live-seal:disabled{cursor: default;}
.royal-vow .opening-floral-layer,.royal-vow .opening-air-petals{pointer-events: none; position: absolute; inset: 0px; overflow: hidden;}
.royal-vow .opening-floral-layer{z-index: 2;}
.royal-vow .opening-floral-layer img{user-select: none; width: 100%; height: auto; position: absolute; left: 0px;}
.royal-vow .opening-flowers-top{clip-path: inset(0px 0px 59%); transform-origin: 94% 2%; animation: 8s ease-in-out 0s infinite normal none running opening-floral-top; top: 0px;}
.royal-vow .opening-flowers-bottom{clip-path: inset(44% 42% 0px 0px); transform-origin: 21% 85%; animation: 10s ease-in-out 0s infinite normal none running opening-floral-bottom; bottom: 0px; transform: scale(0.7);}
.royal-vow .opening-flowers-right{clip-path: inset(75% 0px 0px 70%); transform-origin: 95% 95%; animation: 11s ease-in-out 0s infinite normal none running opening-floral-top; bottom: 0px;}
.royal-vow .opening-air-petals{z-index: 3;}
.royal-vow .opening-air-petal{left: var(--petal-left); width: 1.4cqw; height: 1.8cqw; animation: opening-petal-fall var(--petal-duration) linear var(--petal-delay) infinite; opacity: 0; position: absolute; top: -15px;}
.royal-vow .opening-air-petal i{background: radial-gradient(at 25% 20%, rgb(201, 138, 184), rgb(120, 59, 112) 60%, rgb(87, 34, 68)); border-radius: 75% 18% 68% 25%; width: 100%; height: 100%; animation: 3.5s ease-in-out 0s infinite alternate none running opening-petal-flutter; display: block;}
.royal-vow .opening-air-petal.petal-tone-1 i{background: radial-gradient(at 25% 20%, rgb(255, 253, 244), rgb(234, 218, 197) 70%, rgb(200, 172, 137));}
.royal-vow .opening-air-petal.petal-tone-2{filter: blur(0.5px);}
@keyframes opening-floral-top { 
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(0.7deg); }
}
@keyframes opening-floral-bottom { 
  0%, 100% { transform: scale(0.7) rotate(0deg); }
  50% { transform: scale(0.7) rotate(-0.6deg); }
}
@keyframes opening-petal-fall { 
  0% { opacity: 0; transform: translateY(-15px) rotate(0deg); }
  8% { opacity: 0.55; }
  88% { opacity: 0.4; }
  100% { transform: translate3d(var(--petal-drift),calc(calc(var(--royal-screen-height) * 1) + 20px),0) rotate(var(--petal-turn)); opacity: 0; }
}
@keyframes opening-petal-flutter { 
  0% { transform: rotateY(-50deg) rotateX(15deg); }
  100% { transform: rotateY(55deg) rotateX(-25deg); }
}
@container royal (width <= 820px){.royal-vow .opening-portrait-stage{width: 100cqw; max-width: 100%; height: calc(var(--royal-screen-height) * 1); translate: none;}}
@media (hover: hover){.royal-vow .opening-live-seal:hover{filter: drop-shadow(rgba(56, 16, 42, 0.4) 0px 7px 10px) brightness(1.08);}}
@media (prefers-reduced-motion: reduce){.royal-vow .opening-floral-layer img,.royal-vow .opening-air-petal,.royal-vow .opening-air-petal i{animation: auto ease 0s 1 normal none running none !important;}}
@media (prefers-reduced-motion: reduce){.royal-vow .opening-air-petals{display: none;}}
.royal-vow .opening-scene-layer{animation: 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal both running opening-scene-in;}
.royal-vow .opening-cross{stroke-dasharray: 1; stroke-dashoffset: 1px; animation: 0.8s cubic-bezier(0.65, 0, 0.35, 1) 0.15s 1 normal forwards running opening-draw;}
.royal-vow .opening-live-typography text{transform-box: fill-box; transform-origin: 50% center; animation: opening-track .9s cubic-bezier(.16,1,.3,1) var(--opening-delay,0s) both;}
.royal-vow .opening-live-typography .opening-family-copy,.royal-vow .opening-live-typography .opening-honour-copy,.royal-vow .opening-live-typography .opening-celebration-copy{--opening-delay: .35s; --opening-track-to: 5px;}
.royal-vow .opening-live-typography .opening-wedding-word{--opening-delay: 1.05s; animation: opening-script 1s cubic-bezier(.6,0,.3,1) var(--opening-delay) both;}
.royal-vow .opening-live-typography .opening-invitation-label{--opening-delay: 1.4s; animation: opening-script 1s cubic-bezier(.6,0,.3,1) var(--opening-delay) both;}
.royal-vow .opening-live-typography .opening-tap-label{animation: 2.4s ease-in-out 1s infinite normal none running opening-tap-pulse;}
.royal-vow .opening-divider{transform-box: fill-box; transform-origin: 50% center; animation: opening-unfurl .7s cubic-bezier(.22,1,.36,1) var(--opening-delay,0s) both;}
.royal-vow .opening-live-seal::before{content: ""; opacity: 0; pointer-events: none; border: 1.5px solid rgb(216, 178, 106); border-radius: 50%; animation: 1.6s cubic-bezier(0.22, 1, 0.36, 1) 0.6s 1 normal both running opening-ripple; position: absolute; inset: -6%;}
@keyframes opening-scene-in { 
  0% { opacity: 0; transform: scale(1.05); }
  100% { opacity: 1; transform: none; }
}
@keyframes opening-draw { 
  100% { stroke-dashoffset: 0; }
}
@keyframes opening-track { 
  0% { opacity: 0; letter-spacing: 18px; filter: blur(3px); }
  100% { opacity: 1; letter-spacing: var(--opening-track-to,5px); filter: none; }
}
@keyframes opening-script { 
  0% { opacity: 0; clip-path: inset(-30% 100% -30% -10%); }
  15% { opacity: 1; }
  100% { opacity: 1; clip-path: inset(-30% -10%); }
}
@keyframes opening-unfurl { 
  0% { opacity: 0; transform: scaleX(0.1); }
  100% { opacity: 1; transform: none; }
}
@keyframes opening-seal-in { 
  0% { opacity: 0; transform: translateY(-26px) scale(1.35) rotate(-14deg); }
  60% { opacity: 1; transform: translateY(0px) scale(0.94) rotate(2deg); }
  100% { opacity: 1; transform: none; }
}
@keyframes opening-ripple { 
  0% { opacity: 0.9; transform: scale(0.85); }
  100% { opacity: 0; transform: scale(1.7); }
}
@keyframes opening-tap-pulse { 
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .opening-scene-layer,.royal-vow .opening-live-typography text,.royal-vow .opening-divider,.royal-vow .opening-live-seal img{animation: auto ease 0s 1 normal none running none !important;}}
@media (prefers-reduced-motion: reduce){.royal-vow .opening-live-seal::before{display: none;}}
@media (prefers-reduced-motion: reduce){.royal-vow .opening-cross{stroke-dashoffset: 0; animation: auto ease 0s 1 normal none running none;}}
.royal-vow .journey-section{isolation: isolate; color: rgb(72, 23, 53); background: rgb(244, 233, 217); position: relative; overflow: hidden;}
.royal-vow .journey-section::before{content: ""; z-index: 3; pointer-events: none; background: linear-gradient(rgb(244, 233, 217), rgba(0, 0, 0, 0)); height: 38px; position: absolute; inset: 0px 0px auto;}
.royal-vow .journey-scene{isolation: isolate; background: linear-gradient(90deg, rgb(244, 233, 217) 0%, rgb(244, 233, 217) 89.9%, rgb(178, 138, 87) 90%, rgb(232, 210, 174) 90.25%, rgb(96, 55, 72) 90.4%, rgb(68, 35, 55) 100%); width: 100%; max-width: 760px; min-height: calc(var(--royal-screen-height) * 1); margin: 0px auto; display: flow-root; position: relative; container-type: inline-size;}
.royal-vow .journey-scene::before{content: ""; z-index: -1; pointer-events: none; opacity: 0.16; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.35' filter='url(%23paper)'/%3E%3C/svg%3E"); position: absolute; inset: 0px;}
.royal-vow .journey-backdrop,.royal-vow .journey-backdrop-bottom{z-index: -2; object-fit: cover; pointer-events: none; width: 100%; position: absolute; left: 0px;}
.royal-vow .journey-backdrop{object-position: center top; height: 150cqw; top: 0px; mask-image: linear-gradient(rgb(0, 0, 0) 65%, rgba(0, 0, 0, 0));}
.royal-vow .journey-backdrop-bottom{object-position: center bottom; height: 110cqw; bottom: 0px; mask-image: linear-gradient(rgba(0, 0, 0, 0), rgb(0, 0, 0) 40%);}
.royal-vow .journey-heading{text-align: center; width: 78%; margin: 0px auto; padding-top: 29cqw; position: relative;}
.royal-vow .journey-eyebrow{color: rgb(149, 106, 62); letter-spacing: 0.65cqw; text-transform: uppercase; margin: 0px; font: 600 2.55cqw / 1.5 Cinzel, Georgia, serif;}
.royal-vow .journey-divider{color: rgb(172, 137, 87); justify-content: center; align-items: center; gap: 1.5cqw; margin: 3.5cqw auto 4.5cqw; font: 3.1cqw / 1 Georgia, serif; display: flex;}
.royal-vow .journey-divider::before,.royal-vow .journey-divider::after{content: ""; background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgb(172, 137, 87)); width: 10cqw; height: 1px;}
.royal-vow .journey-divider::after{transform: rotate(180deg);}
.royal-vow .journey-heading h2{letter-spacing: -0.15cqw; white-space: nowrap; color: rgb(72, 23, 53); justify-content: center; align-items: baseline; gap: 0.22em; margin: 0px; font: 400 9cqw / 1.1 Ethereal, Georgia, serif; display: flex;}
.royal-vow .journey-intro{color: rgb(108, 84, 72); margin: 6cqw 0px 0px; font: 400 clamp(15px, 4cqw, 30px) / 1.5 "Cormorant Garamond", Georgia, serif;}
.royal-vow .journey-intro > span{display: block;}
.royal-vow .journey-intro-lead{color: rgb(143, 105, 67); margin-bottom: 8px; font-style: italic;}
.royal-vow .journey-timeline{isolation: isolate; margin-top: 12cqw; padding-bottom: 16cqw; position: relative;}
.royal-vow .journey-chapters{flex-direction: column; gap: 8cqw; margin: 0px; padding: 0px 4cqw; list-style: none; display: flex;}
.royal-vow .journey-chapter{flex: 0 0 auto; width: 100%; position: relative;}
.royal-vow .journey-chapter:nth-child(2n+1) .journey-letter{margin-right: auto;}
.royal-vow .journey-chapter:nth-child(2n) .journey-letter{margin-left: auto;}
.royal-vow .journey-chapter-1{--letter-angle: -1.5deg;}
.royal-vow .journey-chapter-2{--letter-angle: 1.25deg;}
.royal-vow .journey-chapter-3{--letter-angle: -1deg;}
.royal-vow .journey-chapter-4{--letter-angle: 1.5deg;}
.royal-vow .journey-chapter-5{--letter-angle: -1.25deg;}
.royal-vow .journey-letter{aspect-ratio: 3 / 2; width: 82%; transform: rotate(var(--letter-angle)); filter: drop-shadow(rgba(78, 42, 51, 0.125) 0px 2cqw 2.2cqw); transition: transform 0.7s; position: relative;}
.royal-vow .journey-connector{z-index: -1; width: 100%; height: 12cqw; position: absolute; top: calc(100% - 2cqw); left: 0px; overflow: visible;}
.royal-vow .journey-chapter:nth-child(2n) .journey-connector{transform: scaleX(-1);}
.royal-vow .journey-connector-straight{display: none;}
.royal-vow .journey-letter > img{object-fit: contain; pointer-events: none; width: 100%; height: 100%; position: absolute; inset: 0px;}
.royal-vow .journey-letter-copy{text-align: left; position: absolute; inset: 16% 13% 14%;}
.royal-vow .journey-number{color: rgb(140, 111, 81); letter-spacing: 0.4cqw; border-bottom: 1px solid rgb(174, 137, 92); width: 6cqw; padding-bottom: 1.1cqw; font: 500 2.8cqw / 1.2 Cinzel, Georgia, serif; display: block;}
.royal-vow .journey-icon{color: rgb(140, 98, 74); width: 5.8cqw; height: 5.8cqw; position: absolute; top: 0px; right: 0px;}
.royal-vow .journey-chapter-3 .journey-icon{display: none;}
.royal-vow .journey-letter h3{letter-spacing: -0.1cqw; color: rgb(80, 27, 53); margin: 2cqw 0px; font: 400 6cqw / 1.06 Ethereal, Georgia, serif;}
.royal-vow .journey-letter p{color: rgb(98, 76, 65); text-wrap: pretty; margin: 0px; font: 400 3.9cqw / 1.35 "Cormorant Garamond", Georgia, serif;}
.royal-vow .journey-floating-petals{pointer-events: none; position: absolute; inset: 0px; overflow: hidden;}
.royal-vow .journey-floating-petals i{background: linear-gradient(135deg, rgba(213, 160, 189, 0.6), rgba(135, 76, 123, 0.467)); border-radius: 80% 0px 70% 30%; width: 2cqw; height: 3.2cqw; animation: 10s ease-in-out 0s infinite normal none running journey-petal-drift; position: absolute; top: 34%; left: 3%; box-shadow: rgba(241, 213, 224, 0.667) 1px 0px 1px inset;}
.royal-vow .journey-floating-petals i:nth-child(2){animation-delay: -3s; top: 24%; left: auto; right: 4%; transform: rotate(40deg);}
.royal-vow .journey-floating-petals i:nth-child(3){width: 1.4cqw; height: 2.4cqw; animation-delay: -6s; top: 70%; left: 2%;}
.royal-vow .journey-floating-petals i:nth-child(4){animation-delay: -8s; top: 83%; left: auto; right: 3%;}
@keyframes journey-petal-drift { 
  0%, 100% { translate: 0px; rotate: -12deg; }
  50% { translate: 5px 17px; rotate: 25deg; }
}
@media (hover: hover){.royal-vow .journey-letter:hover{transform: rotate(0deg) translateY(-5px);}}
@container royal (width <= 820px){.royal-vow .journey-section::after{content: ""; z-index: 3; pointer-events: none; background: linear-gradient(rgba(0, 0, 0, 0), rgb(244, 233, 217)); height: 48px; position: absolute; inset: auto 0px 0px;}}
@container royal (width <= 820px){.royal-vow .journey-heading{width: 78%; margin-left: 6%; margin-right: 16%; padding-top: clamp(72px, 20cqw, 112px);}}
@container royal (width <= 820px){.royal-vow .journey-eyebrow{letter-spacing: 3px; padding-left: 3px; font-size: 10px; line-height: 1.5;}}
@container royal (width <= 820px){.royal-vow .journey-divider{gap: 10px; margin: 15px auto 25px; font-size: 10px;}}
@container royal (width <= 820px){.royal-vow .journey-divider::before,.royal-vow .journey-divider::after{width: 37px;}}
@container royal (width <= 820px){.royal-vow .journey-heading h2{letter-spacing: -0.7px; font-size: clamp(30px, 9.8cqw, 54px); line-height: 1.1;}}
@container royal (width <= 820px){.royal-vow .journey-intro{max-width: 280px; margin: 27px auto 0px; font-size: clamp(15px, 4.2cqw, 18px); line-height: 1.6;}}
@container royal (width <= 820px){.royal-vow .journey-intro-lead{margin-bottom: 8px; font-size: 1.06em;}}
@container royal (width <= 820px){.royal-vow .journey-timeline{margin-top: 42px;}}
@container royal (width <= 820px){.royal-vow .journey-chapters{gap: 26px; max-width: 540px; margin: 0px auto; padding: 0px 14px;}}
@container royal (width <= 820px){.royal-vow .journey-chapter .journey-letter{aspect-ratio: 3 / 2; filter: drop-shadow(rgba(66, 23, 44, 0.07) 0px 7px 9px); width: 100%; height: auto; margin: 0px; transform: none;}}
@container royal (width <= 820px){.royal-vow .journey-letter > img{object-fit: fill; display: block;}}
@container royal (width <= 820px){.royal-vow .journey-letter-copy{text-align: left; position: absolute; inset: 16% 13% 14%;}}
@container royal (width <= 820px){.royal-vow .journey-number{letter-spacing: 2.5px; color: rgb(150, 109, 65); border: 0px; width: auto; padding: 0px; font-size: 10px;}}
@container royal (width <= 820px){.royal-vow .journey-number::before{content: "Chapter "; letter-spacing: 2px; text-transform: uppercase; font-size: 9px;}}
@container royal (width <= 820px){.royal-vow .journey-icon{color: rgb(152, 109, 80); width: 23px; height: 23px; top: 0px; right: 0px;}}
@container royal (width <= 820px){.royal-vow .journey-letter h3{letter-spacing: -0.5px; text-wrap: balance; margin: 17px 0px 10px; font-size: clamp(23px, 6.5cqw, 30px); line-height: 1.12;}}
@container royal (width <= 820px){.royal-vow .journey-letter h3 br{display: none;}}
@container royal (width <= 820px){.royal-vow .journey-letter p{color: rgb(107, 85, 75); margin: 0px; font-size: clamp(15px, 4cqw, 18px); font-weight: 500; line-height: 1.35;}}
@container royal (width <= 820px){.royal-vow .journey-connector{height: 34px; top: calc(100% - 4px);}}
@container royal (width <= 820px){.royal-vow .journey-connector-curve{display: none;}}
@container royal (width <= 820px){.royal-vow .journey-connector-straight{display: block;}}
@media (prefers-reduced-motion: reduce){.royal-vow .journey-floating-petals i{animation: auto ease 0s 1 normal none running none;}}
@media (prefers-reduced-motion: reduce){.royal-vow .journey-letter{transition: none;}}
@container royal (width <= 820px){.royal-vow .journey-section{z-index: 1; background: 0px 0px; margin-top: -150px;}}
@container royal (width <= 820px){.royal-vow .journey-section::before{display: none;}}
@container royal (width <= 820px){.royal-vow .journey-scene{flex-direction: column; height: calc(150px + calc(var(--royal-screen-height) * 1)); min-height: 0px; padding-top: 150px; display: flex;}}
@container royal (width <= 820px){.royal-vow .journey-heading{padding-top: clamp(34px, calc(var(--royal-screen-height) * 0.07), 64px);}}
@container royal (width <= 820px){.royal-vow .journey-timeline{flex-direction: column; flex: 1 1 0%; justify-content: center; margin: 0px 10% 0px 0px; padding: 0px 0px clamp(40px, calc(var(--royal-screen-height) * 0.08), 72px); display: flex;}}
@container royal (width <= 820px){.royal-vow .journey-deck-wrap{flex-direction: column; align-items: center; gap: clamp(30px, calc(var(--royal-screen-height) * 0.05), 44px); display: flex;}}
@container royal (width <= 820px){.royal-vow .journey-deck{aspect-ratio: 3 / 2; width: 68cqw; margin-top: 30px; position: relative;}}
@container royal (width <= 820px){.royal-vow .journey-deck-card{touch-action: pan-y; cursor: grab; filter: drop-shadow(rgba(66, 23, 44, 0.12) 0px 10px 14px); width: 100%; margin: 0px; transition: none; position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .journey-deck-card:active{cursor: grabbing;}}
@container royal (width <= 820px){.royal-vow .journey-deck-card[aria-hidden="true"]{cursor: default;}}
@container royal (width <= 820px){.royal-vow .journey-deck-card[aria-hidden="true"] .journey-letter-copy{opacity: 0.35;}}
@container royal (width <= 820px){.royal-vow .journey-deck{margin-top: 46px;}}
@container royal (width <= 820px){.royal-vow .journey-deck-card > img{object-fit: fill; -webkit-user-drag: none; user-select: none; display: block;}}
@container royal (width <= 820px){.royal-vow .journey-letter-copy{inset: 18% 11% 12% 17%;}}
@container royal (width <= 820px){.royal-vow .journey-number{letter-spacing: 2.2px; font-size: 9px;}}
@container royal (width <= 820px){.royal-vow .journey-number::before{font-size: 8.5px;}}
@container royal (width <= 820px){.royal-vow .journey-icon{width: 19px; height: 19px;}}
@container royal (width <= 820px){.royal-vow .journey-letter h3{margin: 12px 0px 7px; font-size: clamp(20px, 5.6cqw, 26px);}}
@container royal (width <= 820px){.royal-vow .journey-letter p{z-index: 1; text-shadow: rgb(245, 238, 226) 0px 0px 3px, rgb(245, 238, 226) 0px 0px 6px, rgb(245, 238, 226) 0px 0px 10px; font-size: clamp(13.5px, 3.6cqw, 16px); line-height: 1.38; position: relative;}}
@container royal (width <= 820px){.royal-vow .journey-deck-controls{align-items: center; gap: 18px; display: flex;}}
@container royal (width <= 820px){.royal-vow .journey-deck-controls > button{color: rgb(107, 58, 74); cursor: pointer; background: rgba(251, 246, 238, 0.6); border: 1px solid rgba(174, 137, 87, 0.6); border-radius: 50%; place-items: center; width: 34px; height: 34px; padding: 0px; display: grid;}}
@container royal (width <= 820px){.royal-vow .journey-dots{justify-content: center; align-items: center; gap: 10px; display: flex;}}
@container royal (width <= 820px){.royal-vow .journey-dots button{cursor: pointer; background: 0px 0px; border: 1px solid rgb(174, 137, 87); border-radius: 50%; width: 7px; height: 7px; padding: 0px; transition: width 0.35s, background-color 0.35s, border-radius 0.35s;}}
@container royal (width <= 820px){.royal-vow .journey-dots button.is-active{background: rgb(174, 137, 87); border-radius: 4px; width: 22px;}}
@container royal (width <= 820px){.royal-vow .journey-dots button:focus-visible,.royal-vow .journey-deck-controls > button:focus-visible{outline-offset: 3px; outline: rgb(74, 16, 37) solid 1px;}}
@container royal (width <= 820px){.royal-vow .journey-timeline{justify-content: space-evenly; padding-bottom: clamp(28px, calc(var(--royal-screen-height) * 0.05), 52px);}}
@container royal (width <= 820px){.royal-vow .journey-deck-wrap{gap: clamp(26px, calc(var(--royal-screen-height) * 0.04), 38px);}}
@container royal (width <= 820px){.royal-vow .journey-deck{width: 74cqw; margin-top: clamp(56px, calc(var(--royal-screen-height) * 0.09), 84px);}}
@container royal (width <= 820px){.royal-vow .journey-deck-numeral{z-index: 0; letter-spacing: -0.01em; color: rgb(169, 130, 74); pointer-events: none; user-select: none; white-space: nowrap; font: 400 clamp(116px, 36cqw, 160px) / 1 "Libre Caslon Display", Georgia, serif; position: absolute; top: -28%; left: 50%; translate: -50% -50%;}}
@container royal (width <= 820px){.royal-vow .journey-deck-card{z-index: 1;}}
@container royal (width <= 820px){.royal-vow .journey-letter h3{font-size: clamp(21px, 6cqw, 27px);}}
@container royal (width <= 820px){.royal-vow .journey-deck-hint{color: rgb(154, 123, 92); align-items: center; gap: 12px; margin: -10px 0px 0px; font: italic 15px "Cormorant Garamond", Georgia, serif; display: flex;}}
@container royal (width <= 820px){.royal-vow .journey-deck-hint::before,.royal-vow .journey-deck-hint::after{content: ""; background: rgba(174, 137, 87, 0.533); width: 26px; height: 1px;}}
@media (height <= 700px){@container royal (width <= 820px){.royal-vow .journey-deck{width: 66cqw; margin-top: 48px;}}}
@media (height <= 700px){@container royal (width <= 820px){.royal-vow .journey-deck-numeral,.royal-vow .journey-deck-hint{display: none;}}}
@container royal (width <= 820px){.royal-vow .journey-eyebrow{font-size: 11px;}}
.royal-vow .journey-eyebrow{color: rgb(134, 97, 47); -webkit-text-stroke: 0.15px rgb(134, 97, 47); font-weight: 600;}
@container royal (width <= 820px){.royal-vow .journey-eyebrow{font-size: 11.2px;}}
@container royal (width <= 820px){.royal-vow .journey-deck-hint{font-style: normal; font-weight: 500;}}
.royal-vow .journey-heading .journey-eyebrow,.royal-vow .journey-heading .journey-divider,.royal-vow .journey-heading .journey-intro > span,.royal-vow .journey-title-word > i{opacity: 0;}
.royal-vow .journey-title-word{white-space: nowrap; display: inline-block;}
.royal-vow .journey-title-word > i{font-style: normal; display: inline-block;}
.royal-vow .journey-heading[data-shown="true"] .journey-eyebrow{animation: 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.1s 1 normal both running journey-track;}
.royal-vow .journey-heading[data-shown="true"] .journey-divider{animation: 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s 1 normal both running journey-unfurl;}
.royal-vow .journey-heading[data-shown="true"] .journey-title-word > i{animation: journey-letter 1.1s cubic-bezier(.22,1,.36,1) var(--letter-delay) both;}
.royal-vow .journey-heading[data-shown="true"] .journey-intro > span:first-child{animation: 1.4s cubic-bezier(0.22, 1, 0.36, 1) 1.3s 1 normal both running journey-centre;}
.royal-vow .journey-heading[data-shown="true"] .journey-intro > span:last-child{animation: 1.4s cubic-bezier(0.22, 1, 0.36, 1) 1.55s 1 normal both running journey-centre;}
.royal-vow .journey-deck-controls,.royal-vow .journey-deck-hint{opacity: 0; transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1) 2.7s, translate 1.2s cubic-bezier(0.22, 1, 0.36, 1) 2.7s; translate: 0px 14px;}
.royal-vow .journey-deck-hint{transition-delay: 2.95s;}
.royal-vow .journey-deck-controls[data-shown="true"],.royal-vow .journey-deck-hint[data-shown="true"]{opacity: 1; translate: none;}
@keyframes journey-track { 
  0% { opacity: 0; letter-spacing: 12px; filter: blur(3px); }
  100% { opacity: 1; filter: none; }
}
@keyframes journey-unfurl { 
  0% { opacity: 0; transform: scaleX(0.1); }
  100% { opacity: 1; transform: none; }
}
@keyframes journey-letter { 
  0% { opacity: 0; filter: blur(6px); transform: translateY(0.35em) rotate(4deg); }
  60% { opacity: 1; filter: none; }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes journey-centre { 
  0% { opacity: 0; clip-path: inset(-20% 50%); filter: blur(5px); }
  25% { opacity: 1; }
  100% { opacity: 1; clip-path: inset(-20% -5%); filter: none; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .journey-heading .journey-eyebrow,.royal-vow .journey-heading .journey-divider,.royal-vow .journey-heading .journey-intro > span,.royal-vow .journey-title-word > i,.royal-vow .journey-deck-controls,.royal-vow .journey-deck-hint{opacity: 1 !important; animation: auto ease 0s 1 normal none running none !important; translate: none !important;}}
@container royal (width <= 820px){.royal-vow .journey-timeline{padding-bottom: calc(110px + clamp(28px, calc(var(--royal-screen-height) * 0.05), 52px));}}
@media (height >= 701px){@container royal (width <= 820px){.royal-vow .journey-scene{height: auto; min-height: calc(150px + calc(var(--royal-screen-height) * 1));}}}
@media (height >= 701px){@container royal (width <= 820px){.royal-vow .journey-deck{margin-top: max(clamp(56px, calc(var(--royal-screen-height) * 0.09), 84px), 40cqw);}}}
.royal-vow .family-story{display: none;}
@container royal (width <= 820px){.royal-vow .family-story{background: rgb(244, 233, 217); width: 100%; height: calc(var(--royal-screen-height) * 1); display: block; position: relative; overflow: hidden;}}
@container royal (width <= 820px){.royal-vow .family-story > img,.royal-vow .family-story-typography{width: 100%; height: 100%; display: block; position: absolute; inset: 0px;}}
@container royal (width <= 820px){.royal-vow .family-story > img{object-fit: cover; object-position: center center;}}
@container royal (width <= 820px){.royal-vow .family-story{z-index: 2; background: 0px 0px; height: calc(calc(var(--royal-screen-height) * 1) + 70px); margin-top: -70px; scroll-margin-top: -70px;}}
@container royal (width <= 820px){.royal-vow .family-story > img{mask-image: linear-gradient(rgb(0, 0, 0) calc(100% - 150px), rgba(0, 0, 0, 0.78) calc(100% - 112px), rgba(0, 0, 0, 0.42) calc(100% - 72px), rgba(0, 0, 0, 0.14) calc(100% - 32px), rgba(0, 0, 0, 0));}}
@container royal (width <= 820px){.royal-vow .family-story-typography{overflow: visible;}}
@container royal (width <= 820px){.royal-vow .family-story-accessible{clip-path: inset(50%); white-space: nowrap; width: 1px; height: 1px; position: absolute; overflow: hidden;}}
@container royal (width <= 820px){.royal-vow .family-story-typography text{fill: rgb(92, 35, 61);}}
@container royal (width <= 820px){.royal-vow .family-story-eyebrow{letter-spacing: 9px; text-transform: uppercase; stroke: rgb(134, 97, 47); stroke-width: 0.9px; paint-order: stroke; font-family: Cinzel, Georgia, serif; font-size: 28px; font-weight: 700; fill: rgb(134, 97, 47) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-title{letter-spacing: -0.5px; font-family: "Cormorant Garamond", Georgia, serif; font-size: 66px; font-weight: 600; fill: rgb(77, 12, 43) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-copy{font-family: "Cormorant Garamond", Georgia, serif; font-size: 44px; font-style: italic; font-weight: 600; fill: rgb(90, 74, 71) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-name{letter-spacing: -1.5px; stroke: rgb(77, 12, 43); stroke-width: 1.6px; paint-order: stroke; font-family: Ethereal, Georgia, serif; font-size: 96px; font-weight: 400; fill: rgb(77, 12, 43) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-relation{font-family: "Cormorant Garamond", Georgia, serif; font-size: 36px; font-style: italic; font-weight: 600; fill: rgb(160, 122, 69) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-parent{stroke: none; font-family: "Cormorant Garamond", Georgia, serif; font-size: 42px; font-weight: 500; fill: rgb(63, 50, 48) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-parent-amp{stroke: none; font-family: "Cormorant Garamond", Georgia, serif; font-size: 44px; font-style: italic; font-weight: 500; fill: rgb(160, 122, 69) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-amp{font-family: "Cormorant Garamond", Georgia, serif; font-size: 92px; font-style: italic; font-weight: 400; fill: rgb(167, 130, 79) !important;}}
@container royal (width <= 820px){.royal-vow .family-story-amp-rule{stroke: rgb(180, 144, 93); stroke-width: 1.3px;}}
@container royal (width <= 820px){.royal-vow .family-story-short-rule{stroke: rgb(160, 122, 69); stroke-width: 1.6px;}}
@container royal (width <= 820px){.royal-vow .invitation-message{display: none;}}
.royal-vow .family-story-typography .family-story-role,.royal-vow .family-story-typography .family-story-eyebrow{stroke: rgb(134, 97, 47); stroke-width: 0.35px; paint-order: stroke; font-size: 31px; font-weight: 600;}
@keyframes petal-celebration-fall { 
  0% { opacity: 0; transform: translate(0px, 0px); }
  8% { opacity: 0.95; }
  85% { opacity: 0.85; }
  100% { transform: translate3d(var(--petal-drift), 100%, 0); opacity: 0; }
}
@keyframes petal-celebration-sway { 
  0% { transform: translate(-14px) rotate(0deg); }
  100% { transform: translateX(14px) rotate(var(--petal-turn)); }
}
@keyframes petal-celebration-turn { 
  0% { transform: rotateX(10deg) rotateY(-50deg); }
  100% { transform: rotateX(-25deg) rotateY(55deg); }
}
@keyframes opening-bloom { 
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.1); }
  45% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(3.2); }
}
.royal-vow .family-story-typography .family-story-eyebrow[data-motion-kind="rise"]{transition: opacity 1.4s var(--motion-fade) var(--motion-delay,0s), letter-spacing 1.6s var(--motion-ease) var(--motion-delay,0s), filter 1.3s var(--motion-fade) var(--motion-delay,0s);}
.royal-vow .family-story-typography .family-story-eyebrow[data-motion="hidden"]{letter-spacing: 26px; filter: blur(3px); translate: none;}
.royal-vow .family-story-typography .family-story-title[data-motion-kind="rise"],.royal-vow .family-story-typography .family-story-name[data-motion-kind="rise"]{transform-origin: 50% center; transition: opacity 1.5s var(--motion-fade) var(--motion-delay,0s), translate 1.8s var(--motion-ease) var(--motion-delay,0s), scale 1.8s var(--motion-ease) var(--motion-delay,0s), filter 1.5s var(--motion-fade) var(--motion-delay,0s);}
.royal-vow .family-story-typography .family-story-title[data-motion="hidden"]{filter: blur(8px); translate: 0px 18px; scale: 0.96;}
.royal-vow .family-story-typography .family-story-name[data-motion="hidden"]{filter: blur(12px); translate: 0px 34px; scale: 0.9;}
.royal-vow .family-story-typography .family-story-amp-group[data-motion-kind="rise"]{transform-origin: 50% center; transition: opacity 1.2s var(--motion-fade) var(--motion-delay,0s), scale 1.4s cubic-bezier(.34, 1.4, .64, 1) var(--motion-delay,0s), rotate 1.4s var(--motion-ease) var(--motion-delay,0s);}
.royal-vow .family-story-typography .family-story-amp-group[data-motion="hidden"]{filter: none; translate: none; rotate: -40deg; scale: 0.3;}
.royal-vow .family-story-typography .family-story-parent[data-motion="hidden"],.royal-vow .family-story-typography .family-story-relation[data-motion="hidden"],.royal-vow .family-story-typography .family-story-copy[data-motion="hidden"]{filter: blur(4px); translate: 0px 14px;}
.royal-vow .thankyou-finale{isolation: isolate; aspect-ratio: 9 / 20; background: rgb(245, 233, 219); width: 100%; max-width: 900px; margin: 0px auto; position: relative; overflow: hidden;}
.royal-vow .thankyou-finale > img,.royal-vow .thankyou-finale-type{width: 100%; height: 100%; display: block; position: absolute; inset: 0px;}
.royal-vow .thankyou-finale > img{object-fit: fill;}
.royal-vow .thankyou-finale::before{content: ""; z-index: 1; pointer-events: none; background: linear-gradient(rgba(239, 227, 209, 0.4), rgba(0, 0, 0, 0)); height: 35px; position: absolute; inset: 0px 0px auto;}
.royal-vow .thankyou-finale-accessible{clip-path: inset(50%); white-space: nowrap; width: 1px; height: 1px; margin: -1px; position: absolute; overflow: hidden;}
.royal-vow .thankyou-finale-type text{fill: rgb(79, 23, 59); font-weight: 400;}
.royal-vow .thankyou-finale-thank{letter-spacing: -3px; font-family: Ethereal, Georgia, serif; font-size: 100px;}
.royal-vow .thankyou-finale-you{font-family: Candlescript, cursive; font-size: 132px;}
.royal-vow .thankyou-finale-eyebrow{letter-spacing: 7px; text-transform: uppercase; font-family: Cinzel, Georgia, serif; font-size: 20px;}
.royal-vow .thankyou-finale-message{font-family: "Cormorant Garamond", Georgia, serif; font-size: 28px; font-style: italic; fill: rgb(102, 71, 86) !important;}
.royal-vow .thankyou-finale-save{letter-spacing: 6px; font-size: 18px;}
.royal-vow .thankyou-finale-month{letter-spacing: -1px; font-family: Ethereal, Georgia, serif; font-size: 69px;}
.royal-vow .thankyou-finale-year{letter-spacing: 11px; font-family: Cinzel, Georgia, serif; font-size: 21px;}
.royal-vow .thankyou-finale-calendar text{fill: rgb(96, 67, 80); font-family: "Cormorant Garamond", Georgia, serif; font-size: 27px;}
.royal-vow .thankyou-finale-schedule{font-family: "Cormorant Garamond", Georgia, serif; font-size: 26px; font-style: italic;}
@container royal (width <= 820px){.royal-vow .invitation-footer{display: none !important;}}
@container royal (width <= 820px){.royal-vow .thankyou-finale{z-index: 2; background: 0px 0px; margin-top: -110px;}}
@container royal (width <= 820px){.royal-vow .thankyou-finale::before{display: none;}}
@container royal (width <= 820px){.royal-vow .thankyou-finale > img{mask-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.25) 25px, rgba(0, 0, 0, 0.6) 55px, rgba(0, 0, 0, 0.9) 80px, rgb(0, 0, 0) 100px);}}
.royal-vow .thankyou-finale-type .thankyou-finale-eyebrow{letter-spacing: 7px; fill: rgb(90, 31, 66); font-size: 23px; font-weight: 700;}
.royal-vow .thankyou-finale-type .thankyou-finale-message{font-size: 31px; font-weight: 600; fill: rgb(79, 42, 62) !important;}
.royal-vow .thankyou-finale-type .thankyou-finale-save{fill: rgb(134, 97, 47); font-size: 21px;}
.royal-vow .thankyou-finale-type .thankyou-finale-year{fill: rgb(134, 97, 47); font-size: 25px; font-weight: 700;}
.royal-vow .thankyou-finale-calendar text{fill: rgb(79, 42, 62); font-size: 31px; font-weight: 600;}
.royal-vow .thankyou-finale-calendar .thankyou-finale-weekday{fill: rgb(134, 97, 47); font-family: Cinzel, Georgia, serif; font-size: 21px; font-weight: 700;}
.royal-vow .thankyou-finale-calendar .thankyou-finale-selected{fill: rgb(79, 23, 59); font-weight: 700;}
.royal-vow .thankyou-finale-type .thankyou-finale-schedule{fill: rgb(79, 23, 59); font-size: 31px; font-weight: 600;}
.royal-vow .thankyou-finale-type .thankyou-finale-thank{font-size: 116px;}
.royal-vow .thankyou-finale-type .thankyou-finale-you{font-size: 150px;}
.royal-vow .thankyou-finale-type .thankyou-finale-eyebrow{font-size: 26px;}
.royal-vow .thankyou-finale-type .thankyou-finale-message{font-size: 35px;}
.royal-vow .thankyou-finale-type .thankyou-finale-save{font-size: 24px;}
.royal-vow .thankyou-finale-type .thankyou-finale-month{font-size: 98px;}
.royal-vow .thankyou-finale-type .thankyou-finale-year{font-size: 29px;}
.royal-vow .thankyou-finale-calendar text{font-size: 36px;}
.royal-vow .thankyou-finale-calendar .thankyou-finale-weekday{font-size: 24px;}
.royal-vow .thankyou-finale-type .thankyou-finale-schedule{font-size: 35px;}
.royal-vow .thankyou-finale-calendar text:not(.thankyou-finale-weekday){fill: rgb(74, 26, 54); font-family: "Libre Caslon Display", Georgia, serif; font-size: 33px; font-weight: 400;}
.royal-vow .thankyou-finale-calendar .thankyou-finale-selected{fill: rgb(79, 23, 59);}
.royal-vow .thankyou-finale-type text,.royal-vow .thankyou-rule,.royal-vow .thankyou-finale-calendar{opacity: 0;}
.royal-vow .thankyou-finale[data-shown="true"] .thankyou-finale-type text,.royal-vow .thankyou-finale[data-shown="true"] .thankyou-rule,.royal-vow .thankyou-finale[data-shown="true"] .thankyou-finale-calendar{animation: ty-rise 1.8s cubic-bezier(.25,.1,.25,1) var(--ty-group,.2s) both;}
.royal-vow .thankyou-finale .thankyou-finale-message{--ty-group: .5s;}
.royal-vow .thankyou-finale .thankyou-rule{--ty-group: var(--ty-delay);}
.royal-vow .thankyou-finale .thankyou-finale-save,.royal-vow .thankyou-finale .thankyou-finale-month,.royal-vow .thankyou-finale .thankyou-finale-year,.royal-vow .thankyou-finale .thankyou-finale-calendar,.royal-vow .thankyou-finale .thankyou-finale-calendar text{--ty-group: 1.1s;}
.royal-vow .thankyou-finale .thankyou-finale-schedule{--ty-group: 1.7s;}
.royal-vow .thankyou-finale[data-shown="true"] .thankyou-finale-calendar text{opacity: 1; animation: auto ease 0s 1 normal none running none;}
.royal-vow .thankyou-ring > circle:first-child{stroke-dasharray: 1; stroke-dashoffset: 1px; fill-opacity: 0;}
.royal-vow .thankyou-finale[data-shown="true"] .thankyou-ring > circle:first-child{animation: 1.6s cubic-bezier(0.65, 0, 0.35, 1) 2.4s 1 normal forwards running ty-ring;}
@keyframes ty-rise { 
  0% { opacity: 0; translate: 0px 10px; }
  100% { opacity: 1; translate: none; }
}
@keyframes ty-ring { 
  0% { stroke-dashoffset: 1px; fill-opacity: 0; }
  70% { stroke-dashoffset: 0; fill-opacity: 0; }
  100% { stroke-dashoffset: 0; fill-opacity: 1; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .thankyou-finale-type *{opacity: 1 !important; animation: auto ease 0s 1 normal none running none !important;}}
@media (prefers-reduced-motion: reduce){.royal-vow .thankyou-ring > circle:first-child{stroke-dashoffset: 0 !important; fill-opacity: 1 !important;}}
.royal-vow .thankyou-finale .thankyou-finale-calendar text.thankyou-finale-selected{fill: rgb(79, 23, 59); font-weight: 400;}
.royal-vow .thankyou-finale[data-shown="true"] .thankyou-finale-calendar .thankyou-finale-selected{animation: 0.6s ease 3.75s 1 normal both running ty-ten-light;}
@keyframes ty-ten-light { 
  0% { fill: rgb(79, 23, 59); }
  100% { fill: rgb(251, 242, 226); }
}
@media (prefers-reduced-motion: reduce){.royal-vow .thankyou-finale .thankyou-finale-calendar text.thankyou-finale-selected{fill: rgb(251, 242, 226);}}
.royal-vow .rsvp{isolation: isolate; color: rgb(86, 32, 63); text-align: center; background: rgb(245, 233, 216); min-height: calc(var(--royal-screen-height) * 1); padding: 90px clamp(36px, 12cqw, 90px) 115px; position: relative; overflow: hidden;}
.royal-vow .rsvp-background{z-index: -2; object-fit: fill; pointer-events: none; width: 100%; height: 100%; position: absolute; inset: 0px;}
.royal-vow .rsvp-inner{max-width: 550px; margin: 0px auto; position: relative;}
.royal-vow .rsvp-eyebrow{letter-spacing: 6px; color: rgb(102, 48, 78); margin: 0px; padding-left: 6px; font: 500 11px / 1.5 Cinzel, Georgia, serif;}
.royal-vow .rsvp-rule{color: rgb(181, 140, 87); justify-content: center; align-items: center; gap: 7px; margin: 20px auto; font: 10px / 1 Georgia, serif; display: flex;}
.royal-vow .rsvp-rule span{background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgb(181, 140, 87)); width: 48px; height: 1px;}
.royal-vow .rsvp-rule span:last-child{transform: rotate(180deg);}
.royal-vow .rsvp .rsvp-heading h2{letter-spacing: -1px; color: rgb(86, 32, 63); white-space: nowrap; justify-content: center; align-items: baseline; gap: 7px; margin: 0px; font: 400 clamp(37px, 10.5cqw, 65px) / 1.2 Ethereal, Georgia, serif; display: flex;}
.royal-vow .rsvp-heading h2 span{letter-spacing: 0px; color: rgb(161, 111, 145); font: 400 1.52em / 1 Candlescript, cursive;}
.royal-vow .rsvp-by{color: rgb(118, 83, 107); text-wrap: balance; margin: 0px auto; font: italic 400 17px / 1.5 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp-by time{white-space: nowrap;}
.royal-vow .rsvp-by > span{white-space: nowrap; font-size: clamp(12px, 3.4cqw, 18px); display: block;}
.royal-vow .rsvp-form{text-align: left; flex-direction: column; gap: 24px; margin-top: 32px; display: flex;}
.royal-vow .rsvp-field{display: block;}
.royal-vow .rsvp-field-label{letter-spacing: 2.2px; text-transform: uppercase; color: rgb(106, 53, 82); margin: 0px 0px 11px; font: 500 9px / 1.5 Cinzel, Georgia, serif; display: block;}
.royal-vow .rsvp-field-label em{letter-spacing: 0px; text-transform: none; white-space: nowrap; font: italic 15px / 1.4 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp-input-wrap{display: block; position: relative;}
.royal-vow .rsvp-input-wrap > svg{z-index: 1; stroke-width: 1.5px; color: rgb(112, 67, 92); pointer-events: none; width: 21px; height: 21px; position: absolute; top: 14px; left: 13px;}
.royal-vow .rsvp-input-wrap input,.royal-vow .rsvp-input-wrap textarea{width: 100%; min-height: 49px; box-shadow: none; color: rgb(86, 32, 63); background: rgba(255, 247, 237, 0.267); border: 1px solid rgb(197, 161, 124); border-radius: 9px; outline: none; padding: 12px 13px 12px 45px; font: 400 17px / 1.4 "Cormorant Garamond", Georgia, serif; display: block;}
.royal-vow .rsvp-input-wrap textarea{resize: vertical; min-height: 95px;}
.royal-vow .rsvp-input-wrap input::placeholder,.royal-vow .rsvp-input-wrap textarea::placeholder{color: rgb(143, 108, 130); opacity: 1; font-style: italic;}
.royal-vow .rsvp-input-wrap input:focus,.royal-vow .rsvp-input-wrap textarea:focus{border-color: rgb(140, 83, 120); box-shadow: rgba(161, 111, 145, 0.11) 0px 0px 0px 2px;}
.royal-vow .rsvp-attendance{border: 0px; min-width: 0px; margin: 0px; padding: 0px;}
.royal-vow .rsvp-attendance legend{padding: 0px;}
.royal-vow .rsvp-options{grid-template-columns: 1fr 1fr; gap: 10px; display: grid;}
.royal-vow .rsvp-option{cursor: pointer; background: rgba(255, 247, 237, 0.2); border: 1px solid rgb(197, 161, 124); border-radius: 9px; justify-content: flex-start; align-items: center; gap: 8px; min-height: 49px; padding: 9px 10px; display: flex;}
.royal-vow .rsvp-option.is-selected{background: rgba(183, 141, 163, 0.18); border-color: rgb(179, 136, 162);}
.royal-vow .rsvp-option input{appearance: none; cursor: pointer; background: rgb(255, 249, 240); border: 1px solid rgb(196, 160, 132); border-radius: 50%; flex: 0 0 auto; width: 17px; height: 17px; margin: 0px;}
.royal-vow .rsvp-option input:checked{background: rgb(103, 48, 76); border: 4px solid rgb(255, 249, 240); outline: rgb(103, 48, 76) solid 1px;}
.royal-vow .rsvp-option input:focus-visible{outline-offset: 3px; outline: rgb(140, 83, 120) solid 2px;}
.royal-vow .rsvp-option > span{color: rgb(112, 67, 92); font: italic 400 16px / 1.2 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp-send{color: rgb(255, 242, 229); letter-spacing: 2px; text-transform: uppercase; cursor: pointer; background: linear-gradient(120deg, rgb(100, 29, 58), rgb(71, 24, 47)); border: 0px; border-radius: 99px; justify-content: center; align-items: center; gap: 22px; width: 85%; min-height: 49px; margin: 0px auto; padding: 13px 18px; font: 500 11px / 1.4 Cinzel, Georgia, serif; text-decoration: none; display: flex; box-shadow: rgba(100, 34, 62, 0.19) 0px 7px 12px;}
.royal-vow .rsvp-send:focus-visible{outline-offset: 4px; outline: rgb(181, 140, 87) solid 2px;}
.royal-vow .rsvp-error{color: rgb(140, 37, 68); margin: -8px 0px 0px; font: 500 14px / 1.4 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp-closing-rule{margin: 32px auto 24px;}
.royal-vow .rsvp-closing{color: rgb(107, 54, 85); margin: 0px; font: italic 400 19px / 1.45 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp-confirmation{background: rgba(255, 248, 238, 0.533); border: 1px solid rgb(197, 161, 124); border-radius: 12px; margin-top: 36px; padding: 24px 15px;}
.royal-vow .rsvp-confirmation h3{color: rgb(86, 32, 63); margin: 10px 0px; font: 400 29px / 1.2 Ethereal, Georgia, serif;}
.royal-vow .rsvp-confirmation > p:not(.rsvp-field-label){color: rgb(118, 83, 107); font: 400 17px / 1.5 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp-confirmation .rsvp-send{gap: 10px; width: 100%; margin-top: 20px; font-size: 9px;}
.royal-vow .rsvp-edit{color: rgb(112, 67, 92); cursor: pointer; background: 0px 0px; border: 0px; margin: 18px auto 0px; font: 400 15px "Cormorant Garamond", Georgia, serif; text-decoration: underline; display: block;}
@container royal (width <= 350px){.royal-vow .rsvp{padding: 80px 35px 95px;}}
@container royal (width <= 350px){.royal-vow .rsvp .rsvp-heading h2{font-size: 35px;}}
@container royal (width <= 350px){.royal-vow .rsvp-form{gap: 21px;}}
@container royal (width <= 350px){.royal-vow .rsvp-option{gap: 7px; padding: 9px 8px;}}
@container royal (width <= 350px){.royal-vow .rsvp-option > span{font-size: 15px;}}
@container royal (width <= 350px){.royal-vow .rsvp-field-label{letter-spacing: 1.6px; font-size: 8px;}}
@container royal (width <= 350px){.royal-vow .rsvp-field-label em{font-size: 13px;}}
@container royal (width <= 350px){.royal-vow .rsvp-closing{font-size: 17px;}}
@container royal (width <= 820px){.royal-vow .rsvp{z-index: 2; background: 0px 0px; margin-top: -100px; padding-top: 170px;}}
@container royal (width <= 820px){.royal-vow .rsvp{z-index: 1; background: 0px 0px; margin-top: -110px; padding-top: 200px; scroll-margin-top: -110px;}}
@container royal (width <= 820px){.royal-vow .rsvp::before{display: none;}}
@container royal (width <= 820px){.royal-vow .rsvp-background{mask-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.25) 25px, rgba(0, 0, 0, 0.6) 55px, rgba(0, 0, 0, 0.9) 80px, rgb(0, 0, 0) 100px);}}
.royal-vow .rsvp-form,.royal-vow .rsvp-field-label{text-align: center;}
.royal-vow .rsvp-attendance legend{width: 100%;}
.royal-vow .rsvp-input-wrap input,.royal-vow .rsvp-input-wrap textarea{text-align: left;}
.royal-vow .rsvp-error{text-align: center;}
.royal-vow .rsvp-option{font: inherit; color: inherit; text-align: left; justify-content: center; transition: background-color 0.35s, border-color 0.35s;}
.royal-vow .rsvp-option > i{background: rgb(255, 249, 240); border: 1px solid rgb(196, 160, 132); border-radius: 50%; flex: 0 0 auto; width: 17px; height: 17px; position: relative;}
.royal-vow .rsvp-option.is-selected > i{background: rgb(103, 48, 76); border: 4px solid rgb(255, 249, 240); outline: rgb(103, 48, 76) solid 1px;}
.royal-vow .rsvp-option:focus-visible{outline-offset: 3px; outline: rgb(140, 83, 120) solid 2px;}
.royal-vow .rsvp-guests{cursor: default; background: rgba(255, 247, 237, 0.4); justify-content: space-between; padding: 6px 8px; animation: 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal none running rsvp-guests-in;}
.royal-vow .rsvp-guests > button{color: rgb(103, 48, 76); cursor: pointer; background: rgb(255, 249, 240); border: 1px solid rgb(197, 161, 124); border-radius: 50%; place-items: center; width: 30px; height: 30px; padding: 0px; display: grid;}
.royal-vow .rsvp-guests > button:disabled{opacity: 0.35; cursor: default;}
.royal-vow .rsvp-guests > button:focus-visible{outline-offset: 2px; outline: rgb(140, 83, 120) solid 2px;}
.royal-vow .rsvp-guests output{flex-direction: column; align-items: center; line-height: 1; display: flex;}
.royal-vow .rsvp-guests output b{color: rgb(86, 32, 63); font: 400 24px / 1 "Libre Caslon Display", Georgia, serif;}
.royal-vow .rsvp-guests output small{color: rgb(112, 67, 92); margin-top: 2px; font: italic 13px / 1 "Cormorant Garamond", Georgia, serif;}
@keyframes rsvp-guests-in { 
  0% { opacity: 0; transform: scale(0.94); }
  100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .rsvp-guests{animation: auto ease 0s 1 normal none running none;}}
.royal-vow .rsvp .rsvp-field-label{letter-spacing: 0.26em; color: rgb(134, 97, 47); margin-bottom: 12px; font: 700 10.5px / 1.5 Cinzel, Georgia, serif;}
.royal-vow .rsvp .rsvp-input-wrap input,.royal-vow .rsvp .rsvp-input-wrap textarea{color: rgb(74, 20, 48); background: rgba(255, 248, 239, 0.667); font: 600 19px / 1.4 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp .rsvp-input-wrap input::placeholder,.royal-vow .rsvp .rsvp-input-wrap textarea::placeholder{color: rgb(138, 101, 121); font-weight: 500;}
.royal-vow .rsvp .rsvp-input-wrap > svg{stroke-width: 1.8px; color: rgb(103, 48, 76);}
.royal-vow .rsvp .rsvp-option > span{white-space: nowrap; color: rgb(90, 36, 67); font: italic 600 16.5px / 1.2 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp .rsvp-option{background: rgba(255, 248, 239, 0.533); gap: 7px; padding-inline: 8px;}
.royal-vow .rsvp .rsvp-option.is-selected{background: rgba(183, 141, 163, 0.22);}
.royal-vow .rsvp .rsvp-guests output b{color: rgb(74, 20, 48); font-size: 27px;}
.royal-vow .rsvp .rsvp-guests output small{color: rgb(90, 36, 67); font: italic 600 14px / 1 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp .rsvp-guests > button{color: rgb(74, 20, 48); border-color: rgb(181, 140, 87);}
.royal-vow .rsvp .rsvp-send{letter-spacing: 0.24em; font: 700 12px / 1.4 Cinzel, Georgia, serif;}
.royal-vow .rsvp .rsvp-closing{color: rgb(90, 36, 67); font: italic 600 20px / 1.45 "Cormorant Garamond", Georgia, serif;}
.royal-vow .rsvp .rsvp-error{font-weight: 700;}
@container royal (width <= 379px){.royal-vow .rsvp .rsvp-option > span{white-space: normal;}}
.royal-vow .rsvp .rsvp-option > span,.royal-vow .rsvp .rsvp-guests output small,.royal-vow .rsvp .rsvp-input-wrap input::placeholder,.royal-vow .rsvp .rsvp-input-wrap textarea::placeholder{font-style: normal;}
.royal-vow .rsvp .rsvp-options{grid-template-columns: 1fr 1fr; align-items: stretch; gap: 12px;}
.royal-vow .rsvp .rsvp-option{text-align: center; border-radius: 12px; flex-direction: column; justify-content: center; gap: 8px; min-height: 92px; padding: 14px 10px;}
.royal-vow .rsvp .rsvp-option > span{white-space: normal; text-align: center; max-width: 9ch; font-size: 17.5px; line-height: 1.2;}
.royal-vow .rsvp .rsvp-option > i{width: 18px; height: 18px;}
.royal-vow .rsvp .rsvp-guests{flex-direction: row; justify-content: space-between; gap: 4px; padding: 10px 12px;}
.royal-vow .rsvp .rsvp-heading h2{gap: 0px;}
.royal-vow .rsvp .rsvp-heading h2 > i{font-style: normal; display: inline-block;}
.royal-vow .rsvp .rsvp-heading h2 > i,.royal-vow .rsvp .rsvp-form > *,.royal-vow .rsvp .rsvp-confirmation,.royal-vow .rsvp .rsvp-closing-rule,.royal-vow .rsvp .rsvp-closing{opacity: 0;}
.royal-vow .rsvp[data-shown="true"] .rsvp-heading h2 > i{animation: rsvp-letter 1.2s cubic-bezier(.22,1,.36,1) var(--letter-delay) both;}
.royal-vow .rsvp[data-shown="true"] .rsvp-form > *,.royal-vow .rsvp[data-shown="true"] .rsvp-confirmation,.royal-vow .rsvp[data-shown="true"] .rsvp-closing-rule,.royal-vow .rsvp[data-shown="true"] .rsvp-closing{animation: rsvp-float 1.1s cubic-bezier(.22,1,.36,1) var(--rsvp-delay,.6s) both;}
.royal-vow .rsvp .rsvp-form > :first-child{--rsvp-delay: .6s;}
.royal-vow .rsvp .rsvp-form > :nth-child(2){--rsvp-delay: .75s;}
.royal-vow .rsvp .rsvp-form > :nth-child(3){--rsvp-delay: .9s;}
.royal-vow .rsvp .rsvp-form > :nth-child(4){--rsvp-delay: 1.05s;}
.royal-vow .rsvp .rsvp-form > :nth-child(5){--rsvp-delay: 1.15s;}
.royal-vow .rsvp .rsvp-closing-rule{--rsvp-delay: 1.3s;}
.royal-vow .rsvp .rsvp-closing{--rsvp-delay: 1.4s;}
@keyframes rsvp-letter { 
  0% { opacity: 0; filter: blur(5px); transform: translateY(0.18em); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes rsvp-float { 
  0% { opacity: 0; transform: translateY(16px); }
  100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce){.royal-vow .rsvp .rsvp-heading h2 > i,.royal-vow .rsvp .rsvp-form > *,.royal-vow .rsvp .rsvp-confirmation,.royal-vow .rsvp .rsvp-closing-rule,.royal-vow .rsvp .rsvp-closing{opacity: 1 !important; animation: auto ease 0s 1 normal none running none !important;}}
.royal-vow .rsvp[data-shown="true"] .rsvp-confirmation{animation: 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal both running rsvp-confirm;}
@keyframes rsvp-confirm { 
  0% { opacity: 0; transform: translateY(10px) scale(0.98); }
  100% { opacity: 1; transform: none; }
}
.royal-vow .rsvp[data-returning="true"] .rsvp-form > *{animation: rsvp-float .5s cubic-bezier(.22,1,.36,1) calc(var(--rsvp-delay) - .55s) both;}
.royal-vow .rsvp[data-returning="true"] .rsvp-heading h2 > i,.royal-vow .rsvp[data-returning="true"] .rsvp-closing-rule,.royal-vow .rsvp[data-returning="true"] .rsvp-closing{opacity: 1; animation: auto ease 0s 1 normal none running none;}
.royal-vow .invitation-message{min-height: calc(var(--royal-screen-height) * 1); padding: 80px 24px; scroll-margin-top: 0px;}
.royal-vow .invitation-message blockquote span{will-change: transform, opacity, filter; margin-right: 0.19em; display: inline-block;}
.royal-vow .invitation-message blockquote span:last-child{margin-right: 0px;}
.royal-vow .invitation-message blockquote{text-wrap: balance; max-width: 980px; margin-left: auto; margin-right: auto; line-height: 1.08;}
.royal-vow .invitation-message blockquote .gold-word{color: rgb(201, 164, 90); font-style: italic;}
.royal-vow .invitation-message .welcome-script{color: rgb(156, 115, 50); margin-top: 38px; font: italic 24px "Cormorant Garamond"; display: block;}
@container royal (width <= 820px){.royal-vow .invitation-message{min-height: calc(var(--royal-screen-height) * 1); padding: 70px 22px;}}
@container royal (width <= 820px){.royal-vow .invitation-message > div{width: 100%;}}
@container royal (width <= 820px){.royal-vow .invitation-message blockquote{max-width: 620px; margin-top: 34px; margin-bottom: 34px; font-size: clamp(38px, 10.5cqw, 52px); line-height: 1.12;}}
@container royal (width <= 820px){.royal-vow .invitation-message blockquote span{margin-right: 0.16em;}}
@container royal (width <= 820px){.royal-vow .invitation-message .welcome-script{margin-top: 30px; font-size: 21px;}}
@keyframes blessing-pulse { 
  50% { transform: translate(-50%, -50%) scale(1.08); box-shadow: rgba(74, 16, 37, 0.12) 0px 0px 0px 11px, rgba(0, 0, 0, 0.32) 0px 8px 22px; }
}
@keyframes celebration-float { 
  50% { opacity: 0.75; transform: translateY(-18px); }
}
.royal-vow .intro-signature{color: rgb(74, 16, 37); letter-spacing: 0.16em; margin-top: 43px; font: 24px Italiana;}
.royal-vow .intro-signature i{color: rgb(177, 133, 58); font: italic 19px "Cormorant Garamond";}
.royal-vow .intro-signature img{object-fit: cover; width: 178%; max-width: none; height: auto; display: block; transform: translate(-22%, -27%);}
.royal-vow .intro-signature{width: 92px; height: 55px; margin-left: auto; margin-right: auto; overflow: hidden;}
@container royal (width <= 820px){.royal-vow .intro-signature{margin-top: 25px;}}
@container royal (width <= 820px){.royal-vow .intro-signature{display: none;}}
@keyframes phone-frame-turn { 
  0%, 30% { transform: rotate(-90deg); }
  60%, 100% { transform: rotate(0deg); }
}
.royal-vow .layered-opening{z-index: 1000; isolation: isolate; color: rgb(72, 23, 53); font-synthesis: none; background: rgb(62, 35, 48); grid-template-rows: minmax(0px, 1fr); grid-template-columns: minmax(0px, 1fr); place-items: center; display: grid; position: fixed; inset: 0px; overflow: hidden;}
.royal-vow .layered-opening::before{content: ""; z-index: -1; filter: blur(18px) brightness(0.7); background: url("../img/royal/opening-mobile-tall.webp") 50% center / cover no-repeat; position: absolute; inset: -25px;}
.royal-vow .layered-opening.is-opening{pointer-events: none;}
@container royal (width <= 820px){.royal-vow .layered-opening{background: rgb(231, 210, 187); height: calc(var(--royal-screen-height) * 1);}}
@container royal (width <= 820px){.royal-vow .layered-opening::before{display: none;}}
.royal-vow [data-motion-kind="rise"]{transform-box: fill-box; transition: opacity 1.3s var(--motion-fade) var(--motion-delay,0s), translate 1.5s var(--motion-ease) var(--motion-delay,0s), filter 1.3s var(--motion-fade) var(--motion-delay,0s);}
.royal-vow [data-motion-kind="rise"][data-motion="hidden"]{opacity: 0; filter: blur(8px); translate: 0px 26px;}
.royal-vow [data-motion-kind="rule"]{transform-box: fill-box; transform-origin: 50% center; transition: opacity 1s var(--motion-fade) var(--motion-delay,0s), scale 1.6s var(--motion-ease) var(--motion-delay,0s);}
.royal-vow [data-motion-kind="rule"][data-motion="hidden"]{opacity: 0; scale: 0.1 1;}
.royal-vow [data-motion-kind="unveil"]{transition: clip-path 1.6s var(--motion-ease) var(--motion-delay,0s), opacity 1s ease var(--motion-delay,0s);}
.royal-vow [data-motion-kind="unveil"][data-motion="hidden"]{opacity: 0.25; clip-path: inset(62% 0px 0px);}
.royal-vow [data-motion-kind="settle"]{transition: scale 2.8s var(--motion-ease);}
.royal-vow [data-motion-kind="settle"][data-motion="hidden"]{scale: 1.07;}
.royal-vow .layered-opening::after{content: ""; z-index: 20; opacity: 0; pointer-events: none; background: radial-gradient(circle, rgba(255, 246, 225, 0.95), rgba(240, 206, 140, 0.55) 35%, rgba(240, 206, 140, 0) 70%); border-radius: 50%; width: 60vmax; height: 60vmax; position: absolute; top: 72%; left: 50%; transform: translate(-50%, -50%) scale(0.1);}
.royal-vow .layered-opening.is-opening::after{animation: 1.05s cubic-bezier(0.3, 0, 0.2, 1) 0s 1 normal forwards running opening-bloom;}
@media (prefers-reduced-motion: reduce){.royal-vow .layered-opening::after{display: none;}}
/* App controls and dynamic fields stay outside the reference artwork. */
.royal-vow .royal-opening{position:fixed;inset:0;left:50%;transform:translateX(-50%);width:min(100%,440px);height:var(--royal-screen-height);min-height:0;display:grid;place-items:center;padding:0;z-index:90;overflow:hidden;background:#f8edd7}
.royal-vow .opening-portrait-stage{width:100%;height:100%;min-height:0}
.royal-vow .opening-scene-layer{object-fit:fill}
.royal-vow .opening-live-typography{width:100%;height:100%}
.royal-vow .opening-live-seal{animation:royal-seal-breathe 3s ease-in-out infinite}
.royal-vow.opening .opening-portrait-stage{transform:scale(1.16);filter:blur(5px);opacity:0;transition:transform 1.4s cubic-bezier(.3,0,.2,1),filter 1.2s ease,opacity 1.2s ease}
.royal-vow.opened .royal-opening{visibility:hidden;pointer-events:none}
.royal-vow:not(.wedding-ready) .royal-opening{display:none}
.royal-vow .invitation-language{position:fixed;top:12px;right:max(12px,calc((100vw - 416px)/2));z-index:100}
.royal-vow .language-switch{background:#fff9;backdrop-filter:blur(12px);padding:3px}.royal-vow .language-switch a{padding:5px 9px;font-size:12px}.royal-vow .language-switch a[aria-current=true]{background:#4a1025;color:#fff}
.royal-vow .intro-families{max-width:180px}.royal-vow .intro-invite{max-width:200px}
.royal-vow .intro-names [data-royal-letters]{white-space:nowrap}
.royal-vow .royal-events{position:relative;background:#f4e9d9}
.royal-vow .reception-mobile{display:block}.royal-vow .ceremony-mobile{display:block}
.royal-vow .royal-story-deck{touch-action:pan-y;outline-offset:10px}
.royal-vow .journey-deck-card{user-select:none;transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .55s ease;cursor:grab}
.royal-vow .journey-deck-card.is-dragging{cursor:grabbing;transition:none}
.royal-vow .journey-letter-copy h3{overflow-wrap:anywhere}
.royal-vow .journey-deck-controls button{display:grid;place-items:center;font-family:Georgia,serif;font-size:24px;color:#5f2547}
.royal-vow .journey-deck-controls .journey-dots button{font-size:0}
.royal-vow .journey-deck-controls .royal-accessible{display:block}
.royal-vow .venue-reference-name,.royal-vow .family-story-name{font-weight:400}
.royal-vow .venue-reference-actions a{text-decoration:none;display:flex;justify-content:center;align-items:center}
.royal-vow .royal-rsvp .wedding-rsvp{padding:0;border:0;background:none;box-shadow:none;max-width:none;text-align:left;border-radius:0}
.royal-vow .rsvp-form input,.royal-vow .rsvp-form textarea{width:100%;min-width:0;box-shadow:none;outline-offset:3px;background:transparent;color:#56203f}
.royal-vow .rsvp-form input:focus,.royal-vow .rsvp-form textarea:focus{outline:2px solid #b18a50}
.royal-vow .royal-rsvp-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:12px}
.royal-vow .rsvp-option input[type=radio]{appearance:auto;width:15px;height:15px;min-height:0;margin:0;accent-color:#6b2c53;flex-shrink:0}
.royal-vow .rsvp-option{cursor:pointer}.royal-vow .rsvp-attendance{border:0}.royal-vow .rsvp-option span{line-height:1.4}
.royal-vow .rsvp-form .rsvp-send{color:#fff;background:#4a1025;cursor:pointer}
.royal-vow .call-rsvp{display:block;color:#56203f;margin-top:18px;font:13px/1.6 Manrope,sans-serif}
.royal-vow .rsvp-message,.royal-vow [data-sample-message]{font:14px/1.5 Manrope,sans-serif;color:#56203f;margin:14px 0!important}
.royal-vow .rsvp [data-sample-message]:empty{display:none}
.royal-vow .royal-thank-title{font-size:112px}
.royal-vow .royal-credit{position:absolute;bottom:16px;left:0;width:100%;text-align:center;color:#4a1025;font:10px/1.5 Manrope,sans-serif;text-decoration:none}
.royal-vow .royal-extra,.royal-vow .royal-section-inner,.royal-vow .custom-invitation-section{padding:48px 28px;text-align:center;background:#f6ebdb;color:#4a1025}
.royal-vow .royal-extra h3,.royal-vow .royal-section-inner h2{font:400 32px/1.3 Ethereal,Georgia,serif!important;margin-bottom:20px!important}
.royal-vow .royal-extra p,.royal-vow .royal-section-inner p{font:20px/1.6 'Cormorant Garamond',Georgia,serif!important}
.royal-vow .royal-gallery .gallery-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:10px}.royal-vow .royal-gallery img{width:100%;height:240px;object-fit:cover}
.royal-vow .fixed-footer{max-width:440px;left:50%;right:auto;transform:translateX(-50%);width:100%;background:#f8edddf2;backdrop-filter:blur(10px);border-top:1px solid #c5a46b;z-index:70}.royal-vow .fixed-footer-inner{width:100%;padding:12px 18px;gap:10px}.royal-vow .fixed-footer-copy{min-width:0}.royal-vow .fixed-footer-copy span{color:#4a1025;font-size:12px}.royal-vow .fixed-footer-copy strong{color:#4a1025;font-size:15px}.royal-vow .fixed-footer-action{padding:12px 15px;background:#4a1025;color:#fff1dc;font-size:12px;border-radius:24px}.royal-vow .music-control{position:fixed;bottom:100px;right:max(16px,calc((100vw - 414px)/2));background:#4a1025;color:#f5dcb7;border:1px solid #bd985a;width:44px;height:44px;z-index:75}.royal-vow .music-message{z-index:120}.royal-vow .photo-dialog img{max-width:100%;max-height:80vh}
@keyframes royal-seal-breathe{50%{transform:translateY(-3px) scale(1.035) rotate(-1deg)}}
@media(min-width:821px){body.royal-vow{--royal-screen-height:min(846px,100svh)}.royal-vow .royal-frame{max-width:390px}.royal-vow .royal-opening,.royal-vow .fixed-footer{max-width:390px}.royal-vow .invitation-language{right:calc((100vw - 366px)/2)}.royal-vow .music-control{right:calc((100vw - 358px)/2)}}
@media(prefers-reduced-motion:reduce){.royal-vow *, .royal-vow *:before,.royal-vow *:after{animation:none!important;transition:none!important}.royal-vow [data-motion],.royal-vow [data-shown] *, .royal-vow .mobile-reference-copy *, .royal-vow .intro-next{opacity:1!important;filter:none!important;translate:none!important;scale:none!important}.royal-vow .opening-air-petals,.royal-vow .journey-floating-petals{display:none}.royal-vow .intro-cross path{stroke-dashoffset:0!important}.royal-vow .intro-reference-date,.royal-vow .intro-reference-place{-webkit-text-fill-color:currentColor!important}}
.royal-vow[data-motion="0"] *, .royal-vow[data-motion="0"] *:before,.royal-vow[data-motion="0"] *:after{animation:none!important;transition:none!important}.royal-vow[data-motion="0"] [data-motion],.royal-vow[data-motion="0"] [data-shown] *,.royal-vow[data-motion="0"] .mobile-reference-copy *,.royal-vow[data-motion="0"] .intro-next{opacity:1!important;filter:none!important;translate:none!important;scale:none!important}.royal-vow[data-motion="0"] .opening-air-petals,.royal-vow[data-motion="0"] .journey-floating-petals{display:none}

.royal-vow [data-royal-letters]>i{display:inline-block;font-style:normal}.royal-vow .journey-heading h2{display:block;white-space:normal}.royal-vow .journey-heading[data-shown="false"] h2>i{opacity:0}.royal-vow .journey-heading[data-shown="true"] h2>i{animation:journey-letter 1.1s cubic-bezier(.22,1,.36,1) var(--letter-delay) both}.royal-vow .journey-heading .journey-intro{margin-top:22px}

.royal-vow .rsvp .rsvp-heading h2{display:block;white-space:normal;text-wrap:balance}.royal-vow .rsvp .rsvp-heading h2>i{font:inherit}.royal-vow .rsvp-form .rsvp-option{padding:0;border:0;background:none;display:flex;gap:9px}.royal-vow .intro-names{text-shadow:none}

.royal-vow .royal-word{display:inline-block;white-space:nowrap;font:inherit}.royal-vow .royal-word i{display:inline-block;font-style:inherit}.royal-vow .journey-heading[data-shown="false"] h2 i{opacity:0}.royal-vow .journey-heading[data-shown="true"] h2 i{animation:journey-letter 1.1s cubic-bezier(.22,1,.36,1) var(--letter-delay) both}.royal-vow .royal-ceremony-title{overflow-wrap:normal!important}.royal-vow .rsvp-heading h2 .royal-word{margin-right:.18em}.royal-vow .rsvp-heading h2 .royal-word:last-child{margin-right:0}

.royal-vow.opened .mobile-reference-background{transform-origin:50% 55%;animation:royal-hero-settle 8s cubic-bezier(.22,1,.36,1) both}@keyframes royal-hero-settle{from{transform:scale(1.14)}to{transform:scale(1)}}.royal-vow[data-motion="0"] .intro-cross path{stroke-dashoffset:0!important}.royal-vow[data-motion="0"] .intro-reference-date,.royal-vow[data-motion="0"] .intro-reference-place{-webkit-text-fill-color:currentColor!important}

@media(min-width:821px){body.royal-vow{--royal-screen-height:min(846px,calc(100svh - 40px));background:radial-gradient(ellipse at center,#69605b 0,#433736 58%,#2c1719 100%);background-attachment:fixed}.royal-vow .royal-frame{margin:20px auto;border-radius:30px 30px 0 0}.royal-vow .royal-opening{top:calc((100svh - var(--royal-screen-height))/2);bottom:auto;border-radius:32px;outline:7px solid #2c1c20;box-shadow:0 24px 80px #1b111144}.royal-vow .invitation-language{top:36px}}
