.character-view{--ink:#e8edf0;--muted:#95a6b0;--cyan:#6ce5ed;--edge:#657782;color:var(--ink);max-width:1440px;margin:auto;font-variant-numeric:tabular-nums}.character-view [hidden]{display:none!important}.character-header{display:flex;justify-content:space-between;gap:2rem;padding:24px 28px;background:linear-gradient(100deg,#131d24,#080f14);border:1px solid var(--edge);box-shadow:inset 0 0 0 3px #080d12}.character-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan);margin:0 0 7px}.character-name{font-size:clamp(1.6rem,3vw,2.6rem);margin:0;overflow-wrap:anywhere;color:#ffcf71}.character-class-line{margin:8px 0 0;color:#c8d3db}.character-meta{font-size:.8rem;color:var(--muted);line-height:1.55;text-align:right}.character-meta p{margin:2px 0}.character-account{display:flex;gap:10px;justify-content:flex-end}.character-status:empty{display:none}.character-status{background:#322720;border:1px solid #ac8249;padding:12px 16px}.character-tabs{display:flex;gap:7px;margin:16px 0;flex-wrap:wrap}.character-tabs button{flex:1;min-width:135px;padding:14px 18px;font:inherit;border:1px solid #64727d;color:#e5e9ed;background:linear-gradient(#17212a,#0b131a);cursor:pointer}.character-tabs button[aria-selected=true]{border-color:#e9b458;color:#ffcf71;background:linear-gradient(#352b1a,#181b19);box-shadow:inset 0 0 0 2px #100e0a}.character-tabs button:focus-visible,.character-item:focus-visible,.character-talent-node:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.character-content{border:1px solid #4b5b65;background:radial-gradient(ellipse at 50% 30%,#15232a,#091217 68%);padding:24px;min-height:320px}.character-paperdoll{display:grid;grid-template-columns:130px minmax(260px,1fr) 130px;gap:36px;max-width:840px;min-height:490px;margin:auto}.character-armor-column{display:grid;align-content:start;gap:14px}.character-equipment-slot{display:grid;gap:5px;justify-items:center}.character-slot-name{font-size:.75rem;color:#b5c5cc;min-height:1.2em;text-align:center}.character-item,.character-slot-empty{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;width:92px;border:2px solid var(--rarity,#7e8a8e);background:radial-gradient(ellipse,#1c2930,#060c11 74%);box-shadow:inset 0 0 0 3px #050a0f,0 1px 9px #0008;padding:7px;overflow:hidden}.character-item{cursor:pointer}.character-item:hover{background:radial-gradient(ellipse,#344951,#0a161c);box-shadow:inset 0 0 0 3px #050a0f,0 0 18px color-mix(in srgb,var(--rarity,#859398) 35%,transparent)}.character-item[data-rarity='0'],.character-item-details[data-rarity='0'],.character-gem-detail[data-rarity='0'],.character-gem-mini[data-rarity='0']{--rarity:#bfc6ca}.character-item[data-rarity='1'],.character-item-details[data-rarity='1'],.character-gem-detail[data-rarity='1'],.character-gem-mini[data-rarity='1']{--rarity:#389ff4}.character-item[data-rarity='2'],.character-item-details[data-rarity='2'],.character-gem-detail[data-rarity='2'],.character-gem-mini[data-rarity='2']{--rarity:#b178ee}.character-item[data-rarity='3'],.character-item-details[data-rarity='3'],.character-gem-detail[data-rarity='3'],.character-gem-mini[data-rarity='3']{--rarity:#f5a650}.character-item[data-rarity='4'],.character-item-details[data-rarity='4'],.character-gem-detail[data-rarity='4'],.character-gem-mini[data-rarity='4']{--rarity:#f05a91}.character-item[data-rarity='5'],.character-item-details[data-rarity='5'],.character-gem-detail[data-rarity='5'],.character-gem-mini[data-rarity='5']{--rarity:#dbcb65}.character-item[data-rarity='6'],.character-item-details[data-rarity='6'],.character-gem-detail[data-rarity='6'],.character-gem-mini[data-rarity='6']{--rarity:#aaeb6e}.character-item-art{width:100%;height:100%;object-fit:contain;display:block}.character-slot-empty{color:#72828b;font-size:.8rem;border-color:#37434b}.character-portrait{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-width:0;border-left:1px solid #6b77752b;border-right:1px solid #6b77752b;background:radial-gradient(ellipse,#27828c1a,transparent 60%)}.character-class-art{width:100%;height:430px;max-width:410px;object-fit:contain;filter:drop-shadow(0 10px 20px #000)}.character-class-description{font-size:.85rem;color:#9baeb7;max-width:380px;text-align:center}.character-equipment-row{max-width:840px;margin:28px auto 0}.character-equipment-row h3{font-size:.9rem;font-weight:500;color:var(--cyan);letter-spacing:.08em;margin:0 0 12px}.character-six-slots{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.character-six-slots .character-item,.character-six-slots .character-slot-empty{width:100%;max-width:105px}.character-extra-slots{display:flex;gap:14px;flex-wrap:wrap;margin:25px}.character-slot-gems{position:absolute;bottom:4px;left:4px;right:4px;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;pointer-events:none;background:#02070baa}.character-gem-mini{height:15px;border:1px solid var(--rarity,#6d7980);background:#08151c}.character-gem-art{width:100%;height:100%;object-fit:contain}.character-item-quantity{position:absolute;top:3px;right:5px;background:#02070bcc;color:#fff;font-size:.85rem;padding:1px 4px;text-shadow:0 1px 3px #000}.character-item-tooltip{position:fixed;z-index:2000;left:16px;top:100px;width:min(370px,calc(100vw - 32px));max-height:70vh;overflow:hidden;pointer-events:none;background:#0b131af7;border:1px solid #a8bdc8;box-shadow:0 8px 38px #000a;font-size:.82rem}.character-item-dialog{padding:0;width:min(760px,calc(100vw - 32px));max-height:90vh;overflow:auto;border:1px solid #9caeb5;background:#0a131b;color:var(--ink);box-shadow:0 15px 80px #000c}.character-item-dialog::backdrop{background:#000b;backdrop-filter:blur(2px)}.character-dialog-close{position:sticky;float:right;top:8px;margin:8px;z-index:2;background:#1a2935;border:1px solid #6b818d;padding:8px 14px;color:#f1f5f6;cursor:pointer}.character-item-details{padding:24px;border-top:3px solid var(--rarity,#87969c)}.character-item-heading{display:flex;gap:20px;align-items:center;clear:both}.character-item-heading h2{font-size:1.3rem;color:var(--rarity,#dce6e9);line-height:1.3;margin:0 0 7px;overflow-wrap:anywhere}.character-popup-art{width:100px;height:100px;flex:none;object-fit:contain;background:radial-gradient(ellipse,#24313b,#080f17);border:1px solid var(--rarity,#70818b);padding:9px}.character-item-quality{font-size:.8rem;color:#bdcbd3;margin:4px 0}.character-item-location{color:var(--cyan);font-size:.8rem;margin:4px 0}.character-item-section{margin:22px 0 0}.character-item-section h3{font-size:.9rem;color:var(--cyan);margin:0 0 10px;font-weight:500;border-bottom:1px solid #3f535e;padding-bottom:8px}.character-item-section h4{font-size:.9rem;color:#eef3f6;margin:0 0 6px}.character-values{margin:0}.character-values>div{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:8px 0;border-bottom:1px solid #31414a77}.character-values dt{color:#b8c7cf;overflow-wrap:anywhere}.character-values dd{color:#eef6f8;text-align:right;margin:0;max-width:65%;overflow-wrap:anywhere;white-space:pre-wrap}.character-description{line-height:1.55;color:#bbcbd3;white-space:pre-wrap;overflow-wrap:anywhere}.character-gem-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.character-gem-detail{display:flex;gap:12px;border:1px solid var(--rarity,#627987);background:#13232d80;padding:12px;min-width:0}.character-gem-detail>.character-gem-art{width:48px;height:48px;flex:none}.character-gem-detail>div{min-width:0;flex:1}.character-gem-detail .character-values{font-size:.75rem}.character-tooltip-gems{display:flex;flex-wrap:wrap;gap:4px}.character-tooltip-gems .character-gem-mini{width:25px;height:25px}.character-item-tooltip .character-item-details{padding:16px}.character-item-tooltip .character-popup-art{width:64px;height:64px}.character-item-tooltip h2{font-size:1rem}.character-item-tooltip .character-values>div{padding:5px 0}.character-item-tooltip .character-item-section{margin-top:12px}.character-empty{color:var(--muted);line-height:1.6;padding:18px 0}.character-inventory-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.character-pagination{display:flex;gap:12px;align-items:center}.character-pagination button{font-size:1.4rem;color:var(--cyan);background:#182a34;border:1px solid #537483;cursor:pointer;width:36px;height:34px}.character-pagination button:disabled{opacity:.3;cursor:default}.character-inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:15px}.character-inventory-cell{display:grid;justify-items:center;align-content:start;gap:7px;min-width:0}.character-inventory-name{font-size:.68rem;line-height:1.3;color:#b5c5ce;text-align:center;max-width:110px;overflow-wrap:anywhere}.character-skill-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0 32px}.character-skill-card{position:relative;padding:20px;border:1px solid #526b77;background:#0b171f}.character-skill-card h3{font-size:1.1rem;color:#ffcf71;margin:0 0 8px}.character-skill-card p{font-size:.9rem;color:#b8cbd4;line-height:1.5}.character-skill-icon{width:64px;height:64px;object-fit:contain;float:right;margin:0 0 14px 14px}.character-rank{color:var(--cyan);font-size:.85rem}.character-specialization{color:#d9c99e}.character-tree-title{color:var(--cyan);font-size:1rem}.character-talent-tree{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.character-talent-area{background:#091217;border:1px solid #405761;padding:16px;overflow:auto}.character-talent-area h4{color:#b5d4de;text-align:center;margin:0 0 20px}.character-talent-graph{display:flex;gap:12px;justify-content:center}.character-talent-branch{display:flex;flex-direction:column;gap:14px;align-items:center;position:relative}.character-talent-branch:before{content:'';width:2px;top:15px;bottom:15px;position:absolute;background:#435c6a}.character-talent-node{position:relative;z-index:1;width:38px;height:38px;flex:none;border:1px solid #475864;background:#101d26;color:#94a6b0;cursor:pointer;border-radius:50%;opacity:.55}.character-talent-node[data-learned=true]{border-color:#e4b75b;background:#45321a;color:#ffe2a1;box-shadow:0 0 14px #dbad4940;opacity:1}.character-talent-icon{width:100%;height:100%;object-fit:contain}.character-talent-details{padding:24px}.character-talent-details h2{color:#ffcf71}.character-native-tree{position:relative;aspect-ratio:1;width:100%;min-width:580px;background:radial-gradient(ellipse,#22444a44,#070e16 62%);overflow:hidden}.character-tree-scroll{overflow:auto;border:1px solid #435e69;background:#070e16}.character-tree-lines{position:absolute;inset:0;width:100%;height:100%}.character-tree-native-node{position:absolute;transform:translate(-50%,-50%);width:clamp(20px,3vw,44px);height:clamp(20px,3vw,44px)}.character-tree-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:11%;height:11%;object-fit:contain;opacity:.9}.character-pet-summary{max-width:650px;margin-bottom:24px}.character-pet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px}.character-pet-card{padding:22px;border:1px solid #44616b;background:#0b1a20;text-align:center}.character-pet-card[data-owned=false]{opacity:.55}.character-pet-card h3{color:#f2cc7e}.character-pet-art{width:140px;height:130px;object-fit:contain}.character-pet-state{color:var(--cyan);font-size:.85rem}.character-pet-card .character-values{font-size:.85rem}.character-chronicle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:20px 0}.character-chronicle-card{display:flex;flex-direction:column;gap:14px;border:1px solid #3b5866;background:linear-gradient(130deg,#18303c,#0b1821);padding:20px}.character-chronicle-card span{color:#a9bec9;font-size:.85rem}.character-chronicle-card strong{color:#eccc8b;font-size:1.4rem;overflow-wrap:anywhere}.character-history-note{color:#baa989;font-size:.85rem}.character-completion{color:var(--cyan)}.character-enemy-table{border-collapse:collapse;width:100%;margin-top:28px}.character-enemy-table td,.character-enemy-table th{border-bottom:1px solid #344f5a;padding:11px 15px;text-align:left}.character-enemy-table td:last-child,.character-enemy-table th:last-child{text-align:right}.character-enemy-table th{color:#78d4db;background:#132c36}.character-stat-summary{margin:25px auto 0;max-width:840px;border-top:1px solid #506976;padding-top:16px}.character-stat-summary .character-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}
@media(max-width:850px){.character-header{padding:20px;gap:20px}.character-content{padding:18px}.character-paperdoll{grid-template-columns:100px minmax(120px,1fr) 100px;gap:16px;min-height:420px}.character-item,.character-slot-empty{width:78px}.character-class-art{height:370px}.character-talent-tree{grid-template-columns:repeat(2,minmax(0,1fr))}.character-gem-grid{grid-template-columns:1fr}.character-skill-cards{grid-template-columns:1fr}.character-six-slots{gap:8px}.character-slot-name{font-size:.65rem}}
@media(max-width:540px){.character-header{flex-direction:column;gap:14px}.character-meta{text-align:left}.character-account{justify-content:flex-start}.character-content{padding:12px}.character-paperdoll{grid-template-columns:72px minmax(90px,1fr) 72px;gap:8px;min-height:350px}.character-item,.character-slot-empty{width:64px;padding:4px}.character-class-art{height:300px}.character-armor-column{gap:10px}.character-class-description{font-size:.72rem}.character-six-slots{grid-template-columns:repeat(3,1fr);gap:16px}.character-talent-tree{grid-template-columns:1fr}.character-tabs button{min-width:120px;padding:12px;font-size:.85rem}.character-item-heading{gap:12px}.character-popup-art{width:75px;height:75px}.character-item-details{padding:16px}.character-values>div{gap:8px}.character-inventory-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:12px}.character-stat-summary .character-values{grid-template-columns:1fr}}

.character-view h2,.character-view h3,.character-view h4,.character-tabs button,.character-slot-name{font-family:NorthRunes,'Segoe UI',sans-serif;font-weight:400}.character-header,.character-content{position:relative;border:1px solid #75838a;box-shadow:inset 0 0 0 3px #060b10,inset 0 0 0 4px #33434c,0 2px 14px #0008}.character-header:before,.character-header:after,.character-content:before,.character-content:after{content:'';position:absolute;width:8px;height:8px;border:2px solid #9aa4aa;box-shadow:inset 0 0 0 1px #10171c;background:#0b1319;pointer-events:none}.character-header:before,.character-content:before{top:6px;left:6px}.character-header:after,.character-content:after{bottom:6px;right:6px}.character-tabs{gap:5px;margin:12px 0}.character-tabs button{min-height:42px;padding:9px 14px;font-size:1rem;letter-spacing:.04em}.character-item-tooltip{max-height:min(520px,70vh)}.character-item-tooltip .character-description{max-height:110px;overflow:hidden}.character-modifier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.character-modifier{display:flex;gap:12px;padding:12px;background:#182630;border:1px solid #4a6471;align-items:center}.character-modifier-art{width:48px;height:48px;object-fit:contain;flex:none}.character-modifier h4{margin:0;font-size:.85rem;color:#dfd0a6}.character-modifier-roll{margin:5px 0 0;font-size:.8rem;color:#9bb4c1}.character-item-rank,.character-socket-index{font-size:.8rem;color:#a4cbd4;margin:4px 0}.character-tree-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin:20px 0}.character-tree-legend>span{display:flex;gap:8px;align-items:center;font-size:.8rem;color:#adc5cf}.character-tree-legend-icon{width:26px;height:26px;object-fit:contain}.character-native-tree .character-talent-node{padding:2px;min-height:0;transition:opacity .15s,box-shadow .15s}.character-native-tree .character-talent-node:hover{opacity:1;z-index:3;box-shadow:0 0 14px #51c0df80}.character-item-tooltip .character-popup-art{max-width:64px}.character-item-dialog .character-description{font-size:.95rem;color:#d7e3e8}.character-item-dialog .character-item-section{font-size:.85rem}
@media(max-width:540px){.character-modifier-grid{grid-template-columns:1fr}}

.character-known-skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:15px 0 26px}.character-known-skill{border:1px solid #4c6069;padding:15px;text-align:center;background:#11212b}.character-known-skill[data-active=true]{border-color:#78d3de;background:#14313b}.character-known-skill-icon{width:58px;height:58px;object-fit:contain;margin:0 auto 10px}.character-known-skill h4{font-size:.95rem;color:#d9d1b7;margin-bottom:7px}.character-skill-active{font-size:.75rem;color:#73ebd0}.character-combat-perks>h3,.character-skill-loadout>h3{font-size:1rem;color:#b3d7df}.character-tree-native-node{width:2.2727%;height:2.2727%;font-size:.7rem;line-height:1}.character-tree-rune-node{width:3.6364%;height:3.6364%;border-radius:25%;padding:2px}.character-tree-anchor{position:absolute;transform:translate(-50%,-50%);width:2.5%;height:2.5%;border:1px solid #75939d;border-radius:50%;background:#162530;object-fit:contain;padding:3px}.character-tree-center{width:7.5%;height:7.5%}

.character-tree-controls{display:flex;justify-content:flex-end;gap:7px;margin:10px 0}.character-tree-controls button{font-size:.85rem;padding:4px 11px;min-height:32px;min-width:40px;border:1px solid #607b85;background:#122730;color:#bce5eb}.character-tree-scroll{max-height:75vh;overscroll-behavior:contain}.character-item-stamp{font-size:.7rem;color:#839da9;margin:25px 0 0;border-top:1px solid #34515c;padding-top:10px}

/* Original ingame pixel assets use nearest-neighbour scaling; equipment SVG
   viewports retain their existing full-resolution presentation. */
.character-skill-icon,.character-known-skill-icon,.character-talent-icon,.character-tree-legend-icon,.character-tree-anchor,.character-pet-art{image-rendering:pixelated}

.character-training-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
@media(max-width:850px){.character-training-paths{grid-template-columns:1fr}}
.character-combat-ranks{display:flex;gap:.3rem;margin:.7rem 0;flex-wrap:wrap}
.character-combat-rank{border:1px solid #49565b;padding:.25rem .4rem;color:#a1afb2;background:#101b20}
.character-combat-rank[data-learned="true"]{border-color:#69ddd2;color:#83f2e7;background:#163330}
.character-weapon-mastery{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.character-weapon-mastery>h3{grid-column:1/-1}

.character-talent-budget .character-values{display:flex;flex-wrap:wrap;gap:1rem 2rem}
.character-talent-budget .character-values>div{border-bottom:0;gap:.7rem}
.character-tree-jumps{display:flex;gap:6px;overflow-x:auto;padding:8px 0 14px}
.character-tree-jumps button{white-space:nowrap;flex-shrink:0;background:#111e24;color:#c4c9bf;border:1px solid #5c6260;padding:7px 12px;font-size:.8rem}
.character-unified-tree{position:relative;--tree-zoom:.7;background:radial-gradient(ellipse at 50% 6%,#16262b 0%,#0b1419 35%,#0b1419 100%)}
.character-unified-tree .character-tree-lines{position:absolute;inset:0;width:100%;height:100%}
.character-unified-tree .character-tree-unified-node{position:absolute;width:calc(52px * var(--tree-zoom));height:calc(52px * var(--tree-zoom));min-width:0;padding:3px;transform:translate(-50%,-50%);border:2px solid #465156;border-radius:50%;background:#0b161c;box-shadow:0 0 0 3px #19242b,0 0 0 4px #53514a}
.character-tree-unified-node[data-learned=true]{border-color:#dab875;box-shadow:0 0 0 3px #19242b,0 0 0 4px #a59466}
.character-tree-unified-node[data-unknown=true]{border-style:dashed}
.character-tree-unified-node[data-kind=classPath],.character-tree-unified-node[data-kind=hub]{width:calc(70px * var(--tree-zoom));height:calc(70px * var(--tree-zoom));border-radius:18%}
.character-tree-unified-node[data-kind=rune],.character-tree-unified-node[data-kind=weaponPath]{border-radius:18%;border-color:#9b82b3}
.character-tree-unified-node:hover,.character-tree-unified-node:focus-visible{outline:2px solid #7be5eb;outline-offset:5px;z-index:2}
.character-tree-unified-node .character-talent-icon{width:100%;height:100%;object-fit:contain;opacity:.9}
.character-tree-unified-node[data-learned=false] .character-talent-icon{opacity:.48}
.character-tree-rank{position:absolute;right:-8px;bottom:-7px;font-size:10px;background:#0b1419;color:#c5b991;padding:0 3px;border:1px solid #546168}
.character-tree-label{position:absolute;top:-31px;left:50%;transform:translateX(-50%);font-size:13px;white-space:nowrap;color:#d5c398}
.character-view .character-tree-scroll{height:650px;max-height:75vh;overflow:auto;border:1px solid #58696c;scrollbar-color:#657476 #0b1419}

/* Captions occupy the same reserved rectangle as the native presentation. */
.character-unified-tree .character-tree-label{top:calc(50% + 36px * var(--tree-zoom));width:calc(180px * var(--tree-zoom));height:calc(18px * var(--tree-zoom));font-size:calc(13px * var(--tree-zoom));line-height:1.2;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis}
.character-unified-tree .character-tree-rank{left:50%;top:calc(50% + 56px * var(--tree-zoom));right:auto;bottom:auto;transform:translateX(-50%);font-size:calc(11px * var(--tree-zoom));min-width:calc(35px * var(--tree-zoom));text-align:center}
.character-rank-navigation{display:flex;align-items:center;gap:12px;margin:16px 0}
.character-rank-navigation span{margin-right:auto;color:var(--cyan)}
.character-rank-navigation button{border:1px solid #61757c;background:#162832;color:#e4e9e7;font-size:1.3rem;padding:3px 13px}
.character-rank-navigation button:disabled{opacity:.35}
