/* A keepsake in the conversation, rather than another full-screen app. */
.river-chat .proposal-chat-card{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;width:min(470px,100%);min-height:290px;padding:23px 26px 19px;overflow:hidden;text-align:left;color:#fcf5e9;background:#241b27;border:1px solid #d5a8a16e;border-radius:18px;box-shadow:0 12px 38px #0005;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.river-chat .proposal-chat-card:hover{transform:translateY(-3px);border-color:#ecc5b8;box-shadow:0 19px 44px #0007}
.river-chat .proposal-chat-card:focus-visible,.proposal-reader button:focus-visible,.proposal-composer button:focus-visible{outline:3px solid #b9d3ff;outline-offset:3px}
.proposal-chat-card::before{content:"";position:absolute;inset:11px;border:1px solid #efcfb747;border-radius:11px;pointer-events:none}
.proposal-chat-card::after{content:"";position:absolute;width:300px;height:300px;right:-115px;top:-145px;border:1px solid #f7e1c02f;border-radius:50%;box-shadow:0 0 0 35px #f7e1c009,0 0 0 70px #f7e1c008;pointer-events:none}
.proposal-chat-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 84% 25%,#cd7c8540,transparent 47%),linear-gradient(145deg,#271d29,#1d1c26 74%)}
.proposal-chat-kicker{font:700 10px/1.4 system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#f2c9bc}
.proposal-chat-mark{align-self:center;font:normal 72px/1 Georgia,serif;color:#ebc5b6;text-shadow:0 5px 32px #dc8b9270;transform:rotate(-10deg);transition:transform .3s ease}
.proposal-chat-card:hover .proposal-chat-mark{transform:rotate(0) scale(1.08)}
.proposal-chat-card strong{display:block;max-width:100%;font:normal clamp(24px,3vw,37px)/1.12 Georgia,'Times New Roman',serif;letter-spacing:-.035em;overflow-wrap:anywhere}
.proposal-chat-foot{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding-top:20px;color:#d7bebc;font:600 11px/1.3 system-ui,sans-serif;letter-spacing:.04em}
.proposal-chat-foot span:last-child{display:inline-flex;align-items:center;gap:5px;color:#fff1e2;white-space:nowrap}
.proposal-chat-foot svg{width:14px;height:14px}
.proposal-chat-card[data-occasion=homecoming]{background:#1d2532;border-color:#b7c89987}
.proposal-chat-card[data-occasion=homecoming] .proposal-chat-glow{background:radial-gradient(circle at 84% 25%,#b5a77b42,transparent 47%),linear-gradient(145deg,#1d2b38,#172027 74%)}
.proposal-chat-card[data-occasion=homecoming] .proposal-chat-mark,.proposal-chat-card[data-occasion=homecoming] .proposal-chat-kicker{color:#e3d1a7}
.proposal-chat-card[data-occasion=letter]{background:#20232e;border-color:#b8add087}
.proposal-chat-card[data-occasion=letter] .proposal-chat-glow{background:radial-gradient(circle at 84% 25%,#9d8cce40,transparent 47%),linear-gradient(145deg,#282837,#191d26 74%)}
.proposal-chat-card[data-occasion=letter] .proposal-chat-mark,.proposal-chat-card[data-occasion=letter] .proposal-chat-kicker{color:#d9c7f4}
.proposal-arrival,.site-proposal-alert{display:none!important}
.proposal-unavailable{display:block;max-width:440px;padding:14px 17px;color:#e9dce1;background:#2a2630;border:1px solid #ae879474;border-radius:12px;font-size:13px}
body.river-chat #typingIndicator{position:absolute!important;left:24px!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;z-index:7!important;display:flex!important;align-items:center!important;gap:7px!important;width:auto!important;max-width:calc(100% - 48px)!important;height:auto!important;min-height:0!important;flex:none!important;padding:5px 10px!important;background:color-mix(in srgb,var(--panel) 91%,transparent)!important;border:1px solid var(--line)!important;border-radius:999px!important;box-shadow:0 5px 18px #0004!important;pointer-events:none!important}
body.river-chat #typingIndicator:empty{display:none!important}
@media(max-width:650px){body.river-chat #typingIndicator{left:12px!important;bottom:calc(68px + env(safe-area-inset-bottom))!important;max-width:calc(100% - 24px)!important}}
.proposal-arrival{display:flex;align-items:center;gap:13px;width:calc(100% - 24px);margin:10px 12px 0;padding:11px 13px;text-align:left;color:#f6edea;background:#2a2230;border:1px solid #b795a469;border-radius:13px;cursor:pointer}
.proposal-arrival-seal{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border-radius:50%;color:#f8d6ce;background:#703f5a;font:25px Georgia,serif}
.proposal-arrival>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1}.proposal-arrival strong{font-size:13px}.proposal-arrival small{color:#c9b5c3;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.proposal-arrival-open{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px;color:#f4d2cf}.proposal-arrival-open svg{width:14px;height:14px}
.site-proposal-alert{position:fixed;z-index:100;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:13px;width:min(470px,calc(100vw - 24px));padding:13px 15px;text-align:left;color:#fff2ed;background:#302332;border:1px solid #e2b3c390;border-radius:15px;box-shadow:0 16px 48px #0009;cursor:pointer}
.site-proposal-alert:focus-visible{outline:3px solid #b9d3ff;outline-offset:3px}.site-proposal-seal{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:50%;background:#81465f;color:#ffe3e4;font:27px Georgia,serif}.site-proposal-alert>span:nth-child(2){display:grid;gap:3px;flex:1;min-width:0}.site-proposal-alert small{color:#e1b7c8;font-size:9px;font-weight:800;letter-spacing:.15em}.site-proposal-alert strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:normal 20px Georgia,serif}.site-proposal-alert>span:last-child{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.site-proposal-alert svg{width:15px;height:15px}

/* The reveal is a single composed scene; the letter remains real selectable text. */
dialog.proposal-reader{position:fixed;inset:0;width:min(730px,calc(100vw - 20px));height:min(820px,calc(100dvh - 20px));max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;color:#2d2632;background:#e8dcd6;border:1px solid #f9eee4;border-radius:18px;box-shadow:0 28px 100px #000c}
dialog.proposal-reader::backdrop{background:#06070dd8;backdrop-filter:blur(10px)}
.proposal-reader-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#9f8492 #e8dcd6}
.proposal-reader-close{position:sticky;top:14px;left:calc(100% - 56px);z-index:5;display:grid;place-items:center;float:right;width:38px;height:38px;margin:14px 14px -52px 0;color:#4e3a45;background:#fff9;border:1px solid #806f7866;border-radius:50%;cursor:pointer;backdrop-filter:blur(10px)}
.proposal-reader-close svg{width:19px;height:19px}
.proposal-reveal{height:270px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at center,#f7e5de 0,#dfc8c4 62%,#cbb1b6 100%)}
.proposal-envelope{position:relative;width:240px;height:148px;filter:drop-shadow(0 18px 17px #7a565a5e);transform:translateY(22px)}
.proposal-envelope-back,.proposal-envelope-front,.proposal-envelope-flap,.proposal-envelope-letter{position:absolute;inset:0}
.proposal-envelope-back{background:#fff0de;border:1px solid #b88f8b}
.proposal-envelope-letter{z-index:1;display:flex;align-items:center;justify-content:space-between;inset:12px 18px 5px;padding:20px;color:#6d4858;background:#fffaf2;border:1px solid #d9bcad;box-shadow:0 3px 10px #6f4d4d24;font:italic 15px Georgia,serif}
.proposal-envelope-letter b{font:33px Georgia,serif}
.proposal-envelope-front{z-index:2;background:#efd7c6;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);border:1px solid #b88f8b}
.proposal-envelope-flap{z-index:3;transform-origin:top;clip-path:polygon(0 0,100% 0,50% 60%);background:#f7e4d2;filter:drop-shadow(0 1px 1px #9f7773)}
.proposal-reader.is-open .proposal-envelope-flap{animation:proposal-flap .75s ease .2s both}
.proposal-reader.is-open .proposal-envelope-letter{animation:proposal-rise .85s cubic-bezier(.2,.75,.22,1) .65s both}
.proposal-letter{position:relative;max-width:610px;min-height:350px;margin:-30px auto 28px;padding:48px clamp(25px,6vw,65px) 40px;background:#fffaf1;border:1px solid #dcc9ba;box-shadow:0 16px 35px #74555b34;transform:translateY(28px);opacity:0}
.proposal-reader.is-open .proposal-letter{animation:proposal-appear .65s ease 1.15s forwards}
.proposal-letter-eyebrow{display:block;color:#956e79;font:700 10px/1.5 system-ui,sans-serif;letter-spacing:.19em;text-transform:uppercase}
.proposal-letter-symbol{position:absolute;right:clamp(25px,6vw,65px);top:35px;color:#be8992;font:35px Georgia,serif}
.proposal-letter h2{margin:22px 0 26px;color:#3e3040;font:normal clamp(30px,5vw,47px)/1.12 Georgia,'Times New Roman',serif;letter-spacing:-.045em;overflow-wrap:anywhere}
.proposal-letter-body{color:#473c43;font:17px/1.75 Georgia,'Times New Roman',serif;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text}
.proposal-letter-signature{margin:35px 0;color:#765766;font:italic 17px/1.65 Georgia,serif}.proposal-letter-signature strong{font-weight:normal;font-size:23px}
.proposal-letter-end{text-align:center;margin-top:30px;color:#b88491;font:25px Georgia,serif}
.proposal-photo-gallery{margin-top:43px;padding-top:25px;border-top:1px solid #dcc9ba}.proposal-photo-gallery h3{margin:0 0 18px;color:#735662;font:700 11px system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.proposal-photo-gallery figure{margin:0 0 27px}.proposal-photo-gallery img{display:block;max-width:100%;max-height:520px;width:auto;height:auto;margin:auto;border-radius:3px;box-shadow:0 5px 19px #33292b33;object-fit:contain}.proposal-photo-gallery figcaption{margin-top:9px;color:#685965;text-align:center;font:italic 15px/1.5 Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere}
.proposal-reader[data-occasion=homecoming] .proposal-reveal{background:radial-gradient(circle at center,#e2dabe,#82949b 66%,#526674 100%)}
.proposal-reader[data-occasion=homecoming] .proposal-letter-eyebrow,.proposal-reader[data-occasion=homecoming] .proposal-letter-symbol{color:#8d8050}
.proposal-reader[data-occasion=letter] .proposal-reveal{background:radial-gradient(circle at center,#e9e3ec,#c0b5cd 62%,#8e88a6 100%)}
.proposal-reader[data-occasion=letter] .proposal-letter-eyebrow,.proposal-reader[data-occasion=letter] .proposal-letter-symbol{color:#8d79a3}
@keyframes proposal-flap{0%{transform:rotateX(0)}100%{transform:rotateX(180deg);z-index:0}}
@keyframes proposal-rise{0%{transform:translateY(0)}100%{transform:translateY(-90px)}}
@keyframes proposal-appear{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}

body.river-chat #modal.ace-modal.proposal-composer-dialog[open]{position:fixed!important;inset:50% auto auto 50%!important;transform:translate(-50%,-50%)!important;width:min(830px,calc(100vw - 20px))!important;max-width:830px!important;height:min(780px,calc(100dvh - 20px))!important;max-height:calc(100dvh - 20px)!important;min-width:0!important;min-height:0!important;margin:0!important;resize:none!important;overflow:hidden!important;border-radius:18px!important;background:#1c1c25!important;border:1px solid #d2bac158!important}
body.river-chat #modal.ace-modal.proposal-composer-dialog>.modal-body{height:calc(100% - 50px)!important;max-height:none!important;overflow-y:auto!important;padding:20px!important}
.proposal-composer{max-width:700px;margin:auto}.proposal-composer-intro{margin-bottom:18px}.proposal-composer-intro>span{color:#d9b2bc;font-size:10px;font-weight:700;letter-spacing:.19em}.proposal-composer-intro h2{margin:8px 0 4px;color:#fff0e6;font:normal 32px/1.1 Georgia,serif}.proposal-composer-intro p{margin:0;color:#b9acb5;font-size:13px;line-height:1.5}
.proposal-occasion-list{display:flex;gap:8px;margin:0 0 18px}.proposal-occasion-list button{display:flex;align-items:center;gap:7px;flex:1;min-height:45px;padding:8px 11px;color:#d5c5ce;background:#292833;border:1px solid #ffffff25;border-radius:10px;cursor:pointer;font-size:12px;font-weight:650}.proposal-occasion-list button span{font:21px Georgia,serif;color:#d4aab9}.proposal-occasion-list button[aria-pressed=true]{color:#fff1ec;background:#503a4b;border-color:#e0aeb3;box-shadow:inset 0 0 0 1px #e0aeb355}
.proposal-composer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.proposal-composer-fields label{display:grid;gap:6px;color:#e2d6dd;font-size:12px;font-weight:650}.proposal-composer-fields input,.proposal-composer-fields textarea,.proposal-image-row input{width:100%;min-width:0;padding:11px 12px;color:#f9f0ef;background:#272631;border:1px solid #ffffff2a;border-radius:9px;font:14px/1.5 system-ui,sans-serif;box-sizing:border-box}.proposal-composer-fields textarea{resize:vertical;min-height:170px;white-space:pre-wrap}.proposal-letter-input{grid-column:1/-1}.proposal-letter-input small{text-align:right;color:#ab9ea8;font-weight:400}.proposal-composer-fields input:focus,.proposal-composer-fields textarea:focus,.proposal-image-row input:focus{outline:2px solid #d9aab8;outline-offset:1px}
.proposal-images-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 12px}.proposal-images-head>div{display:grid;gap:2px}.proposal-images-head strong{color:#f3e4e8;font-size:13px}.proposal-images-head small{color:#b5aab5;font-size:11px}.proposal-add-images{display:inline-flex;align-items:center;gap:6px;flex:none;padding:9px 12px;color:#f8dfeb;background:#513747;border:1px solid #bd8ea9;border-radius:9px;cursor:pointer;font-size:12px;font-weight:650}.proposal-add-images svg{width:16px;height:16px}
.proposal-image-list{display:grid;gap:8px}.proposal-image-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto 30px;align-items:center;gap:10px;padding:8px;background:#25242e;border:1px solid #ffffff1c;border-radius:10px}.proposal-image-row img{width:64px;height:58px;object-fit:cover;border-radius:6px}.proposal-image-row label{display:grid;gap:3px;color:#e3d5df;font-size:11px}.proposal-image-row input{padding:7px 9px;font-size:12px}.proposal-image-row>span{color:#baaebb;font-size:11px}.proposal-image-row button{display:grid;place-items:center;width:29px;height:29px;color:#eee;background:#ffffff12;border:0;border-radius:6px;cursor:pointer}.proposal-image-row button svg{width:15px;height:15px}
.proposal-error{margin-top:12px;color:#ffd5d9;font-size:12px}.proposal-composer-actions{position:sticky;bottom:-20px;display:flex;justify-content:flex-end;gap:9px;margin:22px -20px -20px;padding:13px 20px;background:#1c1c25;border-top:1px solid #ffffff21}.proposal-composer-actions button{min-height:40px;border-radius:9px;font-weight:700}.proposal-composer-actions .primary{background:#d7a0b0;color:#291b28}.proposal-composer-actions svg{width:16px;height:16px}
@media(max-width:650px){.proposal-chat-card{min-height:255px!important;padding:20px!important}.proposal-chat-mark{font-size:58px}.proposal-arrival{margin:7px 8px 0;width:calc(100% - 16px)}.proposal-arrival-open{font-size:0}.proposal-arrival-open svg{width:18px;height:18px}dialog.proposal-reader{width:calc(100vw - 12px);height:calc(100dvh - 12px);border-radius:14px}.proposal-reveal{height:235px}.proposal-envelope{transform:translateY(28px) scale(.86)}.proposal-letter{margin:-16px 10px 16px;padding:39px 24px 30px}.proposal-letter-body{font-size:16px;line-height:1.68}.proposal-occasion-list{flex-wrap:wrap}.proposal-occasion-list button{min-width:calc(50% - 4px)}.proposal-composer-fields{grid-template-columns:1fr}.proposal-letter-input{grid-column:1}.proposal-images-head{align-items:flex-start;flex-direction:column}.proposal-image-row{grid-template-columns:50px minmax(0,1fr) 27px}.proposal-image-row img{width:50px;height:55px}.proposal-image-row>span{grid-column:2;grid-row:2}.proposal-image-row button{grid-column:3;grid-row:1}.proposal-composer-actions{justify-content:stretch}.proposal-composer-actions button{flex:1}body.river-chat #modal.ace-modal.proposal-composer-dialog>.modal-body{padding:15px!important}}
@media(prefers-reduced-motion:reduce){.proposal-chat-card,.proposal-chat-mark{transition:none!important}.proposal-reader.is-open .proposal-envelope-flap,.proposal-reader.is-open .proposal-envelope-letter,.proposal-reader.is-open .proposal-letter{animation:none!important}.proposal-reader .proposal-envelope-flap{transform:rotateX(180deg);z-index:0}.proposal-reader .proposal-envelope-letter{transform:translateY(-90px)}.proposal-letter{opacity:1;transform:none}}
