/* Anchored rain composer: no layout dimensions of the game or chat are changed. */
.ruvi-chat{--rain-bg:#fff;--rain-field:#fff;--rain-text:#202126;--rain-muted:#888c98;--rain-line:#e9e5df;--rain-soft:#fff3eb;--rain-soft-line:#ffddc7;--rain-green:#119f66}
.chat-bottom.has-rain{position:relative}
.chat-rain-trigger{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:26px;padding:4px 10px;border:1px solid #ffd7bd;border-radius:8px;color:#dc5519;background:#fff8f2;font-size:10px;line-height:1.2;white-space:nowrap}
.chat-rain-trigger svg{width:15px;height:15px}.chat-rain-trigger:hover,.chat-rain-trigger[aria-expanded=true]{background:#ffecdf;border-color:#ff9d66}
.chat-rain-popover{position:absolute;z-index:5;left:8px;right:8px;bottom:calc(100% + 7px);padding:16px;border:1px solid var(--rain-line);border-radius:16px;background:var(--rain-bg);color:var(--rain-text);box-shadow:0 9px 32px #2119111c;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;animation:rain-open .15s ease-out}
.chat-rain-popover[hidden],.chat-rain-period[hidden]{display:none!important}
.chat-rain-popover>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:17px}
.chat-rain-popover h3{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:700;letter-spacing:-.4px;line-height:1.3;margin:0}.chat-rain-popover h3 svg{color:var(--orange);width:24px;height:24px}
.chat-rain-close{display:flex;align-items:center;justify-content:center;border:0;background:none;color:var(--rain-muted);font-size:25px;font-weight:350;line-height:1;width:27px;height:28px;padding:0;border-radius:6px}.chat-rain-close:hover{background:var(--rain-soft)}
.chat-rain-form>label:first-child{font-size:11px;color:var(--rain-muted);display:block;margin-bottom:6px}.chat-rain-amount{height:45px;display:flex;align-items:center;border:1px solid var(--rain-line);border-radius:10px;background:var(--rain-field);padding:0 12px;gap:8px}.chat-rain-amount:focus-within{border-color:#ff9457;box-shadow:0 0 0 2px #ff63100c}.chat-rain-amount input{width:100%;min-width:0;border:0;outline:0;background:none;color:var(--rain-text);font:inherit;font-size:25px;font-weight:700;letter-spacing:-.6px;padding:0}.chat-rain-amount>span{font-size:23px;font-weight:600;color:var(--rain-muted)}
.chat-rain-available{font-size:10px;color:var(--rain-muted);margin-top:6px}.chat-rain-presets{display:flex;gap:6px;margin:12px 0}.chat-rain-presets button{flex:1;padding:8px 3px;min-width:0;border:1px solid var(--rain-line);border-radius:8px;background:var(--rain-field);color:var(--rain-text);font-size:11px;font-weight:550}.chat-rain-presets button[aria-pressed=true]{border-color:#ff9f69;background:var(--rain-soft)}
.chat-rain-select{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;font-size:11px;color:var(--rain-muted)}.chat-rain-select>span{flex:none}.chat-rain-select select{min-width:0;max-width:66%;width:175px;height:33px;padding:0 8px;border:1px solid var(--rain-line);border-radius:8px;background:var(--rain-field);color:var(--rain-text);font:inherit;font-size:11px;outline:none}.chat-rain-select select:focus{border-color:#ff9b62}
.chat-rain-estimate{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--rain-line);padding-top:12px;margin:14px 0 12px;font-size:11px;line-height:1.3}.chat-rain-estimate strong{font-size:12px;font-weight:650}.chat-rain-estimate>span{text-align:right;color:var(--rain-muted);font-size:10px}
.chat-rain-submit{display:block;width:100%;min-height:40px;padding:10px 4px;background:linear-gradient(100deg,#ff5007,#ff681b);border:1px solid #ff651b;border-radius:9px;color:#fff;font-weight:650;font-size:12px;line-height:1.2}.chat-rain-submit:disabled{opacity:.55;cursor:default}.chat-rain-form>small{display:block;margin-top:9px;text-align:center;font-size:9px;color:var(--rain-muted)}
.chat-rain-trigger:focus-visible,.chat-rain-popover button:focus-visible,.chat-rain-result button:focus-visible{outline:2px solid #ff7b38;outline-offset:3px}
.chat-rain-message{padding:12px;margin:6px 0 14px;border:1px solid var(--rain-soft-line);border-left:2px solid #ff712a;border-radius:12px;background:var(--rain-soft);color:var(--rain-text);font-size:11px}
.chat-rain-sender{display:flex;align-items:center;gap:7px;min-width:0}.chat-rain-sender .avatar{--a:26px;flex:none}.chat-rain-sender>b{min-width:0;font-size:11px;font-weight:650;overflow-wrap:anywhere}.chat-rain-sender>b>span{font-weight:500;color:var(--rain-muted);white-space:nowrap}.chat-rain-sender time{margin-left:auto;white-space:nowrap;font-size:9px;color:var(--rain-muted)}
.chat-rain-bank{display:flex;align-items:center;gap:7px;margin:11px 0 10px;flex-wrap:wrap}.chat-rain-bank svg{width:23px;height:23px;color:var(--orange)}.chat-rain-bank strong{font-size:21px;font-weight:750;letter-spacing:-.55px;color:#ff5b13;white-space:nowrap}.chat-rain-bank>span{font-size:9px;margin-left:auto;color:var(--rain-muted);line-height:1.4}
.chat-rain-result{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid var(--rain-soft-line);padding-top:9px;font-size:9px;line-height:1.4}.chat-rain-result>span{color:var(--rain-muted)}.chat-rain-result .has-credit{color:var(--rain-green);font-weight:600}.chat-rain-result button{border:0;background:none;color:var(--rain-muted);padding:2px 0;text-decoration:underline;text-underline-offset:3px;font-size:9px;white-space:nowrap}.chat-rain-result button:hover{color:var(--orange)}
.chat-rain-detail-list{max-height:50dvh;overflow:auto}.chat-rain-detail-list>div{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.chat-rain-detail-list .avatar{--a:30px;flex:none}.chat-rain-detail-list>div>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.chat-rain-detail-list b{margin-left:auto;white-space:nowrap;font-size:13px}.chat-rain-detail-pages{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;font-size:11px;color:#858995}.chat-rain-detail-pages button{border:1px solid var(--line);background:transparent;color:inherit;padding:7px 12px;border-radius:8px}.chat-rain-detail-pages button:disabled{opacity:.4}.chat-rain-detail-loading{font-size:13px;color:#858995;padding:18px 0}
:root[data-theme=dark] .ruvi-chat{--rain-bg:#22262c;--rain-field:#282c33;--rain-text:#e8e9ed;--rain-muted:#9ba1ad;--rain-line:#393d45;--rain-soft:#30271f;--rain-soft-line:#513b2a;--rain-green:#6dcc9f}
:root[data-theme=dark] .chat-rain-trigger{background:#30271f;border-color:#65422b;color:#ff935c}:root[data-theme=dark] .chat-rain-trigger:hover,:root[data-theme=dark] .chat-rain-trigger[aria-expanded=true]{background:#3c2b20;border-color:#a56236}
@keyframes rain-open{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:760px){.chat-rain-trigger{font-size:11px;min-height:28px}.chat-rain-popover{left:10px;right:10px;padding:16px}.chat-rain-popover h3{font-size:18px}.chat-rain-select,.chat-rain-select select{font-size:12px}.chat-rain-amount input{font-size:26px}.chat-rain-sender>b{font-size:12px}.chat-rain-message{padding:13px}.chat-rain-bank>span,.chat-rain-result,.chat-rain-result button{font-size:10px}.chat-rain-sender time{font-size:10px}}
@media(prefers-reduced-motion:reduce){.chat-rain-popover{animation:none}}
/* One quiet 900 ms appearance; re-renders keep the original animation clock. */
.chat-rain-bank{position:relative}.chat-rain-bank>.chat-rain-droplets{position:absolute;left:1px;top:9px;width:23px;height:27px;margin:0;pointer-events:none;overflow:hidden}.chat-rain-droplets i{position:absolute;top:0;width:3px;height:5px;border-radius:70% 40% 70% 70%;background:#ff8a43;opacity:0;transform:rotate(22deg)}.chat-rain-droplets i:nth-child(1){left:3px}.chat-rain-droplets i:nth-child(2){left:11px}.chat-rain-droplets i:nth-child(3){left:19px}
.chat-rain-message.is-arriving{animation:rain-card-in .9s cubic-bezier(.2,.7,.3,1) both;animation-delay:var(--rain-elapsed,0ms)}.is-arriving .chat-rain-bank>svg{animation:rain-cloud .9s ease-out both;animation-delay:var(--rain-elapsed,0ms)}.is-arriving .chat-rain-droplets i{animation:rain-drop .9s ease-out both;animation-delay:var(--rain-elapsed,0ms)}.is-arriving .chat-rain-droplets i:nth-child(2){animation-name:rain-drop-middle}.is-arriving .chat-rain-droplets i:nth-child(3){animation-name:rain-drop-last}
@keyframes rain-card-in{0%{opacity:0;transform:translateY(7px)}30%{opacity:1;transform:translateY(0)}100%{opacity:1;transform:none}}
@keyframes rain-cloud{0%{transform:scale(.85)}35%{transform:scale(1.08)}70%,100%{transform:scale(1)}}
@keyframes rain-drop{0%,18%{opacity:0;transform:translateY(0) rotate(22deg)}30%{opacity:.65}70%,100%{opacity:0;transform:translateY(22px) rotate(22deg)}}
@keyframes rain-drop-middle{0%,30%{opacity:0;transform:translateY(0) rotate(22deg)}42%{opacity:.65}82%,100%{opacity:0;transform:translateY(22px) rotate(22deg)}}
@keyframes rain-drop-last{0%,42%{opacity:0;transform:translateY(0) rotate(22deg)}54%{opacity:.65}94%,100%{opacity:0;transform:translateY(22px) rotate(22deg)}}
@media(prefers-reduced-motion:reduce){.chat-rain-message.is-arriving,.is-arriving .chat-rain-bank>svg,.is-arriving .chat-rain-droplets i{animation:none}.chat-rain-droplets{display:none}}
