/* Nouvelle direction éditoriale, limitée à la page Le Roman. */
/* Transition d'entrée de la home ; même axe, couleur et épaisseur que la ligne du Roman. */
html.roman-entry-active {
    --roman-entry-duration: 2s;
    --roman-entry-line-fade-duration: .3s;
    --roman-entry-fade-duration: .6s;
    --roman-entry-blue: #0091ff;
}
html.roman-entry-active::before,
html.roman-entry-active::after {
    content: "";
    position: fixed;
    z-index: 2147483647;
    pointer-events: none;
}
html.roman-entry-active::before { inset: 0; background: #fff; opacity: 1; transition: opacity var(--roman-entry-fade-duration) linear; }
html.roman-entry-fading::before { opacity: 0; }
html.roman-entry-active::after {
    top: 0;
    left: 50%;
    width: 3px;
    height: 100vh;
    height: 100dvh;
    background: var(--roman-entry-blue);
    opacity: 1;
    transition: opacity var(--roman-entry-line-fade-duration) linear;
    transform-origin: 50% 0;
    animation: roman-entry-draw var(--roman-entry-duration) linear both;
}
html.roman-entry-line-fading::after { opacity: 0; }
@keyframes roman-entry-draw {
    from { transform: translateX(-50%) scaleY(0); }
    to { transform: translateX(-50%) scaleY(1); }
}
@media (prefers-reduced-motion: reduce) {
    html.roman-entry-active::before,
    html.roman-entry-active::after { display: none; }
}

html:has(body.roman-page) { color-scheme: light; background: #fff; }
body.roman-page {
    --roman-blue: #0091ff;
    --roman-ink: #111;
    position: relative;
    isolation: isolate;
    background: #fff;
    color: var(--roman-ink);
}
/* Une seule ligne traverse le document ; les surfaces blanches du contenu la masquent. */
body.roman-page::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 3px;
    transform: translateX(-50%);
    background: var(--roman-blue);
    pointer-events: none;
}
body.roman-page > .site-header,
body.roman-page > .roman-main,
body.roman-page > .site-footer { position: relative; z-index: 1; }
body.roman-page a:focus-visible,
body.roman-page button:focus-visible { outline: 2px solid var(--roman-blue); outline-offset: 4px; }
body.roman-page .skip-link { background: #fff; color: var(--roman-ink); border: 1px solid var(--roman-blue); }
body.roman-page .site-header { padding-block: 20px 12px; }
body.roman-page .primary-nav { background: transparent; box-shadow: none; }
body.roman-page .nav-home { background: #fff; padding: 8px 12px; }
body.roman-page .nav-logo img { filter: brightness(0); }

.roman-main {
    width: min(100% - 40px, 900px);
    margin: 18px auto 76px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(48px, 7vw, 76px);
    color: var(--roman-ink);
}
.roman-main > :not(.screen-reader-text) { min-width: 0; }
/* L’accroche et le livre masquent ensemble la ligne de vie, y compris leur espacement. */
.roman-opening { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; background: #fff; }
.roman-headline { max-width: 100%; margin: 0; color: #10213c; font-size: clamp(1.25rem, 2.4vw, 1.75rem); line-height: 1.4; font-weight: 400; text-align: center; }
.roman-headline-line { display: block; }
.roman-headline-accent { color: var(--roman-blue); white-space: nowrap; }
.roman-cover { width: min(100%, 410px); margin: 0; background: #fff; }
.roman-cover img { display: block; width: 100%; height: auto; }
.roman-access--top,
.roman-access--middle { width: min(100%, 430px); }
.roman-access--bottom { width: min(100%, 860px); }
.roman-access,
.roman-facts,
.roman-copy,
.roman-aside,
.roman-author,
.roman-diffusion,
.roman-map,
.roman-excerpt,
.roman-back-top { background: #fff; }
.roman-access { padding: 12px; }
.roman-facts,
.roman-copy,
.roman-aside,
.roman-author,
.roman-diffusion,
.roman-map,
.roman-excerpt { width: min(100%, 680px); }
.roman-copy,
.roman-aside,
.roman-author,
.roman-diffusion,
.roman-map,
.roman-excerpt { padding: 16px 20px; }
.roman-kicker { margin: 0 0 28px; color: var(--roman-ink); font-size: .87rem; font-weight: 500; letter-spacing: .24em; }
.roman-diffusion { padding: 18px 20px; text-align: center; }
.roman-counters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.roman-counter { min-width: 0; margin: 0; }
.roman-odometer { display: flex; justify-content: center; gap: 3px; font-variant-numeric: tabular-nums; }
.roman-odometer > span { display: grid; place-items: center; width: clamp(28px, 4.3vw, 38px); aspect-ratio: .72; border: 1px solid #bbb; background: #fafafa; color: #111; font-size: clamp(1.35rem, 2.5vw, 1.85rem); line-height: 1; }
.roman-counter-label { display: block; margin-top: 12px; font-size: .72rem; letter-spacing: .13em; }
.roman-diffusion-invitation { margin: 28px 0 0; font-size: .8rem; letter-spacing: .18em; }
.roman-kicker::after { content: ""; display: block; width: 30px; height: 2px; margin-top: 12px; background: var(--roman-blue); }
.roman-editorial,
.roman-excerpt blockquote { font-size: clamp(1rem, 1.2vw, 1.12rem); line-height: 1.75; overflow-wrap: anywhere; }
.roman-editorial > :first-child,
.roman-excerpt blockquote > :first-child { margin-top: 0; }
.roman-editorial > :last-child,
.roman-excerpt blockquote > :last-child { margin-bottom: 0; }
.roman-facts { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px 36px; list-style: none; margin: 0; padding: 14px 20px; font-size: .9rem; }
.roman-facts li { display: flex; align-items: center; gap: 12px; }
.roman-facts svg { width: 28px; height: 28px; flex: none; }
.roman-facts span { display: block; }
.roman-actions { display: flex; gap: 12px; }
.roman-action,
.roman-press-link { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 11px 15px; border: 1px solid var(--roman-ink); border-radius: 0; background: #fff; color: var(--roman-ink); font: inherit; text-decoration: none; }
.roman-action { flex: 1; font-size: .8rem; letter-spacing: .06em; }
.roman-access--top > .roman-action,
.roman-access--middle > .roman-action { width: 100%; }
.roman-action svg { flex: none; width: 23px; height: 23px; }
.roman-chevron { margin-left: auto; color: var(--roman-blue); font-size: 1.5rem; line-height: 1; }
.roman-action--reader { border-color: var(--roman-blue); border-left-width: 3px; }
.roman-action:disabled { color: #555; border-color: #777; cursor: default; }
.roman-action[href]:hover,
.roman-press-link[href]:hover { border-color: var(--roman-blue); color: #005baa; }
.roman-promise { margin: 20px 0 0; text-align: center; font-size: .76rem; letter-spacing: .15em; }
.roman-promise span { white-space: nowrap; }
.roman-quote { margin: 0 0 28px; }
.roman-quote blockquote { margin: 0; font-style: italic; line-height: 1.65; overflow-wrap: anywhere; }
.roman-quote figcaption { margin-top: 8px; text-align: right; font-size: .875rem; }
.roman-press-link { width: min(100%, 350px); margin: 22px auto 0; font-size: .82rem; letter-spacing: .1em; }
.roman-map p { margin: 0 0 18px; line-height: 1.7; }
.roman-map .roman-press-link { margin-top: 0; }
.roman-map .roman-press-link svg { flex: none; width: 23px; height: 23px; }
.roman-excerpt blockquote { position: relative; margin: 0 0 0 28px; }
.roman-excerpt blockquote::before { content: "“"; position: absolute; top: -14px; left: -28px; font-size: 2.7rem; }
.roman-back-top { display: block; min-height: 44px; padding: 10px 16px; color: var(--roman-ink); font-size: .7rem; letter-spacing: .15em; text-decoration: none; }

/* Les contenus et les liens du footer restent inchangés. */
body.roman-page .site-footer { background: transparent; color: var(--roman-ink); padding-top: 24px; }
body.roman-page .footer-group { background: #fff; padding: 12px; }
body.roman-page .footer-group h2 { color: var(--roman-ink); }
body.roman-page .site-footer .unavailable { color: #555; }
body.roman-page .footer-group a:hover { color: #005baa; }
body.roman-page .copyright { width: fit-content; max-width: 100%; margin: 24px auto 0; padding: 4px 10px; background: #fff; color: #444; }

@media (max-width: 63.99rem) {
    .roman-main { width: min(100% - 36px, 680px); }
    .roman-cover { width: min(100%, 350px); }
    .roman-actions { flex-direction: column; }
}
@media (max-width: 40rem) {
    .roman-main { gap: 48px; margin-top: 12px; margin-bottom: 56px; }
    .roman-cover { width: min(92%, 320px); }
    .roman-copy,
    .roman-aside,
    .roman-author,
    .roman-diffusion,
    .roman-map,
    .roman-excerpt { padding: 14px 12px; }
    .roman-facts { justify-content: flex-start; gap: 18px; padding: 14px 12px; border-top: 0; }
    .roman-facts .roman-free-info { display: none; }
    .roman-promise { font-size: .72rem; letter-spacing: .1em; }
    .roman-action { font-size: .8rem; }
    .roman-press-link { width: 100%; }
    .roman-diffusion { padding-inline: 8px; }
    .roman-counters { grid-template-columns: 1fr; gap: 30px; }
    .roman-odometer > span { width: clamp(30px, 10vw, 38px); }
}
