/* Editorial profiles are deliberately separate from the driver archive and its statistics. */
.character-directory { margin:24px 0 32px; padding:24px; background:var(--cream); border-top:3px solid var(--gold); }
.character-directory header { margin-bottom:18px; }
.character-directory h2 { margin:4px 0 8px; font:700 28px/1.15 var(--display); }
.character-directory header p { margin:0; color:var(--ink-soft); font-size:13px; }
.character-directory__grid { display:grid; gap:14px; }
.character-card { display:grid; grid-template-columns:96px minmax(0,1fr) auto; align-items:center; gap:24px; padding:16px 20px; color:var(--ink); text-decoration:none; background:var(--paper); border:1px solid var(--line); }
.character-card:hover { border-color:var(--red); }
.character-card:focus-visible, .character-nav a:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.character-card > img { display:block; width:96px; height:96px; object-fit:cover; border-radius:50%; border:3px solid var(--cream); }
.character-card__body { display:grid; justify-items:start; gap:4px; min-width:0; }
.character-card__body > strong { font:700 27px/1.1 var(--display); }
.character-card__body > span:not(.character-badge) { font-size:12px; font-weight:700; color:var(--red); }
.character-card__body small { color:var(--ink-soft); font-size:12px; }
.character-card__link { font-size:12px; font-weight:800; color:var(--red); white-space:nowrap; }
.character-card__link > span { margin-left:14px; font-size:24px; vertical-align:middle; }
.character-badge { display:inline-flex; padding:4px 8px; background:#e7dcc6; color:#35432a; font:800 9px/1.4 var(--body); letter-spacing:.06em; text-transform:uppercase; }
.character-badge--light { background:#f4eddd; color:#28321f; }
.character-hero { padding:54px 0; background:var(--red); color:#fff; }
.character-hero__grid { display:grid; grid-template-columns:300px minmax(0,1fr); align-items:center; gap:52px; }
.character-portrait { display:block; width:300px; height:300px; object-fit:cover; border:5px solid var(--paper); border-radius:50%; box-shadow:0 12px 30px rgba(0,0,0,.15); }
.character-hero .back-link { color:var(--paper); display:inline-block; margin-bottom:24px; }
.character-hero__labels { display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
.character-hero .eyebrow { color:var(--gold); }
.character-hero h1 { margin:12px 0 8px; font:800 clamp(48px,6vw,82px)/1 var(--display); }
.character-hero__subtitle { font-size:17px; margin:0 0 18px; color:var(--paper); }
.character-hero__intro { max-width:660px; font-size:15px; margin:0 0 22px; color:#f4eddd; line-height:1.7; }
.character-hero__nation { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:12px; color:var(--paper); }
.character-hero__nation .nation-badge { color:inherit; }
.character-hero__nation .nation-flag { border-color:var(--paper); }
.character-content { padding-block:28px 72px; }
.character-nav { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 30px; }
.character-nav a { display:inline-block; padding:11px 16px; border:1px solid var(--line); background:var(--cream); color:var(--red); font-size:12px; font-weight:800; text-decoration:none; }
.character-nav a:hover { background:var(--paper-deep); }
.character-quote { margin:0 0 38px; padding:26px 32px; background:var(--cream); border-left:4px solid var(--gold); }
.character-quote p { margin:0 0 12px; max-width:1000px; font:600 clamp(23px,2.6vw,34px)/1.3 var(--display); color:var(--red); }
.character-quote cite { font:800 11px var(--body); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
.character-story-grid { display:grid; grid-template-columns:minmax(0,1fr) 310px; align-items:start; gap:48px; }
.character-biography h2, .character-career h2, .character-timeline h2 { margin:6px 0 22px; font:700 clamp(30px,3.4vw,44px)/1.1 var(--display); }
.character-biography h3 { margin:26px 0 10px; font:700 24px var(--display); }
.character-biography p { margin:0 0 16px; font-size:14px; color:var(--ink-soft); line-height:1.85; }
.character-facts { padding:26px; background:var(--cream); border-top:3px solid var(--gold); }
.character-facts h2 { margin:6px 0 22px; font:700 26px/1.15 var(--display); }
.character-facts dl { display:grid; gap:18px; margin:0; }
.character-facts dt { font:800 10px var(--body); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
.character-facts dd { margin:4px 0 0; font-size:13px; overflow-wrap:anywhere; }
.character-career { margin-top:44px; padding:28px; background:var(--cream); border-top:3px solid var(--gold); }
.character-career h2 { margin-bottom:12px; }
.character-career header p { max-width:840px; margin:0 0 24px; font-size:13px; color:var(--ink-soft); }
.character-career__stats { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin:0; background:var(--paper); border:1px solid var(--line); }
.character-career__stats > div { display:flex; flex-direction:column; padding:20px 18px; border-right:1px solid var(--line); min-width:0; }
.character-career__stats > div:last-child { border-right:0; }
.character-career__stats dt { font:800 10px var(--body); letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); }
.character-career__stats dd { margin:6px 0 0; font:800 42px/1.1 var(--display); color:var(--red); }
.character-timeline { margin-top:44px; }
.character-timeline ol { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.character-timeline li { display:grid; grid-template-columns:80px minmax(0,1fr); align-items:start; gap:24px; padding:20px 24px; background:var(--cream); border-left:3px solid var(--gold); }
.character-timeline__year { font:800 28px/1.2 var(--display); color:var(--red); }
.character-timeline h3 { margin:0 0 6px; font:700 22px/1.2 var(--display); }
.character-timeline p { margin:0; font-size:13px; color:var(--ink-soft); line-height:1.65; }
.character-disclosure { margin:30px 0 0; font-size:12px; color:var(--ink-soft); line-height:1.7; }
.character-profile [id] { scroll-margin-top:110px; }
@media (max-width:1000px) {
    .character-hero__grid { grid-template-columns:240px minmax(0,1fr); gap:32px; }
    .character-portrait { width:240px; height:240px; }
    .character-story-grid { grid-template-columns:minmax(0,1fr) 260px; gap:28px; }
    .character-facts { padding:22px; }
    .character-career__stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .character-career__stats > div { border-bottom:1px solid var(--line); }
    .character-career__stats > div:nth-child(3n) { border-right:0; }
    .character-career__stats > div:nth-last-child(-n+3) { border-bottom:0; }
}
@media (max-width:700px) {
    .character-directory { padding:18px; }
    .character-directory h2 { font-size:25px; }
    .character-card { grid-template-columns:72px minmax(0,1fr); gap:14px; padding:16px; }
    .character-card > img { width:72px; height:72px; }
    .character-card__body > strong { font-size:25px; }
    .character-card__link { grid-column:2; white-space:normal; }
    .character-card__body small { font-size:11px; }
    .character-hero { padding:28px 0 36px; }
    .character-hero__grid { grid-template-columns:1fr; gap:24px; }
    .character-portrait { width:210px; height:210px; justify-self:center; }
    .character-hero h1 { font-size:48px; }
    .character-hero__subtitle { font-size:15px; }
    .character-hero__intro { font-size:14px; }
    .character-hero__labels { gap:10px; }
    .character-story-grid { grid-template-columns:1fr; gap:24px; }
    .character-nav { gap:8px; }
    .character-nav a { padding:10px 12px; font-size:11px; }
    .character-quote { padding:20px; }
    .character-career { padding:20px; }
    .character-career__stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .character-career__stats > div { border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 16px; }
    .character-career__stats > div:nth-child(3n) { border-right:1px solid var(--line); }
    .character-career__stats > div:nth-child(2n) { border-right:0; }
    .character-career__stats > div:nth-last-child(-n+3) { border-bottom:1px solid var(--line); }
    .character-career__stats > div:nth-last-child(-n+2) { border-bottom:0; }
    .character-career__stats dd { font-size:36px; }
    .character-timeline li { grid-template-columns:56px minmax(0,1fr); padding:18px 16px; gap:16px; }
    .character-timeline__year { font-size:23px; }
    .character-timeline h3 { font-size:20px; }
}

.driver-card-character .driver-character-meta { grid-column:3 / -1; display:grid; justify-items:start; gap:6px; min-width:0; }
.driver-character-meta > small { color:var(--ink-soft); font-size:10px; }
.driver-card-character .character-badge { font-size:8px; }
@media (max-width:700px) {
    .driver-card.driver-card-character { grid-template-columns:54px minmax(0,1fr); }
    .driver-card-character .driver-character-meta { grid-column:2; }
}
