/* TeamKit — La fiche de joueur (6 oct. 2026, maquette docs/communautes/maquette-fiche-joueur.html).
   Un seul style pour la page publique /joueur/<slug> (joueur.php) ET l'aperçu de Mon espace (player/js/fiche.js) :
   tout est sous .jf-fiche (préfixe jf-), les modèles sont des classes t-neon · t-carte · t-cv · t-stream ·
   t-artiste · t-saison (+ s-halloween / s-noel) · t-fondateur (rang 4 seulement), le rang de réputation
   r-nouveau … r-platine. Page : préfixe jp-.
   1.1.0 (7 oct. 2026) : version ORDINATEUR. La fiche porte deux enveloppes, .jf-objet (la carte) et .jf-corps (les
   blocs) : en `display: contents` sur téléphone et tablette (rendu identique à la 1.0), puis, quand la PAGE fait au
   moins 960 px (requête de conteneur « jf-page » posée sur .jp-main et sur l'aperçu de Mon espace), la carte passe à
   gauche (collante si l'écran est assez haut) et les blocs s'étalent à droite, chaque modèle à sa façon (fin du fichier).
   Modèle 👑 Fondateur : bandeau, logo, chiffres de TeamKit et frise de l'histoire. */

.jf-fiche {
  --a1: #00f0ff; --a2: #7b2cbf; --fond-f: #101018; --bloc: rgba(255,255,255,.035); --bord: rgba(255,255,255,.08);
  --txt: #fff; --txt2: #b8b8c8; --vert: #00ff88; --or: #f5c542;
  --f-titre: 'Orbitron', sans-serif; --f-corps: 'Rajdhani', sans-serif;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start;
  background: var(--fond-f); color: var(--txt); border-radius: 18px; padding: 0 0 16px; overflow: hidden;
  border: 1px solid var(--bord); position: relative; font-family: var(--f-corps); font-size: 17px; line-height: 1.45; text-align: left;
}
.jf-fiche *, .jf-fiche *::before, .jf-fiche *::after { box-sizing: border-box; }
.jf-fiche [hidden] { display: none !important; }
.jf-objet, .jf-corps { display: contents; }
.jf-objet > .jf-bloc, .jf-corps > .jf-bloc { margin-inline: 16px; }
.jf-fiche a { color: inherit; }
.jf-bloc { background: var(--bloc); border: 1px solid var(--bord); border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.jf-bloc h2 { font-family: var(--f-titre); text-transform: uppercase; letter-spacing: .03em; font-size: .7rem; color: var(--txt2); margin: 0; font-weight: 700; background: none; -webkit-text-fill-color: currentColor; }
.jf-large { grid-column: 1 / -1; }
.jf-ban { grid-column: 1 / -1; height: 150px; background: linear-gradient(135deg, rgba(0,240,255,.25), rgba(123,44,191,.35)); background-size: cover; background-position: center 30%; position: relative; }
.jf-ban::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, var(--fond-f)); }
.jf-deco { position: absolute; right: 14px; top: 10px; z-index: 2; font-size: 1.3rem; letter-spacing: .3em; display: none; }
.jf-entete { grid-column: 1 / -1; margin: -70px 16px 0; position: relative; z-index: 1; display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.jf-avatar { width: 104px; height: 104px; border-radius: 26px; background: linear-gradient(135deg, var(--a1), var(--a2)); display: grid; place-items: center; font-family: var(--f-titre); font-weight: 900; font-size: 2.6rem; border: 4px solid var(--fond-f); flex: none; box-shadow: 0 0 24px rgba(0,240,255,.25); overflow: hidden; position: relative; }
.jf-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jf-vinyle-centre { display: none; }
.jf-qui { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 4px; padding-bottom: 4px; }
.jf-fiche .jf-pseudo { font-family: var(--f-titre); font-weight: 900; font-size: 1.7rem; letter-spacing: .02em; line-height: 1.1; margin: 0; color: var(--txt); background: none; -webkit-text-fill-color: currentColor; text-transform: none; overflow-wrap: anywhere; }
.jf-sous { color: var(--txt2); font-size: .95rem; }
.jf-badges { display: flex; gap: 5px; flex-wrap: wrap; }
.jf-badge { font-size: .82rem; border-radius: 99px; padding: 1px 9px; border: 1px solid var(--bord); background: rgba(255,255,255,.05); white-space: nowrap; }
.jf-badge.rep.r-or, .jf-badge.rep.r-platine { border-color: rgba(245,197,66,.6); color: var(--or); }
.jf-badge.rep.r-platine { border-color: rgba(167,139,250,.7); color: #c4b5fd; }
.jf-badge.sup { border-color: rgba(168,85,247,.6); color: #c58cff; }
.jf-badge.cdm, .jf-badge.fiche { border-color: rgba(0,255,136,.5); color: var(--vert); }
.jf-badge.live { border-color: rgba(145,70,255,.6); color: #b794ff; }
.jf-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.jf-btn { border: 1px solid var(--bord, #2a2a3a); background: rgba(0,0,0,.25); border-radius: 10px; padding: 6px 13px; font: 700 .92rem/1.3 'Rajdhani', sans-serif; text-decoration: none; color: var(--txt, #fff); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; letter-spacing: 0; text-transform: none; }
.jf-btn:hover { border-color: var(--a1, #00f0ff); }
.jf-btn:focus-visible, .jf-fiche button:focus-visible, .jf-fiche a:focus-visible { outline: 2px solid var(--a1, #00f0ff); outline-offset: 2px; }
.jf-btn.prim { background: linear-gradient(135deg, var(--a1, #00f0ff), var(--a2, #7b2cbf)); border: 0; color: #fff; }
.jf-btn.jf-statique { cursor: default; }
.jf-btn.jf-statique:hover { border-color: var(--bord); }
.jf-jeux { display: flex; flex-direction: column; gap: 8px; }
.jf-jeu { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.jf-jeu img, .jf-jeu-ini { width: 44px; height: 66px; object-fit: cover; border-radius: 6px; }
.jf-jeu-ini { display: grid; place-items: center; background: rgba(255,255,255,.07); font-family: var(--f-titre); font-weight: 900; color: var(--txt2); }
.jf-nom { font-weight: 700; overflow-wrap: anywhere; }
.jf-nom a { text-decoration: none; }
.jf-nom a:hover { text-decoration: underline; }
.jf-barre { height: 7px; border-radius: 99px; background: rgba(255,255,255,.07); overflow: hidden; margin-top: 4px; }
.jf-barre i { display: block; height: 100%; background: linear-gradient(90deg, var(--a1), var(--a2)); border-radius: 99px; }
.jf-h { font-family: var(--f-titre); font-weight: 700; font-size: 1.05rem; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.jf-h small { display: block; font-family: var(--f-corps); font-size: .75rem; color: var(--txt2); font-weight: 600; }
.jf-src { font-size: .8rem; color: var(--txt2); margin: 0; }
.jf-src a { color: var(--a1); }
.jf-vide { font-size: .9rem; color: var(--txt2); margin: 0; border: 1px dashed var(--bord); border-radius: 10px; padding: 8px 10px; }
.jf-vide a { color: var(--a1); }
.jf-encejeu { font-size: .9rem; color: var(--vert); }
.jf-puces { display: flex; gap: 6px; flex-wrap: wrap; }
.jf-puce { border: 1px solid var(--bord); border-radius: 99px; padding: 2px 10px; font-size: .9rem; background: rgba(255,255,255,.04); }
.jf-commu { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; align-items: center; text-decoration: none; border-radius: 10px; }
.jf-commu:hover b { text-decoration: underline; }
.jf-commu small { display: block; color: var(--txt2); }
.jf-ic { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font-family: var(--f-titre); font-weight: 900; background: linear-gradient(135deg, #1f6f5a, #0f3d55); color: #fff; }
.jf-ic-srv { background: linear-gradient(135deg, #7a2a2a, #3d1530); }
.jf-enligne { color: var(--vert); font-weight: 700; }
.jf-lecteur { aspect-ratio: 16 / 9; width: 100%; border-radius: 10px; background: linear-gradient(135deg, #1b1033, #2b1257); display: grid; place-items: center; position: relative; overflow: hidden; }
.jf-lecteur iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.jf-play { width: 60px; height: 60px; border-radius: 50%; background: rgba(145,70,255,.9); display: grid; place-items: center; font-size: 1.5rem; color: #fff; border: 0; cursor: pointer; }
.jf-etiq { position: absolute; left: 10px; top: 10px; font-size: .78rem; background: rgba(0,0,0,.6); border-radius: 6px; padding: 1px 8px; }
.jf-clips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.jf-clip { aspect-ratio: 16 / 9; border-radius: 8px; background: linear-gradient(135deg, #2b1257, #1b1033); background-size: cover; background-position: center; border: 0; color: #fff; display: flex; align-items: flex-end; padding: 4px 6px; font: 700 .74rem/1.15 'Rajdhani', sans-serif; text-shadow: 0 1px 3px #000; cursor: pointer; text-align: left; }
.jf-sons { display: flex; flex-direction: column; gap: 6px; }
.jf-son { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; align-items: center; background: rgba(255,255,255,.03); border-radius: 10px; padding: 6px 8px; }
.jf-son button { width: 36px; height: 36px; border-radius: 50%; border: 0; background: linear-gradient(135deg, var(--a1), var(--a2)); color: #fff; font-size: .9rem; cursor: pointer; }
.jf-son b { overflow-wrap: anywhere; }
.jf-onde { display: flex; gap: 2px; align-items: center; height: 18px; margin-top: 3px; overflow: hidden; }
.jf-onde i { display: block; width: 3px; flex: none; border-radius: 2px; background: var(--a1); opacity: .65; }
.jf-stats { font-size: .82rem; color: var(--txt2); text-align: right; white-space: nowrap; }
.jf-caps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.jf-caps div { aspect-ratio: 16 / 10; border-radius: 8px; background-size: cover; background-position: center; position: relative; }
.jf-caps span { position: absolute; top: 4px; left: 4px; font-size: .7rem; background: rgba(0,0,0,.65); border-radius: 5px; padding: 0 6px; }
.jf-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.jf-chiffres div { background: rgba(255,255,255,.04); border-radius: 10px; padding: 8px 4px; text-align: center; min-width: 0; }
.jf-chiffres b { display: block; font-family: var(--f-titre); font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.jf-chiffres span { font-size: .78rem; color: var(--txt2); }
.jf-reseaux { display: flex; gap: 6px; flex-wrap: wrap; }
.jf-reseaux a { text-decoration: none; border: 1px solid var(--bord); border-radius: 99px; padding: 2px 11px; font-size: .9rem; font-weight: 600; }
.jf-reseaux a:hover { border-color: var(--a1); }
.jf-cv-seul, .jf-carte-seule { display: none !important; }
.jf-rarete { font-family: var(--f-titre); font-size: .7rem; letter-spacing: .14em; color: var(--or); border: 1px solid rgba(245,197,66,.5); border-radius: 99px; padding: 2px 12px; align-self: center; }
.jf-carac { display: flex; gap: 6px; text-align: center; }
.jf-carac div { flex: 1 1 0; min-width: 0; border: 1px solid rgba(245,197,66,.3); border-radius: 10px; padding: 6px 4px; background: rgba(0,0,0,.25); }
.jf-carac b { display: block; font-family: var(--f-titre); font-size: 1.3rem; color: var(--or); font-variant-numeric: tabular-nums; }
.jf-carac span { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--txt2); }
.jf-grille { display: grid; grid-template-columns: 44px repeat(7, minmax(0, 1fr)); gap: 3px; font-size: .74rem; align-items: center; }
.jf-grille b { text-align: center; color: var(--txt2); font-weight: 600; }
.jf-grille i { display: block; height: 16px; border-radius: 4px; background: #e6e9f0; }
.jf-grille i.on { background: #2b6cff; }

/* --- 1 · Néon (par défaut) --- */
.jf-fiche.t-neon .jf-pseudo { text-shadow: 0 0 18px rgba(0,240,255,.55); }
.jf-fiche.t-neon .jf-h { color: var(--a1); text-shadow: 0 0 10px rgba(0,240,255,.4); }
.jf-fiche.t-neon .b-jeux { order: 1; } .jf-fiche.t-neon .b-roles { order: 2; } .jf-fiche.t-neon .b-commus { order: 3; } .jf-fiche.t-neon .b-chiffres { order: 4; } .jf-fiche.t-neon .b-stream { order: 5; } .jf-fiche.t-neon .b-musique { order: 6; } .jf-fiche.t-neon .b-captures { order: 7; } .jf-fiche.t-neon .b-reseaux { order: 8; }

/* --- 2 · Carte à collectionner (rang Or ; holographique au 💎) --- */
.jf-fiche.t-carte { --a1: var(--or); --a2: #b4690e; --fond-f: #17130a; --bloc: rgba(245,197,66,.05); --bord: rgba(245,197,66,.22); grid-template-columns: minmax(0, 1fr); max-width: 420px; margin-inline: auto; border: 3px solid var(--or); box-shadow: 0 0 0 6px #17130a, 0 0 0 8px rgba(245,197,66,.5), 0 18px 50px rgba(245,197,66,.18); background: radial-gradient(120% 60% at 50% 0%, rgba(245,197,66,.16), transparent 60%), #17130a; overflow: visible; margin-block: 10px; }
.jf-fiche.t-carte .jf-ban { height: 120px; border-radius: 15px 15px 0 0; }
.jf-fiche.t-carte .jf-entete { flex-direction: column; align-items: center; text-align: center; margin-top: -64px; }
.jf-fiche.t-carte .jf-qui { align-items: center; min-width: 0; }
.jf-fiche.t-carte .jf-badges, .jf-fiche.t-carte .jf-actions { justify-content: center; }
.jf-fiche.t-carte .jf-avatar { border-radius: 50%; box-shadow: 0 0 0 3px var(--or), 0 0 28px rgba(245,197,66,.5); }
.jf-fiche.t-carte .jf-carte-seule { display: flex !important; }
.jf-fiche.t-carte .jf-rarete.jf-carte-seule { display: inline-block !important; }
.jf-fiche.t-carte .b-musique, .jf-fiche.t-carte .b-stream, .jf-fiche.t-carte .b-captures, .jf-fiche.t-carte .b-chiffres { display: none; }
.jf-fiche.t-carte .b-carac { order: 1; } .jf-fiche.t-carte .b-jeux { order: 2; } .jf-fiche.t-carte .b-roles { order: 3; } .jf-fiche.t-carte .b-commus { order: 4; } .jf-fiche.t-carte .b-reseaux { order: 6; }
.jf-fiche.t-carte.r-platine { border-color: transparent; background: linear-gradient(#17130a, #17130a) padding-box, linear-gradient(120deg, #ff8ad8, #8ad8ff, #c4ff8a, #ffe08a, #ff8ad8) border-box; background-size: 100% 100%, 300% 300%; animation: jf-holo 8s linear infinite; box-shadow: 0 0 0 6px #17130a, 0 0 0 8px rgba(196,181,253,.55), 0 18px 50px rgba(196,181,253,.25); }
.jf-fiche.t-carte.r-platine .jf-rarete { color: #e9d5ff; border-color: rgba(196,181,253,.6); }
@keyframes jf-holo { to { background-position: 0 0, 300% 0; } }

/* --- 3 · CV de recrutement (fond clair) --- */
.jf-fiche.t-cv { --a1: #2b6cff; --a2: #13a8a8; --fond-f: #f4f5f8; --bloc: #fff; --bord: #dde1ea; --txt: #141824; --txt2: #545d70; --vert: #0c8a52; }
.jf-fiche.t-cv .jf-ban { height: 8px; background: linear-gradient(90deg, #2b6cff, #13a8a8) !important; }
.jf-fiche.t-cv .jf-ban::after, .jf-fiche.t-cv .jf-deco { display: none; }
.jf-fiche.t-cv .jf-entete { margin-top: 8px; align-items: center; }
.jf-fiche.t-cv .jf-avatar { border-color: #f4f5f8; box-shadow: none; border-radius: 18px; width: 88px; height: 88px; font-size: 2.1rem; color: #fff; }
.jf-fiche.t-cv .jf-pseudo { font-size: 1.45rem; }
.jf-fiche.t-cv .jf-badge, .jf-fiche.t-cv .jf-puce { background: #eef1f7; border-color: #dde1ea; color: #2d3446; }
.jf-fiche.t-cv .jf-btn { background: #fff; border-color: #cfd5e2; color: #141824; }
.jf-fiche.t-cv .jf-btn.prim { background: #2b6cff; color: #fff; }
.jf-fiche.t-cv .jf-reseaux a { border-color: #cfd5e2; }
.jf-fiche.t-cv .jf-barre, .jf-fiche.t-cv .jf-jeu-ini { background: #e6e9f0; }
.jf-fiche.t-cv .jf-chiffres div { background: #f1f3f8; }
.jf-fiche.t-cv .jf-cv-seul { display: flex !important; }
.jf-fiche.t-cv .jf-btn.jf-cv-seul { display: inline-flex !important; }
.jf-fiche.t-cv .b-roles { order: 1; } .jf-fiche.t-cv .b-dispo { order: 2; } .jf-fiche.t-cv .b-commus { order: 3; } .jf-fiche.t-cv .b-jeux { order: 4; } .jf-fiche.t-cv .b-chiffres { order: 5; } .jf-fiche.t-cv .b-reseaux { order: 6; }
.jf-fiche.t-cv .b-musique, .jf-fiche.t-cv .b-stream, .jf-fiche.t-cv .b-captures { display: none; }

/* --- 4 · Streamer --- */
.jf-fiche.t-stream { --a1: #9146ff; --a2: #ff4fd8; --fond-f: #0f0a1a; --bloc: rgba(145,70,255,.06); --bord: rgba(145,70,255,.25); }
.jf-fiche.t-stream .b-stream { order: 1; grid-column: 1 / -1; } .jf-fiche.t-stream .b-captures { order: 2; } .jf-fiche.t-stream .b-reseaux { order: 3; } .jf-fiche.t-stream .b-jeux { order: 4; } .jf-fiche.t-stream .b-commus { order: 5; } .jf-fiche.t-stream .b-musique { order: 6; } .jf-fiche.t-stream .b-roles { order: 7; } .jf-fiche.t-stream .b-chiffres { order: 8; }
.jf-fiche.t-stream .jf-avatar { box-shadow: 0 0 0 3px #9146ff, 0 0 26px rgba(145,70,255,.5); }

/* --- 5 · Artiste : le vinyle tourne --- */
.jf-fiche.t-artiste { --a1: #ff8a3d; --a2: #ff3d7f; --fond-f: #120d0b; --bloc: rgba(255,138,61,.05); --bord: rgba(255,138,61,.22); }
.jf-fiche.t-artiste .jf-ban { filter: saturate(.3) contrast(1.1); }
.jf-fiche.t-artiste .jf-avatar { border-radius: 50%; animation: jf-tourne 14s linear infinite; background: repeating-conic-gradient(#222 0 18deg, #333 18deg 36deg); box-shadow: 0 0 0 3px #ff8a3d; }
.jf-fiche.t-artiste .jf-avatar img, .jf-fiche.t-artiste .jf-ini { opacity: 0; }
.jf-fiche.t-artiste .jf-vinyle-centre { display: grid; position: absolute; inset: 32%; border-radius: 50%; background: linear-gradient(135deg, #ff8a3d, #ff3d7f); place-items: center; font-size: 1.1rem; color: #fff; }
@keyframes jf-tourne { to { transform: rotate(360deg); } }
.jf-fiche.t-artiste .b-musique { order: 1; grid-column: 1 / -1; } .jf-fiche.t-artiste .b-stream { order: 2; } .jf-fiche.t-artiste .b-reseaux { order: 3; } .jf-fiche.t-artiste .b-jeux { order: 4; } .jf-fiche.t-artiste .b-commus { order: 5; } .jf-fiche.t-artiste .b-captures { order: 6; } .jf-fiche.t-artiste .b-roles { order: 7; } .jf-fiche.t-artiste .b-chiffres { order: 8; }

/* --- 6 · Saison : Halloween, puis Noël --- */
.jf-fiche.t-saison { --a1: #ff7a00; --a2: #8a2be2; --fond-f: #120a14; --bloc: rgba(255,122,0,.05); --bord: rgba(255,122,0,.25); background: radial-gradient(90% 50% at 85% 0%, rgba(138,43,226,.25), transparent 60%), radial-gradient(70% 40% at 0% 100%, rgba(255,122,0,.14), transparent 60%), #120a14; }
.jf-fiche.t-saison .jf-ban { filter: hue-rotate(-30deg) saturate(1.3) brightness(.7); }
.jf-fiche.t-saison .jf-deco { display: block; }
.jf-fiche.t-saison .jf-pseudo { color: #ffb066; text-shadow: 0 0 16px rgba(255,122,0,.6); }
.jf-fiche.t-saison.s-noel { --a1: #ff4d4d; --a2: #1fa35a; --fond-f: #0d1412; --bloc: rgba(255,255,255,.05); --bord: rgba(255,255,255,.18); background: radial-gradient(90% 50% at 85% 0%, rgba(31,163,90,.25), transparent 60%), radial-gradient(70% 40% at 0% 100%, rgba(255,77,77,.16), transparent 60%), #0d1412; }
.jf-fiche.t-saison.s-noel .jf-ban { filter: saturate(.9) brightness(.8); }
.jf-fiche.t-saison.s-noel .jf-pseudo { color: #fff; text-shadow: 0 0 16px rgba(255,255,255,.55); }
.jf-fiche.t-saison .b-jeux { order: 1; } .jf-fiche.t-saison .b-captures { order: 2; } .jf-fiche.t-saison .b-roles { order: 3; } .jf-fiche.t-saison .b-commus { order: 4; } .jf-fiche.t-saison .b-stream { order: 5; } .jf-fiche.t-saison .b-musique { order: 6; } .jf-fiche.t-saison .b-chiffres { order: 7; } .jf-fiche.t-saison .b-reseaux { order: 8; }

/* --- 7 · 👑 Fondateur (rang 4 seulement : le fondateur de TeamKit) — aux couleurs du site --- */
.jf-fiche:not(.t-fondateur) .jf-fond-seul { display: none !important; }
.jf-fiche.t-fondateur { --a1: #00f0ff; --a2: #7b2cbf; --fond-f: #0a0a14; --bloc: rgba(0,240,255,.04); --bord: rgba(0,240,255,.18);
  border-color: rgba(0,240,255,.35); box-shadow: 0 0 0 1px rgba(123,44,191,.25), 0 0 50px rgba(0,240,255,.08);
  background: radial-gradient(80% 45% at 100% 0%, rgba(123,44,191,.35), transparent 60%), radial-gradient(70% 40% at 0% 35%, rgba(0,240,255,.13), transparent 60%), #0a0a14; }
.jf-fiche.t-fondateur .jf-ban { height: 170px; background-color: #0d0d1f; }
.jf-fiche.t-fondateur .jf-ban::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(rgba(0,240,255,.07) 1px, transparent 1px) 0 0 / 100% 26px, linear-gradient(90deg, rgba(0,240,255,.07) 1px, transparent 1px) 0 0 / 26px 100%; }
.jf-fiche.t-fondateur .jf-ban::after { background: linear-gradient(180deg, rgba(10,10,20,.25) 0%, rgba(10,10,20,.55) 55%, var(--fond-f)); }
.jf-fond-logo { position: absolute; right: 12px; top: 10px; z-index: 2; width: 92px; height: 92px; object-fit: contain; filter: drop-shadow(0 0 16px rgba(0,240,255,.45)); }
.jf-fiche.t-fondateur .jf-avatar { border-radius: 50%; border-color: #0a0a14; box-shadow: 0 0 0 3px #00f0ff, 0 0 0 6px #7b2cbf, 0 0 40px rgba(0,240,255,.45); }
.jf-fond-titre { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; max-width: 100%; padding: 3px 12px 3px 3px; border-radius: 99px;
  font-family: var(--f-titre); font-weight: 900; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #fff;
  background: linear-gradient(90deg, rgba(0,240,255,.22), rgba(123,44,191,.45)); border: 1px solid rgba(0,240,255,.55); box-shadow: 0 0 18px rgba(0,240,255,.2); }
.jf-fond-titre img { width: 26px; height: 26px; flex: none; border-radius: 50%; background: rgba(255,255,255,.92); object-fit: contain; padding: 1px; }
.jf-fiche.t-fondateur .jf-pseudo { font-size: 1.9rem; color: #fff; background: linear-gradient(90deg, #00f0ff, #c08bff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 0 14px rgba(0,240,255,.3)); }
.jf-fiche.t-fondateur .jf-h { color: var(--a1); }
.jf-fiche.t-fondateur .jf-entete { flex-direction: column; align-items: center; text-align: center; margin-top: -74px; }
.jf-fiche.t-fondateur .jf-qui { align-items: center; min-width: 0; width: 100%; }
.jf-fiche.t-fondateur .jf-fond-titre { align-self: center; }
.jf-fiche.t-fondateur .jf-badges, .jf-fiche.t-fondateur .jf-actions { justify-content: center; }
.jf-tk { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.jf-tk a { text-decoration: none; display: flex; flex-direction: column; gap: 2px; padding: 12px; border-radius: 12px; min-width: 0;
  background: linear-gradient(160deg, rgba(0,240,255,.10), rgba(123,44,191,.18)); border: 1px solid rgba(0,240,255,.25); transition: border-color .2s, transform .2s; }
.jf-tk a:hover { border-color: #00f0ff; transform: translateY(-2px); }
.jf-tk b { font-family: var(--f-titre); font-weight: 900; font-size: 1.75rem; line-height: 1.1; font-variant-numeric: tabular-nums; color: #00f0ff;
  background: linear-gradient(90deg, #00f0ff, #c08bff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.jf-tk span { font-size: .85rem; color: var(--txt2); line-height: 1.25; }
.jf-frise { list-style: none; margin: 0; padding: 0 0 0 22px; position: relative; display: flex; flex-direction: column; gap: 12px; }
.jf-frise::before { content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 2px; border-radius: 2px; background: linear-gradient(#00f0ff, #7b2cbf); }
.jf-frise li { position: relative; display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.jf-frise li::before { content: ""; position: absolute; left: -22px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: #0a0a14; border: 2px solid #00f0ff; box-shadow: 0 0 10px rgba(0,240,255,.6); }
.jf-frise li:last-child::before { background: #00f0ff; }
.jf-frise time { font-family: var(--f-titre); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #00f0ff; }
.jf-frise span { overflow-wrap: anywhere; }
.jf-fiche.t-fondateur .b-chiffres, .jf-fiche.t-fondateur .b-dispo { display: none; }
.jf-fiche.t-fondateur .b-teamkit { order: 1; } .jf-fiche.t-fondateur .b-frise { order: 2; } .jf-fiche.t-fondateur .b-jeux { order: 3; } .jf-fiche.t-fondateur .b-stream { order: 4; } .jf-fiche.t-fondateur .b-commus { order: 5; } .jf-fiche.t-fondateur .b-musique { order: 6; } .jf-fiche.t-fondateur .b-captures { order: 7; } .jf-fiche.t-fondateur .b-roles { order: 8; } .jf-fiche.t-fondateur .b-reseaux { order: 9; }

@media (prefers-reduced-motion: reduce) { .jf-fiche.t-artiste .jf-avatar, .jf-fiche.t-carte.r-platine, .jf-fiche.t-carte.r-platine .jf-objet { animation: none; } }

@media (max-width: 640px) {
  .jf-fiche { grid-template-columns: minmax(0, 1fr); font-size: 16px; }
  .jf-fiche .jf-pseudo { font-size: 1.35rem; }
  .jf-avatar { width: 84px; height: 84px; font-size: 2rem; }
  .jf-entete { margin-top: -56px; }
  .jf-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jf-objet > .jf-bloc, .jf-corps > .jf-bloc { margin-inline: 10px; }
  .jf-entete { margin-inline: 10px; }
  .jf-fiche.t-stream .b-stream, .jf-fiche.t-artiste .b-musique { grid-column: auto; }
}

/* ---------- La page /joueur/<slug> ---------- */
body.jp { background: #0a0a0f; }
.jp-main { max-width: 1320px; margin: 0 auto; padding: 96px 16px 48px; display: flex; flex-direction: column; gap: 14px; }
.jp-bandeau, .jp-partage { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: space-between; background: #15151f; border: 1px solid #2a2a3a; border-radius: 12px; padding: 10px 14px; color: #b8b8c8; font-family: 'Rajdhani', sans-serif; font-size: 1rem; }
.jp-partage a { color: #00f0ff; }
.jp-proposer { background: #15151f; border: 1px solid rgba(0,240,255,.4); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; color: #b8b8c8; font-family: 'Rajdhani', sans-serif; }
.jp-proposer h2 { font-family: 'Orbitron', sans-serif; font-size: .9rem; text-transform: uppercase; color: #fff; margin: 0; background: none; -webkit-text-fill-color: currentColor; }
.jp-proposer p { margin: 0; }
.jp-proposer label { display: flex; flex-direction: column; gap: 4px; font-weight: 700; color: #fff; }
.jp-proposer small { color: #8a8a9a; font-weight: 500; }
.jp-proposer select, .jp-proposer textarea { background: #0f0f17; border: 1px solid #2a2a3a; border-radius: 9px; padding: 7px 10px; color: #fff; font: inherit; width: 100%; }
.jp-ligne { display: flex; gap: 8px; flex-wrap: wrap; }
.jp-retour { min-height: 1.2em; }
.jp-retour.ok { color: #00ff88; } .jp-retour.ko { color: #ff8a8a; }
@media (max-width: 640px) { .jp-main { padding-top: 84px; } }

/* ---------- Fondateur : téléphone et tablette ---------- */
.jf-fiche.t-fondateur .b-jeux, .jf-fiche.t-fondateur .b-stream { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .jf-fiche.t-fondateur .jf-ban { height: 150px; }
  .jf-fond-logo { width: 74px; height: 74px; right: 8px; top: 8px; }
  .jf-fiche.t-fondateur .jf-pseudo { font-size: 1.55rem; }
  .jf-tk b { font-size: 1.45rem; }
}

/* ==================================================================================================================
   VERSION ORDINATEUR (7 oct. 2026, demande de Kevin : « la carte reste étroite au milieu de l'écran »).
   Le conteneur « jf-page » = la page /joueur (.jp-main) ou l'aperçu de Mon espace (#fj-apercu). À partir de 960 px de
   large : la carte (.jf-objet) à gauche, les blocs (.jf-corps) à droite, en grand. En dessous : le rendu d'origine.
   ================================================================================================================== */
.jp-main, #fj-apercu { container: jf-page / inline-size; }

/* Tablette : la carte à collectionner s'élargit un peu (deux colonnes de blocs sous la carte) */
@container jf-page (min-width: 700px) and (max-width: 959.98px) {
  .jf-fiche.t-carte { max-width: 720px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container jf-page (min-width: 960px) {
  /* ── Socle commun ── */
  .jf-fiche { grid-template-columns: 340px minmax(0, 1fr); gap: 24px; padding: 24px; overflow: visible; font-size: 17px; }
  .jf-objet { display: flex; flex-direction: column; gap: 12px; min-width: 0; align-self: start; position: relative;
    background: var(--fond-f); border: 1px solid var(--bord); border-radius: 18px; overflow: hidden; padding-bottom: 18px; }
  .jf-corps { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
  .jf-objet > .jf-bloc { margin-inline: 16px; }
  .jf-corps > .jf-bloc { margin: 0; padding: 18px 20px; gap: 12px; border-radius: 16px; }
  .jf-bloc h2 { font-size: .8rem; letter-spacing: .06em; }
  .jf-ban { height: 132px; }
  .jf-entete { margin: -62px 16px 0; flex-direction: column; align-items: flex-start; gap: 10px; }
  .jf-qui { min-width: 0; width: 100%; }
  .jf-fiche .jf-pseudo { font-size: 1.9rem; }
  .jf-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jf-chiffres b { font-size: 1.45rem; }

  /* Jeux : une grille de cartes, la bannière du jeu en fond, les heures en gros */
  .jf-jeux { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
  .jf-jeu { position: relative; isolation: isolate; overflow: hidden; grid-template-columns: 62px minmax(0, 1fr); grid-template-areas: "img t" "img h";
    align-items: end; gap: 6px 12px; min-height: 136px; padding: 12px; border-radius: 14px; border: 1px solid var(--bord);
    background: var(--jf-ban, linear-gradient(135deg, var(--a1), var(--a2))) center / cover no-repeat; transition: transform .2s, border-color .2s; }
  .jf-jeu::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.5) 45%, rgba(0,0,0,.88) 100%); }
  .jf-jeu:hover { transform: translateY(-2px); border-color: var(--a1); }
  .jf-jeu > img, .jf-jeu > .jf-jeu-ini { grid-area: img; width: 62px; height: 93px; align-self: end; border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.18); }
  .jf-jeu-t { grid-area: t; min-width: 0; }
  .jf-jeu .jf-nom { color: #fff; font-size: 1.08rem; text-shadow: 0 1px 4px #000; }
  .jf-jeu .jf-barre { background: rgba(255,255,255,.18); }
  .jf-jeu .jf-h { grid-area: h; text-align: left; font-size: 1.55rem; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.8); }
  .jf-jeu .jf-h small { display: inline; margin-left: 6px; color: rgba(255,255,255,.75); }

  /* Communautés et serveurs : des tuiles */
  .jf-corps > .b-commus { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
  .jf-corps > .b-commus > h2, .jf-corps > .b-commus > .jf-vide { grid-column: 1 / -1; }
  .jf-corps .jf-commu { grid-template-columns: 48px minmax(0, 1fr); padding: 10px 12px; background: rgba(255,255,255,.04); border: 1px solid var(--bord); border-radius: 12px; }
  .jf-corps .jf-commu:hover { border-color: var(--a1); }
  .jf-corps .jf-ic { width: 48px; height: 48px; font-size: 1.15rem; }

  /* Stream : le lecteur, les clips à côté */
  .jf-corps > .b-stream { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; align-items: stretch; }
  .jf-corps > .b-stream > h2, .jf-corps > .b-stream > .jf-src, .jf-corps > .b-stream > .jf-vide { grid-column: 1 / -1; }
  .jf-corps > .b-stream:not(:has(.jf-clips)) > .jf-lecteur { grid-column: 1 / -1; max-width: 820px; }
  .jf-corps .b-stream .jf-clips { grid-template-columns: minmax(0, 1fr); grid-auto-rows: minmax(0, 1fr); gap: 8px; }
  .jf-corps .jf-clip { aspect-ratio: auto; min-height: 64px; font-size: .92rem; padding: 6px 9px; }
  .jf-play { width: 72px; height: 72px; font-size: 1.8rem; }

  /* Musique, captures, réseaux */
  .jf-corps .jf-sons { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 8px; }
  .jf-corps .jf-son { padding: 8px 10px; }
  .jf-corps .jf-onde { height: 24px; }
  .jf-corps .jf-caps { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
  .jf-corps .jf-caps div { border-radius: 10px; }
  .jf-corps .jf-reseaux a { padding: 6px 15px; font-size: 1rem; }

  /* ── 1 · Néon : quadrillage, contour lumineux ── */
  .jf-fiche.t-neon { background: radial-gradient(55% 45% at 0% 0%, rgba(0,240,255,.11), transparent 60%), radial-gradient(55% 45% at 100% 100%, rgba(123,44,191,.2), transparent 60%),
    linear-gradient(rgba(0,240,255,.035) 1px, transparent 1px) 0 0 / 100% 32px, linear-gradient(90deg, rgba(0,240,255,.035) 1px, transparent 1px) 0 0 / 32px 100%, #0d0d16; }
  .jf-fiche.t-neon .jf-objet { border-color: rgba(0,240,255,.45); box-shadow: 0 0 0 1px rgba(123,44,191,.35), 0 0 36px rgba(0,240,255,.16); }
  .jf-fiche.t-neon .jf-corps h2 { color: var(--a1); text-shadow: 0 0 10px rgba(0,240,255,.5); }
  .jf-fiche.t-neon .jf-corps > .jf-bloc { transition: border-color .2s, box-shadow .2s; }
  .jf-fiche.t-neon .jf-corps > .jf-bloc:hover { border-color: rgba(0,240,255,.35); box-shadow: 0 0 24px rgba(0,240,255,.08); }
  .jf-fiche.t-neon .jf-jeu .jf-h { color: var(--a1); text-shadow: 0 0 12px rgba(0,240,255,.6), 0 2px 8px #000; }

  /* ── 2 · Carte à collectionner : la carte posée à gauche, l'album à droite ── */
  .jf-fiche.t-carte { max-width: none; margin: 0; grid-template-columns: 380px minmax(0, 1fr); overflow: visible; border: 1px solid rgba(245,197,66,.18); box-shadow: none;
    background: radial-gradient(45% 55% at 14% 22%, rgba(245,197,66,.15), transparent 70%), linear-gradient(180deg, #141008, #0b0905); }
  .jf-fiche.t-carte .jf-objet { margin: 10px; border: 3px solid var(--or); border-radius: 18px; overflow: hidden;
    background: radial-gradient(120% 60% at 50% 0%, rgba(245,197,66,.18), transparent 60%), #17130a;
    box-shadow: 0 0 0 6px #17130a, 0 0 0 8px rgba(245,197,66,.5), 0 26px 60px rgba(0,0,0,.6), 0 0 70px rgba(245,197,66,.16);
    transform: perspective(1100px) rotateY(5deg) rotateX(1deg); transition: transform .5s; }
  .jf-fiche.t-carte .jf-objet:hover { transform: none; }
  .jf-fiche.t-carte .jf-entete { margin-top: -64px; align-items: center; }
  .jf-fiche.t-carte .jf-carac b { font-size: 1.5rem; }
  .jf-fiche.t-carte .jf-corps > .b-musique, .jf-fiche.t-carte .jf-corps > .b-captures { display: flex; }
  .jf-fiche.t-carte .jf-corps > .b-stream { display: grid; }
  .jf-fiche.t-carte .b-jeux { order: 1; } .jf-fiche.t-carte .b-commus { order: 2; } .jf-fiche.t-carte .b-stream { order: 3; } .jf-fiche.t-carte .b-musique { order: 4; } .jf-fiche.t-carte .b-captures { order: 5; } .jf-fiche.t-carte .b-reseaux { order: 6; }
  .jf-fiche.t-carte .jf-corps > .jf-bloc { background: linear-gradient(180deg, rgba(245,197,66,.08), rgba(245,197,66,.02)); border-color: rgba(245,197,66,.3); box-shadow: inset 0 1px 0 rgba(255,236,170,.14); }
  .jf-fiche.t-carte .jf-corps h2 { color: var(--or); }
  .jf-fiche.t-carte .jf-corps h2::before { content: "★ "; }
  .jf-fiche.t-carte .jf-jeu { border-color: rgba(245,197,66,.35); }
  .jf-fiche.t-carte .jf-jeu .jf-h { color: var(--or); }
  .jf-fiche.t-carte.r-platine { animation: none; border-color: rgba(196,181,253,.22); box-shadow: none;
    background: radial-gradient(45% 55% at 14% 22%, rgba(196,181,253,.14), transparent 70%), linear-gradient(180deg, #121019, #0b0a10); }
  .jf-fiche.t-carte.r-platine .jf-objet { border-color: transparent; background: linear-gradient(#17130a, #17130a) padding-box, linear-gradient(120deg, #ff8ad8, #8ad8ff, #c4ff8a, #ffe08a, #ff8ad8) border-box;
    background-size: 100% 100%, 300% 300%; animation: jf-holo 8s linear infinite; box-shadow: 0 0 0 6px #17130a, 0 0 0 8px rgba(196,181,253,.55), 0 26px 60px rgba(0,0,0,.6), 0 0 70px rgba(196,181,253,.2); }

  /* ── 3 · CV de recrutement : une vraie feuille, la colonne d'identité à gauche ── */
  .jf-fiche.t-cv { max-width: 1160px; width: 100%; margin-inline: auto; grid-template-columns: 330px minmax(0, 1fr); gap: 0; padding: 8px 0 0; border: 0; border-radius: 8px; overflow: hidden;
    background: linear-gradient(90deg, #2b6cff, #13a8a8) top / 100% 8px no-repeat, #fff; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
  .jf-fiche.t-cv .jf-objet { position: relative; top: auto; align-self: stretch; background: #f1f4fa; border: 0; border-right: 1px solid #e1e6f0; border-radius: 0; padding: 32px 0 30px; gap: 20px; overflow: visible; }
  .jf-fiche.t-cv .jf-ban { display: none; }
  .jf-fiche.t-cv .jf-entete { margin: 0 26px; }
  .jf-fiche.t-cv .jf-avatar { width: 124px; height: 124px; border-radius: 24px; font-size: 2.8rem; }
  .jf-fiche.t-cv .jf-pseudo { font-size: 1.85rem; }
  .jf-fiche.t-cv .jf-objet > .jf-bloc { margin-inline: 26px; background: transparent; border: 0; padding: 0; }
  .jf-fiche.t-cv .jf-chiffres div { background: #fff; border: 1px solid #e1e6f0; }
  .jf-fiche.t-cv .jf-corps { padding: 34px 42px 38px; gap: 0; }
  .jf-fiche.t-cv .jf-corps > .jf-bloc { background: transparent; border: 0; border-radius: 0; padding: 22px 0; border-bottom: 1px solid #e6e9f0; }
  .jf-fiche.t-cv .jf-bloc h2 { color: #2b6cff; letter-spacing: .12em; display: flex; align-items: center; gap: 12px; }
  .jf-fiche.t-cv .jf-corps h2::after { content: ""; flex: 1; height: 1px; background: #dde3ee; }
  .jf-fiche.t-cv .jf-corps > .b-musique, .jf-fiche.t-cv .jf-corps > .b-captures { display: flex; }
  .jf-fiche.t-cv .jf-corps > .b-stream { display: grid; }
  .jf-fiche.t-cv .b-commus { order: 1; } .jf-fiche.t-cv .b-dispo { order: 2; } .jf-fiche.t-cv .b-jeux { order: 3; } .jf-fiche.t-cv .b-stream { order: 4; } .jf-fiche.t-cv .b-musique { order: 5; } .jf-fiche.t-cv .b-captures { order: 6; } .jf-fiche.t-cv .b-reseaux { order: 7; }
  .jf-fiche.t-cv .jf-corps > .b-reseaux { border-bottom: 0; }
  .jf-fiche.t-cv .jf-jeux { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
  .jf-fiche.t-cv .jf-jeu { min-height: 0; background: #fff; border-color: #e1e6f0; grid-template-columns: 44px minmax(0, 1fr); padding: 10px; }
  .jf-fiche.t-cv .jf-jeu::before { display: none; }
  .jf-fiche.t-cv .jf-jeu > img, .jf-fiche.t-cv .jf-jeu > .jf-jeu-ini { width: 44px; height: 66px; box-shadow: none; border-color: #e1e6f0; }
  .jf-fiche.t-cv .jf-jeu .jf-nom { color: #141824; text-shadow: none; font-size: 1rem; }
  .jf-fiche.t-cv .jf-jeu .jf-barre { background: #e6e9f0; }
  .jf-fiche.t-cv .jf-jeu .jf-h { color: #2b6cff; text-shadow: none; font-size: 1.2rem; }
  .jf-fiche.t-cv .jf-jeu .jf-h small { color: #545d70; }
  .jf-fiche.t-cv .jf-commu { background: #f7f9fc; border-color: #e1e6f0; }
  .jf-fiche.t-cv .jf-son { background: #f7f9fc; }
  .jf-fiche.t-cv .jf-grille { grid-template-columns: 52px repeat(7, minmax(0, 1fr)); gap: 5px; font-size: .85rem; max-width: 620px; }
  .jf-fiche.t-cv .jf-grille i { height: 24px; border-radius: 6px; }

  /* ── 4 · Streamer : la chaîne à gauche, le lecteur en grand ── */
  .jf-fiche.t-stream { grid-template-columns: 320px minmax(0, 1fr);
    background: radial-gradient(65% 55% at 100% 0%, rgba(145,70,255,.3), transparent 60%), radial-gradient(55% 45% at 0% 100%, rgba(255,79,216,.14), transparent 60%), #0e0918; }
  .jf-fiche.t-stream .jf-objet { border-color: rgba(145,70,255,.5); background: linear-gradient(180deg, rgba(145,70,255,.18), rgba(15,10,26,.95) 45%); box-shadow: 0 0 40px rgba(145,70,255,.15); }
  .jf-fiche.t-stream .jf-corps h2 { color: #c9a7ff; }
  .jf-fiche.t-stream .jf-corps > .b-stream { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); border-color: rgba(145,70,255,.5); background: linear-gradient(180deg, rgba(145,70,255,.12), rgba(145,70,255,.03)); box-shadow: 0 24px 60px rgba(145,70,255,.16); }
  .jf-fiche.t-stream .jf-lecteur { border: 1px solid rgba(145,70,255,.45); box-shadow: 0 0 40px rgba(145,70,255,.25); }
  .jf-fiche.t-stream .jf-jeu .jf-h { color: #e2ccff; }

  /* ── 5 · Artiste : la pochette à gauche, la liste des titres en grand ── */
  .jf-fiche.t-artiste { grid-template-columns: 340px minmax(0, 1fr);
    background: radial-gradient(55% 45% at 0% 0%, rgba(255,138,61,.18), transparent 60%), radial-gradient(55% 45% at 100% 100%, rgba(255,61,127,.15), transparent 60%), #110c0a; }
  .jf-fiche.t-artiste .jf-objet { border-color: rgba(255,138,61,.4); background: linear-gradient(165deg, #2c1a12, #140e0b 55%); box-shadow: 0 26px 60px rgba(0,0,0,.5); }
  .jf-fiche.t-artiste .jf-ban { height: 190px; }
  .jf-fiche.t-artiste .jf-entete { margin-top: -96px; align-items: center; text-align: center; }
  .jf-fiche.t-artiste .jf-qui { align-items: center; }
  .jf-fiche.t-artiste .jf-badges, .jf-fiche.t-artiste .jf-actions { justify-content: center; }
  .jf-fiche.t-artiste .jf-avatar { width: 156px; height: 156px; }
  .jf-fiche.t-artiste .jf-corps h2 { color: #ffb27a; }
  .jf-fiche.t-artiste .jf-corps .jf-sons { display: flex; flex-direction: column; counter-reset: piste; gap: 6px; }
  .jf-fiche.t-artiste .jf-corps .jf-son { grid-template-columns: 34px 44px minmax(0, 1fr) auto; counter-increment: piste; padding: 10px 14px; border: 1px solid rgba(255,138,61,.15); }
  .jf-fiche.t-artiste .jf-corps .jf-son::before { content: counter(piste, decimal-leading-zero); font-family: var(--f-titre); font-weight: 700; color: #ff8a3d; }
  .jf-fiche.t-artiste .jf-corps .jf-son button { width: 44px; height: 44px; font-size: 1.05rem; }
  .jf-fiche.t-artiste .jf-corps .jf-son b { font-size: 1.08rem; }
  .jf-fiche.t-artiste .jf-corps .jf-onde { height: 32px; }
  .jf-fiche.t-artiste .jf-corps .jf-onde { max-width: 560px; gap: 3px; }
  .jf-fiche.t-artiste .jf-corps .jf-onde i { flex: 1 1 0; width: auto; min-width: 3px; background: linear-gradient(#ff8a3d, #ff3d7f); }
  .jf-fiche.t-artiste .jf-jeu .jf-h { color: #ffc29a; }

  /* ── 6 · Saison : la lune (Halloween) ou la neige (Noël), une guirlande sur les blocs ── */
  .jf-fiche.t-saison { background: radial-gradient(circle at 93% 7%, rgba(255,226,160,.95) 0 30px, rgba(255,190,90,.22) 31px, transparent 95px),
    radial-gradient(75% 50% at 85% 0%, rgba(138,43,226,.28), transparent 60%), radial-gradient(65% 40% at 0% 100%, rgba(255,122,0,.16), transparent 60%), #120a14; }
  .jf-fiche.t-saison .jf-objet { border-color: rgba(255,122,0,.45); box-shadow: 0 0 46px rgba(255,122,0,.16); }
  .jf-fiche.t-saison .jf-corps::before { content: attr(data-jf-deco); display: block; text-align: center; font-size: 1.5rem; letter-spacing: .6em; line-height: 1.2; opacity: .9; }
  .jf-fiche.t-saison .jf-corps h2 { color: #ffb066; }
  .jf-fiche.t-saison .jf-corps > .jf-bloc { border-top: 2px solid rgba(255,122,0,.45); }
  .jf-fiche.t-saison .jf-jeu .jf-h { color: #ffb066; }
  .jf-fiche.t-saison.s-noel { background: radial-gradient(1.5px 1.5px at 20px 30px, rgba(255,255,255,.8), transparent), radial-gradient(2px 2px at 90px 110px, rgba(255,255,255,.65), transparent),
    radial-gradient(1.5px 1.5px at 150px 60px, rgba(255,255,255,.7), transparent), radial-gradient(2px 2px at 60px 170px, rgba(255,255,255,.55), transparent),
    radial-gradient(75% 50% at 85% 0%, rgba(31,163,90,.26), transparent 60%), radial-gradient(65% 40% at 0% 100%, rgba(255,77,77,.16), transparent 60%), #0d1412;
    background-size: 200px 200px, 200px 200px, 200px 200px, 200px 200px, auto, auto, auto; }
  .jf-fiche.t-saison.s-noel .jf-objet { border-color: rgba(255,255,255,.3); box-shadow: 0 0 46px rgba(31,163,90,.18); }
  .jf-fiche.t-saison.s-noel .jf-corps h2, .jf-fiche.t-saison.s-noel .jf-jeu .jf-h { color: #fff; }
  .jf-fiche.t-saison.s-noel .jf-corps > .jf-bloc { border-top-color: rgba(255,77,77,.5); }

  /* ── 7 · 👑 Fondateur : un bandeau d'accueil sur toute la largeur, puis l'histoire et ses blocs ── */
  .jf-fiche.t-fondateur { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 22px; }
  .jf-fiche.t-fondateur .jf-objet { position: relative; top: auto; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) 290px; align-items: center; gap: 22px 28px;
    padding: 38px 38px 30px; border-color: rgba(0,240,255,.4); background: #0a0a14; box-shadow: 0 0 0 1px rgba(123,44,191,.3), 0 30px 80px rgba(0,0,0,.45), 0 0 70px rgba(0,240,255,.12); }
  .jf-fiche.t-fondateur .jf-objet > .jf-ban { position: absolute; inset: 0; height: auto; z-index: -1; background-position: center 35%; }
  .jf-fiche.t-fondateur .jf-objet > .jf-ban::after { background: radial-gradient(60% 80% at 85% 40%, rgba(0,240,255,.16), transparent 70%), linear-gradient(90deg, rgba(10,10,20,.97) 38%, rgba(10,10,20,.72)); }
  .jf-fiche.t-fondateur .jf-fond-logo { width: 250px; height: 250px; right: 40px; top: 30px; }
  .jf-fiche.t-fondateur .jf-entete { grid-column: 1; margin: 0; display: grid; grid-template-columns: 156px minmax(0, 1fr); align-items: center; gap: 14px 28px; text-align: left; }
  .jf-fiche.t-fondateur .jf-entete > .jf-actions { grid-column: 2; justify-content: flex-start; }
  .jf-fiche.t-fondateur .jf-qui { align-items: flex-start; }
  .jf-fiche.t-fondateur .jf-fond-titre { align-self: flex-start; }
  .jf-fiche.t-fondateur .jf-badges { justify-content: flex-start; }
  .jf-fiche.t-fondateur .jf-avatar { width: 156px; height: 156px; font-size: 3.6rem; }
  .jf-fiche.t-fondateur .jf-qui { flex: 1; gap: 8px; }
  .jf-fiche.t-fondateur .jf-fond-titre { font-size: .8rem; padding: 4px 16px 4px 4px; }
  .jf-fiche.t-fondateur .jf-fond-titre img { width: 32px; height: 32px; }
  .jf-fiche.t-fondateur .jf-pseudo { font-size: 3.1rem; }
  .jf-fiche.t-fondateur .jf-sous { font-size: 1.1rem; }
  .jf-fiche.t-fondateur .jf-objet > .jf-bloc { grid-column: 1 / -1; margin: 0; }
  .jf-fiche.t-fondateur .b-teamkit { background: rgba(10,10,20,.6); border-color: rgba(0,240,255,.28); padding: 16px 18px; }
  .jf-fiche.t-fondateur .jf-tk { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
  .jf-fiche.t-fondateur .jf-tk a { padding: 16px 18px; }
  .jf-fiche.t-fondateur .jf-tk b { font-size: 2.7rem; }
  .jf-fiche.t-fondateur .jf-tk span { font-size: .95rem; }
  .jf-fiche.t-fondateur .jf-objet > .b-roles { background: transparent; border: 0; padding: 0; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
  .jf-fiche.t-fondateur .jf-corps h2 { color: var(--a1); text-shadow: 0 0 10px rgba(0,240,255,.45); }
  .jf-fiche.t-fondateur .b-frise { padding: 20px 22px 24px; background: linear-gradient(180deg, rgba(0,240,255,.06), rgba(123,44,191,.06)); }
  .jf-fiche.t-fondateur .jf-frise { flex-direction: row; padding: 30px 0 0; gap: 0; }
  .jf-fiche.t-fondateur .jf-frise::before { left: 0; right: 0; top: 11px; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, #00f0ff, #7b2cbf); }
  .jf-fiche.t-fondateur .jf-frise li { flex: 1 1 0; padding: 0 14px 0 0; }
  .jf-fiche.t-fondateur .jf-frise li::before { left: 0; top: -26px; }
  .jf-fiche.t-fondateur .jf-frise span { font-size: .98rem; line-height: 1.35; }
}
/* Collante seulement quand l'écran est assez haut pour la montrer en entier (sinon on ne verrait pas son bas) */
@media (min-height: 780px) {
  @container jf-page (min-width: 960px) {
    .jf-objet { position: sticky; top: 92px; }
  }
}
