.recipient-page{background:var(--paper);flex-direction:column;min-height:100svh;display:flex;overflow-x:clip}html.gift-awaiting-open,.recipient-page.gift-awaiting-open{overscroll-behavior:none;overflow:hidden}.recipient-page.letter-is-open{overflow:hidden}.recipient-return:hover,.invitation-return:hover{text-underline-offset:4px;text-decoration:underline}.recipient-main{flex:1;width:100%}.gift-reveal-stage{z-index:29;overscroll-behavior:none;touch-action:none;background:var(--paper);place-items:center;padding:clamp(18px,3svh,32px) 24px;display:grid;position:fixed;inset:0;overflow:hidden}.gift-reveal-inner{grid-template-rows:auto minmax(0,1fr);gap:18px;width:min(640px,100%);height:100%;min-height:0;max-height:960px;display:grid}.reveal-heading{text-align:center}.reveal-heading h2{overflow-wrap:anywhere;white-space:pre-wrap;margin-bottom:10px;font-size:clamp(26px,3.5vw,40px);line-height:1.25}.reveal-heading>p{color:var(--muted);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:12px;line-height:1.6}.reveal-artwork{min-height:0}.reveal-artwork .received-bouquet{grid-template-rows:minmax(0,1fr) auto;place-items:center;height:100%;display:grid}.reveal-artwork .received-bouquet img{max-width:100%;max-height:100%}.reveal-artwork .received-bouquet figcaption{margin-top:12px}.gift-invitation{z-index:30;overscroll-behavior:contain;backdrop-filter:blur(3px);background:#faf7f2ed;padding:32px 24px;position:fixed;inset:0;overflow-y:auto}.invitation-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(560px,100%);min-height:calc(100svh - 64px);margin:auto;display:flex}.gift-invitation h1{margin:0 0 18px;font-size:clamp(36px,4.2vw,52px);line-height:1.24}.gift-invitation h1 em{color:var(--burgundy);font-weight:400}.invitation-from{color:var(--muted);overflow-wrap:anywhere;white-space:pre-wrap;max-width:460px;margin-bottom:0;font-size:14px;line-height:1.7}.gift-envelope{filter:drop-shadow(0 15px 15px #60423814);flex-shrink:0;width:304px;height:218px;margin:42px 0 32px;position:relative;transform:rotate(-4deg)}.envelope-back{background:#ead7cb;border:1px solid #e0cfc4;border-radius:4px;position:absolute;inset:38px 0 0}.envelope-note{z-index:1;background:#fffdf8;border:1px solid #e9dcd0;flex-direction:column;align-items:center;gap:12px;height:178px;padding-top:27px;display:flex;position:absolute;top:0;left:21px;right:21px;box-shadow:0 1px 4px #60423808}.envelope-note .icon{color:#b7798e;font-size:31px}.envelope-note span{color:#967665;font-family:var(--font-serif);font-size:13px;font-style:italic}.envelope-fold{z-index:2;position:absolute;inset:38px 0 0}.envelope-fold-left{clip-path:polygon(0 0,57% 55%,0 100%);background:#e9d6c8}.envelope-fold-right{clip-path:polygon(100% 0,43% 55%,100% 100%);background:#f0dfd2}.envelope-front{z-index:3;clip-path:polygon(0 100%,0 38%,50% 0,100% 38%,100% 100%);background:#f4e6d8;border-bottom:1px solid #dfc9b8;border-radius:0 0 4px 4px;position:absolute;inset:80px 0 0}.envelope-seal{z-index:4;background:var(--burgundy);color:#edc6cf;border:3px solid #9c3150;border-radius:50%;place-items:center;width:46px;height:46px;display:grid;position:absolute;top:106px;left:calc(50% - 23px);box-shadow:0 3px 6px #5b223026,inset 0 0 0 1px #660224}.envelope-seal .icon{font-size:23px}.recipient-primary{min-height:46px;padding:12px 27px;font-size:12px}.invitation-caption{color:#70646c;margin:17px 0 0;font-size:11px;line-height:1.6}.invitation-return,.recipient-return{min-height:38px;color:var(--burgundy);align-items:center;gap:7px;font-size:11px;display:inline-flex}.invitation-return{margin-top:15px}.gift-loading,.gift-error{text-align:center;max-width:570px;min-height:65svh;margin:auto;padding:110px 24px 80px}.gift-loading p{color:var(--muted);font-size:14px;line-height:1.8}.gift-loading-flower,.gift-error-flower{color:#b47b8a;margin-bottom:24px;font-size:42px;display:inline-flex}.gift-loading-flower{animation:2s ease-in-out infinite waiting-flower}.gift-error h1{margin-bottom:18px;font-size:clamp(30px,4vw,40px);line-height:1.3}.gift-error>p{color:var(--muted);font-size:14px;line-height:1.8}.gift-error-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:25px;display:flex}.gift-error-actions .button{min-height:44px}.gift-error .recipient-return{margin-top:20px}.recipient-heading{text-align:center;max-width:850px;margin:auto;padding:32px 24px 26px}.recipient-heading .recipient-return{margin:-12px 0 14px}.recipient-heading h1{overflow-wrap:anywhere;white-space:pre-wrap;margin-bottom:12px;font-size:clamp(30px,3.5vw,44px);line-height:1.25}.recipient-heading>p{color:var(--muted);overflow-wrap:anywhere;white-space:pre-wrap;margin-bottom:0;font-size:13px;line-height:1.7}.received-gift-layout{width:min(560px,100% - 48px);margin:0 auto 32px}.received-bouquet{min-width:0;margin:0}.received-bouquet img{object-fit:contain;border:1px solid #e8dfd6;border-radius:4px;width:auto;max-width:100%;height:auto;max-height:64svh;margin-inline:auto;box-shadow:0 12px 32px #6042380d}.received-bouquet figcaption{text-align:center;color:#70646c;letter-spacing:.025em;margin-top:16px;font-size:10px}.recipient-actions{text-align:center;margin-top:25px}.recipient-action-buttons{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.recipient-actions .button{min-height:44px;font-size:11px}.recipient-actions p{color:#70646c;min-height:19px;margin:12px 0 0;font-size:11px;line-height:1.7}.pass-it-on{text-align:center;background:#f5ece8;border-block:1px solid #eee2dd;padding:32px 24px 38px}.pass-it-on>.icon{color:#c38797;margin-bottom:16px;font-size:26px}.pass-it-on h2{margin-bottom:12px;font-size:28px}.pass-it-on p{color:var(--muted);margin-bottom:22px;font-size:12px;line-height:1.7}#gift-title:focus,#gift-error-title:focus,#gift-reveal-stage:focus{outline:none}#gift-view[data-state=invitation] .received-bouquet{opacity:.4;filter:blur(8px);transform:scale(.95)}#gift-view[data-state=invitation] .reveal-heading{opacity:0}#gift-view[data-state=opening] .gift-invitation{pointer-events:none;animation:1.5s ease-in-out both invitation-exit}#gift-view[data-state=opening] .received-bouquet{animation:1.8s cubic-bezier(.16,1,.3,1) both bouquet-reveal}#gift-view[data-state=opening] .reveal-heading{animation:.8s ease-out .3s both controls-enter}#gift-view[data-state=opened] .recipient-actions,#gift-view[data-state=opened] .pass-it-on{animation:.6s ease-out both controls-enter}.letter-dialog{width:min(580px,100% - 32px);max-width:none;max-height:calc(100svh - 32px);margin:auto;padding:32px 0 22px;overflow:hidden;box-shadow:0 22px 90px #2b142733}.letter-dialog[open]{flex-direction:column;animation:.6s cubic-bezier(.16,1,.3,1) both letter-enter;display:flex}.letter-dialog::backdrop{backdrop-filter:blur(5px);background:#26151f66;animation:.4s ease-out both letter-backdrop}.letter-close{z-index:2;width:40px;height:40px;color:var(--paper-ink);opacity:.65;font:25px/1 var(--font-sans);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:8px;right:10px}.letter-close:hover,.letter-close:focus-visible{opacity:1;background:#88888812}.letter-close:focus-visible{outline-offset:-6px;outline:1px solid}.letter-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--paper-decoration) transparent;min-height:0;padding:0 34px;overflow-y:auto}.recipient-card{min-height:170px;color:inherit;padding:4px 0 10px;position:relative}.recipient-card p{overflow-wrap:anywhere;white-space:pre-wrap;font-size:20px;line-height:1.7}.gift-recipient{margin:0 25px 24px 0}.gift-message{margin:0 0 26px}.recipient-card .gift-sender{margin:26px 0 0}.letter-footer{text-align:center;flex-shrink:0}.letter-skip{min-height:36px;color:var(--paper-accent);font:500 11px/1.4 var(--font-sans);text-underline-offset:4px;background:0 0;border:0;margin:8px 0 0;padding:4px 12px;text-decoration:underline}@keyframes invitation-exit{to{opacity:0;transform:scale(1.08)}}@keyframes bouquet-reveal{0%{opacity:.4;filter:blur(8px);transform:scale(.95)}to{opacity:1;filter:blur();transform:scale(1)}}@keyframes controls-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes letter-enter{0%{opacity:0;transform:translateY(22px)scale(.9)rotate(-2deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes letter-backdrop{0%{backdrop-filter:blur();background:#26151f00}to{backdrop-filter:blur(5px);background:#26151f66}}@keyframes waiting-flower{50%{opacity:.5;transform:rotate(18deg)}}@media (width<=760px){.gift-invitation{padding:28px 21px}.invitation-inner{min-height:calc(100svh - 56px)}.gift-invitation h1{font-size:38px}.invitation-from{font-size:12px}.gift-envelope{width:272px;height:200px;margin-top:38px;margin-bottom:32px}.recipient-heading{padding:28px 23px 24px}.received-gift-layout{width:min(470px,100% - 40px);margin-bottom:23px}.received-bouquet img{max-height:54svh}.recipient-action-buttons{gap:9px}.recipient-actions .button{padding-inline:17px}.letter-dialog{width:calc(100% - 28px);max-height:calc(100svh - 28px)}.letter-scroll{padding:0 25px}.recipient-card p{font-size:19px}.gift-loading,.gift-error{padding-top:84px}}@media (width<=370px){.gift-invitation h1{font-size:33px}.gift-envelope{width:246px}}@media (prefers-reduced-motion:reduce){.recipient-page *,.recipient-page :before,.recipient-page :after,.letter-dialog::backdrop{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
