*{box-sizing:border-box;margin:0;padding:0}html,body{background:#0d0820;height:100%;overflow:hidden}#wrap{justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#stage{color:#fff;background:#1a1036;font-family:Be Vietnam Pro,system-ui,sans-serif;position:relative;overflow:hidden}#shake{position:absolute;inset:0}#stage.shaking #shake{animation:.45s cubic-bezier(.36,.07,.19,.97) shake}@keyframes shake{10%,90%{transform:translate(-6px,2px)}20%,80%{transform:translate(10px,-4px)}30%,50%,70%{transform:translate(-14px,6px)}40%,60%{transform:translate(14px,-6px)}}#sky{background:linear-gradient(#1c0f45 0%,#4a1f78 34%,#b2407e 62%,#ff8a5c 86%,#ffc36b 100%);height:340px;position:absolute;top:0;left:0;right:0;overflow:hidden}#sun{background:radial-gradient(circle,#fff3c4 0 30%,#ffd36b 46%,#ffa05a00 70%);border-radius:50%;width:300px;height:300px;margin-left:-150px;animation:6s ease-in-out infinite alternate sun;position:absolute;top:168px;left:50%}@keyframes sun{to{opacity:.85;transform:scale(1.08)}}.cloud{filter:blur(1px);background:#ffd6e659;border-radius:40px;height:34px;animation:linear infinite drift;position:absolute}.cloud:before{content:"";background:inherit;border-radius:50%;width:46%;height:40px;position:absolute;top:-18px;left:30%}.c1{width:210px;animation-duration:60s;top:170px}.c2{opacity:.7;width:150px;animation-duration:85s;animation-delay:-40s;top:222px}.c3{opacity:.55;width:260px;animation-duration:110s;animation-delay:-70s;top:140px}@keyframes drift{0%{transform:translate(-300px)}to{transform:translate(1200px)}}#skyline svg{width:100%;height:100%;display:block}#skyline{width:1080px;height:200px;position:absolute;bottom:0;left:0}#title{text-align:center;z-index:2;position:absolute;top:136px;left:0;right:0}#title h1{letter-spacing:.01em;color:#fff;-webkit-text-stroke:14px #2a0f55;paint-order:stroke fill;text-shadow:0 9px #2a0f55,0 18px 30px #14003280;font:800 104px/.9 "Baloo 2",system-ui}#title h1:first-line{color:#fff}#sub{letter-spacing:.04em;background:#1e0a3c99;border-radius:999px;align-items:center;gap:14px;margin-top:14px;padding:8px 26px;font:800 30px/1.2 "Baloo 2",system-ui;display:inline-flex;box-shadow:inset 0 0 0 2px #ffffff2e}#sub .dot{background:#ffd34d;border-radius:50%;width:8px;height:8px}#round{color:#ffd34d}#track{background:linear-gradient(#3a3358,#2d2847);height:900px;position:absolute;top:340px;left:0;right:0}#rail{z-index:3;background:repeating-linear-gradient(90deg,#ff3b5c 0 40px,#fff 40px 80px);height:18px;position:absolute;top:-14px;left:0;right:0;box-shadow:0 6px 14px #00000059}#lanes{flex-direction:column;display:flex;position:absolute;inset:4px 0 0}.lane{border-bottom:5px dashed #ffffff47;flex:1;transition:background .4s;position:relative}.lane:nth-child(odd){background:#ffffff06}.lane:last-child{border-bottom:0}.lane.lead{background:linear-gradient(90deg, color-mix(in srgb, var(--c) 30%, transparent), transparent 70%)}.badge{background:linear-gradient(160deg, color-mix(in srgb, var(--c) 85%, #fff 15%), color-mix(in srgb, var(--c) 70%, #000 30%));z-index:2;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;width:150px;height:116px;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%);box-shadow:inset 0 -6px #00000038,0 10px 20px -8px #0009}.badge .num{text-shadow:0 4px #00000040;font:800 62px/.9 "Baloo 2",system-ui}.badge .name{white-space:nowrap;text-overflow:ellipsis;max-width:140px;font:800 23px/1.2 Be Vietnam Pro,system-ui;overflow:hidden}.badge .cup{color:#3a2500;background:#ffd34d;border-radius:999px;justify-content:center;align-items:center;gap:2px;min-width:46px;height:46px;padding:0 10px;font:800 26px/1 "Baloo 2",system-ui;display:none;position:absolute;top:-12px;right:-12px;box-shadow:0 4px #c99700}.badge .cup.on{display:flex}.badge .members{white-space:nowrap;background:#1a1036;border-radius:999px;padding:4px 10px;font:800 20px/1 "Baloo 2",system-ui;position:absolute;bottom:-10px;right:-10px;box-shadow:inset 0 0 0 2px #ffffff40}.badge .members:empty{display:none}.mark{z-index:1;border-left:3px solid #ffffff1a;width:0;position:absolute;top:0;bottom:0}.mark span{white-space:nowrap;opacity:.85;background:#140832b3;border-radius:8px;padding:2px 10px;font:800 22px/1.2 "Baloo 2",system-ui;position:absolute;bottom:6px;left:0;transform:translate(-50%)}.rider{z-index:4;will-change:transform;width:190px;height:142px;margin-top:-82px;position:absolute;top:50%;left:0}.rider svg{width:100%;height:100%;overflow:visible}.rider .body{animation:.32s ease-in-out infinite alternate paused bob}.rider.moving .body{animation-play-state:running}@keyframes bob{to{transform:translateY(-5px)}}.rider .flag{transform-origin:14px 22px;animation:.6s ease-in-out infinite alternate wave}@keyframes wave{to{transform:skewY(-8deg)scaleX(.92)}}.rider .flame{transform-origin:20px 104px;opacity:0;transition:opacity .15s,transform .15s;transform:scaleX(.2)}.rider.turbo .flame{opacity:1;animation:80ms steps(2,end) infinite flick;transform:scaleX(1)}@keyframes flick{to{transform:scaleX(1.25)scaleY(.9)}}.rider .crown{opacity:0;transform-origin:86px -8px;transition:all .35s cubic-bezier(.3,1.6,.5,1);transform:translateY(14px)scale(.5)}.lane.lead .rider .crown{opacity:1;transform:none}.rider .ice{opacity:0;transition:opacity .25s}.rider.frozen .ice{opacity:1}.rider.frozen .body{animation-play-state:paused}.speedlines{opacity:0;background:repeating-linear-gradient(#0000 0 14px,#ffffff8c 14px 18px);width:140px;height:80px;transition:opacity .2s;position:absolute;top:30px;right:100%;-webkit-mask:linear-gradient(90deg,#0000,#000);mask:linear-gradient(90deg,#0000,#000)}.rider.turbo .speedlines{opacity:1}.meter{white-space:nowrap;background:#00000073;border-radius:999px;margin-left:4px;padding:4px 12px;font:800 26px/1 "Baloo 2",system-ui;position:absolute;top:22px;left:100%}.timer{color:#04263a;background:#4dd9ff;border-radius:999px;padding:4px 14px;font:800 28px/1 "Baloo 2",system-ui;display:none;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.rider.frozen .timer{display:block}#finish{z-index:2;background:conic-gradient(#fff 25%, #111 0 50%, #fff 0 75%, #111 0) 0 0 / 22px 22px;width:44px;position:absolute;top:-14px;bottom:0;left:996px;box-shadow:0 0 30px #ffffff59}#finish span{color:#3a2500;background:#ffd34d;border-radius:12px;padding:6px 16px;font:800 30px/1 "Baloo 2",system-ui;position:absolute;top:-66px;left:50%;transform:translate(-50%);box-shadow:0 5px #c99700}#fx{pointer-events:none;z-index:6;position:absolute;inset:0}.pop{z-index:7;color:#1a1036;white-space:nowrap;pointer-events:none;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:5px 16px 5px 5px;font:800 30px/1 "Baloo 2",system-ui;animation:1.3s cubic-bezier(.2,1.2,.4,1) forwards pop;display:flex;position:absolute;box-shadow:0 8px 18px #00000059}.pop .lk-av{font-size:52px}@keyframes pop{0%{opacity:0;transform:translate(-50%,20px)scale(.5)}15%{opacity:1;transform:translate(-50%,-10px)scale(1.08)}75%{opacity:1;transform:translate(-50%,-40px)scale(1)}to{opacity:0;transform:translate(-50%,-80px)scale(.95)}}.missile{z-index:8;pointer-events:none;width:150px;height:70px;position:absolute}#stage.sprint:after{content:"";z-index:40;pointer-events:none;animation:.8s ease-in-out infinite alternate pulse;position:absolute;inset:0;box-shadow:inset 0 0 0 10px #ff2d55d9,inset 0 0 120px #ff2d5580}@keyframes pulse{0%{opacity:.35}to{opacity:1}}#howto{z-index:5;justify-content:center;gap:12px;display:flex;position:absolute;top:1258px;left:0;right:0}#howto span{white-space:nowrap;background:#ffffff1f;border-radius:999px;align-items:center;gap:10px;padding:9px 20px;font:700 27px/1.1 Be Vietnam Pro,system-ui;display:inline-flex;box-shadow:inset 0 0 0 2px #ffffff29}#howto b{color:#ffd34d;font:800 30px/1 "Baloo 2",system-ui}#gifts{z-index:5;position:absolute;top:1330px;left:28px;right:28px}#feed{z-index:5;justify-content:flex-end;height:130px;position:absolute;top:1480px;left:28px;right:28px}#ground{z-index:0;background:radial-gradient(120% 60% at 50% 0,#9b5cff59,#0000 70%),linear-gradient(#24164a,#120a2a);position:absolute;inset:1240px 0 0}#overlay{pointer-events:none;z-index:50;position:absolute;inset:0}#lanes.dense .rider{width:152px;height:114px;margin-top:-64px}#lanes.dense .badge{height:92px}
