/**
 * EDS : un fil de dépêches horodaté, jamais une grille de cartes.
 *
 * La ligne de registre appartient à ce média et à lui seul dans la flotte :
 * un fil d'agence se lit à la ligne. Elle est donc tenue jusqu'au bout, en
 * texte horodaté, sans vignette de largeur fixe en tête de ligne. Les images
 * restent à la tête du fil et aux dossiers de contexte.
 *
 * La bande de transmission suit la même règle que le fil : une bande perforée
 * est une ligne continue. Elle tient donc en une seule colonne, tout ce
 * qu'elle porte se lit d'un seul tenant, séparé par le double oblique de la
 * maison, et elle se replie par simple retour à la ligne. Rien n'y est centré
 * et rien n'y est poussé au bord opposé. Les valeurs qu'elle emploie sont
 * déjà relevées ci-dessous : vert clair sur encre à 10,00:1 et le voile de
 * papier, ici à 66 %, soit 7,92:1, au-dessus du plancher documenté.
 *
 * Contrastes relevés sur la charte EDS, ratio par ratio :
 *   encre #12201c sur papier #ffffff ............... 16,81:1
 *   encre #12201c sur papier tendre #eff6f2 ........ 15,32:1
 *   papier #ffffff sur encre #12201c ............... 16,81:1
 *   vert de fil #146a48 sur papier .................. 6,59:1
 *   vert de fil #146a48 sur papier tendre ........... 6,01:1
 *   bleu de dossier #243f8f sur papier .............. 9,62:1
 *   bleu de dossier #243f8f sur papier tendre ....... 8,77:1
 *   gris de service #587067 sur papier .............. 5,35:1
 *   gris de service #587067 sur papier tendre ....... 4,87:1
 *   vert clair #6fdcaa sur encre .................... 10,00:1
 *   papier à 62 % sur encre, le plus faible des voiles  7,14:1
 * Une seule valeur est interdite en couleur de texte sur papier, et la
 * feuille ne l'emploie qu'en aplat, en filet ou en pastille :
 *   vert de marque #1d8b61 sur papier ............... 4,27:1
 */
.dn-wire {
    --wire-ink: var(--dn-ink, #12201c);
    --wire-paper: var(--dn-paper, #fff);
    --wire-soft: var(--dn-paper-soft, #eff6f2);
    --wire-line: var(--dn-line, #bfd3c8);
    --wire-muted: var(--dn-muted, #587067);
    --wire-signal: var(--dn-accent, #1d8b61);
    --wire-signal-text: #146a48;
    --wire-signal-soft: #6fdcaa;
    --wire-file: var(--dn-accent-2, #243f8f);
    --wire-serif: var(--dn-display, Georgia, "Times New Roman", ui-serif, serif);
    --wire-sans: var(--dn-body, Inter, ui-sans-serif, system-ui, sans-serif);
    --wire-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
    overflow: clip;
    color: var(--wire-ink);
    background: var(--wire-paper);
    font-family: var(--wire-sans);
}
.dn-wire *, .dn-wire *::before, .dn-wire *::after { box-sizing: border-box; }
.dn-wire :is(h1,h2,h3,p,ol,dl,dd) { margin-top: 0; }
.dn-wire a { color: inherit; text-decoration: none; }
.dn-wire.dn-home a:focus-visible { outline: 3px solid var(--wire-file); outline-offset: 3px; }
.dn-wire :is(article,div,header,section,nav) { min-width: 0; }
.dn-wire :is(h1,h2,h3,p,a,strong,small,dd,time) { overflow-wrap: anywhere; }
.dn-wire .dn-cover { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity .3s ease; }
.dn-wire .dn-image-placeholder { background: repeating-linear-gradient(45deg, var(--wire-soft) 0 9px, var(--wire-paper) 9px 18px); }
.dn-wire a:hover .dn-cover { opacity: .82; }
.dn-wire i { font-style: normal; }
.dn-wire .dn-category {
    display: inline-block; color: var(--wire-file); font-family: var(--wire-mono);
    font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.dn-wire .dn-meta {
    display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center;
    color: var(--wire-muted); font-family: var(--wire-mono); font-size: 11px; letter-spacing: .04em;
}
.dn-wire .dn-meta a { color: var(--wire-signal-text); font-weight: 700; }
.dn-wire .dn-meta a:hover { text-decoration: underline; }
.dn-wire .dn-kicker {
    margin-bottom: 0; color: var(--wire-signal-text); font-family: var(--wire-mono);
    font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}

/* Bande de transmission : la tête de la bande perforée. */
.dn-wire-transmission { position: relative; color: var(--wire-paper); background: var(--wire-ink); }
.dn-wire-transmission::after {
    position: absolute; right: 0; bottom: 0; left: 0; height: 9px; content: "";
    background-image: radial-gradient(circle at 6px 50%, var(--wire-paper) 0 2px, transparent 2.5px);
    background-size: 16px 9px;
}
/* Une bande perforee est une ligne continue : une seule colonne, tout ce que
   la tete de bande porte se lit d un seul tenant, separe par le double oblique
   de la maison. Rien n y est centre, rien n y est pousse au bord oppose, et le
   repli se fait par simple retour a la ligne. */
.dn-wire-transmission__inner {
    display: grid; grid-template-columns: minmax(0, 1fr);
    align-items: center; min-height: 42px; padding-bottom: 9px;
    font-family: var(--wire-mono); font-size: 10px; letter-spacing: .13em; text-transform: uppercase;
}
.dn-wire-transmission p, .dn-wire-transmission time { margin-bottom: 0; }
.dn-wire-transmission__tape {
    display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center;
    color: var(--wire-signal-soft); font-weight: 700;
}
.dn-wire-transmission__lamp {
    width: 8px; height: 8px; flex: 0 0 8px; background: var(--wire-signal-soft); border-radius: 50%;
    animation: dn-wire-pulse 2.6s ease-in-out infinite;
}
.dn-wire-transmission__edition { color: var(--wire-paper); font-weight: 700; }
.dn-wire-transmission__edition::before { margin-right: 12px; color: var(--wire-signal-soft); content: "//"; }
.dn-wire-transmission time { color: color-mix(in srgb, var(--wire-paper) 66%, transparent); }
.dn-wire-transmission time::before { margin-right: 12px; color: var(--wire-signal-soft); content: "//"; }
.dn-home .dn-wire-transmission a:focus-visible { outline-color: var(--wire-signal-soft); }
@keyframes dn-wire-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }

/* Masthead : le listing sort de la machine. */
.dn-wire-mast {
    background-color: var(--wire-soft);
    /* Meme trame reglee que les entetes d archive et de page du media. */
    background-image: repeating-linear-gradient(0deg, transparent 0 31px, color-mix(in srgb, var(--wire-line) 45%, transparent) 31px 32px);
    border-bottom: 1px solid var(--wire-ink);
}
.dn-wire-mast__inner {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 330px);
    gap: clamp(30px, 4vw, 64px); align-items: start;
    padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(34px, 4vw, 52px);
}
.dn-wire-mast__copy h1 {
    max-width: 15ch; margin: 18px 0 24px; color: var(--wire-ink); font-family: var(--wire-serif);
    font-size: clamp(44px, 6.6vw, 92px); font-weight: 400; line-height: .96; letter-spacing: -.025em;
}
.dn-wire-mast__copy h1 em { color: var(--wire-file); font-style: italic; }
.dn-wire-mast__copy > p:last-child {
    max-width: 62ch; margin-bottom: 0; color: var(--wire-muted);
    font-size: clamp(15px, 1.45vw, 19px); line-height: 1.6;
}
.dn-wire-slip { padding: 18px 20px 6px; background: var(--wire-paper); border: 1px solid var(--wire-ink); box-shadow: 6px 6px 0 color-mix(in srgb, var(--wire-ink) 9%, transparent); }
.dn-wire-slip__label {
    margin-bottom: 14px; padding-bottom: 12px; color: var(--wire-signal-text); border-bottom: 2px solid var(--wire-ink);
    font-family: var(--wire-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
}
.dn-wire-slip dl { margin-bottom: 0; }
.dn-wire-slip dl > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; align-items: baseline; padding: 11px 0; border-bottom: 1px dotted var(--wire-line); }
.dn-wire-slip dl > div:last-child { border-bottom: 0; }
.dn-wire-slip dt { color: var(--wire-muted); font-family: var(--wire-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.dn-wire-slip dd { margin: 0; color: var(--wire-ink); font-family: var(--wire-mono); font-size: 12px; font-weight: 700; text-align: right; }

/* Les trois temps de lecture, annoncés avant le fil. */
.dn-wire-levels {
    /* Les colonnes suivent le nombre de niveaux reellement ouverts : un fil
       court ne laisse pas de colonne vide en bout de bande. */
    display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin-bottom: 0; padding: 0;
    list-style: none; border-top: 2px solid var(--wire-ink);
}
.dn-wire-levels li { border-right: 1px solid var(--wire-line); }
.dn-wire-levels li:last-child { border-right: 0; }
.dn-wire-levels a { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 4px 12px; padding: 18px 20px 22px 0; }
.dn-wire-levels li + li a { padding-left: 22px; }
.dn-wire-levels span { grid-row: span 2; color: var(--wire-file); font-family: var(--wire-mono); font-size: 11px; font-weight: 700; }
.dn-wire-levels strong { font-family: var(--wire-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.dn-wire-levels small { color: var(--wire-muted); font-size: 13px; line-height: 1.45; }
.dn-wire-levels a:hover strong { color: var(--wire-signal-text); }

/* Têtes de niveau. */
.dn-wire-track {
    display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: flex-end; justify-content: space-between;
    margin-bottom: 26px; padding-bottom: 12px; border-bottom: 2px solid var(--wire-ink);
}
.dn-wire-track :is(p, h2) { margin-bottom: 0; }
.dn-wire-track > p, .dn-wire-track > div > p {
    color: var(--wire-signal-text); font-family: var(--wire-mono); font-size: 11px; font-weight: 700;
    letter-spacing: .16em; text-transform: uppercase;
}
.dn-wire-track > p span, .dn-wire-track > div > p span {
    display: inline-block; margin-right: 12px; padding: 3px 8px; color: var(--wire-paper); background: var(--wire-ink);
}
.dn-wire-track > strong {
    color: var(--wire-muted); font-family: var(--wire-mono); font-size: 10px; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
}
.dn-wire-track--titled h2 { margin-top: 12px; font-family: var(--wire-serif); font-size: clamp(28px, 3.4vw, 46px); font-weight: 400; letter-spacing: -.02em; line-height: 1.02; }

.dn-wire-flash, .dn-wire-source, .dn-wire-context { scroll-margin-top: clamp(16px, 8vw, 92px); }
.dn-wire-flash { padding-top: clamp(46px, 5vw, 72px); padding-bottom: clamp(38px, 4.4vw, 62px); }

/* Tête de fil : la dépêche prioritaire, en bande. */
.dn-wire-lead { border: 1px solid var(--wire-ink); border-top: 4px solid var(--wire-signal); background: var(--wire-paper); }
.dn-wire-lead__media { display: block; aspect-ratio: 64 / 21; overflow: hidden; background: var(--wire-soft); border-bottom: 1px solid var(--wire-line); }
.dn-wire-lead__body { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: clamp(18px, 3vw, 34px); padding: clamp(22px, 2.8vw, 34px); }
.dn-wire-lead__stamp { margin-bottom: 0; border-right: 1px solid var(--wire-line); padding-right: 16px; }
.dn-wire-lead__stamp time { display: block; color: var(--wire-ink); font-family: var(--wire-mono); font-size: clamp(26px, 3vw, 34px); font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.dn-wire-lead__stamp span { display: block; margin-top: 10px; color: var(--wire-signal-text); font-family: var(--wire-mono); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.dn-wire-lead__text h2 { margin: 12px 0 18px; font-family: var(--wire-serif); font-size: clamp(28px, 3.7vw, 50px); font-weight: 400; letter-spacing: -.025em; line-height: 1.06; }
.dn-wire-lead__text h2 a:hover { color: var(--wire-signal-text); }

/* Les dépêches suivantes : du texte horodaté, sans image. */
.dn-wire-lines { margin-top: 6px; border-bottom: 1px solid var(--wire-line); }
.dn-wire-lines article {
    position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr) 44px; gap: 18px;
    align-items: center; min-height: 82px; padding: 14px 0 14px 22px; border-top: 1px solid var(--wire-line);
}
.dn-wire-lines article::before { position: absolute; top: 50%; left: 0; width: 9px; height: 9px; margin-top: -4px; background: var(--wire-signal); content: ""; }
.dn-wire-lines__time { color: var(--wire-file); font-family: var(--wire-mono); font-size: 15px; font-weight: 700; letter-spacing: -.01em; }
.dn-wire-lines h3 { margin: 5px 0 0; font-family: var(--wire-serif); font-size: clamp(18px, 1.9vw, 23px); font-weight: 400; letter-spacing: -.01em; line-height: 1.22; }
.dn-wire-lines h3 a:hover { color: var(--wire-signal-text); }
.dn-wire-lines__open { display: grid; place-items: center; width: 38px; height: 38px; color: var(--wire-ink); border: 1px solid var(--wire-line); }
.dn-wire-lines__open:hover { color: var(--wire-paper); background: var(--wire-ink); border-color: var(--wire-ink); }

/* Le registre : le bloc le plus dense de la page. */
.dn-wire-source { padding-top: clamp(36px, 4.2vw, 58px); padding-bottom: clamp(52px, 6vw, 84px); }
/* min() protege les petites largeurs : la piste ne depasse jamais le conteneur. */
.dn-wire-ledger { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); column-gap: clamp(28px, 4vw, 52px); }
.dn-wire-ledger article {
    position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 4px 16px;
    align-items: baseline; padding: 18px 0 18px 22px; border-top: 1px solid var(--wire-line); border-left: 2px solid var(--wire-line);
}
.dn-wire-ledger article::before { position: absolute; top: 24px; left: -5px; width: 8px; height: 8px; background: var(--wire-signal); content: ""; }
.dn-wire-ledger__seq { color: var(--wire-file); font-family: var(--wire-mono); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.dn-wire-ledger__body { padding-right: clamp(0px, 1vw, 16px); }
.dn-wire-ledger__stamp { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; margin-bottom: 8px; }
.dn-wire-ledger__stamp time { color: var(--wire-muted); font-family: var(--wire-mono); font-size: 11px; letter-spacing: .04em; }
.dn-wire-ledger h3 { margin-bottom: 0; font-family: var(--wire-serif); font-size: clamp(17px, 1.7vw, 21px); font-weight: 400; letter-spacing: -.012em; line-height: 1.26; }
.dn-wire-ledger h3 a:hover { color: var(--wire-signal-text); }

/* Répartiteur : les canaux, sur fond d'encre. */
.dn-wire-channels { color: var(--wire-paper); background: var(--wire-ink); }
.dn-home .dn-wire-channels a:focus-visible { outline-color: var(--wire-signal-soft); }
.dn-wire-channels__inner { padding-top: clamp(48px, 5vw, 76px); padding-bottom: clamp(48px, 5vw, 76px); }
.dn-wire-channels header { max-width: 720px; margin-bottom: clamp(28px, 3vw, 44px); }
.dn-wire-channels__label { color: var(--wire-signal-soft); font-family: var(--wire-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.dn-wire-channels h2 { margin: 14px 0 14px; font-family: var(--wire-serif); font-size: clamp(30px, 3.8vw, 52px); font-weight: 400; letter-spacing: -.025em; line-height: 1.02; }
.dn-wire-channels header p:last-child { margin-bottom: 0; color: color-mix(in srgb, var(--wire-paper) 74%, transparent); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.6; }
.dn-wire-channels nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); border-top: 1px solid color-mix(in srgb, var(--wire-paper) 30%, transparent); }
.dn-wire-channels nav a {
    position: relative; display: grid; align-content: start; gap: 10px; min-height: 116px; padding: 20px 18px 20px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--wire-paper) 18%, transparent);
}
.dn-wire-channels nav a + a { padding-left: 18px; border-left: 1px solid color-mix(in srgb, var(--wire-paper) 18%, transparent); }
.dn-wire-channels__port { width: 10px; height: 10px; background: var(--wire-signal-soft); }
.dn-wire-channels nav small { color: color-mix(in srgb, var(--wire-paper) 62%, transparent); font-family: var(--wire-mono); font-size: 10px; letter-spacing: .14em; }
.dn-wire-channels nav strong { font-family: var(--wire-serif); font-size: clamp(18px, 1.8vw, 22px); font-weight: 400; line-height: 1.18; }
.dn-wire-channels nav a:hover strong { color: var(--wire-signal-soft); }

/* Contexte : le fil ralentit et s'élargit. */
.dn-wire-context { padding-top: clamp(52px, 6vw, 84px); padding-bottom: clamp(46px, 5vw, 70px); }
.dn-wire-context__list article {
    display: grid; grid-template-columns: minmax(0, 296px) minmax(0, 1fr); gap: clamp(20px, 3vw, 44px);
    align-items: start; padding: clamp(24px, 3vw, 36px) 0; border-bottom: 1px solid var(--wire-line);
}
.dn-wire-context__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--wire-soft); border: 1px solid var(--wire-line); }
.dn-wire-context__stamp { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; margin-bottom: 12px; color: var(--wire-muted); font-family: var(--wire-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.dn-wire-context__stamp span { color: var(--wire-signal-text); font-weight: 700; }
.dn-wire-context__body h3 { margin: 10px 0 14px; font-family: var(--wire-serif); font-size: clamp(23px, 2.6vw, 33px); font-weight: 400; letter-spacing: -.02em; line-height: 1.12; }
.dn-wire-context__body h3 a:hover { color: var(--wire-signal-text); }
.dn-wire-context__body > p { max-width: 66ch; margin-bottom: 16px; color: var(--wire-muted); font-size: clamp(15px, 1.35vw, 17px); line-height: 1.6; }
.dn-wire-context__foot { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: center; margin-bottom: 0; font-family: var(--wire-mono); font-size: 11px; letter-spacing: .04em; }
.dn-wire-context__foot > span { color: var(--wire-muted); }
.dn-wire-context__foot a { color: var(--wire-signal-text); font-weight: 700; }
.dn-wire-context__foot a:hover { text-decoration: underline; }

/* Relevé de fin. */
.dn-wire-log { padding-top: clamp(30px, 4vw, 52px); padding-bottom: clamp(48px, 6vw, 78px); }
.dn-wire-log__list article {
    display: grid; grid-template-columns: 106px minmax(0, 1fr) auto; gap: 16px 20px; align-items: center;
    min-height: 80px; padding: 14px 0; border-bottom: 1px solid var(--wire-line);
}
.dn-wire-log__list time { color: var(--wire-muted); font-family: var(--wire-mono); font-size: 11px; letter-spacing: .06em; }
.dn-wire-log h3 { margin: 5px 0 0; font-family: var(--wire-serif); font-size: clamp(17px, 1.7vw, 21px); font-weight: 400; line-height: 1.24; }
.dn-wire-log h3 a:hover { color: var(--wire-signal-text); }
.dn-wire-log__open { color: var(--wire-signal-text); font-family: var(--wire-mono); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.dn-wire-log__open:hover { text-decoration: underline; }

/* La bande se referme, perforée comme elle a commencé. */
.dn-wire-close {
    height: 18px;
    background-color: var(--wire-soft);
    background-image: radial-gradient(circle at 8px 50%, var(--wire-paper) 0 3px, var(--wire-line) 3px 4px, transparent 4.5px);
    background-size: 20px 18px;
    border-top: 1px solid var(--wire-line);
}

@media (max-width: 1024px) {
    .dn-wire-mast__inner { grid-template-columns: minmax(0, 1fr) minmax(230px, 290px); }
    /* Le registre reste sur deux colonnes tant que la ligne garde sa densite ;
       auto-fit le ramene seul a une colonne sous 900 px. */
    .dn-wire-ledger { column-gap: 30px; }
    .dn-wire-context__list article { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); }
}

/* Le repartiteur passe a trois voies par rangee : le filet vertical suit. */
@media (min-width: 769px) and (max-width: 1024px) {
    .dn-wire-channels nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dn-wire-channels nav a:nth-child(3n+1) { padding-left: 0; border-left: 0; }
    .dn-wire-channels nav a:not(:nth-child(3n+1)) { padding-left: 18px; border-left: 1px solid color-mix(in srgb, var(--wire-paper) 18%, transparent); }
}

@media (max-width: 900px) {
    /* La bande ne perd rien : elle passe simplement a la ligne. */
    .dn-wire-transmission__tape { gap: 4px 10px; }
    .dn-wire-mast__inner { grid-template-columns: minmax(0, 1fr); }
    .dn-wire-slip { max-width: 460px; }
    .dn-wire-levels { grid-auto-flow: row; grid-auto-columns: auto; }
    .dn-wire-levels li { border-right: 0; border-bottom: 1px solid var(--wire-line); }
    .dn-wire-levels li:last-child { border-bottom: 0; }
    .dn-wire-levels a, .dn-wire-levels li + li a { padding: 16px 0; }
    .dn-wire-lead__media { aspect-ratio: 16 / 9; }
    .dn-wire-lead__body { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .dn-wire-lead__stamp { display: flex; gap: 16px; align-items: baseline; padding-right: 0; padding-bottom: 14px; border-right: 0; border-bottom: 1px solid var(--wire-line); }
    .dn-wire-lead__stamp span { margin-top: 0; }
    .dn-wire-context__list article { grid-template-columns: minmax(0, 1fr); }
    .dn-wire-context__media { max-width: 420px; aspect-ratio: 16 / 9; }
}

@media (max-width: 768px) {
    .dn-wire-transmission__inner { min-height: 38px; font-size: 9px; }
    .dn-wire-mast__copy h1 { max-width: none; font-size: clamp(38px, 11vw, 56px); }
    .dn-wire-slip { max-width: none; padding-inline: 16px; box-shadow: 4px 4px 0 color-mix(in srgb, var(--wire-ink) 9%, transparent); }
    .dn-wire-track { align-items: flex-start; }
    .dn-wire-lines article { grid-template-columns: 68px minmax(0, 1fr); gap: 12px; min-height: 74px; padding-left: 18px; }
    .dn-wire-lines__open { display: none; }
    .dn-wire-lines__time { font-size: 13px; }
    .dn-wire-ledger article { grid-template-columns: 40px minmax(0, 1fr); gap: 4px 14px; padding-left: 18px; }
    .dn-wire-channels nav { grid-template-columns: minmax(0, 1fr); }
    .dn-wire-channels nav a, .dn-wire-channels nav a + a { min-height: 0; padding: 16px 0; border-left: 0; }
    .dn-wire-log__list article { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; min-height: 72px; }
    .dn-wire-log__list time { grid-column: 1 / -1; }
}

@media (max-width: 390px) {
    .dn-wire-transmission p:first-child span { width: 6px; height: 6px; }
    .dn-wire-mast__copy h1 { font-size: clamp(34px, 10.5vw, 44px); }
    .dn-wire-slip dl > div { grid-template-columns: minmax(0, 1fr); }
    .dn-wire-slip dd { text-align: left; }
    .dn-wire-lead__body { padding: 20px 16px 24px; }
    .dn-wire-lines article { grid-template-columns: minmax(0, 1fr); gap: 6px; padding-left: 16px; }
    .dn-wire-lines article::before { top: 24px; margin-top: 0; }
    /* Le registre garde sa densite de fil : jamais une pile de cartes. */
    .dn-wire-ledger article { grid-template-columns: minmax(0, 1fr); gap: 4px; padding-left: 16px; }
    .dn-wire-ledger__stamp { gap: 2px 12px; }
    .dn-wire-log__open { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .dn-wire-transmission__lamp { animation: none; }
    .dn-wire .dn-cover { transition: none; }
    .dn-wire a:hover .dn-cover { opacity: 1; }
}
