[data-key-shape]{--page-px:4px}@media (min-width:680px){[data-key-shape]{--page-px:5px}}[data-key-shape=square] :is(:has(>[data-key-pixels]),[data-key-field]){border-radius:0}[data-key-shape=tight] :is(:has(>[data-key-pixels]),[data-key-field]){border-radius:4px}:is([data-key-shape=notch] :has(>[data-key-pixels]),[data-key-shape=steps] :has(>[data-key-pixels])){--x:var(--key-cx,var(--page-px));--y:var(--key-cy,var(--page-px));border-color:#0000;border-radius:0}[data-key-shape=notch] :has(>[data-key-pixels]){background:linear-gradient(var(--key-face) 0 0) center / calc(100% - 2 * var(--x) - 2px) calc(100% - 2px) no-repeat border-box, linear-gradient(var(--key-face) 0 0) center / calc(100% - 2px) calc(100% - 2 * var(--y) - 2px) no-repeat border-box, linear-gradient(var(--key-edge,var(--key-face)) 0 0) center / calc(100% - 2 * var(--x)) 100% no-repeat border-box, linear-gradient(var(--key-edge,var(--key-face)) 0 0) center / 100% calc(100% - 2 * var(--y)) no-repeat border-box}[data-key-shape=steps] :has(>[data-key-pixels]){background:linear-gradient(var(--key-face) 0 0) center / calc(100% - 4 * var(--x) - 2px) calc(100% - 2px) no-repeat border-box, linear-gradient(var(--key-face) 0 0) center / calc(100% - 2 * var(--x) - 2px) calc(100% - 2 * var(--y) - 2px) no-repeat border-box, linear-gradient(var(--key-face) 0 0) center / calc(100% - 2px) calc(100% - 4 * var(--y) - 2px) no-repeat border-box, linear-gradient(var(--key-edge,var(--key-face)) 0 0) center / calc(100% - 4 * var(--x)) 100% no-repeat border-box, linear-gradient(var(--key-edge,var(--key-face)) 0 0) center / calc(100% - 2 * var(--x)) calc(100% - 2 * var(--y)) no-repeat border-box, linear-gradient(var(--key-edge,var(--key-face)) 0 0) center / 100% calc(100% - 4 * var(--y)) no-repeat border-box}[data-key-shape=notch] [data-key-field]{--s:var(--page-px);clip-path:polygon(var(--s) 0, calc(100% - var(--s)) 0, calc(100% - var(--s)) var(--s), 100% var(--s), 100% calc(100% - var(--s)), calc(100% - var(--s)) calc(100% - var(--s)), calc(100% - var(--s)) 100%, var(--s) 100%, var(--s) calc(100% - var(--s)), 0 calc(100% - var(--s)), 0 var(--s), var(--s) var(--s));border-radius:0}[data-key-shape=steps] [data-key-field]{--s:var(--page-px);clip-path:polygon(calc(2 * var(--s)) 0, calc(100% - 2 * var(--s)) 0, calc(100% - 2 * var(--s)) var(--s), calc(100% - var(--s)) var(--s), calc(100% - var(--s)) calc(2 * var(--s)), 100% calc(2 * var(--s)), 100% calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) 100%, calc(2 * var(--s)) 100%, calc(2 * var(--s)) calc(100% - var(--s)), var(--s) calc(100% - var(--s)), var(--s) calc(100% - 2 * var(--s)), 0 calc(100% - 2 * var(--s)), 0 calc(2 * var(--s)), var(--s) calc(2 * var(--s)), var(--s) var(--s), calc(2 * var(--s)) var(--s));border-radius:0}
@keyframes pixels-word{0%{opacity:0;transform:translateY(.38em)}to{opacity:1;transform:none}}.pixels-word{opacity:0;animation:.7s cubic-bezier(.2,.9,.25,1) forwards pixels-word;display:inline-block}@keyframes pixels-slot{0%{opacity:0}to{opacity:1}}.pixels-slot{opacity:0;animation:.7s cubic-bezier(.2,.9,.25,1) forwards pixels-slot}@keyframes pixels-seat{0%{opacity:0;transform:translateY(10px)scale(.6)}to{opacity:1;transform:none}}.pixels-seat{opacity:0;animation:.55s cubic-bezier(.22,.98,.3,1.25) forwards pixels-seat}@keyframes pixels-chip{0%{opacity:0;transform:translateY(6px)scale(.85)}12%{opacity:1;transform:none}80%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}.pixels-chip{opacity:0;animation:2s cubic-bezier(.2,.8,.2,1) forwards pixels-chip}@keyframes pixels-ping{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}.pixels-ping{opacity:0;animation:.9s cubic-bezier(.2,.7,.3,1) forwards pixels-ping}@keyframes pixels-live{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.pixels-live{animation:.3s ease-out both pixels-live}@keyframes pixels-glow{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}.pixels-glow{animation:1.6s ease-out infinite pixels-glow}@media (prefers-reduced-motion:reduce),(max-width:679.98px){.pixels-word,.pixels-slot,.pixels-seat,.pixels-live{opacity:1;animation:none;transform:none}.pixels-chip,.pixels-ping,.pixels-glow{opacity:0;animation:none}}
@keyframes rail-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.rail-item:hover .rail-draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:.7s 50ms forwards rail-draw}
.game{touch-action:manipulation;--sab:0px;width:100%;position:relative}.game canvas{--sab:0px;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}
@keyframes rise-in{0%{opacity:0;transform:translateY(13px)scale(.975)}to{opacity:var(--rise-o,1);transform:none}}.rise-in{opacity:0;animation:.4s cubic-bezier(.22,.98,.3,1.2) forwards rise-in}@keyframes rise-in-far{0%{opacity:0;transform:translateY(30px)scale(.96)}to{opacity:var(--rise-o,1);transform:none}}.rise-in-far{opacity:0;animation:.55s cubic-bezier(.22,.98,.3,1.2) forwards rise-in-far}
@keyframes cv-pop{0%{opacity:0;transform:translateY(-10px)scale(.96)}to{opacity:1;transform:none}}.cv-armed .cv-pop{opacity:0}.cv-go .cv-pop{animation:.45s cubic-bezier(.2,.9,.25,1.15) both cv-pop}@keyframes cv-drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.cv-armed .cv-drop{opacity:0}.cv-go .cv-drop{animation:.35s ease-out both cv-drop}@keyframes cv-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.cv-armed .cv-rise{opacity:0}.cv-go .cv-rise{animation:.5s cubic-bezier(.2,.9,.25,1) both cv-rise}.cv-roll{transform:translateY(-50%)}@keyframes cv-roll{0%{transform:none}to{transform:translateY(-50%)}}.cv-armed .cv-roll{transform:none}.cv-go .cv-roll{animation:.55s cubic-bezier(.65,0,.25,1) both cv-roll}.cv-turn{transform:translateY(var(--end))}@keyframes cv-turn{0%{transform:none}to{transform:translateY(var(--end))}}.cv-armed .cv-turn{transform:none}.cv-go .cv-turn{animation:cv-turn var(--turn,.6s) steps(var(--steps), end) both}@keyframes cv-press{0%,to{transform:none}50%{transform:translateY(3px)scale(.98)}}.cv-go .cv-press{animation:.28s ease-out both cv-press}@keyframes cv-booked{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.cv-armed .cv-booked{opacity:0}.cv-go .cv-booked{animation:.3s ease-out both cv-booked}.cv-slot{transition:top .6s cubic-bezier(.3,.8,.25,1),opacity .6s ease-out,transform .6s cubic-bezier(.3,.8,.25,1)}.cv-words{transition:opacity .6s ease-out}@keyframes cv-land{0%{opacity:0;transform:translateY(-28px)scale(.96)}to{opacity:1;transform:none}}.cv-land{animation:.5s cubic-bezier(.2,.9,.25,1.15) .22s both cv-land}.cv-waves{--pixel-blobs:1;--pixel-ramp:var(--color-k-accent), var(--color-k-accent-soft-deep), var(--color-k-accent-soft)}@media (prefers-reduced-motion:reduce){.cv-go .cv-pop,.cv-go .cv-drop,.cv-go .cv-rise,.cv-go .cv-roll,.cv-go .cv-turn,.cv-go .cv-press,.cv-go .cv-booked,.cv-land{animation:none}.cv-slot,.cv-words{transition:none}}
@keyframes closing-word{0%{opacity:0;transform:translateY(.32em)}to{opacity:1;transform:none}}.closing-armed .closing-word{opacity:0}.closing-go .closing-word{animation:.28s cubic-bezier(.2,.8,.2,1) both closing-word}@keyframes closing-fly{0%{opacity:0;transform:translate3d(var(--fly-x,0px), var(--fly-y,24px), 0) scale(.82) rotate(var(--tilt,0deg))}to{opacity:1;transform:rotate(var(--tilt,0deg))}}.closing-fly{transform:rotate(var(--tilt,0deg))}.closing-armed .closing-fly{opacity:0}.closing-go .closing-fly{animation:.3s cubic-bezier(.22,.98,.3,1.2) both closing-fly}@keyframes closing-pop{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:none}}.closing-armed .closing-pop{opacity:0}.closing-go .closing-pop,.closing-in{animation:.26s cubic-bezier(.22,.98,.3,1.2) both closing-pop}@keyframes closing-blink{0%,30%{opacity:1}31%,55%{opacity:.15}56%,to{opacity:1}}.closing-armed .closing-pixel{opacity:0}.closing-go .closing-pixel{animation:.3s step-end both closing-blink}@keyframes closing-press{0%{transform:translateY(var(--beard,4px));box-shadow:none}to{transform:none}}.closing-press{animation:.18s cubic-bezier(.2,.8,.2,1) both closing-press}@media (prefers-reduced-motion:reduce){.closing-go .closing-word,.closing-go .closing-fly,.closing-go .closing-pop,.closing-go .closing-pixel,.closing-press,.closing-in{animation:none}.closing-armed .closing-word,.closing-armed .closing-fly,.closing-armed .closing-pop,.closing-armed .closing-pixel{opacity:1}}
