@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Inter:wght@400;500;600;700;800&display=swap');
:root{--red:#e10600;--red-dark:#b90000;--ink:#111;--ink-2:#202020;--paper:#f4f4f4;--white:#fff;--muted:#777;--line:#e2e2e2;--green:#1b9b62;--font:'Inter',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f7f7;color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,select{cursor:pointer}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:32px;min-height:76px;padding:0 clamp(18px,5vw,76px);background:#111;color:#fff;border-bottom:4px solid var(--red)}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0;font-weight:900;letter-spacing:.08em;font-size:18px;line-height:1.05}.brand-dot{color:var(--red)}.brand-logo{display:block;width:52px;height:42px;object-fit:contain;flex-shrink:0;}.brand small{display:block;font-size:8px;letter-spacing:.17em;color:#aaa;margin-top:5px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--red);font-family:var(--display);font-size:27px;font-weight:900;transform:skew(-8deg)}.top-nav{display:flex;align-items:stretch;gap:clamp(12px,2.3vw,32px);margin-left:auto;height:76px}.top-nav a{display:flex;align-items:center;border-bottom:3px solid transparent;margin-bottom:-3px;color:#c7c7c7;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.top-nav a:hover,.top-nav a.active{color:#fff;border-color:var(--red)}.menu-toggle{display:none;background:transparent;border:1px solid #555;color:#fff;padding:8px 11px;border-radius:4px}.page-shell{width:min(1240px,calc(100% - 40px));margin:0 auto}.hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;min-height:330px;margin:28px 0 42px;padding:clamp(28px,5vw,66px);background:var(--red);color:#fff;border-radius:5px}.hero:after{content:"";position:absolute;right:-7%;top:-40%;width:48%;height:190%;border:1px solid #ffffff26;transform:skew(-20deg);box-shadow:-35px 0 0 #ffffff08,-70px 0 0 #ffffff06;pointer-events:none}.home-hero h1,.page-intro h1{font-family:var(--display);font-size:clamp(48px,7vw,90px);line-height:.91;letter-spacing:-.015em;margin:12px 0 20px;font-weight:900}.home-hero h1 span,.page-intro h1 span{color:#171717}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin:0 0 8px;color:var(--red)}.hero .eyebrow{color:#fff}.hero-subtitle{max-width:520px;color:#ffe4e4;font-size:14px}.hero-actions,.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:12px 16px;border:1px solid transparent;border-radius:3px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button-light{background:#fff;color:#111}.button-outline{border-color:#ffffff80;color:#fff}.button-red{background:var(--red);color:#fff}.button-dark{background:#171717;color:#fff}.button-outline-dark{border-color:#ccc;color:#222;background:transparent}.hero-number{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;margin-left:20px;font-family:var(--display);line-height:.8}.hero-number span{font-size:clamp(32px,4vw,50px);font-weight:800}.hero-number b{font-size:clamp(100px,17vw,210px);letter-spacing:-.08em}.hero-number small{font-family:var(--font);font-size:10px;letter-spacing:.2em;margin-top:20px}.section-block{margin:0 0 46px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading h2,.settings-card h2{font-family:var(--display);font-size:clamp(25px,3vw,36px);line-height:1;margin:0;font-weight:800;text-transform:uppercase}.section-heading .eyebrow{margin-bottom:5px}.muted{color:var(--muted)}.text-link{color:var(--red);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.year-picker,.toolbar label{display:flex;align-items:center;gap:9px;color:#777;font-size:10px;font-weight:800;letter-spacing:.12em}.year-picker select,.toolbar select,.section-heading select{border:1px solid #d6d6d6;background:#fff;color:#111;border-radius:3px;padding:10px 30px 10px 12px;font-weight:700;font-size:12px;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#222 50%),linear-gradient(135deg,#222 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px;background-repeat:no-repeat}.notice{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);padding:12px 15px;margin:-20px 0 35px;font-size:12px;color:#555;border-left:3px solid var(--red)}.notice-dot{width:8px;height:8px;background:#999;border-radius:50%;flex-shrink:0}.notice.ok .notice-dot{background:var(--green)}.notice.error .notice-dot{background:var(--red)}.feature-card{display:flex;min-height:150px;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden}.feature-stripe{width:7px;background:var(--red);flex-shrink:0}.feature-content{padding:24px;flex:1}.feature-content h3{font-family:var(--display);font-size:31px;text-transform:uppercase;line-height:1;margin:0 0 8px}.feature-content p{margin:4px 0}.skeleton-line{height:12px;width:42%;margin:10px 0;background:#eee;border-radius:3px}.skeleton-line.wide{width:68%;height:24px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat-card{background:#fff;border:1px solid var(--line);padding:22px;min-height:150px;display:flex;flex-direction:column;align-items:flex-start;transition:border-color .15s}.stat-card:hover{border-color:var(--red)}.stat-icon{display:grid;place-items:center;width:32px;height:32px;background:#111;color:#fff;font-family:var(--display);font-weight:800;margin-bottom:17px}.stat-label{font-size:9px;font-weight:800;letter-spacing:.15em;color:var(--red)}.stat-card strong{font-family:var(--display);font-size:24px;text-transform:uppercase}.stat-card small{color:#777;font-size:11px}.race-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.race-card{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);padding:17px;min-height:100px;transition:border-color .15s,transform .15s}.race-card:hover{border-color:var(--red);transform:translateY(-2px)}.round-number{display:grid;place-items:center;width:42px;height:42px;background:#111;color:#fff;font-family:var(--display);font-size:22px;font-weight:800;flex-shrink:0}.race-card h3{font-family:var(--display);font-size:20px;line-height:1.05;margin:0 0 5px;text-transform:uppercase}.race-card p{font-size:11px;color:#777;margin:0}.race-arrow{margin-left:auto;color:var(--red);font-size:20px}.page-intro{padding:54px 0 30px;border-bottom:1px solid var(--line);margin-bottom:30px}.page-intro h1{font-size:clamp(45px,7vw,74px);margin-bottom:12px}.page-intro .muted{margin:0}.toolbar{display:flex;gap:18px;flex-wrap:wrap;margin-top:25px}.calendar-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:50px}.calendar-row{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);padding:17px}.calendar-date{width:62px;text-align:center;background:#f1f1f1;padding:8px 4px;flex-shrink:0}.calendar-date b{display:block;font-family:var(--display);font-size:27px;line-height:1}.calendar-date small{font-size:9px;text-transform:uppercase;font-weight:800;color:#777}.calendar-row h3{font-family:var(--display);font-size:21px;line-height:1.05;margin:0 0 5px;text-transform:uppercase}.calendar-row p{font-size:11px;color:#777;margin:0}.calendar-row .race-arrow{margin-left:auto}.table-wrap{width:100%;overflow-x:auto;background:#fff;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;text-align:left;min-width:560px}th{background:#171717;color:#fff;font-size:9px;letter-spacing:.12em;padding:13px 16px}td{padding:14px 16px;border-bottom:1px solid #eee;font-size:12px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fff8f8}.position{font-family:var(--display);font-size:20px;font-weight:800}.status-pill,.pill{display:inline-block;padding:5px 8px;background:#f2f2f2;color:#555;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-radius:2px}.live-indicator{font-size:9px;font-weight:800;letter-spacing:.1em;color:#777;white-space:nowrap}.live-indicator i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px}.empty-state{padding:26px;background:#fff;border:1px dashed #d7d7d7;color:#777;font-size:12px}.race-hero{min-height:230px;margin-bottom:32px}.race-hero h1{font-family:var(--display);font-size:clamp(44px,7vw,76px);line-height:.95;margin:10px 0}.hero-flag{font-family:var(--display);font-weight:900;font-size:clamp(24px,4vw,48px);line-height:.85;text-align:right;transform:skew(-7deg)}.breadcrumb{margin-top:26px;font-size:11px;color:#777;font-weight:700}.breadcrumb a:hover{color:var(--red)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.info-card{background:#fff;border:1px solid var(--line);padding:22px}.info-card h3{font-family:var(--display);font-size:25px;text-transform:uppercase;margin:0}.info-card p:last-child{color:#777;font-size:12px}.settings-layout{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:50px}.settings-card{background:#fff;border:1px solid var(--line);padding:24px;min-width:0}.settings-card h2{margin:0 0 12px}.settings-card .muted{font-size:12px}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.check-grid label,.check-row{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600}.check-grid input,.check-row input{accent-color:var(--red);width:16px;height:16px}.check-row{margin-top:18px}.text-input{width:100%;padding:12px;border:1px solid #d7d7d7;border-radius:3px;background:#fff;outline:none}.text-input:focus{border-color:var(--red)}.hint{font-size:10px;color:#888}.status-message{font-size:11px;color:#777}.status-message.error{color:var(--red)}.driver-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:50px}.driver-card{background:#fff;border:1px solid var(--line);padding:20px;border-top:4px solid var(--red)}.driver-card .number{font-family:var(--display);font-size:30px;font-weight:900;color:var(--red)}.driver-card h3{font-family:var(--display);font-size:25px;text-transform:uppercase;margin:0;line-height:1}.driver-card p{font-size:11px;color:#777}.site-footer{display:flex;justify-content:space-between;gap:15px;padding:22px clamp(20px,5vw,76px);background:#111;color:#999;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.site-footer span:first-child{color:#fff}.site-footer span:last-child{text-align:right}
@media(max-width:900px){.site-header{gap:14px}.top-nav{gap:14px}.top-nav a{font-size:9px}.race-grid,.driver-grid{grid-template-columns:repeat(2,1fr)}.hero-number b{font-size:130px}}
@media(max-width:680px){.site-header{min-height:68px;padding:0 18px;justify-content:space-between}.top-nav{display:none;position:absolute;top:68px;left:0;right:0;height:auto;background:#171717;padding:8px 18px 16px;flex-direction:column;gap:0;border-bottom:3px solid var(--red)}.top-nav.open{display:flex}.top-nav a{padding:13px 4px;border-bottom:1px solid #333;margin:0;font-size:11px}.menu-toggle{display:block}.page-shell{width:calc(100% - 28px)}.hero{margin:18px 0 32px;padding:27px 22px;min-height:300px}.hero-number{display:none}.home-hero h1{font-size:56px}.section-heading{align-items:flex-start;flex-direction:column}.year-picker{align-self:flex-start}.stats-grid,.race-grid,.calendar-list,.settings-layout,.driver-grid,.info-grid{grid-template-columns:1fr}.race-card{min-height:88px}.page-intro{padding-top:36px}.page-intro h1{font-size:52px}.toolbar{gap:12px}.hero-flag{font-size:28px}.race-hero{min-height:200px}.site-footer{flex-direction:column}.site-footer span:last-child{text-align:left}.feature-content{padding:18px}.settings-card{padding:19px}.button-row .button{flex:1}.section-block{margin-bottom:36px}}

/* Team directory and dedicated team profiles */
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 52px}.team-card{display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);padding:21px;min-height:205px;transition:transform .15s,border-color .15s}.team-card:hover{transform:translateY(-2px);border-color:var(--red)}.team-card-top{display:flex;justify-content:space-between;align-items:center}.team-index{display:grid;place-items:center;width:32px;height:32px;background:#111;color:#fff;font-family:var(--display);font-weight:900}.team-arrow{color:var(--red);font-size:20px}.team-card h2{font-family:var(--display);font-size:29px;line-height:1;text-transform:uppercase;margin:4px 0 0}.team-card p{font-size:11px;color:#777;margin:0}.team-driver-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 9px}.team-driver-chips span{background:#f0f0f0;padding:5px 8px;font-size:10px;font-weight:800}.team-profile-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:36px 0 30px;border-bottom:1px solid var(--line);margin-bottom:30px}.team-profile-hero h1{font-family:var(--display);font-size:clamp(44px,7vw,76px);line-height:.95;text-transform:uppercase;margin:8px 0 12px}.team-season{display:flex;align-items:center;gap:9px;color:#777;font-size:10px;font-weight:800;letter-spacing:.12em;white-space:nowrap}.team-season select{border:1px solid #d6d6d6;background:#fff;color:#111;border-radius:3px;padding:10px 30px 10px 12px;font-weight:700;font-size:12px;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#222 50%),linear-gradient(135deg,#222 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px;background-repeat:no-repeat}@media(max-width:900px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.team-grid{grid-template-columns:1fr}.team-profile-hero{align-items:flex-start;flex-direction:column}.team-profile-hero h1{font-size:48px}}

/* Driver profiles */
.driver-card-link{display:block;color:inherit;transition:transform .15s,border-color .15s}.driver-card-link:hover{border-color:var(--red);transform:translateY(-2px)}.driver-card-link .text-link{display:inline-block;margin-top:7px}.driver-profile-hero{display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:center;gap:28px;padding:35px 0 30px;border-bottom:1px solid var(--line);margin-bottom:30px}.driver-profile-photo{display:grid;place-items:center;width:160px;height:190px;overflow:hidden;background:#171717;color:#fff;border-bottom:6px solid var(--red);font-family:var(--display);font-size:42px;font-weight:900}.driver-profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}.driver-profile-heading h1{font-family:var(--display);font-size:clamp(42px,6vw,70px);line-height:.92;text-transform:uppercase;margin:8px 0 12px}.driver-profile-tags{display:flex;gap:8px;margin-top:18px}.driver-profile-tags span{padding:7px 10px;background:#111;color:#fff;font-size:10px;font-weight:900;letter-spacing:.08em}.driver-facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.driver-fact{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);padding:20px;min-height:100px}.driver-fact span{font-size:9px;font-weight:800;letter-spacing:.14em;color:var(--red);text-transform:uppercase}.driver-fact strong{font-family:var(--display);font-size:23px;line-height:1.1;text-transform:uppercase}.driver-profile-hero .team-season{align-self:start}@media(max-width:850px){.driver-profile-hero{grid-template-columns:120px minmax(0,1fr)}.driver-profile-photo{width:120px;height:150px}.driver-profile-hero .team-season{grid-column:2}.driver-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.driver-profile-hero{grid-template-columns:90px minmax(0,1fr);gap:15px}.driver-profile-photo{width:90px;height:120px}.driver-profile-heading h1{font-size:40px}.driver-profile-hero .team-season{grid-column:1/-1}.driver-facts-grid{grid-template-columns:1fr 1fr}.driver-fact{padding:14px}.driver-fact strong{font-size:20px}}

/* Driver biography improvements */
.driver-profile-photo img{object-fit:contain;object-position:center center;background:#171717;image-rendering:auto}
.helmet-gallery{margin-bottom:12px}.helmet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.helmet-card{display:block;background:#fff;border:1px solid var(--line);transition:transform .15s,border-color .15s}.helmet-card:hover{transform:translateY(-2px);border-color:var(--red)}.helmet-card img{display:block;width:100%;height:220px;object-fit:cover;background:#171717}.helmet-card div{padding:16px}.helmet-card .eyebrow{display:block;margin-bottom:5px}.helmet-card strong{font-family:var(--display);font-size:21px;text-transform:uppercase}@media(max-width:680px){.helmet-grid{grid-template-columns:1fr 1fr}.helmet-card img{height:160px}}

/* Session classification details */
.results-table{min-width:850px}.result-driver-link{color:#111;font-weight:800}.result-driver-link:hover,.result-team-link:hover{color:var(--red)}.result-team-link{font-size:12px;font-weight:700}.result-time{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.fastest-lap-badge,.fastest-point,.fastest-no-point{display:inline-block;margin-left:5px;padding:3px 5px;border-radius:2px;font-size:9px;font-weight:900;vertical-align:middle;white-space:nowrap}.fastest-lap-badge{background:#6b2bd9;color:#fff}.fastest-point{background:#e5f6e9;color:#12662c}.fastest-no-point{background:#eee;color:#666}.results-warning{margin:0;padding:10px 14px;border-top:1px solid #eee;color:#795b00;background:#fff8df;font-size:11px}.results-retry{margin-top:10px;padding:9px 12px}
/* Optional fan accounts and supporter badges */
.account-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 45px}.account-columns[hidden],.account-profile[hidden]{display:none!important}.account-form{display:grid;gap:16px;margin-top:20px}.account-form label{display:grid;gap:7px;font-size:11px;font-weight:800;letter-spacing:.04em;color:#444}.account-form label .muted{font-weight:500;letter-spacing:0}.account-form .button{justify-self:start}.account-profile{margin-bottom:50px}.account-profile .section-heading{align-items:center}.support-preview{padding:18px;background:#171717;color:#fff;border-left:4px solid var(--red)}.support-preview .eyebrow{color:#ff5a5a}.support-preview-content{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.support-name{font-weight:900;font-size:14px;letter-spacing:.03em}.support-driver-number,.header-driver-number{display:inline-grid;place-items:center;min-width:28px;height:27px;padding:0 5px;background:#fff;color:#111;border:2px solid var(--red);font-family:var(--display);font-weight:900;font-size:17px;line-height:1}.support-driver-label,.support-team-label{font-size:11px;color:#ddd}.support-team-mark,.header-team-mark{display:inline-grid;place-items:center;min-width:35px;height:25px;padding:0 5px;background:var(--team-colour,#e10600);color:#fff;border-radius:2px;font-family:var(--display);font-size:10px;font-weight:900;letter-spacing:.03em;border:1px solid #ffffff55}.support-empty{font-size:11px;color:#aaa}.header-support{display:flex!important;align-items:center;gap:5px;margin-left:12px;white-space:nowrap;color:#fff!important;border-bottom:0!important}.header-username{font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:none}.header-driver-number{min-width:23px;height:22px;font-size:13px}.header-team-mark{min-width:29px;height:22px;font-size:8px}.header-support:hover .header-username{color:#ffb2b2}.status-message{overflow-wrap:anywhere}
@media(max-width:680px){.account-columns{grid-template-columns:1fr}.header-support{margin:0!important;padding:13px 4px!important;border-top:1px solid #333!important;justify-content:flex-start}.account-profile .section-heading{align-items:flex-start}}

/* Restored cinematic race banner styling. Original supplied photographs remain unmodified. */
.race-hero {
  --race-banner-image: linear-gradient(125deg, #d90000 0%, #5b0000 58%, #190000 100%);
  position: relative; isolation: isolate; min-height: clamp(230px, 23vw, 300px);
  margin: 28px 0 42px; padding: clamp(26px, 5vw, 64px); border-radius: 5px;
  background-color: #270000;
  background-image: linear-gradient(90deg, rgba(48,0,0,.99) 0%, rgba(50,0,0,.98) 23%, rgba(35,0,0,.94) 34%, rgba(25,0,0,.82) 43%, rgba(12,0,0,.36) 52%, rgba(0,0,0,.20) 100%), var(--race-banner-image);
  background-size: cover; background-position: center 54%; box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.race-hero > div,.race-hero > .hero-flag { position: relative; z-index: 1; }
.race-hero h1 { max-width: 850px; font-family: var(--display); font-size: clamp(38px,5.4vw,72px); line-height: .96; letter-spacing: -.025em; text-shadow: 0 2px 16px rgba(0,0,0,.24); }
.race-hero .eyebrow { letter-spacing: .18em; font-size: 10px; color: #fff; }
.race-hero .hero-subtitle { color: rgba(255,255,255,.94); font-size: clamp(12px,1.1vw,15px); text-shadow: 0 1px 8px rgba(0,0,0,.35); }
.race-hero .hero-flag { flex: 0 0 auto; margin-left: 24px; padding-left: clamp(10px,2vw,26px); border-left: 5px solid var(--red); font-size: clamp(22px,3vw,42px); line-height: .88; text-shadow: 0 2px 12px rgba(0,0,0,.4); }
.race-hero:after { z-index: 0; right: 35%; width: 8%; opacity: .35; }
@media(max-width:700px) { .race-hero { min-height:240px; align-items:flex-end; gap:14px; padding:24px 20px; background-position:center center; } .race-hero h1 { font-size:clamp(34px,8vw,52px); } .race-hero .hero-flag { font-size:18px; border-left-width:3px; margin-left:0; padding-left:10px; } }
@media(max-width:460px) { .race-hero { display:block; } .race-hero .hero-flag { display:inline-block; margin-top:14px; } }
/* Account layout safety: always keep the signed-out registration and sign-in forms visible. */
#auth-panel:not([hidden]) { display:grid; }
#profile-panel[hidden],#auth-panel[hidden] { display:none !important; }

/* Reusable red punctuation for page titles, including future pages. */
.title-period{color:var(--red)!important;}


/* Preferences page supporter preview: compact artwork with no intrinsic-size overflow. */
.support-preview { overflow: hidden; }
.support-preview-content { display:flex; align-items:center; gap:10px; min-height:34px; flex-wrap:wrap; }
.support-preview-content > * { flex: 0 0 auto; }
.support-driver-number {
  display:inline-flex; align-items:center; justify-content:center;
  width:43px; min-width:43px; height:29px; padding:2px 5px;
  overflow:hidden; background:var(--team-colour,#e10600); color:#fff;
  border:0; border-left:3px solid #fff; border-radius:0;
  clip-path:polygon(16% 0,100% 0,88% 100%,0 100%);
  line-height:1; transform:none;
}
.support-driver-number .driver-number-art {
  display:block; width:100%; max-width:32px; height:22px; max-height:22px;
  object-fit:contain; object-position:center; transform:none; filter:none;
}
.support-driver-number.number-art-fallback { font-family:var(--display); font-size:19px; font-weight:900; }
.support-team-logo {
  display:block; width:34px; max-width:34px; height:24px; max-height:24px;
  object-fit:contain; object-position:center; background:transparent;
  border:0; border-radius:0; padding:0; flex:0 0 34px;
}
.support-name { flex:0 0 auto; }
@media(max-width:680px) {
  .support-preview-content { gap:7px; }
  .support-driver-number { width:38px; min-width:38px; height:26px; }
  .support-driver-number .driver-number-art { max-width:28px; height:20px; max-height:20px; }
  .support-team-logo { width:30px; max-width:30px; height:22px; max-height:22px; flex-basis:30px; }
}


/* Account menu and supporter badge layout safeguards.
   Explicit dimensions prevent remote SVG/PNG artwork from using its intrinsic size. */
.top-nav { align-items: center; }
.account-nav-holder {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  margin-left: 8px;
  z-index: 120;
}
.account-nav-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  max-width: 300px;
  padding: 6px 9px;
  border: 1px solid #555;
  border-radius: 4px;
  background: #111;
  color: #fff;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}
.account-nav-trigger:hover,
.account-nav-trigger:focus-visible { border-color: #fff; outline: none; }
.account-nav-trigger .header-username { display: inline-block; max-width: 120px; overflow: hidden; text-overflow: ellipsis; }
.account-nav-trigger .header-driver-number {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px;
  height: 24px !important;
  max-height: 24px;
  padding: 2px 4px;
  overflow: hidden;
  box-sizing: border-box;
  background: var(--driver-colour, var(--red));
  color: #fff;
  border: 0;
  clip-path: polygon(16% 0,100% 0,88% 100%,0 100%);
}
.account-nav-trigger .driver-number-art {
  display: block !important;
  width: 25px !important;
  min-width: 0 !important;
  max-width: 25px !important;
  height: 18px !important;
  max-height: 18px !important;
  object-fit: contain;
  object-position: center;
}
.account-nav-trigger .header-team-logo {
  display: block !important;
  width: 27px !important;
  min-width: 0 !important;
  max-width: 27px !important;
  height: 20px !important;
  max-height: 20px !important;
  object-fit: contain;
  object-position: center;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  flex: 0 0 27px;
}
.account-nav-caret { display: inline-block; color: #fff; font-size: 13px; line-height: 1; margin-left: 2px; }
.account-nav-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 1000;
  width: 205px;
  padding: 7px 0;
  background: #171717;
  border-top: 3px solid var(--red);
  box-shadow: 0 12px 28px #0004;
}
.account-nav-menu[hidden] { display: none !important; }
.account-nav-menu a,
.account-nav-menu button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 39px;
  padding: 9px 14px;
  border: 0;
  background: transparent;
  color: #fff;
  text-decoration: none;
  text-align: left;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.account-nav-menu a:hover,
.account-nav-menu button:hover,
.account-nav-menu a:focus-visible,
.account-nav-menu button:focus-visible { background: #303030; color: #fff; outline: none; }
.account-nav-menu svg { width: 15px; height: 15px; flex: 0 0 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-nav-menu button:disabled { opacity: .65; cursor: wait; }

@media (max-width: 680px) {
  .account-nav-holder { width: 100%; margin: 0; }
  .account-nav-trigger { margin: 5px 0; }
  .account-nav-menu { right: auto; left: 0; }
}

/* Full-height white leading stripe: cover the plate's entire left edge so no team colour peeks through. */
.support-driver-number,
.account-nav-trigger .header-driver-number {
  position: relative;
  border-left: 0 !important;
}
.support-driver-number::before,
.account-nav-trigger .header-driver-number::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  width: auto;
  height: auto;
  background: #fff;
  transform: none;
  clip-path: polygon(16% 0, 27% 0, 12% 100%, 0 100%);
  pointer-events: none;
}

/* Driver and team directory enhancements */
.toolbar { align-items: end; flex-wrap: wrap; gap: 14px; }
.directory-search-label { display:flex; flex-direction:column; gap:7px; min-width:min(320px,100%); color:#555; font-size:10px; font-weight:900; letter-spacing:.1em; }
.directory-search { width:100%; min-height:40px; padding:10px 12px; border:1px solid #d6d6d6; border-radius:3px; background:#fff; color:#111; font:600 12px var(--body,Arial,sans-serif); letter-spacing:normal; outline:none; }
.directory-search:focus { border-color:var(--red); box-shadow:0 0 0 2px #e106001a; }
.driver-card .driver-number-badge { display:inline-grid; place-items:center; width:max-content; min-width:38px; height:34px; padding:0 8px; margin:0 0 12px; background:var(--driver-team-colour,#e10600); color:#fff; border:1px solid var(--driver-team-colour,#e10600); border-radius:2px; font-family:var(--display); font-size:20px; font-weight:900; line-height:1; }
.driver-card-link { display:block; text-decoration:none; color:inherit; }
.driver-card-link:hover { transform:translateY(-2px); border-color:var(--driver-team-colour,#e10600); }
.team-card-heading { display:flex; align-items:center; gap:13px; min-height:48px; }
.team-card-heading h2 { min-width:0; }
.team-card-logo { display:block; width:54px; height:44px; object-fit:contain; flex:0 0 54px; }
@media(max-width:680px) {
  .directory-search-label { min-width:100%; }
  .team-card-logo { width:44px; height:38px; flex-basis:44px; }
}

/* Keep the footer at the bottom of the viewport on pages with little content. */
html, body { min-height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; }
body > .site-header { flex: 0 0 auto; }
body > main { flex: 1 0 auto; }
body > .site-footer { flex: 0 0 auto; margin-top: auto; }

/* Driver directory uses the official number artwork used by the favourite-driver badge. */
.driver-card .driver-number-plate {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  width: 42px;
  min-width: 42px;
  max-width: 42px;
  height: 30px;
  max-height: 30px;
  margin: 0 0 12px;
  padding: 2px 4px;
  overflow: hidden;
  box-sizing: border-box;
  background: var(--driver-colour, var(--red));
  color: #fff;
  border: 0;
  clip-path: polygon(16% 0,100% 0,88% 100%,0 100%);
  font-family: var(--display);
  font-size: 19px;
  font-weight: 900;
  line-height: 1;
}
.driver-card .driver-number-plate.number-art-white-fill .driver-number-fill {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 0;
  color: #fff;
  font-family: var(--display);
  font-size: 16px;
  font-style: italic;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -1px;
  transform: skew(-4deg);
  pointer-events: none;
}
.driver-card .driver-number-plate.number-art-white-fill .driver-number-art {
  position: relative;
  z-index: 1;
}
.driver-card .driver-number-plate .driver-number-art {
  display: block;
  width: 30px;
  min-width: 0;
  max-width: 30px;
  height: 22px;
  max-height: 22px;
  object-fit: contain;
  object-position: center;
}
.driver-card .driver-number-plate.number-art-fallback { color:#fff; }
.driver-card .number { display:none; }

/* Close the tiny coloured sliver at the lower-left edge of the favourite badge. */
.support-driver-number::before,
.account-nav-trigger .header-driver-number::before {
  clip-path: polygon(16% 0, 29% 0, 13% 100%, 0 100%);
}

/* Improve contrast on light team colours (especially Mercedes teal) by reinforcing
   the official driver-number artwork's dark outline without changing its shape. */
.driver-card .driver-number-plate .driver-number-art {
  filter: drop-shadow(0 0 0.35px #000) drop-shadow(0 0 0.35px #000);
}
.support-driver-number .driver-number-art,
.account-nav-trigger .header-driver-number .driver-number-art {
  filter: drop-shadow(0 0 0.35px #000) drop-shadow(0 0 0.35px #000);
}

/* Championship standings tables */
.standings-table-wrap { overflow-x: auto; }
.standings-table { width: 100%; border-collapse: collapse; background: #fff; }
.standings-table thead { background: #171717; color: #fff; }
.standings-table th { padding: 15px 14px; text-align: left; font-size: 10px; font-weight: 900; letter-spacing: .09em; white-space: nowrap; }
.standings-table td { padding: 15px 14px; border-bottom: 1px solid #e8e8e8; font-size: 14px; }
.standings-table tbody tr:last-child td { border-bottom: 0; }
.standings-table tbody tr:hover { background: #fafafa; }
.standings-table .position-cell { width: 78px; }
.position-number { position: relative; z-index: 0; display: inline-flex; min-width: 28px; min-height: 30px; align-items: center; justify-content: center; padding: 0 7px; font-weight: 900; font-size: 16px; }
.position-number::before { content: ''; position: absolute; inset: 2px 0; z-index: -1; background: transparent; transform: skew(-12deg); }
.position-number.gold::before { background: #d9ad27; }
.position-number.silver::before { background: #b8bec6; }
.position-number.bronze::before { background: #b8794b; }
.position-number.gold, .position-number.bronze { color: #111; }
.position-number.silver { color: #111; }
.competitor-name { font-weight: 800; }
.driver-number { display: inline-block; min-width: 45px; margin-right: 12px; color: #e10600; font-weight: 900; }
.gap-cell { white-space: nowrap; font-variant-numeric: tabular-nums; color: #5f5f5f; }
@media (max-width: 640px) {
  .standings-table th, .standings-table td { padding: 12px 9px; }
  .standings-table th { font-size: 9px; }
  .standings-table td { font-size: 12px; }
  .driver-number { min-width: 32px; margin-right: 6px; }
}


/* Championship Hub card layout: keep trophy artwork beside its labels. */
.championship-hub .stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.championship-hub .championship-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(16px, 2.5vw, 30px);
  min-width: 0;
  min-height: 230px;
  padding: clamp(18px, 2.5vw, 30px);
  background: #fff;
  border: 1px solid var(--line);
  transition: border-color .15s, transform .15s;
}
.championship-hub .championship-card:hover {
  border-color: var(--red);
  transform: translateY(-2px);
}
.championship-hub .trophy-image {
  display: block;
  width: clamp(100px, 13vw, 150px);
  height: clamp(135px, 17vw, 190px);
  flex: 0 0 auto;
  object-fit: contain;
  object-position: center;
}
.championship-hub .championship-copy {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
}
.championship-hub .championship-copy .stat-label {
  display: block;
  line-height: 1.3;
}
.championship-hub .championship-copy strong {
  display: block;
  font-family: var(--display);
  font-size: clamp(22px, 2.4vw, 31px);
  line-height: 1;
  text-transform: uppercase;
}
@media (max-width: 760px) {
  .championship-hub .stats-grid { grid-template-columns: 1fr; }
  .championship-hub .championship-card { min-height: 190px; }
  .championship-hub .trophy-image { width: 105px; height: 145px; }
}
@media (max-width: 420px) {
  .championship-hub .championship-card { gap: 14px; padding: 15px; }
  .championship-hub .trophy-image { width: 82px; height: 125px; }
  .championship-hub .championship-copy strong { font-size: 21px; }
}


/* PADDOCK.GURU calendar refresh */
.calendar-list { gap: 15px; }
.calendar-row {
  position: relative;
  min-height: 116px;
  gap: 17px;
  padding: 18px 20px 18px 16px;
  overflow: hidden;
  border: 1px solid #dedede;
  border-radius: 3px;
  box-shadow: 0 2px 7px rgba(0,0,0,.025);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.calendar-row::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--red);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .18s ease;
}
.calendar-row:hover {
  transform: translateY(-3px);
  border-color: #c9c9c9;
  box-shadow: 0 9px 22px rgba(0,0,0,.075);
}
.calendar-row:hover::before { transform: scaleY(1); }
.calendar-date {
  width: 66px;
  min-height: 76px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 8px 4px;
  background: linear-gradient(145deg,#f4f4f4,#eaeaea);
  border-radius: 2px;
}
.calendar-date b { font-size: 30px; }
.calendar-date small { font-size: 10px; letter-spacing: .08em; }
.calendar-date-year { color: #999; font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.calendar-event-copy { min-width: 0; flex: 1; }
.calendar-event-kicker {
  margin-bottom: 3px;
  color: #777;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .17em;
}
.calendar-row h3 { margin-bottom: 7px; font-size: 23px; }
.calendar-row .calendar-location {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 2px;
  color: #555;
  font-size: 11px;
}
.calendar-flag {
  display: inline-block;
  width: 24px;
  height: 16px;
  min-width: 24px;
  object-fit: cover;
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,.18);
  vertical-align: middle;
}
.calendar-flag-fallback {
  display: inline-flex;
  width: 24px;
  min-width: 24px;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
}
.calendar-row .calendar-full-date { color: #888; font-size: 10px; }
.calendar-row .race-arrow { align-self: center; flex-shrink: 0; transition: transform .18s ease; }
.calendar-row:hover .race-arrow { transform: translate(3px,-3px); }
.calendar-row.testing-event { background: linear-gradient(110deg,#fff 0%,#fff 72%,#f7f7f7 100%); }
.calendar-row.testing-event .calendar-date { background: #ededed; }
.calendar-row.testing-event .calendar-event-kicker { color: #a66a00; }
@media (max-width: 760px) {
  .calendar-list { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 420px) {
  .calendar-row { min-height: 104px; gap: 12px; padding: 14px 13px; }
  .calendar-date { width: 57px; min-height: 70px; }
  .calendar-date b { font-size: 26px; }
  .calendar-row h3 { font-size: 20px; }
}

/* Consistent slim scrollbar across the entire site */
:root { scrollbar-color: #e10600 #e5e5e5; scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #e7e7e7; }
::-webkit-scrollbar-thumb {
  background: #b8b8b8;
  border: 2px solid #e7e7e7;
  border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover { background: #e10600; }
::-webkit-scrollbar-corner { background: #e7e7e7; }

/* Curated 2026 driver portraits: shoulder-up crop, transparent source on the profile panel */
.driver-profile-photo img.curated-driver-photo{object-fit:contain;object-position:center top;width:100%;height:100%;}

/* Favourite hearts on driver and team directory cards */
.driver-card-link,.team-card{position:relative}
.driver-card-content,.team-card-content{display:block;color:inherit;text-decoration:none;flex:1}
.driver-card-content .text-link,.team-card-content .text-link{display:inline-block;margin-top:7px}
.favourite-heart{position:absolute;top:13px;right:14px;z-index:3;width:34px;height:34px;padding:6px;border:0;background:transparent;color:#111;display:grid;place-items:center;cursor:pointer;border-radius:50%;transition:color .15s,background .15s,transform .15s}
.favourite-heart svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.favourite-heart:hover{background:#f1f1f1;transform:scale(1.08)}
.favourite-heart.is-favourite{color:#e10600}
.favourite-heart.is-favourite svg{fill:#e10600;stroke:#e10600}
.favourite-heart:disabled{opacity:.55;cursor:wait}
.driver-card-content{padding-top:0}
.team-card-content{display:flex;flex-direction:column;gap:9px}
.team-card-content .team-card-heading{display:flex;align-items:center;gap:14px}
.team-card-content h2{margin:4px 0 0}

/* Integrated account notification preferences */
.notification-settings{border-top:1px solid var(--line);margin-top:30px;padding-top:28px}.notification-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.notification-heading h2{font-family:var(--display);font-size:34px;text-transform:uppercase;margin:0 0 6px}.notification-heading .muted{margin:0}.notification-device{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;background:#f6f6f6;border-left:4px solid var(--red);margin-bottom:12px}.notification-device strong{font-size:13px}.notification-device .hint{display:block;margin:5px 0 0}.notification-device .check-row{margin:0;white-space:nowrap}.notification-preference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.notification-option{border:1px solid var(--line);padding:20px;min-width:0}.notification-option h3{font-family:var(--display);font-size:25px;text-transform:uppercase;margin:0 0 8px}.notification-option .check-grid{margin-bottom:15px}.notification-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:310px;overflow:auto;padding-right:5px}.notification-save-row{justify-content:flex-end;margin-top:18px}.status-message.ok{color:#267346}@media(max-width:680px){.notification-heading,.notification-device{align-items:flex-start;flex-direction:column}.notification-preference-grid{grid-template-columns:1fr}.notification-device .check-row{white-space:normal}.notification-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Footer separators between policy links and attribution items. */
.site-footer>span:last-child{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:0}
.site-footer>span:last-child>a,
.site-footer>span:last-child>span{display:inline-flex;align-items:center}
.site-footer>span:last-child>a+a::before,
.site-footer>span:last-child>span::before{content:"·";color:#e10600;margin:0 10px;font-weight:900}
@media(max-width:680px){.site-footer{flex-direction:column;align-items:flex-start}.site-footer>span:last-child{justify-content:flex-start;text-align:left!important}}
