.hero{min-height:100vh;min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background-image:var(--heroBackgroundImage);background-size:cover;background-position:center;background-repeat:no-repeat;transform:scale(1.15);animation:heroBackdropIn 1.3s ease-out both;z-index:0}@keyframes heroBackdropIn{0%{transform:scale(1.15);opacity:0}to{transform:scale(1.05);opacity:1}}.hero-content{background:var(--invitation-overlay-bg);border-radius:8px;padding:4rem 3rem;width:fit-content;min-width:min(100%,420px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem;box-shadow:var(--invitation-card-shadow);position:relative;z-index:1;animation:heroContentIn .75s ease-out .3s both}@keyframes heroContentIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.save-the-date{font-family:var(--font-secondary);font-size:2.8rem;color:var(--invitation-text-muted);margin-bottom:.25rem;animation:heroTextIn .55s ease-out .65s both}.names{font-family:var(--font-primary);font-weight:400;font-size:1.8rem;letter-spacing:.04em;color:var(--invitation-text-secondary);margin:.5rem 0;text-transform:none;line-height:1;display:grid;grid-auto-flow:row;justify-items:center;animation:heroTextIn .55s ease-out .72s both}.names-line{display:block;white-space:nowrap;line-height:1}.names-ampersand{display:block;margin:.08em 0 .14em;font-size:.62em;color:var(--invitation-accent);letter-spacing:normal;line-height:1;transform:translateY(-.04em)}.tagline{font-family:var(--font-secondary);font-size:1.6rem;color:var(--invitation-text-muted);margin:.5rem 0 1.5rem;animation:heroTextIn .55s ease-out .79s both}.date-info{display:flex;justify-content:center;align-items:center;gap:1rem;font-family:var(--font-primary);font-weight:400;font-size:.9rem;letter-spacing:.15em;color:var(--invitation-text-secondary);animation:heroTextIn .55s ease-out .86s both}.date-info>span{white-space:nowrap}.date-num{font-size:1.1rem;font-weight:700}.year{font-family:var(--font-primary);font-size:.9rem;letter-spacing:.15em;color:var(--invitation-text-secondary);margin-top:.25rem;animation:heroTextIn .55s ease-out .93s both}@keyframes heroTextIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.confirm-link{margin-top:3rem;font-family:var(--font-primary);font-size:.7rem;font-weight:400;letter-spacing:.25em;color:var(--invitation-accent-soft);text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:color .3s ease;animation:heroTextIn .55s ease-out 1.1s both}.confirm-link:hover{color:var(--invitation-text-muted)}.confirm-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:4px}.chevron{animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(5px)}60%{transform:translateY(3px)}}@media(max-width:480px){.hero-content{padding:3rem 2rem}.save-the-date{font-size:2.2rem}.names{font-size:1.4rem;letter-spacing:.03em}.tagline{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){.hero:before,.hero-content,.save-the-date,.names,.tagline,.date-info,.year,.confirm-link,.chevron{animation:none;opacity:1;transform:none}.confirm-link{transition:none}}.divider{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:0 1rem;height:0;width:100%;max-width:500px;margin:0;background:transparent;pointer-events:none}.divider .divider-line{flex:1;height:0;border-top:1px solid var(--color);max-width:150px}.divider .divider-icon{color:var(--color);font-size:1.5rem;flex-shrink:0}@media(max-width:480px){.divider{width:calc(100% - 6rem);padding:0}}.footer{width:100%;background:var(--invitation-accent);padding:3rem 2rem;position:relative;overflow:hidden}.footer .footer-content{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1}.invitation-reveal.is-visible .footer .footer-content{animation:invitation-fade-in var(--invitation-fade-duration, .65s) cubic-bezier(.25,1,.5,1) .1s both}.footer .footer-icon{color:#fff;font-size:1.75rem;margin-bottom:.75rem}.footer .footer-names{font-family:var(--font-secondary);font-size:2.75rem;color:#fff;margin:0;font-weight:400;display:flex;align-items:baseline;justify-content:center;gap:.3em;line-height:1}.footer .footer-names-line{white-space:nowrap;line-height:1}.footer .footer-names-ampersand{font-size:.62em;color:#fff9;letter-spacing:normal;line-height:1}.footer .footer-date{font-family:var(--font-primary);font-weight:300;font-size:.95rem;color:#fff;margin:.5rem 0 0;letter-spacing:.05em}.footer .footer-divider{width:60px;height:1px;background:var(--invitation-footer-divider);margin:1.25rem 0}.footer .footer-message{font-family:var(--font-primary);font-weight:300;font-size:.85rem;color:#fff;margin:0;letter-spacing:.1em}.footer .footer-floral{position:absolute;bottom:0;width:200px;height:100%;background-size:contain;background-repeat:no-repeat;background-position:bottom right;opacity:.3;pointer-events:none}.footer .footer-floral-right{right:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100'%3E%3Cg fill='none' stroke='%23fff' stroke-width='0.5' opacity='0.6'%3E%3Cpath d='M180 100 Q170 80 160 90 Q150 70 140 85 Q130 60 120 80'/%3E%3Ccircle cx='175' cy='75' r='4'/%3E%3Ccircle cx='155' cy='65' r='3'/%3E%3Ccircle cx='165' cy='85' r='2'/%3E%3Ccircle cx='145' cy='75' r='3'/%3E%3Ccircle cx='135' cy='65' r='2'/%3E%3Cpath d='M190 95 Q185 85 180 90'/%3E%3Ccircle cx='188' cy='88' r='2'/%3E%3C/g%3E%3C/svg%3E")}@media(max-width:480px){.footer .footer-names{font-size:2.25rem}}@media(prefers-reduced-motion:reduce){.invitation-reveal.is-visible .footer .footer-content{animation:none;opacity:1;transform:none}}.invitation-wrapper{position:relative}.invitation-container{position:relative;min-height:100vh;width:100%;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s ease}.invitation-container.is-revealed{opacity:1;visibility:visible}.invitation-container:not(.is-revealed) [data-invitation-hero],.invitation-container:not(.is-revealed) [data-invitation-hero] *,.invitation-container:not(.is-revealed) [data-invitation-hero]:before,.invitation-container:not(.is-revealed) [data-invitation-hero] *:before,.invitation-container:not(.is-revealed) [data-invitation-hero] *:after{animation-name:none!important}.invitation-section{width:100%}.invitation-section[data-section=countdown]{position:relative}.invitation-reveal{visibility:hidden}.invitation-reveal.is-visible{visibility:visible}@media(prefers-reduced-motion:reduce){.invitation-reveal{visibility:visible}}.envelope-layer{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:1000;pointer-events:none;--envelope-fade-duration: .8s;--envelope-fade-delay: 1.2s}.envelope-layer .envelope-stage,.envelope-layer .envelope-audio-toggle{pointer-events:auto}.envelope-layer .envelope-stage.is-fading{pointer-events:none}.external-action-link{display:flex;align-items:center;gap:.5rem;font-family:var(--font-primary);text-decoration:none;border:1px solid var(--invitation-border);border-radius:25px;color:var(--invitation-text-secondary);font-size:.85rem;padding:.75rem 1.25rem;transition:all .3s ease;width:fit-content}.external-action-link .external-action-link-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.external-action-link .external-action-link-icon svg{display:block}.external-action-link>span:last-child{line-height:1}.external-action-link:hover{background:var(--invitation-accent-wash-hover);border-color:var(--invitation-accent-soft)}.external-action-link.push-to-bottom{margin-top:auto}.external-action-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}@media(max-width:480px){.external-action-link{font-size:.8rem;padding:.6rem 1rem}}*{box-sizing:border-box}html,body{margin:0;font-family:Google Sans,Work Sans,Helvetica Neue,sans-serif;background:#faf5f6;color:#3a282d}html,body,#root{min-height:100%;width:100%}body{transition:background-color 1.5s ease}body.envelope-closed{background-color:#ebe7df}body.envelope-closed .invitation-container{opacity:0;visibility:hidden}html{scroll-behavior:smooth}:root{--invitation-fade-duration: .65s}@keyframes invitation-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}img,video{max-width:100%;height:auto}
