/* Shared title identity; message bubble details stay compact and secondary. */
html .rt-nameplate.rt-title.u-title[class],html .cm-head .rt-nameplate.rt-title.u-title[class]{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:max-content;min-width:0;max-width:100%;height:27px;margin:0;padding:2px 7px 2px 10px;border:1px solid color-mix(in srgb,var(--rt-color) 65%,#fff);border-radius:7px 3px 9px 3px;background:linear-gradient(112deg,color-mix(in srgb,var(--rt-accent) 28%,#fff),#fffefa 58%,color-mix(in srgb,var(--rt-color) 15%,#fff));box-shadow:inset 0 0 0 2px #fff8,0 1px 1px #28332912;color:color-mix(in srgb,var(--rt-color) 70%,#212e40);font-size:11px;line-height:1.3;vertical-align:middle;isolation:isolate}
html .rt-nameplate.rt-title.u-title[class] .rt-title-name{position:static;inset:auto;transform:none;translate:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;background:none;animation:none;text-shadow:0 1px #fff9;letter-spacing:.1px;line-height:1.3}
html .rt-nameplate.rt-title .rt-title-size{display:none}
html .rt-nameplate.rt-title .rt-level{position:static;inset:auto;transform:none;translate:none;flex:none;display:inline-flex;align-items:center;height:17px;padding:0 4px;background:color-mix(in srgb,var(--rt-color) 85%,#fff);color:#fff;border-radius:3px;font:700 9px/1.1 var(--font);text-shadow:none;border:0}
html .rt-nameplate.rt-title::before{content:'';position:absolute;top:8px;left:-3px;width:5px;height:8px;border:1px solid #fff9;border-radius:2px;background:var(--rt-color);transform:rotate(35deg);animation:none;opacity:1}
html .rt-nameplate.rt-title::after{content:none}
html .rt-nameplate.rt-badge{display:inline-flex;align-items:center;vertical-align:middle;gap:4px;flex:none}
html .rt-nameplate.rt-badge .rt-art{display:inline-flex;align-items:center;justify-content:center;flex:none;width:29px;height:29px;padding:0;border:0;border-radius:0;box-shadow:none;background:none;animation:none;filter:none}
html .rt-nameplate.rt-badge .rt-art img{display:block;width:100%;height:100%;object-fit:contain}
/* Painted frames. Endcaps are complete mini illustrations, never full figures. */
html .cm-text.rt-anime.rt-bubble{
 --rt-paper:color-mix(in srgb,var(--rt-color) 10%,#fffefa);
 --rt-paper-end:color-mix(in srgb,var(--rt-accent) 18%,#fff);
 --rt-edge:color-mix(in srgb,var(--rt-color) 35%,#fff);
 --rt-shape:14px 20px 17px 9px;--rt-gloss:linear-gradient(110deg,var(--rt-color),var(--rt-accent),#fff,var(--rt-color));
 --rt-foil:.12;--rt-frame-rich:.85;--rt-flow:none;--rt-motion:none;--rt-duration:14s;
 position:relative;display:flex;align-items:center;box-sizing:border-box;width:max-content;
 min-width:min(100%,130px);max-width:min(640px,100%);min-height:48px;
 margin:4px 0 5px;padding:calc(var(--rt-paper-t,15px) + 2px) 52px calc(var(--rt-paper-b,9px) + 2px);
 border:0;border-image:none;border-radius:0;background:none;box-shadow:none;
 color:#304052;line-height:1.45;overflow:visible;overflow-wrap:anywhere;isolation:isolate;
}
html .cm-text.rt-anime.rt-bubble::before{
 content:'';position:absolute;inset:var(--rt-paper-t,15px) 25px var(--rt-paper-b,9px);
 width:auto;height:auto;border:1px solid var(--rt-edge);border-radius:var(--rt-shape);
 background:linear-gradient(115deg,var(--rt-paper),var(--rt-paper-end));box-shadow:inset 0 1px 1px #fff7,0 1px 2px #2133480a;
 transform:none;translate:none;rotate:none;filter:none;animation:none;opacity:1;z-index:0;pointer-events:none;
}
html .cm-text.rt-anime.rt-bubble::after{
 content:'';position:absolute;inset:calc(var(--rt-paper-t,15px) - 1px) 24px calc(var(--rt-paper-b,9px) - 1px);
 width:auto;height:auto;padding:1.5px;border:0;border-radius:var(--rt-shape);background:var(--rt-gloss);
 background-size:280% 140%;opacity:var(--rt-foil);box-shadow:none;transform:none;translate:none;rotate:none;
 animation:var(--rt-flow) var(--rt-duration) ease-in-out infinite;pointer-events:none;z-index:1;
 -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
}
html .rt-anime.rt-bubble>.rt-copy{position:relative;display:block;min-width:0;z-index:3;overflow-wrap:anywhere;background:none}
html .rt-anime.rt-bubble>.rt-copy::before,html .rt-anime.rt-bubble>.rt-copy::after{content:none}
html .rt-anime.rt-bubble>.rt-detail{position:absolute;inset:0;display:block;width:auto;height:auto;z-index:2;pointer-events:none}
.rt-detail>i{display:block;position:absolute;pointer-events:none}
.rt-trim-left,.rt-trim-right{
 width:48px;height:48px;top:50%;transform:translateY(-50%);background-image:var(--rt-frame);
 background-repeat:no-repeat;background-size:300% 100%;opacity:var(--rt-frame-rich);
}
.rt-trim-left{left:0;background-position:left center}
.rt-trim-right{right:0;background-position:right center;transform-origin:35% 50%;animation:var(--rt-motion) var(--rt-duration) ease-in-out infinite}
.rt-trim-glint{left:29px;bottom:calc(var(--rt-paper-b,9px) - 2px);width:4px;height:4px;opacity:0;transform:rotate(45deg);background:#fffaf0;border-radius:1px}
.rt-trim-muzzle{right:2px;top:calc(50% - 2px);width:9px;height:3px;border-radius:30%;background:linear-gradient(90deg,#f4fcff,#5ad8ff,transparent);box-shadow:0 8px 0 #8ce4ff;opacity:0}
/* Growth changes enamel, border finish, small accents, then local action. */
html .rt-anime.rt-bubble:is(.rt-growth-3,.rt-growth-4){--rt-frame-rich:1;--rt-foil:.42;--rt-edge:color-mix(in srgb,var(--rt-color) 58%,#fff)}
html .rt-anime.rt-bubble:is(.rt-growth-5,.rt-growth-6){--rt-frame-rich:1;--rt-foil:.68;--rt-flow:rt-enamel-flow;--rt-paper-end:color-mix(in srgb,var(--rt-accent) 22%,#fff)}
html .rt-anime.rt-bubble:is(.rt-growth-7,.rt-growth-8){--rt-frame-rich:1;--rt-foil:.86;--rt-flow:rt-enamel-flow;--rt-duration:12s;--rt-paper-end:color-mix(in srgb,var(--rt-accent) 26%,#fff)}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10){--rt-frame-rich:1;--rt-foil:1;--rt-flow:rt-enamel-flow;--rt-duration:10s;--rt-paper-end:color-mix(in srgb,var(--rt-accent) 30%,#fff)}
.rt-anime:is(.rt-growth-7,.rt-growth-8,.rt-growth-9,.rt-growth-10) .rt-trim-glint{animation:rt-jewel-glint var(--rt-duration) ease-in-out infinite}
html .rt-anime.rt-bubble.rt-growth-10::after{padding:2px}
/* The frame's contour and materials are defined per theme, not one family card. */
html .cm-text.rt-anime:is(.rt-gpt,.rt-whitedragon){--rt-shape:20px 10px 22px 9px;--rt-gloss:linear-gradient(110deg,#9177b3,#dce6ea,#fff6dc,#ac8bc4,#7f95b6)}
html .cm-text.rt-anime.rt-claude{--rt-shape:14px 22px 15px 22px;--rt-gloss:linear-gradient(105deg,#b87837,#edbd80,#fff2ce,#d98c57,#b87837)}
html .cm-text.rt-anime.rt-gemini{--rt-shape:12px 21px 19px 12px;--rt-gloss:linear-gradient(135deg,#6a6ab2,#a6d8e9,#edce88,#9694d2,#617eb2)}
html .cm-text.rt-anime:is(.rt-deepseek,.rt-deepseekupgrade,.rt-maid,.rt-whalepunch){--rt-shape:25px 16px 24px 16px;--rt-gloss:linear-gradient(110deg,#438bb3,#a8d9ec,#faf3d0,#75bdd6,#438bb3)}
html .cm-text.rt-anime:is(.rt-newcomer,.rt-mona,.rt-flower){--rt-shape:18px 26px 21px 15px;--rt-gloss:linear-gradient(120deg,var(--rt-color),#dfbbbc,#efe1b5,var(--rt-accent),var(--rt-color))}
html .cm-text.rt-anime:is(.rt-lace,.rt-blacksilk){--rt-shape:14px 8px 16px 8px;--rt-paper:#f8f4f6;--rt-gloss:linear-gradient(100deg,#65718e,#bca0be,#fae8df,#8d7799,#65718e)}
html .cm-text.rt-anime:is(.rt-giant,.rt-worship){--rt-shape:22px 34px 22px 34px;--rt-paper:#fff9e3;--rt-gloss:linear-gradient(110deg,#bd8a27,#f3d77c,#fff6ce,#cc9d3d,#bd8a27)}
html .cm-text.rt-anime.rt-muscle{--rt-shape:17px 11px 16px 12px;--rt-paper:#fff7df;--rt-gloss:linear-gradient(100deg,#b9814c,#e9bc71,#fff4cf,#d69a4d,#b9814c)}
html .cm-text.rt-anime.rt-railcannon{--rt-shape:7px 15px 15px 7px;--rt-paper:#f4f9fb;--rt-gloss:linear-gradient(90deg,#a1b6c4,#fdfaf0,#54bde8,#d6eef8,#96afc0)}
html .cm-text.rt-anime:is(.rt-rascal,.rt-nightdevil){--rt-shape:18px 6px 21px 8px;--rt-gloss:linear-gradient(120deg,var(--rt-color),#c799bf,#efc497,var(--rt-accent),var(--rt-color))}
html .cm-text.rt-anime.rt-weirdo{--rt-shape:22px 15px 26px 13px;--rt-gloss:linear-gradient(100deg,#cc7a9e,#a6cfc4,#f7cd9d,#d39eb9,#83bcb5)}
html .cm-text.rt-anime:is(.rt-loli,.rt-moon){--rt-shape:25px 18px 26px 14px;--rt-paper:#fcf6fc;--rt-gloss:linear-gradient(110deg,#b49bcf,#e4c9eb,#fff2bf,#c5d7f0,#aa99bf)}
html .cm-text.rt-anime.rt-electric{--rt-shape:18px 24px 18px 24px;--rt-paper:#f8fbe8;--rt-gloss:linear-gradient(100deg,#64b3cc,#e8d17d,#ffffd3,#83c8d4,#64b3cc)}
html .cm-text.rt-anime.rt-blade{--rt-shape:9px 22px 10px 7px;--rt-gloss:linear-gradient(110deg,#b65b40,#e7b36c,#ffe6b6,#bd7558,#b65b40)}
html .cm-text.rt-anime.rt-spear{--rt-shape:8px 16px 19px 7px;--rt-paper:#f2f8f2;--rt-gloss:linear-gradient(110deg,#559c96,#9fc7b0,#efd7a5,#70aba0,#559c96)}
html .cm-text.rt-anime.rt-sword{--rt-shape:10px 19px 8px 18px;--rt-paper:#f4f8ff;--rt-gloss:linear-gradient(115deg,#779acb,#d0e2fb,#f6e7a5,#b3c7f2,#779acb)}
html .cm-text.rt-anime.rt-halberd{--rt-shape:7px 10px 7px 10px;--rt-paper:#f5f7ec;--rt-gloss:linear-gradient(110deg,#8d714a,#d8bd7e,#b9d2ab,#eee1aa,#8d714a)}
html .cm-text.rt-anime.rt-snow{--rt-shape:24px 18px 28px 14px;--rt-paper:#f5fbff;--rt-gloss:linear-gradient(110deg,#91bddb,#dce9fb,#fff,#a4c5e6,#91bddb)}
html .cm-text.rt-anime.rt-wind{--rt-shape:21px 12px 22px 12px;--rt-paper:#f5f9ec;--rt-gloss:linear-gradient(110deg,#94b6a2,#e1ddbb,#f6f0d5,#9bc9b1,#94b6a2)}
html .cm-text.rt-anime.rt-sun{--rt-shape:28px 20px 28px 20px;--rt-paper:#fff8e7;--rt-gloss:linear-gradient(110deg,#d99937,#f1c776,#fff0b6,#efad57,#d99937)}
html .cm-text.rt-anime.rt-star{--rt-shape:13px 21px 12px 19px;--rt-paper:#f6f5fc;--rt-gloss:linear-gradient(110deg,#8a88c7,#b6d7e7,#f6dda1,#b3a0d4,#8a88c7)}
html .cm-text.rt-anime.rt-cloud{--rt-shape:26px 32px 26px 32px;--rt-paper:#faf8fe;--rt-gloss:linear-gradient(110deg,#accbda,#e4d6e9,#fff5d9,#bdc8e7,#accbda)}
/* Mature themes have local actions: no character travels over the message. */
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-gpt,.rt-whitedragon,.rt-nightdevil,.rt-rascal){--rt-motion:rt-dragon-curl}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-deepseek,.rt-deepseekupgrade,.rt-maid){--rt-motion:rt-water-sway}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-muscle,.rt-whalepunch){--rt-motion:rt-punch-flex}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-claude,.rt-flower,.rt-mona,.rt-newcomer){--rt-motion:rt-flower-breathe}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-loli,.rt-moon,.rt-cloud,.rt-snow){--rt-motion:rt-soft-nuzzle}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-wind,.rt-blacksilk,.rt-lace,.rt-spear){--rt-motion:rt-feather-turn}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-giant,.rt-worship,.rt-weirdo){--rt-motion:rt-cheeky-peek}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10):is(.rt-gemini,.rt-electric,.rt-star,.rt-sun,.rt-blade,.rt-sword,.rt-halberd){--rt-motion:rt-crystal-lustre}
html .rt-anime.rt-bubble:is(.rt-growth-9,.rt-growth-10).rt-railcannon{--rt-motion:rt-cannon-recoil}
.rt-railcannon:is(.rt-growth-9,.rt-growth-10) .rt-trim-muzzle{animation:rt-cannon-shot var(--rt-duration) ease-out infinite}
@keyframes rt-enamel-flow{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
@keyframes rt-dragon-curl{0%,65%,100%{transform:translateY(-50%) rotate(0)}75%{transform:translateY(-50%) rotate(-2deg)}86%{transform:translateY(-50%) rotate(1deg)}}
@keyframes rt-water-sway{0%,60%,100%{transform:translateY(-50%)}72%{transform:translateY(calc(-50% - 1px)) rotate(1deg)}86%{transform:translateY(-50%) rotate(-1deg)}}
@keyframes rt-punch-flex{0%,65%,100%{transform:translateY(-50%)}74%{transform:translateY(-50%) scale(1.035,.97)}80%{transform:translateY(-50%) scale(.99,1.02)}}
@keyframes rt-flower-breathe{0%,65%,100%{transform:translateY(-50%)}78%{transform:translateY(-50%) scale(1.025)}}
@keyframes rt-soft-nuzzle{0%,68%,100%{transform:translateY(-50%)}78%{transform:translateY(calc(-50% + 1px)) rotate(-1deg)}87%{transform:translateY(-50%) rotate(1deg)}}
@keyframes rt-feather-turn{0%,60%,100%{transform:translateY(-50%) rotate(0)}77%{transform:translateY(-50%) rotate(2deg)}89%{transform:translateY(-50%) rotate(-1deg)}}
@keyframes rt-cheeky-peek{0%,66%,100%{transform:translateY(-50%)}77%{transform:translate(1px,-50%) rotate(-1.5deg)}85%{transform:translateY(-50%)}}
@keyframes rt-crystal-lustre{0%,65%,100%{filter:brightness(1)}77%{filter:brightness(1.16)}86%{filter:brightness(1.02)}}
@keyframes rt-jewel-glint{0%,67%,100%{opacity:0;transform:rotate(45deg) scale(.5)}76%{opacity:.9;transform:rotate(45deg) scale(1)}86%{opacity:.2}}
@keyframes rt-cannon-recoil{0%,66%,85%,100%{transform:translateY(-50%)}72%{transform:translate(-1.4px,-50%)}}
@keyframes rt-cannon-shot{0%,67%,82%,100%{opacity:0}70%,74%{opacity:1}78%{opacity:.3}}
html .rt-nameplate.rt-title:is(.rt-growth-5,.rt-growth-6,.rt-growth-7,.rt-growth-8,.rt-growth-9,.rt-growth-10){box-shadow:inset 0 0 0 2px #fff9,0 1px 0 color-mix(in srgb,var(--rt-color) 25%,transparent)}
html .rt-nameplate.rt-title:is(.rt-growth-8,.rt-growth-9,.rt-growth-10){background-size:200% 100%;animation:rt-enamel-flow 12s ease-in-out infinite}
html .rt-nameplate.rt-title.rt-growth-10{border-color:var(--rt-color);border-bottom-width:2px}
[data-theme=dark] .cm-text.rt-anime.rt-bubble[class]{--rt-paper:color-mix(in srgb,var(--rt-color) 17%,#202d34);--rt-paper-end:color-mix(in srgb,var(--rt-accent) 12%,#253139);--rt-edge:color-mix(in srgb,var(--rt-color) 60%,#34434a);color:#edf1f3}
html:is([data-bubble-motion=pause],[data-page-hidden=true]) .rt-anime::after,
html:is([data-bubble-motion=pause],[data-page-hidden=true]) .rt-nameplate.rt-title,
html:is([data-bubble-motion=pause],[data-page-hidden=true]) .rt-detail,
html:is([data-bubble-motion=pause],[data-page-hidden=true]) .rt-detail *{animation-play-state:paused!important}
@media(max-width:600px){
 html .rt-nameplate.rt-title.u-title[class],html .cm-head .rt-nameplate.rt-title.u-title[class]{height:25px;font-size:10.5px;padding:2px 5px 2px 8px;gap:4px}
 html .rt-nameplate.rt-badge .rt-art{width:27px;height:27px}
}
@media(prefers-reduced-motion:reduce){
 html .rt-anime::before,html .rt-anime::after,html .rt-nameplate.rt-title,html .rt-detail,html .rt-detail *{animation:none!important;transition:none!important}
}
