*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overscroll-behavior:none}body{font-family:system-ui,sans-serif;background:var(--tg-theme-bg-color, #171d4d);color:var(--tg-theme-text-color, #fff)}#app{display:flex;flex-direction:column;height:100%;align-items:center}#app.playing{background:#171d4d}canvas{width:100%;height:100%;touch-action:none;display:block}.screen{display:flex;flex-direction:column;gap:16px;padding:24px;margin:auto 0;width:100%;max-width:420px;text-align:center;animation:screen-in .28s cubic-bezier(.2,.9,.3,1) both}.screen>*{animation:rise-in .3s cubic-bezier(.2,.9,.3,1) both}.screen>:nth-child(2){animation-delay:.05s}.screen>:nth-child(3){animation-delay:.1s}.screen>:nth-child(4){animation-delay:.15s}.screen>:nth-child(5){animation-delay:.2s}.screen>:nth-child(n+6){animation-delay:.25s}@keyframes screen-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}}h1{font-size:32px;font-weight:800}h2{font-size:24px;font-weight:700}h3{font-size:18px;font-weight:600}.screen p{font-size:16px;line-height:1.5}.sub{color:var(--tg-theme-hint-color, #9a9ab8)}.big-emoji{font-size:64px;line-height:1.15}button.primary{padding:14px 20px;font-size:17px;font-weight:600;border:0;border-radius:12px;background:var(--tg-theme-button-color, #f8a04c);color:var(--tg-theme-button-text-color, #fff);cursor:pointer;transition:transform .1s ease,filter .15s ease,opacity .15s ease}button.primary:active{transform:scale(.96);filter:brightness(1.15)}button.primary:disabled{opacity:.55}button.primary.pulse{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.04);filter:brightness(1.12)}}@media (prefers-reduced-motion: reduce){button.primary.pulse{animation:none}}.screen ol.board{list-style-position:inside;text-align:center}ol.board li{padding:6px 10px;border-radius:8px}ol.board li.me{background:#f8a04c33;font-weight:700}.score-num{font-size:56px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.waiting{animation:waiting-pulse 1.4s ease-in-out infinite}@keyframes waiting-pulse{50%{opacity:.45}}.verdict{font-size:34px;opacity:0;animation:verdict-in .45s cubic-bezier(.2,.9,.3,1) 1.05s both}.verdict.lose{animation:verdict-in .45s cubic-bezier(.2,.9,.3,1) 1.05s both,shake .4s linear 1.1s}@keyframes verdict-in{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:50}.wait-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0a0a1459;animation:fade-in .2s ease .15s both}@keyframes fade-in{0%{opacity:0}}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:var(--tg-theme-button-color, #f8a04c);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.screen,.screen>*,.waiting,.wait-overlay{animation:none}.verdict,.verdict.lose{animation:none;opacity:1}button.primary{transition:none}.spinner{animation-duration:1.6s}}
