/* Static presentation only: no combat geometry, animation or attribute changes. */
.cosmetic-avatar{position:relative;isolation:isolate;overflow:visible!important;border-radius:50%;display:grid;place-items:center;background:#244f58;color:#efdab0}
.cosmetic-face{display:grid;place-items:center;position:absolute;inset:0;border-radius:50%;overflow:hidden;font:28px KaiTi,serif}
.cosmetic-avatar>.cosmetic-face>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center 12%!important;transform:none!important}
.cosmetic-avatar[data-cosmetic-frame=jade]::after,.cosmetic-avatar[data-cosmetic-frame=gold]::after{content:"";position:absolute;inset:-4px;border:3px double #d9bd78;border-radius:50%;box-shadow:0 0 0 2px #426e65;pointer-events:none}
.cosmetic-avatar[data-cosmetic-frame=gold]::after{border-color:#f1d48b;box-shadow:0 0 0 2px #8c6b31;inset:-5px}
.cosmetics-entry{cursor:pointer}.cosmetics-entry:focus-visible{outline:2px solid #ffdf96;outline-offset:6px}
.cosmetics-entry::before{content:"饰";position:absolute;right:-3px;bottom:-4px;z-index:2;border:1px solid #dbc583;background:#244f58;border-radius:50%;font:12px/18px serif;width:18px;height:18px;text-align:center}
.cosmetic-title{display:inline-block;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;padding:3px 12px;border:1px solid #d1b676;border-radius:5px;background:#204a4bf2;color:#f3dfad;font:15px/1.4 KaiTi,serif;pointer-events:none}
.cosmetic-title[hidden]{display:none!important}.cosmetic-title[data-tone=gold]{background:#51462ce8}
.cosmetic-home-title{position:absolute;left:50%;bottom:100%;margin-bottom:8px;transform:translateX(-50%);z-index:4}
.cosmetic-battle-title{position:absolute;left:50%;bottom:calc(100% + 56px);transform:translateX(-50%);font-size:12px;padding:2px 7px;max-width:180px;z-index:8}
.cosmetics-dialog{position:absolute;inset:30px 16px 30px;margin:0!important;width:auto!important;max-width:none!important;max-height:none!important;height:auto!important;padding:0!important;border:1px solid #b59d62;border-radius:10px;background:#f2f0df;color:#214d50;overflow:hidden;box-sizing:border-box;font-family:KaiTi,STKaiti,serif}
.cosmetics-dialog[open]{display:flex!important;flex-direction:column;gap:0}.cosmetics-dialog::backdrop{background:#09232688}
.cosmetics-dialog header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#20484c;color:#f5dfab;flex:none}
.cosmetics-dialog h2{margin:0;font-size:28px;font-weight:normal}.cosmetics-dialog button{font:18px KaiTi,serif;cursor:pointer;min-height:44px;border:1px solid #b4a477;border-radius:6px;background:#e9ead7;color:#214d50}
.cosmetics-dialog [data-cosmetic-close]{min-width:44px;background:transparent;color:#f5dfab;font-size:30px;border:0}.cosmetics-dialog button:disabled{opacity:.5;cursor:default}
.cosmetics-dialog button:focus-visible{outline:2px solid #b48837;outline-offset:-3px}
.cosmetics-preview{height:225px;flex:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:linear-gradient(#f6f4e7bb,#e1e5d6bb),url('../assets/images/themes/jade-v18/scene.webp') center/cover;overflow:hidden}
.cosmetics-preview-avatar{width:120px;height:120px}.cosmetics-preview strong{font-size:22px}
.cosmetics-title-scene{position:relative;width:100%;height:100%;box-sizing:border-box}
.cosmetics-title-scene>img{position:absolute;top:40px;left:50%;transform:translateX(-50%);width:190px;height:180px;object-fit:contain;margin:0}
.cosmetics-title-scene>.cosmetic-title{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:1}
.cosmetics-tabs{display:flex;gap:6px;padding:10px 12px;flex:none}.cosmetics-tabs button{flex:1}.cosmetics-tabs button.active{background:#214e50;color:#f5dfab}
.cosmetics-list{flex:1;min-height:110px;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain;padding:4px 14px 12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;gap:10px;align-content:start}
.cosmetics-list::-webkit-scrollbar{display:none;width:0;height:0}
.cosmetics-card{display:flex;align-items:center;flex-direction:column;gap:9px;padding:16px 6px 9px;min-width:0}.cosmetics-card[data-selected=true]{border-color:#b28330;box-shadow:inset 0 0 0 1px #bd934b;background:#faf0d5}
.cosmetics-card-art{width:70px;height:70px;flex:none}.cosmetics-item-name{font-size:16px;line-height:1.3}.cosmetics-card small{font-size:13px;color:#58695c}.cosmetics-list[data-kind=title]{grid-template-columns:1fr}.cosmetics-list[data-kind=title] .cosmetics-card{flex-direction:row;justify-content:space-between;padding:15px}
.cosmetics-empty{grid-column:1/-1;color:#69796e;text-align:center;font-size:16px}.cosmetics-detail{margin:0 14px;padding:12px 16px;border:1px solid #c8c2a3;border-radius:6px;display:flex;flex-direction:column;gap:7px;flex:none}.cosmetics-detail strong{font-size:21px}.cosmetics-detail small{font-size:15px}
.cosmetics-status{font-size:14px;min-height:19px;margin:7px 18px;flex:none;color:#6c6548}.cosmetics-dialog footer{padding:0 30px 16px;flex:none}.cosmetics-dialog [data-cosmetic-save]{width:100%;background:#214e50;color:#f4dfaa;border-color:#bcaa72;font-size:24px;min-height:48px}
.coop-member .cosmetic-title{font-size:11px;padding:2px 4px;max-width:100%;display:block}.coop-member .cosmetic-avatar{overflow:visible}.bf-unit .bf-art.cosmetic-avatar{overflow:visible}.bf-unit .cosmetic-face{z-index:0}
@media(max-width:380px){.cosmetics-dialog{inset:12px 8px}.cosmetics-card-art{width:58px;height:58px}.cosmetics-preview{height:200px}}
/* Explicit scope wins over the legacy global theme's dialog and text rules. */
#game-root .cosmetics-dialog{background:#f2f0df!important;color:#214d50!important;background-image:none!important}
#game-root .cosmetics-dialog::before,#game-root .cosmetics-dialog::after{display:none!important}
#game-root .cosmetics-dialog header{background:#20484c!important}
#game-root .cosmetics-dialog h2{color:#f5dfab!important;font-size:28px!important}
#game-root .cosmetics-dialog button{background:#e9ead7!important;color:#214d50!important;border-color:#b4a477!important}
#game-root .cosmetics-dialog .cosmetics-tabs button.active,#game-root .cosmetics-dialog [data-cosmetic-save]{background:#214e50!important;color:#f4dfaa!important}
#game-root .cosmetics-dialog [data-cosmetic-close]{background:transparent!important;color:#f4dfaa!important}
#game-root .cosmetics-dialog .cosmetics-card[data-selected=true]{background:#faf0d5!important;border-color:#b28330!important}
#game-root .cosmetics-dialog strong,#game-root .cosmetics-dialog .cosmetics-item-name{color:#214d50!important}
#game-root .cosmetics-dialog .cosmetics-card small,#game-root .cosmetics-dialog .cosmetics-detail small{color:#58695c!important}
#game-root .cosmetic-title,.cosmetic-title{color:#f3dfad!important;background:#204a4bf2!important;font-size:15px;line-height:1.4}
#game-root .cosmetic-avatar>.cosmetic-face>img,.cosmetic-avatar>.cosmetic-face>img{left:50%!important;right:auto!important;width:auto!important;height:270%!important;object-fit:contain!important;transform:translateX(-50%)!important}
#game-root .cosmetic-home-title{bottom:auto;top:12px;margin-bottom:0;z-index:4;font-size:14px;padding:2px 10px}
#game-root .cosmetic-battle-title,.cosmetic-battle-title{font-size:12px;max-width:150px;transform:translateX(-50%) scale(var(--bf-inverse-scale,1));transform-origin:bottom center}

/* Season art contract: square portraits/frames, 3:1 titles. All dimensions are
   logical game-canvas pixels; art never changes character or hit-area geometry. */
#game-root .cosmetic-avatar>.cosmetic-face[data-portrait-fit=cover]>img,
.cosmetic-avatar>.cosmetic-face[data-portrait-fit=cover]>img{inset:0!important;left:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;transform:none!important}
#game-root .cosmetic-avatar>.cosmetic-frame,.cosmetic-avatar>.cosmetic-frame{position:absolute!important;inset:auto!important;left:50%!important;top:50%!important;width:132%!important;height:132%!important;max-width:none!important;max-height:none!important;transform:translate(-50%,-50%)!important;object-fit:contain!important;border:0!important;border-radius:0!important;pointer-events:none;user-select:none;z-index:1}
#game-root .cosmetic-avatar[data-cosmetic-frame-tier="1"]>.cosmetic-frame,
.cosmetic-avatar[data-cosmetic-frame-tier="1"]>.cosmetic-frame{width:138%!important;height:138%!important}
#game-root .cosmetic-avatar>.cosmetic-frame[hidden],.cosmetic-avatar>.cosmetic-frame[hidden]{display:none!important}
#game-root .cosmetic-avatar[data-cosmetic-frame=art]::after,.cosmetic-avatar[data-cosmetic-frame=art]::after{content:none!important}
#game-root .coop-avatar small{z-index:2}
.cosmetic-frame,.cosmetic-title-image{pointer-events:none;-webkit-user-drag:none;user-select:none}

#game-root .cosmetic-title-art,.cosmetic-title-art{box-sizing:border-box;width:162px;height:54px;max-width:162px;max-height:54px;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;line-height:0;overflow:hidden;flex:none}
#game-root .cosmetic-title-art[data-tier="1"],.cosmetic-title-art[data-tier="1"]{width:170px;height:57px;max-width:170px;max-height:57px}
#game-root .cosmetic-title-art>.cosmetic-title-image,.cosmetic-title-art>.cosmetic-title-image{display:block!important;position:static!important;inset:auto!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;object-fit:contain!important;object-position:center!important;transform:none!important}
/* Both the image and title remain absolutely anchored even when no title is worn. */
.cosmetics-title-scene>img{top:48px;height:174px}
.cosmetics-title-scene>.cosmetic-title-art{top:4px}
#game-root .cosmetic-home-title.cosmetic-title-art{top:-14px;bottom:auto;margin:0;z-index:4}
#game-root .cosmetic-home-title.cosmetic-title-art[data-tier="1"]{top:-17px}
#game-root .cosmetic-battle-title.cosmetic-title-art,.cosmetic-battle-title.cosmetic-title-art{width:126px;height:42px;max-width:126px;max-height:42px;bottom:calc(100% + 56px)}
#game-root .cosmetic-battle-title.cosmetic-title-art[data-tier="1"],.cosmetic-battle-title.cosmetic-title-art[data-tier="1"]{width:132px;height:44px;max-width:132px;max-height:44px}
#game-root .coop-member>.cosmetic-title-art,.coop-member>.cosmetic-title-art{width:96px!important;height:32px;max-width:100%;max-height:32px;align-self:center}
#game-root .coop-member>.cosmetic-title-art[data-tier="1"],.coop-member>.cosmetic-title-art[data-tier="1"]{width:96px!important;height:32px;max-width:100%;max-height:32px}
.cosmetics-list[data-kind=title] .cosmetics-card--title-art{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:57px auto;align-items:center;gap:2px 12px;padding:7px 14px 9px;min-height:92px}
.cosmetics-card--title-art>.cosmetics-card-title{grid-column:1;grid-row:1;justify-self:start}
.cosmetics-card--title-art>.cosmetics-item-name{grid-column:1;grid-row:2;justify-self:start;font-size:14px}
.cosmetics-card--title-art>small{grid-column:2;grid-row:1/3;white-space:nowrap}
/* Reserve the complete frame silhouette above and below the portrait. */
.cosmetics-preview{gap:28px}
#game-root .cosmetics-list:not([data-kind=title]) .cosmetics-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:70px 42px 18px;justify-items:center;align-items:center;align-content:start;row-gap:14px;height:auto;min-height:185px}
.cosmetics-list:not([data-kind=title]) .cosmetics-item-name{max-width:100%;max-height:42px;overflow:hidden}
.cosmetics-list:not([data-kind=title]) .cosmetics-card>small{line-height:18px}
@media(max-width:380px){.cosmetics-preview{gap:24px}.cosmetics-preview-avatar{width:108px;height:108px}#game-root .cosmetics-list:not([data-kind=title]) .cosmetics-card{grid-template-rows:58px 42px 18px;min-height:173px}}
/* A room reserves the full frame envelope plus independent name/title rows.
   Empty cosmetics keep the same roster geometry; ordinary battle avatars do not use this. */
#game-root [data-coop-members]>.coop-member{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:88px 18px 32px;justify-items:center;align-items:center;align-content:start;row-gap:5px;height:auto;min-height:148px}
#game-root [data-coop-members]>.coop-member>.coop-avatar{grid-column:1;grid-row:1}
#game-root [data-coop-members]>.coop-member>.coop-avatar+span{grid-column:1;grid-row:2;display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:18px}
#game-root [data-coop-members]>.coop-member>.cosmetic-title{grid-column:1;grid-row:3}
@media(max-height:700px){#game-root [data-coop-members]>.coop-member{grid-template-rows:68px 18px 32px;min-height:128px}}
/* Compact owned collection; the highlight carries selection state. */
#game-root .cosmetics-list:not([data-kind=title]) .cosmetics-card{grid-template-rows:70px 24px;min-height:139px;row-gap:18px}
.cosmetics-list:not([data-kind=title]) .cosmetics-item-name{white-space:nowrap;font-size:16px}
.cosmetics-list[data-kind=title] .cosmetics-card--title-art{grid-template-rows:57px;min-height:73px}
.cosmetics-card--title-art>small{grid-row:1}
.cosmetics-detail{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px}
.cosmetics-detail strong{font-size:19px;white-space:nowrap}
.cosmetics-detail small{font-size:14px;white-space:nowrap}
.cosmetics-status:empty{min-height:0;margin:6px 0}
@media(max-width:380px){#game-root .cosmetics-list:not([data-kind=title]) .cosmetics-card{grid-template-rows:58px 24px;min-height:127px}}
/* Titles share the name anchor and inherit its zoom exactly once. */
#game-root .bf-head>.cosmetic-battle-title,.bf-head>.cosmetic-battle-title{bottom:calc(100% + 2px);transform:translateX(-50%)}
/* Measured opaque artwork bounds: male y=60..1215, female y=117..1236,
   both 1254-square. Match visible height and seated baseline, never stretch. */
#game-root .cultivate-character-stage{--meditation-height:180px;--meditation-bottom:6px;--meditation-span:1156;--meditation-tail:38}
#game-root[data-player-gender=female] .cultivate-character-stage{--meditation-span:1120;--meditation-tail:17}
#game-root .cultivate-character-stage.has-meditation .meditation-base:not([hidden]){inset:auto;left:50%;bottom:calc(var(--meditation-bottom) - var(--meditation-height) * var(--meditation-tail) / var(--meditation-span));width:calc(var(--meditation-height) * 1254 / var(--meditation-span));height:calc(var(--meditation-height) * 1254 / var(--meditation-span));transform:translateX(-50%);max-width:none}
#game-root .cosmetic-home-title.cosmetic-title-art{top:-14px}
#game-root .cosmetic-home-title.cosmetic-title-art[data-tier="1"]{top:-17px}
.cosmetics-title-scene{--meditation-height:150px;--meditation-span:1156;--meditation-tail:38}
.cosmetics-title-scene[data-gender=female]{--meditation-span:1120;--meditation-tail:17}
.cosmetics-title-scene>img{top:auto;bottom:calc(4px - var(--meditation-height) * var(--meditation-tail) / var(--meditation-span));width:calc(var(--meditation-height) * 1254 / var(--meditation-span));height:calc(var(--meditation-height) * 1254 / var(--meditation-span));max-width:none}
@media(max-width:380px){.cosmetics-title-scene{--meditation-height:125px}}

/* Remove the legacy square ornament beneath the circular avatar frame. */
#game-root .gender-portrait--compact.cosmetics-entry::after{content:none!important}

/* Preserve title slots and anchors, reduce the lower tier artwork inside them. */
#game-root .cosmetic-title-art[data-tier=top50]>.cosmetic-title-image,.cosmetic-title-art[data-tier=top50]>.cosmetic-title-image{transform:scale(.78)!important}

/* Empty title slots must not compress the lobby illustration. */
#game-root [data-coop-members]>.coop-member{grid-template-rows:62px 18px;min-height:85px;row-gap:5px}
#game-root [data-coop-members]>.coop-member.has-title{grid-template-rows:62px 18px 20px;min-height:108px}
