/* Composition de la homepage, inspirée de l'affiche du championnat. */
body { background-color:#050d12; }
.site-header { max-width:none; min-height:88px; padding:16px max(24px,calc((100vw - 1320px)/2)); gap:28px; background:#04090c; border-bottom:1px solid #795a31; }
.site-header .brand { flex-shrink:0; }
.site-header .brand h1 { font:600 25px/.94 Georgia,serif; letter-spacing:.025em; }
.site-header .brand-mark { width:48px; height:58px; }
.site-header .brand-subtitle { display:none; }
.site-header .site-nav { flex:1; justify-content:center; gap:24px; margin:0; }
.site-header .site-nav a { font:12px/1.5 system-ui,sans-serif; letter-spacing:.045em; padding:12px 0; }
.site-header .identity:empty { display:none; }
.header-auth { display:flex; gap:9px; flex-shrink:0; }
.header-auth a { padding:10px 14px; border:1px solid #896738; color:#efdbb5; border-radius:2px; font:11px/1.2 system-ui,sans-serif; text-transform:uppercase; text-decoration:none; }
.header-auth a:last-child { background:linear-gradient(135deg,#651d17,#320d0b); }
.header-auth a:hover { border-color:#e8c484; background-color:#1e2326; }
.hero { display:block; min-height:610px; padding:28px 24px 76px; position:relative; isolation:isolate; overflow:hidden; }
.hero::before { background:linear-gradient(180deg,rgba(3,9,13,.12),rgba(3,9,13,.08) 55%,#050d12 100%),url('/img/brand/hero-tournoi-premium.webp') center 44%/cover; }
.hero::after { height:15%; background:linear-gradient(transparent,#050d12); }
.hero-inner { position:relative; z-index:2; max-width:660px; margin:0 auto; text-align:center; }
.hero-kicker { margin:0 0 15px; color:#d3ad72; font:11px/1.5 system-ui,sans-serif; letter-spacing:.22em; }
.hero-title { margin:0; font:700 clamp(68px,7.7vw,110px)/.85 Georgia,serif; letter-spacing:.012em; color:#e5cda4; background:linear-gradient(#fff0ce,#c8a774 55%,#eddabb); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; filter:drop-shadow(0 3px 1px #352515) drop-shadow(0 4px 12px #000); text-shadow:none; }
.hero-title span { font-size:.68em; }
.hero-ribbon { display:inline-block; width:auto; margin:25px 0 18px; padding:12px 28px; font:16px/1.3 Georgia,serif; letter-spacing:.035em; color:#f3dfba; background:linear-gradient(90deg,transparent,#68190f 8%,#46110d 92%,transparent); border-color:#87603a; }
.hero-sub { max-width:430px; margin:0 auto; color:#f4e9d1; font:16px/1.7 system-ui,sans-serif; }
.hero-cta { margin:22px auto 0; padding:16px 26px; gap:14px; font:700 17px/1.2 Georgia,serif; letter-spacing:.025em; color:#21160c; background:linear-gradient(120deg,#d1a269,#f2d6a0 45%,#b98645); border:1px solid #e6c18c; box-shadow:inset 0 0 0 3px #71502f,0 5px 22px #0009; }
.hero-cta span { font-size:23px; }
.hero-discover { display:block; width:fit-content; margin:17px auto 0; color:#e6c78f; font:11px/1.5 system-ui,sans-serif; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; }
.hero-inner .saison { position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%); width:max-content; max-width:100%; margin:0; padding:0; background:none; border:0; color:#b9a587; font:11px/1.4 system-ui,sans-serif; }
.hero-contenders { position:absolute; z-index:1; inset:225px max(36px,calc((100% - 1180px)/2)) 50px; display:flex; justify-content:space-between; pointer-events:none; }
.hero-department { position:relative; width:222px; align-self:end; padding:66px 12px 15px; color:#ecd7b3; border:1px solid #9f783c; background:linear-gradient(135deg,rgba(12,41,56,.97),rgba(3,14,23,.95)); box-shadow:inset 0 0 0 5px #06121c,inset 0 0 0 6px #886a393d,0 8px 25px #0009; text-align:center; }
.hero-department-red { background:linear-gradient(135deg,rgba(70,22,19,.97),rgba(20,7,9,.95)); }
.hero-department .hero-crest { position:absolute; left:50%; top:-63px; transform:translateX(-50%); width:116px; height:132px; filter:drop-shadow(0 5px 7px #000); }
.hero-department-name { margin:9px 0 8px; font:18px/1.2 Georgia,serif; text-transform:uppercase; overflow-wrap:anywhere; }
.hero-department-points { margin:0; font:34px/1.1 Georgia,serif; }
.hero-department-points span { display:block; margin:6px 0 16px; font:11px/1.2 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.14em; }
.hero-department-status { margin:0; padding:10px 0 0; border-top:1px solid #9f783c66; color:#d8c39e; font:11px/1.4 system-ui,sans-serif; }
.hero-versus { position:absolute; z-index:2; bottom:10px; left:50%; transform:translateX(-50%); display:grid; place-items:center; width:56px; height:56px; border:1px solid #94713c; border-radius:50%; color:#d5a768; background:#081219; font:27px/1 Georgia,serif; box-shadow:0 0 0 5px #071018,0 0 0 6px #8a673344; }
main { width:100%; max-width:1320px; margin:0 auto; padding:12px 24px 48px; gap:24px; }
.championship-grid { grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr) minmax(0,1fr); gap:18px; align-items:stretch; scroll-margin-top:20px; }
.championship-grid > .panel { min-height:370px; padding:20px 16px; border:1px solid #94713e; background:radial-gradient(ellipse at 50% 0,#17313b66,transparent 65%),#061016; box-shadow:inset 0 0 0 5px #050d12,inset 0 0 0 6px #94713e30; }
.championship-grid > .panel::before { inset:6px; border-color:#a8864a30; }
.championship-grid > .panel h2 { margin:0 0 18px; font:18px/1.2 Georgia,serif; letter-spacing:.055em; }
.championship-grid h2::before { display:none; }
.championship-grid h2::after { width:64px; margin:12px auto 0; border-color:#94713e77; }
.championship-grid .map-panel { padding:20px 14px 12px; }
.championship-grid .map-wrap { height:270px!important; max-height:270px!important; }
.championship-grid .france-svg { height:100%; max-height:270px!important; transform:none; }
.championship-grid .map-legend { font-size:10px; gap:8px; padding:9px 0 0; background:none; }
.championship-grid .om-tile { font-size:10px; padding:3px 5px; }
.championship-grid .swatch.neg { background:#852b22; }
.championship-grid .swatch.zero { background:#1d3541; }
.championship-grid .swatch.pos { background:#cd9f54; }
.championship-grid .swatch { border:1px solid #cba66b88; }
.championship-grid .france-svg .dept { stroke:#b99c6880; stroke-width:1; }
.championship-grid .map-panel::after,.championship-grid #leaderboard-panel::after { display:none; }
.championship-grid #leaderboard-panel { padding:20px 14px; background:radial-gradient(ellipse at 50% 0,#18323b55,transparent 70%),#061016; }
.championship-grid .leaderboard { max-height:290px!important; }
.championship-grid table { font-size:12px; }
.championship-grid th { padding:4px 5px 10px; font-size:10px; }
.championship-grid td { height:46px; padding:7px 5px; }
.championship-grid .rank { width:26px; font:18px Georgia,serif; }
.championship-grid .code { width:34px; }
.championship-grid .dept-crest-mini { width:27px; height:32px; }
.last-duel-panel #last-duel-zone { height:auto; min-height:285px; display:grid; align-items:center; }
.last-duel-panel .duel-empty { min-height:260px; padding:20px 10px; }
.last-duel-panel .duel-empty::before { width:76px; height:86px; font-size:34px; }
.last-duel-panel .duel-empty .stat-value { white-space:normal; font:16px/1.5 Georgia,serif; }
.last-duel-panel .duel-empty .stat-value::after { margin-top:12px; font:12px/1.6 system-ui,sans-serif; }
.last-duel-panel .duel-scoreboard { display:grid; grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr); align-items:start; gap:8px; text-align:center; }
.last-duel-panel .duel-team { min-width:0; padding:12px 3px; border:0; background:none; }
.last-duel-panel .dept-crest-duel { width:66px; height:78px; }
.last-duel-panel .duel-team-name { white-space:normal; font:14px/1.3 Georgia,serif; }
.last-duel-panel .duel-team-player { font-size:12px; }
.last-duel-panel .duel-versus { background:none; color:#d5a768; font:15px Georgia,serif; }
@media (max-width:1150px) {
  .site-header { padding:14px 24px; gap:20px; flex-wrap:wrap; }
  .site-header .site-nav { gap:16px; }
  .site-header .brand h1 { font-size:21px; }
  .header-auth a { padding:9px; font-size:10px; }
  .hero-title { font-size:86px; }
  .hero-inner { max-width:550px; }
  .hero-contenders { left:28px; right:28px; }
  .hero-department { width:185px; }
  .hero-department-name { font-size:16px; }
  .hero-sub { max-width:360px; font-size:14px; }
  .hero-cta { font-size:15px; padding:15px 20px; }
}
@media (max-width:900px) {
  .site-header .site-nav { order:3; flex-basis:100%; }
  .header-auth { margin-left:auto; }
  .hero { padding-bottom:280px; min-height:740px; }
  .hero-contenders { inset:auto 10% 48px; gap:20px; }
  .hero-department { width:210px; padding-top:45px; }
  .hero-department .hero-crest { width:86px; height:98px; top:-48px; }
  .hero-versus { bottom:85px; }
  .championship-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .championship-grid .map-panel { grid-column:1/-1!important; order:-1!important; }
}
@media (max-width:700px) {
  .site-header { display:flex; justify-content:space-between; gap:14px 8px; padding:13px 16px; }
  .site-header .brand h1 { font-size:19px; }
  .site-header .brand-mark { width:35px; height:43px; }
  .site-header .site-nav { gap:16px; flex-wrap:wrap; width:100%; padding:0; }
  .site-header .site-nav a { font-size:10px; padding:5px 0; }
  .header-auth { gap:5px; }
  .header-auth a { padding:8px 6px; font-size:9px; }
  .site-header .identity { order:4; }
  .hero { min-height:0; padding:28px 16px 345px; }
  .hero-inner { max-width:100%; }
  .hero-kicker { font-size:9px; letter-spacing:.12em; margin-bottom:15px; }
  .hero-title { font-size:clamp(48px,12vw,78px); line-height:.91; }
  .hero-ribbon { margin:20px 0 17px; padding:10px 15px; font-size:12px; }
  .hero-sub { font-size:14px; max-width:340px; }
  .hero-break { display:none; }
  .hero-cta { margin-top:20px; padding:15px 20px; font-size:15px; }
  .hero-discover { font-size:10px; margin-top:16px; }
  .hero-inner .saison { font-size:10px; }
  .hero-contenders { left:20px; right:20px; bottom:40px; gap:22px; }
  .hero-department { width:calc(50% - 11px); min-width:0; padding:43px 9px 10px; }
  .hero-department-name { font-size:14px; min-height:34px; display:grid; place-items:center; }
  .hero-department-points { font-size:28px; }
  .hero-department-points span { font-size:9px; margin-bottom:10px; }
  .hero-department-status { font-size:10px; min-height:39px; }
  .hero-versus { bottom:15px; width:38px; height:38px; font-size:19px; }
  main { padding:8px 16px 32px; gap:18px; }
  .championship-grid { grid-template-columns:minmax(0,1fr)!important; gap:16px; }
  .championship-grid > .panel { padding:20px 16px; min-height:0; }
  .championship-grid .map-panel { order:-1!important; }
  .championship-grid .map-wrap { height:290px!important; max-height:290px!important; }
  .championship-grid .france-svg { max-height:290px!important; }
  .championship-grid .map-legend { font-size:11px; }
  .last-duel-panel #last-duel-zone { min-height:210px; }
  .last-duel-panel .duel-empty { min-height:210px; }
  .championship-grid .leaderboard { max-height:290px!important; }
}
/* Les arènes : une illustration dominante et des actions toujours accessibles. */
#duel-panel { padding:22px 16px; background:transparent; border:0; box-shadow:none; }
#duel-panel::before { display:none; }
#duel-panel > h2 { margin:0 0 18px; font:19px/1.4 Georgia,serif; letter-spacing:.04em; }
#duel-panel .jeux-bande { gap:12px; }
#duel-panel .jeux-piste { --ecart:14px; padding:6px 3px 16px; }
#duel-panel .jeu-carte { height:320px!important; min-height:320px!important; border-color:#b28a50; background:#061016; box-shadow:inset 0 0 0 4px #bc945e16; }
#duel-panel .jeu-image { flex:0 0 214px!important; min-height:0; }
#duel-panel .jeu-image::after { background:linear-gradient(0deg,#061016,rgba(6,16,22,.18) 25%,transparent 55%); }
/* Étalonnage des couvertures premium uniquement, sans altérer les fichiers ni les fallbacks. */
#duel-panel .jeu-image > img[data-premium-jeu] {
 filter:brightness(var(--cover-light,1)) contrast(.94) saturate(.92);
}
#duel-panel [data-premium-jeu='banquise'] { --cover-light:.84; }
#duel-panel [data-premium-jeu='cascade'],
#duel-panel [data-premium-jeu='demineur'],
#duel-panel [data-premium-jeu='volley'] { --cover-light:.94; }
#duel-panel [data-premium-jeu='casse-brique'] { --cover-light:.97; }
#duel-panel [data-premium-jeu='billard'],
#duel-panel [data-premium-jeu='toits'],
#duel-panel [data-premium-jeu='rangs'] { --cover-light:1.12; }
#duel-panel [data-premium-jeu='snake'],
#duel-panel [data-premium-jeu='morpion'],
#duel-panel [data-premium-jeu='quatre'],
#duel-panel [data-premium-jeu='bomberman'] { --cover-light:1.05; }
#duel-panel .jeu-corps { display:flex; flex:1; flex-direction:column; gap:6px; margin-top:-14px; padding:0 10px 12px; background:linear-gradient(transparent,#061016 28%); }
#duel-panel .jeu-titre { padding:0 0 8px; text-align:center; }
#duel-panel .jeu-titre h3 { padding:0; margin:0; font:16px/1.25 Georgia,serif; letter-spacing:.015em; }
#duel-panel .jeu-corps h3::before,#duel-panel .jeu-arene { display:none; }
#duel-panel .jeu-mentions { display:flex; flex-wrap:wrap; min-height:16px; margin:0; justify-content:center; }
#duel-panel .jeu-mention { display:inline; font:11px/1.35 system-ui,sans-serif; }
#duel-panel .jeu-hors { font-size:11px; }
#duel-panel .jeu-boutons { margin-top:auto; padding-top:4px; gap:6px; border-top:0; }
#duel-panel .jeu-boutons .btn,#duel-panel .jeu-boutons .btn-ghost { min-height:36px; padding:8px 4px; font-size:11px; }
#duel-panel .jeu-boutons .btn-ghost { background:#081720; }
#duel-panel .jeu-boutons .btn::before,#duel-panel .jeu-boutons .btn-ghost::before { display:none; }
#duel-panel .jeux-fleche { width:30px; height:48px; flex-shrink:0; }
#duel-panel .jeux-reperes { font:12px/1.5 system-ui,sans-serif; }
#duel-panel .apercu-cible { margin:0 0 14px; }
#duel-panel .apercu-cible label { font-size:13px; }
#duel-panel .hint { font-size:13px; line-height:1.6; }

/* Les récompenses et les bilans gardent les chiffres réels du championnat. */
main > .super, #accelerateurs { padding:22px; border-color:#94713e; background:#071219; }
main > .super .super-titre { margin:0 0 20px; text-align:center; font:19px/1.35 Georgia,serif; letter-spacing:.04em; }
main > .super .super-titre::before,main > .super .super-titre > .ico { display:none; }
main > .super .super-titre::after { margin:12px auto 0; }
#accelerateurs { order:3; background:radial-gradient(ellipse at 0 0,#55221a44,transparent 65%),#071219; }
#accelerateurs #stats-primes { gap:22px; }
#accelerateurs #stats-primes .prime { min-height:150px; padding:18px 20px 18px 76px; background:transparent; border:1px solid #ac884855; box-shadow:none; }
#accelerateurs #stats-primes .prime::before { left:20px; top:20px; width:36px; height:46px; font-size:12px; }
#accelerateurs #stats-primes .stat-label { font:15px/1.35 Georgia,serif; }
#accelerateurs #stats-primes .prime-recompense { font-size:24px; margin:10px 0; }
#accelerateurs #stats-primes .prime-recompense span { font-size:10px; }
#accelerateurs #stats-primes .regle { font:12px/1.6 system-ui,sans-serif; }
#accelerateurs #stats-primes .stat-value,#accelerateurs #stats-primes .stat-meta { font-size:12px; line-height:1.5; }
main > .super:not(.super-primes) { order:4; padding:22px; background:#061016; }
main > .super:not(.super-primes) .super-corps { gap:18px; }
main > .super:not(.super-primes) .stats { gap:18px; }
main #stats-zone .stat-card { min-height:130px; padding:22px; color:#241c12; border:1px solid #d1ac75; background:radial-gradient(ellipse at top,#ead4ae,#bb945e); box-shadow:inset 0 0 0 4px #422f211a; }
main #stats-zone .stat-label { color:#382918; font:12px/1.4 system-ui,sans-serif; }
main #stats-zone .stat-label .ico { color:#594226; }
main #stats-zone .stat-card .stat-value { color:#261a10; text-shadow:none; font:700 26px/1.3 Georgia,serif; }
main #stats-zone .stat-card .stat-meta { margin-top:8px; color:#49321e; font:12px/1.4 system-ui,sans-serif; }
main #stats-listes .stat-card { padding:18px; min-height:140px; background:#0a1921; }
main #stats-listes .stat-label,main #stats-listes .stat-card:has(.stat-value.empty) .stat-label { color:#e4c38b; font:14px/1.4 Georgia,serif; }
main #stats-listes .stat-card:has(.stat-value.empty) .stat-value { font:13px/1.6 system-ui,sans-serif; }
main #stats-listes .palmares li { padding:9px 3px; font-size:13px; }
main #stats-listes .palmares .sous { font-size:11px; }
main .deux-colonnes,#historique-panel { max-width:none; }
#records-panel,#historique-panel { padding:24px; background:#071219; border-color:#94713e; }
#records-panel h2,#historique-panel h2 { font:19px/1.3 Georgia,serif; }
#records-panel .records-empty-callout { padding:24px; max-width:680px; margin:0 auto; }
#records-panel .records-empty-title { font-size:17px; }
#records-panel .records-empty-lead { font:15px/1.5 Georgia,serif; }
#records-panel .records-empty-copy,#historique-panel .stat-value.empty { font:13px/1.6 system-ui,sans-serif; }
#historique-panel:has(.stat-value.empty) { padding:22px; }
#historique-panel:has(.stat-value.empty) h2 { font-size:19px; margin-bottom:14px; }
.pied { max-width:1272px; padding:24px 20px; gap:18px; background:#050d12; }
.pied a,.pied > span { font:11px/1.5 system-ui,sans-serif; }
@media(min-width:1000px) { #duel-panel .jeu-carte { flex:0 0 calc((100% - 4 * var(--ecart))/5)!important; } }
@media(max-width:700px) {
 #duel-panel { padding:18px 0; }
 #duel-panel > h2 { font-size:18px; padding:0 10px; }
 #duel-panel .jeux-bande { gap:6px; }
 #duel-panel .jeu-carte { height:330px!important; min-height:330px!important; }
 #duel-panel .jeu-image { flex-basis:224px!important; }
 #duel-panel .jeu-titre h3 { font-size:18px; }
 #duel-panel .jeu-boutons .btn,#duel-panel .jeu-boutons .btn-ghost { min-height:40px; font-size:12px; }
 #duel-panel .jeux-reperes { flex-wrap:wrap; gap:12px; }
 main > .super,main > .super:not(.super-primes),#accelerateurs { padding:18px 14px; }
 main > .super .super-titre { font-size:17px; }
 #accelerateurs #stats-primes .prime { padding:18px 14px 18px 64px; }
 #accelerateurs #stats-primes .prime::before { left:14px; }
 #records-panel,#historique-panel { padding:20px 14px; }
 .pied { margin:20px 16px 0; width:auto; padding:22px 10px; }
}
/* Priorité sur les variantes historiques des états vides et des podiums. */
main > .super .super-titre { display:block; width:100%; text-align:center; }
main #stats-zone.stats .stat-card { background:radial-gradient(ellipse at top,#ead4ae,#bb945e); }
main #stats-zone.stats .stat-card .stat-label { color:#382918; font:12px/1.4 system-ui,sans-serif; }
main #stats-zone.stats .stat-card .stat-value { color:#261a10; text-shadow:none; font:700 26px/1.3 Georgia,serif; }
main #stats-zone.stats .stat-card .stat-meta { color:#49321e; font:12px/1.4 system-ui,sans-serif; }
#accelerateurs #stats-primes .prime .stat-label { font:15px/1.35 Georgia,serif; }
#accelerateurs #stats-primes .prime .regle { font:12px/1.6 system-ui,sans-serif; }
#accelerateurs #stats-primes .prime .prime-recompense { font-size:24px; }
#accelerateurs #stats-primes .prime .stat-value { font-size:13px; line-height:1.5; }
/* Le catalogue accueille aussi les visiteurs ; seule l'entrée en jeu demande une identité. */
#duel-panel { order:1; }
#auth-panel { order:2; scroll-margin-top:24px; }
#duel-panel.catalogue-visiteur .apercu-cible { display:none; }
#duel-panel.catalogue-visiteur #duel-setup > .hint { display:none; }
#duel-panel.catalogue-visiteur .jeux-bande { margin-top:16px; }
#auth-panel:focus-within { border-color:#d9b477; }
#auth-msg:not(:empty) { margin-top:16px; font:14px/1.5 system-ui,sans-serif; color:#edd5a9; }
main .deux-colonnes { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; width:100%; }
main .deux-colonnes:has(#historique-panel:not(.hidden)) { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:stretch; }
main .deux-colonnes > #historique-panel { grid-column:auto; order:0; margin:0; width:100%; max-width:100%; }
#historique-panel .bilan { flex-wrap:wrap; }
#historique-panel .parties { grid-template-columns:minmax(0,1fr); }
#records-panel .records-empty-callout { border:0; box-shadow:none; background:radial-gradient(ellipse at center,#18344255,transparent 75%); }
#records-panel .records-empty-cta { font-size:12px; min-height:38px; }
.championship-grid > .panel,main > .super,#records-panel,#historique-panel { border-radius:9px 1px 9px 1px; }
.hero-discover:hover,.pied a:hover { color:#fff0d0; }
.hero-cta:hover { filter:brightness(1.1); }
a:focus-visible,button:focus-visible,select:focus-visible { outline:2px solid #f0cf8b; outline-offset:4px; }
@media(max-width:700px) {
 main .deux-colonnes:has(#historique-panel:not(.hidden)) { grid-template-columns:minmax(0,1fr); }
 #auth-panel { padding:20px 16px; }
 #auth-panel .tabs { gap:6px; }
 #auth-panel .tab { font-size:12px; padding:10px 6px; }
 #duel-panel.catalogue-visiteur > h2 { margin-bottom:8px; }
}
/* Signature au clocher, commune à l'en-tête et au pied de page. */
.site-header .brand-mark { clip-path:none; background:none; filter:drop-shadow(0 3px 5px #0009); }
.site-header .brand-mark::before { display:none; }
.site-header .brand-mark img { display:block; width:100%; height:100%; object-fit:contain; }
.pied .footer-brand { display:flex; align-items:center; gap:10px; margin-right:auto; color:#e9cea1; text-decoration:none; }
.pied .footer-brand span { font:18px/1 Georgia,serif; text-transform:uppercase; }
.pied .footer-brand img { flex-shrink:0; }
.pied::after { display:none; }
/* Une signature compacte ferme la composition de la homepage. */
.pied.home-footer { display:grid; grid-template-columns:auto minmax(160px,1fr) minmax(300px,1.5fr); gap:26px; align-items:center; padding:20px 24px; border-top:1px solid #a5814c; box-shadow:inset 0 3px 0 #b9945015; background:linear-gradient(#040c10ed,#040c10f5),url('/img/brand/or-patine.svg'); }
.home-footer .footer-brand { margin:0; }
.pied.home-footer .footer-brand span { font:22px/.98 'Times New Roman',Georgia,serif; letter-spacing:.025em; color:#d9bb89; }
.home-footer .footer-brand img { object-fit:contain; }
.home-footer .footer-intro { padding-left:24px; border-left:1px solid #a5814c55; text-align:left; }
.home-footer .footer-intro p { max-width:250px; margin:0 0 6px; color:#c6b89d; font:12px/1.5 system-ui,sans-serif; }
.home-footer .footer-intro span { color:#9b8e78; font:10px/1.4 system-ui,sans-serif; }
.home-footer .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 20px; text-align:left; }
.home-footer .footer-links a { color:#d9bb89; text-decoration:none; font:11px/1.4 system-ui,sans-serif; }
.home-footer .footer-links a:hover { color:#fff0d0; text-decoration:underline; text-underline-offset:4px; }
.home-footer a:focus-visible { outline:1px solid #e5c18a; outline-offset:5px; }
@media(max-width:900px) {
 .pied.home-footer { grid-template-columns:auto minmax(0,1fr); gap:20px; }
 .pied.home-footer .footer-brand { width:auto; margin:0; justify-content:flex-start; }
 .home-footer .footer-links { grid-column:1 / -1; padding-top:16px; border-top:1px solid #a5814c44; }
}
@media(max-width:500px) {
 .pied.home-footer { grid-template-columns:minmax(0,1fr); padding:22px 14px; gap:16px; }
 .pied.home-footer .footer-brand { justify-content:center; }
 .home-footer .footer-intro { padding:0; border:0; text-align:center; }
 .home-footer .footer-intro p { margin:0 auto 6px; }
 .home-footer .footer-links { gap:16px 12px; }
}

/* L'entrée conserve les formulaires d'origine dans un écrin illustré. */
#auth-panel { position:relative; max-width:1160px; width:100%; padding:22px 24px; background:#08151d; overflow:hidden; border:8px solid transparent; border-image:url('/img/brand/cadre-tournoi.svg') 28 / 12px / 0 stretch; border-radius:0; }
#auth-panel:not(.hidden) { display:grid; grid-template-columns:minmax(240px,1.15fr) minmax(0,2fr); column-gap:26px; }
#auth-panel > * { grid-column:2; min-width:0; position:relative; z-index:1; }
#auth-panel::before { display:none; }
#auth-panel::after { content:''; position:absolute; inset:0 auto 0 0; width:39%; background:linear-gradient(90deg,transparent 72%,#08151d),linear-gradient(0deg,#08151d,transparent 22%),url('/img/brand/hero-tournoi-premium.webp') 5% center/cover; pointer-events:none; }
#auth-panel > h2 { font:22px/1.2 Georgia,serif; margin:0 0 16px; }
#auth-panel .hint { margin:0; font:13px/1.6 system-ui,sans-serif; }
#auth-panel .hint a { color:#e5c18a; text-underline-offset:3px; }
#auth-panel .hint a:hover { color:#fff0cf; }
#auth-panel input[type='date'] { color-scheme:dark; }
#auth-panel .tabs { margin:0 0 16px; padding-bottom:10px; gap:6px; }
#auth-panel .tab { min-height:40px; border-radius:0; background:#071219; }
#auth-panel .tab.active { color:#f0d6a5; border-color:#b08a50; background:linear-gradient(#54261fcc,#2d1715e6),url('/img/brand/or-patine.svg'); }
#auth-panel form:not(.hidden) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
#auth-panel form > .hint,#auth-panel form > button { grid-column:1 / -1; }
#auth-panel label { font-size:13px; min-width:0; }
#auth-panel input,#auth-panel select { width:100%; min-width:0; min-height:44px; border-radius:1px; background:#050f15; border-color:#9b794a88; }
#auth-panel button[type='submit'] { min-height:44px; margin:0; background:linear-gradient(#dec08cbb,#b58a50bb),url('/img/brand/or-patine.svg'); }
#auth-panel #auth-msg:empty { display:none; }
.hero-department { border-radius:8px 1px 8px 1px; }
.hero-department .hero-crest { filter:drop-shadow(0 5px 7px #000) drop-shadow(0 0 8px #d8b26b22); }
@media(max-width:900px) {
 #auth-panel { padding:26px 24px; max-width:720px; }
 #auth-panel:not(.hidden) { grid-template-columns:minmax(0,1fr); }
 #auth-panel > * { grid-column:1; }
 #auth-panel::after { display:none; }
 .pied .footer-brand { width:100%; justify-content:center; margin:0 0 8px; }
}
@media(max-width:700px) {
 #auth-panel { padding:22px 16px; }
 #auth-panel form:not(.hidden) { grid-template-columns:minmax(0,1fr); }
 #auth-panel > h2 { font-size:20px; }
 .pied .footer-brand span { font-size:17px; }
}
#duel-panel .jeu-description { margin:0; min-height:34px; color:#d4c4a7; text-align:center; font:12px/1.45 system-ui,sans-serif; }
#duel-panel .jeu-carte { height:360px!important; min-height:360px!important; }
#duel-panel .jeu-titre { min-height:34px; display:grid; align-items:center; padding-bottom:3px; border-bottom:0; }
#duel-panel .jeu-titre::after { display:none; }
#duel-panel .jeu-mentions { min-height:0; }
#duel-panel .jeu-mentions:empty { display:none; }
#duel-panel .jeu-corps { gap:5px; }
@media(max-width:700px) {
 #duel-panel .jeu-carte { height:380px!important; min-height:380px!important; }
 #duel-panel .jeu-description { font-size:13px; min-height:38px; }
}
/* Un résultat rempli conserve sa lisibilité, même avec des noms longs. */
.last-duel-panel .duel-team { display:grid; grid-template-columns:minmax(0,1fr); align-content:start; gap:9px; }
.last-duel-panel .duel-team .dept-crest-duel { justify-self:center; width:76px; height:90px; }
.last-duel-panel .duel-team-name { overflow:visible; overflow-wrap:anywhere; text-overflow:clip; }
.last-duel-panel .duel-team-player { white-space:normal; overflow-wrap:anywhere; }
.last-duel-panel .duel-team.winner { border-bottom:1px solid #cda262; }
.last-duel-panel .duel-versus { align-self:center; }
.last-duel-panel .duel-last:not(.duel-empty) { padding:12px 0; border:0; box-shadow:none; background:none; }
.last-duel-panel .duel-last:not(.duel-empty) > .stat-label { display:none; }
.last-duel-panel .duel-last:not(.duel-empty)::before { display:none; }
.championship-grid .leaderboard th.code { white-space:nowrap; letter-spacing:0; font-size:10px; }
.championship-grid .leaderboard td:nth-child(3) { overflow-wrap:anywhere; }
.championship-grid .leaderboard .pts { font-variant-numeric:tabular-nums; }
.hero-department-points { font-variant-numeric:tabular-nums; }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
/* Une dernière invitation illustrée, dans la continuité de l'affiche. */
.rally-banner { order:7; position:relative; isolation:isolate; display:flex; align-items:center; gap:26px; min-width:0; padding:40px 34px; border:1px solid #a88047; border-radius:9px 1px; background:#23100f; box-shadow:inset 0 0 0 5px #080d10,inset 0 0 0 6px #a8804744; overflow:hidden; }
.rally-banner::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#071219f5,#351511dc 55%,#270c0cad),url('/img/brand/hero-tournoi-premium.webp') right 62%/cover; }
.rally-crest { flex-shrink:0; filter:drop-shadow(0 5px 8px #0009); }
.rally-copy { flex:1; min-width:0; }
.rally-kicker { margin:0 0 10px; color:#c9a46e; font:10px/1.5 system-ui,sans-serif; letter-spacing:.15em; text-transform:uppercase; }
.rally-banner h2 { margin:0 0 12px; color:#f0d6a6; font:25px/1.25 Georgia,serif; text-transform:uppercase; }
.rally-banner h2::before,.rally-banner h2::after { display:none; }
.rally-copy > p:last-child { margin:0; color:#e1cfb2; font:14px/1.65 system-ui,sans-serif; }
.rally-actions { display:grid; gap:14px; flex-shrink:0; text-align:center; }
.rally-cta { display:flex; align-items:center; justify-content:center; gap:18px; min-height:46px; padding:13px 22px; border:1px solid #deb879; background:linear-gradient(120deg,#d1a269,#eed19a,#b98645); box-shadow:inset 0 0 0 3px #71502f; color:#26180c; text-decoration:none; text-transform:uppercase; font:700 14px/1.3 Georgia,serif; }
.rally-cta:hover { filter:brightness(1.1); }
.rally-ranking { color:#e3c491; font:11px/1.5 system-ui,sans-serif; text-decoration:none; }
.rally-ranking:hover { color:#fff0d0; text-decoration:underline; }
.hero .hero-title { background-image:url('/img/brand/or-patine.svg'); background-size:640px 240px; -webkit-text-stroke:.35px #eed6ab; }
#accelerateurs #stats-primes .prime { position:relative; }
#accelerateurs #stats-primes .prime::before { content:''; display:block; padding:0; clip-path:none; border:0; border-radius:0; box-shadow:none; transform:none; background:url('/img/brand/medaille-domination.svg') center/contain no-repeat; }
#accelerateurs #stats-primes .prime:nth-child(2)::before { content:''; background-image:url('/img/brand/medaille-victoires.svg'); }
#accelerateurs #stats-primes .prime .stat-value.empty { font:12px/1.5 system-ui,sans-serif; font-weight:400; }
#accelerateurs #stats-primes .prime .regle { color:#c9bb9f; font-weight:400; }
#duel-panel .jeu-carte .jeu-titre h3 { font-size:18px; line-height:1.2; }
#duel-panel .jeu-carte:hover { background-color:#0b1b23; }
#duel-panel .jeu-carte:focus-within { outline:1px solid #f0cf8b; outline-offset:2px; }
/* Cadres fins et composition resserrée de l'affiche de référence. */
.championship-grid > .panel,#records-panel,#historique-panel,.rally-banner,#accelerateurs,#duel-panel .jeu-carte,.hero-department {
 border:12px solid transparent; border-image:url('/img/brand/cadre-tournoi.svg') 28 / 14px / 0 stretch; border-radius:0; box-shadow:none;
}
.championship-grid > .panel::before,#records-panel::before,#historique-panel::before,#accelerateurs::before { display:none; }
.hero-department { padding:76px 4px 5px; }
.hero-kicker { display:none; }
.hero-title { font-family:'Times New Roman',Georgia,serif; font-size:clamp(78px,8.8vw,126px); line-height:.83; letter-spacing:-.025em; }
.hero-title span { font-size:.66em; letter-spacing:0; }
.hero-ribbon { margin-top:22px; }
.hero { min-height:555px; padding-top:22px; }
.hero-contenders { bottom:40px; }
.hero-inner .saison { position:static; transform:none; width:auto; margin:12px auto 0; }
.hero-versus::before,.hero-versus::after { content:''; position:absolute; top:50%; width:100px; height:1px; background:linear-gradient(90deg,transparent,#b18a4b); }
.hero-versus::before { right:calc(100% + 8px); }
.hero-versus::after { left:calc(100% + 8px); transform:rotate(180deg); }
main { gap:16px; padding-top:6px; }
.championship-grid { gap:12px; }
.championship-grid > .panel { padding:12px 10px; min-height:340px; }
.championship-grid > .panel h2 { font-weight:400; font-size:18px; margin-bottom:12px; }
.championship-grid .map-panel { background:linear-gradient(#08141bef,#08141bdf),url('/img/brand/hero-tournoi-premium.webp') center/cover; }
.championship-grid .leaderboard td { font-family:system-ui,sans-serif; font-size:11px; font-weight:400; }
.championship-grid .leaderboard tbody tr:nth-child(-n+3) td { font-weight:500; }
#duel-panel { padding:12px 0 4px; }
#duel-panel > h2 { font-weight:400; margin-bottom:8px; }
#duel-panel .jeu-carte { border-width:4px; border-image-width:9px; }
#duel-panel .jeu-carte::before { border:0; }
#duel-panel .jeu-titre h3 { font-weight:400; }
#duel-panel .jeux-piste { padding-bottom:7px; }
#duel-panel .jeux-reperes { margin-bottom:0; }
#auth-panel { order:8; margin-top:6px; }
#accelerateurs { padding:12px 16px; }
#accelerateurs .super-titre { margin-bottom:10px; font-size:16px; font-weight:400; }
#accelerateurs #stats-primes { gap:0; }
#accelerateurs #stats-primes .prime { min-height:130px; border:0; padding:10px 18px 10px 102px; }
#accelerateurs #stats-primes .prime + .prime { border-left:1px solid #a8804755; }
#accelerateurs #stats-primes .prime::before { left:12px; top:18px; width:72px; height:84px; }
#accelerateurs #stats-primes .prime-recompense { margin:6px 0; font-size:21px; }
#accelerateurs #stats-primes .stat-label { font-size:13px; font-weight:400; }
main > .super:not(.super-primes) { padding:0; border:0; background:none; box-shadow:none; }
main > .super:not(.super-primes)::before { display:none; }
main > .super:not(.super-primes) > .super-titre { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
main #stats-zone.stats { gap:0; padding:8px 0; border-block:1px solid #ba925c; background:radial-gradient(ellipse at top,#e1c49a,#b38c56); }
main #stats-zone.stats .stat-card { min-height:100px; border:0; padding:14px 24px; background:none; box-shadow:none; }
main #stats-zone.stats .stat-card + .stat-card { border-left:1px solid #77553088; }
main #stats-zone.stats .stat-card::before { display:none; }
main #stats-listes .stat-card { padding:14px; min-height:100px; }
main .deux-colonnes,main .deux-colonnes:has(#historique-panel:not(.hidden)) { grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:12px; }
main .deux-colonnes #records-panel { grid-column:1; grid-row:1; }
main .deux-colonnes > #historique-panel { grid-column:1; grid-row:2; }
main .deux-colonnes .rally-banner { grid-column:2; grid-row:1 / span 2; display:flex; flex-direction:column; justify-content:center; gap:15px; padding:24px 20px; text-align:center; }
main .deux-colonnes .rally-banner::before { background:linear-gradient(180deg,#1b100e55,#340e0ac9),url('/img/brand/hero-tournoi-premium.webp') 80% center/auto 100%; }
main .deux-colonnes .rally-crest { display:none; }
main .deux-colonnes .rally-copy { flex:0; }
main .deux-colonnes .rally-kicker { display:none; }
main .deux-colonnes .rally-banner h2 { font-size:22px; font-weight:400; }
main .deux-colonnes .rally-actions { width:auto; grid-template-columns:minmax(0,1fr); }
#records-panel,#historique-panel { padding:14px; }
#records-panel h2,#historique-panel h2 { font-size:17px; font-weight:400; }
#records-panel .records-empty-callout { padding:12px 4px; }
#records-panel .records-empty-title { font-size:14px; }
#records-panel .records-empty-lead { font-size:13px; }
.pied { margin-top:0; padding-top:16px; padding-bottom:16px; }
@media(min-width:901px) and (max-width:1150px) {
 .hero-title { font-size:102px; }
 .hero-inner { max-width:520px; }
 .hero-department { width:180px; }
 .hero-sub { max-width:330px; }
}
@media(max-width:900px) {
 .hero { min-height:740px; }
 .hero-title { font-size:90px; }
 #accelerateurs #stats-primes .prime { padding-left:86px; }
 #accelerateurs #stats-primes .prime::before { left:8px; width:62px; height:74px; }
}
@media(max-width:700px) {
 .hero { min-height:0; }
 .hero-title { font-size:clamp(56px,14vw,86px); }
 .hero-department { padding:50px 0 0; }
 .hero-versus::before,.hero-versus::after { width:65px; }
 .championship-grid > .panel { min-height:0; padding:14px 10px; }
 #accelerateurs { padding:12px 8px; }
 #accelerateurs #stats-primes .prime + .prime { border-left:0; border-top:1px solid #a8804755; }
 main #stats-zone.stats .stat-card + .stat-card { border-left:0; border-top:1px solid #77553088; }
 main .deux-colonnes,main .deux-colonnes:has(#historique-panel:not(.hidden)) { grid-template-columns:minmax(0,1fr); }
 main .deux-colonnes #records-panel,main .deux-colonnes > #historique-panel,main .deux-colonnes .rally-banner { grid-column:1; grid-row:auto; }
 main .deux-colonnes .rally-banner { min-height:270px; }
 main .deux-colonnes .rally-actions { width:100%; }
}
main #stats-zone.stats .stat-card .stat-value.empty { max-width:380px; font:19px/1.4 Georgia,serif; }
@media(max-width:900px) {
 .rally-banner { flex-wrap:wrap; gap:20px; padding:30px 26px; }
 .rally-actions { width:100%; grid-template-columns:1fr 1fr; align-items:center; }
}
@media(max-width:700px) {
 .rally-banner { flex-direction:column; gap:18px; padding:28px 20px; text-align:center; }
 .rally-banner::before { background:linear-gradient(180deg,#09151cdb,#39100de6),url('/img/brand/hero-tournoi-premium.webp') 85% center/auto 100%; }
 .rally-crest { width:58px; height:70px; }
 .rally-banner h2 { font-size:22px; }
 .rally-kicker { font-size:9px; }
 .rally-actions { grid-template-columns:minmax(0,1fr); }
 .rally-copy > p:last-child { font-size:13px; }
}
@media(max-width:700px) {
 #accelerateurs #stats-primes .prime .stat-label { font-size:13px; line-height:1.35; }
 #accelerateurs #stats-primes .prime .prime-recompense { display:block; font-size:22px; line-height:1.3; }
 #accelerateurs #stats-primes .prime .prime-recompense span { display:block; margin-bottom:3px; }
 #accelerateurs #stats-primes .prime .regle { margin:12px 0 0 -70px; }
}
/* Lettrage illustré et cartographie de l'affiche. */
.hero .hero-title-art { position:relative; width:100%; max-width:570px; margin:0 auto; background:none; filter:none; font-size:0; line-height:0; -webkit-text-stroke:0; mix-blend-mode:screen; }
.hero-title-art img { display:block; width:100%; height:auto; }
.hero-title-art .title-accessible { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.championship-grid .map-panel { background:linear-gradient(#06101855,#06101866),url('/img/brand/terrain-carte-reference.webp') center/cover; }
.map-tournament { position:relative; }
.championship-grid .map-tournament .map-wrap { height:285px!important; max-height:285px!important; }
.championship-grid .map-tournament .france-svg { max-height:285px!important; width:100%; filter:drop-shadow(0 3px 4px #0009); }
.map-tournament .dept { stroke:#d4b27c; stroke-width:1.1; transition:filter .15s; }
.map-tournament .dept:hover { filter:brightness(1.35); cursor:pointer; }
.championship-grid .map-tournament .dept { stroke:#d4b27c; stroke-width:1.1; }
.map-tournament .map-legend-ranking { display:grid; gap:7px; position:absolute; left:0; top:155px; padding:9px 6px; background:#061018cf; border:0; font:10px/1.3 system-ui,sans-serif; color:#ecd8b5; }
.map-legend-ranking > span { display:flex; align-items:center; gap:6px; }
.map-legend-ranking i { width:9px; height:11px; border:1px solid #d4b27c99; border-radius:2px; }
.map-tournament .map-tie-note { margin:4px 0; color:#c6b89d; font:10px/1.4 system-ui,sans-serif; text-align:center; }
.map-tournament .om-row { margin:5px 0; }
.map-expand { display:block; width:85%; min-height:30px; margin:8px auto 0; padding:6px 8px; border:1px solid #a88047; border-radius:3px; background:#061018de; color:#e4c38b; font:10px/1.3 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.04em; }
.map-expand:hover { background:#25323a; }
.map-dialog { width:min(900px,94vw); max-width:94vw; max-height:92vh; padding:20px; border:1px solid #b28a50; background:linear-gradient(#06101877,#06101877),url('/img/brand/terrain-carte-reference.webp') center/cover; color:#ecd8b5; }
.map-dialog::backdrop { background:#02080dea; }
.map-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.map-dialog-heading h2 { margin:0; font:22px/1.3 Georgia,serif; text-transform:uppercase; }
.map-close { padding:8px 12px; border:1px solid #a88047; background:#071219; color:#e4c38b; }
.map-dialog .map-wrap { height:min(65vh,650px); max-height:none; }
.map-dialog .france-svg { width:100%; height:100%; max-height:none; }
.map-dialog .map-legend-ranking { top:auto; bottom:65px; left:8px; font-size:12px; }
@media(max-width:700px) {
 .hero .hero-title-art { max-width:420px; }
 .map-tournament .map-legend-ranking { top:170px; font-size:9px; gap:6px; }
 .map-dialog { padding:14px; }
 .map-dialog-heading h2 { font-size:17px; }
 .map-dialog .map-legend-ranking { position:static; grid-template-columns:1fr 1fr; font-size:11px; background:#061018aa; }
 .map-dialog .map-wrap { height:50vh; }
}
.hero-inner:has(.hero-title-art) { z-index:auto; }
.hero-inner:has(.hero-title-art) > :not(.hero-title-art) { position:relative; z-index:2; }
.hero-inner:has(.hero-title-art) > .saison { inset:auto; transform:none; }
.hero .hero-title-art { z-index:2; }
/* Le cœur de l'affiche : ruban plié, invitation et duel de départements. */
.hero-inner .hero-ribbon { display:block; width:410px; max-width:calc(100% - 28px); padding:0; margin:14px auto 14px; border:0; background:none; font:18px/1.25 Georgia,serif; font-weight:400; letter-spacing:0; filter:drop-shadow(0 5px 5px #0009); }
.hero-ribbon > span { position:relative; display:block; padding:12px 8px; border-block:1px solid #ab713b; background:linear-gradient(180deg,#651e14,#3d100d 75%,#581b11); box-shadow:inset 0 0 0 3px #18080755; }
.hero-ribbon::before,.hero-ribbon::after { content:''; position:absolute; z-index:-1; top:10px; width:31px; height:39px; background:linear-gradient(#601d13,#2b0907); border-block:1px solid #754123; }
.hero-ribbon::before { left:-23px; clip-path:polygon(0 0,100% 0,100% 100%,0 100%,30% 50%); }
.hero-ribbon::after { right:-23px; clip-path:polygon(0 0,100% 0,70% 50%,100% 100%,0 100%); }
.hero-inner .hero-sub { max-width:420px; margin:0 auto; font:14px/1.65 system-ui,sans-serif; color:#fff1da; }
.hero-inner .hero-cta { position:relative; display:inline-flex; justify-content:center; min-width:300px; min-height:58px; margin-top:18px; padding:12px 21px; gap:15px; border:1px solid #b98b4d; border-radius:4px; background:linear-gradient(#d5b57eaa,#bc8e52aa),url('/img/brand/or-patine.svg') center/cover; box-shadow:inset 0 0 0 3px #50351f,inset 0 0 0 4px #e7c58a,0 5px 12px #000b; color:#291a0c; font:700 17px/1.2 Georgia,serif; }
.hero-swords { width:30px; height:30px; flex-shrink:0; fill:#60432444; stroke:#392510; stroke-width:1.4; stroke-linejoin:round; }
.hero-inner .hero-discover { margin-top:15px; font-size:11px; color:#efc984; }
.hero-discover span { display:inline-block; margin-left:5px; font-size:17px; vertical-align:-1px; }
.hero .hero-contenders { inset:225px max(40px,calc((100% - 1210px)/2)) 25px; }
.hero .hero-department { width:235px; padding:77px 6px 6px; background:linear-gradient(90deg,#061522ef,#103245df,#06131fef); }
.hero .hero-department-red { background:linear-gradient(90deg,#210b0bef,#48180fdf,#1d0a09ef); }
.hero .hero-department-name { margin:12px 0 8px; font:20px/1.2 Georgia,serif; }
.hero .hero-department-points { font:38px/1.1 Georgia,serif; color:#ecd0a0; }
.hero .hero-department-points span { font:11px/1.2 system-ui,sans-serif; letter-spacing:.12em; margin:6px 0 13px; }
.hero .hero-department-status { min-height:30px; padding-top:9px; font:10px/1.5 system-ui,sans-serif; }
.hero .hero-versus { bottom:24px; width:64px; height:64px; font-size:32px; border-color:#b38a4f; box-shadow:0 0 0 5px #071018,0 0 0 6px #8a67336b; }
.hero .hero-versus::before,.hero .hero-versus::after { width:145px; }
#leaderboard-panel .championship-season { width:auto; margin:-4px 0 10px; padding:0; background:none; border:0; color:#bfa985; text-align:center; font:9px/1.5 system-ui,sans-serif; }
#leaderboard-panel .championship-season strong { font-weight:400; }
@media(min-width:901px) and (max-width:1150px) {
 .hero .hero-contenders { left:32px; right:32px; bottom:22px; }
 .hero .hero-department { width:194px; }
 .hero .hero-department-name { font-size:17px; }
 .hero-inner .hero-ribbon { width:370px; font-size:16px; }
 .hero-inner .hero-sub { max-width:370px; font-size:13px; }
 .hero-inner .hero-cta { min-width:0; font-size:16px; }
}
@media(max-width:900px) {
 .hero .hero-contenders { inset:auto 8% 35px; }
 .hero .hero-department { width:210px; padding-top:50px; }
 .hero .hero-versus { bottom:14px; width:48px; height:48px; font-size:25px; }
 .hero .hero-versus::before,.hero .hero-versus::after { width:65px; }
}
@media(max-width:700px) {
 .hero-inner .hero-ribbon { margin-top:13px; font-size:13px; }
 .hero-ribbon > span { padding:11px 3px; }
 .hero-ribbon::before,.hero-ribbon::after { height:33px; width:23px; }
 .hero-ribbon::before { left:-15px; }
 .hero-ribbon::after { right:-15px; }
 .hero-inner .hero-sub { font-size:13px; max-width:330px; }
 .hero-inner .hero-cta { min-width:0; max-width:100%; padding:12px 17px; font-size:15px; gap:10px; }
 .hero-swords { width:26px; height:26px; }
 .hero-inner .hero-discover { font-size:10px; }
 .hero .hero-contenders { left:16px; right:16px; bottom:38px; gap:18px; }
 .hero .hero-department { width:calc(50% - 9px); padding:48px 0 0; }
 .hero .hero-department-name { font-size:14px; min-height:34px; margin:9px 0; }
 .hero .hero-department-points { font-size:30px; }
 .hero .hero-department-points span { font-size:9px; }
 .hero .hero-department-status { font-size:9px; min-height:39px; }
 .hero .hero-versus { bottom:12px; width:40px; height:40px; font-size:22px; }
}
/* Matières peintes : les lettres restent du texte, les liens restent natifs. */
.hero-inner .hero-ribbon { width:450px; max-width:100%; margin:12px auto 10px; min-height:61px; display:grid; place-items:center; filter:drop-shadow(0 4px 4px #0008); }
.hero-inner .hero-ribbon::before { content:''; position:absolute; z-index:-1; inset:0; width:auto; height:auto; border:0; background:url('/img/brand/ruban-tournoi-peint.webp') center 41%/100% 222% no-repeat; clip-path:polygon(0 3%,9%6%,9%0,91%0,91%6%,100%3%,94%50%,100%94%,89%92%,89%100%,11%100%,11%92%,0 94%,6%50%); }
.hero-inner .hero-ribbon::after { display:none; }
.hero-inner .hero-ribbon > span { padding:8px 36px; border:0; background:none; box-shadow:none; color:#f3debc; font:400 17px/1.3 Georgia,serif; text-shadow:0 2px 2px #230704; }
.hero-inner .hero-cta { isolation:isolate; min-width:350px; min-height:66px; padding:15px 26px; border:0; border-radius:0; background:none; box-shadow:none; color:#26190d; text-shadow:0 1px 0 #e8c58d88; font-weight:600; }
.hero-inner .hero-cta::before { content:''; display:block; position:absolute; z-index:-1; inset:0; background:url('/img/brand/plaque-combat-peinte.webp') center 38%/100% 163% no-repeat; clip-path:polygon(3%0,97%0,98%7%,100%12%,100%89%,98%94%,97%100%,3%100%,2%94%,0 89%,0 12%,2%7%); }
.hero-inner .hero-cta:hover { filter:brightness(1.08); }
.hero-inner .hero-cta:focus-visible { outline:2px solid #f0cf8b; outline-offset:4px; }
@media(max-width:1150px) {
 .hero-inner .hero-ribbon { width:410px; min-height:57px; }
 .hero-inner .hero-ribbon > span { font-size:15px; }
 .hero-inner .hero-cta { min-width:320px; min-height:62px; }
}
@media(max-width:700px) {
 .hero-inner .hero-ribbon { width:100%; min-height:52px; }
 .hero-inner .hero-ribbon > span { padding:8px 26px; font-size:12px; }
 .hero-inner .hero-cta { min-width:0; width:310px; max-width:100%; min-height:61px; padding:14px 20px; font-size:15px; }
}
/* Invitation lisible et sceau de duel aux proportions de l'affiche. */
.hero .hero-inner .hero-sub { font-family:'Segoe UI',Arial,sans-serif; font-size:15px; font-weight:400; line-height:1.65; letter-spacing:.005em; color:#f6edda; text-shadow:0 1px 3px #000; -webkit-text-stroke:0; max-width:430px; }
.hero .hero-versus { width:62px; height:68px; bottom:18px; border:0; border-radius:0; background:url('/img/brand/medaillon-versus.svg') center/contain no-repeat; box-shadow:none; color:#d3a160; font:400 32px/1 'Times New Roman',Georgia,serif; letter-spacing:-.055em; text-indent:-.055em; text-shadow:0 1px 1px #000; }
.hero .hero-versus::before,.hero .hero-versus::after { width:150px; height:1px; top:50%; }
.hero .hero-versus::before { right:calc(100% - 3px); }
.hero .hero-versus::after { left:calc(100% - 3px); }
@media(min-width:901px) and (max-width:1150px) {
 .hero .hero-inner .hero-sub { max-width:390px; font-size:14px; }
}
@media(max-width:900px) {
 .hero .hero-versus { width:50px; height:56px; bottom:10px; font-size:27px; }
 .hero .hero-versus::before,.hero .hero-versus::after { width:70px; }
}
@media(max-width:700px) {
 .hero .hero-inner .hero-sub { max-width:340px; font-size:14px; line-height:1.7; letter-spacing:0; }
 .hero .hero-versus { width:46px; height:51px; bottom:9px; font-size:25px; }
}
/* Écus et tentures des deux départements à l'affiche. */
.hero .hero-department { background:linear-gradient(90deg,#041019ed,#0b2434de 45%,#041019f5),url('/img/brand/terrain-carte-reference.webp') 20% center/auto 100%; padding-top:73px; }
.hero .hero-department-red { background:linear-gradient(90deg,#180909ed,#351410de 45%,#140809f5),url('/img/brand/terrain-carte-reference.webp') 80% center/auto 100%; }
.hero .hero-department::after { content:''; position:absolute; pointer-events:none; inset:8px; border:1px solid #ad85452b; background:repeating-linear-gradient(96deg,transparent 0 18px,#0000000a 19px 20px); }
.hero .hero-department .hero-crest { z-index:2; width:120px; height:148px; top:-72px; filter:drop-shadow(0 5px 5px #0009); }
.hero .hero-department-name { position:relative; z-index:1; font:400 21px/1.2 'Times New Roman',Georgia,serif; letter-spacing:.025em; color:#ead9b6; text-shadow:0 1px 2px #000; margin:10px 0 6px; }
.hero .hero-department-points { position:relative; z-index:1; font:400 40px/1.1 'Times New Roman',Georgia,serif; color:#e0c49a; text-shadow:0 2px 2px #0008; }
.hero .hero-department-points span { font:400 10px/1.4 'Segoe UI',Arial,sans-serif; letter-spacing:.14em; margin:4px 0 10px; color:#ddcba8; }
.hero .hero-department-status { position:relative; z-index:1; border-color:#ac854044; color:#c7b493; font:400 10px/1.4 'Segoe UI',Arial,sans-serif; }
@media(min-width:901px) and (max-width:1150px) {
 .hero .hero-department-name { font-size:18px; }
 .hero .hero-department-points { font-size:35px; }
}
@media(max-width:900px) {
 .hero .hero-department { padding-top:51px; }
 .hero .hero-department .hero-crest { width:88px; height:110px; top:-57px; }
}
@media(max-width:700px) {
 .hero .hero-department { padding-top:48px; }
 .hero .hero-department-name { font-size:16px; letter-spacing:.01em; }
 .hero .hero-department-points { font-size:32px; }
 .hero .hero-department-points span { font-size:9px; }
 .hero .hero-department-status { font-size:9px; }
}
/* En-tête de l'affiche : signature claire et navigation sur un seul rang. */
body > .ruban { height:1px; opacity:.45; }
.site-header { display:flex; align-items:center; justify-content:space-between; min-height:80px; padding:9px max(24px,calc((100vw - 1320px)/2)); gap:24px; flex-wrap:nowrap; background:linear-gradient(180deg,#05090bf5,#020709),url('/img/brand/terrain-carte-reference.webp') center 30%/cover; border-bottom:1px solid #92704455; }
.site-header .brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:#e5cda7; }
.site-header .brand-mark { width:46px; height:60px; flex-shrink:0; }
.site-header .brand h1 { margin:0; font:400 25px/.88 'Times New Roman',Georgia,serif; letter-spacing:.015em; color:#e6cda8; text-shadow:0 1px 2px #000; }
.site-header .site-nav { order:0; flex:1; flex-basis:auto; display:flex; justify-content:center; gap:24px; width:auto; padding:0; overflow:visible; }
.site-header .site-nav a { position:relative; font:400 11px/1.4 'Segoe UI',Arial,sans-serif; letter-spacing:.04em; padding:15px 0; color:#d3c5ae; }
.site-header .site-nav a:hover,.site-header .site-nav a.active { color:#f3d6a0; }
.site-header .site-nav a.active { border-color:#933f27; }
.site-header .header-auth { gap:8px; margin:0; }
.site-header .header-auth a { min-height:32px; padding:9px 13px; border-color:#86643b; font:400 10px/1.2 'Segoe UI',Arial,sans-serif; box-shadow:inset 0 0 0 2px #040b0e; }
.site-header .header-auth a:last-child { background:linear-gradient(#5b201acc,#300c0de8),url('/img/brand/ruban-tournoi-peint.webp') center/cover; box-shadow:inset 0 0 0 2px #350c0b; border-color:#89472b; }
.site-header .identity { order:0; min-width:0; }
@media(min-width:901px) and (max-width:1150px) {
 .site-header { gap:18px; padding-inline:24px; }
 .site-header .brand h1 { font-size:23px; }
 .site-header .site-nav { gap:18px; }
 .site-header .header-auth a { padding-inline:10px; }
}
@media(max-width:900px) {
 .site-header { flex-wrap:wrap; gap:8px 15px; padding:10px 20px 0; }
 .site-header .site-nav { order:3; flex-basis:100%; gap:26px; }
 .site-header .site-nav a { padding:11px 0; }
 .site-header .identity { margin-left:auto; }
}
@media(max-width:700px) {
 .site-header { padding:10px 14px 0; gap:8px; }
 .site-header .brand { gap:7px; }
 .site-header .brand-mark { width:34px; height:44px; }
 .site-header .brand h1 { font-size:18px; }
 .site-header .header-auth { gap:5px; }
 .site-header .header-auth a { min-height:29px; padding:8px 6px; font-size:8px; }
 .site-header .site-nav { justify-content:space-between; gap:7px; flex-wrap:nowrap; }
 .site-header .site-nav a { font-size:9px; padding:10px 0; letter-spacing:0; }
 .site-header .identity { width:100%; order:2; }
}
/* Partie basse : récompenses, bande de chiffres, puis triptyque final. */
#accelerateurs { position:relative; padding:10px 15px 9px; background:linear-gradient(#06131de8,#061018ed),url('/img/brand/terrain-carte-reference.webp') center/cover; }
#accelerateurs > .super-titre { display:table; width:auto; max-width:90%; margin:-25px auto 5px; padding:0 14px; background:#061016; color:#ddba80; font:400 17px/1.35 'Times New Roman',Georgia,serif; }
#accelerateurs > .super-titre::after { display:none; }
#accelerateurs #stats-primes { display:grid; grid-template-columns:1fr 1fr; gap:0; }
#accelerateurs #stats-primes .prime { min-height:105px; padding:10px 20px 8px 100px; background:none; box-shadow:none; }
#accelerateurs #stats-primes .prime::before { top:15px; width:68px; height:78px; }
#accelerateurs #stats-primes .prime .stat-label { font:400 15px/1.3 'Times New Roman',Georgia,serif; letter-spacing:.035em; }
#accelerateurs #stats-primes .prime .prime-recompense { display:block; margin:5px 0; font:400 22px/1.2 'Times New Roman',Georgia,serif; }
#accelerateurs #stats-primes .prime .prime-recompense span { display:inline; margin-right:7px; font:9px/1.3 'Segoe UI',sans-serif; }
#accelerateurs #stats-primes .prime .stat-value { margin:5px 0; font:11px/1.4 'Segoe UI',sans-serif; }
#accelerateurs .prime-rules { margin-top:6px; color:#c8b38e; font:10px/1.4 'Segoe UI',sans-serif; }
#accelerateurs .prime-rules summary { cursor:pointer; width:fit-content; color:#dbc08e; }
#accelerateurs .prime-rules .regle { margin:8px 0 0; font:12px/1.5 'Segoe UI',sans-serif; }
#accelerateurs .prime::after { display:none; }
main > .home-metrics { margin:0; }
main .home-metrics #stats-zone.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:10px 0; background:linear-gradient(#dbc09780,#cfad7980),url('/img/brand/plaque-combat-peinte.webp') center 40%/100% 450%; border-block:2px solid #9b7547; }
main .home-metrics #stats-zone.stats .stat-card { display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:105px; padding:6px 14px; text-align:center; }
main .home-metrics #stats-zone.stats .stat-card + .stat-card { border-left:1px solid #63452277; }
main .home-metrics #stats-zone.stats .stat-value { order:0; margin:0; font:400 39px/1.05 'Times New Roman',Georgia,serif; color:#21190f; }
main .home-metrics #stats-zone.stats .stat-label { order:1; display:flex; align-items:center; gap:7px; margin:8px 0 0; font:600 10px/1.3 'Segoe UI',sans-serif; letter-spacing:.035em; color:#302113; }
main .home-metrics #stats-zone.stats .stat-label .ico { display:inline-block; width:18px; height:18px; color:#49331c; }
main .home-metrics #stats-zone.stats .stat-meta { order:2; margin:4px 0 0; font:10px/1.3 'Segoe UI',sans-serif; }
main .deux-colonnes,main .deux-colonnes:has(#historique-panel:not(.hidden)) { grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr) minmax(0,1fr); gap:12px; align-items:stretch; }
main .deux-colonnes #records-panel { grid-column:1; grid-row:1; min-width:0; }
main .deux-colonnes .rally-banner { grid-column:2; grid-row:1; min-height:280px; padding:24px 20px; justify-content:space-between; }
main .deux-colonnes .rally-banner::before { background:linear-gradient(#270b08a8,#380e0988 55%,#130706),url('/img/brand/hero-tournoi-premium.webp') 65% center/auto 100%; }
main .deux-colonnes .rally-banner h2 { font:400 21px/1.25 'Times New Roman',Georgia,serif; }
main .deux-colonnes .rally-copy > p:last-child { font-size:13px; }
main .deux-colonnes .rally-cta { background:linear-gradient(#53150daa,#290a07aa),url('/img/brand/ruban-tournoi-peint.webp') center/cover; box-shadow:inset 0 0 0 2px #230b09; color:#eed6a8; font-weight:400; }
.home-aside { grid-column:3; grid-row:1; display:grid; gap:10px; min-width:0; align-content:start; }
.home-aside #historique-panel { margin:0; padding:13px; min-width:0; background:#071219; }
.home-aside #historique-panel h2 { margin:0 0 9px; font:400 17px/1.25 'Times New Roman',Georgia,serif; }
.home-aside #historique-panel .history-welcome,.home-aside #historique-panel .stat-value.empty { margin:8px 0; font:12px/1.5 'Segoe UI',sans-serif; color:#cabda4; }
.history-login { display:block; width:fit-content; margin:10px auto 0; padding:6px 12px; border:1px solid #967243; color:#e1c394; font:10px/1.3 'Segoe UI',sans-serif; text-decoration:none; text-transform:uppercase; }
.home-aside #stats-listes { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
.home-aside #stats-listes .stat-card { min-height:0; padding:12px; background:#071219; border:1px solid #856438; }
.home-aside #stats-listes .stat-label { font:400 13px/1.3 'Times New Roman',Georgia,serif; color:#d9b77f; }
.home-aside #stats-listes .stat-value.empty { font:11px/1.5 'Segoe UI',sans-serif; margin:8px 0 0; color:#bdae92; }
.home-aside #stats-listes .palmares { max-height:160px; overflow:auto; }
.home-aside #historique-liste .parties { max-height:220px; overflow:auto; }
#records-panel .records-empty-callout { padding:12px 0; text-align:left; }
#records-panel .records-empty-title { font:400 15px/1.3 'Times New Roman',Georgia,serif; }
#records-panel .records-empty-lead { font:13px/1.4 'Times New Roman',Georgia,serif; }
#records-panel .records-empty-copy { font:11px/1.5 'Segoe UI',sans-serif; }
#records-panel .records-empty-cta { background:none; border:1px solid #987342; box-shadow:none; color:#dec293; font:10px/1.3 'Segoe UI',sans-serif; }
@media(max-width:1000px) {
 main .deux-colonnes,main .deux-colonnes:has(#historique-panel:not(.hidden)) { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); }
 .home-aside { grid-column:1/-1; grid-row:2; grid-template-columns:1fr 1fr; }
}
@media(max-width:700px) {
 #accelerateurs { margin-top:12px; padding:12px 8px 5px; }
 #accelerateurs > .super-titre { font-size:16px; text-align:center; }
 #accelerateurs #stats-primes { grid-template-columns:minmax(0,1fr); }
 #accelerateurs #stats-primes .prime { padding:12px 8px 12px 80px; }
 #accelerateurs #stats-primes .prime::before { left:4px; width:60px; height:72px; }
 #accelerateurs #stats-primes .prime .stat-label { font-size:14px; }
 main .home-metrics #stats-zone.stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 main .home-metrics #stats-zone.stats .stat-card + .stat-card { border-top:0; border-left:0; }
 main .home-metrics #stats-zone.stats .stat-card:nth-child(even) { border-left:1px solid #63452277; }
 main .home-metrics #stats-zone.stats .stat-card:nth-child(n+3) { border-top:1px solid #63452277; }
 main .home-metrics #stats-zone.stats .stat-value { font-size:34px; }
 main .home-metrics #stats-zone.stats .stat-label { font-size:9px; }
 main .deux-colonnes,main .deux-colonnes:has(#historique-panel:not(.hidden)) { grid-template-columns:minmax(0,1fr); }
 main .deux-colonnes #records-panel { grid-column:1; grid-row:1; }
 main .deux-colonnes .rally-banner { grid-column:1; grid-row:2; min-height:270px; }
 .home-aside { grid-column:1; grid-row:3; grid-template-columns:minmax(0,1fr); }
}
main .home-aside #stats-listes { margin:0; padding:0; border:0; background:none; box-shadow:none; width:100%; }
main .home-aside #stats-listes::before,main .home-aside #stats-listes::after { display:none; }
main .home-aside #stats-listes .stat-card { min-height:0; padding:12px; }
main .home-aside #stats-listes .stat-value.empty { margin:8px 0 0; }
@media(max-width:700px) {
 main .home-metrics #stats-zone.stats { grid-template-columns:repeat(2,minmax(0,1fr))!important; background-size:auto 450%; }
}
/* Ralliement : peinture usée, pigments sombres et lettres patinées. */
main .deux-colonnes .rally-banner::before { background:linear-gradient(180deg,#090c10ad,transparent 45%,#17090766 75%,#0b090bc9),url('/img/brand/ralliement-peinture-usee.webp') center 55%/cover; }
main .deux-colonnes .rally-banner h2 { color:#e1c49a; background:url('/img/brand/or-patine.svg') center/440px 150px; background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; text-shadow:none; filter:drop-shadow(0 2px 1px #120806); font:400 22px/1.2 'Times New Roman',Georgia,serif; letter-spacing:.035em; }
main .deux-colonnes .rally-copy > p:last-child { color:#e1cfb1; text-shadow:0 1px 3px #150806; line-height:1.6; }
main .deux-colonnes .rally-cta { background:linear-gradient(#25090744,#16060577),url('/img/brand/ruban-tournoi-peint.webp') center 41%/100% 222%; border-color:#a47b46; box-shadow:inset 0 0 0 2px #2a120b; color:#e5c695; text-shadow:0 1px 2px #160805; }
@media(max-width:700px) {
 main .deux-colonnes .rally-banner { min-height:310px; }
 main .deux-colonnes .rally-banner h2 { font-size:21px; }
}
/* Usure des lettres elles-mêmes, sans transformer le titre en image. */
.rally-type-effects { position:absolute; pointer-events:none; overflow:hidden; }
main .deux-colonnes .rally-banner h2 { font-family:Georgia,'Times New Roman',serif; font-weight:700; font-size:21px; line-height:1.3; letter-spacing:.045em; color:#dcb987; background-image:url('/img/brand/or-patine.svg'); background-size:320px 100px; filter:url('#rally-worn-letters') drop-shadow(0 1px 1px #190a05); }
@media(max-width:700px) {
 main .deux-colonnes .rally-banner h2 { font-size:19px; letter-spacing:.035em; }
}
main .deux-colonnes .rally-banner h2 { background:none; -webkit-text-fill-color:#dfbf8c; color:#dfbf8c; }
/* Titres majeurs patinés, titres de panneaux légèrement gravés, petits noms nets. */
body .championship-grid > .panel h2,
body #auth-panel > h2,
body #duel-panel > h2,
body #records-panel h2,
body #historique-panel h2,
body #accelerateurs > .super-titre,
body .map-dialog-heading h2 {
 font-family:Georgia,'Times New Roman',serif; font-weight:700; line-height:1.3; letter-spacing:.035em;
 color:#dfbf8c; -webkit-text-fill-color:#dfbf8c; text-shadow:none;
 filter:url('#rally-worn-letters') drop-shadow(0 1px 1px #190a05);
}
body .championship-grid > .panel h2,
body #records-panel h2,
body #historique-panel h2,
body #accelerateurs > .super-titre,
body .map-dialog-heading h2 {
 font-weight:400; letter-spacing:.025em;
 filter:url('#panel-worn-letters') drop-shadow(0 1px 1px #190a05);
}
body .hero .hero-department-name,
body #duel-panel .jeu-carte .jeu-titre h3,
body #accelerateurs #stats-primes .prime .stat-label,
body .home-aside #stats-listes .stat-label,
body #records-panel .records-empty-title {
 font-family:Georgia,'Times New Roman',serif; font-weight:400; line-height:1.3; letter-spacing:.015em;
 color:#e4c99e; -webkit-text-fill-color:#e4c99e; text-shadow:0 1px 1px #190a05;
 filter:none;
}
/* Bande de parchemin : encre brune, grands signes et bords vieillis. */
main .home-metrics #stats-zone.stats { padding:8px 5px; border:0; border-block:1px solid #88704e; background:url('/img/brand/parchemin-statistiques.webp') center/cover; box-shadow:inset 0 3px 0 #362b1c33,inset 0 -3px 0 #362b1c33; }
main .home-metrics #stats-zone.stats .stat-card { position:relative; min-height:112px; padding:10px 10px 10px 76px; align-items:flex-start; text-align:left; }
main .home-metrics #stats-zone.stats .stat-card + .stat-card { border-color:#614b2c66; }
main .home-metrics #stats-zone.stats .metric-engraving { position:absolute; left:19px; top:29px; width:43px; height:52px; color:#43321f; stroke:currentColor; stroke-width:1.25; fill:none; filter:url('#panel-worn-letters'); }
main .home-metrics #stats-zone.stats .stat-value { font:400 40px/1 'Times New Roman',Georgia,serif; color:#2e2116; filter:url('#panel-worn-letters'); }
main .home-metrics #stats-zone.stats .stat-label { margin-top:9px; font:600 11px/1.35 'Segoe UI',Arial,sans-serif; letter-spacing:.015em; color:#34281a; }
main .home-metrics #stats-zone.stats .stat-meta { margin-top:4px; color:#59442c; }
@media(max-width:1100px) {
 main .home-metrics #stats-zone.stats .stat-card { padding-left:57px; }
 main .home-metrics #stats-zone.stats .metric-engraving { left:12px; width:32px; }
 main .home-metrics #stats-zone.stats .stat-label { font-size:10px; }
}
@media(max-width:700px) {
 main .home-metrics #stats-zone.stats { background-size:auto 100%; }
 main .home-metrics #stats-zone.stats .stat-card { min-height:118px; padding:12px 8px 12px 48px; }
 main .home-metrics #stats-zone.stats .metric-engraving { left:9px; top:29px; width:29px; height:43px; }
 main .home-metrics #stats-zone.stats .stat-value { font-size:34px; }
 main .home-metrics #stats-zone.stats .stat-label { font-size:9px; }
 main .home-metrics #stats-zone.stats .stat-meta { font-size:9px; }
}
/* Référence du bandeau gravé : composition compacte, encre nette. */
main .home-metrics #stats-zone.stats { isolation:isolate; padding:7px 8px; background:linear-gradient(#b8967080,#b8967080),url('/img/brand/parchemin-statistiques.webp') center/cover; border-block:1px solid #725331; box-shadow:inset 0 2px 0 #e1c39677,inset 0 -2px 0 #45301944; }
main .home-metrics #stats-zone.stats .stat-card { min-height:84px; padding:8px 12px 8px 95px; }
main .home-metrics #stats-zone.stats .metric-engraving { display:none; }
main .home-metrics #stats-zone.stats .stat-card::before { content:''; display:block; position:absolute; left:21px; top:6px; width:54px; height:72px; background:url('/img/brand/gravures-statistiques.webp') 0 center/400% auto no-repeat; mix-blend-mode:multiply; opacity:.92; }
main .home-metrics #stats-zone.stats .stat-card:nth-child(2)::before { background-position:33.333% center; }
main .home-metrics #stats-zone.stats .stat-card:nth-child(3)::before { background-position:66.667% center; }
main .home-metrics #stats-zone.stats .stat-card:nth-child(4)::before { background-position:100% center; }
main .home-metrics #stats-zone.stats .stat-value { filter:none; color:#20170f; font:700 32px/1 'Times New Roman',Georgia,serif; letter-spacing:-.015em; }
main .home-metrics #stats-zone.stats .stat-label { margin-top:5px; color:#241a10; font:600 10px/1.2 'Segoe UI',Arial,sans-serif; letter-spacing:0; }
main .home-metrics #stats-zone.stats .stat-meta { margin-top:3px; font-size:9px; color:#57402a; }
@media(max-width:1100px) {
 main .home-metrics #stats-zone.stats .stat-card { padding-left:72px; padding-right:7px; min-height:78px; }
 main .home-metrics #stats-zone.stats .stat-card::before { left:12px; top:7px; width:48px; height:64px; }
 main .home-metrics #stats-zone.stats .stat-value { font-size:29px; }
 main .home-metrics #stats-zone.stats .stat-label { font-size:9px; }
}
@media(max-width:700px) {
 main .home-metrics #stats-zone.stats { background-size:auto,auto 190%; padding:5px; }
 main .home-metrics #stats-zone.stats .stat-card { min-height:100px; padding-left:57px; padding-right:5px; }
 main .home-metrics #stats-zone.stats .stat-card::before { left:6px; top:22px; width:42px; height:56px; }
 main .home-metrics #stats-zone.stats .stat-value { font-size:28px; }
 main .home-metrics #stats-zone.stats .stat-label { font-size:9px; }
}
/* Tableau de championnat : hauteur commune, espace intérieur mieux réparti. */
@media(min-width:901px) {
 .championship-grid > .panel { height:480px; min-height:480px; display:flex; flex-direction:column; padding:12px 10px; }
 .championship-grid > .panel h2 { flex-shrink:0; min-height:43px; margin:0 0 8px; display:grid; align-content:center; }
 .championship-grid > .panel h2::after { margin:8px auto 0; }
 .championship-grid .map-panel { padding:12px 8px 8px; }
 .championship-grid #map-zone { flex:1; min-height:0; display:flex; flex-direction:column; }
 .championship-grid #map-zone .map-wrap { flex:1; min-height:0; height:auto!important; max-height:none!important; margin:0; }
 .championship-grid #map-zone .france-svg { width:100%; height:100%; max-height:none!important; }
 .championship-grid #map-zone .om-row { flex-shrink:0; margin:4px 0 0; gap:4px; }
 .championship-grid #map-zone .om-tile { min-height:0; padding:2px 5px; font-size:9px; line-height:1.15; }
 .championship-grid #map-zone .map-expand { flex-shrink:0; min-height:28px; margin:5px auto 0; padding:5px 8px; }
 .championship-grid #map-zone .map-tie-note { position:absolute; top:0; right:5px; margin:0; padding:2px 4px; font-size:9px; background:#07121aaa; }
 .championship-grid #map-zone .map-legend-ranking { top:auto; bottom:83px; padding:7px 5px; font-size:9px; gap:6px; }
 .championship-grid .last-duel-panel #last-duel-zone { flex:1; min-height:0; display:grid; place-items:center; }
 .championship-grid .last-duel-panel .duel-last { width:100%; min-height:0; margin:0; }
 .championship-grid .last-duel-panel .duel-empty { min-height:0; padding:0 8px; display:grid; place-items:center; align-content:center; gap:18px; }
 .championship-grid .last-duel-panel .duel-empty::before { position:static; transform:none; margin:0; }
 .championship-grid .last-duel-panel .duel-empty .stat-label { display:none; }
 .championship-grid .last-duel-panel .duel-empty .stat-value { margin:0; text-align:center; }
 .championship-grid #leaderboard-panel { padding:12px 10px; }
 .championship-grid #leaderboard-panel .leaderboard { flex:1; min-height:0; max-height:none!important; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#a5834d #08151d; }
 .championship-grid #leaderboard-panel .championship-season { margin:0 0 9px; }
 .championship-grid #leaderboard-panel thead { position:sticky; top:0; z-index:1; background:#0a1b24; }
 .championship-grid #leaderboard-panel td { height:47px; padding:8px 5px; font-size:12px; line-height:1.35; }
 .championship-grid #leaderboard-panel .pts { font-variant-numeric:tabular-nums; }
}
@media(max-width:900px) {
 .championship-grid .last-duel-panel #last-duel-zone { display:grid; place-items:center; }
 .championship-grid .last-duel-panel .duel-last { width:100%; }
}
@media(min-width:901px) {
 .championship-grid #leaderboard-panel { height:480px; min-height:480px; max-height:480px; }
}
/* Davantage de respiration dans le bandeau, sans agrandir ses illustrations. */
/* Le mode partie conserve le plateau seul, comme avant la refonte. */
body.en-partie .championship-grid,
body.en-partie main > .deux-colonnes {
 display:none;
}
@media(min-width:901px) {
 .hero { min-height:650px; padding-top:34px; }
 .hero-inner .hero-ribbon { margin-top:25px; margin-bottom:20px; }
 .hero-inner .hero-cta { margin-top:30px; }
 .hero-inner .hero-discover { margin-top:23px; }
 .hero .hero-contenders { bottom:38px; }
 .hero .hero-department { min-height:280px; padding-top:83px; padding-bottom:14px; }
 .hero .hero-department-name { margin-top:14px; margin-bottom:12px; }
 .hero .hero-department-points span { margin-top:8px; margin-bottom:16px; }
 .hero .hero-versus { bottom:26px; }
}
@media(max-width:900px) {
 .hero-inner .hero-ribbon { margin-top:20px; margin-bottom:17px; }
 .hero-inner .hero-cta { margin-top:25px; }
 .hero-inner .hero-discover { margin-top:20px; }
}
@media(min-width:701px) and (max-width:900px) {
 .hero { min-height:790px; }
}
@media(max-width:700px) {
 .hero { padding-bottom:365px; }
 .hero .hero-department { padding-bottom:8px; }
}

/* Lecture confortable sans modifier les grands titres patinés. */
#duel-panel .jeu-description { font-size:14px; line-height:1.5; min-height:42px; }
.championship-grid .leaderboard td { font-size:13px; }
.hero .hero-inner .hero-ribbon > span { font-size:14px; }
.hero .hero-inner .hero-discover { font-size:13px; }
#duel-panel .jeu-mention, #duel-panel .jeu-hors { font-size:13px; }

/* Sur les écrans étroits, la légende prend sa place sous la carte. */
@media(max-width:900px) {
 .championship-grid #map-zone .map-legend-ranking,
 .map-dialog .map-legend-ranking {
  position:static;
  inset:auto;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 12px;
  margin:10px 0;
  padding:8px 4px;
  background:none;
  font-size:13px;
  line-height:1.4;
 }
 .map-legend-ranking i { flex-shrink:0; }
}
