/* Self-hosted fonts — no requests to Google or any other third party. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:700 800;font-stretch:62% 125%;font-display:swap;src:url(fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700 800;font-stretch:62% 125%;font-display:swap;src:url(fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plexmono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plexmono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/plexmono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/plexmono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;src:url(fonts/plexsans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;src:url(fonts/plexsans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--bg:#0A0D0C;--panel:#131817;--field:#1C2321;--line:#2A3330;--text:#E8EDEA;--muted:#8C9A96;--lime:#C8FF2E;--lime-dark:#A8DB16;--red:#FF4438;--green:#2EE6A8;--amber:#FFB020;--gutter:clamp(20px,5vw,64px)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:'IBM Plex Sans',sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--text);text-decoration:none}
a:hover{color:var(--lime)}
input::placeholder{color:var(--muted)}
@keyframes zrBlink{0%,60%{opacity:1}61%,100%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.dot-blink{animation:none!important}}

.page{min-height:100vh;display:flex;flex-direction:column}
.display{font-family:'Archivo',sans-serif;font-stretch:118%;font-weight:800}
.mono{font-family:'IBM Plex Mono',monospace}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--muted)}
.label{font-family:'Archivo',sans-serif;font-stretch:118%;font-weight:700;font-size:15px;letter-spacing:.05em}
.muted{color:var(--muted)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--red);display:inline-block;flex:none}
.dot-blink{animation:zrBlink 1.2s infinite}


main{flex:1}
.hero{display:flex;flex-direction:column;gap:clamp(32px,4vw,48px);padding:clamp(40px,7vw,96px) var(--gutter);max-width:1360px;margin:0 auto}
.hero-intro{display:flex;flex-direction:column;gap:28px;min-width:0}
.hero-signup{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(24px,3vw,40px);align-items:center}
.hero-signup .card{max-width:none}
.live{display:flex;align-items:center;gap:10px}
h1{margin:0;font-size:clamp(44px,6.4vw,76px);line-height:1.02;letter-spacing:.005em;text-wrap:balance}
.lime{color:var(--lime)}
.lead{margin:0;font-size:20px;line-height:1.55;max-width:34em;text-wrap:pretty}

.card{background:var(--panel);border:1px solid var(--line);padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:20px;max-width:560px}
.card-head{display:flex;flex-direction:column;gap:6px}
.card-head p,.small{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
form.stack{display:flex;flex-direction:column;gap:16px;margin:0}
.field{display:flex;flex-direction:column;gap:8px}
.field input{height:52px;padding:0 16px;background:var(--field);border:1px solid var(--line);color:var(--text);font-family:'IBM Plex Sans',sans-serif;font-size:16px;outline:none;border-radius:0}
.field input:focus{border-color:var(--lime)}
.field input[aria-invalid=true]{border-color:var(--red)}
.err{font-size:13px;color:var(--red)}
.alert{font-size:14px;line-height:1.5;color:var(--red);border:1px solid var(--red);padding:12px 14px}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--muted);cursor:pointer}
.consent input{margin:2px 0 0;width:18px;height:18px;flex:none;accent-color:var(--lime)}
.consent a{color:var(--text);text-decoration:underline}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.btn{height:56px;border:0;background:var(--lime);color:var(--bg);font-family:'Archivo',sans-serif;font-stretch:118%;font-weight:800;font-size:16px;letter-spacing:.05em;cursor:pointer;border-radius:0;padding:0 20px}
.btn:active{background:var(--lime-dark)}
.btn-ghost{align-self:flex-start;height:44px;padding:0 16px;background:transparent;border:1px solid var(--line);color:var(--text);font-family:'Archivo',sans-serif;font-stretch:118%;font-weight:700;font-size:13px;letter-spacing:.05em;cursor:pointer;display:inline-flex;align-items:center}
.btn-ghost:hover{border-color:var(--muted);color:var(--text)}
.status{display:flex;align-items:center;gap:10px;color:var(--green)}
.status .dot{background:var(--green)}
.big{font-size:38px;line-height:1.05;margin:0}


/* Crops the 2532x1170 phone recording: 180px off the top (browser bar) and 180px off each side.
   The box shows the remaining 2172x990; the video is scaled up and pinned to the bottom. */
.video{position:relative;aspect-ratio:2172/990;overflow:hidden;background:#000;border:1px solid var(--line)}
.video video{position:absolute;bottom:0;left:calc(-100% * 180 / 2172);width:calc(100% * 2532 / 2172);height:auto;display:block}
.video .c{position:absolute;width:28px;height:28px;border:0 solid var(--lime);pointer-events:none}
.video .tl{left:-1px;top:-1px;border-left-width:3px;border-top-width:3px}
.video .tr{right:-1px;top:-1px;border-right-width:3px;border-top-width:3px}
.video .bl{left:-1px;bottom:-1px;border-left-width:3px;border-bottom-width:3px}
.video .br{right:-1px;bottom:-1px;border-right-width:3px;border-bottom-width:3px}
h2{margin:0;font-size:38px;line-height:1.05;max-width:18em;text-wrap:balance}

.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:24px var(--gutter);border-top:1px solid var(--line)}
.site-footer nav{display:flex;flex-wrap:wrap;gap:20px}
.site-footer a{color:var(--muted)}
.site-footer a.go{color:var(--lime)}

.prose{max-width:760px;margin:0 auto;padding:clamp(40px,6vw,80px) var(--gutter);line-height:1.65;font-size:16px}
.prose h1{font-size:clamp(34px,5vw,52px);margin-bottom:24px}
.prose h2{font-size:22px;margin:40px 0 12px}
.prose p,.prose li{color:#C9D1CD}
.prose a{color:var(--lime);text-decoration:underline}
.todo{background:#3a2f00;color:var(--amber);padding:0 4px}
.c-amber{color:var(--amber)}

.verify{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(40px,8vw,120px) var(--gutter)}
.verify .card{width:100%}
.verify h1.big{font-size:clamp(34px,5vw,44px)}
.status.pending{color:var(--amber)}
.status.pending .dot{background:var(--amber)}
.status.failed{color:var(--red)}
.status.failed .dot{background:var(--red)}
.next{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line)}
.next li{display:flex;gap:16px;align-items:baseline;background:var(--bg);padding:14px 16px;font-size:15px;line-height:1.5;color:#C9D1CD}
.next strong{color:var(--text)}

/* Live leaderboard */
.board{max-width:1360px;width:100%;margin:0 auto;padding:clamp(40px,6vw,80px) var(--gutter);display:flex;flex-direction:column;gap:clamp(24px,3vw,40px)}
.board-head{display:flex;flex-direction:column;gap:20px}
.board-head .live{color:var(--red)}
.board-head h1{font-size:clamp(30px,8.4vw,76px)}
.board-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:clamp(16px,2vw,24px);align-items:start}
.board-card{max-width:none;min-width:0}
.board-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.board-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.board-table th{text-align:left;font-weight:400;padding:0 8px 10px;border-bottom:1px solid var(--line)}
.board-table td{padding:14px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.board-table th:first-child,.board-table td:first-child{padding-left:0}
.board-table th:last-child,.board-table td:last-child{padding-right:0}
.board-table .num{text-align:right}
.board-table .pos{color:var(--muted)}
.board-table .best{font-size:17px;font-weight:500}
.board-table tr.leader .pos,.board-table tr.leader .best{color:var(--lime)}
.on-track{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line)}
.on-track-car{display:flex;align-items:center;gap:12px;background:var(--bg);padding:12px 16px}
.on-track-car .dot{background:var(--green)}
.on-track-car .clock{margin-left:auto;font-size:17px;font-variant-numeric:tabular-nums}
.lap-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.lap-feed li{display:grid;grid-template-columns:minmax(0,1fr) auto auto 64px auto;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.lap-feed .lap-time{font-size:17px;font-weight:500}
.lap-feed .tag{text-align:right}
.lap-feed li.pb .lap-time,.lap-feed li.pb .tag{color:var(--green)}
.lap-feed li.overall .lap-time,.lap-feed li.overall .tag{color:var(--lime)}
@keyframes zrNewLap{from{background:rgba(200,255,46,.16)}to{background:transparent}}
.lap-feed li.new{animation:zrNewLap 2.5s ease-out}
@media (max-width:520px){
  .hide-s{display:none}
  .lap-feed li{grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"name name time" "lap tag at";gap:6px 12px}
  .lap-feed .label{grid-area:name}
  .lap-feed .lap-time{grid-area:time;text-align:right}
  .lap-feed li>.eyebrow:not(.tag){grid-area:lap}
  .lap-feed .tag{grid-area:tag;text-align:left}
  .lap-feed time{grid-area:at;text-align:right;font-size:13px}
}
@media (prefers-reduced-motion:reduce){.lap-feed li.new{animation:none}}
