/* Reuse invitation colours and type. Layers: snow 8, quick action 11, success 35, compose 40. */
.blessings{position:relative;color:#f6ead8}.blessings button{box-sizing:border-box;margin:0;width:auto;font-family:inherit;line-height:1.6}.blessings button::after{border:0}.blessings button:active{transform:scale(.98)}
.b-heading{padding:6px 0 18px;text-align:center}.b-title{font-family:'Wedding Display','Songti SC',serif;font-size:24px;color:#eed1a0;line-height:1.5}.b-intro{font-size:12px;letter-spacing:1.5px;color:#c4d4c8;margin-top:8px}
.blessings .b-letter-card{position:relative;display:block;width:100%;padding:17px 17px 12.5px;text-align:left;overflow:hidden;border:0.5px solid #bda17088;border-radius:6px;background:#1b4a49;color:#f3ddbb;box-shadow:2.5px 4px 0 #0b313233}.b-letter-card::before{content:'';position:absolute;inset:4.5px;border:0.5px solid #bda17033;border-radius:3px;pointer-events:none}.b-letter-vine{position:absolute;right:-39px;top:-20px;width:195px;height:120px;opacity:.72;transform:rotate(-24deg);pointer-events:none}.b-letter-to{position:relative;color:#c4cfb9;font-size:10.5px;letter-spacing:1px}.b-letter-title{position:relative;font-family:'Songti SC',serif;font-size:20px;letter-spacing:1.5px;line-height:1.65;margin:11.5px 0}.b-letter-title span{display:block}.b-letter-footer{position:relative;display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:#d0c8ab}.b-seal{display:flex;align-items:center;justify-content:center;background:#7e3d47;border:0.5px solid #dbb78777;border-radius:50%;color:#f7e0b7;width:46px;height:46px;transform:rotate(-10deg);font-family:'Songti SC',serif;font-size:14px}
.b-feed-heading{display:flex;justify-content:space-between;align-items:center;margin-top:26px;padding:0 2px 10px;font-size:14.5px;letter-spacing:1px;color:#f3dab4}.b-feed-order{font-size:10px;letter-spacing:0;color:#b9cabf}.b-feed-frame{border-top:0.5px solid #b9a77866;border-bottom:0.5px solid #b9a77844;background:#0c343733;border-radius:0 0 5px 5px;overflow:hidden}.b-feed-scroll{height:320px;width:100%;overscroll-behavior-y:auto;scrollbar-color:#b39d6c #1b4848;scrollbar-width:thin}.b-posts{padding:0 11px}.b-post{padding:15px 1px;border-bottom:0.5px solid #a7b99c26}.b-post-head{display:flex;align-items:center;gap:8px}.b-avatar{display:flex;align-items:center;justify-content:center;width:33px;height:33px;border:0.5px solid #b8a6794d;border-radius:11px;background:#23504d;font-size:14.5px;flex-shrink:0}.b-author{display:flex;flex-direction:column;flex:1;min-width:0;font-size:12.5px;color:#f4dfbc;overflow-wrap:anywhere}.b-time{font-size:9.5px;line-height:1.6;color:#b3c6b8;margin-top:1px}.b-post-flower{font-size:15px;color:#b79f73}.b-post-text{font-size:13.5px;color:#eee8d9;line-height:1.9;margin:9px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.b-photo-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;margin-top:10px}.b-photo-grid img{display:block;max-width:100%;border-radius:4px;background:transparent;flex-shrink:0}.b-list-end{text-align:center;font-size:10px;color:#bbcab8;padding:15px 0}.b-footnote{text-align:center;font-size:10px;color:#b4c5b5;line-height:1.8;padding:11px 5px}.b-empty{min-height:225px;padding:20px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;font-size:12px;color:#c2d0bd}.b-empty-heart{font-size:36px;color:#cbb083}.b-retry{color:#edd4a5;background:transparent;border-bottom:0.5px solid #ba9b6b;border-radius:0;padding:8px;font-size:11.5px;min-height:40px}.b-error{font-size:12px;color:#ffd2bd;line-height:1.8;padding:9px 10px}
/* Fine character links, never opaque cards. Full messages stay in the readable feed. */
.b-snow{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:8}.b-flake{position:absolute;top:-160px;pointer-events:none;animation:b-fall 22s linear forwards;opacity:0;color:#f6dca8;will-change:transform,opacity}.b-thread{position:relative}.b-letter{position:absolute;font-family:'Songti SC',serif;font-size:12.5px;line-height:15px;width:14.5px;height:16px;text-align:center;text-shadow:0 0.5px 1.5px #143c4055}.b-link{position:absolute;height:2.5px;border-bottom:0.5px solid currentColor;border-radius:0 0 50% 50%;transform-origin:0 0}.b-thread-end{position:absolute;font-size:11.5px;line-height:12px}.b-flake-1{color:#eebdb8}.b-flake-1 .b-link{border-bottom-style:dotted}.b-flake-2{color:#e9e9d6}.b-flake-2 .b-letter{border:0.5px solid #e9e9d65e;border-radius:50%}.b-flake-3{color:#ddc6aa}.b-flake-3 .b-letter{font-size:12.5px}.b-flake-3 .b-link{height:0.5px}.b-flake-4{color:#f0c3c5}.b-flake-4 .b-link{border-bottom-style:double;height:4px;border-width:1.5px}.b-flake-5{color:#cdddd3}.b-flake-5 .b-letter::after{content:'';position:absolute;width:2px;height:2px;background:currentColor;border-radius:50%;bottom:-2px;left:6.5px}.b-paused .b-flake{animation-play-state:paused;visibility:hidden}
@keyframes b-fall{0%{transform:translate3d(0,0,0) rotate(calc(-1 * var(--tilt)));opacity:0}16%{opacity:var(--alpha)}46%{transform:translate3d(var(--drift),54vh,0) rotate(var(--tilt));opacity:var(--alpha)}83%{opacity:var(--alpha)}100%{transform:translate3d(calc(-.5 * var(--drift)),calc(100vh + 320px),0) rotate(calc(-1 * var(--tilt)));opacity:0}}
.b-fab{position:fixed;right:12px;bottom:calc(82.5px + env(safe-area-inset-bottom));z-index:11;display:flex;gap:5px;align-items:center;padding:8px 12.5px;min-height:44px;border-radius:30px;border:0.5px solid #d8bd8f77;background:#703e47ed;color:#fae6c2;font-size:11.5px;letter-spacing:1px;box-shadow:0 3px 12px #082b3033}.b-fab span{font-size:17px}.b-burst{position:fixed;left:50%;top:60%;z-index:35;pointer-events:none;color:#e7ba87}.b-burst span{position:absolute;font-size:17px;animation:b-pop 1.6s ease-out both}@keyframes b-pop{0%{transform:translate(0,0) scale(.5);opacity:0}12%{opacity:.8}100%{transform:translate(var(--x),var(--y)) rotate(70deg) scale(.8);opacity:0}}
.b-overlay{position:fixed;inset:0;background:#082d30c9;z-index:40;display:flex;align-items:flex-end}.b-sheet{box-sizing:border-box;width:100%;max-height:92vh;background:#f5ebd9;color:#5c4240;border-radius:14px 14px 0 0;box-shadow:0 -8px 35px #082d3055;overflow:hidden;animation:b-open .3s ease-out}.b-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12.5px;border-bottom:0.5px solid #a783623d}.b-sheet-to{font-size:9.5px;letter-spacing:1.5px;color:#765b50}.b-sheet-title{font-family:'Songti SC',serif;font-size:19px;letter-spacing:1px;margin-top:5px;line-height:1.5}.blessings .b-close{width:40px;min-height:40px;background:transparent;color:#794c48;border:0.5px solid #ad8d7144;border-radius:50%;font-size:19.5px;padding:0;line-height:38px;flex-shrink:0}.b-form-scroll{height:435px;max-height:calc(88vh - 160px);min-height:125px}.b-form-body{padding:12.5px 16px 10px}.b-label{display:block;position:relative;font-size:11.5px;color:#654b40;line-height:1.7}.b-name-label{display:flex;align-items:center;gap:14px;margin-bottom:11px}.b-name-label>span{flex-shrink:0}.b-input{flex:1;min-width:0;height:39px;line-height:39px;padding:0 6px;font-size:13.5px;background:transparent;color:#513a35;border-bottom:0.5px solid #a8806588;box-sizing:border-box}.b-message-label{background:#fbf4e7;border-radius:5px;padding:11px 11px 5px;border:0.5px solid #c0a18266}.b-textarea{display:block;width:100%;height:96px;box-sizing:border-box;font-size:14.5px;color:#513a35;line-height:1.9;margin-top:6px;background:repeating-linear-gradient(transparent,transparent 26.5px,#b39a762d 27px,transparent 27.5px);padding-bottom:15px}.b-input::placeholder,.b-textarea::placeholder{color:#927a69}.b-counter{display:block;text-align:right;font-size:9px;color:#836b58;line-height:1.6}.b-emoji-row{display:flex;justify-content:space-between;gap:5px;margin:11px 0 15px}.blessings .b-emoji-row button{width:41px;height:41px;min-height:41px;line-height:39px;padding:0;border:0.5px solid #bca27d55;background:transparent;border-radius:13px;font-size:15.5px;color:#7c3f47}.b-emoji-row button.selected{border:1px solid #95434c;background:#edd6c5;transform:rotate(-5deg)}.b-photo-label{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:#654b40}.b-optional{font-size:10px;color:#816b58;flex-shrink:0}.b-photo-note{font-size:11.5px;line-height:1.8;color:#865b52;margin:5px 0 9px}.b-photo-picker{display:flex;flex-wrap:wrap;align-items:flex-start;gap:11px;padding:2.5px 4px 7px 0}.b-picked{position:relative;padding:3px 3px 6px;background:#fffbf0;border:0.5px solid #c3a68177;border-radius:2px}.b-picked img{display:block;max-width:90px;max-height:105px;border-radius:1px}.blessings .b-picked button{position:absolute;right:-6px;top:-7px;width:26px;height:26px;line-height:24px;min-height:26px;padding:0;background:#77414a;color:#fff0d9;border-radius:50%;font-size:15px;z-index:2}.blessings .b-add-photo{width:75px;height:75px;border:0.5px dashed #a58063;background:#eee0c9;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:#74594c;padding:0;margin:0}.b-add-photo span:first-child{font-size:24px;line-height:1.1;font-weight:200}.b-send-footer{padding:7.5px 16px calc(10px + env(safe-area-inset-bottom));background:#f5ebd9;border-top:0.5px solid #b6997540}.b-send-note{display:block;text-align:center;font-size:10px;color:#795f51;margin-bottom:6px}.blessings .b-send{display:block;width:100%;min-height:47px;border-radius:5px;background:#7c3f48;color:#fff0d9;padding:11px 8px;letter-spacing:1.5px;font-size:14px}.b-send.b-disabled{background:#baa18c;color:#fff7e9}.b-sheet .b-error{color:#9e343f;padding:6px 0;font-size:11.5px}@keyframes b-open{from{transform:translateY(15px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.b-snow,.b-burst{display:none}.b-sheet{animation:none}.b-emoji-row .selected{transform:none}.blessings button:active{transform:none}}

/* Photos keep their shape; replies form one compact Moments-style conversation. */
.b-post-actions{display:flex;justify-content:flex-end;padding-top:6px}.blessings .b-reply-action{background:transparent;color:#ddc39d;border:0;padding:4px 7px;font-size:11.5px;border-radius:4px;min-height:33px}.b-replies{position:relative;background:#24505088;border-radius:4px;margin-top:4px;padding:6px 9px}.b-replies::before{content:'';position:absolute;top:-5px;left:16px;width:10px;height:10px;background:#245050;transform:rotate(45deg)}.b-reply-line{position:relative;min-height:32px;box-sizing:border-box;padding:5px 0;font-size:12px;line-height:1.8;color:#ecdfce;overflow-wrap:anywhere;white-space:pre-wrap}.b-reply-name{color:#edc892;font-weight:500}.b-reply-word{color:#adc4b7;font-size:11px}.b-reply-sheet .b-sheet-title{font-size:16px;overflow-wrap:anywhere}.b-reply-form-scroll{height:275px;max-height:calc(84vh - 170px)}.b-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:2px 0 8px;font-size:12.5px;color:#73464a;line-height:1.6}.b-loading-hint{display:block;font-size:10px;color:#866958}.b-loading-spinner{width:17px;height:17px;flex-shrink:0;border:1.5px solid #c9a38766;border-top-color:#8b4450;border-radius:50%;animation:b-loading-turn .9s linear infinite}@keyframes b-loading-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.b-loading-spinner{animation:none;border-style:dotted}}

/* Browser counterpart of the native component. */
.blessings h2,.blessings p{margin:0}.blessings button{cursor:pointer}.blessings button:focus-visible,.blessings input:focus-visible,.blessings textarea:focus-visible,.b-feed-scroll:focus-visible{outline:2px solid #b88160;outline-offset:3px}.blessings .b-intro{margin-top:8px}.b-letter-vine{object-fit:contain}.b-heading .b-title{font-size:30px}.b-feed-scroll{overflow-y:auto;overscroll-behavior-y:auto;scrollbar-gutter:stable}.b-feed-scroll::-webkit-scrollbar{width:5px}.b-feed-scroll::-webkit-scrollbar-track{background:#1b4848}.b-feed-scroll::-webkit-scrollbar-thumb{background:#b39d6c;border-radius:5px}.b-post-text{margin-top:9px!important}.b-list-end{padding:15px 0!important}.b-footnote{padding:11px 5px!important}.b-web-dialog{padding:0;border:0;width:min(540px,100%);max-width:100%;max-height:94dvh;background:transparent;color:inherit;position:fixed;inset:auto 0 0;margin:0 auto;border-radius:14px 14px 0 0;overflow:hidden}.b-web-dialog::backdrop{background:#082d30c9}.b-sheet{max-height:none}.b-web-dialog form{margin:0}.b-form-scroll{overflow-y:auto;overscroll-behavior-y:contain;height:auto;max-height:calc(88dvh - 160px)}.b-input,.b-textarea{font:inherit;outline:0;resize:none;box-shadow:none;border:0;border-radius:0}.b-input{font-size:15px;border-bottom:1px solid #a8806588;width:100%}.b-textarea{font-size:16px;height:108px;line-height:27px;padding:0 0 15px}.b-message-label>span:first-child{display:block}.b-form-body .b-label{font-weight:400}.b-photo-note{margin:5px 0 9px!important}.b-error:empty{display:none}.b-sheet .b-error{margin:0!important}.blessings .b-send:disabled{background:#baa18c;color:#fff7e9}.b-photo-grid .b-web-photo{display:block;padding:0;border-radius:4px;background:transparent;width:auto;height:auto;border:0;max-width:95px}.b-photo-grid .b-web-photo img{width:auto;height:auto;max-width:95px;max-height:140px;object-fit:contain;display:block}.b-photos-1 .b-web-photo,.b-photos-1 .b-web-photo img{max-width:140px}.b-picked img{width:auto;height:auto;max-width:90px;max-height:105px;object-fit:contain;display:block}.blessings [hidden]{display:none!important}.b-web-reply-dialog .b-reply-form-scroll{height:auto}.b-post-text[role=button],.b-reply-line{cursor:pointer}.b-image-dialog{border:0;background:#123d40;padding:45px 12px 12px;max-width:94vw;max-height:90vh}.b-image-dialog::backdrop{background:#051b29e0}.b-image-dialog>img{max-height:80vh;max-width:90vw;object-fit:contain}.b-image-dialog .b-close{position:absolute;right:0;top:0;color:#ecd3aa}.b-paused .b-fab{visibility:hidden}#blessings{max-width:660px;margin:0 auto;display:block;padding-top:85px;padding-bottom:40px}.bottom-nav{padding-left:6px;padding-right:6px}.bottom-nav .nav-track a{min-width:44px;flex:1;padding-left:0;padding-right:0}.b-form-body .b-counter{margin-top:3px}@media(min-width:800px){.b-heading .b-title{font-size:36px}.b-letter-title{font-size:26px}.b-feed-scroll{height:360px}.b-post-text{font-size:15px}}

.b-post-actions{justify-content:space-between;align-items:center}.b-post-actions .b-reply-action{margin-left:auto}.blessings .b-delete-action,.blessings .b-delete-photo,.blessings .b-delete-reply{background:transparent;color:#ceb1a7;border:0;letter-spacing:0;font-size:11px;min-height:36px;padding:6px 4px;line-height:1.8;border-radius:4px}.b-published-photo{display:flex;flex-direction:column;align-items:flex-start;max-width:100%}.blessings .b-delete-photo{font-size:10px;padding:4px 2px;min-height:34px}.blessings .b-delete-reply{margin-left:8px;min-width:34px;min-height:36px}.b-send-footer .b-error{text-align:center;padding:3px 0 5px!important}
