/*
 * registre-a.v1.css — 09/11/2026, livraison B : la maquette A « Observatoire vivant » (validée par Alain le 08/11) sur tout le site.
 * Chargée par layout.v17 après jeu.v1.css (lot 1), sur toutes les pages. arqualea.v2.css et site.v1.css restent intactes.
 *  - quatre familles : Cinzel (récit), Source Sans 3, Space Mono (chiffres), Barlow Condensed (action) ; Mineria n'est plus chargée
 *    (arbitrage 2.3 du conseil) : ses usages passent en Barlow Condensed ;
 *  - accueil : premier écran de la maquette A (titre d'action, titre court sur mobile, carte de mission entière à 390 px), bandeau
 *    saison + compte à rebours + tuiles voilées ;
 *  - mosaïque des jeux (page publique et espace joueur) ; tuiles du Championnat ;
 *  - toutes les autres pages au même registre : panneaux de nuit au liseré or, titres, boutons, formulaires.
 * Sommaire : polices · accueil · tuiles · mosaïque · pages · mouvement réduit.
 */

/* ---------- Polices : Mineria remplacée ---------- */
:root { --f-house: var(--f-action); }
.rank, .ribbon .lbl, .who .grade, .game-num, .ranks b, .steps li::before, .rhythm .cadence { font-family: var(--f-action); font-weight: 700; letter-spacing: .08em; }

/* ---------- Accueil : premier écran ---------- */
.hero-a { padding-bottom: 28px; }
.ha-grid { display: grid; gap: 22px; padding-top: 22px; padding-bottom: 22px; align-items: center; }
@media (min-width: 1000px) { .ha-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 56px; padding-top: 56px; padding-bottom: 36px; } }
.ha-text .eyebrow { margin-bottom: 14px; }
.ha-title { margin: 0; font: 800 clamp(34px, 5.6vw, 72px)/.95 var(--f-action); letter-spacing: .005em; text-transform: uppercase; color: var(--c-ivory); text-wrap: balance; }
.ha-title .gold { color: var(--c-gold); display: block; }
.ha-short { display: none; }
.ha-lead { margin: 18px 0 0; color: var(--c-steel); font-size: clamp(16px, 1.6vw, 19px); max-width: 32em; }
.ha-ctas { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 12px; }
.ha-signs { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 14.5px; color: var(--c-steel); }
.ha-signs b { color: var(--c-ivory); font-weight: 700; }
.ha-signs .seal { width: 20px; height: 20px; font-size: 8px; vertical-align: middle; }
.hero-a .champ-line { margin-top: 16px; }

/* carte de mission (démo animée par app.v3.js ; la démo jouable complète reste plus bas, #demo) */
.ha-mission { position: relative; padding: 22px 20px 20px; border-radius: 8px; border: 1px solid rgba(212, 180, 122, .38);
  background: linear-gradient(180deg, rgba(27, 46, 107, .72), rgba(13, 26, 63, .92));
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .8), inset 0 0 0 1px rgba(255, 122, 69, .08); }
.hm-head { display: flex; justify-content: space-between; align-items: baseline; }
.hm-kicker { font: 700 14px/1 var(--f-action); letter-spacing: .16em; text-transform: uppercase; color: var(--c-energy); }
.hm-ref { font: 400 12px/1 var(--f-num); color: var(--c-steel); }
.hm-score { display: flex; gap: 28px; align-items: flex-end; margin-top: 12px; }
.hm-k { display: block; font: 700 12px/1.2 var(--f-action); letter-spacing: .16em; text-transform: uppercase; color: var(--c-steel); }
.hm-points, .hm-time { display: block; font: 700 clamp(40px, 6vw, 60px)/1 var(--f-num); letter-spacing: -.03em; }
.hm-points { color: var(--c-energy); }
.hm-time { color: var(--c-ivory); }
.hm-gauge { --f: 1; height: 8px; border-radius: 4px; margin-top: 12px; background: rgba(159, 178, 216, .16); overflow: hidden; }
.hm-gauge span { display: block; height: 100%; border-radius: 4px; transform-origin: left; transform: scaleX(var(--f)); background: linear-gradient(90deg, var(--c-gold), #F1DFB6); }
.hm-gauge.is-warm span { background: linear-gradient(90deg, var(--c-energy), #FFB38F); }
.hm-gauge.is-hot span { background: linear-gradient(90deg, var(--c-hot), var(--c-energy)); }
.hm-clues { list-style: none; margin: 12px 0 0; padding: 0; }
.hm-clues li { display: grid; grid-template-columns: 112px 1fr; gap: 12px; padding: 8px 0; font-size: 15px; border-bottom: 1px dashed rgba(159, 178, 216, .18); }
.hm-clues .k { font: 700 12px/1.6 var(--f-action); letter-spacing: .14em; text-transform: uppercase; color: var(--c-steel); }
.hm-clues .pending .v { color: var(--c-steel); }
.hm-clues .h, .hm-letters i { display: inline-block; width: 22px; height: 3px; vertical-align: middle; border-radius: 2px; background: rgba(212, 180, 122, .6); }
.hm-clues .h.w2 { width: 16px; } .hm-clues .h.w3 { width: 28px; } .hm-clues .h.w5 { width: 46px; }
.hm-mask { display: flex; align-items: center; gap: 14px; margin-top: 10px; }
.hm-letters { font: 700 24px/1 var(--f-num); display: inline-flex; gap: 6px; align-items: flex-end; }
.hm-letters i { width: 18px; }
.hm-go { width: 100%; margin-top: 14px; }

/* bandeau de la saison : nom, compte à rebours, tuiles */
.ha-strip { display: grid; gap: 16px; align-items: center; padding-bottom: 8px; }
@media (min-width: 1000px) { .ha-strip { grid-template-columns: auto minmax(0, 1fr); gap: 40px; } }
.hs-name { margin: 0; font: 500 13px/1.3 var(--f-display); letter-spacing: .2em; text-transform: uppercase; color: var(--c-ivory); }
.hs-name span { color: var(--c-gold); }
.hs-k { margin: 10px 0 0; font: 700 12px/1.2 var(--f-action); letter-spacing: .16em; text-transform: uppercase; color: var(--c-steel); }
.ha-season .countdown { margin-top: 6px; font-size: 28px; }
.ha-season .countdown b { font-weight: 700; color: var(--c-ivory); }
.hs-soon { margin: 6px 0 0; color: var(--c-gold); }
.hs-link { margin: 12px 0 0; }
.hero-a .season-epilogue { margin-top: 24px; }

/* mobile : titre court, carte de mission entière au premier écran (390 × 844) */
@media (max-width: 640px) {
  .ha-long { display: none; }
  .ha-short { display: block; }
  .ha-title { font-size: 38px; }
  .ha-text { display: contents; }
  .ha-grid { gap: 12px; padding-top: 16px; }
  .ha-text .eyebrow { order: 1; margin: 0; font-size: 11px; }
  .ha-title { order: 2; }
  .ha-mission { order: 3; padding: 14px 14px 14px; }
  .ha-lead { order: 4; margin-top: 6px; }
  .ha-ctas { order: 5; margin-top: 4px; }
  .ha-signs { order: 6; margin-top: 4px; }
  .hero-a .champ-line { order: 7; margin-top: 0; }
  .hm-score { margin-top: 8px; gap: 22px; }
  .hm-points, .hm-time { font-size: 38px; }
  .hm-gauge { margin-top: 8px; }
  .hm-clues { margin-top: 6px; }
  .hm-clues li { grid-template-columns: 92px 1fr; padding: 5px 0; font-size: 14px; }
  .hm-mask { margin-top: 6px; }
  .hm-letters { font-size: 20px; }
  .hm-go { margin-top: 10px; min-height: 44px; }
  .notice p { font-size: 12.5px; padding: 6px 0; line-height: 1.35; }
  .notice-close { width: 28px; height: 28px; margin: 4px 0; }
}

/* ---------- Tuiles des semaines (accueil, Championnat) ---------- */
.tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; max-width: 680px; }
@media (max-width: 640px) { .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tile > a, .tile > span { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 4px; overflow: hidden; border: 1px solid rgba(212, 180, 122, .25); background: var(--c-night); color: var(--c-ivory); text-decoration: none; }
.tile img, .tile .tile-sky { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tile .tile-sky { background: radial-gradient(circle at 30% 40%, #fff 0 1.5px, transparent 2px), radial-gradient(circle at 70% 25%, #fff 0 1px, transparent 2px), radial-gradient(circle at 55% 70%, #D4B47A 0 2px, transparent 3px), linear-gradient(160deg, #1B2E6B, #070C24); }
.tile.is-veiled img, .tile.is-veiled .tile-sky { filter: blur(5px) brightness(.75) saturate(.8); transform: scale(1.15); }
.tile.is-open img { filter: brightness(1.35) saturate(1.1); }
.tile > a::after, .tile > span::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(7, 12, 36, .78)); }
.tile-n { position: absolute; left: 7px; bottom: 6px; z-index: 1; font: 700 14px/1 var(--f-action); letter-spacing: .1em; }
.tile-lock { position: absolute; right: 6px; top: 6px; z-index: 1; width: 14px; height: 14px; color: var(--c-steel); }
.tile.is-open > a { border-color: var(--c-energy); }
.tile.is-open > a:hover { box-shadow: 0 0 0 2px var(--c-energy); }

/* ---------- Mosaïque des jeux ---------- */
.mosaic { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mz-daily { grid-column: span 2; } }
@media (min-width: 1000px) { .mosaic { grid-template-columns: repeat(4, minmax(0, 1fr)); } .mz-daily { grid-column: span 2; grid-row: span 2; } }
.mz { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 20px 18px 18px; border-radius: 6px; overflow: hidden; isolation: isolate;
  background: linear-gradient(180deg, var(--tint, #13214F), #0B1534); border: 1px solid rgba(159, 178, 216, .16); transition: transform .2s, border-color .2s; }
.mz:hover { border-color: rgba(212, 180, 122, .5); transform: translateY(-2px); }
.mz h2 { margin: 0; font: 800 26px/1.05 var(--f-action); letter-spacing: .02em; text-transform: uppercase; color: var(--c-ivory); }
.mz-kicker { margin: 0; font: 700 12px/1.2 var(--f-action); letter-spacing: .16em; text-transform: uppercase; color: var(--c-steel); }
.mz-desc { margin: 0; font-size: 15px; color: var(--c-steel); }
.mz-fact { margin: auto 0 0; padding-top: 8px; font-size: 14px; color: var(--c-ivory); }
.mz .btn { align-self: flex-start; margin-top: 10px; }
.mz-desc + .btn, .mz-desc + .btn-line { margin-top: auto; }
.mz-emb { width: 44px; height: 44px; color: var(--c-gold); margin-bottom: 4px; }
.mz.is-soon { opacity: .75; }
.mz-survie { --tint: #2A1830; } .mz-goloth { --tint: #13293A; } .mz-chronologie { --tint: #2A2416; } .mz-relais { --tint: #142B2C; }
.mz-enchere { --tint: #2B1B1B; } .mz-defi { --tint: #1E1F3D; } .mz-salons { --tint: #24183A; } .mz-saison1 { --tint: #1B2337; }
.mz-daily { padding: 26px 24px 24px; gap: 12px; border-color: rgba(255, 122, 69, .45);
  background: radial-gradient(ellipse at 80% 0%, rgba(255, 122, 69, .28), transparent 60%), linear-gradient(180deg, #1B2E6B, #0D1A3F); }
.mz-daily h2 { font-size: clamp(36px, 4.6vw, 56px); }
.mz-daily .mz-desc { font-size: 17px; max-width: 24em; }
.mz-art { position: absolute; right: -24px; top: -24px; width: 230px; height: 230px; opacity: .4; z-index: -1; color: var(--c-gold); }
.mz-k { display: block; margin: 0; font: 700 12px/1.2 var(--f-action); letter-spacing: .14em; text-transform: uppercase; color: var(--c-steel); }
.mz-k .seal { width: 18px; height: 18px; font-size: 7px; vertical-align: middle; }
.mz-week ol { list-style: none; margin: 8px 0 0; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.mz-week li { width: 40px; height: 40px; border-radius: 4px; display: grid; place-items: center; font: 700 14px/1 var(--f-action); border: 1px solid rgba(159, 178, 216, .25); color: var(--c-steel); }
.mz-week li.is-won { background: var(--c-energy); border-color: var(--c-energy); color: var(--c-space); }
.mz-week li.is-today { border-style: dashed; border-color: var(--c-energy); color: var(--c-energy); }
.mz-live { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: auto; padding-top: 12px; }
.mz-v { display: block; margin-top: 4px; font-size: clamp(20px, 2.4vw, 30px); font-weight: 700; color: var(--c-ivory); }
.mz-v.mz-hot { color: var(--c-energy); }
@media (max-width: 420px) { .mz-week li { width: 34px; height: 34px; } .mz-live { grid-template-columns: 1fr 1fr; } }

/* accueil : liste des jeux */
.glist-a { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); display: grid; gap: 0 28px; }
.glist-a .gname { text-decoration: none; color: var(--c-ivory); font: 700 20px/1.2 var(--f-action); letter-spacing: .03em; text-transform: uppercase; }
.glist-a .gname:hover { color: var(--c-energy); }

/* ---------- Toutes les pages : même registre ---------- */
/* titres de page : grotesque condensée pour les pages de jeu, de compte et de service ; Cinzel garde le récit (histoire, univers, Championnat) */
.page .page-head h1, .acc-card h1, .reg-jeu .page-head h1 { font: 800 clamp(34px, 5vw, 54px)/1 var(--f-action); letter-spacing: .02em; text-transform: uppercase; }
.reg-recit .page .page-head h1 { font: 500 clamp(28px, 4.4vw, 46px)/1.15 var(--f-display); letter-spacing: .08em; }
.page h2 { letter-spacing: .06em; }
/* panneaux de nuit au liseré or (comptes, formulaires, encarts) */
.acc-card, .pg-board, .adm-block, .salon-card, .offer, .panel { border-radius: 8px; }
.acc-card, .pg-board { border: 1px solid rgba(212, 180, 122, .3); background: linear-gradient(180deg, rgba(27, 46, 107, .45), rgba(13, 26, 63, .85)); box-shadow: 0 24px 60px -30px rgba(0, 0, 0, .7); }
/* l'action principale de chaque page est à la couleur d'énergie */
.acc-submit, .page form .btn-gold[type=submit], .page .btn-gold.btn-play { background: var(--c-energy); border-color: var(--c-energy); color: var(--c-space);
  box-shadow: 0 0 0 1px rgba(255, 122, 69, .25), 0 10px 30px -12px rgba(255, 122, 69, .7); }
.acc-submit:hover, .page form .btn-gold[type=submit]:hover, .page .btn-gold.btn-play:hover { background: var(--c-energy-hi); border-color: var(--c-energy-hi); color: var(--c-space); }
.btn-play { background: var(--c-energy); border-color: var(--c-energy); color: var(--c-space); }
.btn-play:hover { background: var(--c-energy-hi); border-color: var(--c-energy-hi); color: var(--c-space); }
/* champs de formulaire : contour net, focus braise */
.page input[type=text]:focus, .page input[type=email]:focus, .page input[type=password]:focus, .page input[type=number]:focus, .page textarea:focus, .page select:focus {
  outline: 2px solid var(--c-energy); outline-offset: 1px; border-color: var(--c-energy); }
/* navigation : libellés en grotesque condensée */
.nav-links a, .mobile-menu li a { font: 600 15px/1 var(--f-action); letter-spacing: .12em; }
.foot .studio, .more { font-family: var(--f-action); font-weight: 700; letter-spacing: .12em; font-size: 14px; }
/* étiquettes : plus de police machine à écrire */
.pill { font: 700 12px/1 var(--f-action); letter-spacing: .1em; text-transform: uppercase; padding: 6px 9px; }
.pill-on, .pill-live { color: var(--c-energy); border-color: rgba(255, 122, 69, .45); }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
  .mz:hover { transform: none; }
}

/* spécificité : l'ancienne règle « .hero h1 » (arqualea.v2) l'emportait sur le titre d'action */
.hero .ha-title { font: 800 clamp(34px, 5.6vw, 72px)/.95 var(--f-action); letter-spacing: .005em; }
.hero .ha-lead { margin-top: 18px; }
@media (max-width: 640px) { .hero .ha-title { font-size: 38px; } .hero .ha-lead { margin-top: 6px; } .hero-a .ha-grid { row-gap: 12px; } }

/* ---------- Page du Championnat : présentation (registre du récit, bouton braise) ---------- */
.ch-pres { display: grid; gap: 18px; margin-top: 8px; }
.ch-open { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 40px; padding: 22px 22px 20px; border-radius: 8px; border: 1px solid rgba(212, 180, 122, .3);
  background: radial-gradient(ellipse at 85% 0%, rgba(255, 122, 69, .18), transparent 60%), linear-gradient(180deg, rgba(27, 46, 107, .5), rgba(13, 26, 63, .9)); }
.ch-open .hs-k { margin: 0 0 6px; flex-basis: 100%; }
.ch-open .countdown { font-size: clamp(26px, 4vw, 40px); margin: 0; }
.ch-open .countdown b { color: var(--c-ivory); font-weight: 700; }
.ch-cta { margin: 0 0 0 auto; }
@media (max-width: 640px) { .ch-cta { margin-left: 0; } }
.ch-sub { margin: 14px 0 0; font: 500 clamp(18px, 2.4vw, 24px)/1.2 var(--f-display); letter-spacing: .12em; text-transform: uppercase; color: var(--c-gold); }
.ch-pres .tiles { max-width: none; }
.ch-duo { display: grid; gap: 14px; margin-top: 8px; }
@media (min-width: 800px) { .ch-duo { grid-template-columns: 1fr 1fr; } }
.ch-card { padding: 20px 20px 18px; border-radius: 8px; border: 1px solid rgba(212, 180, 122, .26); background: rgba(13, 26, 63, .7); }
.ch-card h3 { margin: 0 0 10px; font: 500 20px/1.25 var(--f-display); letter-spacing: .08em; text-transform: uppercase; color: var(--c-ivory); }
.ch-card p:last-child { margin: 0; color: var(--c-steel); }
.ch-card .eyebrow { margin-bottom: 8px; }
.ch-rules ul { margin: 10px 0 0; padding-left: 20px; color: var(--c-steel); display: grid; gap: 6px; }
.ch-rules li::marker { color: var(--c-energy); }

/* pastilles d'en-tête de page : à la largeur du texte */
.page-head .pill { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; }

/* l'or garde le prestige (rangs, palmarès) ; toute action principale passe à la couleur d'énergie (maquette A, avis du conseil du 08/11) */
.btn-gold, .btn-primary { background: var(--c-energy); border-color: var(--c-energy); color: var(--c-space); box-shadow: 0 0 0 1px rgba(255, 122, 69, .25), 0 10px 30px -12px rgba(255, 122, 69, .7); }
.btn-gold:hover, .btn-primary:hover { background: var(--c-energy-hi); border-color: var(--c-energy-hi); color: var(--c-space); box-shadow: 0 0 0 1px rgba(255, 154, 107, .4), 0 12px 32px -12px rgba(255, 122, 69, .85); }

/* espace joueur : tableau de bord */
.dash-grid { display: grid; gap: 14px; margin: 8px 0 24px; }
@media (min-width: 900px) { .dash-grid { grid-template-columns: 1.6fr 1fr; } }
.dash-daily h2 { font-size: clamp(32px, 4vw, 48px); }
.dash-daily .mz-live { grid-template-columns: 1fr; }
.dash-daily .btn { align-self: flex-start; }
.dash-champ { display: flex; flex-direction: column; gap: 8px; }
.dash-champ p { margin: 0; }
.dash-champ .mz-v { font-size: clamp(20px, 2.4vw, 28px); }
.dash-grid .mz-daily { grid-column: auto; grid-row: auto; }
.dash-daily .pill { align-self: flex-start; display: inline-flex; }
.dash-champ .mz-v { font-size: 21px; white-space: nowrap; }
