:root{--color-bg:#fdf6ee;--color-bg-deep:#f4e6d7;--color-ink:#2b1d1a;--color-ink-soft:#5a4845;--color-accent:#b3324b;--color-accent-soft:#d76a82;--color-gold:#c69a5a;--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--step-0:clamp(1rem, .95rem + .25vw, 1.125rem);--step-1:clamp(1.125rem, 1rem + .6vw, 1.375rem);--step-2:clamp(1.5rem, 1.2rem + 1.5vw, 2rem);--step-3:clamp(2.25rem, 1.7rem + 2.5vw, 3.25rem);--step-4:clamp(3.25rem, 2.2rem + 4.5vw, 5rem);--step-5:clamp(4rem, 2.6rem + 6vw, 6.5rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6rem;--radius-sm:.5rem;--radius-md:1rem;--radius-lg:1.75rem;--shadow-soft:0 6px 24px -8px #2b1d1a2e;--shadow-card:0 16px 40px -12px #2b1d1a47;--ease-out:cubic-bezier(.22, 1, .36, 1)}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-ext-400-normal-W3Dto7M0.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-400-normal-DLdKLAvx.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-400-normal-DD2KOZkl.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-400-normal-CVFrM67f.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-vietnamese-400-normal-6K-YXo6g.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-400-normal-4uxlocMh.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-ext-400-normal-Drx2k2n9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-400-normal-uvC0WHQr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-ext-600-italic-o1-A_FsB.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-600-italic-Vv_u9p1E.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-600-italic-Bp4BYShX.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-600-italic-DP5iIMI9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-italic-C3DTNE_9.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-italic-Bdap-eNg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-italic-DYtrqAWE.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-italic-CcucBqPp.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-italic-DCuhXWyK.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-italic-BcJbkSJ4.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;padding:0;line-height:1.6}html{scroll-behavior:smooth}body{overscroll-behavior-y:contain;min-height:100dvh;overflow-x:hidden}img{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:.005em;margin:0;font-weight:500;line-height:1.15}p{margin:0}::selection{background:var(--color-accent-soft);color:var(--color-bg)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{isolation:isolate;min-height:100dvh;position:relative}.section{width:100%;padding:var(--space-5) var(--space-3);padding-left:max(var(--space-3), env(safe-area-inset-left));padding-right:max(var(--space-3), env(safe-area-inset-right))}.section--screen{min-height:100dvh;padding-top:max(var(--space-5), env(safe-area-inset-top));padding-bottom:max(var(--space-5), env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center;display:flex}.measure{max-width:38rem;margin-inline:auto}.lock{justify-content:center;align-items:center;gap:var(--space-3);width:100%;min-height:100dvh;padding:var(--space-5) var(--space-3);padding-top:max(var(--space-5), env(safe-area-inset-top));padding-bottom:max(var(--space-5), env(safe-area-inset-bottom));text-align:center;background:linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-deep) 100%);isolation:isolate;flex-direction:column;display:flex;position:relative;overflow:hidden}.lock__aurora{pointer-events:none;z-index:0;filter:blur(40px);position:absolute;inset:-10%}.lock__aurora-blob{aspect-ratio:1;opacity:.45;mix-blend-mode:screen;will-change:transform;border-radius:50%;width:70%;position:absolute}.lock__aurora-blob--rose{animation:lock-drift-a 22s var(--ease-out) infinite alternate;background:radial-gradient(closest-side,#d76a82d9,#d76a8200);top:8%;left:-8%}.lock__aurora-blob--gold{animation:lock-drift-b 28s var(--ease-out) infinite alternate;background:radial-gradient(closest-side,#c69a5ab3,#c69a5a00);bottom:-10%;right:-8%}@keyframes lock-drift-a{0%{transform:translate(0)scale(1)}to{transform:translate(18%,12%)scale(1.18)}}@keyframes lock-drift-b{0%{transform:translate(0)scale(1.05)}to{transform:translate(-14%,-10%)scale(.95)}}.lock__content{z-index:1;align-items:center;gap:var(--space-2);flex-direction:column;width:100%;max-width:26rem;display:flex;position:relative}.lock__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--color-gold);margin-bottom:var(--space-1);font-size:.8rem}.lock__heading{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:var(--step-4);color:var(--color-accent);margin:0 0 var(--space-1);max-width:14ch;line-height:1.05}.lock__hint{color:var(--color-ink-soft);font-size:var(--step-0);max-width:24ch;margin:0 0 var(--space-3);line-height:1.5}.lock__form{align-items:stretch;gap:var(--space-2);flex-direction:column;width:100%;max-width:18rem;display:flex}.lock__input{appearance:none;width:100%;font-family:var(--font-display);font-style:italic;font-size:var(--step-3);text-align:center;letter-spacing:.35em;color:var(--color-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);caret-color:var(--color-accent);touch-action:manipulation;background:#fdf6eed9;border:1px solid #c69a5a73;outline:none;padding:.9rem 1rem;transition:border-color .2s,box-shadow .2s}.lock__input::placeholder{color:var(--color-gold);opacity:.45;letter-spacing:.32em;font-style:italic}.lock__input:focus-visible{border-color:var(--color-gold);box-shadow:0 0 0 3px #c69a5a2e, var(--shadow-soft)}.lock__input[aria-invalid=true]{border-color:#d76a82b3}.lock__submit{appearance:none;width:100%;font-family:var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:var(--color-bg);background:var(--color-accent);cursor:pointer;touch-action:manipulation;border:none;border-radius:999px;padding:.85rem 1.2rem;font-size:.9rem;transition:opacity .2s,transform .2s,background .2s}.lock__submit:hover:not(:disabled),.lock__submit:focus-visible{background:var(--color-gold)}.lock__submit:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px}.lock__submit:active:not(:disabled){transform:translateY(1px)}.lock__submit:disabled{opacity:.45;cursor:not-allowed}.lock__error{min-height:1.4rem;font-family:var(--font-display);font-style:italic;font-size:var(--step-0);color:#d76a82f2;opacity:0;margin:0;transition:opacity .3s,transform .3s;transform:translateY(-4px)}.lock__error[data-visible=true]{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.lock__aurora-blob{animation:none}}.line-mask{display:inline}.line-mask__word{vertical-align:bottom;line-height:inherit;margin-block:-.18em;padding-block:.18em;display:inline-block;overflow:hidden}.line-mask__inner{will-change:transform;display:inline-block}.line-mask__space{white-space:pre}.intro{justify-content:center;align-items:center;gap:var(--space-3);width:100%;min-height:100dvh;padding:var(--space-5) var(--space-3);padding-top:max(var(--space-5), env(safe-area-inset-top));padding-bottom:max(var(--space-5), env(safe-area-inset-bottom));text-align:center;background:linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-deep) 100%);isolation:isolate;flex-direction:column;display:flex;position:relative;overflow:hidden}.intro__aurora{pointer-events:none;z-index:0;filter:blur(40px);position:absolute;inset:-10%}.intro__aurora-blob{aspect-ratio:1;opacity:.55;mix-blend-mode:screen;will-change:transform;border-radius:50%;width:70%;position:absolute}.intro__aurora-blob--rose{animation:intro-drift-a 22s var(--ease-out) infinite alternate;background:radial-gradient(closest-side,#d76a82d9,#d76a8200);top:8%;left:-8%}.intro__aurora-blob--gold{animation:intro-drift-b 28s var(--ease-out) infinite alternate;background:radial-gradient(closest-side,#c69a5ab3,#c69a5a00);bottom:-10%;right:-8%}@keyframes intro-drift-a{0%{transform:translate(0)scale(1)}to{transform:translate(18%,12%)scale(1.18)}}@keyframes intro-drift-b{0%{transform:translate(0)scale(1.05)}to{transform:translate(-14%,-10%)scale(.95)}}.intro__content{z-index:1;align-items:center;gap:var(--space-3);flex-direction:column;display:flex;position:relative}.intro__sub{font-family:var(--font-body);font-size:var(--step-1);letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-soft);margin-bottom:var(--space-2)}.intro__greeting{font-family:var(--font-display);font-size:var(--step-5);color:var(--color-accent);margin:0;font-style:italic;font-weight:500;line-height:.95}.intro__hint{margin-top:var(--space-4);font-size:var(--step-0);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-soft);align-items:center;gap:.5rem;display:inline-flex}.intro__hint:before,.intro__hint:after{content:"";opacity:.5;background:currentColor;width:1.5rem;height:1px;display:inline-block}.photo-card{gap:var(--space-2);flex-direction:column;width:100%;max-width:32rem;margin-inline:auto;display:flex;position:relative}.photo-card__frame{aspect-ratio:4/5;border-radius:var(--radius-md);background:linear-gradient(135deg, var(--color-bg-deep) 0%, #e8d4b6 100%);width:100%;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.photo-card__image{object-fit:cover;transform-origin:50%;will-change:transform;width:100%;height:100%;display:block}.photo-card__placeholder{text-align:center;padding:var(--space-3);will-change:clip-path;background:radial-gradient(120% 100%,#fdf6eed9 0%,#fdf6ee00 65%);flex-direction:column;justify-content:center;align-items:center;gap:.65rem;display:flex;position:absolute;inset:0}.photo-card__placeholder-eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--color-gold);opacity:.85;font-size:.75rem}.photo-card__placeholder-text{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:var(--step-3);color:var(--color-accent);line-height:1.05}.photo-card__date{top:var(--space-2);left:var(--space-2);color:var(--color-accent);letter-spacing:.16em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);background:#fdf6eeeb;border-radius:999px;padding:.35rem .75rem;font-size:.8rem;font-weight:500;position:absolute}.photo-card__body{padding-inline:var(--space-1)}.photo-card__title{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:var(--step-2);color:var(--color-ink);margin-bottom:.5rem}.photo-card__caption{color:var(--color-ink-soft);font-size:var(--step-0);line-height:1.6}.timeline{background:var(--color-bg);padding-top:var(--space-6);padding-bottom:var(--space-5)}.timeline__header{text-align:center;margin-bottom:var(--space-5)}.timeline__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--color-gold);margin-bottom:var(--space-2);font-size:.85rem}.timeline__heading{font-family:var(--font-display);font-style:italic;font-size:var(--step-4);color:var(--color-ink);margin-bottom:var(--space-2);max-width:16ch;margin-inline:auto;line-height:1.05}.timeline__intro{color:var(--color-ink-soft);font-size:var(--step-1);line-height:1.55}.timeline__list{gap:var(--space-5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline__item{position:relative}.letter{padding-top:var(--space-6);padding-bottom:var(--space-6);background:linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-deep) 100%)}.letter__inner{gap:var(--space-3);flex-direction:column;display:flex}.letter__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--color-gold);text-align:center;margin-bottom:var(--space-1);font-size:.85rem;position:relative}.letter__heading{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:var(--step-4);color:var(--color-accent);text-align:center;margin-bottom:var(--space-3);line-height:1.05}.letter__paragraph{font-family:var(--font-display);font-size:var(--step-2);color:var(--color-ink);text-align:left;line-height:1.55;position:relative}.letter__paragraph:first-letter{color:var(--color-accent);font-style:italic}.letter__signature{margin-top:var(--space-3);text-align:right;font-family:var(--font-display);font-style:italic;font-size:var(--step-2);color:var(--color-accent);position:relative}.invitation{padding-top:var(--space-6);padding-bottom:var(--space-6);background:radial-gradient(120% 80% at 50% 20%, #c69a5a2e 0%, #c69a5a00 60%), var(--color-bg)}.invitation__inner{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.invitation__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--color-gold);font-size:.85rem}.invitation__heading{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:var(--step-4);color:var(--color-accent);max-width:16ch;line-height:1.05}.invitation__intro{color:var(--color-ink-soft);font-size:var(--step-1);max-width:32ch;margin-bottom:var(--space-3)}.invitation__list{gap:var(--space-3);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.invitation__item{background:var(--color-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);border:1px solid #c69a5a59;transition:border-color .4s;position:relative;overflow:hidden}.invitation__item.is-answered{border-color:#789c6099}.invitation__item:before{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(#fdf6ee00 0%,#f4e6d773 100%);position:absolute;inset:0}.invitation__card{z-index:1;width:100%;padding:var(--space-3);text-align:left;flex-direction:column;gap:.5rem;display:flex;position:relative}.invitation__label{letter-spacing:.18em;text-transform:uppercase;color:var(--color-gold);font-size:.75rem;display:block}.invitation__riddle{font-family:var(--font-display);font-style:italic;font-size:var(--step-1);color:var(--color-ink);margin:0;line-height:1.45}.invitation__options{flex-direction:column;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.invitation__option{appearance:none;border-radius:var(--radius-md);width:100%;color:var(--color-ink);font-family:var(--font-body);font-size:var(--step-0);text-align:left;cursor:pointer;touch-action:manipulation;background:#fdf6eeb3;border:1px solid #c69a5a66;justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem 1rem;line-height:1.4;transition:background .2s,border-color .2s,color .2s,opacity .3s,transform .1s;display:flex}.invitation__option:hover:not(:disabled),.invitation__option:focus-visible:not(:disabled){border-color:var(--color-gold);background:#f4e6d7d9}.invitation__option:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}.invitation__option:active:not(:disabled){transform:translateY(1px)}.invitation__option.is-correct{color:#466437;background:#92b27a38;border-color:#789c60bf;font-weight:500}.invitation__option.is-wrong{color:#96415a;background:#d76a8229;border-color:#d76a82b3;animation:.45s ease-in-out invitation-shake}.invitation__option.is-faded{opacity:.35}.invitation__option:disabled{cursor:default}.invitation__option-check{color:#789c60;flex-shrink:0;font-weight:700}.invitation__success{font-family:var(--font-display);font-style:italic;font-size:var(--step-1);color:var(--color-accent);margin:.6rem 0 0;line-height:1.45}@keyframes invitation-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.invitation__closing{margin-top:var(--space-3);font-family:var(--font-display);font-style:italic;font-size:var(--step-2);color:var(--color-accent);text-align:center}@media (prefers-reduced-motion:reduce){.invitation__option.is-wrong{animation:none}}.finale{text-align:center;background:linear-gradient(180deg, var(--color-bg-deep) 0%, var(--color-bg) 100%);gap:var(--space-3);isolation:isolate;position:relative;overflow:hidden}.finale__aurora{pointer-events:none;z-index:0;filter:blur(46px);position:absolute;inset:-10%}.finale__aurora-blob{aspect-ratio:1;opacity:.55;mix-blend-mode:screen;will-change:transform;border-radius:50%;width:80%;position:absolute}.finale__aurora-blob--rose{animation:finale-pulse 14s var(--ease-out) infinite alternate;background:radial-gradient(closest-side,#d76a82d9,#d76a8200);top:18%;left:50%;transform:translate(-50%)}.finale__aurora-blob--gold{animation:finale-drift 24s var(--ease-out) infinite alternate;background:radial-gradient(closest-side,#c69a5ab3,#c69a5a00);bottom:0;right:-15%}@keyframes finale-pulse{0%{opacity:.45;transform:translate(-50%)scale(.95)}to{opacity:.65;transform:translate(-50%)scale(1.15)}}@keyframes finale-drift{0%{transform:translate(0)scale(1)}to{transform:translate(-12%,-10%)scale(1.1)}}.finale__content{z-index:1;align-items:center;gap:var(--space-3);flex-direction:column;display:flex;position:relative}.finale__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--color-gold);font-size:.85rem}.finale__heading{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:var(--step-5);color:var(--color-accent);margin-inline:auto;max-width:14ch;margin:0;line-height:.98}.finale__message{font-family:var(--font-display);font-size:var(--step-2);color:var(--color-ink);max-width:28ch;margin-inline:auto}.finale__cta{margin-top:var(--space-4);font-size:var(--step-0);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-soft)}
