/* ================================================ */
    /*               DRIVER PAGE STYLES                 */
    /* ================================================ */

    /* ── HERO ──
       Panel del color del equipo (--team, lo pone driver-header.js) cortado en
       diagonal sobre la foto del piloto. Un borde luminoso de la misma forma, 10px
       más ancho, marca el corte. */
    .driver-hero {
        --team: var(--primary-red);
        --slant: 12vw;   /* con vh se comía el panel en pantallas altas */
        position: relative;
        display: flex;
        min-height: 100vh;
        overflow: hidden;
        background: var(--base-900);
        color: var(--text-light);
    }

    /* :where() deja el reset sin especificidad, así no pisa los márgenes de abajo */
    :where(.driver-hero) :where(p, h1, dl, dd, figure) { margin: 0; }

    .driver-hero-photo {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 36%;
        right: 0;
    }

    .driver-hero-photo > img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 55% 25%;
    }

    .driver-hero-photo::after {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(to bottom, rgba(6,6,9,0.35), transparent 25%, transparent 70%, var(--base-800));
    }

    .driver-hero-edge,
    .driver-hero-panel {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        clip-path: polygon(0 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
    }

    .driver-hero-edge {
        width: calc(52% + 10px);
        background: var(--team);
    }

    .driver-hero-panel {
        width: 52%;
        display: flex;
        flex-direction: column;
        padding: 100px calc(var(--slant) + 40px) 8vh 5%;
        background: linear-gradient(165deg, color-mix(in srgb, var(--team) 42%, var(--base-900)) 0%, var(--base-900) 70%);
    }

    /* El número ocupa sólo el espacio que queda entre la cabecera y el nombre:
       es un contenedor de tamaño y la letra se mide con su alto (cqh), así con
       la insignia de campeón se achica en vez de pisar el nombre. */
    .driver-hero-numbox {
        flex: 1 1 0;
        min-height: 0;
        display: flex;
        align-items: flex-end;
        margin: 28px 0 20px;
        container-type: size;
    }

    /* Número de carrera gigante, sólo el contorno. Con line-height 0.8 la caja
       mide 0.8em: 125cqh la deja justo del alto del contenedor. */
    .driver-hero-num {
        margin-left: -0.06em;
        font-family: 'F1-Black';
        font-size: min(36vh, 125cqh);
        line-height: 0.8;
        color: transparent;
        -webkit-text-stroke: 2px color-mix(in srgb, color-mix(in srgb, var(--team) 72%, white) 30%, transparent);
        user-select: none;
    }

    .driver-hero-body {
        position: relative;
        width: 100%;
    }

    /* Cabecera del panel: nacionalidad y equipo, cada uno con su etiqueta, con
       una barra del color del equipo al costado */
    .driver-hero-id {
        display: flex;
        align-self: flex-start;
        border-left: 3px solid var(--team);
    }

    .driver-hero-id div { padding: 2px 28px 2px 16px; }

    .driver-hero-id div + div {
        padding-left: 28px;
        border-left: 1px solid rgba(255,255,255,0.12);
    }

    .driver-hero-id dt {
        margin-bottom: 10px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 11px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .driver-hero-id dd {
        display: flex;
        align-items: center;
        gap: 12px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 18px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .driver-hero-flag {
        width: 28px;
        height: 28px;
    }

    .driver-hero-logo {
        height: 28px;
        width: auto;
    }

    .driver-hero-first {
        margin-bottom: -0.05em;   /* pegado al apellido, sin tocarlo */
        font-family: 'F1-Black';
        line-height: 1;
        font-size: clamp(20px, 2.2vw, 40px);
        text-transform: uppercase;
    }

    /* El ancho de la letra de F1-Black ronda 0.86em: con el largo del apellido
       (--len) los nombres largos se achican para no pisar la diagonal. */
    .driver-hero-last {
        font-family: 'F1-Black';
        font-weight: normal;
        font-size: min(7vw, calc(38vw / (var(--len) * 0.86)));
        line-height: 0.95;
        text-transform: uppercase;
        white-space: nowrap;
    }

    /* Insignia de campeón: la cantidad de títulos en dorado entre laureles, y
       los años al lado. Mismo dorado que .lv-slice.is-champion (drivers.css). */
    .driver-hero-crown {
        display: inline-flex;
        align-items: center;
        gap: 18px;
        margin-top: 24px;
        padding: 12px 28px 12px 14px;
        background: linear-gradient(90deg, rgba(232,199,122,0.14), rgba(232,199,122,0) 90%);
        border-left: 3px solid #E8C77A;
    }

    .driver-hero-crown-count {
        display: flex;
        align-items: center;
    }

    .driver-hero-crown-count img {
        height: 58px;
        width: auto;
    }

    .driver-hero-crown-count span {
        margin: 0 -2px;
        font-family: 'F1-Black';
        font-size: 48px;
        line-height: 1;
        background: linear-gradient(135deg, #B78E3F, #F5E0B5, #B78E3F);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

    .driver-hero-crown-label {
        font-family: 'F1-Black';
        font-size: 18px;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: #E8C77A;
    }

    .driver-hero-crown-years {
        margin-top: 4px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 13px;
        letter-spacing: 1px;
        color: color-mix(in srgb, #E8C77A 70%, var(--text-dim));
    }

    .driver-hero-stats {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        margin-top: 40px;
        border-top: 1px solid rgba(255,255,255,0.15);
    }

    .driver-hero-stats div { padding-top: 16px; }

    .driver-hero-stats div + div {
        padding-left: 20px;
        border-left: 1px solid rgba(255,255,255,0.08);
    }

    .driver-hero-stats dd {
        font-family: 'F1-Black';
        font-size: clamp(28px, 2.8vw, 52px);
        line-height: 1;
        color: transparent;
        -webkit-text-stroke: 1.5px var(--text-light);   /* sólo el contorno, como el número de carrera */
    }

    .driver-hero-stats dt {
        margin-top: 6px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .driver-hero-since {
        margin-top: 36px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 14px;
        color: var(--text-dim);
    }

    /* Mismo peso que el resto de la línea: sólo cambia el color */
    .driver-hero-since b {
        font-weight: inherit;
        color: var(--text-light);
    }

    /* Celular: la foto arriba y el panel abajo, con la diagonal cruzada */
    @media (max-width: 900px) {
        .driver-hero { --slant: 0px; flex-direction: column; }
        .driver-hero-photo { position: relative; left: 0; height: 52vh; flex: none; }
        .driver-hero-edge { display: none; }
        .driver-hero-panel {
            position: relative;
            width: 100%;
            flex: 1;
            flex-direction: column;
            justify-content: flex-end;
            align-items: stretch;
            margin-top: -8vh;
            padding: calc(8vh + 24px) 20px 48px;
            clip-path: polygon(0 8vh, 100% 0, 100% 100%, 0 100%);
        }
        /* El panel crece con el contenido: el número va con tamaño fijo */
        .driver-hero-numbox { flex: none; margin: 16px 0 12px; container-type: normal; }
        .driver-hero-num { font-size: 22vh; }
        .driver-hero-id div { padding: 0 16px 0 12px; }
        .driver-hero-id div + div { padding-left: 16px; }
        .driver-hero-id dt { margin-bottom: 6px; font-size: 9px; letter-spacing: 1px; }
        .driver-hero-id dd { gap: 8px; font-size: 13px; }
        .driver-hero-flag,
        .driver-hero-logo { height: 20px; }
        .driver-hero-flag { width: 20px; }
        .driver-hero-last { font-size: min(14vw, calc(90vw / (var(--len) * 0.86))); }
        .driver-hero-crown { gap: 12px; margin-top: 18px; padding: 10px 16px 10px 10px; }
        .driver-hero-crown-count img { height: 44px; }
        .driver-hero-crown-count span { font-size: 36px; }
        .driver-hero-crown-label { font-size: 14px; }
        .driver-hero-crown-years { font-size: 11px; }
        .driver-hero-stats { margin-top: 28px; }
        .driver-hero-stats div + div { padding-left: 12px; }
        .driver-hero-stats dd { font-size: 26px; }
        .driver-hero-stats dt { font-size: 10px; letter-spacing: 1px; }
        .driver-hero-since { margin-top: 24px; }
    }

    /* ── CONTENT ── */
    .driver-content {
        max-width: var(--content-width);
        margin-inline: auto;
        padding: var(--content-rhythm) var(--content-gutter);
    }

    /* Section title */
    .section-title {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 2rem;
        padding: 0;
        border: none;
        color: var(--text-light);
        font-family: 'F1-Black';
        font-size: clamp(24px, 4vw, 48px);
        text-transform: uppercase;
    }

    .section-title::after {
        content: '';
        flex: 1;
        height: 2px;
        background: var(--primary-red);
    }

    /* ── Ajustes generales para celular: menos padding lateral y menos aire entre
       secciones ── */
    @media (max-width: 700px) {
        .section-title { font-size: clamp(22px, 7vw, 32px); margin-bottom: 1.5rem; }

        .driver-info,
        .season-2026,
        .driver-career,
        .driver-bio { margin-bottom: 56px; }
    }

    /* ── DRIVER INFO (variant J) ── */
    .driver-info {
        --team-color: var(--primary-red);   /* driver-header.js lo pisa con el color real */
        position: relative;
        display: flex;
        gap: 44px;
        align-items: stretch;      /* la foto llega arriba y abajo del recuadro */
        margin-bottom: 96px;
        padding: 0;                /* el padding vive en la columna de texto */
        background: linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        border: 1px solid rgba(255,255,255,0.06);
        border-radius: 12px;
        overflow: hidden;          /* recorta la foto a las esquinas redondeadas */
    }

    /* Columna de la foto: pegada al borde izquierdo, alto completo de la tarjeta.
       El fondo detrás del recorte del piloto se arma con el color del equipo
       (--team-color, que setea driver-header.js): resplandor arriba, cuña
       diagonal y líneas de velocidad. */
    .driver-info-visual {
        position: relative;
        z-index: 1;
        width: 260px;
        flex-shrink: 0;
        align-self: stretch;
        overflow: hidden;
        background:
            linear-gradient(
                125deg,
                color-mix(in srgb, var(--team-color) 26%, transparent) 0%,
                transparent 52%
            ),
            radial-gradient(
                125% 85% at 50% 4%,
                color-mix(in srgb, var(--team-color) 42%, transparent) 0%,
                transparent 62%
            ),
            linear-gradient(180deg, var(--base-700) 0%, var(--base-900) 100%);
    }

    /* Filo del color del equipo donde la foto se junta con el texto. */
    .driver-info-visual::before {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 2px;
        z-index: 3;
        background: linear-gradient(180deg, var(--team-color) 0%, transparent 85%);
    }

    /* El piloto se hunde en la oscuridad hacia abajo, no flota. */
    .driver-info-visual::after {
        content: '';
        position: absolute;
        inset: 0;
        z-index: 2;
        pointer-events: none;
        background: linear-gradient(180deg, transparent 50%, var(--base-900) 100%);
    }

    .driver-info-portrait {
        position: absolute;
        inset: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top center;
    }

    .driver-info-facts {
        position: relative;
        z-index: 1;
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 36px;
        padding: 40px 48px 40px 0;
    }

    /* Cabecera tipo licencia: sigla gigante, número en placa del equipo y el
       nombre completo alineado a la derecha */
    .driver-info-head {
        display: flex;
        align-items: center;
        gap: 16px;
        padding-bottom: 24px;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .driver-info-code {
        font-family: 'F1-Black';
        font-size: 56px;
        line-height: 0.85;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--text-light);
    }

    .driver-info-plate {
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 56px;
        height: 48px;
        padding: 0 12px;
        font-family: 'F1-Black';
        font-size: 28px;
        color: #fff;
        background: var(--team-color);
        border-radius: 6px;
        text-shadow: 0 2px 6px rgba(0,0,0,0.3);
    }

    .driver-info-fullname {
        margin-left: auto;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 14px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    /* Tres datos grandes, con el mismo lenguaje que las estadísticas del hero */
    .driver-info-tiles {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        margin: 0;
    }

    .driver-info-tiles div + div {
        padding-left: 28px;
        border-left: 1px solid rgba(255,255,255,0.08);
    }

    .driver-info-tiles dt,
    .driver-info-label {
        margin: 0 0 10px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .driver-info-tiles dd {
        margin: 0;
        font-family: 'F1-Black';
        font-size: 44px;
        line-height: 1;
        color: var(--text-light);
    }

    .driver-info-sub {
        display: block;
        margin: 10px 0 0;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 13px;
        color: var(--text-dim);
    }

    .driver-info-flag {
        width: 16px;
        height: 16px;
        margin-right: 7px;
        vertical-align: -3px;
    }

    /* Equipos: una tarjeta por etapa, con el color del equipo en el filo */
    .driver-info-teams ul {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
        gap: 10px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .driver-info-teams li {
        padding: 12px 16px;
        background: rgba(255,255,255,0.03);
        border-left: 3px solid var(--c);
        border-radius: 0 6px 6px 0;
    }

    .driver-info-team {
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 16px;
        text-transform: uppercase;
        color: var(--text-light);
    }

    .driver-info-teams .driver-info-sub { margin-top: 4px; font-size: 12px; }

    @media (max-width: 700px) {
        .driver-info {
            flex-direction: column;
            align-items: stretch;
            gap: 0;
        }
        .driver-info-visual { width: 100%; height: 260px; }
        .driver-info-facts { gap: 28px; padding: 24px 20px; }
        .driver-info-head { flex-wrap: wrap; gap: 12px; padding-bottom: 20px; }
        .driver-info-code { font-size: 44px; }
        .driver-info-plate { min-width: 46px; height: 40px; font-size: 22px; }
        .driver-info-fullname { flex-basis: 100%; margin-left: 0; font-size: 12px; }
        .driver-info-tiles div + div { padding-left: 14px; }
        .driver-info-tiles dt { font-size: 10px; letter-spacing: 1px; }
        .driver-info-tiles dd { font-size: 30px; }
        .driver-info-sub { font-size: 11px; }
        .driver-info-teams ul { grid-template-columns: 1fr 1fr; }
    }

    /* ══ 2026 SEASON ══
       La temporada en curso no se dibuja como la carrera deportiva completa: allá
       el formato es archivo (grilla de calendario), acá es trayectoria. Banda de
       situación → curva de forma → detalle por ronda. */
    .season-2026 {
        --team-color: #e10600;
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin-bottom: 96px;
    }

    .season-2026.is-empty { display: none; }

    /* ── Banda de situación ── */
    .season-band {
        display: grid;
        grid-template-columns: auto auto 1fr auto;
        align-items: stretch;
        gap: 0;
        background: linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        border: 1px solid rgba(255,255,255,0.06);
        border-radius: 12px;
        overflow: hidden;
        position: relative;
    }

    .season-band::before {
        content: '';
        position: absolute;
        top: 0; left: 0;
        width: 100%;
        height: 2px;
        background: linear-gradient(90deg, var(--team-color) 0%, transparent 70%);
    }

    .season-band-cell {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 6px;
        padding: 24px 28px;
        border-right: 1px solid rgba(255,255,255,0.06);
        min-width: 0;
    }

    .season-band-cell:last-child { border-right: none; }

    .season-band-key {
        font-family: 'F1-Regular';
        font-size: 14px;
        font-weight: 600;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .season-band-sub {
        font-family: 'F1-Regular';
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.5px;
        color: var(--text-dim);
    }

    .season-band-pos {
        font-family: 'F1-Black';
        font-size: 46px;
        line-height: 1;
        color: var(--text-light);
    }

    .season-band-pts {
        font-family: 'F1-Black';
        font-size: 46px;
        line-height: 1;
        color: var(--team-color);
    }

    .season-band-team {
        font-family: 'F1-Regular';
        font-size: 15px;
        font-weight: 600;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: var(--team-color);
        white-space: nowrap;
    }

    .season-band-cell--progress { justify-content: center; gap: 10px; }

    .season-band-progress-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 16px;
    }

    .season-band-progress-count {
        font-family: 'F1-Regular';
        font-size: 14px;
        font-weight: 600;
        color: var(--text-light);
    }

    .season-band-progress-track {
        height: 6px;
        border-radius: 999px;
        background: rgba(255,255,255,0.08);
        overflow: hidden;
    }

    .season-band-progress-fill {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg, rgba(255,255,255,0.2), rgba(255,255,255,0)), var(--team-color);
    }

    /* ── Curva de forma ── */
    .season-form {
        background: linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        border: 1px solid rgba(255,255,255,0.06);
        border-radius: 12px;
        padding: 26px 30px 22px;
    }

    .season-form-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
        margin-bottom: 18px;
    }

    .season-form-title {
        margin: 0;
        font-family: 'F1-Regular';
        font-size: 16px;
        letter-spacing: 1px;
        font-weight: 600;
        text-transform: uppercase;
        color: var(--text-light);
    }

    .season-form-legend {
        display: flex;
        gap: 18px;
    }

    .season-form-legend-item {
        display: flex;
        align-items: center;
        gap: 7px;
        font-family: 'F1-Regular';
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .season-form-legend-item::before {
        content: '';
        width: 18px;
        height: 0;
        border-top: 2px solid currentColor;
    }

    .season-form-legend-item.is-race::before {
        border-top-color: var(--team-color);
        border-top-width: 3px;
    }

    .season-form-legend-item.is-grid::before {
        border-top-style: dashed;
        border-top-color: rgba(255,255,255,0.45);
    }

    /* Marca de mejor racecraft de la temporada (solo en la página del piloto que
       más puestos ganó en carrera). */
    .season-racecraft-badge[hidden] { display: none; }

    .season-racecraft-badge {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 6px 10px;
        margin: 0 0 16px;
        padding: 10px 14px;
        border-radius: 10px;
        border: 1px solid rgba(232,185,35,0.28);
        background: rgba(232,185,35,0.10);
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--gold, #e8b923);
    }

    .season-racecraft-badge-star { font-size: 15px; line-height: 1; }

    .season-racecraft-badge-sub {
        font-weight: 400;
        letter-spacing: 0.4px;
        text-transform: none;
        color: var(--text-dim);
    }

    .season-form-canvas { position: relative; }

    /* ── Tooltip del Form curve (formTooltip en driver-season.js) ──
       Tarjeta con el filo del color del equipo arriba. Se ubica con transform,
       así al pasar de un punto a otro se desliza. */
    .form-tip {
        --c: var(--primary-red);
        position: absolute;
        top: 0;
        left: 0;
        z-index: 5;
        min-width: 230px;
        padding: 14px 16px;
        background: rgba(10,10,15,0.94);
        border: 1px solid rgba(255,255,255,0.1);
        border-top: 3px solid var(--c);
        border-radius: 10px;
        box-shadow: 0 16px 40px rgba(0,0,0,0.5);
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
        pointer-events: none;
        opacity: 0;
        transition: all 0.2s ease;
    }

    .form-tip.is-visible { opacity: 1; }

    .form-tip-head {
        display: flex;
        align-items: center;
        gap: 8px;
        padding-bottom: 12px;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .form-tip-flag {
        width: 18px;
        height: 18px;
    }

    .form-tip-round {
        padding: 2px 6px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 11px;
        letter-spacing: 1px;
        color: var(--text-dim);
        background: rgba(255,255,255,0.07);
        border-radius: 4px;
    }

    .form-tip-gp {
        font-family: 'F1-Black';
        font-size: 14px;
        text-transform: uppercase;
        color: var(--text-light);
        white-space: nowrap;
    }

    /* Largada → llegada, con los puestos ganados o perdidos */
    .form-tip-race {
        display: flex;
        align-items: flex-end;
        gap: 14px;
        padding: 12px 0;
    }

    .form-tip-race > div {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .form-tip-key {
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 10px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .form-tip-pos {
        font-family: 'F1-Black';
        font-size: 26px;
        line-height: 1;
        color: var(--text-light);
    }

    .form-tip-pos.is-podium { color: #E8C77A; }
    .form-tip-pos.is-dnf { color: #d9564f; }

    .form-tip-arrow {
        width: 22px;
        height: 12px;
        margin-bottom: 7px;
        color: var(--text-dim);
    }

    .form-tip-delta {
        margin: 0 0 3px auto;
        padding: 4px 8px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        color: var(--text-dim);
        background: rgba(255,255,255,0.07);
        border-radius: 999px;
    }

    .form-tip-delta.is-up   { color: #22c55e; background: rgba(34,197,94,0.12); }
    .form-tip-delta.is-down { color: #d9564f; background: rgba(217,86,79,0.12); }

    .form-tip-foot {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px 10px;
        padding-top: 12px;
        border-top: 1px solid rgba(255,255,255,0.08);
    }

    .form-tip-pts {
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .form-tip-pts b {
        margin-right: 2px;
        font-family: 'F1-Black';
        font-weight: normal;
        font-size: 20px;
        letter-spacing: 0;
        color: var(--text-light);
    }

    .form-tip-sprint {
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 11px;
        color: var(--text-dim);
    }

    .form-tip-badge {
        padding: 3px 8px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 10px;
        letter-spacing: 1px;
        text-transform: uppercase;
        border-radius: 4px;
    }

    /* Violeta de la vuelta rápida, como en las transmisiones */
    .form-tip-badge.is-fl  { color: #C792FF; background: rgba(162,89,255,0.18); }
    .form-tip-badge.is-dnf { color: #d9564f; background: rgba(217,86,79,0.14); }

    .season-form-note {
        margin: 16px 0 0;
        padding-top: 14px;
        border-top: 1px solid rgba(255,255,255,0.06);
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 13px;
        line-height: 1.6;
        color: var(--text-dim);
    }

    /* Igual que .champ-form-note b (championship.css) */
    .season-form-note b {
        text-transform: uppercase;
        color: var(--text-light);
    }

    /* ── Detalle ronda a ronda (tabla) ── */
    /* Mismo aspecto que .standings-table-wrap (championship.css). */
    .season-table-wrap {
        background: linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        border: 1px solid rgba(255,255,255,0.05);
        border-radius: 16px;
        overflow: hidden;
    }

    .season-table {
        width: 100%;
        border-collapse: collapse;
        font-family: 'F1-Regular';
    }

    /* Tipografía alineada con la tabla de resultados del GP (.data-table):
       todo F1-Regular, celdas de datos a 16px, sin pesos negros ni tamaños dispares. */
    .season-table th,
    .season-table td {
        padding: 0 20px;
        text-align: left;
        vertical-align: middle;
        letter-spacing: 0.1px;
    }

    .season-table .is-center { text-align: center; }
    .season-table .is-right  { text-align: right; }

    /* Cabecera calcada de .data-table th (grandprix.css). */
    .season-table thead th {
        height: 44px;
        border-bottom: 1px solid rgba(255,255,255,0.04);
        font-family: 'F1-Regular';
        font-size: 14px;
        font-weight: 600;
        letter-spacing: 0.1px;
        text-transform: uppercase;
        color: rgba(255,255,255,0.35);
        background: var(--base-700);
        white-space: nowrap;
    }

    .season-table tbody tr {
        height: 46px;
        border-bottom: 1px solid rgba(255,255,255,0.04);
        transition: background .15s ease;
    }

    .season-table tbody tr:last-child { border-bottom: none; }
    .season-table tbody tr:hover { background: rgba(255,255,255,0.035); }

    .season-table tbody td,
    .season-table tbody th {
        font-family: 'F1-Regular';
        font-size: 16px;
    }

    .season-round-num {
        color: rgba(255,255,255,0.4);
        white-space: nowrap;
    }

    .season-round-name {
        font-weight: normal;
        color: var(--text-light);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 0;          /* deja que la celda ceda espacio antes que las demás */
        width: 100%;
    }

    /* En celular la columna GP muestra la abreviación (JPN) en vez del nombre
       completo, y el encabezado Points pasa a "Pts". */
    .season-round-name-code,
    .season-th-abbr { display: none; }

    /* Bandera del país del GP, mismo tamaño que en la tabla de resultados. */
    .season-round-flag {
        width: 18px;
        height: 18px;
        vertical-align: middle;
        margin-right: 8px;
        margin-bottom: 2px;
    }

    /* Largada y llegada viven en una sola celda: el recorrido entre las dos es
       el dato interesante, y la flecha lo hace visible de un vistazo.
       Los hijos van inline-block y no flex: un <td> con display:flex deja de ser
       table-cell y se despega de la altura de la fila. */
    .season-round-result {
        text-align: center;
        white-space: nowrap;
    }

    .season-round-grid {
        display: inline-block;
        vertical-align: middle;
        min-width: 32px;
        text-align: right;
        color: rgba(255,255,255,0.4);
    }

    .season-round-arrow {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        margin: 0 10px;
        width: 30px;
        height: 1px;
        background: rgba(255,255,255,0.18);
    }

    .season-round-arrow::after {
        content: '';
        position: absolute;
        right: 0;
        top: 50%;
        width: 5px;
        height: 5px;
        border-top: 1px solid rgba(255,255,255,0.35);
        border-right: 1px solid rgba(255,255,255,0.35);
        transform: translateY(-50%) rotate(45deg);
    }

    /* El color del resultado alcanza para jerarquizar; no hace falta un peso mayor. */
    .season-round-finish {
        display: inline-block;
        vertical-align: middle;
        min-width: 42px;
        text-align: left;
    }

    .season-round[data-outcome="p1"]     .season-round-finish { color: var(--gold, #e8b923); }
    .season-round[data-outcome="p2"]     .season-round-finish { color: var(--silver, #b8bcc4); }
    .season-round[data-outcome="p3"]     .season-round-finish { color: var(--bronze, #c97a3d); }
    .season-round[data-outcome="points"] .season-round-finish { color: #4fb3c9; }
    .season-round[data-outcome="none"]   .season-round-finish { color: var(--text-dim); }
    .season-round[data-outcome="dnf"]    .season-round-finish { color: #d9564f; }

    /* Mismo indicador que la tabla de resultados del GP: chevron verde/rojo
       hacia arriba o abajo, o un guión gris si no cambió de posición. */
    .res-delta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        font-family: 'F1-Bold';
        font-size: 12px;
        letter-spacing: 0.5px;
        white-space: nowrap;
    }

    .res-delta-arrow {
        width: 15px;
        height: 15px;
        flex-shrink: 0;
    }

    .res-delta--up   { color: #22c55e; }
    .res-delta--down { color: var(--primary-red); }

    .res-delta--same,
    .res-delta--none {
        color: rgba(255,255,255,0.2);
        font-family: 'F1-Regular', sans-serif;
        font-size: 14px;
        letter-spacing: 0;
    }

    .season-round-pts {
        color: var(--text-light);
        white-space: nowrap;
    }

    @media (max-width: 900px) {
        .season-band { grid-template-columns: 1fr 1fr; }
        .season-band-cell { border-bottom: 1px solid rgba(255,255,255,0.06); }
        .season-band-cell--progress,
        .season-band-cell--team { grid-column: 1 / -1; border-right: none; }
        .season-band-pos, .season-band-pts { font-size: 36px; }
        .season-form { padding: 20px 18px 18px; }
        .season-table th:first-child,
        .season-table td:first-child { padding-left: 16px; }
        .season-table th:last-child,
        .season-table td:last-child  { padding-right: 16px; }
    }

    @media (max-width: 700px) {
        .season-2026 { gap: 14px; }

        .season-band-cell { padding: 16px 16px; }
        .season-band-pos, .season-band-pts { font-size: 30px; }
        .season-band-key { font-size: 12px; }

        .season-form { padding: 16px 12px 14px; }
        .season-form-head { margin-bottom: 12px; gap: 6px 12px; }
        .season-form-title { font-size: 14px; }
        .season-form-legend { gap: 14px; }
        .season-form-legend-item { font-size: 11px; }
        .season-form-note { font-size: 12px; margin-top: 12px; }

        /* En celular se cae Round; la columna GP usa la abreviación. */
        .season-table-wrap { overflow-x: auto; }
        .season-col-round { display: none; }
        .season-round-name-full { display: none; }
        .season-round-name-code { display: inline; }
        .season-th-full { display: none; }
        .season-th-abbr { display: inline; }
        .season-round-name { max-width: none; width: auto; }

        .season-table th,
        .season-table td { padding: 0 8px; }
        .season-table th:first-child,
        .season-table td:first-child { padding-left: 14px; }
        .season-table th:last-child,
        .season-table td:last-child { padding-right: 14px; }
        .season-table thead th { font-size: 12px; }
        .season-table tbody td,
        .season-table tbody th { font-size: 14px; }
        .season-table tbody tr { height: 48px; }
        .season-round-name { font-size: 14px; letter-spacing: 0.5px; }
        .season-round-grid { min-width: 24px; }
        .season-round-arrow { width: 16px; margin: 0 7px; }
        .season-round-finish { min-width: 36px; font-size: 15px; }
        .season-round-pts { font-size: 15px; }
        .season-round-flag { width: 15px; height: 15px; margin-right: 6px; }
        .res-delta { font-size: 11px; }
        .res-delta-arrow { width: 12px; height: 12px; }
    }


    /* ══ CAREER STATS ══
       Un número solo no dice si es mucho o poco, así que cada cifra viene con su
       puesto entre los 120 pilotos y una tabla de posiciones que lo ubica. El
       lenguaje visual es de ranking y barras comparativas: no lo usa ninguna otra
       parte de la página. */
    .driver-career {
        /* --team-color lo setea driver-career.js con el color del equipo actual.
           --team-accent lo aclara ~22% para que sea legible sobre el fondo oscuro
           tanto en equipos oscuros (Red Bull) como muy claros (Haas). */
        --team-color: var(--primary-red);
        --team-accent: color-mix(in srgb, var(--team-color) 78%, white);
        display: flex;
        flex-direction: column;
        gap: 22px;
        margin-bottom: 96px;
    }

    .driver-career.is-empty { display: none; }

    /* ── Corona: títulos, o el mejor campeonato si no los hay ── */
    .career-crown {
        text-align: center;
    }

    .career-crown:empty { display: none; }

    .career-crown-label {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        margin: 0 0 18px;
        font-family: 'F1-Black';
        font-size: clamp(22px, 3vw, 34px);
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: var(--text-light);
    }

    .career-crown-laurel {
        width: 52px;
        height: 52px;
        object-fit: contain;
    }

    /* Sin títulos el encabezado baja de tono: es un dato, no una coronación. */
    .career-crown-label--modest {
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 16px;
        letter-spacing: 2px;
        color: var(--text-dim);
        gap: 8px;
        margin-bottom: 0;
    }

    .career-crown-label--modest strong {
        font-family: 'F1-Black';
        font-size: 30px;
        letter-spacing: 0.5px;
        color: var(--text-light);
    }

    .career-crown-label--modest span {
        font-family: 'F1-Regular';
        font-weight: 600;
        letter-spacing: 2px;
    }

    /* ══ CAMPEÓN DEL MUNDO ══
       Un título no es un número más en la fila: cuando el piloto lo tiene, la
       sección abre con un bloque dorado que se apropia de la pantalla. El resto
       de la página es oscura y contenida, así que el oro destaca solo. */
    .career-champion {
        position: relative;
        overflow: hidden;
        padding: 40px 32px 34px;
        border-radius: 14px;
        border: 1px solid rgba(232,199,122,0.22);
        background:
            radial-gradient(ellipse 70% 120% at 50% 0%, rgba(232,199,122,0.12) 0%, transparent 65%),
            linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        text-align: center;
    }

    /* Filo dorado arriba, como el borde de un trofeo. */
    .career-champion::before {
        content: '';
        position: absolute;
        top: 0; left: 0;
        width: 100%;
        height: 2px;
        background: linear-gradient(90deg, transparent 0%, #B78E3F 20%, #F5E0B5 50%, #B78E3F 80%, transparent 100%);
    }

    .career-champion-mark {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
    }

    .career-champion-laurel {
        width: clamp(56px, 7vw, 96px);
        height: clamp(56px, 7vw, 96px);
        object-fit: contain;
        opacity: 0.9;
    }

    /* El número es la pieza principal de toda la sección. */
    .career-champion-count {
        font-family: 'F1-Black';
        font-size: clamp(64px, 11vw, 128px);
        line-height: 0.9;
        letter-spacing: -2px;
        background: linear-gradient(135deg, #B78E3F, #F5E0B5, #B78E3F);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        filter: drop-shadow(0 4px 18px rgba(232,199,122,0.2));
    }

    .career-champion-count i {
        font-style: normal;
        font-size: 0.45em;
        letter-spacing: 0;
        margin-left: 2px;
    }

    .career-champion-title {
        margin: 6px 0 32px;
        font-family: 'F1-Black';
        font-size: clamp(24px, 3vw, 48px);
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--text-light);
    }

    /* ── Una tarjeta por título, con el detalle de esa temporada ── */
    .career-champion-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 14px;
    }

    .career-champion-year {
        --title-color: #E8C77A;
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 4px;
        min-width: 132px;
        padding: 18px 18px 16px;
        border-radius: 12px;
        border: 1px solid rgba(255,255,255,0.07);
        background: rgba(0,0,0,0.28);
        transition: transform .2s ease, border-color .2s ease;
    }

    .career-champion-year:hover {
        transform: translateY(-3px);
        border-color: rgba(232,199,122,0.35);
    }

    .career-champion-year:hover .career-champion-teamlogo {
        transform: translateY(-2px);
    }

    /* Barrita con el color del equipo con el que ganó ese título. */
    .career-champion-year::after {
        content: '';
        position: absolute;
        left: 50%;
        bottom: 0;
        width: 64px;
        height: 2px;
        transform: translateX(-50%);
        border-radius: 2px 2px 0 0;
        background: var(--title-color);
    }

    /* Logo del equipo con el que ganó ese título, arriba de la tarjeta. */
    .career-champion-teamlogo {
        height: 36px;
        width: auto;
        max-width: 96px;
        object-fit: contain;
        margin-bottom: 6px;
        padding-bottom: 8px;
        border-bottom: 1px solid rgba(255,255,255,0.08);
        transition: all .2s ease;
    }

    .career-champion-trophy {
        width: 80px;
        height: 80px;
        object-fit: contain;
        filter: drop-shadow(0 4px 12px rgba(0,0,0,0.5));
    }

    .career-champion-season {
        font-family: 'F1-Black';
        font-size: 26px;
        letter-spacing: 0.5px;
        background: linear-gradient(135deg, #B78E3F, #F5E0B5, #B78E3F);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    .career-champion-team {
        font-family: 'F1-Regular';
        font-size: 14px;
        font-weight: 600;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        color: var(--title-color);
    }

    .career-champion-detail {
        font-family: 'F1-Regular';
        font-size: 14px;
        letter-spacing: 0.3px;
        color: var(--text-dim);
    }

    /* ── Cifras con su puesto ── */
    .career-standing {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        background: linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        border: 1px solid rgba(255,255,255,0.06);
        border-radius: 12px;
        overflow: hidden;
    }

    .career-stat {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
        padding: 26px 18px;
        border-right: 1px solid rgba(255,255,255,0.05);
    }

    .career-stat:last-child { border-right: none; }

    .career-stat-value {
        font-family: 'F1-Black';
        font-size: clamp(30px, 4vw, 44px);
        line-height: 1;
        color: transparent;
        -webkit-text-stroke: 1.5px var(--text-light);   /* sólo el contorno, como las estadísticas del hero */
    }

    .career-stat-label {
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        letter-spacing: 1.5px;
        text-transform: uppercase;
        color: var(--text-dim);
        text-align: center;
    }

    /* El puesto es el dato nuevo, así que va destacado con el color del equipo. */
    .career-stat-rank {
        font-family: 'F1-Regular';
        font-size: 13px;
        font-weight: 600;
        letter-spacing: 0.5px;
        color: var(--team-accent);
    }

    .career-stat-rank i {
        font-family: 'F1-Regular';
        font-style: normal;
        font-size: 11px;
        letter-spacing: 0.5px;
        color: var(--text-dim);
    }

    /* ── Tabla de posiciones ── */
    .career-board-wrap {
        background: linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        border: 1px solid rgba(255,255,255,0.06);
        border-radius: 12px;
        padding: 24px 28px 20px;
    }

    .career-board-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 14px;
        margin-bottom: 18px;
    }

    .career-board-title {
        margin: 0;
        font-family: 'F1-Regular';
        font-size: 16px;
        letter-spacing: 1px;
        font-weight: 600;
        text-transform: uppercase;
        color: var(--text-light);
    }

    .career-board-tabs {
        position: relative;
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
    }

    /* Pastilla clara (--team-accent) que se desliza detrás de la pestaña
       activa; driver-career.js le copia posición y tamaño. Sin transición
       hasta .is-ready, así la primera vez aparece en su lugar. */
    .career-board-pill {
        position: absolute;
        z-index: 0;
        border-radius: 999px;
        background: var(--team-accent);
        pointer-events: none;
    }

    .career-board-pill.is-ready { transition: all 0.3s ease; }

    .career-board-tab {
        position: relative;
        z-index: 1;
        padding: 7px 15px;
        border: none;
        border-radius: 999px;
        background: transparent;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--text-dim);
        cursor: pointer;
        transition: all 0.3s ease;
    }

    .career-board-tab:hover { color: var(--text-light); }

    /* Texto oscuro sobre la pastilla clara: legible con cualquier color de
       equipo, incluidos los casi blancos. */
    .career-board-tab.is-active { color: var(--base-900); }

    .career-board {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .career-board.is-switching {
        animation: careerBoardSlideIn 0.4s ease;
    }

    @keyframes careerBoardSlideIn {
        from { opacity: 0; transform: translateX(var(--board-slide-x, 0px)); }
        to   { opacity: 1; transform: translateX(0); }
    }

    /* line-height 1 en las tres celdas de texto: el rank va a 14px y el nombre
       a 16px, y con el line-height heredado cada caja traía un aire distinto
       arriba y abajo, así que align-items:center centraba cajas de distinto
       alto y los glifos quedaban a distinta altura (el número flotaba por
       encima del nombre). Con la caja igual al cuerpo de la fuente, el centro
       de la caja es el centro del glifo y las tres columnas quedan en línea. */
    .career-board-row {
        display: grid;
        grid-template-columns: 34px minmax(90px, 190px) 1fr 68px;
        align-items: center;
        gap: 14px;
        height: 44px;
        font-family: 'F1-Regular';
        font-size: 16px;
        line-height: 1;
    }

    .career-board-rank {
        font-family: 'F1-Regular';
        font-size: 16px;
        font-weight: 600;
        line-height: 1;
        color: rgba(255,255,255,0.35);
        text-align: right;
    }

    .career-board-name {
        line-height: 1;
        color: var(--text-light);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* En pantallas chicas la columna no alcanza para "Michael Sch...", así que
       se corta directo al apellido en vez de truncarlo con ellipsis. */
    .career-board-name-last { display: none; }

    .career-board-bar {
        display: block;
        height: 8px;
        border-radius: 999px;
        background: rgba(255,255,255,0.06);
        overflow: hidden;
    }

    .career-board-bar > span {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: rgba(255,255,255,0.22);
        transition: width .5s cubic-bezier(.4,0,.2,1);
    }

    .career-board-value {
        line-height: 1;
        text-align: right;
        color: var(--text-light);
        white-space: nowrap;
    }

    /* La fila del piloto de la página se despega del resto, con su color de equipo. */
    .career-board-row.is-self .career-board-rank,
    .career-board-row.is-self .career-board-name,
    .career-board-row.is-self .career-board-value {
        color: var(--team-accent);
    }

    .career-board-row.is-self .career-board-name {
        font-family: 'F1-Regular';
        font-weight: 600;
    }

    .career-board-row.is-self .career-board-bar > span {
        background: var(--team-accent);
    }

    /* Corte visual cuando el piloto queda fuera del top mostrado. */
    .career-board-gap {
        height: 20px;
        display: grid;
        grid-template-columns: 34px 1fr;
        gap: 14px;
        align-items: center;
    }

    .career-board-gap span {
        grid-column: 1;
        justify-self: center;
        width: 2px;
        height: 12px;
        border-radius: 1px;
        background: repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.25) 0 2px,
            transparent 2px 4px
        );
    }

    .career-note {
        margin: 16px 0 0;
        padding-top: 14px;
        border-top: 1px solid rgba(255,255,255,0.06);
        font-family: 'F1-Regular';
        font-size: 13px;
        color: var(--text-dim);
    }

    .career-note b {
        font-family: 'F1-Bold';
        font-weight: normal;
        color: var(--text-light);
    }

    @media (max-width: 900px) {
        .career-standing { grid-template-columns: repeat(3, 1fr); }
        .career-stat:nth-child(3n) { border-right: none; }
        .career-stat:nth-child(n+4) { border-top: 1px solid rgba(255,255,255,0.05); }
        .career-champion-trophy { width: 60px; height: 60px; }
        .career-champion-year { min-width: 116px; padding: 14px 14px 12px; }
        .career-board-wrap { padding: 20px 18px 16px; }
    }

    @media (max-width: 700px) {
        .career-crown-laurel { width: 34px; height: 34px; }
        .career-champion { padding: 26px 14px 22px; }
        .career-champion-count { font-size: clamp(56px, 20vw, 96px); }
        .career-champion-title { font-size: clamp(17px, 5vw, 24px); letter-spacing: 2px; margin: 4px 0 20px; }
        .career-champion-list { gap: 10px; }
        .career-champion-year { flex: 1 1 calc(50% - 10px); min-width: 0; padding: 12px 10px 11px; }
        .career-champion-trophy { width: 52px; height: 52px; }
        .career-champion-teamlogo { height: 20px; }
        .career-champion-season { font-size: 22px; }

        .career-stat { padding: 18px 10px; }
        .career-stat-value { font-size: clamp(26px, 8vw, 40px); }
        .career-stat-rank { font-size: 12px; }

        .career-crown-label--modest { font-size: 12px; letter-spacing: 1px; gap: 6px; }
        .career-crown-label--modest span { letter-spacing: 1px; }
        .career-crown-label--modest strong { font-size: 22px; }

        .career-board-head { flex-direction: column; align-items: flex-start; }
        .career-board-title { font-size: 14px; }
        .career-board-tab { padding: 6px 12px; font-size: 11px; }
        .career-board-row {
            grid-template-columns: 24px minmax(68px, 1fr) 1fr 52px;
            gap: 9px;
            font-size: 13px;
        }
        .career-board-value { font-size: 13px; }

        .career-board-name-full { display: none; }
        .career-board-name-last { display: inline; }
    }


    /* ══ CAREER JOURNEY ══
       Una cinta con un casillero por año (la carrera entera de un vistazo) y un
       capítulo por equipo: bloque de identidad a la izquierda (se queda fijo al
       scrollear las etapas largas), cifras y los hitos en grilla de tarjetas.
       Los títulos usan el mismo dorado que el hero (#E8C77A). */
    .driver-bio {
        margin-bottom: 96px;
    }

    .driver-bio.is-empty { display: none; }

    /* ── Cinta de carrera ── */
    .jr-ribbon { margin-bottom: 56px; }

    .jr-ribbon-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 16px;
        margin-bottom: 18px;
    }

    .jr-ribbon-summary,
    .jr-ribbon-legend {
        margin: 0;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 15px;
        color: var(--text-dim);
    }

    .jr-ribbon-summary b {
        font-weight: inherit;
        color: var(--text-light);
    }

    .jr-ribbon-legend {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 12px;
        letter-spacing: 1px;
        text-transform: uppercase;
    }

    .jr-ribbon-legend i {
        width: 14px;
        height: 4px;
        border-radius: 2px;
        background: #E8C77A;
    }

    .jr-years {
        display: flex;
        gap: 3px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .jr-year {
        flex: 1 1 0;
        min-width: 0;
    }

    .jr-year i {
        display: block;
        height: 14px;
        background: var(--c);
        border-radius: 2px;
    }

    .jr-year.is-gap i {
        background: repeating-linear-gradient(90deg, rgba(255,255,255,0.14) 0 3px, transparent 3px 6px);
    }

    /* Título: marca dorada arriba del casillero y el año en dorado */
    .jr-year.is-title i { box-shadow: 0 -5px 0 -1px #E8C77A; }

    /* Sólo se rotula el año donde arranca cada equipo, y el último */
    .jr-year span {
        display: block;
        margin-top: 8px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 11px;
        white-space: nowrap;
        color: var(--text-dim);
        visibility: hidden;
    }

    .jr-year.is-start span,
    .jr-year:last-child span { visibility: visible; }

    .jr-year:last-child span { text-align: right; }

    .jr-year.is-title span { color: #E8C77A; }

    /* ── Capítulos por equipo ── */
    .jr-eras {
        display: flex;
        flex-direction: column;
        gap: 56px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .jr-era {
        --c: var(--primary-red);
        --ink: color-mix(in srgb, var(--c) 65%, white);   /* legible sobre oscuro */
        display: grid;
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 40px;
        align-items: start;
    }

    /* Bloque de identidad del equipo, sobre su color */
    .jr-era-id {
        position: sticky;
        top: 84px;
        padding: 24px 24px 26px;
        background: linear-gradient(160deg, color-mix(in srgb, var(--c) 24%, transparent) 0%, transparent 75%);
        border-left: 3px solid var(--c);
        border-radius: 0 10px 10px 0;
    }

    .jr-era-index {
        display: block;
        margin-bottom: 18px;
        font-family: 'F1-Black';
        font-size: 44px;
        line-height: 0.8;
        color: transparent;
        -webkit-text-stroke: 1.5px var(--ink);
    }

    .jr-era-logo {
        display: block;
        height: 34px;
        width: auto;
        max-width: 120px;
        margin-bottom: 14px;
        object-fit: contain;
    }

    .jr-era-team {
        margin: 0;
        font-family: 'F1-Black';
        font-size: 24px;
        line-height: 1.05;
        text-transform: uppercase;
        color: var(--text-light);
    }

    .jr-era-years {
        margin: 8px 0 0;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 13px;
        letter-spacing: 0.5px;
        color: var(--ink);
    }

    .jr-era-titles {
        display: inline-block;
        margin: 16px 0 0;
        padding: 5px 10px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 11px;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: #E8C77A;
        background: rgba(232,199,122,0.12);
        border: 1px solid rgba(232,199,122,0.3);
        border-radius: 4px;
    }

    /* Cifras: números de contorno, como en el hero y Career stats */
    .jr-stats {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
        margin: 0;
        padding-top: 6px;
    }

    .jr-stats div {
        padding: 0 20px;
        border-left: 1px solid rgba(255,255,255,0.08);
    }

    .jr-stats div:first-child {
        padding-left: 0;
        border-left: none;
    }

    .jr-stats dd {
        margin: 0;
        font-family: 'F1-Black';
        font-size: 34px;
        line-height: 1;
        color: transparent;
        -webkit-text-stroke: 1.5px var(--text-light);
    }

    .jr-stats dt {
        margin-top: 8px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 11px;
        letter-spacing: 1.5px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    /* Lectura secundaria (19%, 8.3 / race) en su propio renglón */
    .jr-stats dt span {
        display: block;
        margin-top: 3px;
        letter-spacing: 0.5px;
        white-space: nowrap;
        color: var(--ink);
    }

    /* Hitos en grilla de tarjetas */
    .jr-moments {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
        gap: 10px;
        margin: 28px 0 0;
        padding: 0;
        list-style: none;
    }

    .jr-moment {
        padding: 14px 16px 16px;
        background: linear-gradient(135deg, var(--base-700) 0%, var(--base-800) 100%);
        border: 1px solid rgba(255,255,255,0.06);
        border-top: 2px solid color-mix(in srgb, var(--c) 70%, transparent);
        border-radius: 8px;
        transition: all 0.2s ease;
    }

    .jr-moment:hover {
        transform: translateY(-2px);
        border-color: rgba(255,255,255,0.14);
    }

    .jr-moment-top {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 12px;
    }

    .jr-moment-label {
        margin: 0;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 11px;
        line-height: 1.4;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--text-dim);
    }

    .jr-moment-chip {
        flex-shrink: 0;
        padding: 3px 8px;
        font-family: 'F1-Regular';
        font-size: 12px;
        font-weight: 600;
        color: var(--text-light);
        background: rgba(255,255,255,0.08);
        border-radius: 4px;
    }

    .jr-moment-gp {
        margin: 0;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 16px;
        color: var(--text-light);
    }

    .jr-moment-flag {
        width: 18px;
        height: 18px;
        margin-right: 8px;
        vertical-align: -3px;
    }

    .jr-moment-date {
        margin: 6px 0 0;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 12px;
        color: var(--text-dim);
    }

    /* Victoria: la etiqueta se enciende y la ficha va en claro */
    .jr-moment[data-kind="win"] .jr-moment-label { color: var(--text-light); }

    .jr-moment[data-kind="win"] .jr-moment-chip {
        color: var(--base-900);
        background: var(--text-light);
    }

    /* Título: tarjeta dorada */
    .jr-moment[data-kind="title"] {
        background: linear-gradient(135deg, rgba(232,199,122,0.14) 0%, rgba(232,199,122,0.03) 100%);
        border-color: rgba(232,199,122,0.25);
        border-top-color: #E8C77A;
    }

    .jr-moment[data-kind="title"] .jr-moment-label { color: #E8C77A; }

    .jr-moment[data-kind="title"] .jr-moment-chip {
        color: var(--base-900);
        background: linear-gradient(135deg, #B78E3F, #F5E0B5, #B78E3F);
    }

    /* Récord histórico: violeta, el color de "lo mejor de todos" en F1.
       Igualarlo va más apagado que romperlo. */
    .jr-moment[data-kind="record"] {
        background: linear-gradient(135deg, rgba(168,85,247,0.16) 0%, rgba(168,85,247,0.03) 100%);
        border-color: rgba(168,85,247,0.28);
        border-top-color: #A855F7;
    }

    .jr-moment[data-kind="record"][data-record="equalled"] {
        background: linear-gradient(135deg, rgba(168,85,247,0.07) 0%, var(--base-800) 100%);
        border-top-style: dashed;
    }

    .jr-moment[data-kind="record"] .jr-moment-top { margin-bottom: 6px; }
    .jr-moment[data-kind="record"] .jr-moment-label { color: #C084FC; }

    .jr-moment-record {
        margin: 0 0 12px;
        font-family: 'F1-Regular';
        font-weight: 600;
        font-size: 14px;
        line-height: 1.35;
        color: var(--text-light);
    }

    .jr-moment-record span { color: #C084FC; }

    .jr-moment-note {
        margin: 8px 0 0;
        padding-top: 8px;
        border-top: 1px solid rgba(255,255,255,0.06);
        font-family: 'F1-Regular';
        font-size: 11px;
        line-height: 1.45;
        color: var(--text-dim);
    }

    .jr-moment-note + .jr-moment-note {
        margin-top: 2px;
        padding-top: 0;
        border-top: none;
    }

    @media (max-width: 900px) {
        .jr-era {
            grid-template-columns: minmax(0, 1fr);
            gap: 20px;
        }

        /* El bloque de identidad pasa a ser la cabecera del capítulo */
        .jr-era-id {
            position: static;
            display: grid;
            grid-template-columns: auto 1fr;
            align-items: center;
            column-gap: 16px;
            padding: 16px 18px;
        }
        .jr-era-index { grid-row: span 3; margin: 0; font-size: 36px; }
        .jr-era-logo { display: none; }
        .jr-era-team { font-size: 19px; }
        .jr-era-years { margin-top: 4px; font-size: 12px; }
        .jr-era-titles { justify-self: start; margin-top: 8px; }
    }

    @media (max-width: 700px) {
        .jr-ribbon { margin-bottom: 40px; }
        .jr-ribbon-head { flex-direction: column; gap: 8px; }
        .jr-ribbon-summary { font-size: 13px; }
        .jr-years { gap: 2px; }
        .jr-year i { height: 10px; }
        /* No entran todos los rótulos: sólo el primero y el último */
        .jr-year.is-start span { visibility: hidden; }
        .jr-year:first-child span,
        .jr-year:last-child span { visibility: visible; font-size: 10px; }

        .jr-eras { gap: 40px; }
        .jr-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
        .jr-stats div { padding: 0 12px; }
        .jr-stats div:nth-child(3n + 1) { padding-left: 0; border-left: none; }
        .jr-stats dd { font-size: 26px; }
        .jr-stats dt { font-size: 10px; letter-spacing: 1px; }
        .jr-moments { grid-template-columns: minmax(0, 1fr); margin-top: 22px; }
    }
    /* ── ANIMACIONES DE ENTRADA ──
       js/driver-reveal.js marca cada bloque con .reveal y data-reveal (la
       variante) apenas aparece, y le suma .is-in cuando entra en pantalla. Todos
       comparten la misma transición; lo único que cambia es la demora de la
       cascada (--delay). Al terminar, el script quita las clases y cada elemento
       vuelve a sus propias transiciones.
       La transición va sólo con .is-in: ocultar tiene que ser instantáneo, si
       no el paso a oculto también se anima y el elemento apenas se mueve. */
    .reveal.is-in {
        transition: all 0.7s ease;
        transition-delay: var(--delay, 0ms);
    }

    .reveal:not(.is-in) { opacity: 0; }

    .reveal[data-reveal="rise"]:not(.is-in)  { transform: translateY(28px); }
    .reveal[data-reveal="left"]:not(.is-in)  { transform: translateX(-36px); }
    .reveal[data-reveal="drop"]:not(.is-in)  { transform: translateY(-12px); }
    .reveal[data-reveal="pop"]:not(.is-in)   { transform: scale(0.9); }
    .reveal[data-reveal="zoom"]:not(.is-in)  { transform: scale(1.08); }

    /* Hero: el panel del equipo se despliega desde la izquierda, con la misma
       forma que tiene (cuatro puntos, así el navegador puede interpolarla) */
    .reveal[data-reveal="wipe"]:not(.is-in) {
        opacity: 1;
        clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    }

    /* Títulos de sección: el texto entra desde la izquierda y la línea roja se
       estira detrás */
    .reveal[data-reveal="title"]:not(.is-in) { transform: translateX(-24px); }

    .section-title.reveal.is-in::after {
        transform-origin: left center;
        transition: all 0.7s ease;
        transition-delay: var(--delay, 0ms);
    }

    .section-title.reveal:not(.is-in)::after { transform: scaleX(0); transform-origin: left center; }

    /* Barras que crecen desde 0: la de avance de la temporada y las del ranking
       all-time. El !important pisa el ancho que traen en línea. */
    .season-band-cell.reveal.is-in .season-band-progress-fill,
    .career-board-wrap.reveal.is-in .career-board-bar > span {
        transition: all 0.7s ease;
        transition-delay: var(--delay, 0ms);
    }

    .season-band-cell.reveal:not(.is-in) .season-band-progress-fill,
    .career-board-wrap.reveal:not(.is-in) .career-board-bar > span {
        width: 0 !important;
    }

    /* Con "reducir movimiento" activado driver-reveal.js no marca nada, así
       que la página aparece tal cual, sin animaciones. */
