.grand-prix-hero{position:relative;display:grid;grid-template-columns:minmax(15rem,.85fr) minmax(23rem,1.3fr);gap:.85rem 1.35rem;align-items:center;overflow:hidden;padding:1rem 1.25rem 1.15rem;border-color:rgb(var(--c-bronze)/.14);border-radius:1.55rem;--flavour-tint:rgb(var(--c-gold)/0.18);--flavour-ink:var(--primary-strong);background:linear-gradient(135deg,rgb(var(--c-surface)/.95),rgb(var(--c-warm-wash-2)/.9)),radial-gradient(circle at 85% 18%,var(--flavour-tint),transparent 42%);box-shadow:0 22px 54px rgb(var(--c-ink)/.1),inset 0 1px 0 rgb(var(--c-surface)/.92)}.grand-prix--rookie{--flavour-tint:rgb(var(--c-green-strong)/0.22);--flavour-ink:rgb(var(--c-green-mid))}.grand-prix--contender{--flavour-tint:rgb(var(--c-blue)/0.2);--flavour-ink:rgb(var(--c-blue-deep))}.grand-prix--champion{--flavour-tint:rgb(var(--c-red-soft)/0.22);--flavour-ink:rgb(var(--c-red))}.grand-prix-hero__intro{display:grid;gap:.3rem;min-width:0}.grand-prix-hero__eyebrow{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--flavour-ink)}.grand-prix-hero__eyebrow>svg{width:1rem;height:1rem}.grand-prix-hero__flavour{padding:.16rem .6rem;border-radius:999px;background:var(--flavour-tint);color:var(--flavour-ink);letter-spacing:.08em}.grand-prix-hero h1{margin:0;font-size:clamp(1.15rem,1.35vw,1.32rem);font-weight:750;line-height:1.15;letter-spacing:-.012em}.grand-prix-hero__intro .muted-copy{margin:0;font-size:.86rem;line-height:1.45}.gp-status{display:grid;border:1px solid rgb(var(--c-ink)/.1);border-radius:.9rem;background:rgb(var(--c-surface)/.78);overflow:hidden}.gp-status__cells{display:flex;align-items:stretch;padding:.5rem .7rem}.gp-status__cell{display:grid;gap:.1rem;align-content:center;flex:1 1 0;min-width:0;padding:0 .7rem;border-left:1px solid rgb(var(--c-ink)/.09)}.gp-status__cell--primary{flex-grow:1.5}.gp-status__cell:first-child{padding-left:0;border-left:0}.gp-status__label{align-items:center;gap:.25rem;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.gp-status__label,.gp-status__value{display:flex;font-weight:800;white-space:nowrap}.gp-status__value{align-items:baseline;gap:.3rem;min-width:0;overflow:hidden;color:var(--foreground);font-size:.95rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.gp-status__value em{min-width:0;overflow:hidden;text-overflow:ellipsis;font-style:normal;font-size:.78rem;font-weight:700;color:var(--muted)}.gp-status__value em:before{content:"· "}.gp-status__cell--primary .gp-status__value{font-size:1.32rem;font-weight:850;letter-spacing:-.025em}.gp-status__value--pending{color:var(--muted)}.gp-status__strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.3rem .75rem;padding:.4rem .7rem;border-top:1px solid rgb(var(--c-ink)/.08);background:rgb(var(--c-ink)/.035)}.gp-status__strip-end{display:flex;align-items:center;gap:.5rem;min-width:0}.gp-status__nudge{margin:0;font-size:.8rem;font-weight:800;color:var(--flavour-ink)}.gp-status__last{display:flex;align-items:baseline;gap:.3rem;min-width:0;font-size:.79rem;font-weight:750;color:var(--foreground)}.gp-status__last svg{align-self:center;color:var(--muted)}.gp-status__last-summary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-status__delta{font-style:normal;font-size:.75rem;font-weight:800;color:var(--muted);white-space:nowrap}.gp-status__delta--good{color:rgb(var(--c-green-deep))}.gp-status__streak{display:inline-flex;flex:none;align-items:center;gap:.22rem;padding:.1rem .45rem;border:1px solid rgb(var(--c-amber-strong)/.34);border-radius:999px;background:rgb(var(--c-warm-wash-strong-2)/.95);color:rgb(var(--c-amber-strong-2));font-size:.72rem;font-weight:800;white-space:nowrap}.grand-prix-hero__actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.25rem}.grand-prix-hero__grid{grid-column:1/-1;display:grid;gap:.6rem;padding-top:1rem;border-top:1px solid rgb(var(--c-ink)/.09)}.grand-prix-hero__grid-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.grand-prix-hero__grid-head h2{display:flex;align-items:center;gap:.45rem;margin:0;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.grand-prix-hero__grid-head svg{color:var(--flavour-ink)}.grand-prix-hero__grid-head .status-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .62rem;border:1px solid var(--border);border-radius:999px;background:rgb(var(--c-surface)/.78);color:var(--muted);font-size:.78rem;font-weight:800;white-space:nowrap}.grand-prix-hero__grid-head .status-chip--live{border-color:rgb(var(--c-green-strong)/.3);background:rgb(var(--c-green-strong)/.1);color:rgb(var(--c-green-mid))}.grand-prix-hero__grid-count{padding:.1rem .5rem;border-radius:999px;background:var(--flavour-tint);color:var(--flavour-ink);font-size:.8rem;font-variant-numeric:tabular-nums;letter-spacing:0}.grand-prix-hero__grid .grand-prix-roster{max-height:5.75rem;overflow-y:auto;overscroll-behavior:contain;padding-right:.35rem;scrollbar-width:thin}.grand-prix-hero__grid .muted-copy{margin:0;font-size:.9rem}.grand-prix-hero__timebar{position:absolute;inset:auto 0 0 0;height:6px;background:rgb(var(--c-ink)/.08)}.grand-prix-hero__timebar:after{content:"";display:block;height:100%;width:var(--race-progress,0);background:linear-gradient(90deg,var(--flavour-ink),var(--primary));transition:width 1s linear}.grand-prix-schedule,.grand-prix-track-card{display:grid;gap:1rem;padding:1.5rem 1.75rem}.grand-prix-schedule h2,.grand-prix-track-card h2{display:flex;align-items:center;gap:.45rem;margin:0;font-size:1.15rem}.grand-prix-roster{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.grand-prix-roster__chip{display:inline-flex;align-items:center;gap:.45rem;padding:.34rem .78rem;border:1px solid var(--border);border-radius:999px;background:rgb(var(--c-surface)/.8);font-size:.88rem}.grand-prix-roster__chip--away{opacity:.55}.grand-prix-roster__dot{width:.6rem;height:.6rem;border-radius:50%}.grand-prix-schedule__list{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.grand-prix-schedule__list li{display:grid;grid-template-columns:5rem 1fr auto;align-items:center;gap:.75rem;padding:.6rem .9rem;border:1px solid var(--border);border-radius:.9rem;background:rgb(var(--c-surface)/.72)}.grand-prix-schedule__list strong{font-variant-numeric:tabular-nums}.race-track{display:grid;gap:.55rem}.race-track__gap{display:flex;align-items:center;gap:.75rem;padding:.1rem .6rem;color:var(--muted);font-size:.78rem;font-weight:650;white-space:nowrap}.race-track__gap:after,.race-track__gap:before{content:"";flex:1;border-top:1px dashed rgb(var(--c-ink)/.18)}.race-track--empty{display:flex;align-items:center;gap:.75rem;padding:1.5rem;border:1px dashed var(--border-strong);border-radius:1rem;color:var(--muted)}.race-track--empty p{margin:0}.race-lane{display:grid;grid-template-columns:1.75rem minmax(6rem,auto) minmax(4rem,1fr) auto;align-items:center;gap:.6rem;min-width:0;padding:.35rem .6rem;border:1px solid transparent;border-radius:.8rem;transition:background .25s ease,border-color .25s ease}.race-lane--leader{background:rgb(var(--c-gold)/.09)}.race-lane--you{border-color:rgb(var(--c-gold)/.55);background:rgb(var(--c-gold)/.13)}.race-lane__rank{display:flex;align-items:center;justify-content:flex-end;gap:.2rem;color:var(--muted);font-size:.92rem;font-weight:800;font-variant-numeric:tabular-nums}.race-lane--leader .race-lane__rank{color:var(--primary-strong)}.race-lane__racer{display:flex;align-items:center;gap:.4rem;min-width:0}.race-lane__avatar{display:grid;flex:none;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;color:rgb(var(--c-warm-wash-3));font-size:.58rem;font-weight:800;letter-spacing:.02em}.race-lane__name{display:flex;align-items:baseline;gap:.3rem;min-width:0;font-size:.88rem;font-weight:750}.race-lane__name>a,.race-lane__name>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-lane__you-tag{flex:none;padding:.02rem .4rem;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.race-lane__away{flex:none;color:var(--muted);font-size:.72rem;font-style:normal;font-weight:700;opacity:.8}.race-lane__score{display:flex;align-items:baseline;gap:.2rem;justify-content:flex-end;min-width:4.5rem;font-variant-numeric:tabular-nums}.race-lane__score strong{font-size:.95rem;font-weight:850}.race-lane__score small{color:var(--muted);font-size:.72rem;font-weight:700}.race-lane__road{position:relative;height:1.5rem;min-width:0}.race-lane__road-surface{inset:50% 1.1rem auto 0;height:2px;background:repeating-linear-gradient(90deg,rgb(var(--c-ink)/.22) 0 8px,transparent 8px 18px)}.race-lane__car,.race-lane__road-surface{position:absolute;transform:translateY(-50%)}.race-lane__car{top:50%;display:flex;align-items:center;width:2.6rem;transition:left .6s cubic-bezier(.22,1,.36,1)}.race-car{width:100%;height:auto;overflow:visible}.race-lane__finish{position:absolute;top:50%;right:0;display:flex;align-items:center;color:var(--muted);transform:translateY(-50%)}@media (prefers-reduced-motion:reduce){.grand-prix-hero__timebar:after,.race-lane__car,.race-lane__fill{transition:none}}@media (max-width:900px){.grand-prix-hero{grid-template-columns:1fr;padding:1.4rem 1.25rem 1.7rem}.grand-prix-schedule,.grand-prix-track-card{padding:1.2rem 1.15rem}.race-lane{grid-template-columns:1.6rem minmax(0,1fr) auto;gap:.25rem .5rem}.race-lane__rank{grid-area:1/1/2/2}.race-lane__racer{grid-area:1/2/2/3}.race-lane__score{grid-area:1/3/2/4;min-width:0}.race-lane__road{grid-area:2/2/3/4;height:1.35rem}}.grand-prix-hero__pending{animation:grand-prix-pending 1.2s ease-in-out infinite}@keyframes grand-prix-pending{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){.grand-prix-hero__pending{animation:none}}.grand-prix-track-card__actions{display:flex;gap:.5rem;flex-wrap:wrap}.grand-prix-history-day{display:grid;gap:.9rem;padding:1.4rem 1.6rem}.grand-prix-history-list{display:grid;gap:.45rem}.grand-prix-history-race{--flavour-tint:rgb(var(--c-gold)/0.18);--flavour-ink:var(--primary-strong);border:1px solid var(--border);border-radius:.9rem;background:rgb(var(--c-surface)/.66);overflow:hidden}.grand-prix-history-race__header{display:flex;align-items:center;gap:.5rem;padding-right:.95rem}.grand-prix-history-race__summary{display:grid;grid-template-columns:1.4rem 4rem 7rem auto auto;align-items:center;justify-content:start;gap:.85rem;flex:1 1 auto;min-width:0;padding:.7rem .95rem;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.grand-prix-history-race__header:hover{background:rgb(var(--c-gold)/.07)}.grand-prix-history-race__review{flex:0 0 auto;opacity:0;transition:opacity .14s ease}.grand-prix-history-race__header:hover .grand-prix-history-race__review,.grand-prix-history-race__review:focus-visible{opacity:1}@media (hover:none){.grand-prix-history-race__review{opacity:1}}.grand-prix-history-race__summary:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.grand-prix-history-race__chevron{display:flex;color:var(--muted)}.grand-prix-history-race__time{font-weight:700;font-variant-numeric:tabular-nums}.grand-prix-history-race__flavour{justify-self:start;padding:.12rem .6rem;border-radius:999px;background:var(--flavour-tint);color:var(--flavour-ink);font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.grand-prix-history-race__stat{display:inline-flex;align-items:center;gap:.28rem;color:var(--muted);font-size:.86rem;font-variant-numeric:tabular-nums}.grand-prix-history-race__you{flex:0 0 auto;text-align:right;font-size:.88rem;font-variant-numeric:tabular-nums}.grand-prix-history-race__puzzles{border-top:1px solid var(--border);padding:.5rem .95rem .9rem}.grand-prix-history-puzzles{display:grid;gap:.3rem;width:100%;margin:0;padding:0;list-style:none}.grand-prix-history-puzzle{display:grid;grid-template-columns:2rem 1fr auto;align-items:center;gap:.75rem;padding:.5rem .6rem;border-radius:.75rem;color:inherit;text-decoration:none}.grand-prix-history-puzzle:focus-visible,.grand-prix-history-puzzle:hover{background:rgb(var(--c-parchment)/.5);outline:none}.grand-prix-history-puzzle__position{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:var(--surface-muted,rgb(var(--c-black)/.05));font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums}.grand-prix-history-puzzle__meta{display:grid;gap:.1rem;min-width:0}.grand-prix-history-puzzle__meta small{font-size:.8rem}.grand-prix-history-puzzle__result{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-variant-numeric:tabular-nums}@media (max-width:860px){.grand-prix-history-race__header{flex-direction:column;align-items:stretch;padding:0 .95rem .7rem}.grand-prix-history-race__summary{grid-template-columns:1.4rem 4rem auto;row-gap:.35rem;padding-inline:0}.grand-prix-history-race__you{order:-1;text-align:left}}@media (max-width:767px){.grand-prix-hero__intro>.muted-copy{display:none}.gp-status__cells{flex-wrap:wrap;row-gap:.3rem;padding:.4rem .5rem}.gp-status__cell,.gp-status__cell--primary{flex:1 1 44%;padding:0 .5rem}.gp-status__cell:nth-child(odd){padding-left:0;border-left:0}.gp-status__label{font-size:.56rem;letter-spacing:.05em}.gp-status__value{font-size:.88rem}.gp-status__value em{font-size:.72rem}.gp-status__cell--primary .gp-status__value{font-size:1.12rem}.gp-status__strip{gap:.2rem .5rem;padding:.32rem .5rem}.gp-status__last,.gp-status__nudge{font-size:.74rem}.gp-status__streak{font-size:.68rem}.grand-prix-hero__grid{padding:.5rem .55rem}.grand-prix-roster{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.grand-prix-roster::-webkit-scrollbar{display:none}.grand-prix-roster__chip{flex:none}.grand-prix-schedule,.grand-prix-track-card{padding:.75rem .7rem}.grand-prix-schedule .editor-panel__header,.grand-prix-track-card .editor-panel__header{flex-direction:column;align-items:stretch;gap:.5rem}.grand-prix-track-card__actions{display:flex;gap:.4rem}.grand-prix-track-card__actions .button{flex:1;justify-content:center}.grand-prix-schedule__list li{gap:.35rem}}.gp-results{display:grid;gap:.6rem;padding:.9rem 1.1rem}.gp-results__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.gp-results__title{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.gp-results__tabs{display:inline-flex;gap:.25rem;padding:.15rem;border:1px solid var(--border);border-radius:.6rem;background:rgb(var(--c-surface)/.5)}.gp-results__tab{border:0;border-radius:.45rem;padding:.25rem .6rem;background:none;color:var(--muted);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer}.gp-results__tab--active{background:rgb(var(--c-gold)/.16);color:var(--primary-strong)}.gp-results__list{display:grid;gap:.2rem;margin:0;padding:0;list-style:none}.gp-results__row{display:grid;grid-template-columns:1.9rem minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.32rem .55rem;border-radius:.55rem}.gp-results__row--podium{background:rgb(var(--c-gold)/.09)}.gp-results__row--you{background:rgb(var(--c-gold)/.16)}.gp-results__rank{font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:700;color:var(--muted);text-align:right}.gp-results__row--podium .gp-results__rank{color:var(--primary-strong)}.gp-results__player{display:inline-flex;align-items:baseline;gap:.45rem;min-width:0;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-results__you-tag{font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary-strong)}.gp-results__points{display:inline-flex;align-items:baseline;gap:.3rem;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.gp-results__points em{font-style:normal;font-size:.68rem;font-weight:500;color:var(--muted)}.gp-results__more{justify-self:start}@media (max-width:767px){.grand-prix-hero{grid-template-columns:minmax(0,1fr);gap:.45rem;min-height:0;padding:.6rem .7rem;border-radius:1rem}.grand-prix-hero__intro{display:flex;align-items:baseline;flex-wrap:wrap;gap:.15rem .5rem}.grand-prix-hero h1{margin:0;font-size:1.05rem;letter-spacing:-.02em}.grand-prix-hero__eyebrow{font-size:.6rem}.grand-prix-hero__eyebrow svg{width:.9rem;height:.9rem}.gp-results{padding:.7rem .75rem}.gp-results__head{flex-direction:column;align-items:flex-start}.gp-results__row{grid-template-columns:1.6rem minmax(0,1fr) auto;gap:.45rem}}