.visual-loadout{border:1px solid #505b4a;background:#161e1a;overflow:hidden;--silhouette-cut:#18201c}
.visual-heading{padding:15px 24px;border-bottom:1px solid #3c493d;display:flex;align-items:center;gap:16px;background:#1e2922}
.visual-heading .eyebrow{margin:0;font-size:9px;letter-spacing:.16em;color:#c4c9b4}
.visual-heading h2{font-size:11px;font-weight:500;margin:0;color:#aab9a8}
.visual-heading>span{margin-left:auto;display:flex;align-items:center;gap:8px;font:9px var(--mono);letter-spacing:.1em;color:var(--gold)}
.visual-heading>span:before{content:"";width:5px;height:5px;background:var(--gold)}
.visual-weapons{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}
.visual-weapon{position:relative;min-width:0;padding:22px 29px 21px;background:radial-gradient(ellipse at 55% 60%,#6b79651c,transparent 70%),repeating-linear-gradient(90deg,transparent 0 59px,#66857209 59px 60px)}
.visual-weapon+.visual-weapon{border-left:1px solid #3c493d;background-color:#121a16;--silhouette-cut:#131b17}
.visual-slot-head{display:flex;justify-content:space-between;align-items:center;color:#8fa18e;font:10px var(--mono);letter-spacing:.1em}
.visual-slot-head b{font:12px var(--sans);color:#c2c9b7;letter-spacing:.05em;margin-left:12px;font-weight:500}
.visual-slot-head button{background:none;border:1px solid #495b46;color:#c3cfb7;font-size:10px;padding:5px 13px}
.visual-weapon-art{height:180px;display:flex;align-items:center;justify-content:center;color:#e0e3cc;filter:drop-shadow(0 12px 8px #0004)}
.visual-weapon-art svg{width:100%;height:100%;max-width:620px;overflow:visible}
.visual-weapon.secondary .visual-weapon-art svg{max-width:440px}
.visual-weapon-name{display:flex;align-items:baseline;gap:16px;justify-content:space-between}
.visual-weapon-name h3{font-size:23px;line-height:1.3;margin:0;font-weight:500;letter-spacing:.02em;overflow-wrap:anywhere}
.visual-weapon-name span{font:9px var(--mono);color:#8c9e89;letter-spacing:.09em;white-space:nowrap}
.visual-weapon.secondary h3{font-size:16px}
.visual-attachments-row{display:flex;gap:18px;align-items:center;border-top:1px solid #3c493d;border-bottom:1px solid #3c493d;padding:12px 24px;background:#131c17}
.visual-attachments-row>span{font:9px var(--mono);color:#899c87;flex-shrink:0;letter-spacing:.07em}
#visual-attachments{display:flex;flex-wrap:wrap;gap:7px}
.attachment-token{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#d1d7be;border:1px solid #55604a;background:#263025;padding:5px 10px 5px 6px;min-height:34px}
.token-art{width:30px;height:20px;display:flex;align-items:center;justify-content:center;color:#d5d8bd}
.token-art svg{width:48px;height:25px;max-width:none}
.attachment-empty{font-size:11px;color:#99a891}
.visual-gear{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#1c271f}
.visual-gear-slot{display:flex;align-items:center;gap:12px;min-width:0;text-align:left;background:transparent;padding:13px 22px;color:#cbd1ba}
.visual-gear-slot+.visual-gear-slot{border-left:1px solid #3e4b39}
.gear-slot-art{width:64px;height:49px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.gear-slot-art svg{width:103px;height:51px;max-width:none}
.visual-gear-slot small{display:block;font-size:9px;color:#8fa18a;margin-bottom:2px}
.visual-gear-slot strong{display:block;font-size:11px;font-weight:500;overflow-wrap:anywhere}
.slot-edit{margin-left:auto;color:#819376;font-size:12px;flex-shrink:0}
.visual-caption{margin:0;padding:9px 24px;background:#121914;font-size:9px;color:#8e9b89;border-top:1px solid #344332}
.weapon-silhouette{color:inherit}.silhouette-cut{fill:var(--silhouette-cut,#19201b)}
.equipment-art{color:#a7b29f}.equipment-card{--silhouette-cut:#1c241d}
.equipment-card.selected{--silhouette-cut:#2a3324}.equipment-card.selected .equipment-art{color:#e5dcab}
.equipment-card:hover .equipment-art{color:#e1e5d2}
.equipment-art .weapon-silhouette{height:100%;width:100%;max-width:none}
.equipment-art svg:not(.weapon-silhouette) [fill]:not([fill="none"]),.token-art svg [fill]:not([fill="none"]),.gear-slot-art svg [fill]:not([fill="none"]){fill:currentColor}
.equipment-art svg:not(.weapon-silhouette) [stroke]:not([stroke="none"]),.token-art svg [stroke]:not([stroke="none"]),.gear-slot-art svg [stroke]:not([stroke="none"]){stroke:currentColor}
.equipped-preview{color:#dce0c9;--silhouette-cut:#20291c}.equipped-preview .weapon-silhouette{width:100%;height:105px}
.custom-silhouette{font:22px var(--mono);letter-spacing:.24em;color:#758b76;display:grid;place-content:center;min-height:90px;text-align:center}
.custom-silhouette small{font:10px var(--sans);letter-spacing:.02em;margin-top:10px;color:#99aa92}
@media(max-width:970px){.visual-weapon{padding:18px 23px}.visual-weapon-art{height:150px}.visual-weapon-name{display:block}.visual-weapon-name h3{font-size:21px;margin-bottom:5px}.visual-weapon.secondary h3{font-size:15px}.visual-gear-slot{padding:12px 14px;gap:5px}.gear-slot-art{width:48px}.gear-slot-art svg{width:85px}.visual-gear-slot strong{font-size:10px}}
@media(max-width:740px){.visual-heading{padding:12px 16px;gap:8px}.visual-heading .eyebrow{font-size:8px;letter-spacing:.08em}.visual-heading h2{font-size:9px}.visual-heading>span{font-size:8px}.visual-weapons{grid-template-columns:1fr}.visual-weapon{padding:16px 18px}.visual-weapon-art{height:130px}.visual-weapon+.visual-weapon{border-left:0;border-top:1px solid #3c493d}.visual-weapon.secondary .visual-weapon-art{height:88px}.visual-weapon.secondary .visual-weapon-art svg{max-width:245px}.visual-slot-head{font-size:9px}.visual-slot-head b{font-size:10px}.visual-weapon-name{display:flex;align-items:center;gap:10px}.visual-weapon-name h3{font-size:20px}.visual-weapon.secondary h3{font-size:13px;max-width:80%}.visual-weapon-name span{font-size:8px}.visual-attachments-row{display:block;padding:11px 16px}.visual-attachments-row>span{display:block;font-size:8px;margin-bottom:8px}.attachment-token{font-size:9px;padding-right:7px;min-height:30px}.token-art{width:25px}.token-art svg{width:40px}.visual-gear{grid-template-columns:1fr}.visual-gear-slot{padding:8px 15px;gap:16px}.visual-gear-slot+.visual-gear-slot{border-left:0;border-top:1px solid #33452f}.gear-slot-art{height:36px}.gear-slot-art svg{height:40px}.visual-gear-slot strong{font-size:11px}.visual-gear-slot small{font-size:8px}.visual-caption{padding:9px 15px;font-size:8px;line-height:1.7}.equipment-art .weapon-silhouette{height:75px}.compact .equipment-art .weapon-silhouette{height:56px}}
.equipment-art svg:not(.weapon-silhouette),.token-art svg,.gear-slot-art svg{fill:currentColor}.visual-weapon-art svg:not(.weapon-silhouette){fill:currentColor}

.visual-reference{margin:7px 0 0;color:#92a38e;font-size:10px;line-height:1.5;min-height:15px;overflow-wrap:anywhere}
.equipment-art .reference-silhouette{width:100%;height:100%;max-width:none}
.token-art .reference-silhouette{width:100%;height:100%;max-width:100%}
.gear-slot-art .reference-silhouette{width:100%;height:100%;max-width:100%}
.card-reference{display:block;margin-top:8px;padding-top:7px;border-top:1px solid #84917826;color:#98a38d;font-size:9px;line-height:1.55;overflow-wrap:anywhere}
.equipment-card.selected .card-reference{color:#bbbfa4}
.source-notes{margin-top:28px;border-top:1px solid #3e4b39;padding-top:14px;color:#98a38d;font-size:11px;line-height:1.8;overflow-wrap:anywhere}
.source-notes summary{cursor:pointer;color:#b7c0aa}.source-notes a{text-underline-offset:3px}.source-notes li{margin-bottom:6px}
.filter-chip small{margin-left:6px;opacity:.65;font-size:10px;font-variant-numeric:tabular-nums}
.catalog-more{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;padding:24px 0;color:#a6b298;font-size:12px}
.armory-counts{margin:-8px 0 22px;font-size:12px;letter-spacing:.06em;color:#b6c59b;font-variant-numeric:tabular-nums}
.load-more{padding:12px 24px;border:1px solid #657453;background:#263020;border-radius:4px;color:#e1e7d8;cursor:pointer;font:inherit}
.load-more:hover{background:#34422c}.load-more:focus-visible{outline:2px solid #d3b785;outline-offset:4px}
@media(max-width:740px){.visual-reference{font-size:9px}}
.equipment-card p:empty { display: none; }
