.athlete-profile{--race-red:#f1242f;--race-yellow:#ffd43b;--race-ink:#080b10;--race-panel:#141a23;background:#080b10;color:#fff;min-height:80vh}.athlete-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 72% 30%,#3b1520 0,transparent 35%),linear-gradient(125deg,#05070a,#151c27 62%,#260d13);isolation:isolate}.athlete-speed-lines{position:absolute;inset:0;opacity:.13;background:repeating-linear-gradient(115deg,transparent 0 85px,#fff 86px,#fff 87px,transparent 88px 170px);transform:skewX(-13deg);animation:athlete-lines 18s linear infinite;z-index:-1}.athlete-hero-grid{display:grid;grid-template-columns:minmax(300px,.85fr) 1.15fr;gap:clamp(2rem,6vw,7rem);align-items:center;min-height:610px;padding-top:4rem;padding-bottom:4rem}.athlete-portrait{position:relative;height:520px;overflow:hidden;border:1px solid #ffffff25;background:linear-gradient(160deg,#252d39,#0c1017);box-shadow:25px 28px 0 #f1242f1c}.athlete-portrait:after{content:"";position:absolute;inset:auto -20% -25% 20%;height:55%;background:var(--race-red);filter:blur(80px);opacity:.24}.athlete-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:saturate(1.08) contrast(1.05)}.athlete-portrait>span{display:grid;place-items:center;height:100%;color:#ffffff30;font-size:clamp(7rem,16vw,13rem);font-style:italic;font-weight:950}.portrait-number{position:absolute;left:1rem;bottom:1rem;border-left:5px solid var(--race-red);background:#080b10d9;padding:.55rem .8rem;font-weight:900;letter-spacing:.14em;z-index:2}.athlete-kicker{display:flex;align-items:center;gap:.7rem;color:#c8d0dc;font-size:.75rem;font-weight:900;letter-spacing:.2em}.athlete-kicker i{width:.75rem;height:.75rem;border-radius:50%;background:var(--race-red);box-shadow:0 0 0 .4rem #f1242f24;animation:athlete-pulse 1.6s infinite}.athlete-intro h1{max-width:900px;margin:.8rem 0;color:#fff;font-size:clamp(3.2rem,7.5vw,7.8rem);font-style:italic;font-weight:950;letter-spacing:-.07em;line-height:.82;text-transform:uppercase;overflow-wrap:normal;word-break:normal}.athlete-intro>p{max-width:720px;margin:1.5rem 0;color:#bbc3ce;font-size:1.05rem;line-height:1.75}.athlete-sports{display:flex;gap:.5rem;flex-wrap:wrap}.athlete-sports span{border:1px solid #ffffff35;border-left:4px solid var(--race-red);padding:.4rem .7rem;font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.athlete-location{color:#8f9aa9;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.athlete-share{display:inline-flex;align-items:center;gap:1.5rem;margin-top:1.5rem;border:1px solid var(--race-red);background:var(--race-red);color:#fff;padding:.75rem 1rem;font-weight:900;text-transform:uppercase;transition:transform .2s,box-shadow .2s}.athlete-share:hover{transform:translateY(-3px);box-shadow:0 12px 35px #f1242f55}.athlete-share b{font-size:1.3rem}.share-feedback{display:inline-block;margin-left:1rem;color:#aeb7c4;font-size:.75rem}.athlete-stats{border-block:1px solid #ffffff17;background:#0d1118}.athlete-stat-grid{display:grid;grid-template-columns:repeat(4,1fr)}.athlete-stat{position:relative;padding:2rem;border-right:1px solid #ffffff17}.athlete-stat:first-child{border-left:1px solid #ffffff17}.athlete-stat strong{display:block;color:#fff;font-size:clamp(2rem,4vw,4rem);font-style:italic;font-weight:950;line-height:1}.athlete-stat span{color:#909aa8;font-size:.65rem;font-weight:900;letter-spacing:.14em}.athlete-content{padding-top:5rem;padding-bottom:5rem}.athlete-section+.athlete-section{margin-top:5rem}.athlete-section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:1.5rem;border-bottom:3px solid var(--race-red);padding-bottom:1rem}.athlete-section-heading span{color:var(--race-red);font-size:.68rem;font-weight:950;letter-spacing:.16em}.athlete-section-heading h2{margin:.3rem 0 0;color:#fff;font-size:clamp(2rem,4vw,4rem);font-style:italic;font-weight:950;letter-spacing:-.045em;text-transform:uppercase}.athlete-section-heading>b{color:#828d9b;font-size:.65rem;letter-spacing:.12em}.athlete-podium-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.athlete-podium{position:relative;overflow:hidden;min-height:260px;border:1px solid #ffffff18;border-top:5px solid #8590a0;background:linear-gradient(145deg,#161d27,#0c1016);padding:1.4rem;transition:transform .25s,border-color .25s}.athlete-podium:hover{transform:translateY(-6px);border-color:#fff}.athlete-podium.podium-1{border-top-color:var(--race-yellow);background:linear-gradient(145deg,#181d25,#332b0f)}.athlete-podium.podium-2{border-top-color:#d7e0eb}.athlete-podium.podium-3{border-top-color:#d47739}.podium-rank{position:absolute;right:-.1rem;bottom:-1.2rem;color:#ffffff0c;font-size:9rem;font-style:italic;font-weight:950;line-height:1}.podium-event{display:flex;align-items:center;gap:1rem}.podium-event img{width:66px;height:52px;object-fit:contain;background:#fff;border-radius:3px;padding:4px}.podium-event span,.athlete-podium small{color:#9da7b5;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.podium-event h3{position:relative;margin:.25rem 0;color:#fff;font-size:1.3rem;font-weight:850}.podium-role{display:inline-block;margin:2rem 0 .75rem;background:var(--race-red);padding:.25rem .55rem;font-size:.62rem;font-weight:950;letter-spacing:.12em}.athlete-podium p{position:relative;color:#c7ced7}.athlete-timeline{display:grid;gap:.65rem}.athlete-result{display:grid;grid-template-columns:90px minmax(250px,1fr) 110px 150px;align-items:center;gap:1rem;border:1px solid #ffffff15;border-left:5px solid #303946;background:linear-gradient(90deg,#111720,#0c1016);padding:.8rem 1rem;transition:transform .2s,border-color .2s}.athlete-result:hover{transform:translateX(7px);border-left-color:var(--race-red)}.result-date{display:flex;flex-direction:column}.result-date strong{font-size:1.8rem;font-style:italic;line-height:1}.result-date span,.result-main>span,.result-position small{color:#8994a3;font-size:.62rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.result-main h3{margin:.2rem 0;font-size:1.15rem}.result-main a{color:#fff;text-decoration:none}.result-position{display:flex;flex-direction:column}.result-position strong{color:var(--race-yellow);font-size:1.55rem;font-style:italic}.result-value{text-align:right;color:#fff;font-size:1rem;font-weight:900;font-variant-numeric:tabular-nums}.athlete-empty{border:1px dashed #ffffff25;padding:3rem;color:#8994a3;text-align:center}.reveal-athlete{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.16,1,.3,1)}.reveal-athlete.is-visible{opacity:1;transform:none}@keyframes athlete-lines{to{background-position:1000px 0}}@keyframes athlete-pulse{50%{box-shadow:0 0 0 .8rem transparent}}@media(max-width:991px){.athlete-hero-grid{grid-template-columns:1fr;min-height:0}.athlete-portrait{height:430px}.athlete-podium-grid{grid-template-columns:1fr 1fr}.athlete-result{grid-template-columns:70px 1fr 80px}.result-value{grid-column:2/-1;text-align:left}.athlete-stat-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.athlete-hero-grid{padding-top:2rem}.athlete-portrait{height:360px}.athlete-intro h1{font-size:clamp(3rem,16vw,5rem)}.athlete-podium-grid{grid-template-columns:1fr}.athlete-result{grid-template-columns:58px 1fr 65px;padding:.7rem}.athlete-section-heading>b{display:none}.athlete-stat{padding:1.2rem}.athlete-stat strong{font-size:2.2rem}}@media(prefers-reduced-motion:reduce){.athlete-speed-lines,.athlete-kicker i{animation:none}.reveal-athlete{opacity:1;transform:none;transition:none}.athlete-podium,.athlete-result,.athlete-share{transition:none}}

/* Readable athlete headings and names */
.athlete-intro h1{letter-spacing:-.025em;line-height:.94}.athlete-section-heading h2{letter-spacing:-.015em;line-height:1.05}.podium-event h3,.result-main h3{letter-spacing:-.01em;line-height:1.2;overflow-wrap:normal;word-break:normal}.athlete-podium p,.athlete-result{line-height:1.45}
/* Full-size competitor portrait */
.athlete-photo-button{position:relative;z-index:1;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.athlete-photo-button img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.athlete-portrait:after{pointer-events:none}.athlete-photo-modal .modal-content{border:1px solid #ffffff2e;background:#090d13;color:#fff}.athlete-photo-modal .modal-header{border-bottom-color:#ffffff24}.athlete-photo-modal .modal-body{display:flex;justify-content:center;padding:0;background:#05070a}.athlete-photo-modal .modal-body img{display:block;max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain}

/* Competition vehicles */
.athlete-vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.athlete-vehicle-card{display:grid;grid-template-rows:220px 1fr;overflow:hidden;border:1px solid #ffffff1f;background:linear-gradient(145deg,#171e28,#0c1016);color:#fff;text-decoration:none;transition:transform .25s,border-color .25s}.athlete-vehicle-card:hover{transform:translateY(-6px);border-color:var(--race-red);color:#fff}.athlete-vehicle-image{display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#28313d,#111720)}.athlete-vehicle-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.athlete-vehicle-card:hover .athlete-vehicle-image img{transform:scale(1.04)}.athlete-vehicle-image span{color:#737e8c;font-size:.75rem;font-style:italic;font-weight:950;letter-spacing:.14em;text-align:center}.athlete-vehicle-copy{display:flex;flex-direction:column;padding:1.25rem}.athlete-vehicle-copy small,.athlete-vehicle-copy>b{color:var(--race-red);font-size:.66rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.athlete-vehicle-copy h3{margin:.5rem 0;color:#fff;font-size:1.55rem;font-style:italic;font-weight:950;text-transform:uppercase}.athlete-vehicle-copy p{min-height:1.5rem;margin-bottom:1rem;color:#9da7b5}.athlete-vehicle-copy>b{margin-top:auto}@media(max-width:991px){.athlete-vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.athlete-vehicle-grid{grid-template-columns:1fr}.athlete-vehicle-card{grid-template-rows:210px 1fr}}
