/* Cinematic Arsenal, scoped to the V3 hero profile's abilities section. */
.at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] {
  inset: 0; max-width: none; padding: 0 clamp(16px, 3vw, 88px);
  border: 0; background: #061222; box-shadow: none; isolation: isolate;
  --arsenal-gold: #edcf8e; --arsenal-accent: #9bdfff;
  --arsenal-text: Montserrat, 'Segoe UI', sans-serif;
}
.sanctuary #sanctuary-drawer[data-category="abilities"]::before,
.sanctuary #sanctuary-drawer[data-category="abilities"]::after { display: none; }
.arsenal-scene { display: none; position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
[data-category="abilities"]>.arsenal-scene { display: block; }
.arsenal-landscape { width: 100%; height: 100%; object-fit: cover; opacity: .48; filter: saturate(1.2); }
.arsenal-scene-veil {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, #031020f5, #07162acc 43%, #07152b55 72%, #04102330),
    linear-gradient(0deg, #061224e8, transparent 65%);
}
/* A living slice of the hero's splash illustration decorates the right edge. */
.arsenal-banner {
  position: absolute; z-index: 2; inset: 0 -4% 0 auto; width: 43%;
  overflow: hidden; isolation: isolate;
  clip-path: polygon(17% 0, 100% 0, 100% 100%, 0 100%);
  mask-image: linear-gradient(90deg, transparent, #000 30%);
}
.sanctuary .arsenal-banner-art {
  width: 100%; height: 100%; object-fit: cover; object-position: 62% 35%;
  transform-origin: 65% 40%; will-change: transform;
  animation: arsenal-banner-drift 22s ease-in-out infinite alternate !important;
}
.arsenal-banner::before {
  content: ''; position: absolute; z-index: 2; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, #061222b0, transparent 64%),
    linear-gradient(0deg, #041021d9, transparent 38%, transparent 75%, #06122266);
  box-shadow: inset 1px 0 #f2dba466;
}
.sanctuary .arsenal-banner::after {
  content: ''; position: absolute; z-index: 3; inset: -20% -60%; pointer-events: none;
  background: linear-gradient(115deg, transparent 38%, #d7eeff08 45%, #fff2cd36 50%, #b4dfff0d 55%, transparent 62%);
  mix-blend-mode: screen;
  animation: arsenal-banner-gleam 13s ease-in-out infinite !important;
}
.sanctuary .arsenal-banner-aura {
  position: absolute; z-index: 1; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 65% 30%, #8bbdff35, transparent 60%),
    radial-gradient(ellipse at 40% 70%, color-mix(in srgb, var(--hero-accent, #d8bc83) 24%, transparent), transparent 60%);
  mix-blend-mode: screen;
  animation: arsenal-banner-breathe 7s ease-in-out infinite alternate !important;
}
.arsenal-banner-motes { position: absolute; z-index: 4; inset: 0; overflow: hidden; pointer-events: none; }
.sanctuary .arsenal-banner-motes i {
  position: absolute; left: calc(24% + var(--mote) * 12%); bottom: -5%;
  width: 3px; height: 3px; border-radius: 50%; background: #ffe8b4;
  box-shadow: 0 0 12px #f5d79d, 0 0 22px #b7d8ff66; opacity: 0;
  animation: arsenal-banner-mote calc(12s + var(--mote) * 2s) linear infinite !important;
  animation-delay: calc(var(--mote) * -3s) !important;
}
@keyframes arsenal-banner-drift {
  from { transform: scale(1.05) translate3d(-1%, 0, 0); }
  to { transform: scale(1.13) translate3d(1%, -1.5%, 0); }
}
@keyframes arsenal-banner-gleam {
  0%, 15% { transform: translateX(-48%); opacity: 0; }
  35% { opacity: .65; }
  65%, 100% { transform: translateX(48%); opacity: 0; }
}
@keyframes arsenal-banner-breathe { from { opacity: .3; } to { opacity: .85; } }
@keyframes arsenal-banner-mote {
  0% { transform: translate3d(0, 0, 0); opacity: 0; }
  20%, 70% { opacity: .7; }
  100% { transform: translate3d(-28px, -70vh, 0); opacity: 0; }
}
.sanctuary.sanctuary-motion-paused .arsenal-banner *,
.sanctuary.sanctuary-motion-paused .arsenal-banner::after { animation-play-state: paused !important; }
.sanctuary #sanctuary-drawer[data-category="abilities"] .sanctuary-modal-top {
  min-height: clamp(64px, 7dvh, 88px); border-bottom-color: #edcf8e38;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] .sanctuary-modal-identity span { display: none; }
.sanctuary #sanctuary-drawer[data-category="abilities"] .sanctuary-modal-identity strong {
  color: #f5e3b6; font-size: clamp(20px, 1.6vw, 40px); letter-spacing: .035em;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content {
  padding: clamp(18px, 1.7vw, 40px) 2px 44px;
  scrollbar-width: none;
  scrollbar-gutter: auto;
  -ms-overflow-style: none;
  font-family: var(--arsenal-text);
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content::-webkit-scrollbar {
  display: none; width: 0; height: 0;
}
/* Montserrat descriptions, with engraved Cinzel labels and controls. */
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content :is(
  .ability-desc, .ability-description-summary, .ability-progression-copy,
  .ability-progression-name, .ability-patch-detail, .ability-patch-detail small,
  .ability-fx-copy, .ability-fx-value, .ability-fx-label,
  .arsenal-play-status, .arsenal-hero-title, .arsenal-cast-tile span
) {
  font-family: var(--arsenal-text);
  font-weight: 500;
  letter-spacing: .01em;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content :is(
  button, .arsenal-eyebrow, .ability-kind, .ability-progression-label,
  .ability-fx-header, .ability-act-gauge-label, .ability-mana-tag,
  .arsenal-cast-heading, .arsenal-hero-tags
) {
  font-family: var(--at-serif);
  letter-spacing: .035em;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav small {
  font-family: var(--at-serif);
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-root {
  position: relative; min-height: 100%; color: #e4edf7;
  --arsenal-accent: #9bdfff;
}
.arsenal-hero, .arsenal-workspace { width: 77%; max-width: 1800px; }
.arsenal-hero { display: flex; align-items: center; gap: clamp(18px, 1.6vw, 40px); margin-bottom: clamp(20px, 1.3vw, 30px); }
.arsenal-avatar {
  position: relative; width: clamp(80px, 5vw, 120px); aspect-ratio: 1; flex-shrink: 0;
  padding: 7px; border: 1px solid #e9ce92; border-radius: 50%;
  background: radial-gradient(circle, #53659466, #071320 72%);
  box-shadow: 0 0 0 5px #edcf8e0b, 0 0 36px #b7cafa20;
}
.arsenal-avatar::after { content: '◆'; position: absolute; left: calc(50% - 7px); bottom: -13px; color: #edcf8e; font-size: 18px; }
.arsenal-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 1px solid #c6a76d88; }
.arsenal-hero-copy { flex: 1; min-width: 0; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-eyebrow {
  display: block; font-size: var(--san-label); font-weight: 600; letter-spacing: .13em; color: #b9cce0;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-hero h2 {
  font: clamp(30px, 2.2vw, 60px)/1.1 var(--at-serif); color: #f3ddb1; margin: 8px 0 10px;
}
.arsenal-hero-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: #99d9f6; font-size: var(--san-body); }
.arsenal-hero-tags i { font-size: 8px; font-style: normal; color: #edcf8e; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-hero-title {
  font: italic var(--san-body)/1.5 Georgia, serif; color: #d0d9e6; margin: 8px 0 0;
}
.arsenal-chapter { border-left: 1px solid #edcf8e55; padding: 18px 24px; display: grid; gap: 7px; color: #edcf8e; }
.arsenal-chapter span { font-size: var(--san-label); letter-spacing: .13em; }
.arsenal-chapter b { font: 26px var(--at-serif); opacity: .8; }

/* A shared gilded rail, with the selected ability illuminated from its icon. */
.at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav {
  display: grid; grid-template-columns: repeat(var(--arsenal-ability-count, 5), minmax(0, 1fr));
  width: 77%; max-width: 1800px; margin-bottom: clamp(22px, 1.4vw, 34px);
  gap: 0; padding: 0; overflow: visible;
  border: 1px solid #d7bd7c88; background: linear-gradient(110deg, #0a1c32ed, #06172bea);
  box-shadow: inset 0 1px #f9e6b624, 0 15px 38px #0004;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav button {
  position: relative; display: flex; flex-direction: column; align-items: center;
  text-align: center; justify-content: flex-start; gap: 8px;
  padding: clamp(12px, .8vw, 20px) 10px; min-width: 0;
  border: 0; border-right: 1px solid #d9c48d28; background: transparent;
  border-radius: 0; color: #cedae7;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav button:last-child { border-right: 0; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav button[aria-selected="true"] {
  z-index: 1; background: radial-gradient(ellipse at 50% 20%, #b1a0f72e, transparent 78%), linear-gradient(0deg, #d8b96c1a, transparent);
  box-shadow: inset 0 0 0 2px #edcf8e, 0 0 24px #f2cf7350;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav button[aria-selected="true"]::after {
  content: ''; position: absolute; bottom: -7px; left: calc(50% - 6px);
  width: 12px; height: 12px; transform: rotate(45deg); background: #f4db9d; box-shadow: 0 0 15px #ffe4a7;
}
.arsenal-nav-orb { display: grid; place-items: center; border: 1px solid #d0b77999; border-radius: 50%; padding: 4px; background: #061125; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav img {
  width: clamp(52px, 3vw, 76px); height: clamp(52px, 3vw, 76px);
  border: 1px solid #a6c0ee77; border-radius: 50%; opacity: 1;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav small {
  font-size: var(--san-label); letter-spacing: .08em; color: #e8d29e;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav strong {
  display: none;
}

.arsenal-workspace { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(18px, 1.5vw, 36px); align-items: start; }
.arsenal-description, .arsenal-preview { min-width: 0; }
.at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities { gap: 0; }
.at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-box {
  display: block; width: 100%; min-height: 0; padding: clamp(18px, 1.5vw, 36px);
  border: 1px solid #cfb67a9c; border-radius: 2px;
  background: linear-gradient(145deg, #122a45e8, #061426f5 65%);
  box-shadow: inset 0 0 0 5px #040d1b66, inset 0 0 0 6px #ddc89418, 0 24px 56px #0005;
  overflow: visible;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-info { padding: 0; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-info-head {
  display: flex; flex-wrap: nowrap; align-items: center; gap: clamp(14px, 1vw, 28px);
  padding: 0 0 22px; margin-bottom: 0; border: 0;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-title-block { min-width: 0; flex: 1; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities h3 {
  font-size: clamp(24px, 1.55vw, 42px); line-height: 1.25; color: #fff0ce; margin-top: 8px;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-kind { color: #94dcef; letter-spacing: .08em; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-icon-wrapper {
  flex: 0 0 clamp(70px, 5vw, 112px); width: clamp(70px, 5vw, 112px); height: auto; min-height: 0;
  padding: 5px; border: 1px solid #ebcf8ea0; border-radius: 50%; background: #09172e;
  box-shadow: 0 0 24px color-mix(in srgb, var(--arsenal-accent) 22%, transparent); overflow: visible;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-icon-wrapper::before,
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities :is(.ability-card-index, .ability-icon-hint, .ability-act-gauge, .ability-head-actions) { display: none; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-icon {
  width: 100%; height: auto; aspect-ratio: 1; border: 1px solid #e3ce9d88; border-radius: 50%; box-shadow: none; display: block;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-icon-mode-switches { top: -16px; right: -12px; z-index: 3; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-icon-mode-switches button { min-width: 44px; min-height: 32px; }
.arsenal-facts { display: flex; align-items: stretch; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .arsenal-facts .ability-mana-tag {
  display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; font-size: var(--san-body);
  border: 1px solid #7ecff54a; background: #3e9ed315; color: #a2e1ff;
}
.arsenal-facts .ability-mana-tag img { width: 22px; height: 22px; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .arsenal-facts .ability-act-gauge-label {
  position: static; transform: none; display: flex; align-items: center; gap: 14px;
  padding: 10px 14px; border: 1px solid #dfbd6740; background: #c59d3410; white-space: normal;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .arsenal-facts .ability-act-gauge-label strong { font-size: var(--san-body); color: #efd69e; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-desc { margin: 0; }
.arsenal-keyword { font-weight: 650; text-shadow: 0 0 14px currentColor; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-description-summary {
  display: block; padding: 20px 0; margin: 0 0 20px; border-block: 1px solid #aec9e82b;
  font-size: clamp(17px, .75rem + .35vw, 24px); line-height: 1.75; color: #e7eef8;
}

/* Full rule text becomes illustrated, color-coded cards instead of table rows. */
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities :is(.ability-progression, .ability-patch-copy-list) {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 22px 0 0;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-progression::before {
  color: #e4ca92; font-size: var(--san-label); letter-spacing: .08em; line-height: 1.6;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities :is(.ability-progression-step, .ability-patch-detail) {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) !important;
  gap: 9px; padding: clamp(16px, 1.1vw, 26px); border: 1px solid color-mix(in srgb, var(--detail-accent, #9bcbff) 30%, transparent);
  border-left: 3px solid var(--detail-accent, #9bcbff); border-radius: 2px;
  background: linear-gradient(115deg, color-mix(in srgb, var(--detail-accent, #9bcbff) 10%, #071728), #061323ec);
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-progression-label {
  display: flex; align-items: center; gap: 8px; color: var(--detail-accent, #9bcbff);
  font-size: var(--san-body); font-weight: 600; text-transform: none; line-height: 1.5; letter-spacing: 0;
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-progression-copy { color: #dce7f5; line-height: 1.75; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-patch-detail>b { display: none; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-patch-detail>span>strong { display: block; font-size: var(--san-body); color: var(--detail-accent); margin-bottom: 8px; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-patch-detail small { font-size: var(--san-body); line-height: 1.7; color: #dce7f5; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-fx-table { margin-top: 22px; padding: 0; background: transparent; border: 0; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-fx-header { background: none; border: 0; padding: 12px 0 16px; color: #e9d09a; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-fx-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 10px;
  padding: 16px; border: 1px solid color-mix(in srgb, var(--detail-accent, #9bcbff) 25%, transparent);
  background: linear-gradient(100deg, color-mix(in srgb, var(--detail-accent, #9bcbff) 10%, #09192c), #071424);
}
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-fx-icon { flex: 0 0 40px; width: 40px; height: 40px; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-fx-icon img { width: 36px; height: 36px; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-fx-value { color: var(--detail-accent, #e9ce92); }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-fx-copy { font-size: var(--san-body); line-height: 1.75; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .passive-collect-icon-wrapper {
  display: flex; flex-wrap: wrap; gap: 12px; padding: 18px 0 0; margin-top: 18px; border: 0; border-top: 1px solid #edcf8e33; background: none;
}
.arsenal-aspects { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 8px; margin-bottom: 20px; }
.arsenal-aspect { display: flex; align-items: center; gap: 8px; padding: 10px; min-height: 56px; border: 1px solid #a4c8ec25; background: #051327a8; color: #c9e3f9; text-align: left; font-size: var(--san-label); }
.arsenal-aspect img { width: 32px; height: 32px; object-fit: contain; flex-shrink: 0; }
.arsenal-aspect:hover { border-color: #e3c27c; color: #ffeac0; }
.arsenal-highlight { animation: arsenal-highlight 1.4s ease-out !important; }
@keyframes arsenal-highlight { from { box-shadow: 0 0 0 2px #f7d58e, 0 0 32px #f7d58e55; } to { box-shadow: none; } }

/* The large preview plays the existing isolated V3 stage on demand. */
.arsenal-preview { position: sticky; top: 0; padding: clamp(16px, 1.2vw, 30px); border: 1px solid #d8bd7d88; background: linear-gradient(135deg, #0d233cdd, #041122f2); box-shadow: inset 0 0 0 5px #020c1840, 0 24px 56px #0004; }
.arsenal-preview-heading { padding-bottom: 18px; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-preview-heading h3 {
  font: clamp(22px, 1.35vw, 34px)/1.3 var(--at-serif); color: #f5e2b4; margin: 6px 0 0;
}
.arsenal-stage { position: relative; width: 100%; aspect-ratio: 16 / 11; overflow: hidden; border: 1px solid #dfc286ad; background: #040d1b; }
.arsenal-poster { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; color: #f9e2a8; background: #061127; isolation: isolate; text-align: left; }
.arsenal-poster::after { content: ''; position: absolute; inset: 8px; border: 1px solid #c4a96d55; pointer-events: none; }
.arsenal-poster-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .47; filter: saturate(1.2); z-index: -2; }
.arsenal-poster::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse at 50% 35%, transparent, #0510259c 70%), linear-gradient(0deg, #040c1f, transparent 85%); }
.arsenal-cast-orb { position: absolute; width: 31%; aspect-ratio: 1; left: 34.5%; top: 17%; padding: 8px; border: 1px solid #e9d6a4; border-radius: 50%; box-shadow: 0 0 0 7px #d9c1880e, 0 0 0 8px #d9c18833, 0 0 56px color-mix(in srgb, var(--arsenal-accent) 45%, transparent); }
.arsenal-cast-orb img { width: 100%; height: 100%; border-radius: 50%; border: 1px solid #ddc38b; object-fit: cover; }
.arsenal-poster-copy { position: absolute; bottom: 9%; left: 7%; right: 20%; display: grid; gap: 10px; }
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-poster-copy small { font-size: var(--san-label); color: #99d7f2; letter-spacing: .1em; }
.arsenal-poster-copy strong { font: clamp(22px, 1.55vw, 42px)/1.3 var(--at-serif); color: #fff0cc; }
.arsenal-play-seal { position: absolute; right: 6%; bottom: 9%; width: clamp(48px, 4vw, 76px); aspect-ratio: 1; display: grid; place-items: center; border: 2px solid #edcf8e; border-radius: 50%; background: #07182acf; font-size: 25px; box-shadow: 0 0 25px #edcf8e30; }
.arsenal-poster:hover .arsenal-play-seal { background: #c6a46c; color: #071321; }
.arsenal-live-stage { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; pointer-events: none; }
.arsenal-preview-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.arsenal-preview-actions button { min-height: 48px; padding: 12px 16px; border: 1px solid #b6cbe23a; background: #102c47; color: #dce9fa; font-size: var(--san-control); }
.arsenal-preview-actions .arsenal-play { flex: 1; border-color: #ead092ad; color: #082033; background: linear-gradient(115deg, #edd7a2, #bb924f); font-weight: 700; }
.arsenal-preview-actions button:disabled { opacity: .65; cursor: wait; }
.arsenal-preview-actions button:hover:not(:disabled) { filter: brightness(1.14); }
.sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-play-status { color: #aac6df; font-size: var(--san-label); line-height: 1.6; margin: 14px 0 24px; }
.arsenal-root[data-playback="playing"] .arsenal-play-status { color: #a1e7ff !important; }
.arsenal-cast-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: #e6ce97; font-size: var(--san-label); letter-spacing: .05em; }
.arsenal-cast-heading i { flex: 1; height: 1px; background: linear-gradient(90deg, #d8bd7d80, transparent); }
.arsenal-cast-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.arsenal-cast-tile { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; padding: 10px 6px; border: 1px solid #c6aa7345; background: linear-gradient(140deg, #243f6355, #071222); color: #c3d7eb; }
.arsenal-cast-tile img { width: min(76%, 76px); aspect-ratio: 1; object-fit: cover; border: 1px solid #c3b18280; border-radius: 50%; }
.arsenal-cast-tile span { font-size: clamp(13px, .55rem + .25vw, 17px); line-height: 1.4; overflow-wrap: anywhere; }
.arsenal-cast-tile i { position: absolute; top: 6px; right: 6px; font-size: 11px; font-style: normal; color: #e7cd93; }
.arsenal-cast-tile:hover, .arsenal-cast-tile[aria-pressed="true"] { border-color: #f3d68f; box-shadow: inset 0 0 20px #e1ba5b13; color: #ffedc4; }
.arsenal-root.is-passive .arsenal-play-seal { display: none; }
.arsenal-root.is-passive .arsenal-poster { cursor: default; }

@container sanctuary-panel (max-width: 100rem) {
  .arsenal-hero, .arsenal-workspace { width: 88%; }
  .at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav { width: 88%; }
  .arsenal-banner { right: -8%; width: 48%; opacity: .65; }
  .arsenal-chapter { display: none; }
}
@container sanctuary-panel (max-width: 72rem) {
  .arsenal-hero, .arsenal-workspace { width: 100%; }
  .at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav { width: 100%; }
  .arsenal-workspace { grid-template-columns: minmax(0, 1fr); }
  .arsenal-preview { position: relative; }
  .arsenal-stage { aspect-ratio: 16 / 9; }
  .arsenal-banner { width: 80%; right: -15%; opacity: .25; }
}
@media (max-width: 700px) {
  .at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] { padding-inline: 12px; }
  .arsenal-hero { gap: 16px; margin-bottom: 24px; }
  .arsenal-avatar { width: 80px; }
  .sanctuary #sanctuary-drawer[data-category="abilities"] #at-content .arsenal-hero h2 { font-size: 32px; }
  .at-prototype.sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav {
    grid-template-columns: repeat(var(--arsenal-ability-count, 5), minmax(118px, 1fr)); overflow-x: auto; overflow-y: hidden; padding-bottom: 8px;
  }
  .sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav button { flex-wrap: nowrap; }
  .sanctuary #sanctuary-drawer[data-category="abilities"] #at-ability-nav strong { font-size: 14px; }
  .sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-info-head { align-items: flex-start; }
  .sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-box { padding: 18px; }
  .sanctuary #sanctuary-drawer[data-category="abilities"] #codex-abilities .ability-icon-wrapper { flex-basis: 64px; width: 64px; }
  .arsenal-aspects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .arsenal-preview-actions { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .sanctuary .arsenal-highlight { animation: none !important; outline: 2px solid #f0cf87; }
  .at-prototype.sanctuary .arsenal-banner *, .at-prototype.sanctuary .arsenal-banner::after { animation: none !important; }
  .sanctuary .arsenal-banner-art { transform: scale(1.05); will-change: auto; }
  .arsenal-banner-motes { display: none; }
}
