@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=Space+Grotesk:wght@600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#2fcbbd;--accent:#ea3373;--danger:#ff4e73;color:#f7f8ff;background:#080b14;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app,.shell{width:100%;height:100%;margin:0;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}.shell{background:#080b14;position:relative}.game-canvas,.game-canvas canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.glass{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#0c1121e0,#0d11209e);border:1px solid #ffffff1f;box-shadow:0 18px 70px #00000052}.broadcast-header{z-index:3;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;height:84px;padding:14px 20px;display:grid;position:absolute;top:22px;left:22px;right:22px}.brand-mark{background:color-mix(in srgb, var(--primary) 20%, transparent);border:1px solid color-mix(in srgb, var(--primary) 65%, white);border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.brand-mark span{background:linear-gradient(135deg, white, var(--accent));width:20px;height:20px;box-shadow:0 0 28px var(--accent);border-radius:50%}.eyebrow{letter-spacing:.19em;color:var(--accent);margin:0 0 3px;font-size:10px;font-weight:800;line-height:1}h1,h2{margin:0;font-family:Space Grotesk,Inter,sans-serif}h1{letter-spacing:-.04em;font-size:clamp(18px,2vw,27px)}h2{letter-spacing:-.035em;font-size:24px}.race-clock{text-align:right;min-width:164px}.race-clock span{color:var(--accent);letter-spacing:.16em;font-size:10px;font-weight:800;display:block}.race-clock strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin-top:4px;font-family:Space Grotesk,monospace;font-size:24px;display:block}.leaderboard{z-index:3;border-radius:18px;width:min(330px,100vw - 44px);padding:15px;position:absolute;top:126px;left:22px}.leaderboard .panel-title{cursor:pointer;-webkit-user-select:none;user-select:none}.leaderboard.collapsed{width:auto;padding:10px 14px}.leaderboard.collapsed .standings{display:none}.leaderboard.collapsed .panel-title{margin-bottom:0}.panel-title{letter-spacing:.12em;justify-content:space-between;align-items:center;gap:10px;margin:1px 4px 11px;font-size:11px;font-weight:800;display:flex}.panel-title small{color:#ffffff7a;font-size:9px}.standings{gap:5px;display:grid}.standing{background:#ffffff0e;border:1px solid #ffffff0b;border-radius:9px;grid-template-columns:28px 18px 1fr auto;align-items:center;gap:8px;min-width:0;height:34px;padding:0 9px;font-size:12px;display:grid}.standing:first-child{background:linear-gradient(90deg, color-mix(in srgb, var(--primary) 36%, transparent), #ffffff0e);border-color:color-mix(in srgb, var(--primary) 52%, transparent)}.standing .position{color:#ffffff7a;font-variant-numeric:tabular-nums;font-weight:800}.standing .swatch{background:var(--marble);width:13px;height:13px;box-shadow:inset -2px -2px 4px #00000040, 0 0 8px var(--marble);border-radius:50%}.standing strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.standing small{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.standing.finished small{color:#ffe278}.setup-panel{z-index:5;border-radius:20px;width:min(370px,100vw - 44px);padding:20px;transition:opacity .25s,transform .25s;position:absolute;top:126px;right:22px}.setup-heading{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.icon-button{color:#fff;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:9px;width:32px;height:32px;font-size:22px}label{color:#ffffffa8;letter-spacing:.05em;gap:7px;margin-top:12px;font-size:11px;font-weight:700;display:grid}label small{float:right;color:#fff6;font-weight:400}input,textarea,select{color:#fff;background:#04070fa3;border:1px solid #ffffff1f;border-radius:10px;outline:none;width:100%;padding:10px 11px;transition:border-color .18s,box-shadow .18s}select option{background:#0d1222}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}input[type=color]{cursor:pointer;height:42px;padding:5px}textarea{resize:vertical;height:142px;font-size:12px;line-height:1.45}textarea.invalid{border-color:var(--danger);animation:.25s linear 2 shake}.color-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.button-row{grid-template-columns:.8fr 1.2fr;gap:10px;margin-top:16px;display:grid}.button-row button{color:#fff;border:0;border-radius:10px;min-height:43px;font-weight:800}.secondary{background:#ffffff17;border:1px solid #ffffff1f!important}.primary{background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 70%, var(--accent)));box-shadow:0 9px 30px color-mix(in srgb, var(--primary) 35%, transparent)}.hint{color:#ffffff61;text-align:center;margin:12px 0 0;font-size:10px}.hint code{color:#ffffffb8}.show-setup{z-index:6;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d1222cc;border:1px solid #ffffff29;border-radius:10px;padding:10px 14px;display:none;position:absolute;bottom:22px;right:22px}.controls-hidden .setup-panel{opacity:0;pointer-events:none;transform:translate(25px)}.controls-hidden .show-setup{display:block}.broadcast-mode .show-setup{display:none}.home-fixed{z-index:6;color:#ffffffe6;letter-spacing:.12em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d1222cc;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:7px;padding:10px 15px;font-size:11px;font-weight:800;text-decoration:none;transition:background .15s,border-color .15s;display:none;position:absolute;top:126px;right:22px}.home-fixed:before{content:"←";font-size:13px;line-height:1}.home-fixed:hover{background:#0d1222f2;border-color:#ffffff52}.controls-hidden .home-fixed{display:inline-flex}body.broadcast-mode .home-fixed{display:none}@media (width<=760px){.home-fixed{padding:8px 12px;font-size:10px;top:90px;right:10px}}.stop-race{z-index:7;letter-spacing:.01em;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#d32f58eb;border:1px solid #fff3;border-radius:999px;align-items:center;gap:8px;padding:11px 22px;font:700 14px/1 inherit;transition:background .15s,transform .12s;display:none;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 10px 26px -8px #b41e46b3}.stop-race:before{content:"";background:#fff;border-radius:2px;width:10px;height:10px}.stop-race:hover{background:#e03460}.stop-race:active{transform:translate(-50%)scale(.97)}.stop-race.armed{background:#961234f5;box-shadow:0 0 0 3px #d32f5859,0 10px 26px -8px #b41e46b3}body[data-race-state=racing] .stop-race,body[data-race-state=countdown] .stop-race{display:inline-flex}body.broadcast-mode .stop-race{display:none!important}.record-toggle{color:#ffffffb8;letter-spacing:.02em;cursor:pointer;align-items:center;gap:9px;margin-top:14px;font-size:12px;font-weight:700;display:flex}.record-toggle input{width:17px;height:17px;accent-color:var(--primary);cursor:pointer;flex:none}.record-toggle span{align-items:baseline;gap:7px;display:inline-flex}.record-toggle small{color:#fff6;letter-spacing:.04em;text-transform:uppercase;font-size:9px;font-weight:600}.download-chip{z-index:7;color:#05312c;letter-spacing:.01em;background:var(--primary);box-shadow:0 10px 26px -8px color-mix(in srgb, var(--primary) 70%, transparent);border-radius:999px;padding:11px 18px;font-size:13px;font-weight:800;text-decoration:none;position:absolute;bottom:68px;right:22px}.download-chip:before{content:"↓";margin-right:7px;font-weight:900}.download-chip[hidden]{display:none}body.broadcast-mode .download-chip{display:none!important}.record-warning{z-index:8;color:#fff;background:#d32f58f0;border-radius:999px;padding:9px 16px;font-size:12px;font-weight:700;position:absolute;top:96px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px -6px #b41e4699}.record-warning[hidden]{display:none}.countdown{z-index:8;pointer-events:none;opacity:0;color:#fff;text-shadow:0 0 30px var(--primary), 0 12px 70px #000000bf;place-items:center;font-family:Space Grotesk,sans-serif;font-size:clamp(100px,18vw,280px);font-weight:700;transition:opacity .12s,transform .18s cubic-bezier(.2,.8,.2,1);display:grid;position:absolute;inset:0;transform:scale(.72)}.countdown.visible{opacity:.94;transform:scale(1)}.winner-card{z-index:8;text-align:center;opacity:0;pointer-events:none;border-radius:24px;width:min(430px,100vw - 40px);padding:28px;transition:opacity .3s,transform .4s cubic-bezier(.2,.8,.2,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-43%)scale(.9)}.winner-card.visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.winner-card h2{margin-top:12px;font-size:36px}.winner-card small{color:var(--accent);margin-top:5px;font-weight:800;display:block}.winner-presenter{color:#ffffffb8;margin:14px 0 0;font-size:13px}.winner-presenter strong{color:#fff}.winner-fairness{color:#ffffff6b;max-width:320px;margin:8px auto 0;font-size:10px;line-height:1.4}.winner-marble{background:radial-gradient(circle at 32% 26%, white 0 5%, var(--marble) 27%, color-mix(in srgb, var(--marble) 45%, black));width:82px;height:82px;box-shadow:inset -12px -15px 24px #00000059, 0 0 48px var(--marble);border-radius:50%;margin:15px auto 0}.corner-tag{z-index:3;color:#ffffff85;letter-spacing:.14em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#070a1499;border:1px solid #ffffff1a;border-radius:999px;padding:9px 12px;font-size:9px;font-weight:800;position:absolute;bottom:24px;right:24px}.cam-chip{z-index:6;color:#fff9;letter-spacing:.14em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#070a1499;border:1px solid #ffffff24;border-radius:999px;padding:9px 13px;font-size:9px;font-weight:800;position:absolute;bottom:22px;left:22px}.cam-chip.manual{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 55%, transparent)}.broadcast-mode .cam-chip{display:none}.cam-intro{z-index:9;text-align:left;color:#f4f6ff;opacity:0;pointer-events:none;border-radius:16px;width:min(370px,100vw - 24px);padding:15px 18px 16px;transition:opacity .25s,transform .25s cubic-bezier(.2,.8,.2,1);position:absolute;top:118px;left:50%;transform:translate(-50%)translateY(-8px)}.cam-intro.visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.cam-intro strong{letter-spacing:-.01em;margin-bottom:5px;font-family:Space Grotesk,Inter,sans-serif;font-size:15px;display:block}.cam-intro p{color:#ffffffd1;margin:0;font-size:12.5px;line-height:1.5}.cam-intro b{color:var(--primary);font-weight:700}.cam-intro-x{color:#ffffffb3;cursor:pointer;background:#ffffff14;border:0;border-radius:7px;width:24px;height:24px;font-size:16px;line-height:1;position:absolute;top:8px;right:9px}.cam-intro-x:hover{color:#fff;background:#ffffff29}body.broadcast-mode .cam-intro{display:none!important}#game-canvas canvas{touch-action:none}.streamer-handle{z-index:6;border:1px solid color-mix(in srgb, var(--primary) 45%, transparent);color:#fff;letter-spacing:.01em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#070a149e;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:800;transition:opacity .3s;position:absolute;top:92px;right:24px}.streamer-handle.visible{opacity:1}body[data-race-state=lobby] .streamer-handle{opacity:0}.branding-block{border-top:1px solid #ffffff14;margin:2px 0 0;padding-top:8px}.branding-block>summary{cursor:pointer;letter-spacing:.1em;text-transform:uppercase;color:#ffffff9e;padding:4px 0;font-size:11px;font-weight:800}.branding-block>summary:hover{color:#fff}.branding-block label{margin-top:8px}.branding-block .attn{color:#fff6;text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:700}.branding-block .attn.premium{color:var(--accent)}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (width<=760px){.broadcast-header{border-radius:14px;height:70px;padding:10px 13px;top:10px;left:10px;right:10px}.brand-mark{width:42px;height:42px}.race-clock{min-width:118px}.race-clock strong{font-size:18px}.leaderboard{width:196px;padding:10px;top:90px;left:10px}.panel-title{margin-bottom:8px;font-size:10px}.standings{gap:4px}.standing{border-radius:7px;grid-template-columns:20px 13px 1fr auto;gap:5px;height:26px;padding:0 7px;font-size:10px}.standing .swatch{width:10px;height:10px}.setup-panel{top:90px;right:10px}.standing:nth-child(n+6),.corner-tag{display:none}.cam-chip{bottom:12px;left:10px}}
