.ld-chat{position:fixed;right:18px;bottom:18px;z-index:12000;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#f8e8cf}
.ld-chat *{box-sizing:border-box}
.ld-chat button,.ld-chat input{font:inherit}
.ld-launcher{display:flex;align-items:center;gap:9px;border:1px solid #c48b38;border-radius:999px;padding:11px 18px;background:linear-gradient(120deg,#a9311d,#945b20);color:#fff1d7;font-weight:800;box-shadow:0 10px 30px #170603a8,0 0 0 3px #d4932820;cursor:pointer;transition:transform .2s,box-shadow .2s}
.ld-launcher:hover{transform:translateY(-3px);box-shadow:0 14px 32px #170603bb,0 0 0 5px #d4932835}
.ld-launcher span{font-size:19px;line-height:1}
.ld-panel{position:absolute;right:0;bottom:58px;width:min(390px,calc(100vw - 22px));height:min(590px,calc(100dvh - 90px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #ab7934;border-radius:18px;background:#100e0e;box-shadow:0 18px 55px #000b,0 0 0 3px #9e681b28}
.ld-panel[hidden],.ld-private-head[hidden],.ld-reply[hidden],.ld-emojis[hidden],.ld-compose[hidden],.ld-notice[hidden]{display:none!important}
.ld-head{display:flex;align-items:center;gap:8px;min-height:53px;padding:0 14px;background:linear-gradient(105deg,#392018,#21150e 65%,#3c270d);border-bottom:1px solid #725222;color:#ffdda0;font-size:16px}
.ld-head-mark{font-size:11px;color:#ffca53;text-shadow:0 0 10px #e79935}
.ld-close{margin-left:auto;width:30px;height:30px;border:1px solid #8b6637;border-radius:50%;background:#231a16;color:#eed7b4;font-size:21px;line-height:1;cursor:pointer}
.ld-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:9px 10px;border-bottom:1px solid #49392a;background:#17120f}
.ld-tab{min-height:38px;border:1px solid #54402b;border-radius:10px;background:#19191a;color:#c5b6a7;font-size:12px;font-weight:800;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.ld-tab.is-active{border-color:#cc933e;background:linear-gradient(110deg,#5e301c,#574019);color:#ffe0a4}
.ld-private-head{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid #433226;color:#efc88c;font-size:13px;font-weight:700}
.ld-back{width:27px;height:27px;border:1px solid #715330;border-radius:8px;background:#261b15;color:#ffe4b7;font-size:22px;line-height:1;cursor:pointer}
.ld-feed{flex:1;min-height:0;overflow-y:auto;padding:10px 11px;scrollbar-color:#73502c #151113;scrollbar-width:thin;background:radial-gradient(circle at 0 0,#21121b 0,transparent 36%),#111218}
.ld-empty{padding:46px 20px;text-align:center;color:#a99b8f;font-size:13px;line-height:1.6}
.ld-message{position:relative;margin:0 0 8px;padding:9px 10px;border:1px solid #392f30;border-radius:11px;background:#1c1a1e;overflow-wrap:anywhere}
.ld-message.is-mine{border-color:#725133;background:#291e19}
.ld-message-head{display:flex;align-items:center;gap:6px;min-width:0}
.ld-name{overflow:hidden;max-width:43%;padding:0;border:0;background:none;color:#edbb73;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.ld-name:hover{text-decoration:underline}
.ld-rank{padding:3px 6px;border:1px solid #a06b37;border-radius:20px;background:#3b2618;color:#ffd08e;font-size:10px;font-weight:750;white-space:nowrap}
.ld-rank{display:inline-flex;align-items:center;gap:4px}
.ld-rank img{width:14px;height:14px;object-fit:contain;border-radius:50%}
.ld-rank.is-qi-badge{padding:0;border:0;background:none;box-shadow:none;line-height:0}
.ld-rank.is-qi-badge img{width:90px;height:auto;border-radius:0;filter:drop-shadow(0 2px 5px rgba(34,211,170,.26))}
.ld-message-head time{margin-left:auto;color:#94857e;font-size:10px;font-variant-numeric:tabular-nums}
.ld-body{margin:6px 0 0;color:#f0e7dd;font-size:13px;line-height:1.5;white-space:pre-wrap}
.ld-quote{margin-top:6px;padding:5px 7px;border-left:2px solid #ca9143;border-radius:4px;background:#36281e;color:#cbb49a;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ld-answer{display:block;margin:5px 0 0 auto;padding:0;border:0;background:none;color:#af9d8d;font-size:10px;cursor:pointer}
.ld-answer:hover{color:#ffca75}
.ld-conversation{display:block;width:100%;margin:0 0 8px;padding:13px;border:1px solid #5e452c;border-radius:10px;background:#2b2019;color:#f5d7a7;text-align:left;cursor:pointer}
.ld-conversation:hover{background:#402a1b}
.ld-reply{display:flex;align-items:center;gap:8px;min-height:31px;padding:5px 11px;border-top:1px solid #60492e;background:#302016;color:#e8cba8;font-size:11px}
.ld-reply-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}
.ld-reply-clear{border:0;background:none;color:#f6cf9c;font-size:18px;cursor:pointer}
.ld-compose{display:flex;align-items:center;gap:7px;padding:9px 10px;border-top:1px solid #5d4526;background:#181310}
.ld-compose input{flex:1;min-width:0;height:41px;padding:0 11px;border:1px solid #64482e;border-radius:10px;outline:none;background:#100e0e;color:#fff0db;font-size:13px}
.ld-compose input:focus{border-color:#dda046;box-shadow:0 0 0 2px #a66b293b}
.ld-emoji-toggle{width:38px;height:40px;border:1px solid #795a36;border-radius:10px;background:#211912;color:#ffcd6a;font-size:23px;cursor:pointer}
.ld-submit{height:41px;padding:0 15px;border:1px solid #ffbc40;border-radius:10px;background:linear-gradient(125deg,#bd371a,#cf8a18);color:#fff6e6;font-size:13px;font-weight:800;cursor:pointer}
.ld-submit:disabled{opacity:.55;cursor:wait}
.ld-emojis{display:flex;flex-wrap:wrap;gap:5px;padding:7px 10px;background:#261910}
.ld-emojis button{border:0;background:none;font-size:20px;cursor:pointer}
.ld-login{display:block;margin:10px;padding:11px;border:1px solid #b57e30;border-radius:10px;background:linear-gradient(115deg,#96301c,#a36b1b);color:#fff3dd;text-align:center;text-decoration:none;font-size:13px;font-weight:800}
.ld-notice{margin:0;padding:6px 11px;border-top:1px solid #763e35;background:#3b201d;color:#ffd2bc;font-size:11px}
@media(max-width:600px){.ld-chat{right:10px;bottom:10px}.ld-panel{width:min(390px,calc(100vw - 20px));height:min(600px,calc(100dvh - 82px))}.ld-launcher{padding:10px 14px;font-size:13px}}

/* Rank artwork frames: quiet glow with a lift on interaction. */
.ld-rank.is-art-badge{--aura:#4dddbd;position:relative;isolation:isolate;flex:none;min-width:94px;padding:1px 3px;border:1px solid color-mix(in srgb,var(--aura) 45%,transparent);border-radius:10px;background:radial-gradient(ellipse,color-mix(in srgb,var(--aura) 16%,#171217),#171217 76%);box-shadow:inset 0 1px 0 #ffffff20,0 0 11px color-mix(in srgb,var(--aura) 15%,transparent);line-height:0;transition:transform .25s ease,box-shadow .25s ease}
.ld-rank.is-art-badge::before{content:"";position:absolute;z-index:-1;inset:5px 15px;border-radius:50%;background:var(--aura);filter:blur(11px);opacity:.2}
.ld-rank.is-art-badge img{display:block;width:86px;height:auto;max-width:none;border-radius:0;filter:drop-shadow(0 2px 3px #000a);transition:transform .25s ease}
.ld-rank.rank-foundation{--aura:#54b9ff}.ld-rank.rank-golden{--aura:#ffcb58}.ld-rank.rank-nascent{--aura:#b995ff}.ld-rank.rank-divine{--aura:#ff7247}
.ld-message:hover .ld-rank.is-art-badge{transform:translateY(-1px);box-shadow:inset 0 1px 0 #ffffff30,0 0 15px color-mix(in srgb,var(--aura) 34%,transparent)}
.ld-message:hover .ld-rank.is-art-badge img{transform:scale(1.04)}
@media(max-width:390px){.ld-name{max-width:34%}.ld-rank.is-art-badge{min-width:82px}.ld-rank.is-art-badge img{width:74px}}
@media(prefers-reduced-motion:reduce){.ld-rank.is-art-badge,.ld-rank.is-art-badge img{transition:none}}

/* Image-only rank effects in chat. */
.ld-rank.is-art-badge{min-width:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
.ld-rank.is-art-badge::before{display:none}
.ld-rank.is-art-badge img{width:92px;height:auto;filter:brightness(1.04) drop-shadow(0 2px 4px #000a) drop-shadow(0 0 5px color-mix(in srgb,var(--aura) 35%,transparent));transform:scale(1);transform-origin:center;transition:transform .45s cubic-bezier(.2,.75,.2,1),filter .45s ease}
.ld-message:hover .ld-rank.is-art-badge{transform:none;box-shadow:none}
.ld-message:hover .ld-rank.is-art-badge img,.ld-rank.is-art-badge:hover img{transform:scale(1.13);filter:brightness(1.33) saturate(1.12) drop-shadow(0 3px 5px #000b) drop-shadow(0 0 12px color-mix(in srgb,var(--aura) 75%,transparent))}
@media(max-width:390px){.ld-rank.is-art-badge img{width:76px}}
@media(prefers-reduced-motion:reduce){.ld-rank.is-art-badge img{transition:none}}

/* The rank art breathes in place while messages are visible. */
.ld-rank.is-art-badge img{animation:chatRankBreath 5s ease-in-out infinite alternate}
.ld-message:hover .ld-rank.is-art-badge img,.ld-rank.is-art-badge:hover img{animation:none;transform:scale(1.15);filter:brightness(1.42) saturate(1.16) drop-shadow(0 3px 5px #000b) drop-shadow(0 0 14px color-mix(in srgb,var(--aura) 82%,transparent))}
@keyframes chatRankBreath{from{transform:scale(1);filter:brightness(1.04) saturate(1.03) drop-shadow(0 2px 4px #0009) drop-shadow(0 0 9px color-mix(in srgb,var(--aura) 46%,transparent))}to{transform:scale(1.11);filter:brightness(1.35) saturate(1.14) drop-shadow(0 2px 4px #0009) drop-shadow(0 0 9px color-mix(in srgb,var(--aura) 46%,transparent))}}
@media(prefers-reduced-motion:reduce){.ld-rank.is-art-badge img{animation:none}}

.ld-rank.rank-mortal{--aura:#dce3ed}
