/* The first piece is the invitation. Ready and result states remain playable. */
.blocks-board-wrap[data-flow='ready'] .blocks-canvas,
.blocks-board-wrap[data-flow='over'] .blocks-canvas{cursor:pointer}
.blocks-flow-cue{position:absolute;inset:auto 12px 12%;z-index:3;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;color:#b8b8b8;font-size:12px;line-height:1.5;letter-spacing:.01em;transition:opacity 180ms ease,transform 240ms ease}
.blocks-flow-cue svg{width:32px;height:32px;fill:none;stroke:#d4d4d4;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.blocks-flow-cue[hidden]{display:none}
.blocks-flow-cue svg{animation:blocks-invite 2.8s ease-in-out infinite}
.blocks-board-wrap[data-flow='over'] .blocks-overlay{inset:auto 0 0;padding:54px 20px 13%;min-height:36%;background:linear-gradient(transparent,#191919d9 52%,#191919f0);box-shadow:none;backdrop-filter:none;pointer-events:none;animation:blocks-result-in 600ms cubic-bezier(.2,.65,.25,1) both}
.blocks-board-wrap[data-flow='over'] .blocks-overlay h2{font-size:24px;line-height:1.2;margin:0 0 10px;letter-spacing:-.03em;font-weight:450}
.blocks-board-wrap[data-flow='over'] .blocks-overlay p{font-size:13px;line-height:1.7;margin:0;color:#c0c0c0}
.blocks-board-wrap[data-flow='over'] .rank-receipt :is(a,button){pointer-events:auto}
.blocks-board-wrap[data-flow='over'] .blocks-flow-cue{z-index:8;inset:auto 8px 4%;font-size:11px;color:#929292;animation:blocks-result-in 500ms 180ms ease both}
.blocks-board-wrap[data-flow='over'] .blocks-flow-cue svg{display:none}
.blocks-flow-fallback{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap!important;border:0!important;pointer-events:none}
.blocks-flow-fallback:focus-visible{position:absolute!important;z-index:10;width:auto!important;height:44px!important;min-width:100px!important;clip-path:none;pointer-events:auto;padding:0 16px!important;bottom:12px;left:50%;transform:translateX(-50%)}
@keyframes blocks-invite{0%,100%{transform:translateX(-3px);opacity:.45}50%{transform:translateX(3px);opacity:.8}}
@keyframes blocks-result-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.blocks-flow-cue svg,.blocks-board-wrap[data-flow='over'] .blocks-overlay,.blocks-board-wrap[data-flow='over'] .blocks-flow-cue{animation:none}}
