@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Lora:ital,wght@0,400;0,500;1,400&display=swap";:root{--ivory:#fbf6f0;--paper:#f7efe6;--burgundy:#6b2737;--burgundy-deep:#4e1b28;--rose:#c98a9e;--rose-soft:#e7cbd3;--gold:#b8935a;--ink:#2a1a1f;--ink-soft:#5a4650;--font-display:"Cormorant Garamond", serif;--font-body:"Lora", serif;--ease:cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ivory);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}#root{width:100%;min-height:100vh}button{cursor:pointer;font-family:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}.card-wrap{flex-direction:column;align-items:center;width:100%;padding:6vh 20px 4vh;scroll-margin-top:6vh;display:flex;overflow:visible}.card{background:var(--paper);opacity:0;transform-origin:top;width:min(90vw,620px);animation:card-emerge 1s var(--ease) forwards;will-change:transform, opacity;border-radius:4px;padding:clamp(28px,6vw,56px);animation-delay:50ms;position:relative;transform:translateY(72%)scale(.92)rotateX(8deg);box-shadow:0 30px 60px -30px #4b1e2847}@keyframes card-emerge{0%{opacity:0;transform:translateY(72%)scale(.92)rotateX(8deg);box-shadow:0 10px 18px -12px #4b1e2859}55%{opacity:1}to{opacity:1;transform:translateY(0)scale(1)rotateX(0);box-shadow:0 30px 60px -30px #4b1e2847}}.card-final{background:linear-gradient(160deg, var(--paper) 0%, #f3e4d6 100%)}.card-flourish{width:46px;height:46px;color:var(--rose);opacity:.5;position:absolute}.card-flourish-tl{top:10px;left:10px}.card-flourish-br{bottom:10px;right:10px;transform:rotate(180deg)}.card-heading{font-family:var(--font-display);color:var(--burgundy);text-align:center;margin:0;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:500}.card-body{color:var(--ink);margin:0 0 16px;font-size:clamp(1rem,2vw,1.15rem);line-height:1.85}.card-body:last-of-type{margin-bottom:0}.card-question{text-align:center;border-top:1px solid #6b273729;flex-direction:column;align-items:center;gap:16px;margin-top:12px;padding-top:1px;display:flex}.card-question-heart{width:32px;height:32px;color:var(--burgundy)}.card-question-text{font-family:var(--font-display);color:var(--burgundy-deep);margin:0;font-size:clamp(1.3rem,3vw,1.7rem);font-style:italic}.card-question-buttons{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;width:100%;min-height:90px;padding:12px;display:flex;position:relative}.card-no-button{z-index:1;color:var(--ink-soft);font-family:var(--font-display);letter-spacing:.03em;transition:opacity .4s var(--ease), transform .4s var(--ease);background:0 0;border:1px solid #6b273759;border-radius:999px;padding:14px 34px;font-size:1.1rem;position:relative}.card-no-button:hover:not(:disabled){background:#6b27370f}.card-no-button:disabled{opacity:0;transform:scale(.5)}.card-yes-button{z-index:2;border:1px solid var(--burgundy);background:var(--burgundy);color:var(--ivory);font-family:var(--font-display);letter-spacing:.03em;transition:transform .45s var(--ease), background .3s var(--ease);border-radius:999px;padding:14px 40px;font-size:1.15rem;position:relative}.card-yes-button:hover{background:var(--burgundy-deep)}.card-advance{width:44px;height:44px;color:var(--burgundy);transition:background .3s var(--ease);background:#6b273714;border:none;border-radius:50%;justify-content:center;align-items:center;margin-top:8px;animation:2.4s ease-in-out infinite bounce;display:flex}.card-advance:hover{background:#6b273729}.card-advance-icon{width:20px;height:26px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width<=480px){.card{padding:28px 22px}}.card.card-popped{box-sizing:border-box;opacity:1;flex-direction:column;width:100%;max-width:none;height:100%;padding:clamp(16px,4.5vw,34px);animation:none;display:flex;transform:none;box-shadow:0 20px 40px -20px #4b1e284d}.card-popped .card-scroll{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex;overflow-y:auto}.card-popped .card-flourish{width:28px;height:28px}.card-popped .card-heading{margin-bottom:10px;font-size:clamp(1.15rem,3.2vw,1.8rem)}.card-popped .card-body{margin-bottom:8px;font-size:clamp(.8rem,1.8vw,1rem);line-height:1.55}.card-popped .card-question{gap:10px;margin-top:16px;padding-top:14px}.card-popped .card-question-heart{width:22px;height:22px}.card-popped .card-question-text{font-size:clamp(1rem,2.4vw,1.3rem)}.card-popped .card-question-buttons{gap:12px;min-height:56px}.card-popped .card-no-button,.card-popped .card-yes-button{padding:9px 20px;font-size:.9rem}.card-advance-popped{margin-top:0;position:absolute;bottom:-20px;left:50%;transform:translate(-50%);box-shadow:0 8px 16px -8px #4b1e2859}@media (width<=480px){.card.card-popped{padding:16px 14px}}.envelope-stage{background:radial-gradient(ellipse 80% 60% at 50% -10%, #fff9f2 0%, transparent 60%), var(--ivory);justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow:hidden}.envelope-sky{background-image:radial-gradient(1px 1px at 15% 20%, var(--rose) 40%, transparent 41%), radial-gradient(1px 1px at 80% 15%, var(--gold) 40%, transparent 41%), radial-gradient(1.5px 1.5px at 65% 75%, var(--rose) 40%, transparent 41%), radial-gradient(1px 1px at 25% 80%, var(--gold) 40%, transparent 41%), radial-gradient(1px 1px at 90% 60%, var(--rose) 40%, transparent 41%), radial-gradient(1.5px 1.5px at 40% 40%, var(--gold) 30%, transparent 41%);opacity:.5;pointer-events:none;position:absolute;inset:0}.envelope-frame{transition:opacity .6s var(--ease), transform .6s var(--ease);flex-direction:column;align-items:center;gap:28px;padding:32px;display:flex;position:relative}.is-leaving .envelope-frame{opacity:0;transition-delay:50ms;transform:translateY(-16px)scale(.97)}.envelope-eyebrow,.envelope-instruction{transition:opacity .4s var(--ease), transform .4s var(--ease)}.envelope-eyebrow.is-hidden,.envelope-instruction.is-hidden{opacity:0;pointer-events:none;transform:translateY(-6px)}.envelope-eyebrow{font-family:var(--font-display);color:var(--ink-soft);letter-spacing:.02em;margin:0;font-size:clamp(1.1rem,2vw,1.4rem);font-style:italic}.envelope{aspect-ratio:3/2;filter:drop-shadow(0 24px 40px #4b1e282e);perspective:1200px;width:min(88vw,420px);transition:width .6s var(--ease);position:relative}.envelope.has-card{width:min(92vw,460px)}.envelope-back{background:linear-gradient(155deg, #fffdfa 0%, var(--paper) 55%, #f0e2d4 100%);border:1px solid #6b27371f;border-radius:6px;position:absolute;inset:0}.envelope-body{border-radius:6px;justify-content:center;align-items:center;gap:14px;padding-top:8%;display:flex;position:absolute;inset:0}.envelope-greeting{font-family:var(--font-display);color:var(--burgundy);letter-spacing:.03em;font-size:clamp(1.6rem,4vw,2.3rem)}.envelope-sprig{width:15%;height:auto;color:var(--rose);opacity:.75;flex-shrink:0}.envelope-sprig-left{transform:scaleX(-1)}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 68%);background:linear-gradient(200deg, #fffdfb 0%, var(--paper) 60%, #ecdccb 100%);transform-origin:top;height:62%;transform-style:preserve-3d;transition:transform .9s var(--ease), filter .9s var(--ease);z-index:3;border-radius:6px 6px 0 0;position:absolute;top:0;left:0;right:0}.envelope-flap:before{content:"";border-radius:inherit;background:linear-gradient(20deg, #e3d0bd 0%, var(--paper) 60%);backface-visibility:hidden;position:absolute;inset:0;transform:rotateX(180deg)}.envelope-flap:after{content:"";border-radius:inherit;backface-visibility:hidden;position:absolute;inset:0;box-shadow:inset 0 -12px 22px -14px #6b273738}.is-open .envelope-flap{filter:brightness(.94);transform:rotateX(180deg)}.envelope-flap-shadow{opacity:0;height:46%;transition:opacity .6s var(--ease);z-index:1;background:radial-gradient(#4b1e2824,#0000 70%);position:absolute;top:8%;left:8%;right:8%}.is-open .envelope-flap-shadow{opacity:1;transition-delay:.3s}.seal-button{z-index:5;width:clamp(52px,12vw,68px);transition:transform .35s var(--ease), opacity .5s var(--ease);background:0 0;border:none;padding:0;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.seal-button:hover{transform:translate(-50%,-50%)scale(1.06)}.seal-button:active{transform:translate(-50%,-50%)scale(.97)}.is-open .seal-button{opacity:0;pointer-events:none;transform:translate(-50%,-50%)scale(.8)}.seal-icon{width:100%;height:auto;display:block}.envelope-instruction{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);opacity:.7;margin:0;font-size:.82rem}.popped-card-slot{transform-origin:50% 88%;z-index:10;width:82%;height:76%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.popped-card-slot.anim-enter{animation:card-pop-in .65s var(--ease) both}.popped-card-slot.anim-exit{animation:card-pop-out .4s var(--ease) both}@keyframes card-pop-in{0%{opacity:0;transform:translate(-50%,-14%)scale(.22)rotate(-3deg)}50%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}}@keyframes card-pop-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-135%,-46%)scale(.8)rotate(-9deg)}}@media (width<=480px){.envelope-frame{gap:20px}}.slideshow-stage{background:radial-gradient(ellipse 70% 50% at 50% 0%, #fff9f2 0%, transparent 60%), var(--ivory);opacity:0;width:100%;min-height:100vh;animation:fade-in .9s var(--ease) forwards;flex-direction:column;justify-content:center;align-items:center;gap:32px;padding:8vh 20px;display:flex}@keyframes fade-in{to{opacity:1}}.slideshow-heading{align-items:center;gap:18px;display:flex}.slideshow-heading h2{font-family:var(--font-display);color:var(--burgundy);text-align:center;margin:0;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:500}.slideshow-sprig{width:64px;height:auto;color:var(--rose);opacity:.7;flex-shrink:0;display:none}@media (width>=640px){.slideshow-sprig{display:block}}.slideshow-frame{aspect-ratio:4/3;background:var(--paper);border-radius:6px;width:min(90vw,560px);position:relative;overflow:hidden;box-shadow:0 24px 48px -20px #4b1e2852}.slideshow-image{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .9s linear;position:absolute;inset:0}.slideshow-image.is-active{opacity:1}.slideshow-frame-border{pointer-events:none;border:1px solid #fffdfa80;position:absolute;inset:0;box-shadow:inset 0 0 0 8px #fbf6f01f}.slideshow-nav{width:40px;height:40px;color:var(--burgundy);transition:background .3s var(--ease), transform .3s var(--ease);background:#fbf6f0d9;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.slideshow-nav:hover{background:var(--ivory);transform:translateY(-50%)scale(1.08)}.slideshow-nav svg{width:20px;height:20px}.slideshow-nav-prev{left:14px}.slideshow-nav-next{right:14px}.slideshow-dots{gap:10px;display:flex}.slideshow-dot{background:var(--rose-soft);width:8px;height:8px;transition:background .3s var(--ease), transform .3s var(--ease);border:none;border-radius:50%;padding:0}.slideshow-dot.is-active{background:var(--burgundy);transform:scale(1.3)}.slideshow-footer{font-family:var(--font-display);color:var(--burgundy);align-items:center;gap:10px;font-size:1.3rem;font-style:italic;display:flex}.slideshow-footer-heart{width:20px;height:20px;color:var(--burgundy)}.slideshow-empty{text-align:center;max-width:46ch;color:var(--ink-soft);font-size:1.05rem;line-height:1.7}.slideshow-empty code{background:var(--paper);border-radius:3px;padding:2px 6px}.app-root{width:100%;min-height:100vh}.app-loading{background:var(--ivory);min-height:100vh}
