@font-face{font-family:Anton;src:url(/assets/Anton-Regular-D6S-vsTk.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/IBMPlexSans-Variable-BzfxeMYE.woff2) format("woff2-variations");font-weight:100 700;font-stretch:75% 100%;font-style:normal;font-display:swap}:root{--ink: #0b0b0a;--panel: #17160f;--panel-2: #1d1c14;--paper: #f3f1e6;--muted: #948f80;--line: #322f24;--accent: #f2c230;--accent-ink: #171205;--font-display: "Anton", "Arial Narrow", sans-serif;--font-body: "IBM Plex Sans", Arial, sans-serif}@media (max-width: 640px){.replay-hud .replay-hud__stats{grid-template-columns:1fr}.replay-hud__stats .replay-hud__stat{border-left:none;border-top:1px solid var(--line, #322f24)}.replay-hud__stats .replay-hud__stat:first-child{border-top:none}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100svh;background:var(--ink);color:var(--paper);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100svh}h1,h2,h3{font-family:var(--font-display);font-weight:400;margin:0}p{margin:0}.app-shell{display:flex;flex-direction:column;min-height:100svh;gap:24px;padding:24px;max-width:1520px;margin:0 auto}.wordmark{font-size:22px;letter-spacing:.08em}.replay-row{display:flex;align-items:flex-start;gap:40px}.replay-row__map{flex:0 1 960px;min-width:0}.replay-row__side{flex:1 1 420px;max-width:480px;display:flex;flex-direction:column;gap:24px}@media (max-width: 640px){.replay-row{flex-direction:column}.replay-row__map{flex-basis:auto;width:100%;order:2}.replay-row__side{max-width:100%;width:100%;order:1}}.screen{display:flex;flex-direction:column;align-items:flex-start;gap:16px;width:100%}.screen p{color:var(--muted);font-family:var(--font-body);font-size:15px}.primary-action{font-family:var(--font-display);font-size:16px;letter-spacing:.02em;min-width:44px;min-height:44px;padding:0 28px;background:transparent;color:var(--accent);border:1px solid var(--accent);cursor:pointer}.primary-action:hover{background:var(--accent);color:var(--accent-ink)}.primary-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.replay-view-toggle{display:flex;border:1px solid var(--line)}.replay-view-toggle__tab{font-family:var(--font-body);font-size:13px;letter-spacing:.04em;text-transform:uppercase;min-height:44px;padding:0 20px;background:transparent;color:var(--muted);border:none;border-right:1px solid var(--line);cursor:pointer}.replay-view-toggle__tab:last-child{border-right:none}.replay-view-toggle__tab--active{background:var(--accent);color:var(--accent-ink)}.replay-view-toggle__tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.error-state{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:20px 24px;background:var(--panel, #17160f);border:1px solid var(--line, #322f24);color:var(--paper, #f3f1e6)}.error-state__message{font-family:var(--font-body, sans-serif);font-size:15px;line-height:1.5}.error-state__action{font-family:var(--font-display, sans-serif);font-size:14px;letter-spacing:.02em;min-width:44px;min-height:44px;padding:0 20px;background:transparent;color:var(--accent, #f2c230);border:1px solid var(--accent, #f2c230);cursor:pointer}.error-state__action:hover{background:var(--accent, #f2c230);color:var(--accent-ink, #171205)}.error-state__action:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:2px}.course-canvas{width:100%;max-width:960px;height:auto;aspect-ratio:1200 / 1106}.angled-header-cell{position:sticky;top:0;height:208px;padding:0;border-bottom:1px solid var(--line, #322f24);border-right:none;background:var(--panel-2, #1d1c14)}.angled-header-cell__label{position:absolute;left:57px;bottom:13px;transform-origin:left bottom;transform:rotate(-75deg);white-space:nowrap;font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px;letter-spacing:.01em;color:var(--paper, #f3f1e6);z-index:1}.angled-header-cell__racer-identity{display:flex;align-items:center;gap:6px}.angled-header-cell__badge{font-family:var(--font-display, sans-serif);font-size:13px;width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--accent-ink, #171205)}.angled-header-cell__racer-name{font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px}.angled-header-cell__divider{position:absolute;top:0;right:0;bottom:0;width:1px;background:var(--line, #322f24);transform:skew(-15deg);transform-origin:bottom;z-index:2}@media (max-width: 640px){.angled-header-cell{height:154px}.angled-header-cell__label{left:44px;bottom:10px}}.comparison-cell--reference{display:flex;flex-direction:column;gap:2px}.comparison-cell--reference .comparison-cell__value{font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px;color:var(--paper, #f3f1e6)}.comparison-cell--comparison{display:flex;flex-direction:column;gap:3px}.comparison-cell__line1,.comparison-cell__line2{font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px;color:var(--paper, #f3f1e6);white-space:nowrap}.comparison-cell__delta-paren{margin-left:3px}.comparison-cell__delta-paren--solo{margin-left:0}.end-card{display:flex;flex-direction:column;align-items:flex-start;gap:24px;width:100%;max-width:480px}.end-card__summary-strip{position:relative;display:flex;flex-wrap:nowrap;overflow-x:auto;align-items:flex-start;gap:24px;width:100%}.end-card__summary-strip:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:2px}.end-card__summary-strip:after{content:"";position:sticky;right:0;top:0;height:100%;flex:0 0 32px;margin-left:-32px;background:linear-gradient(to right,transparent,var(--ink, #0b0b0a));pointer-events:none}.end-card__summary-chip{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.end-card__summary-chip--reference{position:sticky;left:0;background:var(--ink, #0b0b0a);padding-right:20px;z-index:1}.end-card__summary-identity{display:flex;align-items:center;gap:6px}.end-card__summary-badge{font-family:var(--font-display, sans-serif);font-size:13px;width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--accent-ink, #171205)}.end-card__summary-name{font-family:var(--font-display, sans-serif);font-weight:900;font-size:15px;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.end-card__summary-value{font-family:var(--font-display, sans-serif);font-weight:900;font-size:22px;line-height:1;white-space:nowrap}.end-card__summary-value--reference{color:var(--paper, #f3f1e6)}.end-card__table-frame{width:100%;border:1px solid var(--line, #322f24)}.end-card__table-scroll{overflow:auto;max-height:420px;background:var(--panel, #17160f)}.end-card__table{display:grid;width:max-content;font-variant-numeric:tabular-nums}.end-card__row{display:contents}.end-card__corner-cell,.end-card__name-cell-wrap,.end-card__data-cell{padding:8px;border-bottom:1px solid var(--line, #322f24);border-right:1px solid var(--line, #322f24);background:var(--panel, #17160f)}.end-card__corner-cell{position:sticky;top:0;left:0;height:208px;background:var(--panel-2, #1d1c14)}.end-card__name-cell-wrap{width:141px;min-width:141px;position:sticky;left:0;z-index:3;background:var(--panel-2, #1d1c14)}.end-card__name-cell{display:flex;align-items:center;gap:6px}.end-card__badge{font-family:var(--font-display, sans-serif);font-size:13px;width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--accent-ink, #171205)}.end-card__name-text{font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px}.end-card__data-cell{width:118px;min-width:118px}.end-card__row--reference .end-card__name-cell-wrap,.end-card__row--reference .end-card__data-cell{position:sticky;top:208px;z-index:2;background:var(--panel-2, #1d1c14)}.end-card__row--reference .end-card__name-cell-wrap{z-index:5}.end-card__actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:12px}.end-card__actions-secondary{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.end-card__download,.end-card__replay-again{font-family:var(--font-display, sans-serif);font-size:16px;letter-spacing:.02em;min-width:44px;min-height:44px;padding:0 28px;cursor:pointer}.end-card__download{background:transparent;color:var(--muted, #948f80);border:1px solid var(--line, #322f24)}.end-card__download:disabled{cursor:not-allowed}.end-card__download:not(:disabled){color:var(--accent, #f2c230);border:1px solid var(--accent, #f2c230)}.end-card__download:not(:disabled):hover{background:var(--accent, #f2c230);color:var(--accent-ink, #171205)}.end-card__replay-again{background:transparent;color:var(--accent, #f2c230);border:1px solid var(--accent, #f2c230)}.end-card__replay-again:hover{background:var(--accent, #f2c230);color:var(--accent-ink, #171205)}.end-card__replay-again:focus-visible,.end-card__download:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:2px}.end-card__share-nudge{font-family:var(--font-body, sans-serif);font-size:13px;color:var(--muted, #948f80);margin:0}@media (max-width: 640px){.end-card__corner-cell{height:154px}.end-card__row--reference .end-card__name-cell-wrap,.end-card__row--reference .end-card__data-cell{top:154px}}.vertical-end-card__table-frame{width:100%;border:1px solid var(--line, #322f24)}.vertical-end-card__table-scroll{overflow-x:auto;background:var(--panel, #17160f)}.vertical-end-card__table{display:grid;width:max-content;font-variant-numeric:tabular-nums}.vertical-end-card__row{display:contents}.vertical-end-card__corner-cell,.vertical-end-card__station-cell,.vertical-end-card__data-cell{padding:8px;border-bottom:1px solid var(--line, #322f24);border-right:1px solid var(--line, #322f24);background:var(--panel, #17160f)}.vertical-end-card__corner-cell{position:sticky;top:0;left:0;height:208px;background:var(--panel-2, #1d1c14)}.vertical-end-card__station-cell{position:sticky;left:0;z-index:3;width:141px;min-width:141px;background:var(--panel-2, #1d1c14);font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px}.vertical-end-card__data-cell{width:118px;min-width:118px}.vertical-end-card__data-cell--frozen{position:sticky;left:141px;z-index:3;background:var(--panel-2, #1d1c14)}@media (max-width: 640px){.vertical-end-card__corner-cell{height:154px}}.live-comparison-table__frame{width:100%;border:1px solid var(--line, #322f24);position:relative}.live-comparison-table__scroll{overflow-y:auto;overflow-x:auto;max-height:748px;background:var(--panel, #17160f)}.live-comparison-table__table{display:grid;width:max-content;font-variant-numeric:tabular-nums}.live-comparison-table__row{display:contents}.live-comparison-table__corner-cell,.live-comparison-table__station-cell,.live-comparison-table__data-cell{padding:8px;border-bottom:1px solid var(--line, #322f24);border-right:1px solid var(--line, #322f24);background:var(--panel, #17160f);scroll-margin-top:208px}.live-comparison-table__corner-cell{position:sticky;top:0;left:0;height:208px;background:var(--panel-2, #1d1c14)}.live-comparison-table__station-cell{position:sticky;left:0;z-index:3;width:141px;min-width:141px;background:var(--panel-2, #1d1c14);font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px}.live-comparison-table__data-cell{width:118px;min-width:118px;display:grid}.live-comparison-table__data-cell--frozen{position:sticky;left:141px;z-index:3;background:var(--panel-2, #1d1c14)}.live-comparison-table__in-progress{background-color:color-mix(in srgb,var(--live-cell-accent) 45%,var(--panel, #17160f));margin:-8px;padding:8px;display:flex;flex-direction:column;gap:2px;box-sizing:border-box}.live-comparison-table__in-progress-timer{font-family:var(--font-display, sans-serif);font-weight:900;font-size:18px;color:var(--paper, #f3f1e6)}.live-comparison-table__in-progress-counter{font-family:var(--font-body, sans-serif);font-size:11px;color:var(--paper, #f3f1e6)}.live-comparison-table__jump-to-live{position:absolute;bottom:0;left:0;right:0;height:48px;background:linear-gradient(to bottom,transparent,var(--panel, #17160f) 85%);display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;border:none;cursor:pointer;z-index:10}.live-comparison-table__jump-to-live-chevron{color:var(--accent, #f2c230);font-family:var(--font-body, sans-serif);font-size:11px;font-weight:600;letter-spacing:.04em}.live-comparison-table__jump-to-live:hover .live-comparison-table__jump-to-live-chevron,.live-comparison-table__jump-to-live:active .live-comparison-table__jump-to-live-chevron{filter:brightness(1.3)}.live-comparison-table__jump-to-live:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:-2px}.live-comparison-table__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 640px){.live-comparison-table__corner-cell{height:154px}.live-comparison-table__station-cell,.live-comparison-table__data-cell{scroll-margin-top:154px}.live-comparison-table__scroll{max-height:694px}}.racer-slot{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--panel, #17160f);border:1px solid var(--line, #322f24);border-top:1px solid var(--slot-accent, var(--line, #322f24));border-left:6px solid var(--slot-accent, var(--line, #322f24))}.racer-slot__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.racer-slot__name-block{display:flex;align-items:center;gap:10px}.racer-slot__badge{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--slot-accent, var(--muted, #948f80));color:var(--accent-ink, #171205);font-family:var(--font-display, sans-serif);font-size:13px}.racer-slot__label{font-family:var(--font-body, sans-serif);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted, #948f80)}.racer-slot__header-name{font-family:var(--font-display, sans-serif);font-size:30px;color:var(--slot-accent, #f3f1e6);line-height:1}.racer-slot__clear{background:none;border:none;color:var(--muted, #948f80);font-family:var(--font-body, sans-serif);font-size:20px;line-height:1;cursor:pointer;padding:8px;min-width:44px;min-height:44px}.racer-slot__clear:hover{color:var(--paper, #f3f1e6)}.racer-slot__clear:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:2px}.racer-slot__url-row{display:flex;gap:8px}.racer-slot__url-input{flex:1;min-width:0;min-height:44px;padding:0 12px;background:var(--ink, #0b0b0a);border:1px solid var(--line, #322f24);color:var(--paper, #f3f1e6);font-family:var(--font-body, sans-serif);font-size:14px}.racer-slot__url-input::placeholder{color:var(--muted, #948f80)}.racer-slot__url-input:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:-1px}.racer-slot__url-submit{font-family:var(--font-display, sans-serif);font-size:13px;letter-spacing:.02em;min-width:44px;min-height:44px;padding:0 16px;background:transparent;color:var(--accent, #f2c230);border:1px solid var(--accent, #f2c230);cursor:pointer;white-space:nowrap}.racer-slot__url-submit:hover{background:var(--accent, #f2c230);color:var(--accent-ink, #171205)}.racer-slot__url-submit:disabled{color:var(--muted, #948f80);border-color:var(--line, #322f24);cursor:not-allowed}.racer-slot__url-submit:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:2px}.racer-slot__loading{display:flex;align-items:center;gap:10px;color:var(--muted, #948f80);font-family:var(--font-body, sans-serif);font-size:14px}.racer-slot__spinner{width:16px;height:16px;border:2px solid var(--line, #322f24);border-top-color:var(--accent, #f2c230);border-radius:50%;animation:racer-slot-spin .8s linear infinite;flex-shrink:0}@keyframes racer-slot-spin{to{transform:rotate(360deg)}}.racer-slot__error-msg{font-family:var(--font-body, sans-serif);font-size:13px;color:var(--paper, #f3f1e6);line-height:1.5}.replay-hud{width:100%;max-width:480px;--replay-hud-accent: var(--accent, #f2c230);border-top:1px solid var(--replay-hud-accent)}.replay-hud__header{display:flex;align-items:flex-end;justify-content:space-between;min-height:68px;padding:14px 16px 8px;border-left:6px solid var(--replay-hud-accent);gap:16px;box-sizing:border-box}.replay-hud__name-block{display:flex;align-items:center;gap:10px}.replay-hud__badge{font-family:var(--font-display, sans-serif);font-size:13px;width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--replay-hud-accent);color:var(--accent-ink, #171205)}.replay-hud__racer-name{font-family:var(--font-display, sans-serif);font-size:30px;color:var(--replay-hud-accent);line-height:1}.replay-hud__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.replay-hud__header-right-label{font-family:var(--font-body, sans-serif);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted, #948f80)}.replay-hud__header-right-value{font-family:var(--font-display, sans-serif);font-size:30px;line-height:1}.replay-hud__header-right-value--gap{color:var(--replay-hud-accent)}.replay-hud__header-right-value--racetime{color:var(--paper, #f3f1e6)}.replay-hud__stats{display:grid;grid-template-columns:2fr 1fr;width:100%}.replay-hud__stat{display:flex;flex-direction:column;gap:4px;padding:16px;border-left:1px solid var(--line, #322f24);box-sizing:border-box;min-height:73px}.replay-hud__stat:first-child{border-left:none}.replay-hud__value{font-family:var(--font-display, sans-serif);font-size:24px;line-height:1;color:var(--paper, #f3f1e6)}.replay-hud__sub-value{font-family:var(--font-body, sans-serif);font-size:13px;line-height:1;color:var(--muted, #948f80)}.replay-hud__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.speed-selector{display:flex;gap:20px}.speed-selector__option{font-family:var(--font-display, sans-serif);font-size:16px;letter-spacing:.02em;background:transparent;border:none;color:var(--muted, #948f80);min-width:44px;min-height:44px;padding:0 8px;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}.speed-selector__option--active{color:var(--accent, #f2c230);text-decoration-color:var(--accent, #f2c230)}.speed-selector__option:hover{color:var(--paper, #f3f1e6)}.speed-selector__option:focus-visible{outline:2px solid var(--accent, #f2c230);outline-offset:2px}
