/* MINUIT — « L'Armurerie » : la progression (bandeau « Ce soir », carte et vue de la caisse du soir, Carnet). Même monde que le lot 1
   (dev/armurerie/DIRECTION.md) : nuit, filets de laiton, laque, Jost pour l'interface, Chakra Petch pour les chiffres, Limelight pour
   un titre seulement. Aucune jauge qui clignote, aucun compte à rebours ; un seul moment animé : le sceau d'une quête faite, le reflet
   d'une médaille au passage de niveau, une case qui se remplit (rien en animations réduites). Tout est sous .g-armurerie. */

.g-armurerie .arp-ic { display: inline-grid; place-items: center; width: 1em; height: 1em; flex: none; }
.g-armurerie .arp-ic svg { display: block; width: 100%; height: 100%; }
.g-armurerie .arp-aide { margin: 0; max-width: 72ch; font: 500 14px/1.5 var(--font-ui); color: var(--text-dim); text-wrap: pretty; }

/* ---------- la médaille de niveau : un cadran de minuit (douze traits), le chiffre au centre ---------- */
.g-armurerie .arp-medaille { --t: 44px; position: relative; flex: none; display: grid; place-items: center; width: var(--t); height: var(--t); border-radius: 50%; overflow: hidden; color: var(--gold);
  background: radial-gradient(circle at 50% 36%, #1f2750, #0a0d18 72%); box-shadow: 0 3px 10px rgba(0,0,0,.45); }
/* le cadran : deux filets de laiton et les douze traits de minuit, dessinés (plus de dégradé conique répété) */
.g-armurerie .arp-medaille-c { position: absolute; inset: 0; width: 100%; height: 100%; }
.g-armurerie .arp-medaille b { position: relative; font: 700 calc(var(--t) * .38)/1 var(--font-num); color: var(--gold-hi); letter-spacing: -.02em; }
.g-armurerie .arp-medaille--l { --t: 88px; }
.g-armurerie .arp-medaille.is-reflet::after { content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
  background: linear-gradient(112deg, transparent 38%, rgba(247,221,143,.55) 50%, transparent 62%); background-size: 280% 100%; animation: arp-reflet 1.2s var(--arm-ease-douce) both; }
@keyframes arp-reflet { from { background-position: 120% 0; } to { background-position: -20% 0; } }

/* ---------- Caisses : le bandeau « Ce soir » ---------- */
.g-armurerie .arp-soiree { flex: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, auto) auto; align-items: stretch; overflow: hidden;
  border: 1px solid var(--line); border-radius: 6px;
  background: radial-gradient(60% 160% at 0% 0%, rgba(222,184,92,.06), transparent 62%), linear-gradient(180deg, rgba(22,28,56,.8), rgba(10,13,24,.88));
  box-shadow: inset 0 1px 0 rgba(247,221,143,.06), 0 6px 16px rgba(0,0,0,.3); }
.g-armurerie .arp-soiree > * + * { border-left: 1px solid var(--line); }
/* la caisse du soir ne paraît au bandeau que si elle attend d'être ouverte (sinon : la carte de la grille, cadenas compris) */
.g-armurerie .arp-soiree.sans-soir { grid-template-columns: minmax(0, 1fr) auto; }
.g-armurerie .arp-soiree .arp-ss[hidden] { display: none; }
/* les quêtes du bandeau (revue n° 2 de Selman, point 16 : trois puces serrées à gauche, 55 % de vide) : le titre et la série à
   gauche, puis les trois quêtes en trois colonnes égales qui remplissent la barre ; un filet entre deux quêtes, aucune boîte dans la
   barre ; le nom à gauche, le statut au bout de la ligne, la récompense dessous, la barre d'avancée sur toute la largeur */
.g-armurerie .arp-soiree .arp-sq { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: stretch; gap: 0; min-width: 0; padding: 0 0 0 20px; }
.g-armurerie .arp-sq-t { display: grid; align-content: center; justify-items: start; gap: 9px; min-width: 0; padding-right: 20px; }
.g-armurerie .arp-titre-s { margin: 0; font: 600 12px/1 var(--font-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-quetes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; min-width: 0; }
.g-armurerie .arp-sq .arp-quetes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.g-armurerie .arp-q { position: relative; display: grid; grid-template-columns: 18px minmax(0, auto); column-gap: 9px; row-gap: 4px; align-items: center; min-width: 0; }
.g-armurerie .arp-quetes:not(.arp-quetes--l) .arp-q { grid-template-columns: 20px minmax(0, 1fr); column-gap: 12px; row-gap: 3px; align-content: center; padding: 12px 20px 13px; border-left: 1px solid var(--line); }
.g-armurerie .arp-quetes:not(.arp-quetes--l) .arp-q.is-faite { background: linear-gradient(180deg, rgba(222,184,92,.06), rgba(222,184,92,0) 78%); }
.g-armurerie .arp-sq .arp-q-sceau { width: 20px; height: 20px; }
.g-armurerie .arp-sq .arp-q-l { justify-content: space-between; gap: 12px; }
.g-armurerie .arp-sq .arp-q-n { font-size: 15px; line-height: 1.35; white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.g-armurerie .arp-sq .arp-q-a { font-size: 13px; }
.g-armurerie .arp-sq .arp-q-p { font-size: 13px; line-height: 1.2; white-space: normal; overflow: visible; text-overflow: clip; }
.g-armurerie .arp-sq .arp-q-barre { margin-top: 5px; }
.g-armurerie .arp-sq .arp-q-vide { align-self: center; padding: 0 20px; border-left: 1px solid var(--line); font-size: 14px; }
@media (max-width: 900px) {      /* téléphone : le titre au-dessus, les trois quêtes l'une sous l'autre */
  .g-armurerie .arp-soiree .arp-sq { grid-template-columns: minmax(0, 1fr); padding: 12px 0 0; }
  .g-armurerie .arp-sq .arp-sq-t { grid-auto-flow: column; justify-content: space-between; align-items: center; padding: 0 16px 10px; }
  .g-armurerie .arp-sq .arp-quetes { grid-template-columns: minmax(0, 1fr); }
  .g-armurerie .arp-quetes:not(.arp-quetes--l) .arp-q { padding: 10px 16px 11px; border-left: 0; border-top: 1px solid var(--line); }
}
.g-armurerie .arp-q-sceau { grid-row: 1 / 3; width: 18px; height: 18px; color: var(--gold-lo); }
.g-armurerie .arp-q-sceau svg { display: block; width: 100%; height: 100%; }
.g-armurerie .arp-q-l { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.g-armurerie .arp-q-n { min-width: 0; font: 600 13px/1.2 var(--font-ui); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-armurerie .arp-q-a { flex: none; font: 600 12px/1 var(--font-num); color: var(--gold); white-space: nowrap; }
.g-armurerie .arp-q-p { grid-column: 2; min-width: 0; font: 500 11.5px/1.15 var(--font-num); color: var(--text-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-armurerie .arp-q-barre { grid-column: 1 / -1; display: block; height: 3px; border-radius: 3px; background: rgba(222,184,92,.14); overflow: hidden; }
.g-armurerie .arp-q-barre i { display: block; height: 100%; border-radius: inherit; background: var(--gold); }
.g-armurerie .arp-q-t, .g-armurerie .arp-q-m { grid-column: 2; font-size: 12.5px; line-height: 1.4; color: var(--text-dim); }
.g-armurerie .arp-q-m { font-style: italic; }
.g-armurerie .arp-q.is-faite .arp-q-sceau, .g-armurerie .arp-q.is-faite .arp-q-a { color: var(--gold-hi); }
.g-armurerie .arp-q.is-faite .arp-q-n { color: var(--text); }
.g-armurerie .arp-q.is-faite .arp-q-barre i { background: var(--gold-hi); }
.g-armurerie .arp-q.is-scelle .arp-q-sceau { animation: arp-sceau .62s var(--arm-ease-sortie) both; }
@keyframes arp-sceau { 0% { transform: scale(1.7) rotate(-16deg); opacity: 0; } 55% { transform: scale(.9) rotate(0); opacity: 1; } 100% { transform: none; } }
.g-armurerie .arp-q-vide { grid-column: 1 / -1; font-size: 13px; color: var(--text-dim); }

/* la série : une flamme dessinée (un trait jusqu'à 7 jours, pleine à 30), les gels en réserve */
.g-armurerie .arp-serie { display: inline-flex; align-items: center; gap: 6px; color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-serie > b { font: 600 12.5px/1 var(--font-num); color: var(--text); }
.g-armurerie .arp-flamme { width: 15px; height: 15px; color: var(--text-faint); }
.g-armurerie .arp-serie.is-f3 .arp-flamme { color: var(--gold); }
.g-armurerie .arp-serie.is-f7 .arp-flamme { color: var(--gold-hi); }
.g-armurerie .arp-serie.is-f30 .arp-flamme { color: var(--gold-hi); --arp-flamme-fond: rgba(247,221,143,.35); filter: drop-shadow(0 0 4px rgba(247,221,143,.45)); }
.g-armurerie .arp-gels { display: inline-flex; align-items: center; gap: 3px; margin-left: 4px; font: 600 12px/1 var(--font-num); color: var(--text); }
.g-armurerie .arp-gels .arp-ic { width: 13px; height: 13px; color: #b9cdf2; }

/* la caisse du soir, dans le bandeau */
.g-armurerie .arp-ss { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 4px 14px; min-width: 0; padding: 10px 18px; }
.g-armurerie .arp-ss-img img { display: block; width: 62px; height: 46px; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(0,0,0,.5)); }
.g-armurerie .arp-ss-c { display: grid; gap: 4px; min-width: 0; }
.g-armurerie .arp-ss-t { font: 500 13px/1.3 var(--font-ui); color: var(--text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.g-armurerie .arp-ss.is-dispo .arp-ss-t { color: var(--gold-hi); }
.g-armurerie .arp-ss-go[hidden] { display: none; }

/* l'entrée du Carnet : la médaille, le niveau, l'XP en chiffres */
.g-armurerie .arp-sc { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; min-width: 0; padding: 10px 18px; border: 0; border-radius: 0;
  background: transparent; color: var(--text); cursor: pointer; font: inherit; text-align: left; transition: background .2s var(--arm-ease-douce); }
.g-armurerie .arp-sc:hover { background: rgba(222,184,92,.06); }
.g-armurerie .arp-sc:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: -4px; }
.g-armurerie .arp-sc-c { display: grid; gap: 5px; min-width: 0; }
.g-armurerie .arp-sc-l { font: 600 13.5px/1.2 var(--font-ui); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-armurerie .arp-sc-titre { color: var(--gold); font-weight: 500; }
.g-armurerie .arp-sc-x { display: flex; align-items: center; gap: 9px; min-width: 0; }
.g-armurerie .arp-sc-barre { flex: none; width: 112px; height: 5px; border-radius: 5px; background: rgba(222,184,92,.14); box-shadow: inset 0 0 0 1px rgba(222,184,92,.16); overflow: hidden; }
.g-armurerie .arp-sc-barre i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gold-lo), var(--gold) 60%, var(--gold-hi)); }
.g-armurerie .arp-sc-xp { font: 600 12px/1 var(--font-num); color: var(--text); white-space: nowrap; }
.g-armurerie .arp-sc-go { display: inline-flex; align-items: center; gap: 4px; font: 600 12px/1 var(--font-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.g-armurerie .arp-sc-go .arp-ic { width: 13px; height: 13px; }

/* ---------- Caisses de la maison : la carte de la caisse du soir (elle s'étale pour que la grille tombe juste) ---------- */
.g-armurerie .arp-cc-soir { border-color: rgba(222,184,92,.34);
  background: radial-gradient(80% 70% at 24% 38%, rgba(222,184,92,.12), transparent 70%), linear-gradient(180deg, var(--arm-laque-hi), var(--arm-laque-lo)); }
/* fermée par le niveau (revue de Selman, point 24 ; revue n° 2, point 17) : l'image à peine atténuée (elle se lit), le cadenas
   « Niveau 2 » en bas à gauche de l'image (plus au milieu de la caisse), « Offerte » à la place du prix */
.g-armurerie .arp-cc-img { position: relative; }
.g-armurerie .arp-cc-verrou { position: absolute; left: 10px; bottom: 8px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px 0 9px;
  border: 1px solid rgba(222,184,92,.6); border-radius: 999px; background: rgba(5,6,11,.84); color: var(--gold-hi); font: 600 13px/1 var(--font-ui); letter-spacing: .02em; white-space: nowrap;
  box-shadow: 0 6px 14px rgba(0,0,0,.5); pointer-events: none; }
.g-armurerie .arp-cc-verrou[hidden] { display: none; }
.g-armurerie .arp-cc-verrou .arp-ic { width: 14px; height: 14px; }
.g-armurerie .arp-cc-soir[data-etat="niveau"] .arp-cc-img .ar-img { filter: grayscale(.3) brightness(.72) drop-shadow(0 9px 10px rgba(0,0,0,.55)); }
.g-armurerie .arp-cc-soir[data-etat="niveau"] .arp-cc-pied { display: none; }
.g-armurerie .arp-cc-prix .ar-cc-prix { font: 600 17px/1.15 var(--font-ui); letter-spacing: .01em; }
.g-armurerie .arp-cc-c { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.g-armurerie .arp-cc-sous { font-size: 12.5px; line-height: 1.45; color: var(--text-dim); text-wrap: pretty; }
.g-armurerie .arp-cc-soir:not(.is-large) .arp-cc-sous { display: none; }
.g-armurerie .arp-cc-pied { margin-top: auto; padding-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; }
.g-armurerie .arp-cc-etat { min-width: 0; font: 500 12.5px/1.3 var(--font-ui); color: var(--text-dim); }
.g-armurerie .arp-cc-soir[data-etat="dispo"] .arp-cc-etat { color: var(--gold-hi); }
.g-armurerie .arp-cc-go { flex: none; display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: 999px; white-space: nowrap;
  font: 600 12.5px/1 var(--font-ui); color: #241904; background: linear-gradient(180deg, var(--gold-hi) 0%, var(--gold) 45%, #b8913b 100%); box-shadow: 0 0 0 1px rgba(255,236,170,.5) inset; }
.g-armurerie .arp-cc-go[hidden] { display: none; }
.g-armurerie .arp-cc-soir.is-large { display: grid; grid-template-columns: minmax(150px, 30%) minmax(0, 1fr); align-items: center; column-gap: 28px; padding: 16px 28px 16px 16px; }
.g-armurerie .arp-cc-soir.is-large .arp-cc-img { margin: 0; }
.g-armurerie .arp-cc-soir.is-large .ar-cc-nom { font-size: 24px; }
.g-armurerie .arp-cc-soir.is-large .arp-cc-sous { font-size: 13.5px; max-width: 60ch; }
.g-armurerie .arp-cc-cotes { display: none; }
.g-armurerie .arp-cc-soir.is-large .arp-cc-cotes { display: flex; margin-top: 12px; gap: 4px 16px; }
.g-armurerie .arp-cc-soir.is-large .arp-cc-car { margin-top: 10px; grid-template-columns: repeat(3, max-content); column-gap: 32px; }
.g-armurerie .arp-cc-soir.is-large .arp-cc-car .ar-cc-ligne { flex-direction: column; align-items: flex-start; gap: 5px; }
.g-armurerie .arp-cc-soir.is-large .arp-cc-pied { justify-content: flex-start; gap: 18px; }
/* ARM-CS2-A : la vignette compacte (même gabarit que les autres caisses) ; ses chiffres passent dans le volet du survol.
   Passe QUALITÉ (GRILLES) : l'état de la caisse du soir (« Ouvrir · offerte », « Dès demain, 6 h », ce qu'elle a donné ce soir) se pose
   en bas à gauche de l'image, comme le cadenas : la vignette garde la hauteur de ses voisines et aucun texte n'est coupé. */
.g-armurerie .arp-cc-soir .arp-cc-c { flex: 1 1 auto; gap: 0; }
.g-armurerie .arp-cc-soir .arp-cc-pied { position: absolute; left: 0; right: 0; top: 0; aspect-ratio: 4 / 3; align-items: flex-end; justify-content: flex-start; margin: 0; padding: 0 10px 8px; gap: 6px; min-height: 0; pointer-events: none; }
.g-armurerie .arp-cc-soir .arp-cc-etat { max-width: 100%; padding: 5px 11px 6px; border: 1px solid rgba(222,184,92,.3); border-radius: 14px; background: rgba(5,6,11,.84); box-shadow: 0 6px 14px rgba(0,0,0,.5);
  font: 600 13px/1.25 var(--font-ui); letter-spacing: .02em; color: var(--text); }
.g-armurerie .arp-cc-soir .arp-cc-etat:empty { display: none; }
/* ouverte ce soir : la plaque le dit en trois mots ; ce qu'elle a donné (la phrase entière de texteSoir, trop longue pour une vignette
   de 220 px) reste dans le nom accessible de la tuile et se lit dans l'inventaire */
.g-armurerie .arp-cc-soir[data-etat="prise"] .arp-cc-etat { font-size: 0; letter-spacing: 0; }
.g-armurerie .arp-cc-soir[data-etat="prise"] .arp-cc-etat::before { content: "Ouverte ce soir"; font-size: 13px; letter-spacing: .02em; }
.g-armurerie .arp-cc-soir .arp-cc-go { height: 28px; padding: 0 13px; font-size: 13px; box-shadow: 0 0 0 1px rgba(255,236,170,.5) inset, 0 6px 14px rgba(0,0,0,.5); }
.g-armurerie .arp-cc-soir[data-etat="dispo"] .arp-cc-etat { display: none; }
.g-armurerie .arp-cc-soir:not([data-etat="dispo"]):not([data-etat="niveau"]) .arp-cc-img .ar-img { filter: grayscale(.3) brightness(.72) drop-shadow(0 9px 10px rgba(0,0,0,.55)); }

/* ---------- « Caisse du soir » : la vue sœur de l'ouverture ---------- */
.g-armurerie .ar-vue-soir { overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 12px 0 24px; }
.g-armurerie .arp-soir-fait { flex-direction: column; gap: 14px; }
.g-armurerie .arp-soir-fait[hidden], .g-armurerie .ar-vue-soir .ar-pied-l[hidden] { display: none; }
.g-armurerie .arp-soir-etat { margin: 0; max-width: 64ch; font: 500 15px/1.45 var(--font-ui); color: var(--text); text-align: center; text-wrap: balance; }
.g-armurerie .arp-offerte { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 12px 0 0; font: 600 11.5px/1 var(--font-ui); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.g-armurerie .arp-offerte .arp-ic { width: 15px; height: 15px; }

/* ---------- Carnet (passe QUALITÉ du 04/10, revue de Selman n° 2, points 23 à 28) ----------
   Tailles écrites pour k = 1 (écran utile de 1920 × 1020 ; l'échelle de l'Armurerie fait le reste). Le système de la revue : un seul
   panneau (laque, filet, ombre portée), Limelight 24 pour un titre de section, Jost 14 pour le texte courant, 12 au moins pour un
   libellé, Chakra Petch pour tout chiffre ; espacements en multiples de 4 ; tuile d'arme 1 / 1,12, barre de rareté de 4 px. */
.g-armurerie .ar-vue-carnet { overflow-y: auto; display: flex; flex-direction: column; gap: 24px; padding: 20px 4px 48px; }
.g-armurerie .arp-c-vide[hidden], .g-armurerie .arp-ident[hidden], .g-armurerie .arp-c-g[hidden] { display: none; }
.g-armurerie .arp-ident, .g-armurerie .arp-sec, .g-armurerie .arp-choix { border: 1px solid var(--line); border-radius: 6px;
  background: linear-gradient(180deg, rgba(22,28,56,.72), rgba(10,13,24,.9));
  box-shadow: inset 0 1px 0 rgba(247,221,143,.06), 0 10px 26px rgba(0,0,0,.32); }

/* l'en-tête : la fiche du joueur à gauche, la passe à droite (un filet de laiton et le losange de la maison entre les deux) */
.g-armurerie .arp-ident { flex: none; display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); align-items: stretch; column-gap: 40px; padding: 24px 28px 24px 24px;
  background: radial-gradient(46% 130% at 0% 40%, rgba(222,184,92,.08), transparent 70%), linear-gradient(180deg, rgba(22,28,56,.72), rgba(10,13,24,.9)); }
.g-armurerie .arp-fiche { display: grid; align-content: start; gap: 12px; min-width: 0; }
.g-armurerie .arp-fiche-t { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 20px; min-height: 88px; }
.g-armurerie .arp-ident-c { display: grid; gap: 6px; min-width: 0; }
.g-armurerie .arp-c-titre { margin: 0; font: 400 30px/1.12 var(--font-display); letter-spacing: .04em; color: var(--gold-hi); text-wrap: balance; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.g-armurerie .arp-c-titre.is-long { font-size: 22px; }
.g-armurerie .arp-c-titre.is-niveau { font: 600 30px/1.1 var(--font-ui); letter-spacing: .01em; color: var(--text); text-shadow: none; }
.g-armurerie .arp-c-niv { margin: 0; font: 600 15px/1.2 var(--font-ui); letter-spacing: .02em; color: var(--text-dim); }
.g-armurerie .arp-c-niv[hidden], .g-armurerie .arp-c-jour[hidden] { display: none; }
.g-armurerie .arp-c-xp { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 0; font: 500 15px/1.3 var(--font-ui); color: var(--text); }
.g-armurerie .arp-c-xp-n { font: 700 24px/1 var(--font-num); color: var(--gold-hi); white-space: nowrap; }
.g-armurerie .arp-c-xp-l { white-space: nowrap; }
.g-armurerie .arp-c-xp-t { flex: 1 0 100%; font: 500 13px/1.3 var(--font-num); color: var(--text-dim); }
.g-armurerie .arp-c-jour { margin: 0; max-width: 52ch; font: 500 14px/1.5 var(--font-ui); color: var(--text-dim); text-wrap: pretty; }

/* la passe : un rail de 10 px, une pastille de 40 px et une plaque par niveau ; un niveau qui donne quelque chose porte sa récompense
   dessinée, un niveau qui ne donne rien une plaque étroite et muette : colonnes de largeurs inégales (posées par le script), rail de
   centre à centre. Quand peu de niveaux restent à montrer, la frise ne s'étire pas : elle se centre (104 px par unité au plus) */
.g-armurerie .arp-passe { position: relative; display: grid; min-width: 0; padding-left: 40px; border-left: 1px solid var(--line); }
.g-armurerie .arp-passe::before { content: ""; position: absolute; left: -4px; top: 50%; width: 7px; height: 7px; margin-top: -4px; transform: rotate(45deg); background: var(--bg-1); border: 1px solid var(--line-strong); }
/* le cadre de la frise : sous 1280 px elle y défile de côté (le filet et son losange restent en place, au-dessus) */
.g-armurerie .arp-passe-d { display: grid; min-width: 0; }
.g-armurerie .arp-passe-c { position: relative; display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-self: center; width: 100%; max-width: calc(var(--arp-u, 12) * 104px); min-width: 0; padding-top: 24px; }
.g-armurerie .arp-passe-l { position: relative; z-index: 1; display: grid; margin: 0; padding: 0; list-style: none; }
.g-armurerie .arp-passe-barre { position: absolute; top: 39px; height: 10px; border-radius: 10px; background: rgba(222,184,92,.22); box-shadow: inset 0 1px 2px rgba(0,0,0,.55); overflow: hidden; }
.g-armurerie .arp-passe-barre i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gold-lo), var(--gold) 55%, var(--gold-hi)); box-shadow: inset 0 1px 0 rgba(255,246,214,.45);
  transition: width .7s var(--arm-ease-sortie); }
.g-armurerie .arp-pal { position: relative; display: grid; grid-template-rows: 40px minmax(0, 1fr); row-gap: 14px; justify-items: center; min-width: 0; padding: 0 6px; }
.g-armurerie .arp-pal-n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; font: 700 15px/1 var(--font-num); color: var(--text-dim); background: #0d1124;
  box-shadow: inset 0 0 0 1.5px rgba(222,184,92,.34), 0 0 0 4px #0d1124; }
.g-armurerie .arp-pal.a-recompense .arp-pal-n { color: var(--gold-hi); box-shadow: inset 0 0 0 1.5px var(--gold), 0 0 0 4px #0d1124; }
.g-armurerie .arp-pal.is-courant .arp-pal-n { color: #241904; background: linear-gradient(180deg, var(--gold-hi), var(--gold) 55%, #b8913b);
  box-shadow: inset 0 1px 0 rgba(255,246,214,.6), 0 0 0 4px #0d1124, 0 6px 12px rgba(0,0,0,.5); }
/* la tige qui pend la plaque à sa pastille */
.g-armurerie .arp-pal.a-plaque::before { content: ""; position: absolute; top: 44px; left: 50%; width: 1px; height: 10px; background: rgba(222,184,92,.26); }
.g-armurerie .arp-pal.a-recompense::before { background: rgba(222,184,92,.5); }
.g-armurerie .arp-plaque { position: relative; justify-self: stretch; display: grid; place-items: center; min-width: 0; min-height: 132px; padding: 14px 8px 34px; border-radius: 6px;
  border: 1px solid rgba(222,184,92,.14);
  background: radial-gradient(120% 70% at 50% 108%, rgba(222,184,92,.09), transparent 68%), linear-gradient(180deg, #161c38, #0b0e1c);
  box-shadow: inset 0 1px 0 rgba(247,221,143,.08), 0 6px 14px rgba(0,0,0,.4); }
.g-armurerie .arp-plaque.is-acquise { border-color: rgba(222,184,92,.36); }
.g-armurerie .arp-plaque.is-prochaine { border-color: var(--line-strong);
  background: radial-gradient(120% 70% at 50% 108%, rgba(222,184,92,.2), transparent 68%), linear-gradient(180deg, #1a2040, #0b0e1c); }
/* un niveau qui ne donne rien : la même plaque, étroite, en retrait (laque plus sombre, pas d'ombre portée), le losange de la maison
   en filet ; celle du niveau en cours garde le filet d'or des plaques acquises */
.g-armurerie .arp-plaque.is-vide { padding: 14px 4px; border-color: rgba(222,184,92,.09); background: linear-gradient(180deg, #11162d, #0a0d1a); box-shadow: inset 0 1px 0 rgba(247,221,143,.05); }
.g-armurerie .arp-plaque-m { display: block; width: 16px; height: 16px; color: rgba(222,184,92,.42); }
.g-armurerie .arp-plaque-m svg { display: block; width: 100%; height: 100%; }
.g-armurerie .arp-plaque.is-vide.is-acquise { border-color: rgba(222,184,92,.36); }
.g-armurerie .arp-plaque.is-vide.is-acquise .arp-plaque-m { color: var(--gold-hi); }
.g-armurerie .arp-plaque-l { display: flex; align-items: stretch; justify-content: center; width: 100%; min-width: 0; }
.g-armurerie .arp-r { flex: 1 1 0; display: grid; justify-items: center; align-content: center; gap: 8px; min-width: 0; padding: 0 6px; text-align: center; }
.g-armurerie .arp-plaque.is-double .arp-r + .arp-r { border-left: 1px solid rgba(222,184,92,.14); }
.g-armurerie .arp-r-d { display: grid; place-items: center; min-height: 56px; max-width: 100%; }
.g-armurerie .arp-r-n { font: 600 14px/1.25 var(--font-ui); color: var(--text); text-wrap: balance; }
.g-armurerie .arp-r[data-type="titre"] .arp-r-n { font: 600 12px/1.2 var(--font-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--text-dim); }
.g-armurerie .arp-r[data-type="titre"] { padding: 0; }
.g-armurerie .arp-plaque .arp-anneau { width: 56px; height: 56px; }
.g-armurerie .arp-r-titre { display: grid; place-items: center; min-height: 56px; padding: 6px 2px; font: 400 18px/1.16 var(--font-display); letter-spacing: .04em; color: var(--gold-hi); text-wrap: balance;
  border-block: 1px solid; border-image: linear-gradient(90deg, transparent, rgba(222,184,92,.55) 22%, rgba(222,184,92,.55) 78%, transparent) 1; }
.g-armurerie .arp-r-place { position: relative; display: grid; place-items: center; width: 48px; height: 54px; border-radius: 4px; border: 1px dashed rgba(222,184,92,.55); background: linear-gradient(180deg, #161c38, #0b0e1c); color: var(--gold); overflow: hidden; }
.g-armurerie .arp-r-place::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--gold); opacity: .75; }
.g-armurerie .arp-r-place .arp-ic { width: 20px; height: 20px; }
.g-armurerie .arp-r-caisse img { display: block; width: 74px; height: 56px; object-fit: contain; filter: drop-shadow(0 6px 7px rgba(0,0,0,.55)); }
.g-armurerie .arp-r-autre .arp-ic { width: 28px; height: 28px; color: var(--gold); }
/* l'état d'une plaque (acquise, ou ce qui manque pour la prochaine) : au pied, hors du centrage — toutes les plaques s'alignent */
.g-armurerie .arp-plaque-e { position: absolute; left: 0; right: 0; bottom: 13px; display: flex; align-items: center; justify-content: center; gap: 6px; font: 600 12px/1 var(--font-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--gold); white-space: nowrap; }
.g-armurerie .arp-plaque-e .arp-ic { width: 14px; height: 14px; color: var(--gold-hi); }
.g-armurerie .arp-plaque-e.num { font: 600 13px/1 var(--font-num); letter-spacing: 0; text-transform: none; color: var(--gold-hi); }
/* au-delà du niveau 30, plus de récompense à venir : le rail seul, au milieu, et une phrase dessous */
.g-armurerie .arp-passe-c.is-finie { grid-template-rows: auto auto; align-content: center; padding-top: 0; }
.g-armurerie .arp-passe-c.is-finie .arp-passe-barre { top: 15px; }
.g-armurerie .arp-passe-fin { margin: 8px 0 0; font: 500 14px/1.5 var(--font-ui); color: var(--text-dim); text-align: center; text-wrap: balance; }
.g-armurerie .arp-passe-fin[hidden] { display: none; }

/* « Ce soir » et « Ton profil » côte à côte, à la même hauteur ; le choix d'une arme puis les albums sur toute la largeur */
.g-armurerie .arp-c-g { flex: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; gap: 24px; }
.g-armurerie .arp-sec-album, .g-armurerie .arp-choix { grid-column: 1 / -1; }
.g-armurerie .arp-sec { display: flex; flex-direction: column; min-width: 0; padding: 24px; }
.g-armurerie .arp-sec-t { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 12px; }
.g-armurerie .arp-sec .ar-h2 { font-size: 24px; }

/* ce soir : un registre — une ligne par quête (sceau, nom, filet pointé, avance, récompense), puis la série, puis la caisse du soir */
.g-armurerie .arp-sec-soiree .arp-sec-t { display: grid; gap: 6px; justify-content: stretch; }
.g-armurerie .arp-c-note { font-style: italic; }
.g-armurerie .arp-c-note[hidden] { display: none; }
.g-armurerie .arp-registre { display: grid; margin: 0; padding: 0; list-style: none; }
.g-armurerie .arp-ql { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 13px 0 14px; border-top: 1px solid rgba(222,184,92,.14); }
.g-armurerie .arp-ql-sceau { width: 28px; height: 28px; color: var(--gold-lo); }
.g-armurerie .arp-ql-sceau svg { display: block; width: 100%; height: 100%; }
.g-armurerie .arp-ql.is-faite .arp-ql-sceau { color: var(--gold-hi); }
.g-armurerie .arp-ql.is-scelle .arp-ql-sceau { animation: arp-sceau .62s var(--arm-ease-sortie) both; }
.g-armurerie .arp-ql-c { display: grid; gap: 3px; min-width: 0; }
.g-armurerie .arp-ql-t { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.g-armurerie .arp-ql-n { font: 600 16px/1.3 var(--font-ui); color: var(--text); }
.g-armurerie .arp-ql-fil { flex: 1 1 24px; min-width: 24px; align-self: flex-end; margin-bottom: 6px; border-bottom: 1px dotted rgba(222,184,92,.42); }
.g-armurerie .arp-ql-pas { flex: none; align-self: center; display: inline-flex; gap: 6px; padding: 0 2px; }
.g-armurerie .arp-ql-pas i { width: 8px; height: 8px; transform: rotate(45deg); border: 1px solid var(--gold-lo); }
.g-armurerie .arp-ql-pas i.is-on { background: var(--gold); border-color: var(--gold); }
.g-armurerie .arp-ql-e { flex: none; min-width: 48px; text-align: right; font: 600 14px/1.3 var(--font-ui); color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-ql-e.num { font: 600 15px/1.3 var(--font-num); color: var(--gold); }
.g-armurerie .arp-ql.is-faite .arp-ql-e { color: var(--gold-hi); }
.g-armurerie .arp-ql-p { flex: none; min-width: 178px; text-align: right; font: 600 15px/1.3 var(--font-num); color: var(--text); white-space: nowrap; }
.g-armurerie .arp-registre.sans-prime .arp-ql-p { min-width: 72px; }
.g-armurerie .arp-ql-j { color: var(--gold); }
.g-armurerie .arp-ql-d, .g-armurerie .arp-ql-m { margin: 0; font: 500 14px/1.5 var(--font-ui); color: var(--text-dim); }
.g-armurerie .arp-ql-m { font-style: italic; }
.g-armurerie .arp-ql-vide { padding: 14px 0; border-top: 1px solid rgba(222,184,92,.14); font: 500 14px/1.5 var(--font-ui); color: var(--text-dim); }
.g-armurerie .arp-c-serie { flex: 1 0 auto; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px 32px; padding: 16px 0; border-top: 1px solid rgba(222,184,92,.14); }
.g-armurerie .arp-c-serie-t { display: flex; align-items: center; gap: 14px; min-width: 0; }
.g-armurerie .arp-c-flamme { width: 36px; height: 36px; color: var(--text-dim); }
.g-armurerie .arp-c-serie-t.is-f3 .arp-c-flamme { color: var(--gold); }
.g-armurerie .arp-c-serie-t.is-f7 .arp-c-flamme { color: var(--gold-hi); }
.g-armurerie .arp-c-serie-t.is-f30 .arp-c-flamme { color: var(--gold-hi); --arp-flamme-fond: rgba(247,221,143,.35); }
.g-armurerie .arp-c-serie-c { display: grid; gap: 7px; min-width: 0; }
.g-armurerie .arp-c-serie-n { font: 500 15px/1 var(--font-ui); color: var(--text); white-space: nowrap; }
.g-armurerie .arp-c-serie-n b { margin-right: 3px; font: 700 24px/1 var(--font-num); color: var(--text); }
.g-armurerie .arp-c-serie-e { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; font: 500 13px/1.3 var(--font-ui); color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-c-gels, .g-armurerie .arp-c-auj { display: inline-flex; align-items: center; gap: 5px; }
.g-armurerie .arp-c-gels .arp-ic { width: 15px; height: 15px; color: var(--text-faint); }
.g-armurerie .arp-c-gels .arp-ic.is-on { color: #b9cdf2; }
.g-armurerie .arp-c-gels > span:last-child { margin-left: 3px; }
.g-armurerie .arp-c-auj .arp-ic { width: 15px; height: 15px; color: var(--gold-hi); }
.g-armurerie .arp-c-serie .arp-aide { max-width: 62ch; }
.g-armurerie .arp-c-soir { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; padding-top: 16px; border-top: 1px solid rgba(222,184,92,.14); }
.g-armurerie .arp-c-soir-img img { display: block; width: 84px; height: 63px; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0,0,0,.55)); }
.g-armurerie .arp-c-soir-c { display: grid; gap: 3px; min-width: 0; }
.g-armurerie .arp-c-soir-t { font: 600 15px/1.35 var(--font-ui); color: var(--text); }
.g-armurerie .arp-c-soir.is-dispo .arp-c-soir-t { color: var(--gold-hi); }
.g-armurerie .arp-c-soir-s { font: 500 14px/1.45 var(--font-ui); color: var(--text-dim); }

/* ton profil : le titre et les cadres sur une ligne, la vitrine sur toute la largeur du panneau */
/* quand « Ce soir » est plus haut, le jeu se répartit au-dessus et au-dessous de cette ligne (pas de vide d'un seul tenant) */
.g-armurerie .arp-profil-h { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); align-items: start; gap: 16px 32px; margin-block: auto; }
.g-armurerie .arp-champ { display: grid; align-content: start; gap: 8px; min-width: 0; }
.g-armurerie .arp-champ .ar-etiq { font-size: 12px; letter-spacing: .14em; }
.g-armurerie .arp-champ-vit { padding-top: 20px; }
.g-armurerie .arp-titre-sel { width: 100%; }
.g-armurerie .arp-titre-aide { text-wrap: balance; }
.g-armurerie .arp-titre-aide[hidden] { display: none; }
.g-armurerie .arp-cadres { display: grid; grid-template-columns: repeat(var(--arp-n, 7), minmax(0, 1fr)); gap: 4px; }
.g-armurerie .arp-cadre { display: grid; justify-items: center; align-content: start; gap: 6px; min-width: 0; padding: 5px 2px 4px; border: 0; border-radius: 6px;
  background: transparent; color: var(--text); cursor: pointer; font: inherit; }
.g-armurerie .arp-cadre:disabled { cursor: default; }
.g-armurerie .arp-cadre:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 2px; }
.g-armurerie .arp-anneau { position: relative; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--bg-2); box-shadow: inset 0 0 0 1px var(--line-strong);
  transition: transform .18s var(--arm-ease-sortie), box-shadow .18s; }
.g-armurerie .arp-anneau[data-cadre] { background: conic-gradient(from 210deg, var(--cadre-a), var(--cadre-b), var(--cadre-c), var(--cadre-b), var(--cadre-a)); box-shadow: 0 4px 10px rgba(0,0,0,.45); }
.g-armurerie .arp-anneau[data-cadre]::after { content: ""; position: absolute; inset: 11%; border-radius: 50%; background: radial-gradient(circle at 50% 38%, #1d2448, #0a0d18 75%); box-shadow: inset 0 0 0 1px rgba(0,0,0,.45); }
.g-armurerie .arp-anneau .arp-ic { position: relative; z-index: 1; width: 18px; height: 18px; color: var(--text); }
.g-armurerie .arp-cadre:hover:not(:disabled) .arp-anneau { transform: translateY(-2px); }
.g-armurerie .arp-cadre.is-on .arp-anneau { box-shadow: 0 0 0 3px #0e1226, 0 0 0 4.5px var(--gold-hi), 0 8px 14px rgba(0,0,0,.5); }
.g-armurerie .arp-cadre.is-ferme .arp-anneau { filter: saturate(.4) brightness(.72); }
.g-armurerie .arp-cadre-n { font: 600 13px/1.15 var(--font-ui); text-align: center; }
.g-armurerie .arp-cadre.is-on .arp-cadre-n { color: var(--gold-hi); }
.g-armurerie .arp-cadre.is-ferme .arp-cadre-n { color: var(--text-dim); }
.g-armurerie .arp-cadre-c { font: 500 12px/1.25 var(--font-ui); color: var(--text-dim); text-align: center; text-wrap: balance; }

.g-armurerie .arp-vit { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.g-armurerie .arp-place { position: relative; display: grid; place-items: center; min-width: 0; aspect-ratio: 1 / 1.12; border-radius: 6px; }
/* une place à venir : une niche de vitrine vide — le jour vient d'en haut, un filet intérieur, le socle au pied ; le cadenas dans son
   médaillon, puis la place et le niveau qui l'ouvre */
.g-armurerie .arp-place.is-fermee { align-content: center; gap: 6px; border: 1px solid rgba(222,184,92,.14); color: var(--text-dim); overflow: hidden;
  background: radial-gradient(90% 55% at 50% 0%, rgba(110,134,255,.09), transparent 72%), linear-gradient(180deg, #10142a, #080a14);
  box-shadow: inset 0 0 0 6px #0a0d1a, inset 0 0 0 7px rgba(222,184,92,.1), 0 6px 14px rgba(0,0,0,.3); }
.g-armurerie .arp-place.is-fermee::after { content: ""; position: absolute; left: 22%; right: 22%; bottom: 16px; height: 1px; background: linear-gradient(90deg, transparent, rgba(222,184,92,.4), transparent); }
.g-armurerie .arp-place-v { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 4px; border-radius: 50%; border: 1px solid rgba(222,184,92,.28); background: rgba(5,6,11,.45); color: var(--gold-lo); }
.g-armurerie .arp-place-v .arp-ic { width: 18px; height: 18px; }
.g-armurerie .arp-place-o { font: 600 14px/1.2 var(--font-ui); color: var(--text); text-align: center; }
.g-armurerie .arp-place-c { font: 600 12px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); text-align: center; }
.g-armurerie .arp-place.is-libre { border: 1px dashed rgba(222,184,92,.45); background: rgba(5,6,11,.35); }
.g-armurerie .arp-place.is-libre.is-choisie { border-style: solid; border-color: var(--gold-hi); background: rgba(222,184,92,.07); }
.g-armurerie .arp-place-b { width: 100%; height: 100%; display: grid; place-items: center; align-content: center; gap: 8px; padding: 6px; border: 0; border-radius: 6px; background: transparent;
  color: var(--gold); cursor: pointer; font: 600 14px/1.2 var(--font-ui); text-align: center; transition: background .2s, color .2s; }
.g-armurerie .arp-place-b .arp-ic { width: 22px; height: 22px; }
.g-armurerie .arp-place-b:hover { background: rgba(222,184,92,.07); color: var(--gold-hi); }
.g-armurerie .arp-place-b:focus-visible, .g-armurerie .arp-place-x:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 2px; }
.g-armurerie .arp-place.is-pleine { place-items: stretch; }
.g-armurerie .arp-place .arm-carte { width: 100%; height: 100%; }
.g-armurerie .arp-place-u { font: 500 12px/1.3 var(--font-ui); color: var(--text-dim); }
.g-armurerie .arp-place-x { position: absolute; top: 6px; right: 6px; z-index: 3; display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border-radius: 50%;
  border: 1px solid var(--line); background: rgba(5,6,11,.72); color: var(--text-dim); cursor: pointer; transition: color .2s, border-color .2s; }
.g-armurerie .arp-place-x .arp-ic { width: 14px; height: 14px; }
.g-armurerie .arp-place-x:hover { color: var(--text); border-color: var(--gold); }

/* la tuile d'arme du système, pour la vitrine et les albums : laque, lueur du palier montant du bas, filet, barre de 4 px ; l'arme en
   capitales (12), la finition (15) ; rien n'est coupé (un nom long passe sur deux lignes, l'image cède la place) */
.g-armurerie .arp-place .arm-carte-c, .g-armurerie .arp-case .arm-carte-c, .g-armurerie .arp-choix-a .arm-carte-c { border: 1px solid rgba(222,184,92,.14); border-radius: 6px;
  background: radial-gradient(120% 70% at 50% 108%, color-mix(in srgb, var(--arm-rc) 22%, transparent), transparent 68%), linear-gradient(180deg, #161c38, #0b0e1c);
  box-shadow: inset 0 1px 0 rgba(247,221,143,.08), 0 6px 14px rgba(0,0,0,.4); }
.g-armurerie .arp-place .arm-corps, .g-armurerie .arp-case .arm-corps, .g-armurerie .arp-choix-a .arm-corps { padding: 12px 12px 14px; }
.g-armurerie .arp-place .arm-carte-img img, .g-armurerie .arp-case .arm-carte-img img, .g-armurerie .arp-choix-a .arm-carte-img img { filter: drop-shadow(0 8px 10px rgba(0,0,0,.55)); }
/* l'image tient dans sa zone : la piste ne grandit pas avec elle, elle ne descend donc jamais sur le nom de l'arme */
.g-armurerie .arp-place .arm-carte-img, .g-armurerie .arp-case .arm-carte-img, .g-armurerie .arp-choix-a .arm-carte-img { grid-template: minmax(0, 1fr) / minmax(0, 1fr); }
.g-armurerie .arp-place .arm-carte-t, .g-armurerie .arp-case .arm-carte-t, .g-armurerie .arp-choix-a .arm-carte-t { gap: 2px; padding-top: 6px; }
.g-armurerie .arp-place .arm-carte-a, .g-armurerie .arp-case .arm-carte-a, .g-armurerie .arp-choix-a .arm-carte-a { font: 600 12px/1.3 var(--font-ui); letter-spacing: .08em; white-space: normal; overflow: visible; }
.g-armurerie .arp-place .arm-carte-f, .g-armurerie .arp-case .arm-carte-f, .g-armurerie .arp-choix-a .arm-carte-f { font: 600 15px/1.25 var(--font-ui); white-space: normal; overflow: visible; text-wrap: balance; }
.g-armurerie .arp-place .arm-carte-barre, .g-armurerie .arp-case .arm-carte-barre, .g-armurerie .arp-choix-a .arm-carte-barre { height: 4px; box-shadow: 0 -6px 16px -5px var(--arm-rc); }

/* le choix d'une arme pour la vitrine : un volet sur toute la largeur, les tuiles de l'inventaire */
.g-armurerie .arp-choix { display: grid; gap: 16px; padding: 20px 24px 24px; border-color: var(--line-strong); }
.g-armurerie .arp-choix[hidden] { display: none; }
.g-armurerie .arp-choix-t { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.g-armurerie .arp-choix-n { margin: 0; font: 600 16px/1.3 var(--font-ui); color: var(--text); }
.g-armurerie .arp-choix-g { --arp-ch-n: 9; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; max-height: 476px; overflow-y: auto; padding: 6px 4px 8px; scrollbar-width: thin; scrollbar-color: rgba(222,184,92,.32) transparent; }
.g-armurerie .arp-choix-a { position: relative; flex: 0 0 calc((100% - (var(--arp-ch-n) - 1) * 12px) / var(--arp-ch-n) - .1px); min-width: 0; padding: 0; border: 0; border-radius: 6px;
  background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.g-armurerie .arp-choix-a .arm-carte { width: 100%; height: auto; aspect-ratio: 1 / 1.12; }
.g-armurerie .arp-choix-a .arm-carte-c { transition: transform .18s var(--arm-ease-sortie), border-color .18s, box-shadow .18s; }
.g-armurerie .arp-choix-a:hover .arm-carte-c { transform: translateY(-3px); border-color: color-mix(in srgb, var(--arm-rc) 45%, transparent); box-shadow: 0 12px 24px rgba(0,0,0,.5); }
.g-armurerie .arp-choix-a:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 3px; }
.g-armurerie .arp-choix-v { margin-top: 2px; font: 700 16px/1.2 var(--font-num); color: var(--gold-hi); }

/* albums : la légende en trois règles, l'étagère des caisses (10 par rangée, la dernière centrée), la page de l'album choisi */
.g-armurerie .arp-sec-album .arp-sec-t { justify-content: flex-start; gap: 6px 20px; }
.g-armurerie .arp-regles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 32px; margin: 0 0 20px; padding: 0 0 20px; list-style: none; border-bottom: 1px solid rgba(222,184,92,.14); }
.g-armurerie .arp-regles li { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 12px; font: 500 14px/1.5 var(--font-ui); color: var(--text-dim); }
.g-armurerie .arp-regles .arp-ic { width: 22px; height: 22px; color: var(--gold); }
.g-armurerie .arp-albums { --arp-al-n: 10; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 28px; }
.g-armurerie .arp-al { flex: 0 0 calc((100% - (var(--arp-al-n) - 1) * 8px) / var(--arp-al-n) - .1px); display: grid; justify-items: center; align-content: start; gap: 4px; min-width: 0; padding: 10px 6px 10px;
  border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--text-dim); cursor: pointer; font: inherit; text-align: center;
  transition: background .2s, border-color .2s, color .2s, transform .18s var(--arm-ease-sortie); }
.g-armurerie .arp-al:hover { color: var(--text); background: rgba(222,184,92,.05); transform: translateY(-2px); }
.g-armurerie .arp-al.is-on { color: var(--text); border-color: var(--line-strong); background: linear-gradient(180deg, rgba(222,184,92,.12), rgba(222,184,92,.03)); }
.g-armurerie .arp-al:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 2px; }
.g-armurerie .arp-al-img { position: relative; display: grid; place-items: center; }
.g-armurerie .arp-al-img img { display: block; width: 84px; height: 63px; object-fit: contain; filter: drop-shadow(0 6px 7px rgba(0,0,0,.5)); }
.g-armurerie .arp-al.is-vierge .arp-al-img img { filter: saturate(.55) brightness(.78) drop-shadow(0 6px 7px rgba(0,0,0,.5)); }
.g-armurerie .arp-al-ok { position: absolute; right: -4px; bottom: -2px; display: grid; width: 22px; height: 22px; border-radius: 50%; background: var(--bg-1); color: var(--gold-hi); }
.g-armurerie .arp-al-ok svg { display: block; width: 100%; height: 100%; }
.g-armurerie .arp-al-n { display: grid; align-content: center; min-height: 36px; font: 600 14px/1.25 var(--font-ui); text-wrap: balance; }
.g-armurerie .arp-al-v { font: 600 13px/1.2 var(--font-num); white-space: nowrap; }
.g-armurerie .arp-al.is-complet .arp-al-v { color: var(--gold-hi); }
.g-armurerie .arp-al-j { display: block; width: 56px; height: 3px; margin-top: 2px; border-radius: 3px; background: rgba(222,184,92,.16); overflow: hidden; }
.g-armurerie .arp-al-j i { display: block; height: 100%; border-radius: inherit; background: var(--gold); }
.g-armurerie .arp-al.is-complet .arp-al-j i { background: var(--gold-hi); }

/* la page : son titre au centre entre deux filets, puis les paliers côte à côte sur des lignes centrées (mises en lignes par le script) */
.g-armurerie .arp-page { position: relative; display: grid; gap: 20px; min-width: 0; container-type: inline-size; }
.g-armurerie .arp-page-t { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 24px; }
.g-armurerie .arp-page-t::before, .g-armurerie .arp-page-t::after { content: ""; flex: 1 1 40px; height: 1px; background: linear-gradient(90deg, transparent, rgba(222,184,92,.4)); }
.g-armurerie .arp-page-t::after { background: linear-gradient(90deg, rgba(222,184,92,.4), transparent); }
.g-armurerie .arp-page-img img { display: block; width: 96px; height: 72px; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0,0,0,.55)); }
.g-armurerie .arp-page-n { margin: 0; font: 600 20px/1.2 var(--font-ui); color: var(--text); }
.g-armurerie .arp-page-v { font: 500 14px/1 var(--font-ui); color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-page-v b { margin-right: 4px; font: 700 24px/1 var(--font-num); color: var(--gold-hi); }
.g-armurerie .arp-eclats { display: inline-flex; align-items: center; gap: 6px; font: 500 14px/1 var(--font-ui); color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-eclats .arp-ic { width: 18px; height: 18px; color: var(--gold); }
.g-armurerie .arp-eclats b { font: 700 16px/1 var(--font-num); color: var(--text); }
.g-armurerie .arp-page-ok, .g-armurerie .arp-pg-ok { display: inline-flex; align-items: center; gap: 6px; font: 600 12px/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--gold-hi); white-space: nowrap; }
.g-armurerie .arp-page-ok .arp-ic { width: 16px; height: 16px; }
.g-armurerie .arp-pg-ok .arp-ic { width: 14px; height: 14px; }
.g-armurerie .arp-lignes { display: grid; gap: 20px; min-width: 0; }
.g-armurerie .arp-ligne { display: flex; justify-content: center; align-items: flex-end; gap: 12px; min-width: 0; }
.g-armurerie .arp-pg { display: grid; gap: 10px; width: min-content; min-width: 0; }
.g-armurerie .arp-pg-t { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; min-height: 18px; margin: 0; font-weight: 600; }
.g-armurerie .arp-pg-t .arm-palier { font-size: 13px; }
.g-armurerie .arp-pg-v { font: 600 13px/1 var(--font-num); color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-pg-suite { font: 500 13px/1 var(--font-ui); font-style: italic; color: var(--text-dim); }
.g-armurerie .arp-pg.is-suite .arm-palier { opacity: .78; }
.g-armurerie .arp-pg-rare { display: inline-flex; align-items: center; gap: 8px; }
.g-armurerie .arp-pg-ou { font: 500 13px/1 var(--font-ui); color: var(--text-dim); }
.g-armurerie .arp-cases { display: flex; gap: 12px; }
.g-armurerie .arp-case { position: relative; flex: none; display: block; width: calc((100cqw - (var(--arp-cols, 9) - 1) * 12px) / var(--arp-cols, 9) - .1px); min-width: 0; padding: 0; border: 0; border-radius: 6px;
  background: none; color: inherit; font: inherit; text-align: left; }
.g-armurerie .arp-case .arm-carte { width: 100%; height: auto; aspect-ratio: 1 / 1.12; }
/* sous le nom : la cote par ouverture ; à droite le coût du tampon d'une case vide, ou « Tamponnée » */
.g-armurerie .arp-case-b { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 20px; margin-top: 3px; }
.g-armurerie .arp-case-p { font: 500 13px/1 var(--font-num); color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-case-cout { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 7px; border-radius: 999px; border: 1px solid var(--line); background: rgba(5,6,11,.5);
  font: 600 12px/1 var(--font-num); color: var(--text-dim); white-space: nowrap; }
.g-armurerie .arp-case-cout .arp-ic { width: 11px; height: 11px; }
.g-armurerie .arp-case-cout.is-ok { border-color: var(--gold); color: var(--gold-hi); }
.g-armurerie .arp-case-sceau { display: inline-flex; align-items: center; gap: 5px; font: 600 12px/1 var(--font-ui); letter-spacing: .04em; color: var(--gold); white-space: nowrap; }
.g-armurerie .arp-case-sceau .arp-ic { width: 14px; height: 14px; color: var(--gold-hi); }
/* une case vide : un emplacement en pointillé, l'arme en fantôme, son nom lisible ; survol et choix la rallument */
.g-armurerie .arp-case.is-vide { cursor: pointer; }
.g-armurerie .arp-case.is-vide .arm-carte-c { border: 1px dashed rgba(222,184,92,.3); background: rgba(5,6,11,.38); box-shadow: none;
  transition: transform .18s var(--arm-ease-sortie), border-color .18s, box-shadow .18s; }
.g-armurerie .arp-case.is-vide .arm-carte-img img, .g-armurerie .arp-case.is-vide .arm-etoile { filter: grayscale(1) brightness(.6); opacity: .55; transition: filter .2s var(--arm-ease-douce), opacity .2s; }
.g-armurerie .arp-case.is-vide .arm-carte-f { color: var(--text-dim); }
.g-armurerie .arp-case.is-vide .arm-carte-barre { opacity: .3; box-shadow: none; }
.g-armurerie .arp-case.is-vide:hover .arm-carte-c { transform: translateY(-3px); border-color: color-mix(in srgb, var(--arm-rc) 45%, transparent); box-shadow: 0 12px 24px rgba(0,0,0,.5); }
.g-armurerie .arp-case.is-vide:hover .arm-carte-img img, .g-armurerie .arp-case.is-vide:hover .arm-etoile { filter: grayscale(.4) brightness(.85); opacity: .85; }
.g-armurerie .arp-case.is-choisie .arm-carte-c { border: 1px solid var(--gold-hi); box-shadow: 0 0 0 1px var(--gold-hi), 0 12px 24px rgba(0,0,0,.5); }
.g-armurerie .arp-case.is-choisie .arm-carte-img img, .g-armurerie .arp-case.is-choisie .arm-etoile { filter: none; opacity: .95; }
.g-armurerie .arp-case:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 3px; }
/* la case tamponnée : l'arme à mi-fantôme (le tampon remplit la case sans donner d'arme), la barre éteinte */
.g-armurerie .arp-case.is-tampon .arm-carte-img img, .g-armurerie .arp-case.is-tampon .arm-etoile { filter: grayscale(.5) brightness(.82); opacity: .8; }
.g-armurerie .arp-case.is-tampon .arm-carte-barre { opacity: .45; box-shadow: none; }
/* la case « pièce rare » : la même tuile, lueur or à 30 %, le médaillon MINUIT en filet de laiton à la place de l'image */
.g-armurerie .arp-case .arp-carte-rare .arm-carte-c { background: radial-gradient(120% 70% at 50% 108%, color-mix(in srgb, var(--arm-r-or) 30%, transparent), transparent 68%), linear-gradient(180deg, #161c38, #0b0e1c); }
.g-armurerie .arp-case.is-vide .arp-carte-rare .arm-carte-c { background: rgba(5,6,11,.38); }
.g-armurerie .arp-carte-rare .arm-etoile { display: block; width: 46%; height: auto; max-height: 100%; aspect-ratio: 1; }
.g-armurerie .arp-case.is-neuve .arm-carte-c { animation: arp-case-in .7s var(--arm-ease-sortie) both; }
.g-armurerie .arp-case.is-tampon.is-neuve .arp-case-sceau .arp-ic { animation: arp-sceau .62s var(--arm-ease-sortie) both; }
@keyframes arp-case-in { from { filter: grayscale(1) brightness(.55); transform: scale(.95); } to { filter: none; transform: none; } }
/* le tampon : une barre dans le fil de la page, sous la ligne de la case choisie ; sa pointe vise la case (--arp-x, posé par le script) */
.g-armurerie .arp-tampon { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: -6px; padding: 14px 20px;
  border: 1px solid var(--line-strong); border-radius: 6px; background: linear-gradient(180deg, #151a38, #0b0e1c); box-shadow: inset 0 1px 0 rgba(247,221,143,.08), 0 10px 22px rgba(0,0,0,.35); }
.g-armurerie .arp-tampon::before { content: ""; position: absolute; left: var(--arp-x, 50%); top: -6px; width: 10px; height: 10px; margin-left: -5px; transform: rotate(45deg);
  background: #151a38; border-left: 1px solid var(--line-strong); border-top: 1px solid var(--line-strong); }
.g-armurerie .arp-tampon[hidden] { display: none; }
.g-armurerie .arp-tampon-t { margin: 0; flex: 1 1 320px; font: 500 14px/1.5 var(--font-ui); color: var(--text-dim); }
.g-armurerie .arp-tampon-t b { font-weight: 600; color: var(--text); }
.g-armurerie .arp-tamponner:disabled { opacity: .45; cursor: default; box-shadow: none; }

/* ---------- animations réduites : rien ne bouge, l'état se lit tout de suite ---------- */
.reduce-motion .g-armurerie .arp-q.is-scelle .arp-q-sceau, .reduce-motion .g-armurerie .arp-ql.is-scelle .arp-ql-sceau, .reduce-motion .g-armurerie .arp-case.is-neuve .arm-carte-c,
.reduce-motion .g-armurerie .arp-case.is-tampon.is-neuve .arp-case-sceau .arp-ic, .reduce-motion .g-armurerie .arp-medaille.is-reflet::after { animation: none; }
.reduce-motion .g-armurerie .arp-sc, .reduce-motion .g-armurerie .arp-anneau, .reduce-motion .g-armurerie .arp-al, .reduce-motion .g-armurerie .arp-passe-barre i, .reduce-motion .g-armurerie .arp-place-b, .reduce-motion .g-armurerie .arp-place-x,
.reduce-motion .g-armurerie .arp-case.is-vide .arm-carte-c, .reduce-motion .g-armurerie .arp-choix-a .arm-carte-c, .reduce-motion .g-armurerie .arp-case.is-vide .arm-carte-img img, .reduce-motion .g-armurerie .arp-case.is-vide .arm-etoile { transition: none; }
.reduce-motion .g-armurerie .arp-al:hover, .reduce-motion .g-armurerie .arp-cadre:hover:not(:disabled) .arp-anneau, .reduce-motion .g-armurerie .arp-case.is-vide:hover .arm-carte-c, .reduce-motion .g-armurerie .arp-choix-a:hover .arm-carte-c { transform: none; }

/* ---------- 1366 et moins ---------- */
@media (max-width: 1499px) {
  .g-armurerie .arp-q { padding: 0 12px; column-gap: 8px; }
  .g-armurerie .arp-sq, .g-armurerie .arp-ss, .g-armurerie .arp-sc { padding-left: 14px; padding-right: 14px; }
  .g-armurerie .arp-soiree { grid-template-columns: minmax(0, 1fr) minmax(220px, auto) auto; }
  .g-armurerie .arp-ss { grid-template-columns: 50px minmax(0, 1fr) auto; gap: 4px 10px; }
  .g-armurerie .arp-ss-img img { width: 50px; height: 38px; }
  .g-armurerie .arp-cc-soir.is-large { column-gap: 20px; padding-right: 20px; }
  .g-armurerie .arp-cc-soir.is-large .arp-cc-car { column-gap: 22px; }
}
@media (max-width: 1180px) {
  .g-armurerie .arp-soiree { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .g-armurerie .arp-sq { grid-column: 1 / -1; border-bottom: 1px solid var(--line); }
  .g-armurerie .arp-soiree > .arp-ss { border-left: 0; }
}
@media (max-height: 860px) {
  .g-armurerie .ar-vue-soir { gap: 10px; padding-top: 10px; }
  .g-armurerie .arp-sq { gap: 7px; padding-top: 10px; padding-bottom: 10px; }
  .g-armurerie .ar-vue-carnet { gap: 14px; padding-top: 12px; }
  .g-armurerie .arp-ident { padding-top: 14px; padding-bottom: 14px; }
  .g-armurerie .arp-medaille--l { --t: 66px; }
}

/* ---------- le Carnet sur un écran plus étroit (passe QUALITÉ du 04/10) ---------- */
/* moins de 1800 px : l'en-tête s'empile (la fiche en deux temps : qui il est ; où il en est, avec la phrase du jour sous la ligne
   d'XP ; la passe dessous sur toute la largeur) et les deux panneaux aussi (la vitrine garde de vraies tuiles) */
@media (max-width: 1799px) {
  .g-armurerie .arp-ident { grid-template-columns: minmax(0, 1fr); row-gap: 20px; padding-right: 24px; }
  .g-armurerie .arp-fiche { grid-template-columns: minmax(0, auto) minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; gap: 8px 56px; }
  .g-armurerie .arp-fiche-t { grid-row: 1 / 3; }
  .g-armurerie .arp-c-xp { align-self: end; }
  .g-armurerie .arp-c-jour { align-self: start; max-width: 76ch; }
  .g-armurerie .arp-passe { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .g-armurerie .arp-passe::before { left: 50%; top: -4px; margin: 0 0 0 -4px; }
  .g-armurerie .arp-c-g { grid-template-columns: minmax(0, 1fr); }
  .g-armurerie .arp-vit { grid-template-columns: repeat(5, minmax(0, 220px)); justify-content: center; }
  .g-armurerie .arp-al-img img { width: 72px; height: 54px; }
  .g-armurerie .arp-choix-g { --arp-ch-n: 7; }
  .g-armurerie .arp-r-titre.is-long { font-size: 16px; }
}
/* moins de 1280 px : la frise garde 71 px par unité au moins (elle en compte 16 au plus : elle tient encore à 1280) ; plus étroit,
   elle défile de côté dans son cadre */
@media (max-width: 1279px) {
  .g-armurerie .arp-passe-d { overflow-x: auto; scrollbar-width: thin; scrollbar-color: rgba(222,184,92,.32) transparent; }
  .g-armurerie .arp-passe-c { min-width: calc(var(--arp-u, 12) * 71px); padding-bottom: 8px; }
}
@media (max-width: 1179px) {
  .g-armurerie .arp-fiche { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: 12px; }
  .g-armurerie .arp-fiche-t { grid-row: auto; }
  .g-armurerie .arp-profil-h { grid-template-columns: minmax(0, 1fr); }
  .g-armurerie .arp-regles { grid-template-columns: minmax(0, 1fr); }
  .g-armurerie .arp-albums { --arp-al-n: 5; }
  .g-armurerie .arp-choix-g { --arp-ch-n: 5; }
}
/* le téléphone : une colonne ; la passe et l'étagère défilent de côté ; la récompense d'une quête passe sous son nom */
@media (max-width: 640px) {
  .g-armurerie .ar-vue-carnet { gap: 20px; padding: 16px 4px 40px; }
  .g-armurerie .arp-ident, .g-armurerie .arp-sec, .g-armurerie .arp-choix { padding: 16px; }
  .g-armurerie .arp-fiche-t { min-height: 72px; gap: 16px; }
  .g-armurerie .arp-medaille--l { --t: 72px; }
  .g-armurerie .arp-c-titre, .g-armurerie .arp-c-titre.is-niveau { font-size: 24px; }
  .g-armurerie .arp-c-titre.is-long { font-size: 20px; }
  .g-armurerie .arp-passe, .g-armurerie .arp-passe-d { margin: 0 -16px; padding: 0 16px; }
  .g-armurerie .arp-c-g { gap: 20px; }
  .g-armurerie .arp-ql-t { flex-wrap: wrap; gap: 2px 12px; }
  .g-armurerie .arp-ql-p { flex: 1 0 100%; min-width: 0; text-align: left; }
  .g-armurerie .arp-c-serie { grid-template-columns: minmax(0, 1fr); }
  .g-armurerie .arp-c-soir { grid-template-columns: auto minmax(0, 1fr); }
  .g-armurerie .arp-c-soir > .btn { grid-column: 1 / -1; height: 44px; margin-top: 8px; }
  .g-armurerie .arp-cadres { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 4px; }
  .g-armurerie .arp-cadre { flex: 0 0 calc((100% - 12px) / 4 - .1px); }
  .g-armurerie .arp-vit { display: flex; flex-wrap: wrap; justify-content: center; }
  .g-armurerie .arp-place { flex: 0 0 calc((100% - 12px) / 2); }
  .g-armurerie .arp-albums { flex-wrap: nowrap; justify-content: flex-start; margin: 0 -16px 20px; padding: 0 16px 8px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: rgba(222,184,92,.32) transparent; }
  .g-armurerie .arp-al { flex: 0 0 112px; scroll-snap-align: start; }
  .g-armurerie .arp-al:hover { transform: none; }
  .g-armurerie .arp-page-t::before, .g-armurerie .arp-page-t::after { display: none; }
  .g-armurerie .arp-page-n { flex: 1 0 100%; text-align: center; }
  .g-armurerie .arp-place .arm-corps, .g-armurerie .arp-case .arm-corps, .g-armurerie .arp-choix-a .arm-corps { padding: 10px 10px 12px; }
  .g-armurerie .arp-choix-g { --arp-ch-n: 2; }
  .g-armurerie .arp-choix-a .arm-carte { aspect-ratio: 1 / 1.55; }      /* quatre lignes sous l'image (arme, finition, usure, valeur) */
  .g-armurerie .arp-tampon { padding: 12px 14px; }
  .g-armurerie .arp-tamponner { flex: 1 0 100%; height: 44px; }
}
/* N23 (revue finale R2, n° 13, de 360 à 1920 px) : « Niveau 1 » rogné de 2 px en hauteur : sa boîte de texte (19 px) dépasse la ligne
   (13,5 px × 1,2 = 16,2) que coupait overflow: hidden, posé pour les « … » d'un titre trop long. La ligne ne coupe plus qu'en largeur
   (overflow-x: clip : les « … » restent ; min-width: 0 : la largeur minimale que donnait hidden dans la grille, sans quoi un titre long
   élargirait la ligne sur « Carnet ») ; aucune taille ni aucune place ne change. */
.g-armurerie .arp-sc-l { overflow-x: clip; overflow-y: visible; min-width: 0; }
