/* Shared portrait geometry for combat cards and public character information. */
.portrait-layout{container-type:inline-size;min-width:0}
.portrait-layout .doll{display:grid!important;grid-template-columns:19.9% minmax(0,1fr) 23.2%!important;grid-template-rows:minmax(0,1fr) 18cqw!important;grid-template-areas:'l f r' 'b b b';width:100%!important;max-width:100%;height:111cqw!important;min-height:0;padding:0!important;gap:3px!important;box-sizing:border-box}
.portrait-layout .doll .dmid{display:contents!important}
.portrait-layout .doll .dtop{display:none!important}
.portrait-layout .doll .dleft,.portrait-layout .doll .dright{display:grid;height:100%!important;min-height:0;gap:3px!important;grid-row:1}
.portrait-layout .doll .dleft{grid-column:1;grid-template-rows:repeat(7,minmax(0,1fr))!important}
.portrait-layout .doll .dright{grid-column:3;grid-template-rows:1fr 1.6fr 1.8fr 1fr 1.5fr!important}
.portrait-layout .doll .figure{position:relative;grid-column:2;grid-row:1;width:100%!important;height:100%!important;min-height:0;border:0!important;background:none!important;overflow:hidden}
.portrait-layout .doll .figure:before{display:none}
.portrait-layout .doll .figure>img,.portrait-layout .doll .figure>svg{position:absolute;inset:19cqw 0 0!important;width:100%!important;height:calc(100% - 19cqw)!important;object-fit:contain;object-position:center;transform:none!important}
.portrait-layout .doll .drow{display:grid!important;grid-area:b;grid-template-columns:19.9% minmax(0,1fr) 23.2%!important;grid-template-rows:1fr;gap:3px!important;width:100%;height:100%!important;margin:0!important}
.portrait-layout .ring-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;height:9cqw;min-height:0;align-self:start}
.portrait-layout .ring-pair-left{grid-column:1}.portrait-layout .ring-pair-right{grid-column:3}
.portrait-layout .portrait-runes-top{position:absolute;inset:0 0 auto;z-index:2;height:auto}
.portrait-layout .portrait-runes-bottom{position:static;grid-column:2;height:auto}
.portrait-layout .portrait-runes .rune-belt{width:100%;min-width:0;margin:0!important;padding:0!important;border:0!important;background:none!important}
.portrait-layout .portrait-runes .rune-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;height:auto}
.portrait-layout .portrait-runes .rune-slot{display:grid;place-items:center;position:relative;width:100%;height:auto!important;aspect-ratio:1;margin:0;padding:0;overflow:hidden;box-sizing:border-box;border:1px solid #a28a59;border-radius:2px;background:#10232e}
.portrait-layout .portrait-runes .rune-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:2px;box-sizing:border-box}
.portrait-layout .portrait-runes .rune-empty{display:grid;place-items:center;width:100%;height:100%;font-size:16px}
.portrait-layout .portrait-runes .rune-index{display:none}
.portrait-layout .doll .slot{position:relative;display:block;width:100%;height:100%;min-height:0;padding:0;overflow:hidden;box-sizing:border-box;border-radius:3px}
.portrait-layout .doll .slot>span{position:absolute;inset:2px;display:flex;align-items:center;justify-content:center;width:auto!important;height:auto!important;overflow:hidden}
.portrait-layout .doll .slot .i3d,.portrait-layout .doll .slot img,.portrait-layout .doll .slot svg{width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:contain;transform:none!important}
.portrait-layout .character-bars{gap:3px}.portrait-layout .character-pool{height:10px}
.portrait-layout .character-bars-bottom{margin:4px 0}
.profile-doll .doll-set.portrait-layout{width:360px;max-width:100%;margin:auto}

.portrait-layout .portrait-runes .rune-slot>img.rune-lock{inset:15% 20%;width:60%;height:70%;padding:0;object-fit:contain;filter:drop-shadow(0 2px 2px #000)}
.portrait-layout .private-runes .rune-slot{background:radial-gradient(ellipse at 50% 35%,#294454,#091923 75%);border-color:#b3975f}

/* Extend selected side slots so the ring pairs finish level with the lower runes. */
.portrait-layout .doll .dleft,.portrait-layout .doll .dright{height:calc(100% + 9cqw)!important}
.portrait-layout .doll .dleft{grid-template-rows:repeat(5,minmax(0,1fr)) minmax(0,1.5fr) minmax(0,1.5fr)!important}
.portrait-layout .doll .dright{grid-template-rows:1fr 2.05fr 2.25fr 1fr 1.5fr!important}
.portrait-layout .ring-pair{align-self:end}
.profile-doll:has(.portrait-layout){width:fit-content;max-width:100%;box-sizing:border-box}
.profile-doll .doll-set.portrait-layout{width:336px}
/* Move equipment toward the image; the rune rows shrink by the same inset. */
.portrait-layout{--portrait-inset:min(5mm,4cqw)}
.portrait-layout .doll .dleft{transform:translateX(var(--portrait-inset))}
.portrait-layout .doll .dright{transform:translateX(calc(-1*var(--portrait-inset)))}
.portrait-layout .doll .figure{width:calc(100% - 2*var(--portrait-inset))!important;justify-self:center;overflow:visible}
.portrait-layout .doll .figure>img,.portrait-layout .doll .figure>svg{width:calc(100% + 2*var(--portrait-inset))!important;left:calc(-1*var(--portrait-inset))!important}
.portrait-layout .portrait-runes-bottom{width:calc(100% - 2*var(--portrait-inset));justify-self:center}
.portrait-layout .ring-pair-left{transform:translateX(var(--portrait-inset))}.portrait-layout .ring-pair-right{transform:translateX(calc(-1*var(--portrait-inset)))}
.portrait-layout .doll{grid-template-rows:minmax(0,1fr) calc(18cqw - 2*var(--portrait-inset)/3)!important}
.portrait-layout .doll .dleft,.portrait-layout .doll .dright{height:calc(100% + 9cqw - 2*var(--portrait-inset)/3)!important}
/* Final compact field: tracks follow the outer equipment edges. */
.portrait-layout{--portrait-inset:min(10mm,8cqw)}
.portrait-layout .character-bars{width:calc(100% - 2*var(--portrait-inset));margin-inline:auto}
.profile-doll .doll-set.portrait-layout{width:300px}
/* Move the equipment outward by 3mm from the preceding compact arrangement. */
.portrait-layout{--portrait-inset:max(0px,calc(min(10mm,8cqw) - 3mm))}
.portrait-layout .portrait-runes-bottom{align-self:end;height:fit-content!important}
.portrait-layout>.pill{width:calc(100% - 2*var(--portrait-inset));box-sizing:border-box;margin:4px auto}
/* Keep only the inner character frame in public information. */
.profile>.profile-doll:has(.portrait-layout){padding:0;border:0;background:none;box-shadow:none;align-self:start;margin-top:0}
/* Avoid max-width clamping the image while retaining its negative centering offset. */
.portrait-layout .doll .figure>img,.portrait-layout .doll .figure>svg{max-width:none!important;object-position:center center;top:calc((100cqw*.569 - 2*var(--portrait-inset) - 12px)/3 + 4px)!important;height:calc(100% - (100cqw*.569 - 2*var(--portrait-inset) - 12px)/3 - 4px)!important}
.profile-doll .portrait-layout .doll .dright,.profile-doll .portrait-layout .ring-pair-right{transform:translateX(calc(-1*var(--portrait-inset) - 1mm))}
.profile-doll .portrait-layout .character-bars{width:calc(100% - 2*var(--portrait-inset) - 1mm);transform:translateX(-.5mm)}
.portrait-layout .character-bars-bottom{margin-top:8px}
/* Equal side widths; profile inset changes do not rescale the image. */
.portrait-layout .doll,.portrait-layout .doll .drow{grid-template-columns:19.9% minmax(0,1fr) 19.9%!important}
.profile-doll .portrait-layout{--image-inset:max(0px,calc(min(10mm,8cqw) - 3mm));--portrait-inset:calc(var(--image-inset) + 2mm)}
.profile-doll .portrait-layout .doll{grid-template-rows:minmax(0,1fr) calc(18cqw - 2*var(--image-inset)/3)!important}
.profile-doll .portrait-layout .doll .figure>img,.profile-doll .portrait-layout .doll .figure>svg{width:calc(100cqw*.569 - 6px)!important;left:50%!important;transform:translateX(-50%)!important;top:calc((100cqw*.569 - 2*var(--image-inset) - 12px)/3 + 4px)!important;height:calc(100% - (100cqw*.569 - 2*var(--image-inset) - 12px)/3 - 4px)!important}
.profile-doll .portrait-layout .doll .figure{width:calc(100% - 2*var(--portrait-inset) - 1mm)!important;transform:translateX(-.5mm)}
.profile-doll .portrait-layout .portrait-runes-bottom{width:calc(100% - 2*var(--portrait-inset) - 1mm);transform:translateX(-.5mm)}
.profile-doll .portrait-layout .doll .drow{transform:translateY(-3px)}
.profile-doll .doll-set.portrait-layout{position:relative;isolation:isolate;border-color:transparent;background:none}
.profile-doll .doll-set.portrait-layout:before{content:'';position:absolute;z-index:-1;pointer-events:none;left:var(--portrait-frame-left,0px);top:var(--portrait-frame-top,0px);right:var(--portrait-frame-right,0px);bottom:var(--portrait-frame-bottom,0px);border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--surface),var(--surface-soft))}

/* Runes use the same subdued cell frame as equipment. */
.portrait-layout .portrait-runes .rune-slot{border-color:var(--line2);border-radius:3px}
.portrait-layout .portrait-runes .rune-slot.empty{border-style:dashed;opacity:.45}
/* A single regular frame lines up with the adjacent information cards. */
.profile-doll .doll-set.portrait-layout{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--surface-soft));margin:0}
.profile-doll .doll-set.portrait-layout:before{display:none}
@media(min-width:761px){.profile:has(>.profile-doll .portrait-layout){grid-template-columns:minmax(0,300px) minmax(0,1fr)}}
