/* ═══════════════════════════════════════════════════════════════════════
 * NEUROX — LES CLASSES DES CHAMPS RICHES
 *
 * Liste fermee, prefixe `nrx-t-`. Une fiche du catalogue peut porter ces
 * classes et rien d'autre : `ChampsRiches::CLASSES` retire toutes les
 * autres a la lecture.
 *
 * ───────────────────────────────────────────────────────────────────────
 * FEUILLE DEDIEE, ET C'EST LA MOITIE DE L'INSTRUMENT.
 *
 * La liste vit a DEUX ENDROITS QUI NE SE COPIENT PAS : la constante PHP
 * qui filtre, et ce fichier qui rend. Le controle des classes confronte
 * les deux — deux mesures d'origines differentes, pas une valeur comparee
 * a elle-meme.
 *
 * Les mettre au meme endroit rendrait la comparaison decorative : elle
 * dirait « le fichier est egal a lui-meme » et resterait verte le jour ou
 * une classe serait declaree sans regle.
 *
 * ELLE SE CHARGE APRES `neurox.css`. Ce qui consomme se declare apres ce
 * qui fournit : les jetons — polices, gris, interlettrage — viennent de
 * la, et une feuille chargee avant ne les trouverait pas.
 * ───────────────────────────────────────────────────────────────────────
 *
 * AUCUNE DE CES REGLES N'EST UN SELECTEUR COMPOSE. Elles s'appliquent
 * partout ou la classe parait — titre de carte, fiche, description,
 * mention — parce que la MEME fiche est rendue sur plusieurs surfaces et
 * qu'une mise en forme qui ne suivrait pas serait pire qu'absente.
 *
 * LES TAILLES SONT EN `em`, PAS EN PIXELS NI EN JETON. Elles modulent le
 * texte qui les entoure : `nrx-t-petit` dans un titre de carte doit rendre
 * un peu plus petit QUE CE TITRE, pas 14 px absolus. Un jeton de l'echelle
 * y poserait une taille fixe et casserait la fiche, ou le titre, selon
 * lequel des deux on regarde.
 *
 * NE PAS CONFONDRE LA CLASSE `.nrx-t-petit` AVEC LE JETON `--nrx-t-petit`.
 * Meme nom, deux choses : le jeton est un pas de l'echelle, en pixels ; la
 * classe est un rapport. Elles ne se rencontrent jamais — l'une est une
 * propriete personnalisee, l'autre un selecteur — mais elles se lisent
 * pareil dans un rapport, et c'est ecrit ici pour que personne ne
 * « corrige » la classe en lui donnant le jeton.
 * ═══════════════════════════════════════════════════════════════════════ */


/* ───────────────────────────────────────────────────────────────────────
 * IL N'Y A PAS DE CLASSE DE FAMILLE, ET C'EST UN ARBITRAGE DU 19 AOUT.
 *
 * Le §5 en demandait deux — `nrx-t-titre` pour Orbitron, `nrx-t-corps`
 * pour Inter. Elles sont sorties de la liste, qui passe de dix a huit.
 *
 * LE MOTIF EST MESURE, PAS SUPPOSE. Balayage du 19 aout, dépôt entier
 * hors `vendor` : aucun fichier de fonte sur le disque — pas un `.woff`,
 * `.woff2`, `.ttf`, `.otf` ni `.eot` ; aucun `@font-face` dans les
 * feuilles de la boutique ; aucun appel a un fournisseur externe. Les
 * deux classes retombaient donc sur `--nrx-police` et rendaient
 * EXACTEMENT le texte environnant : une classe filtree, conservee,
 * rendue — pour rien.
 *
 * S'y ajoutait le brief de design, qui interdit Orbitron sur la boutique
 * en toutes lettres — « pas d'ambre, pas de nid d'abeille, PAS
 * D'ORBITRON, pas de compte a rebours » — puis « Une seule famille. Deux
 * au maximum, et seulement si la seconde sert exclusivement les chiffres
 * et les prix. »
 *
 * ELLES NE SONT PAS INTERDITES POUR TOUJOURS. Un fil-piege garde la
 * condition : il rougit le jour ou une SECONDE FAMILLE est servie, et son
 * message dit que c'est ce jour-la — pas avant — que ces deux classes se
 * rediscutent. La decision est donc datee et reversible, et elle n'a pas
 * besoin qu'on s'en souvienne.
 * ─────────────────────────────────────────────────────────────────────── */


/* ───────────────────────────────────────────────────────────────────────
 * LA CASSE ET LES RAPPORTS DE TAILLE
 * ─────────────────────────────────────────────────────────────────────── */

/*
 * L'INTERLETTRAGE ACCOMPAGNE LES CAPITALES, IL N'EST PAS UN ORNEMENT.
 * Une suite de capitales serrees se lit mal ; le brief le dit de son cote
 * — « micro-libelles : petites capitales, interlettrage ouvert ». Le
 * jeton `--nrx-suivi-titre` est celui que la barre et les titres emploient
 * deja, donc la fiche ne cree pas une onzieme valeur.
 */
.nrx-t-capitales {
	text-transform: uppercase;
	letter-spacing: var(--nrx-suivi-titre);
}

.nrx-t-petit {
	font-size: 0.85em;
}

.nrx-t-grand {
	font-size: 1.25em;
}

/*
 * `400` EST UNE GRAISSE REDUITE ICI, ET C'EST MESURE : la feuille du site
 * n'emploie que 400, 500 et 600. Ces classes servent surtout dans des
 * titres, qui portent 600. Descendre a 300 aurait demande une fonte que
 * personne ne sert, et le navigateur l'aurait simulee — une graisse
 * synthetique se voit, et elle se voit mal.
 */
.nrx-t-leger {
	font-weight: 400;
}


/* ───────────────────────────────────────────────────────────────────────
 * LES COULEURS — ELLES ETAIENT TROIS, IL EN RESTE UNE.
 *
 * ───────────────────────────────────────────────────────────────────────
 * ARBITRAGE DU 19 AOUT. `nrx-t-cyan`, `nrx-t-ambre` et `nrx-t-rouille`
 * sortent ; `nrx-t-alerte` entre. La liste ferme a six.
 *
 * Le §5 de la consigne donnait trois teintes en clair, et AUCUNE DES TROIS
 * N'ETAIT DANS LA PALETTE — blanc, gris tres pale, gris pale, charcoal,
 * noir, et le cyan de signal. Les trois du §5 en etaient des versions
 * eteintes : un cyan qui n'est pas le signal, un ambre que le brief
 * interdit nommement, une rouille sans equivalent. Les valeurs sont au §5
 * de l'etat ; elles ne sont pas recopiees ici, ou le controle qui interdit
 * l'hexadecimal les trouverait dans sa propre explication.
 *
 * Une fiche n'ouvre pas la palette. Elle s'exprime dans celle qui existe,
 * ou elle ne s'exprime pas.
 * ───────────────────────────────────────────────────────────────────────
 *
 * AUCUNE VALEUR HEXADECIMALE DANS CE FICHIER, ET C'EST LA REGLE QUI PORTE
 * LA DECISION.
 *
 * Une couleur ecrite en clair ici serait une couleur de plus a tenir
 * d'accord avec la palette — le jour ou `--nrx-alerte` bougerait, la
 * fiche garderait l'ancienne teinte sans que rien ne rougisse. Le jeton
 * n'est pas une commodite d'ecriture : c'est ce qui fait qu'une seule
 * decision suffit. Un controle interdit le chevron hexadecimal dans ce
 * fichier, et il est desarmable.
 *
 * ───────────────────────────────────────────────────────────────────────
 * LE SIGNAL RESTE HORS D'ATTEINTE DES FICHES. `--nrx-signal` n'a pas de
 * classe, et c'est deliberé : « une page comporte un seul element cyan
 * dominant » — une fiche qui pourrait s'en servir en poserait autant que
 * le catalogue a de lignes, et le signal ne signalerait plus rien.
 *
 * `--nrx-alerte`, LUI, DIT QUELQUE CHOSE QU'UNE FICHE PEUT AVOIR A DIRE :
 * rupture, indisponibilite, delai. Le brief le borne — « rupture de stock,
 * echec de paiement, lien expire. Rien d'autre » — et cette borne est une
 * regle de contenu que l'assainisseur ne fera jamais respecter. Une fiche
 * qui pose `nrx-t-alerte` sur son titre entier passe le filtre sans un
 * mot.
 * ─────────────────────────────────────────────────────────────────────── */

.nrx-t-attenue {
	color: var(--nrx-texte-secondaire);
}

.nrx-t-alerte {
	color: var(--nrx-alerte);
}


/* ───────────────────────────────────────────────────────────────────────
 * LE TITRE A DEUX NIVEAUX — LA TETE ET LA SUITE
 *
 * `NRX-LIC-STATION-3` s'appelle « Station — SH svr-3 » et tourne sous
 * « LMS Lite ». Les deux lignes ne sont pas de meme rang : la premiere
 * nomme le produit, la seconde nomme son moteur.
 *
 * ═══════════════════════════════════════════════════════════════════════
 * LES DEUX VALEURS SONT MESUREES, PAS CHOISIES. Mesure du 19 aout.
 *
 * LA CARTE LA PLUS ETROITE FAIT 250 px DE CONTENU, et elle ne se trouve
 * pas ou on la cherche : c'est a 1280 px de vue, la premiere largeur ou la
 * rangee passe a QUATRE cartes. En dessous, a 1279, elle en montre trois
 * et la carte fait 348 px. Le pire cas est un saut de rupture, pas un
 * telephone.
 *
 *     vue    gouttiere   par vue   carte    contenu
 *     ────────────────────────────────────────────────
 *      320      16          1      288,0     258,0
 *      640      24          2      288,0     258,0
 *     1024      56          3      293,3     263,3
 *     1280      56          4      280,0     250,0   <- le pire
 *     1440      56          4      320,0     290,0
 *
 * `--nrx-largeur-max` plafonne le conteneur a 1440 px : au-dela, la carte
 * ne retrecit plus.
 *
 * ─────────────────────────────────────────────────────────────────────
 * DEUX CONTRAINTES, ET CE N'EST PAS CELLE QU'ON CROIT QUI MORD.
 *
 * MESURE REFAITE ET DATEE DU 19 AOUT, APRES CORRECTION D'UNE ERREUR
 * D'UNITE. La premiere mesure lisait la taille de `imagettfbbox` comme des
 * PIXELS ; GD la compte en POINTS. Toutes ses largeurs etaient donc 4/3
 * trop grandes. Prouve par recoupement : Arial est metriquement compatible
 * avec Helvetica, et les chasses Adobe donnent 8,558 em pour la chaine ;
 * GD lu en points donne 8,465 em — un ecart de 1,1 %. Lu en pixels il
 * donnait 11,287 em, soit 32 % de trop.
 *
 * ── La contrainte « une seule ligne », a 250 px de contenu ──
 *
 *     police                     a 15 px   plafond   a 1,45 em   marge
 *     ─────────────────────────────────────────────────────────────────
 *     Verdana (hors pile)         143,3    26,17 px    207,8     +42,2
 *     DejaVu Sans (Linux)         141,3    26,54 px    204,8     +45,2
 *     Helvetica (Adobe, macOS)    128,4    29,21 px    186,1     +63,9
 *     Arial (Windows)             127,0    29,53 px    184,1     +65,9
 *     Tahoma                      124,0    30,24 px    179,8     +70,2
 *     Segoe UI                    122,0    30,73 px    176,9     +73,1
 *
 * DEJAVU SANS EST PLUS ETROITE QU'ARIAL, PAS PLUS LARGE — la premisse
 * inverse etait fausse. La plus large des piles est Verdana, que ce
 * `font-family` n'atteint jamais : elle est mesuree pour situer la borne,
 * et meme elle laisse 42,2 px de marge. La contrainte de largeur plafonne
 * a 1,7444 em.
 *
 * ── La contrainte « la reserve » ──
 *
 * La reserve de 48 px offre 48 / (15 × 1,35) = 2,3704 em pour LES DEUX
 * niveaux. La suite retenue a 0,9 em laisse donc au plus 1,4704 em a la
 * tete — arrondi vers le bas au 0,05 : 1,45 em.
 *
 * ── LAQUELLE MORD ──
 *
 *     une seule ligne  1,7444 em        la reserve  1,4704 em
 *
 * C'EST LA RESERVE QUI MORD, PAS LA LARGEUR. La premiere redaction de ce
 * commentaire disait l'inverse et annoncait 4,0 px de marge : c'etait
 * l'erreur d'unite. Le chiffre 1,45 em survit, sa raison non — et une
 * valeur juste pour une mauvaise raison se defait au premier changement
 * de la raison.
 *
 * UNE TETE QUI RETOURNE A LA LIGNE ANNULERAIT LA RESERVE : le bloc
 * passerait a trois lignes et sortirait des 48 px. Les 42,2 px de marge du
 * pire cas sont ce qui garantit que ca n'arrive pas.
 *
 * ─────────────────────────────────────────────────────────────────────
 * `nrx-t-secondaire` : 0,9 em, sur le gris de second plan.
 *
 * Bornee par le HAUT, et la borne est la reserve : le bloc a deux niveaux
 * doit tenir dans un pas de la serie d'espacement — les multiples de 8.
 * 40 px ne suffit pas, la tete seule en occupe 29,36. 48 px est le
 * premier pas qui contient le bloc, et il laisse
 * (48 − 29,36) / 20,25 = 0,9204 em a la suite. Arrondi vers le bas :
 * 0,9 em.
 *
 * Bornee par le BAS, et elle passe : 13,50 px a la carte, au-dessus de
 * `--nrx-t-menu` (12 px) et sous `--nrx-t-petit` (14 px). Le gris de
 * second plan rend 5,33:1 sur le fond de carte, au-dessus des 4,5 que AA
 * demande pour du texte courant — ce n'est donc pas le contraste qui borne
 * la taille.
 *
 * Rapport a la tete : 62 %. La suite se lit sans la concurrencer.
 *
 * ─────────────────────────────────────────────────────────────────────
 * VERIFIE A L'ECRAN, PAS SEULEMENT CALCULE. Chrome sans interface,
 * 1280 px de vue, rangee Station a quatre cartes dont trois a deux
 * niveaux : bloc titre 48,00 px et haut du titre a 611,88 px SUR LES
 * QUATRE, interligne calcule 17,25 px. La reserve absorbe le titre a deux
 * niveaux sans decaler quoi que ce soit.
 * ═══════════════════════════════════════════════════════════════════════
 *
 * ELLES NE POSENT NI `display` NI SAUT DE LIGNE. C'est le `<br>` de la
 * fiche qui separe les deux niveaux — la balise est dans la donnee parce
 * que c'est la donnee qui sait ou la ligne se coupe. Deux classes qui
 * forceraient `display: block` imposeraient le saut meme la ou l'auteur
 * n'en veut pas.
 *
 * L'INTERLIGNE EST HERITE, ET IL EST HERITE SANS UNITE. C'EST DELIBERE ;
 * LE DECLARER ICI SERAIT UNE FAUTE.
 *
 * `.nrx-carte__nom` porte `line-height: 1.35`, `.nrx-fiche__titre` porte
 * `1.1`, et `.nrx` porte `1.6` a la racine — TROIS NOMBRES, aucune unite,
 * aucun `normal` nulle part dans les deux feuilles. Chaque niveau
 * recalcule donc le sien depuis SA propre taille, ce qui est exactement ce
 * que le calcul de la reserve suppose.
 *
 * Poser `line-height: 1.35` sur ces deux classes les ferait rendre a
 * l'interligne de la CARTE meme sur la fiche, ou le titre en demande 1,1.
 * Une classe de fiche n'a pas a connaitre la surface qui l'accueille.
 *
 * CE QU'IL FAUT GARDER EST DONC L'ABSENCE DE `normal` : un interligne
 * `normal` herite ferait dependre la hauteur du bloc de la police servie,
 * et le calcul de la reserve deviendrait faux sans que rien ne change dans
 * les feuilles. Un controle l'interdit.
 *
 * Mesure a l'ecran, 19 aout : interligne calcule 17,25 px sur le bloc
 * titre — soit 12,78 px de taille moyenne ponderee × 1,35, ce que deux
 * niveaux de tailles differentes produisent.
 * ─────────────────────────────────────────────────────────────────────── */

.nrx-t-principal {
	font-size: 1.45em;
}

.nrx-t-secondaire {
	font-size: 0.9em;
	color: var(--nrx-texte-secondaire);
}
