*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--ink: #2a2520;--ink-soft: #6a6158;--ink-whisper: #8a8078;--cream: #f9f6f0;--gold: #b8956a;--gold-soft: #c8a97d;--charcoal: var(--ink);--charcoal-light: var(--ink-soft)}html{font-size:1.2rem}body{font-family:Cormorant Garamond,Georgia,serif;color:var(--charcoal);background-color:var(--cream);background:radial-gradient(ellipse at center,transparent 50%,rgb(132 132 113 / 20%) 100%),url(../white-paper-texture-mirrored.jpg) repeat,var(--cream);min-height:100svh;display:flex;justify-content:center;align-items:center;overflow-x:hidden}#app{position:relative;width:100%;max-width:560px;padding:0 2rem;display:flex;flex-direction:column;align-items:center;min-height:100vh}.lemons-image{max-width:90%;height:auto;display:block;margin:0 auto;mix-blend-mode:darken;transform-origin:top center;opacity:0}body.loaded .lemons-image{animation:lemonDrop 1.4s cubic-bezier(.22,1,.36,1) .2s forwards}.content{display:flex;flex-direction:column;align-items:center;padding-bottom:6rem}.save-the-date{display:flex;align-items:baseline;gap:0;margin-bottom:1.6rem;flex-wrap:nowrap;white-space:nowrap}.script-text{font-family:MonteCarlo,cursive;font-size:2.6rem;padding-right:.2rem;font-weight:400;line-height:1;color:var(--ink-soft);opacity:0}body.loaded .script-text{animation:fadeIn 1s ease-out .3s forwards}body.loaded .script-date{animation-delay:1.1s}.the-text{font-family:Cormorant Garamond,serif;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:2.5px;color:var(--gold);margin:0 .75rem;position:relative;top:-3px;opacity:0}body.loaded .the-text{animation:fadeIn .6s ease-out .8s forwards}.names{font-family:Cinzel,Cormorant Garamond,serif;font-size:2.25rem;font-weight:500;text-transform:uppercase;letter-spacing:5px;color:var(--ink);margin-bottom:.5rem;opacity:0}body.loaded .names{animation:fadeIn 1s ease-out 1.9s forwards}.names .amp{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:400;font-size:1.3em;letter-spacing:0;color:var(--gold);margin:0 .25em;position:relative;top:.02em}.getting-married{font-family:Cormorant Garamond,serif;font-size:1.05rem;font-weight:300;font-style:italic;letter-spacing:.3px;color:var(--ink-soft);margin-bottom:2.4rem;opacity:0}body.loaded .getting-married{animation:fadeIn 1s ease-out 2.1s forwards}.date{font-family:Cormorant Garamond,serif;font-size:1.35rem;font-weight:400;text-transform:uppercase;letter-spacing:4.5px;color:var(--ink);margin-bottom:.55rem;opacity:0}body.loaded .date{animation:fadeIn 1s ease-out 2.3s forwards}.location{font-family:Cormorant Garamond,serif;font-size:.92rem;font-weight:400;text-transform:uppercase;letter-spacing:3.5px;color:var(--ink-soft);margin-bottom:2.6rem;opacity:0}body.loaded .location{animation:fadeIn 1s ease-out 2.5s forwards}.divider{width:48px;height:1px;background:var(--gold);opacity:0;margin-bottom:1.4rem}body.loaded .divider{animation:scaleIn 1s ease-out 2.7s forwards}.invitation{font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:300;font-style:italic;letter-spacing:.2px;color:var(--ink-whisper);opacity:0}body.loaded .invitation{animation:fadeIn 1s ease-out 2.9s forwards}.calendar-btn{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;padding:.15rem;font-family:Cormorant Garamond,serif;font-size:.75rem;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;color:var(--ink);background:transparent;border:0;cursor:pointer;opacity:.75;transition:opacity .25s ease,color .25s ease}.calendar-btn:hover,.calendar-btn:focus-visible{opacity:1;color:var(--gold);outline:none}.calendar-icon{width:12px;height:12px;color:var(--gold);flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#2a252073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal-card{position:relative;width:100%;max-width:380px;padding:2.8rem 2rem 2rem;background:var(--cream);background-image:radial-gradient(ellipse at top,transparent 60%,rgb(132 132 113 / 12%) 100%),url(../white-paper-texture-mirrored.jpg);background-repeat:repeat;border:1px solid rgb(184 149 106 / 35%);border-radius:2px;box-shadow:0 30px 60px #2a252040,0 0 0 1px #f9f6f099 inset;text-align:center}.modal-close{position:absolute;top:.85rem;right:.85rem;width:28px;height:28px;padding:0;background:transparent;border:0;color:var(--ink-whisper);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .25s ease,transform .25s ease}.modal-close:hover,.modal-close:focus-visible{color:var(--gold);transform:rotate(90deg);outline:none}.modal-close svg{width:14px;height:14px}.modal-eyebrow{font-family:Cormorant Garamond,serif;font-size:.7rem;font-weight:500;letter-spacing:3.5px;text-transform:uppercase;color:var(--gold);margin-bottom:.9rem}.modal-title{font-family:Cinzel,Cormorant Garamond,serif;font-size:1.35rem;font-weight:500;text-transform:uppercase;letter-spacing:4px;color:var(--ink);margin-bottom:.45rem}.modal-title .amp{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:400;font-size:1.3em;letter-spacing:0;color:var(--gold);margin:0 .2em;position:relative;top:.02em}.modal-sub{font-family:Cormorant Garamond,serif;font-size:.82rem;font-weight:300;font-style:italic;letter-spacing:.3px;color:var(--ink-soft)}.modal-divider{width:36px;height:1px;background:var(--gold);opacity:.6;margin:1.4rem auto}.modal-options{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.15rem}.modal-options a{display:block;padding:.85rem 1rem;font-family:Cormorant Garamond,serif;font-size:.78rem;font-weight:500;letter-spacing:2.8px;text-transform:uppercase;text-decoration:none;color:var(--ink-soft);border:1px solid transparent;border-radius:1px;transition:background-color .3s ease,color .3s ease,border-color .3s ease,letter-spacing .3s ease}.modal-options a:hover,.modal-options a:focus-visible{color:var(--ink);border-color:#b8956a73;background-color:#b8956a0f;letter-spacing:3.2px;outline:none}.modal-enter-active,.modal-leave-active{transition:opacity .35s ease}.modal-enter-active .modal-card,.modal-leave-active .modal-card{transition:opacity .4s ease,transform .4s cubic-bezier(.22,1,.36,1)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-card,.modal-leave-to .modal-card{opacity:0;transform:translateY(12px) scale(.98)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:.92;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scaleX(0)}to{opacity:.75;transform:scaleX(1)}}@keyframes lemonDrop{0%{opacity:0;transform:translateY(-28px) rotate(-1.5deg)}60%{opacity:1;transform:translateY(2px) rotate(.3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes writeOn{0%{clip-path:inset(0 100% -20% 0)}to{clip-path:inset(0 0 -20% 0)}}@keyframes fadeInCentered{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.floating-bar{position:fixed;left:50%;transform:translate(-50%);bottom:1.5rem;display:inline-flex;justify-content:center;align-items:center;gap:1.1rem;padding:.35rem 1.15rem;background:#fffdf8c7;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(44,44,44,.12);border-radius:999px;box-shadow:0 1px 3px #0000000f;font-family:Cormorant Garamond,serif;color:var(--ink);max-width:calc(100vw - 2rem);opacity:0;z-index:50}body.loaded .floating-bar{animation:fadeInCentered 1s ease-out 4.2s forwards}.bar-sep{width:1px;height:18px;background:#2c2c2c26;flex-shrink:0}.lang-switch{display:inline-flex;align-items:center;gap:.15rem;font-size:.8rem;font-weight:500;letter-spacing:3px;text-transform:uppercase}.lang-switch button{background:none;border:0;padding:.15rem;font:inherit;letter-spacing:inherit;color:var(--ink);opacity:.55;cursor:pointer;transition:opacity .25s ease,color .25s ease}.lang-switch button:hover{opacity:.85}.lang-switch button:last-of-type{margin-right:-3px}.lang-switch button.active{opacity:1;color:var(--gold)}.lang-sep{opacity:.4;font-weight:300}@media (prefers-reduced-motion: reduce){body.loaded .lemons-image{animation:fadeIn .6s ease-out .2s forwards}body.loaded .script-text,body.loaded .script-save,body.loaded .script-date{animation:fadeIn .6s ease-out forwards;animation-delay:.3s;clip-path:none}}@media (max-width: 480px){#app{padding:0 1.5rem}.calendar-btn{font-size:.65rem;letter-spacing:1.5px;gap:.35rem}.calendar-icon{width:11px;height:11px}.floating-bar{gap:.7rem;padding:.3rem .85rem}.lang-switch{font-size:.72rem;letter-spacing:2px}.lemon-illustration{width:340px}.script-text{font-size:2.9rem}.the-text{font-size:.62rem;margin:0 .55rem;letter-spacing:2px}.names{font-size:1.6rem;letter-spacing:4.5px}.getting-married{font-size:.95rem;margin-bottom:2rem}.date{font-size:1.1rem;letter-spacing:3.5px}.location{font-size:.8rem;letter-spacing:3px;margin-bottom:2.2rem}.invitation{font-size:1rem}}@media (max-width: 360px){.script-text{font-size:2.4rem}.names{font-size:1.35rem;letter-spacing:3.5px}.date{font-size:1rem;letter-spacing:3px}.location{font-size:.75rem}.calendar-btn{font-size:.6rem;letter-spacing:1px}.lang-switch{font-size:.68rem;letter-spacing:1.5px}.floating-bar{gap:.5rem;padding:.28rem .7rem}}@media (min-width: 768px){.script-text{font-size:4.2rem}.the-text{font-size:.8rem;margin:0 .9rem}.names{font-size:2.5rem;letter-spacing:7px}.date{font-size:1.5rem;letter-spacing:5px}.location{font-size:1rem;letter-spacing:4px}.getting-married{font-size:1.15rem}.invitation{font-size:1.2rem}}
