/* Shared inventory presentation; load with inventory.js on any authorized view. */
:root { --inventory-line:rgba(250,247,234,0.15); --inventory-ink:#fffef4; --inventory-muted:#c0969e; }
.inventory-arrow:focus-visible,[data-inventory-tab]:focus-visible,.inventory-item:focus-visible,[data-inventory-panel]:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.inventory-icon { width:24px; height:24px; flex:none; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.inventory-carousel-header { min-height:47px; display:grid; grid-template-columns:25px minmax(0,1fr) 25px; gap:3px; align-items:center; margin-bottom:18px; }
.inventory-arrow { display:grid; place-items:center; width:25px; height:25px; padding:0; border:1px solid var(--inventory-line); border-radius:50%; background:#ffffff05; color:var(--inventory-muted); font-size:22px; cursor:pointer; }
.inventory-arrow:hover { color:var(--accent); border-color:var(--accent); }
.inventory-equipment-tabs { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:9px; }
.inventory-equipment-tabs button { padding:5px 0; border:0; background:none; color:#ac8289; font:700 9px/1.2 var(--font-display); text-transform:uppercase; cursor:pointer; }
.inventory-equipment-tabs button[aria-selected="true"] { color:var(--accent); font-size:16px; text-shadow:0 0 14px var(--accent-glow); }
.inventory-surface { position:relative; }
.inventory-layout-equipment { min-height:338px; width:min(100%,300px); margin:0 auto; padding:10px; border:1px solid #a79283; background:linear-gradient(90deg,rgba(9,6,7,0.91),#0d1729cc 50%,rgba(9,6,7,0.91)); box-shadow:inset 0 0 0 3px #181415,inset 0 0 0 4px #493f37,0 10px 30px #0004; }
.inventory-layout-equipment::before,.inventory-layout-equipment::after { content:""; position:absolute; top:13px; bottom:13px; width:13px; border:1px solid #50423a; background:repeating-linear-gradient(0deg,rgba(43,37,30,0.333) 0 2px,#090e1588 2px 11px); z-index:0; }
.inventory-layout-equipment::before { left:-7px; transform:skewY(4deg); }
.inventory-layout-equipment::after { right:-7px; transform:skewY(-4deg); }
.inventory-figure { position:absolute; inset:19px 43px 10px; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.inventory-figure img { height:285px; width:100%; object-fit:contain; opacity:.85; }
.inventory-figure > span { position:absolute; bottom:5px; color:#a6717b; font-size:9px; line-height:1.4; text-align:center; }
.inventory-slots { margin:0; padding:0; list-style:none; }
.inventory-layout-equipment .inventory-slots { position:relative; display:grid; grid-template-columns:32px 1fr 32px; grid-template-rows:repeat(7,32px); gap:12px 0; z-index:1; }
.inventory-position-left-1 { grid-area:1/1; }.inventory-position-left-2 { grid-area:2/1; }.inventory-position-left-3 { grid-area:3/1; }.inventory-position-left-4 { grid-area:4/1; }.inventory-position-left-5 { grid-area:5/1; }.inventory-position-left-6 { grid-area:6/1; }
.inventory-position-right-1 { grid-area:1/3; }.inventory-position-right-2 { grid-area:2/3; }.inventory-position-right-3 { grid-area:3/3; }.inventory-position-right-4 { grid-area:4/3; }.inventory-position-right-5 { grid-area:5/3; }.inventory-position-right-6 { grid-area:6/3; }
.inventory-position-left-7 { grid-area:7/1; }.inventory-position-right-7 { grid-area:7/3; }
.inventory-slot { position:relative; width:32px; height:32px; min-width:32px; justify-self:center; align-self:center; box-sizing:border-box; border:0; background:linear-gradient(140deg,#25151a,#0b0709); box-shadow:inset 0 0 0 2px #10100f,inset 0 0 0 3px #353027; }
.inventory-slot-placeholder,.inventory-item { display:flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:0; background:transparent; color:#989263; }
.inventory-slot-placeholder .inventory-icon { width:75%; height:75%; opacity:.58; }
.inventory-item { color:var(--accent); cursor:default; }
.inventory-item[aria-disabled="true"] { cursor:default; }
.inventory-item > img { display:block; width:32px; height:32px; max-width:none; object-fit:contain; }
.inventory-item-plus,.inventory-item-quantity { position:absolute; z-index:1; color:#ffd3cb; text-shadow:1px 1px 1px #000000,-1px -1px 1px #000000; font-size:10px; font-weight:800; }
.inventory-item-plus { bottom:2px; right:2px; }
.inventory-item-quantity { top:0; left:0; bottom:auto; right:auto; color:#ffffff; text-align:left; direction:ltr; }
.inventory-tooltip { position:absolute; z-index:30; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); max-width:calc(100vw - 16px); display:none; padding:0; border:0; background:transparent; color:#c5d0e0; box-shadow:none; font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.inventory-tooltip strong { color:#ffdc8b; }.inventory-tooltip > span { display:block; }
.inventory-slot:hover,.inventory-slot:focus-within { z-index:5; }
/* Visibility belongs exclusively to the single JS tooltip layer. Focus cannot reopen a restored tooltip. */
.inventory-slot[data-tooltip-dismissed="true"] .inventory-tooltip { display:none; }
.inventory-state-note { margin:13px 0 0; color:var(--inventory-muted); font-size:10px; line-height:1.6; text-align:center; }
.inventory-storage-header { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:20px; }
.inventory-storage-header h2 { margin:0; color:var(--inventory-ink); font:700 20px/1.2 var(--font-display); }
.inventory-storage-header > span { color:var(--inventory-muted); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.inventory-storage-tabs { display:flex; flex-wrap:wrap; gap:7px; padding-bottom:15px; border-bottom:1px solid var(--inventory-line); }
.inventory-storage-tabs button { min-height:38px; display:flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid var(--inventory-line); border-radius:4px; background:#ffffff03; color:var(--inventory-muted); font-size:11px; cursor:pointer; }
.inventory-storage-tabs .inventory-icon { width:17px; height:17px; }
.inventory-storage-tabs button[aria-selected="true"] { border-color:#ac7c60; color:#ffc2ba; background:rgba(242,92,69,0.078); }
.inventory-container-panel { padding-top:20px; }
.inventory-layout-grid .inventory-slots { display:grid; grid-template-columns:repeat(8,32px); gap:6px; width:max-content; max-width:100%; margin:0 auto; }
.inventory-layout-grid .inventory-slot { border-color:#422a31; }
.inventory-layout-grid .inventory-slot-placeholder { color:#9c5d69; }
.inventory-pet-selector { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:20px; color:var(--inventory-muted); font-size:11px; }
.inventory-pet-selector select { max-width:100%; min-height:36px; padding:7px 10px; border:1px solid var(--inventory-line); border-radius:4px; color:#ba9199; background:#1a1316; opacity:1; }

/* Original 415x446 inventory artwork: overlays keep the same coordinates at every size. */
.character-bag-composite { width:100%; max-width:415px; margin:0 auto; }
/* A local scrollbar preserves native 32px hit targets on narrow screens. */
.inventory-window-scroll { width:100%; max-width:415px; overflow:auto; scrollbar-width:thin; }
.inventory-skin { position:relative; width:415px; height:446px; direction:ltr; container-type:inline-size; }
.inventory-skin-art { display:block; width:100%; height:auto; }
/* Original uploads have opaque JPEG corner pixels. Clip only the outer corners,
   retaining the supplied frames and all native 32px slot coordinates. */
.inventory-skin { clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,0 calc(100% - 4px),0 8px); }
.inventory-vault-skin { clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 10px); }
.inventory-skin-title { position:absolute; z-index:3; left:28%; top:1.15%; width:44%; height:4.5%; display:grid; place-items:center; background:transparent; color:#faeee3; text-shadow:0 1px 2px #000000; font:400 clamp(9px,3cqi,13px)/1 Arial,sans-serif; text-align:center; }
.inventory-skin-page-tabs { position:absolute; z-index:5; left:7.23%; top:8.7%; width:37.35%; height:5.16%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px; }
.inventory-skin-page-tabs button { position:relative; min-width:0; width:100%; height:100%; padding:0; border:0; background:none; cursor:pointer; }
.inventory-skin-page-tabs button img { position:absolute; inset:0; width:100%; height:100%; }
.inventory-skin-page-tabs button span { position:relative; z-index:1; display:grid; place-items:center; width:100%; height:100%; color:#ffffff; text-shadow:0 1px 2px #000000; font:600 clamp(7px,2.3cqi,10px)/1 Arial,sans-serif; white-space:nowrap; }
.inventory-skin-page-tabs .bag-page-selected { display:none; }
.inventory-skin-page-tabs button[aria-selected="true"] .bag-page-selected,.inventory-skin-page-tabs button:hover .bag-page-selected { display:block; }
.inventory-skin-page-tabs button[aria-selected="true"] .bag-page-normal,.inventory-skin-page-tabs button:hover .bag-page-normal { display:none; }
.inventory-skin-bag-page { position:absolute; z-index:3; left:7.23%; top:16.37%; width:37.35%; height:65.92%; }
.inventory-skin-bag-slots { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(8,minmax(0,1fr)); width:100%; height:100%; padding:0; margin:0; list-style:none; }
.inventory-skin .inventory-slot { min-height:0; aspect-ratio:auto; border:0; background:none; box-shadow:none; }
.inventory-skin-bag-slots .inventory-item { padding:0; }
.inventory-skin .inventory-slot-placeholder .inventory-icon { opacity:0; }
.inventory-skin .inventory-slot-placeholder { padding:0; }
.inventory-skin-bag-page:hover,.inventory-skin-bag-page:focus-within { z-index:10; }
.inventory-skin-figure { position:absolute; z-index:1; left:215px; top:57px; width:183px; height:328px; pointer-events:none; }
.inventory-skin-figure img { display:block; width:100%; height:100%; object-fit:contain; transform:scaleX(.88); opacity:.7; }
.inventory-gear-foreground { position:absolute; z-index:2; inset:0; width:415px; height:446px; max-width:none; pointer-events:none; }
.inventory-gear-foreground-dress { inset:39px auto auto 210px; width:193px; height:394px; }
.inventory-skin-equipment { position:absolute; inset:0; z-index:3; margin:0; padding:0; list-style:none; pointer-events:none; }
.inventory-skin-equipment .inventory-slot { position:absolute; width:32px; height:32px; pointer-events:auto; grid-area:auto; justify-self:start; align-self:start; }
.inventory-skin-equipment .inventory-item { padding:0; }
.inventory-skin-equipment:hover,.inventory-skin-equipment:focus-within { z-index:11; }
/* Native 32px item rectangles, centered in the source artwork's unequal rows. */
.inventory-skin-equipment [data-inventory-slot="weapon"] { left:225px; top:52px; }
.inventory-skin-equipment [data-inventory-slot="shield"] { left:356px; top:52px; }
.inventory-skin-equipment [data-inventory-slot="head"] { left:217px; top:128px; }
.inventory-skin-equipment [data-inventory-slot="chest"] { left:217px; top:172px; }
.inventory-skin-equipment [data-inventory-slot="legs"] { left:217px; top:216px; }
.inventory-skin-equipment [data-inventory-slot="earring"] { left:217px; top:259px; }
.inventory-skin-equipment [data-inventory-slot="ring-left"] { left:217px; top:303px; }
.inventory-skin-equipment [data-inventory-slot="shoulder"] { left:364px; top:128px; }
.inventory-skin-equipment [data-inventory-slot="hands"] { left:364px; top:172px; }
.inventory-skin-equipment [data-inventory-slot="feet"] { left:364px; top:216px; }
.inventory-skin-equipment [data-inventory-slot="necklace"] { left:364px; top:259px; }
.inventory-skin-equipment [data-inventory-slot="ring-right"] { left:364px; top:303px; }
.inventory-skin-equipment [data-inventory-slot="job"] { left:364px; top:354px; }
.inventory-skin-currency { position:absolute; z-index:2; left:12.53%; width:26.5%; height:3.6%; padding:0 3px; display:flex; align-items:center; justify-content:flex-end; color:#f9edde; font:400 clamp(8px,2.65cqi,11px)/1 Arial,sans-serif; }
.inventory-skin-gold { top:85.2%; }.inventory-skin-silk { top:90.8%; }
/* The original gold shirt button switches only the equipped/Dress area. */
.inventory-skin-gear-view { position:absolute; inset:0; z-index:2; pointer-events:none; }
.inventory-skin-gear-view:hover,.inventory-skin-gear-view:focus-within { z-index:11; }
.inventory-skin-dress-mask { position:absolute; left:210px; top:39px; width:193px; height:394px; background:#020202; }
.inventory-skin-dress-art { position:absolute; left:210px; top:39px; width:193px; height:394px; overflow:hidden; }
.inventory-skin-dress-slots { position:absolute; inset:0; z-index:3; margin:0; padding:0; list-style:none; }
.inventory-skin-dress-slots .inventory-slot { position:absolute; width:32px; height:32px; grid-area:auto; justify-self:start; align-self:start; pointer-events:auto; }
.inventory-skin-dress-slots [data-inventory-slot="dress-left-1"] { left:217px; top:128px; }
.inventory-skin-dress-slots [data-inventory-slot="dress-left-2"] { left:217px; top:172px; }
.inventory-skin-dress-slots [data-inventory-slot="dress-left-3"] { left:217px; top:216px; }
.inventory-skin-dress-slots [data-inventory-slot="dress-right-1"] { left:364px; top:128px; }
.inventory-skin-dress-slots [data-inventory-slot="dress-right-2"] { left:364px; top:172px; }
.inventory-skin-dress-slots [data-inventory-slot="dress-job"] { left:364px; top:354px; }
.inventory-skin-figure-ready img { opacity:1; }
.inventory-skin-dress-toggle { position:absolute; z-index:5; left:51.8%; top:79.37%; width:9.15%; height:7.85%; padding:0; border:0; background:transparent; cursor:pointer; }
.inventory-skin-dress-toggle:hover,.inventory-skin-dress-toggle[aria-pressed="true"] { box-shadow:inset 0 0 10px rgba(255,176,162,0.6),0 0 5px rgba(255,172,156,0.467); }
.inventory-skin[data-inventory-gear-mode="dress"] .inventory-skin-dress-toggle { left:212px; top:350px; width:42px; height:40px; }
.inventory-skin-currency-long { font-size:clamp(5px,1.7cqi,7px); }
.inventory-item[data-inventory-pet-target] { cursor:pointer; }
.inventory-skin-dress-toggle:focus-visible,.inventory-vault button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
/* Shared 1233x1536 storage artwork: 6 columns, 5 rows, up to 7 pages. */
.inventory-vault { width:100%; max-width:415px; margin:0 auto; container-type:inline-size; }
.inventory-vault-skin { position:relative; width:415px; height:446px; direction:ltr; container-type:inline-size; }
.inventory-vault-art { display:block; width:415px; height:446px; max-width:none; }
.inventory-vault-title { position:absolute; z-index:3; left:8%; top:3.4%; width:78.5%; height:4.4%; margin:0; display:flex; align-items:center; justify-content:center; padding:0 4px; background:transparent; color:#fbefe4; text-shadow:0 1px 2px #000000; font:400 clamp(10px,4.7cqi,19px)/1.2 Arial,sans-serif; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.inventory-vault-close { position:absolute; z-index:5; left:89.5%; top:2.3%; width:6.65%; height:5%; border:0; padding:0; background:transparent; cursor:pointer; }
.inventory-vault-close:hover { box-shadow:inset 0 0 12px rgba(255,217,211,0.4); }
.inventory-vault-heading { position:absolute; z-index:3; left:4.8%; top:12.7%; width:89.6%; height:5.1%; display:grid; place-items:center; color:#fcf8ec; background:transparent; text-shadow:0 1px 2px #000000; font:400 clamp(10px,4.2cqi,17px)/1 Arial,sans-serif; }
.inventory-vault-page { position:absolute; z-index:3; left:7.05%; top:21.6%; width:85.9%; height:56.9%; }
.inventory-vault-page:hover,.inventory-vault-page:focus-within { z-index:10; }
.inventory-vault-slots { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); grid-template-rows:repeat(5,minmax(0,1fr)); width:100%; height:100%; padding:0; margin:0; list-style:none; }
.inventory-vault-slots .inventory-slot { aspect-ratio:auto; min-height:0; border:0; background:none; box-shadow:none; }
.inventory-vault-slots .inventory-item { padding:0; }
.inventory-vault-slots .inventory-item > img[data-inventory-icon],
.inventory-vault-slots .inventory-item > img.inventory-item-unusable { width:40px; height:40px; inset:-4px; }
.inventory-vault-slots .inventory-slot-placeholder .inventory-icon { opacity:0; }
.inventory-vault-pagination { position:absolute; z-index:4; left:40.3%; top:80.4%; width:19.3%; height:4.8%; display:grid; grid-template-columns:30% 40% 30%; align-items:stretch; }
.inventory-vault-pagination button { min-width:0; padding:0; border:0; background:transparent; cursor:pointer; }
.inventory-vault-pagination button:hover:not(:disabled) { box-shadow:inset 0 0 10px rgba(255,217,211,0.4); }
.inventory-vault-pagination button:disabled { background:#111a; cursor:default; }
.inventory-vault-pagination output { margin:0 1px; display:grid; place-items:center; color:#fdf0e6; background:#030303; font:400 clamp(8px,2.8cqi,12px)/1 Arial,sans-serif; white-space:nowrap; }
.inventory-vault-gold-label,.inventory-vault-gold-unit { position:absolute; z-index:2; top:91.6%; height:4%; display:flex; align-items:center; justify-content:center; color:#fbf0e4; background:#26231c; font:400 clamp(8px,3.6cqi,15px)/1 Arial,sans-serif; }
.inventory-vault-gold-label { left:3.5%; width:26.7%; }
.inventory-vault-gold-unit { left:83.6%; width:11.2%; }
.inventory-vault-gold { position:absolute; z-index:3; left:39.6%; top:91.3%; width:40.3%; height:4%; padding:0 3px; display:flex; align-items:center; justify-content:flex-end; color:#fbf0e4; background:#020201; font:400 clamp(8px,2.8cqi,12px)/1 Arial,sans-serif; }
.inventory-vault-gold-long { font-size:9px; letter-spacing:0; white-space:nowrap; }
/* Keep the original 446px coordinate plane; crop the baked-in Gold footer for pets. */
.inventory-vault-no-gold .inventory-window-scroll { height:399px; overflow-y:hidden; }
.inventory-vault-pet-footer { position:absolute; z-index:5; left:0; top:390px; width:415px; height:9px; pointer-events:none; }
.inventory-pet-dialog { width:min(415px,calc(100vw - 24px)); max-width:none; max-height:calc(100dvh - 24px); padding:0; border:0; background:#0b0809; color:#fffef4; overflow:auto; box-shadow:0 24px 80px #000b; }
.inventory-pet-dialog::backdrop { background:#020610bf; }
.inventory-pet-dialog .inventory-state-note { margin:0; padding:9px 12px; }

/* Header lettering is HTML on transparent surfaces. Cropped source texture covers printed captions. */
.inventory-skin-title-art,.inventory-vault-title-art,.inventory-vault-heading-art { position:absolute; z-index:2; display:block; overflow:hidden; pointer-events:none; }
.inventory-skin-title-art { left:40%; top:1.8%; width:20%; height:4.5%; }
.inventory-vault-title-art { left:17%; top:3.3%; width:67%; height:4.8%; }
.inventory-vault-heading-art { left:4.8%; top:12.7%; width:89.6%; height:5.1%; }

/* Tooltip panels are moved to a viewport layer while open, outside clipped inventory windows. */
.inventory-item { position:relative; isolation:isolate; }
.inventory-item > img[data-inventory-icon] { position:absolute; inset:0; z-index:1; }
.inventory-vault-slots .inventory-item > img[data-inventory-icon] { inset:-4px; }
.inventory-item > img[hidden],.inventory-tooltip img[hidden] { display:none; }
.inventory-item > img.inventory-item-unusable { position:absolute; inset:0; z-index:3; width:32px; height:32px; pointer-events:none; }
.inventory-item-plus,.inventory-item-quantity { z-index:4; pointer-events:none; }
.inventory-tooltip { width:max-content; font-family:Tahoma,Arial,sans-serif; font-size:11px; line-height:1.4; text-align:left; }
.inventory-tooltip-floating { position:fixed; z-index:2147483000; display:block; bottom:auto; transform:none; margin:0; max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); overflow:auto; overscroll-behavior:contain; pointer-events:auto; }
/* A real image works under our strict CSP; the inner surface also covers long, scrolling tooltips. */
.inventory-tooltip-surface { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr); padding:12px 10px 12px 12px; box-sizing:border-box; min-height:100%; }
.inventory-tooltip-background { position:absolute; z-index:0; inset:0; display:block; width:100%; height:100%; max-width:none; object-fit:fill; pointer-events:none; }
.inventory-tooltip-heading,.inventory-tooltip-group { position:relative; z-index:1; }
.inventory-tooltip-heading { display:flex; align-items:center; gap:10px; margin-bottom:5px; }
.inventory-tooltip-heading > .inventory-tooltip-sign { width:12px; height:12px; flex:none; }
.inventory-tooltip-heading > strong { font-size:13px; line-height:1.4; }
.inventory-tooltip .item-tone-normal { color:#fff; }
.inventory-tooltip .item-tone-muted { color:#efdaa4; }
.inventory-tooltip .item-tone-seal { color:#ffd700; }
.inventory-tooltip .item-tone-magic { color:#00EAFF; }
.inventory-tooltip .item-tone-egy { color:#6ce675; }
.inventory-tooltip .item-tone-warning { color:#ff717b; }
.inventory-tooltip .item-tone-advanced { color:#fff; margin-top:7px; }
.inventory-tooltip { gap:0; }
.inventory-tooltip-heading { margin-bottom:12px; }
.inventory-tooltip-heading > strong { font-weight:400; text-shadow:none; white-space:pre-wrap; }
.inventory-tooltip-group + .inventory-tooltip-group { margin-top:12px; }
.inventory-tooltip-group[data-tooltip-section="description"] + .inventory-tooltip-group[data-tooltip-section="statistics"] { margin-top:0; }
.inventory-tooltip-line { display:block; white-space:pre-wrap; overflow-wrap:anywhere; }
.inventory-tooltip-bound { position:relative; z-index:1; margin:1em 0; color:#ff5b63; text-shadow:none; }
.inventory-tooltip-line-space { margin-bottom:1em; }
.inventory-tooltip .item-text-10 { font-size:10px; }
.inventory-tooltip .item-text-11 { font-size:11px; }
.inventory-tooltip .item-text-12 { font-size:12px; }
.inventory-tooltip .item-text-13 { font-size:13px; }
.inventory-tooltip .item-text-glow { text-shadow:0 0 5px currentColor; }

/* Native 32px bounds: icon (1), SOX (2), unusable overlay (3), count/plus (4). */
.inventory-sox-effect { position:absolute; inset:0; z-index:4; overflow:hidden; pointer-events:none; }
.inventory-sox-star { position:absolute; left:0; top:0; display:block; width:6px; height:6px; background:#ffffff; clip-path:polygon(50% 0,64% 36%,100% 50%,64% 64%,50% 100%,36% 64%,0 50%,36% 36%); opacity:0; pointer-events:none; will-change:transform,opacity; animation:inventory-sox-orbit 2.8s linear infinite; }
.inventory-sox-star-1 { width:5px; height:5px; animation-delay:.168s; }
.inventory-sox-star-2 { width:4px; height:4px; animation-delay:.336s; }
.inventory-sox-star-3 { width:3px; height:3px; animation-delay:.504s; }
.inventory-sox-star-4 { width:2px; height:2px; animation-delay:.672s; }
/* V80: transform keyframes replace CSS motion-path so the SOX stars also animate on mobile browsers. */
@keyframes inventory-sox-orbit {
  0%   { transform:translate3d(13px,2px,0) scale(.72); opacity:0; }
  4%   { transform:translate3d(16px,1px,0) scale(1); opacity:1; }
  18%  { transform:translate3d(23px,4px,0) scale(.9); opacity:1; }
  34%  { transform:translate3d(26px,12px,0) scale(1); opacity:1; }
  50%  { transform:translate3d(22px,21px,0) scale(.86); opacity:1; }
  66%  { transform:translate3d(12px,25px,0) scale(1); opacity:1; }
  78%  { transform:translate3d(4px,21px,0) scale(.86); opacity:1; }
  90%  { transform:translate3d(2px,10px,0) scale(1); opacity:.8; }
  100% { transform:translate3d(13px,2px,0) scale(.72); opacity:0; }
}
@media (prefers-reduced-motion:reduce) { .inventory-sox-star { animation:none; display:none; } }

/* V69: account privacy and an expired gather pet overlay. */
.inventory-tooltip .inventory-tooltip-private{position:relative;z-index:1;color:#ff8993;font-size:13px;font-weight:700;line-height:1.55;margin:8px 0 12px;text-shadow:none}
.inventory-pet-expiry-overlay{display:none;position:absolute;inset:0;z-index:5;background:rgba(232,212,149,0.4);pointer-events:none}
.inventory-pet-expired .inventory-pet-expiry-overlay{display:block}
.inventory-pet-expired img[data-inventory-icon]{filter:saturate(.32)}
.inventory-item:not(.inventory-pet-expired) .inventory-pet-expiry-label{display:none}
.inventory-vault-slots .inventory-pet-expiry-overlay{inset:-4px}

/* Awaken expiry is visual only; item tooltips and authorized actions stay usable. */
.inventory-item.inventory-awaken-expired{filter:grayscale(.8) brightness(.64)}
.inventory-awaken-expired .inventory-sox-effect{display:none}
.inventory-item:not(.inventory-awaken-expired) .inventory-awaken-expiry-label{display:none}
