        /* Hero en bandeau (cohérent avec la card auteur sur la fiche livre) */
        .author-hero {
            display: block;
            margin-top: var(--space-3);
            background: var(--bg-paper);
            border-radius: var(--radius);
            box-shadow: var(--shadow-lg);
            /* PAS d'overflow:hidden ici — sinon les popovers des badges
               (genres/awards) sont coupés. Le cropping de la photo est
               géré sur .author-hero__photo qui a son propre overflow. */
        }
        .author-hero__photo {
            position: relative;
            width: 100%;
            aspect-ratio: 16/9;
            background: linear-gradient(135deg,
                color-mix(in srgb, var(--violet-soft) 100%, white),
                color-mix(in srgb, var(--violet) 25%, transparent));
            overflow: hidden;
            border-radius: calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;
        }
        @media (min-width: 720px) {
            .author-hero__photo { aspect-ratio: 21/8; }
        }
        .author-hero__photo img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 25%;
        }
        .author-hero__photo::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to bottom,
                transparent 0%,
                transparent 55%,
                color-mix(in srgb, var(--bg-paper) 60%, transparent) 80%,
                var(--bg-paper) 100%);
            pointer-events: none;
        }
        .author-hero__photo--placeholder {
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .author-hero__initials {
            font-size: 3.5rem;
            font-weight: 600;
            color: var(--violet);
            opacity: 0.4;
            letter-spacing: -0.02em;
        }
        @media (min-width: 480px) {
            .author-hero__initials { font-size: 4.5rem; }
        }
        .author-hero__body {
            padding: 0 var(--space-4) var(--space-4);
            margin-top: calc(-1 * var(--space-2));
            position: relative;
        }
        .author-name {
            margin: 0;
            font-size: clamp(1.5rem, 4.5vw, 2.1rem);
            font-weight: 600;
            letter-spacing: -0.02em;
            line-height: 1.15;
            color: var(--ink);
        }
        .author-dates {
            margin: 8px 0 0;
            font-family: var(--font-mono);
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--subtle);
        }
        .author-dates strong { color: var(--muted); font-weight: 500; }

        .author-bio-section {
            margin-top: var(--space-5);
            max-width: 65ch;
        }
        .author-bio {
            margin: 0;
            font-size: 0.98rem;
            line-height: 1.6;
            color: var(--ink);
            overflow-wrap: anywhere;
            word-break: break-word;
        }
        .author-bio.is-collapsed {
            display: -webkit-box;
            -webkit-line-clamp: 6;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .author-bio + .synopsis__toggle {
            margin-top: var(--space-2);
        }

        .author-section {
            margin-top: var(--space-5);
        }
        .author-section__title {
            margin: 0 0 var(--space-3);
            font-size: 1.1rem;
            font-weight: 500;
            letter-spacing: -0.01em;
            display: flex;
            align-items: baseline;
            gap: 8px;
        }
        .author-section__count {
            font-size: 0.82rem;
            font-weight: 400;
            color: var(--muted);
        }

        .author-books-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--space-3);
        }
        @media (min-width: 480px) { .author-books-grid { grid-template-columns: repeat(4, 1fr); } }
        @media (min-width: 720px) { .author-books-grid { grid-template-columns: repeat(6, 1fr); gap: var(--space-4); } }

        .author-book-item {
            display: block;
            text-decoration: none;
            color: inherit;
            transition: transform 200ms;
        }
        .author-book-item:hover { transform: translateY(-2px); text-decoration: none; }
        .author-book-item__cover {
            width: 100%;
            aspect-ratio: 2/3;
            border-radius: var(--radius);
            object-fit: cover;
            background: var(--bg-paper);
            box-shadow: var(--shadow-cover), inset 0 0 0 1px var(--cover-ring);
        }
        .author-book-item__cover--placeholder {
            display: flex; align-items: center; justify-content: center;
            color: var(--subtle);
            background: var(--border);
        }
        .author-book-item__title {
            margin: 6px 0 0;
            font-size: 0.8rem;
            font-weight: 500;
            line-height: 1.3;
            color: var(--ink);
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .author-empty {
            color: var(--muted);
            font-size: 0.95rem;
        }

        /* ========== Badges genres + awards (compacts, à droite du nom) ========== */
        .author-name-bar {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: var(--space-3);
        }
        .author-name-bar__title { flex: 1; min-width: 0; }
        .author-name-bar__badges {
            display: flex;
            gap: 6px;
            flex-shrink: 0;
            margin-top: 6px;
        }
        .author-meta-badge { position: relative; }
        .author-meta-badge > summary {
            list-style: none;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 4px;
            min-width: 32px;
            height: 32px;
            padding: 0 9px;
            border-radius: 999px;
            background: var(--bg-paper);
            color: var(--muted);
            font-family: var(--font-mono);
            font-size: 0.66rem;
            font-weight: 500;
            transition: color 150ms, background 150ms;
        }
        .author-meta-badge > summary::-webkit-details-marker,
        .author-meta-badge > summary::marker { display: none; content: ''; }
        .author-meta-badge > summary svg { width: 12px; height: 12px; flex-shrink: 0; }
        .author-meta-badge > summary:hover { color: var(--ink); background: var(--border); }
        .author-meta-badge--awards > summary { color: color-mix(in srgb, var(--orange) 80%, black); background: var(--orange-soft); }
        .author-meta-badge[open] > summary { color: var(--violet); background: var(--violet-soft); }
        .author-meta-badge[open].author-meta-badge--awards > summary { color: color-mix(in srgb, var(--orange) 80%, black); background: var(--orange-soft); }
        .author-meta-badge__popover {
            position: absolute;
            top: calc(100% + 8px);
            right: 0;
            z-index: 30;
            background: var(--bg-elevated);
            border-radius: var(--radius);
            padding: var(--space-3);
            min-width: 200px;
            max-width: 280px;
            box-shadow: var(--shadow-lg);
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        .author-meta-tag {
            font-family: var(--font-mono);
            font-size: 0.66rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--muted);
            background: var(--bg-paper);
            border-radius: 999px;
            padding: 3px 10px;
        }

        /* ========== Auteurs similaires (carrousel mobile / grille desktop) ========== */
        .similar-authors {
            display: flex;
            gap: var(--space-3);
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            padding-bottom: var(--space-2);
            margin: 0 calc(-1 * var(--space-3));
            padding-inline: var(--space-3);
            scrollbar-width: thin;
        }
        .similar-authors::-webkit-scrollbar { height: 6px; }
        .similar-authors::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
        .similar-author {
            flex: 0 0 96px;
            scroll-snap-align: start;
            text-decoration: none;
            color: inherit;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            transition: transform 150ms;
        }
        .similar-author:hover { transform: translateY(-2px); }
        .similar-author:hover .similar-author__name { color: var(--violet); }
        .similar-author__avatar {
            width: 72px;
            height: 72px;
            border-radius: 50%;
            object-fit: cover;
            background: var(--violet-soft);
        }
        .similar-author__placeholder {
            display: flex; align-items: center; justify-content: center;
            font-size: 1.6rem; font-weight: 500; color: var(--violet);
        }
        .similar-author__name {
            font-size: 0.82rem;
            line-height: 1.25;
            text-align: center;
            color: var(--ink);
            font-weight: 500;
            transition: color 150ms;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        @media (min-width: 720px) {
            .similar-authors {
                display: grid;
                grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
                overflow: visible;
                margin: 0;
                padding-inline: 0;
            }
            .similar-author { flex: initial; }
        }

        /* ========== Adaptations (disclosure en bas, style cohérent éditions) ========== */
        .author-adaptations details summary { list-style: none; cursor: pointer; }
        .author-adaptations details summary::-webkit-details-marker { display: none; }
        .author-adaptations { margin-top: var(--space-3); padding-top: var(--space-3); }
        .author-adaptations__summary {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0;
            font-size: 0.95rem;
            color: var(--muted);
        }
        .author-adaptations__label {
            display: inline-flex;
            align-items: center;
            gap: 10px;
        }
        .author-adaptations__icon {
            width: 36px;
            height: 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: var(--bg-paper);
            color: var(--muted);
            flex-shrink: 0;
            transition: color 150ms, background 150ms;
        }
        .author-adaptations__icon svg { width: 18px; height: 18px; }
        .author-adaptations__summary:hover { color: var(--ink); }
        .author-adaptations__summary:hover .author-adaptations__icon,
        .author-adaptations details[open] .author-adaptations__icon {
            color: var(--violet);
            background: var(--violet-soft);
        }
        .author-adaptations__chevron { width: 18px; height: 18px; transition: transform 150ms; flex-shrink: 0; }
        .author-adaptations details[open] .author-adaptations__chevron { transform: rotate(180deg); }
        .adaptations-list {
            list-style: none;
            padding: var(--space-2) 0 var(--space-3);
            margin: 0;
        }
        .adaptation {
            display: flex;
            align-items: baseline;
            gap: var(--space-3);
            padding: 8px 0;
            font-size: 0.88rem;
            border-bottom: 1px solid var(--border);
        }
        .adaptation:last-child { border-bottom: none; }
        .adaptation__type {
            font-family: var(--font-mono);
            font-size: 0.6rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--subtle);
            flex: 0 0 56px;
        }
        .adaptation__title { flex: 1; color: var(--ink); }
        .adaptation__work {
            font-family: var(--font-mono);
            font-size: 0.66rem;
            color: var(--subtle);
        }
