.sin-race{--race-red:var(--primary);--race-yellow:oklch(90% .18 98);--race-blue:oklch(73% .15 239);--race-green:oklch(83% .2 148);--race-purple:oklch(73% .2 310);--race-orange:oklch(78% .17 53);--race-surface:var(--card);--race-glow:var(--silver);isolation:isolate;background:var(--background);min-width:900px;height:100svh;min-height:100svh;color:var(--foreground);letter-spacing:0;flex-direction:column;padding:24px 4%;display:flex;position:relative;overflow:hidden}.race-tone-red{--runner-color:var(--race-red)}.race-tone-yellow{--runner-color:var(--race-yellow)}.race-tone-blue{--runner-color:var(--race-blue)}.race-tone-green{--runner-color:var(--race-green)}.race-tone-purple{--runner-color:var(--race-purple)}.race-tone-orange{--runner-color:var(--race-orange)}.race-header{z-index:2;justify-content:space-between;align-items:center;gap:24px;display:flex}.race-wordmark{font-family:var(--font-display);white-space:nowrap;font-size:32px;font-weight:700}.race-wordmark span{color:var(--primary)}.race-header-note{color:var(--silver);text-transform:uppercase;font-size:16px}.race-select{z-index:1;flex-direction:column;flex:1;justify-content:center;gap:26px;display:flex}.race-headline{text-align:center;margin:0;font-size:76px;line-height:1.1}.race-headline span{color:var(--primary)}.race-cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;display:grid}.sin-race .race-card{border:1px solid color-mix(in oklch,var(--runner-color) 65%,var(--border));height:min(33vh,310px);min-height:190px;color:var(--runner-color);background:color-mix(in oklch,var(--runner-color) 8%,var(--background));white-space:normal;border-radius:8px;flex-direction:column;justify-content:space-between;gap:8px;padding:22px 12px;transition:transform .18s,box-shadow .18s,background .18s;display:flex}.sin-race .race-card:hover,.sin-race .race-card[aria-pressed=true]{background:color-mix(in oklch,var(--runner-color) 18%,var(--background));box-shadow:0 0 32px color-mix(in oklch,var(--runner-color) 24%,transparent), inset 0 0 28px color-mix(in oklch,var(--runner-color) 10%,transparent);transform:translateY(-9px)}.race-card-number{align-self:flex-start;font-size:28px;line-height:1}.sin-race .race-card .race-card-horse{width:110px;height:72px;filter:drop-shadow(0 0 12px color-mix(in oklch,var(--runner-color) 65%,transparent));flex-shrink:1}.race-card-color{font-size:26px;font-weight:700;line-height:1}.race-card-sin{color:var(--silver);font-family:var(--font-display);font-size:22px;font-style:italic;line-height:1}.race-select-actions{flex-direction:column;align-items:center;gap:18px;display:flex}.race-support{height:40px;color:var(--runner-color,var(--silver));margin:0;font-size:28px;font-weight:600}.sin-race .race-command{border-radius:6px;min-width:360px;min-height:76px;padding:16px 40px;font-size:27px;font-weight:600}.race-footer{color:var(--muted-foreground);text-align:center;z-index:2;padding-top:16px;font-size:14px;position:relative}.race-racing{z-index:1;flex-direction:column;flex:1;min-height:0;display:flex}.race-live{justify-content:space-between;align-items:center;gap:20px;padding:20px 0 18px;display:flex}.race-live h1{margin:0;font-size:38px}.race-live-leader{color:var(--runner-color);font-size:28px;font-weight:600}.race-live-leader small{color:var(--silver);margin-bottom:4px;font-size:15px;display:block}.race-track{border-top:1px solid var(--border);flex:1;grid-template-rows:repeat(6,minmax(0,1fr));min-height:0;display:grid;position:relative}.race-lane{border-bottom:1px solid color-mix(in oklch,var(--runner-color) 35%,var(--border));background:linear-gradient(90deg,color-mix(in oklch,var(--runner-color) 5%,transparent),color-mix(in oklch,var(--runner-color) 10%,transparent));position:relative}.race-lane.chosen{background:linear-gradient(90deg,color-mix(in oklch,var(--runner-color) 14%,transparent),color-mix(in oklch,var(--runner-color) 22%,transparent));box-shadow:inset 0 0 22px color-mix(in oklch,var(--runner-color) 10%,transparent)}.race-lane-label{color:var(--runner-color);opacity:.8;font-size:15px;font-weight:600;position:absolute;top:12px;left:14px}.race-lane-label span{color:var(--silver);margin-left:12px;font-size:12px}.race-runway{height:0;position:absolute;top:50%;left:18px;right:8%}.race-runner{width:120px;height:76px;color:var(--runner-color);will-change:left;position:absolute;top:-30px;left:0}.race-runner svg{width:112px;height:74px;filter:drop-shadow(0 0 8px var(--runner-color));animation:.23s ease-in-out infinite alternate race-gallop}.race-leg-front{transform-origin:91px 49px;animation:.23s ease-in-out infinite alternate race-leg}.race-leg-back{transform-origin:43px 47px;animation:.23s ease-in-out infinite alternate-reverse race-leg}.race-number{background:var(--runner-color);width:34px;height:34px;color:var(--ink);border:2px solid var(--paper);border-radius:50%;place-items:center;font-size:23px;font-weight:700;display:grid;position:absolute;top:7px;right:0}.race-trail{background:linear-gradient(90deg,transparent,color-mix(in oklch,var(--runner-color) 60%,transparent));filter:blur(5px);border-radius:50%;width:125px;height:18px;position:absolute;top:33px;right:100px}.race-finish{background:var(--paper);width:3px;box-shadow:0 0 15px var(--silver);z-index:3;position:absolute;top:0;bottom:0;right:8%}.race-finish span{color:var(--silver);font-size:12px;font-weight:700;position:absolute;top:-23px;right:-27px}.race-light{pointer-events:none;background:linear-gradient(115deg,transparent 20%,color-mix(in oklch,var(--primary) 12%,transparent) 45%,transparent 70%);opacity:.5;z-index:0;position:absolute;inset:0}.race-is-running .race-light{animation:2s ease-in-out infinite alternate race-crowd}.race-result{text-align:center;z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:22px;display:flex;position:relative}.race-result h1{color:var(--runner-color);font-family:var(--font-sans);margin:0;font-size:58px;font-weight:700;line-height:1.1}.race-outcome{font-size:114px;font-family:var(--font-display);color:var(--silver);margin:0;font-weight:700;line-height:1.1}.race-is-win .race-outcome{color:var(--foreground);text-shadow:0 0 38px color-mix(in oklch,var(--runner-color) 65%,transparent)}.race-is-win .race-light{background:var(--runner-color);opacity:.08;animation:1.2s ease-in-out 4 race-celebrate}.race-podium{justify-content:center;align-items:flex-end;gap:36px;padding:12px 0;display:flex}.race-podium-place{color:var(--runner-color);border-bottom:3px solid var(--runner-color);padding:12px 20px;font-size:22px}.race-podium-place strong{color:var(--silver);font-size:36px;font-family:var(--font-display);margin-bottom:8px;display:block}.race-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.race-confetti i{background:var(--runner-color);width:9px;height:18px;animation:4s ease-in infinite race-confetti;position:absolute;top:-25px}@keyframes race-gallop{0%{transform:translateY(-2px)rotate(-2deg)}to{transform:translateY(3px)rotate(1deg)}}@keyframes race-leg{0%{transform:rotate(-22deg)}to{transform:rotate(22deg)}}@keyframes race-crowd{0%{opacity:.25}to{opacity:.9}}@keyframes race-celebrate{0%,to{opacity:.07}50%{opacity:.22}}@keyframes race-confetti{to{transform:translateY(105vh)rotate(540deg)}}@media (width>=1600px){.race-headline{font-size:96px}.race-card-color{font-size:34px}.race-card-sin{font-size:28px}.race-result h1{font-size:78px}.race-outcome{font-size:144px}.race-live h1{font-size:48px}.race-live-leader{font-size:38px}}@media (height<=700px){.sin-race{padding-top:16px;padding-bottom:12px}.race-headline{font-size:58px}.race-select{gap:18px}.race-result{gap:14px}.race-result h1{font-size:46px}.race-outcome{font-size:84px}.race-runner{height:60px;top:-23px}.race-runner svg{height:60px}}@media (prefers-reduced-motion:reduce){.sin-race *,.sin-race :before,.sin-race :after{transition:none!important;animation:none!important}.race-confetti{display:none}}.race-guest-note{z-index:2;text-align:center;color:var(--silver);margin:8px 0;font-size:16px;position:relative}.race-claim strong{font-family:var(--font-sans);color:var(--runner-color);font-size:64px;display:block}.race-claim p{color:var(--silver);margin:0;font-size:18px}.race-waiting .race-waiting-name{color:var(--foreground)}.race-waiting-code{color:var(--primary);font-size:56px;font-family:var(--font-sans)}.race-waiting-colours{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;width:min(100%,720px);margin-top:24px;display:grid}.race-waiting-colour{color:var(--runner-color);flex-direction:column;align-items:center;gap:8px;min-width:0;display:flex}.race-waiting-colour svg{width:100%;max-width:90px;height:64px;filter:drop-shadow(0 0 8px var(--runner-color))}.race-waiting-colour span{font-size:14px;font-weight:700}@media (width<=899px){.sin-race{width:100%;min-width:0;height:auto;min-height:100svh;padding:16px;overflow-x:clip}.race-header{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.race-wordmark{min-width:0;font-size:26px}.race-header-note{font-size:13px}.race-select{gap:20px;padding:16px 0}.race-headline{font-size:36px}.race-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sin-race .race-card{gap:6px;min-width:0;height:176px;min-height:156px;padding:12px 6px}.race-card-number{font-size:18px}.sin-race .race-card .race-card-horse{width:70px;height:52px}.race-card-color{font-size:16px}.race-card-sin{font-size:18px}.race-support{text-align:center;height:auto;min-height:24px;font-size:16px}.sin-race .race-command{width:100%;min-width:0;min-height:60px;padding:14px 12px;font-size:20px}.race-live{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:22px 0 30px;display:grid}.race-live h1{font-size:24px}.race-live-leader{font-size:16px}.race-live-leader small{font-size:10px}.race-track{min-height:450px}.race-lane-label{font-size:10px;top:5px;left:5px}.race-lane-label span{margin-left:6px;font-size:9px}.race-runway{top:60%;left:5px;right:8%}.race-runner{width:64px;height:46px;top:-20px}.race-runner svg{width:60px;height:44px}.race-number{border-width:1px;width:22px;height:22px;font-size:14px;top:3px}.race-trail{width:50px;height:10px;top:22px;right:50px}.race-finish span{font-size:10px;right:-17px}.race-result{gap:20px;min-width:0;padding:28px 0}.race-result h1{overflow-wrap:anywhere;font-size:28px}.race-outcome{font-size:48px}.race-claim strong{font-size:56px}.race-podium{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;display:grid}.race-podium-place{padding:10px 2px;font-size:12px}.race-podium-place strong{font-size:24px}.race-footer{margin-top:auto;font-size:11px}.race-waiting-colours{gap:4px}.race-waiting-colour svg{height:40px}.race-waiting-colour span{font-size:9px}.race-waiting-code{font-size:48px}}.house-wall{min-width:0;padding:32px 4%}.house-wall .race-wordmark{font-size:40px}.house-idle{flex:1;grid-template-columns:minmax(0,1fr) minmax(260px,35%);align-items:center;gap:4%;min-height:0;display:grid}.house-idle-brand{font-family:var(--font-display);margin:0 0 36px;font-size:140px;font-weight:700;line-height:1}.house-idle-brand span{color:var(--primary)}.house-qr{text-align:center}.house-qr svg{background:var(--paper);width:min(100%,380px);height:auto;color:var(--ink);padding:18px}.house-qr p{font-size:28px;font-family:var(--font-display);margin-top:20px}.house-counters{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.house-counter strong{font-variant-numeric:tabular-nums;font-size:64px;font-weight:700;line-height:1.2;display:block}.house-counter small{color:var(--silver);font-size:22px}.house-counter-deadline{grid-column:1/-1}.house-ticker{border-top:1px solid var(--border);color:var(--silver);flex-shrink:0;padding:22px 0;font-size:24px;overflow:hidden}.house-ticker-line{gap:64px;width:max-content;animation:70s linear infinite house-ticker;display:flex}@keyframes house-ticker{to{transform:translate(-50%)}}.house-picking{flex:1;grid-template-rows:minmax(0,1fr) auto;gap:24px;min-height:0;display:grid}.house-picking-main{flex-direction:column;justify-content:center;gap:40px;min-height:0;display:flex}.house-joined{text-align:center;color:var(--silver);font-size:36px}.house-picking .house-joined{margin-top:-16px}.house-tally{grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;display:grid}.house-tally-colour{color:var(--runner-color);flex-direction:column;align-items:center;gap:14px;min-width:0;display:flex}.house-tally-colour svg{width:120px;height:90px;filter:drop-shadow(0 0 8px var(--runner-color))}.house-tally-colour strong{font-size:26px}.house-tally-number{font-size:60px;font-weight:700;line-height:1}.house-tally-meter{background:var(--secondary);width:100%;height:12px;overflow:hidden}.house-tally-meter i{background:var(--runner-color);height:100%;transition:width .35s;display:block}.house-wall .house-winning-colour{font-size:112px}.house-winner-names{overflow-wrap:anywhere;max-width:100%;max-height:38vh;font-size:40px;line-height:1.5;overflow:hidden}.house-winner-roll{animation:25s linear infinite alternate house-winners}@keyframes house-winners{0%,25%{transform:translateY(0)}to{transform:translateY(min(0px,38vh - 100%))}}.house-phone{z-index:40;width:100%;min-width:0;position:fixed;inset:0;overflow-y:auto}.house-join-banner{border:1px solid var(--primary);background:color-mix(in oklch, var(--primary) 14%, transparent);text-align:center;border-radius:12px;gap:12px;margin:24px 0 8px;padding:16px;display:grid}.house-join-banner p{margin:0;font-size:15px}.house-join-banner .race-command{width:100%}.house-admin{--race-red:var(--primary);--race-yellow:oklch(90% .18 98);--race-blue:oklch(73% .15 239);--race-green:oklch(83% .2 148);--race-purple:oklch(73% .2 310);--race-orange:oklch(78% .17 53)}.house-admin .house-tally,.house-admin .house-tally-colour{gap:8px}.house-admin .house-tally-colour svg{width:40px;height:32px}.house-admin .house-tally-colour strong{font-size:10px}.house-admin .house-tally-number{font-size:24px}.house-admin .house-tally-meter{height:6px}.house-admin .house-joined{font-size:18px}@media (width>=1600px){.house-idle-brand{font-size:180px}.house-counter strong{font-size:80px}.house-wall .race-lane-label{font-size:24px}.house-wall .race-lane-label span{font-size:18px}}@media (width<=899px){.house-phone .race-select{justify-content:center}.house-phone .race-headline{font-size:32px}.house-wall .house-idle{grid-template-columns:minmax(0,1fr) minmax(180px,35%)}.house-idle-brand{font-size:64px}.house-counter strong{font-size:32px}.house-counter small,.house-qr p{font-size:16px}.house-wall .house-tally{gap:8px}.house-wall .house-tally-colour strong{font-size:13px}.house-wall .house-tally-colour svg{width:60px;height:48px}.house-wall .house-winning-colour{font-size:60px}}@media (prefers-reduced-motion:reduce){.house-ticker-line,.house-winner-roll{animation:none}.house-tally-meter i{transition:none}}.house-join-qr{z-index:2;place-self:end start;align-items:center;gap:18px;max-width:100%;display:flex}.house-join-qr svg{background:var(--paper);width:150px;height:150px;color:var(--ink);flex-shrink:0;padding:10px}.house-join-qr p{font-family:var(--font-display);color:var(--silver);margin:0;font-size:24px}@media (width>=1600px){.house-join-qr svg{width:180px;height:180px}.house-join-qr p{font-size:28px}}@media (width<=899px){.house-join-qr{gap:10px}.house-join-qr svg{width:88px;height:88px;padding:6px}.house-join-qr p{font-size:15px}}.house-tally-colour small{opacity:.7;letter-spacing:.1em;font-size:.5em}.house-tally-colour{font-size:26px}.house-backing{flex-wrap:wrap;justify-content:center;gap:4px 14px;height:auto;display:flex}.house-backing span{color:var(--runner-color)}.house-picks-left{text-align:center;margin:0 0 8px}.race-claim{flex-direction:column;align-items:center;display:flex}.house-prize{text-align:center;max-width:18ch;margin:0;font-size:clamp(36px,5vw,72px);line-height:1.15}.house-prize strong{color:var(--runner-color)}
