@keyframes fx-spawn{0%{opacity:0;transform:scale(.2)rotate(0)}30%{opacity:1}to{opacity:0;transform:scale(1.5)rotate(90deg)}}.fx-spawn{animation:.8s ease-out forwards fx-spawn}@keyframes fx-frost{0%{opacity:0;transform:scale(.3)}25%{opacity:1}to{opacity:0;transform:scale(1.3)}}.fx-frost{animation:.9s ease-out forwards fx-frost}@keyframes fx-steam{0%{opacity:0;transform:translateY(10%)scale(.6)}30%{opacity:.9}to{opacity:0;transform:translateY(-70%)scale(1.3)}}.fx-steam{animation:1.1s ease-out forwards fx-steam}@keyframes fx-fade-out{0%,70%{opacity:1}to{opacity:0}}.fx-fade-out{animation:fx-fade-out var(--fx-dur,1.6s) ease-out forwards}@keyframes fx-pop{0%{transform:translate(-50%,-50%)scale(0)}60%{transform:translate(-50%,-50%)scale(1.25)}to{transform:translate(-50%,-50%)scale(1)}}.fx-pop{animation:.35s cubic-bezier(.2,1.6,.4,1) forwards fx-pop}@keyframes fx-ring{0%{opacity:.95;transform:translate(-50%,-50%)scale(.1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.fx-ring{animation:fx-ring var(--fx-dur,.9s) ease-out forwards;animation-delay:var(--fx-delay,0s);opacity:0}@keyframes fx-travel{0%{transform:translate(-50%,-50%)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy)))}}@keyframes fx-hop{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(var(--arc,-120%)) scale(1.25)}}.fx-travel{animation:fx-travel var(--fx-dur,.8s) ease-in-out forwards;animation-delay:var(--fx-delay,0s)}@keyframes fx-travel-piece{0%{opacity:1;transform:translate(-50%,-50%)}99.9%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))}}.fx-travel-piece{animation-name:fx-travel-piece}.fx-hop{animation:fx-hop var(--fx-dur,.8s) ease-in-out forwards;animation-delay:var(--fx-delay,0s)}@keyframes fx-dice{0%{opacity:0;transform:translate(-50%,-160%)rotate(0)scale(.6)}15%{opacity:1}55%{transform:translate(-50%,-50%)rotate(540deg)scale(1.1)}65%{transform:translate(-50%,-70%)rotate(600deg)}75%,88%{opacity:1;transform:translate(-50%,-50%)rotate(720deg)scale(1)}to{opacity:0;transform:translate(-50%,-50%)rotate(720deg)scale(1)}}.fx-dice{animation:1.5s ease-out forwards fx-dice}@keyframes fx-dice-blur{0%,70%{opacity:1}71%,to{opacity:0}}@keyframes fx-dice-face{0%,70%{opacity:0}71%,to{opacity:1}}.fx-dice-blur{animation:1.5s step-end forwards fx-dice-blur}.fx-dice-face{animation:1.5s step-end forwards fx-dice-face}@keyframes fx-coin{0%{opacity:0;transform:translate(-50%,-50%)translateY(40%)rotateY(0)scale(.5)}10%{opacity:1}50%{transform:translate(-50%,-50%)translateY(-60%)rotateY(1440deg)scale(1.1)}80%,92%{transform:translate(-50%, -50%) translateY(0) rotateY(var(--coin-end,2160deg)) scale(1);opacity:1}to{opacity:0;transform:translate(-50%, -50%) rotateY(var(--coin-end,2160deg))}}.fx-coin{animation:1.6s ease-out forwards fx-coin}@keyframes fx-bars{0%{transform:translateY(-110%)}35%{transform:translateY(0)}42%{transform:translateY(-6%)}50%,to{transform:translateY(0)}}.fx-bars{animation:1.8s ease-in forwards fx-bars}@keyframes fx-jail-out{0%,65%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.6)}}.fx-jail-out{animation:1.9s ease-in forwards fx-jail-out;animation-delay:var(--fx-delay,0s)}@keyframes fx-static{0%{background-position:0 0}25%{background-position:37px 11px}50%{background-position:-23px 41px}75%{background-position:11px -29px}to{background-position:0 0}}@keyframes fx-static-life{0%{opacity:0}8%{opacity:.85}80%{opacity:.7}to{opacity:0}}.fx-static{animation:.12s steps(4,end) infinite fx-static,.9s ease-out forwards fx-static-life}@keyframes fx-meeting{0%{opacity:0;transform:scale(2.2)}12%{opacity:1;transform:scale(1)}16%{transform:translate(-10px)}20%{transform:translate(10px)}24%{transform:translate(-6px)}28%{transform:translate(0)}85%{opacity:1}to{opacity:0}}.fx-meeting{animation:1.8s ease-out forwards fx-meeting}@keyframes fx-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px,3px)}40%{transform:translate(5px,-4px)}60%{transform:translate(-4px,-2px)}80%{transform:translate(3px,4px)}}.fx-shake{animation:.45s ease-in-out 2 fx-shake}@keyframes fx-levelup{0%{opacity:0;transform:translate(-50%,30px)}12%{opacity:1;transform:translate(-50%)}85%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}.fx-levelup{animation:3s ease-out forwards fx-levelup}@keyframes fx-firework{0%{opacity:1;transform:translate(0)scale(.2)}to{transform:translate(var(--dx), var(--dy)) scale(1);opacity:0}}.fx-firework{animation:1s ease-out forwards fx-firework;animation-delay:var(--fx-delay,0s)}@keyframes fx-dome{0%{clip-path:circle(0% at var(--cx) var(--cy))}35%,70%{clip-path:circle(150% at var(--cx) var(--cy))}to{clip-path:circle(0% at var(--cx) var(--cy))}}.fx-dome{animation:2.4s cubic-bezier(.7,0,.3,1) forwards fx-dome}@keyframes fx-heat{0%{opacity:0;filter:blur(1px);transform:translateY(20%)scaleY(.6)}30%{opacity:.9}to{opacity:0;filter:blur(3px);transform:translateY(-80%)scaleY(1.3)}}.fx-heat{animation:1.3s ease-out forwards fx-heat;animation-delay:var(--fx-delay,0s);opacity:0}@keyframes fx-puff{0%{opacity:.9;transform:translate(-50%,-50%)scale(.2)}to{transform:translate(calc(-50% + var(--dx,0px)), calc(-50% + var(--dy,-20px))) scale(1.4);opacity:0}}.fx-puff{animation:fx-puff var(--fx-dur,1.2s) ease-out forwards;animation-delay:var(--fx-delay,0s);opacity:0}@keyframes fx-wobble{0%,to{transform:translate(-50%,-50%)scale(1)}20%{transform:translate(-50%,-50%)scale(1.25,.75)}40%{transform:translate(-50%,-50%)scale(.85,1.15)}60%{transform:translate(-50%,-50%)scale(1.1,.9)}}.fx-wobble{animation:.7s ease-in-out forwards fx-wobble}@keyframes fx-spin-out{0%{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1)}to{opacity:0;transform:translate(-50%,-50%)rotate(720deg)scale(.4)}}.fx-spin-out{animation:1s ease-in forwards fx-spin-out}@keyframes fx-snap{0%{transform:translate(-50%,-50%)scaleY(1)}30%{transform:translate(-50%,-50%)scaleY(.25)}45%{transform:translate(-50%,-50%)scaleY(.45)}to{opacity:0;transform:translate(-50%,-50%)scaleY(.3)}}.fx-snap{animation:1s ease-in forwards fx-snap}@keyframes fx-sand{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(.4);opacity:0}}.fx-sand{animation:.8s ease-out forwards fx-sand;animation-delay:var(--fx-delay,0s)}@keyframes fx-drive{0%{transform:translate(-110%,-50%)}to{transform:translate(var(--drive,1000%), -50%)}}.fx-drive{animation:fx-drive var(--fx-dur,1.6s) linear forwards}@keyframes fx-log-roll{0%{opacity:0;transform:translate(-50%, -50%) rotate(var(--rot,0deg))}8%,88%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--rot,0deg))}}.fx-log-roll{animation:fx-log-roll var(--fx-dur,1.6s) linear forwards;opacity:0}@keyframes fx-log-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7%)}}.fx-log-bob{animation:.16s linear infinite fx-log-bob}@keyframes fx-crushed{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-20%)scale(1.3,.1)}}.fx-crushed{animation:fx-crushed .25s ease-in var(--fx-delay,0s) both}@keyframes fx-snow{0%{opacity:0;transform:translateY(-40%)rotate(0)}20%{opacity:1}to{opacity:0;transform:translateY(160%)rotate(200deg)}}.fx-snow{animation:fx-snow var(--fx-dur,1.4s) linear forwards;animation-delay:var(--fx-delay,0s);opacity:0}@keyframes fx-flame{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.35)}}.fx-flame{transform-origin:top;animation:.12s linear infinite fx-flame}@keyframes fx-tetris{0%{opacity:0;transform:translateY(-120%)}30%{opacity:1;transform:translateY(0)}60%{opacity:1;filter:brightness()}70%{filter:brightness(3)}to{opacity:0;filter:brightness(3)}}.fx-tetris{animation:1.4s ease-out forwards fx-tetris;animation-delay:var(--fx-delay,0s);opacity:0}@keyframes fx-funnel{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(0)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.1)rotate(1080deg)}}.fx-funnel{animation:fx-funnel var(--fx-dur,1.4s) ease-in-out forwards}@keyframes fx-flash{0%{opacity:0}8%{opacity:1}to{opacity:0}}.fx-flash{animation:fx-flash var(--fx-dur,.7s) ease-out forwards}@keyframes fx-strike{0%{opacity:0;transform:translate(-50%,-160%)scaleY(.2)}20%{opacity:1;transform:translate(-50%,-60%)scaleY(1)}55%{opacity:1}to{opacity:0;transform:translate(-50%,-60%)scaleY(1)}}.fx-strike{animation:.8s ease-out forwards fx-strike;animation-delay:var(--fx-delay,0s);opacity:0}@keyframes fx-shrink-in{0%,35%{opacity:1;filter:brightness();transform:translate(-50%,-50%)scale(1)}50%{filter:brightness(4)}70%,to{opacity:0;transform:translate(-50%,-50%)scale(0)}}.fx-shrink-in{animation:1s ease-in forwards fx-shrink-in}@keyframes fx-ball{0%{transform:translate(-50%,-50%)rotate(0)}45%{transform:translate(-50%,-50%)rotate(0)}52%{transform:translate(-50%,-50%)rotate(-25deg)}60%{transform:translate(-50%,-50%)rotate(20deg)}68%{transform:translate(-50%,-50%)rotate(-15deg)}76%{transform:translate(-50%,-50%)rotate(10deg)}84%,92%{opacity:1;transform:translate(-50%,-50%)rotate(0)}to{opacity:0;transform:translate(-50%,-50%)rotate(0)}}.fx-ball{animation:3s ease-in-out forwards fx-ball}@keyframes fx-pixel{0%{opacity:1;transform:translate(-50%,-50%)scale(.2)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.2);opacity:0}}.fx-pixel{animation:.9s cubic-bezier(.1,.8,.3,1) forwards fx-pixel;animation-delay:var(--fx-delay,0s)}@keyframes fx-beam-up{0%{opacity:0;transform:translate(-50%)scaleY(0)}20%{opacity:.9;transform:translate(-50%)scaleY(1)}75%{opacity:.7}to{opacity:0;transform:translate(-50%)scaleY(1)}}.fx-beam-up{transform-origin:bottom;animation:2.6s ease-out forwards fx-beam-up}@keyframes fx-cloud-drift{0%{transform:translate(-50%, -50%) translateX(var(--from,0px));opacity:0}20%{opacity:.95}70%{opacity:.8}to{transform:translate(-50%, -50%) translateX(var(--to,0px));opacity:0}}.fx-cloud-drift{animation:fx-cloud-drift var(--fx-dur,2.6s) ease-out forwards}@keyframes fx-rise-text{0%{opacity:0;transform:translate(-50%,10%)scale(.6)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-90%)scale(1)}}.fx-rise-text{animation:1.6s ease-out forwards fx-rise-text}@keyframes decor-belt{0%{background-position:0 0}to{background-position:24px 0}}.decor-belt{animation:.9s linear infinite decor-belt}@keyframes decor-aura{0%,to{opacity:.45;transform:scale(.95)}50%{opacity:.8;transform:scale(1.05)}}.decor-aura{animation:1.6s ease-in-out infinite decor-aura}@keyframes decor-rage{0%{opacity:0;transform:translateY(0)scale(1)}30%{opacity:1}to{opacity:0;transform:translateY(-160%)scale(.3)}}.decor-rage-dot{animation:1.4s ease-out infinite decor-rage}@keyframes decor-flicker{0%,to{filter:var(--look) brightness(1)}50%{filter:var(--look) brightness(1.6)}}.decor-flicker{animation:.5s steps(2,end) infinite decor-flicker}@keyframes decor-edge{0%,to{box-shadow:inset 0 0 0 3px #ef44448c}50%{box-shadow:inset 0 0 0 5px #ef4444f2}}.decor-edge{animation:1.1s ease-in-out infinite decor-edge}@keyframes decor-nuke{0%,to{opacity:.7;box-shadow:inset 0 0 0 3px #dc262699}50%{opacity:1;box-shadow:inset 0 0 0 7px #dc2626f2}}.decor-nuke{animation:1.3s ease-in-out infinite decor-nuke}@keyframes decor-clouds{0%,to{transform:translate(-3%)}50%{transform:translate(3%)}}.decor-clouds{animation:6s ease-in-out infinite decor-clouds}@keyframes decor-vignette{0%,to{opacity:var(--v-lo,.6)}50%{opacity:var(--v-hi,1)}}.decor-vignette{animation:1s ease-in-out infinite decor-vignette}@keyframes decor-plus-one{0%{opacity:0;transform:translate(-50%)scale(.6)}20%{opacity:1;transform:translate(-50%,-60%)scale(1.1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-140%)scale(1)}}.decor-plus-one{animation:1.6s ease-out forwards decor-plus-one}@keyframes decor-tether{to{stroke-dashoffset:-22px}}.decor-tether{animation:.8s linear infinite decor-tether}@keyframes decor-tether-ring{0%,to{opacity:.55}50%{opacity:1}}.decor-tether-ring{animation:.9s ease-in-out infinite decor-tether-ring}@media (prefers-reduced-motion:reduce){.decor-tether,.decor-tether-ring{animation:none!important}[class^=fx-],[class*=\ fx-]{animation-duration:.15s!important;animation-iteration-count:1!important;animation-delay:0s!important}.fx-shake,.decor-belt,.decor-aura,.decor-rage-dot,.decor-flicker,.decor-edge,.decor-nuke,.decor-clouds,.decor-vignette{animation:none!important}}@keyframes decor-portal{0%{background-position:0 0,0 0,0 0}to{background-position:14px 28px,-12px 24px,0 0}}.decor-portal{animation:1.4s linear infinite decor-portal}@media (prefers-reduced-motion:reduce){.decor-portal{animation:none!important}}@keyframes fx-outcome-marker{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}20%,65%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.25)}}.fx-outcome-marker{opacity:0;animation:fx-outcome-marker 1.4s ease-out var(--fx-delay,0s) forwards;place-items:center;display:grid}@keyframes fx-outcome-move{0%{opacity:1;transform:translate(-50%,-50%)}80%,95%{opacity:1;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))}}.fx-outcome-move{opacity:0;animation:fx-outcome-move 1.55s cubic-bezier(.22,.8,.36,1) var(--fx-delay,0s) forwards}@keyframes fx-outcome-knock{0%{opacity:1;transform:translate(-50%,-50%)}99.9%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))}}.fx-outcome-knock{animation:fx-outcome-knock .35s cubic-bezier(.2,.9,.3,1) var(--fx-delay,0s) both}@keyframes fx-piece-appear{0%{opacity:0;filter:brightness(2);transform:translate(-50%,-50%)scale(.25)}65%{opacity:1;transform:translate(-50%,-50%)scale(1.12)}99.9%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.fx-piece-appear{animation:.6s ease-out forwards fx-piece-appear}@keyframes fx-piece-depart{0%,30%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.1)rotate(35deg)}}.fx-piece-depart{animation:.5s ease-in forwards fx-piece-depart}@keyframes fx-piece-status{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}35%{opacity:.95;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}.fx-piece-status{pointer-events:none;animation:fx-piece-status 1.2s ease-out var(--fx-delay,0s) forwards;border:3px solid;border-radius:50%;box-shadow:0 0 12px,inset 0 0 10px}.fx-piece-status-frost,.fx-piece-status-ice{border-radius:20%}.fx-piece-status-control{border-style:dashed}@keyframes fx-outcome-teleport{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}25%,40%{opacity:0;transform:translate(-50%,-50%)scale(.1)}41%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.1)}65%,95%{opacity:1;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))}}.fx-outcome-teleport{animation-name:fx-outcome-teleport}@keyframes fx-outcome-trail{0%{opacity:0;stroke-dashoffset:15px}30%,65%{opacity:.8}to{opacity:0;stroke-dashoffset:0}}.fx-outcome-trail{animation:1.5s ease-out forwards fx-outcome-trail}@keyframes fx-arrival{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-90deg)}35%,70%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}.fx-outcome-arrival{place-items:center;animation:1.5s ease-out forwards fx-arrival;display:grid}@keyframes fx-transform-before{0%,20%{opacity:1;transform:scale(1)}55%,to{opacity:0;transform:scale(.1)rotate(-30deg)}}@keyframes fx-transform-after{0%,45%{opacity:0;transform:scale(.1)}75%,95%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.fx-transform-before,.fx-transform-after{animation:1.9s ease-in-out forwards fx-transform-before;position:absolute;inset:0}.fx-transform-after{animation-name:fx-transform-after}.fx-transform-ring{animation:1.6s ease-out forwards fx-outcome-trail}@keyframes fx-terrain-reveal{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)}35%,70%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.1)}}.fx-terrain-reveal{opacity:0;animation:fx-terrain-reveal 1.3s ease-out var(--fx-delay,0s) forwards;place-items:center;display:grid}.fx-terrain-fog{filter:blur(3px)}.fx-terrain-ice{box-shadow:inset 0 0 5px #fff}.fx-terrain-craters{box-shadow:inset 0 0 7px #000}@keyframes fx-outcome-label{0%{opacity:0;transform:translate(-50%,-20%)scale(.8)}20%,70%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-80%)}}.fx-outcome-label{white-space:nowrap;text-shadow:0 2px 5px #000;font-size:clamp(12px,3cqw,25px);font-weight:800;animation:1.4s ease-out forwards fx-outcome-label}.fx-card-back{background:#171717;border:2px solid;border-radius:5px;place-items:center;width:clamp(18px,4cqw,38px);height:clamp(26px,6cqw,54px);font-size:clamp(12px,2.8cqw,24px);display:inline-grid;box-shadow:0 3px 8px #0008}.fx-hand-effect{text-shadow:0 2px 5px #000;font-size:clamp(11px,2.4cqw,20px);font-weight:700;animation:1.5s ease-out forwards fx-outcome-label;transform:translate(-50%,-50%)}@keyframes fx-card-draw{0%{opacity:0;transform:translateY(-80%)rotate(-25deg)}40%,75%{opacity:1;transform:translateY(0) rotate(calc(var(--i,0) * 4deg))}to{opacity:0;transform:translateY(60%)}}.fx-hand-draw .fx-card-back,.fx-hand-economy .fx-card-back{animation:1.4s ease-out forwards fx-card-draw}@keyframes fx-hand-discard{0%,20%{opacity:1;transform:translate(-50%,-50%)rotate(0)}to{opacity:0;transform:translate(150%,80%)rotate(70deg)scale(.3)}}.fx-hand-discard{align-items:center;gap:6px;animation:1.3s ease-in forwards fx-hand-discard;display:flex}@keyframes fx-storm-close{0%{opacity:0;transform:scale(1.15)}30%,70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.85)}}.fx-storm-close{animation:1.8s ease-in-out forwards fx-storm-close}@keyframes fx-dice-sequence{0%,90%{opacity:1}to{opacity:0}}.fx-dice-sequence{animation:fx-dice-sequence var(--total) linear forwards}@keyframes fx-dice-tumble{0%{opacity:1;transform:rotate(-30deg)scale(.7)}65%{opacity:1;transform:rotate(510deg)scale(1.15)}99%{opacity:1;transform:rotate(720deg)scale(1)}to{opacity:0}}.fx-dice-tumble{animation:.9s ease-out forwards fx-dice-tumble;position:absolute;inset:0}@keyframes fx-rolling-face{0%,15%{opacity:1}16%,to{opacity:0}}.fx-rolling-face{opacity:0;animation:fx-rolling-face .45s linear var(--face-delay) 2}@keyframes fx-dice-settled{to{opacity:1}}.fx-dice-settled{opacity:0;animation:1ms .9s forwards fx-dice-settled}@keyframes fx-pawn-wait{0%,99%{opacity:1}to{opacity:0}}.fx-pawn-wait{animation:1.15s linear forwards fx-pawn-wait}@keyframes fx-pawn-leg{0%{opacity:1;transform:translate(-50%,-50%)}99%{opacity:1;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))}}.fx-pawn-leg{opacity:0;animation:.18s ease-in-out forwards fx-pawn-leg}@keyframes fx-pawn-arrived{0%,99%{opacity:1}to{opacity:0}}.fx-pawn-arrived{opacity:0;animation:.3s linear forwards fx-pawn-arrived}@media (prefers-reduced-motion:reduce){.fx-dice-tumble{visibility:hidden}.fx-dice-settled{animation-delay:0s}.fx-pawn-leg,.fx-outcome-move{animation-timing-function:step-end}}@keyframes fx-card-window{0%,99.9%{visibility:visible}to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.fx-event-delayed,.fx-event-delayed *{animation-delay:0s!important}}@keyframes fx-badge{0%{opacity:0;transform:translate(-50%,-30%)scale(.2)}16%{opacity:1;transform:translate(-50%,-105%)scale(1.25)}26%{transform:translate(-50%,-90%)scale(1)}42%{transform:translate(-50%,-102%)}58%{transform:translate(-50%,-90%)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-115%)scale(.9)}}.fx-badge{animation:fx-badge var(--fx-dur,1.6s) ease-out var(--fx-delay,0s) both}@keyframes fx-emblem{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-20deg)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.2)rotate(6deg)}28%{transform:translate(-50%,-50%)scale(1)rotate(0)}78%{opacity:1;transform:translate(-50%,-50%)scale(1.04)}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}.fx-emblem{animation:fx-emblem var(--fx-dur,1.7s) ease-out var(--fx-delay,0s) both}@keyframes fx-drop{0%{opacity:0;transform:translate(-50%,-50%) translate(var(--from-x,0), var(--from-y,-320%)) rotate(var(--spin,0deg))}8%{opacity:1}62%{animation-timing-function:ease-out;transform:translate(-50%,-50%)translate(0)rotate(0)}70%{transform:translate(-50%,-50%)scale(1.18,.78)}80%{transform:translate(-50%,-50%)scale(.95,1.06)}88%,96%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.fx-drop{animation:fx-drop var(--fx-dur,1s) ease-in var(--fx-delay,0s) both}@keyframes fx-arrive-drop{0%{opacity:0;transform:translate(-50%,-50%)translateY(-300%)scale(1.15)}10%{opacity:1}62%{animation-timing-function:ease-out;transform:translate(-50%,-50%)translateY(0)scale(1)}72%{transform:translate(-50%,-50%)scale(1.15,.8)}84%{transform:translate(-50%,-50%)scale(.96,1.05)}99.9%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0}}@keyframes fx-arrive-rise{0%{opacity:0;clip-path:inset(100% 0 0);transform:translate(-50%,-50%)translateY(45%)}15%{opacity:1}70%{clip-path:inset(0);transform:translate(-50%,-50%)translateY(-8%)}85%{transform:translate(-50%,-50%)translateY(2%)}99.9%{opacity:1;clip-path:inset(0);transform:translate(-50%,-50%)}to{opacity:0}}@keyframes fx-arrive-gallop{0%{opacity:0;transform:translate(-50%,-50%) translateX(var(--from-x,-300%))}12%{opacity:1}60%{transform:translate(-50%,-50%)translate(0)translateY(-10%)}66%{transform:translate(-50%,-50%)translateY(0)}72%{transform:translate(-50%,-50%)translateY(-6%)}80%,99.9%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0}}@keyframes fx-arrive-circle{0%,35%{opacity:0;filter:brightness(3);transform:translate(-50%,-50%)scale(.2)rotate(-200deg)}70%{opacity:1;filter:brightness(2);transform:translate(-50%,-50%)scale(1.15)rotate(0)}85%,99.9%{opacity:1;filter:brightness();transform:translate(-50%,-50%)scale(1)}to{opacity:0}}@keyframes fx-arrive-beam{0%,30%{opacity:0;filter:brightness(4);transform:translate(-50%,-50%)scaleX(.2)scaleY(1.6)}60%{opacity:1;filter:brightness(2);transform:translate(-50%,-50%)scale(1.05)}80%,99.9%{opacity:1;filter:brightness();transform:translate(-50%,-50%)scale(1)}to{opacity:0}}@keyframes fx-arrive-build{0%,45%{opacity:0;transform:translate(-50%,-50%)translateY(-120%)scale(.6)}62%{opacity:1;transform:translate(-50%,-50%)translateY(0)scale(1.1,.85)}72%{transform:translate(-50%,-50%)scale(.94,1.1)}82%,99.9%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0}}.fx-arrive-drop,.fx-arrive-rise,.fx-arrive-gallop,.fx-arrive-circle,.fx-arrive-beam,.fx-arrive-build,.fx-arrive-fuse{animation-duration:var(--fx-dur,1s);animation-delay:var(--fx-delay,0s);animation-timing-function:ease-in-out;animation-fill-mode:both}.fx-arrive-drop{animation-name:fx-arrive-drop;animation-timing-function:ease-in}.fx-arrive-rise{animation-name:fx-arrive-rise}.fx-arrive-gallop{animation-name:fx-arrive-gallop}.fx-arrive-circle,.fx-arrive-fuse{animation-name:fx-arrive-circle}.fx-arrive-beam{animation-name:fx-arrive-beam}.fx-arrive-build{animation-name:fx-arrive-build}@keyframes fx-shadow-grow{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)}75%{opacity:.65;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.15)}}.fx-shadow-grow{animation:fx-shadow-grow var(--fx-dur,1s) ease-in var(--fx-delay,0s) both}@keyframes fx-shot{0%{opacity:0;left:0%}6%{opacity:1}94%{opacity:1}to{opacity:0;left:100%}}.fx-shot{animation:fx-shot var(--fx-dur,.35s) linear var(--fx-delay,0s) both}@keyframes fx-beam{0%{opacity:1;transform:translateY(-50%)scaleX(0)}25%{transform:translateY(-50%)scaleX(1)}65%{opacity:1;transform:translateY(-50%)scaleX(1)scaleY(1.3)}to{opacity:0;transform:translateY(-50%)scaleX(1)scaleY(.4)}}.fx-beam{transform-origin:0;animation:fx-beam var(--fx-dur,.9s) ease-out var(--fx-delay,0s) both}@keyframes fx-aura{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}30%{opacity:.95;transform:translate(-50%,-50%)scale(1.06)}55%{opacity:.6;transform:translate(-50%,-50%)scale(.96)}78%{opacity:.85;transform:translate(-50%,-50%)scale(1.04)}to{opacity:0;transform:translate(-50%,-50%)scale(1.2)}}.fx-aura{animation:fx-aura var(--fx-dur,1.4s) ease-in-out var(--fx-delay,0s) both}@keyframes fx-bubble{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}28%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}38%{transform:translate(-50%,-50%)scale(.96)}48%,80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.12)}}.fx-bubble{animation:fx-bubble var(--fx-dur,1.6s) ease-out var(--fx-delay,0s) both}@keyframes fx-slam{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(2.4)}22%{opacity:1;transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1)}30%{transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1.1)}38%,80%{opacity:1;transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1)}}.fx-slam{animation:fx-slam var(--fx-dur,1.4s) ease-out var(--fx-delay,0s) both}@keyframes fx-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1) rotate(var(--rot,90deg))}}.fx-burst{animation:fx-burst var(--fx-dur,.9s) cubic-bezier(.15,.8,.3,1) var(--fx-delay,0s) both}@keyframes fx-dissolve{0%{opacity:1;-webkit-mask-position:100% 0;mask-position:100% 0}to{opacity:1;-webkit-mask-position:0 0;mask-position:0 0}}.fx-dissolve{animation:fx-dissolve var(--fx-dur,1s) ease-in var(--fx-delay,0s) both;-webkit-mask-image:linear-gradient(90deg,#000 0 33%,#0000 66% 100%);mask-image:linear-gradient(90deg,#000 0 33%,#0000 66% 100%);-webkit-mask-size:300% 100%;mask-size:300% 100%}@keyframes fx-stand{0%,99.9%{opacity:1}to{opacity:0}}.fx-stand{animation:fx-stand var(--fx-dur,.6s) linear both}@keyframes fx-ripple{0%{opacity:0;transform:translate(-50%,-50%)scale(.15,.1)}15%{opacity:.95}to{opacity:0;transform:translate(-50%,-50%)scaleY(.55)}}.fx-ripple{animation:fx-ripple var(--fx-dur,1.2s) ease-out var(--fx-delay,0s) both}@keyframes fx-rise{0%{opacity:0;transform:translate(-50%,-50%)translateY(0)scale(.4)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) translate(var(--dx,0), var(--dy,-6cqw)) scale(1.1)}}.fx-rise{animation:fx-rise var(--fx-dur,1.2s) ease-out var(--fx-delay,0s) both}@keyframes fx-fall{0%{opacity:0;transform:translateY(-10cqw)}15%{opacity:.9}to{opacity:0;transform:translate(-2cqw,100cqw)}}.fx-fall{animation:fx-fall var(--fx-dur,.7s) linear var(--fx-delay,0s) both}@keyframes fx-swirl{0%{opacity:0;transform:translate(-50%,-50%)scale(.2,.1)rotate(0)}25%{opacity:1;transform:translate(-50%,-50%) scale(1,var(--squash,1)) rotate(180deg)}75%{opacity:1;transform:translate(-50%,-50%) scale(1,var(--squash,1)) rotate(540deg)}to{opacity:0;transform:translate(-50%,-50%)scale(.2,.1)rotate(720deg)}}.fx-swirl{animation:fx-swirl var(--fx-dur,1.4s) ease-in-out var(--fx-delay,0s) both}@keyframes fx-tint{0%{opacity:0}15%{opacity:1}70%{opacity:.8}to{opacity:0}}.fx-tint{animation:fx-tint var(--fx-dur,1.2s) ease-out var(--fx-delay,0s) both}@keyframes fx-banner{0%{opacity:0;letter-spacing:.5em;transform:translate(-50%,-50%)scale(1.8)}18%{opacity:1;letter-spacing:.08em;transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.04)}}.fx-banner{animation:fx-banner var(--fx-dur,1.8s) ease-out var(--fx-delay,0s) both}@keyframes fx-lock{0%{opacity:0;transform:translate(-50%,-50%)scale(2.4)rotate(-90deg)}40%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}50%{transform:translate(-50%,-50%)scale(.9)}60%,80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.8)}}.fx-lock{animation:fx-lock var(--fx-dur,1.2s) ease-out var(--fx-delay,0s) both}@keyframes fx-sway{0%{opacity:0;transform:translate(-50%,-100%)scale(.1,.2)}18%{opacity:1;transform:translate(-50%,-100%)scaleX(1.1)}30%{transform:translate(-50%,-96%)rotate(-8deg)}48%{transform:translate(-50%,-92%)rotate(7deg)}64%{transform:translate(-50%,-88%)rotate(-4deg)}78%{opacity:1;transform:translate(-50%,-70%)scaleY(.7)}to{opacity:0;transform:translate(-50%,-50%)scale(.3,.1)}}.fx-sway{transform-origin:50% 100%;animation:fx-sway var(--fx-dur,1.7s) ease-in-out var(--fx-delay,0s) both}@keyframes fx-grow-up{0%{opacity:0;transform:translate(-50%,-50%)scaleY(0)}30%{opacity:1;transform:translate(-50%,-50%)scaleY(1.1)}40%,78%{opacity:1;transform:translate(-50%,-50%)scaleY(1)}to{opacity:0;transform:translate(-50%,-50%)scaleY(1)}}.fx-grow-up{transform-origin:50% 100%;animation:fx-grow-up var(--fx-dur,1.3s) ease-out var(--fx-delay,0s) both}@keyframes fx-sink{0%{opacity:0;transform:translate(-50%,-50%)translateY(-60%)}25%{opacity:1;transform:translate(-50%,-50%)}60%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)translateY(25%)scale(.4)}}.fx-sink{animation:fx-sink var(--fx-dur,1.2s) ease-in var(--fx-delay,0s) both}@keyframes fx-sheen{0%{opacity:0;background-position:150% 0}20%{opacity:1}80%{opacity:1}to{opacity:0;background-position:-50% 0}}.fx-sheen{animation:fx-sheen var(--fx-dur,1.2s) ease-in-out var(--fx-delay,0s) both;background-size:250% 100%}@keyframes fx-quake{0%,to{transform:translate(0)}10%{transform:translate(-1.2cqw,.6cqw)}20%{transform:translate(1cqw,-.8cqw)}30%{transform:translate(-.8cqw,-.4cqw)}40%{transform:translate(.7cqw,.8cqw)}50%{transform:translate(-.5cqw,.3cqw)}60%{transform:translate(.4cqw,-.4cqw)}70%{transform:translate(-.2cqw,.2cqw)}}.fx-quake{animation:fx-quake .9s linear var(--fx-delay,0s) both}@keyframes fx-crack{0%{opacity:0;stroke-dashoffset:100px}15%{opacity:1}45%{stroke-dashoffset:0}80%{opacity:1}to{opacity:0;stroke-dashoffset:0}}.fx-crack{stroke-dasharray:100;animation:fx-crack var(--fx-dur,1.6s) ease-out var(--fx-delay,0s) both}@keyframes fx-sweep{0%{opacity:0;transform:translate(-50%,-50%) translateX(var(--from-x,-60cqw))}12%{opacity:1}88%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) translateX(var(--to-x,60cqw))}}.fx-sweep{animation:fx-sweep var(--fx-dur,1.2s) linear var(--fx-delay,0s) both}.fx-motion{width:100%;height:100%;animation-duration:var(--motion-dur,.72s);animation-delay:var(--fx-delay,0s);animation-timing-function:ease-in-out;animation-fill-mode:both}@keyframes fx-motion-spin{0%{transform:rotate(0)}85%,to{transform:rotate(360deg)}}@keyframes fx-motion-barrel{0%{transform:rotateY(0)scale(1)}50%{transform:rotateY(360deg)scale(1.2)}85%,to{transform:rotateY(720deg)scale(1)}}@keyframes fx-motion-fly{0%{filter:drop-shadow(0 0 #0000);transform:translateY(0)scale(1)}45%{filter:drop-shadow(0 2.5cqw 1.2cqw #0008);transform:translateY(-90%)scale(1.3)}85%,to{filter:drop-shadow(0 0 #0000);transform:translateY(0)scale(1)}}@keyframes fx-motion-dash{0%{filter:blur();transform:skew(0)}15%{filter:blur(1px);transform:skew(-18deg)scaleX(1.25)}70%{filter:blur(.5px);transform:skew(-12deg)scaleX(1.15)}85%{filter:blur();transform:skew(8deg)scaleX(.92)}to{transform:skew(0)}}@keyframes fx-motion-tumble{0%{transform:rotate(0)translateY(0)}40%{transform:rotate(-200deg)translateY(-40%)}75%{transform:rotate(-340deg)translateY(0)}85%{transform:rotate(-370deg)translateY(-8%)}to{transform:rotate(-360deg)translateY(0)}}@keyframes fx-motion-yank{0%{transform:scaleX(1)}20%{transform:scaleX(.7)scaleY(1.2)}70%{transform:scaleX(1.25)scaleY(.85)}85%{transform:scale(.95)}to{transform:scale(1)}}@keyframes fx-motion-glitch{0%,to{filter:none;opacity:1;transform:translate(0)}15%{filter:drop-shadow(3px 0 #f0f)drop-shadow(-3px 0 #0ff);transform:translate(-8%,4%)}30%{transform:translate(6%,-6%)skew(20deg)}45%{filter:drop-shadow(-3px 0 #f0f)drop-shadow(3px 0 #0ff);transform:translate(-4%)}60%{opacity:.4;transform:translate(0)skew(-15deg)}75%{opacity:1;transform:translate(3%,2%)}}.fx-motion-spin{animation-name:fx-motion-spin}.fx-motion-barrel{animation-name:fx-motion-barrel}.fx-motion-fly{animation-name:fx-motion-fly}.fx-motion-dash{animation-name:fx-motion-dash}.fx-motion-tumble{animation-name:fx-motion-tumble}.fx-motion-yank{animation-name:fx-motion-yank}.fx-motion-glitch{animation-name:fx-motion-glitch;animation-timing-function:steps(6,end)}@media (prefers-reduced-motion:reduce){.fx-motion,.fx-quake{animation:none!important}}@keyframes ink-blob{0%{opacity:0;scale:.3}60%{opacity:1;scale:1.08}to{opacity:1;scale:1}}.ink-blob{animation:.45s cubic-bezier(.2,.9,.3,1.2) both ink-blob}@media (prefers-reduced-motion:reduce){.ink-blob{animation:none}}@keyframes fx-ot-edge{0%{opacity:0}12%{opacity:1}30%{opacity:.55}45%{opacity:1}to{opacity:0}}@keyframes fx-ot-slab{0%{opacity:0;transform:skew(-12deg)scale(2.6)}18%{opacity:1;transform:skew(-12deg)scale(.94)}24%{transform:skew(-12deg)scale(1.04)}30%,82%{opacity:1;transform:skew(-12deg)scale(1)}to{opacity:0;transform:skew(-12deg)scale(1.08)}}@keyframes fx-ot-shake{0%,16%,34%,to{translate:0}19%{translate:-1.5% 1%}22%{translate:1.5% -1%}25%{translate:-1% -.5%}28%{translate:1% .5%}31%{translate:-.5%}}@keyframes fx-ot-sweep{0%,28%{left:-40%}58%{left:120%}to{left:120%}}@keyframes fx-ot-sub{0%,34%{opacity:0;transform:translateY(40%)}46%,84%{opacity:1;transform:translateY(0)}to{opacity:0}}@keyframes fx-ot-spark{0%,16%{opacity:0;transform:rotate(var(--a)) translateX(0) scale(1)}22%{opacity:1}60%{opacity:0;transform:rotate(var(--a)) translateX(46cqw) scale(.4)}to{opacity:0}}.fx-ot{animation:1.8s linear both fx-ot-shake;container-type:inline-size}.fx-ot-edge{animation:1.8s ease-out both fx-ot-edge;position:absolute;inset:0;box-shadow:inset 0 0 6cqw 1.5cqw #ef4444d9,inset 0 0 14cqw 4cqw #f9731673}.fx-ot-band{place-content:center;justify-items:center;gap:1.2cqw;display:grid;position:absolute;inset:0}.fx-ot-slab{background:linear-gradient(#ff6b3d,#dc2626 55%,#7f1d1d);border:.5cqw solid #fde68a;border-radius:1.2cqw;padding:1.4cqw 5cqw;animation:1.8s cubic-bezier(.2,.9,.3,1.2) both fx-ot-slab;position:relative;overflow:hidden;box-shadow:0 1.2cqw #450a0a,0 0 5cqw #ef4444bf}.fx-ot-word{font-family:var(--font-display,inherit);letter-spacing:.04em;color:#fff7ed;-webkit-text-stroke:.35cqw #450a0a;text-shadow:0 .6cqw #450a0a;font-size:11cqw;font-weight:900;line-height:1;display:block}.fx-ot-sweep{background:linear-gradient(100deg,#0000,#ffffffbf,#0000);width:30%;animation:1.8s ease-in-out both fx-ot-sweep;position:absolute;top:-20%;bottom:-20%}.fx-ot-sub{color:#fff7ed;background:#450a0ad9;border-radius:99px;padding:.6cqw 2.4cqw;font-size:3.6cqw;font-weight:800;animation:1.8s ease-out both fx-ot-sub}.fx-ot-spark{background:radial-gradient(circle,#fff7ed,#fb923c 60%,#0000 70%);border-radius:50%;width:1.6cqw;height:1.6cqw;margin:-.8cqw;animation:1.8s ease-out both fx-ot-spark;position:absolute;top:50%;left:50%}@keyframes ot-frame{0%,to{box-shadow:0 0 0 2px #ef44448c,0 0 18px #ef444440}50%{box-shadow:0 0 0 2px #f97316e6,0 0 32px #ef444480}}.ot-frame{border-radius:6px;animation:2.4s ease-in-out infinite ot-frame}@media (prefers-reduced-motion:reduce){.fx-ot,.fx-ot-edge,.fx-ot-sweep,.fx-ot-spark{animation:none}.fx-ot-sweep,.fx-ot-spark{display:none}.fx-ot-slab{animation:1.8s ease-out both fx-card-fade;transform:skew(-12deg)}.fx-ot-sub{animation:1.8s ease-out both fx-card-fade}.ot-frame{animation:none;box-shadow:0 0 0 2px #ef4444b3}}@keyframes fx-card-fade{0%{opacity:0}15%,85%{opacity:1}to{opacity:0}}@keyframes card-fresh-in{0%{opacity:0;transform:translateY(-60%)scale(.6)rotate(-8deg)}60%{opacity:1;transform:translateY(4%)scale(1.08)rotate(2deg)}to{transform:none}}@keyframes card-fresh-glow{0%,to{box-shadow:0 0 0 2px var(--fresh), 0 0 10px 2px color-mix(in srgb, var(--fresh) 70%, transparent)}50%{box-shadow:0 0 0 3px var(--fresh), 0 0 22px 6px color-mix(in srgb, var(--fresh) 85%, transparent)}}@keyframes card-fresh-shine{0%,55%{background-position:160% 0}to{background-position:-60% 0}}.card-fresh{animation:.5s cubic-bezier(.2,.9,.3,1.2) both card-fresh-in,1.6s ease-in-out .5s infinite card-fresh-glow;position:relative}.card-fresh:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,#0000 35%,#ffffff8c 50%,#0000 65%) 0 0/250% 100% no-repeat;animation:2.4s ease-in-out .5s infinite card-fresh-shine;position:absolute;inset:0}.card-fresh-ribbon{z-index:2;color:#1c1917;letter-spacing:.08em;pointer-events:none;background:#facc15;border-radius:999px;padding:0 6px;font-size:9px;font-weight:900;line-height:14px;position:absolute;top:-7px;left:50%;translate:-50%;box-shadow:0 1px 4px #00000080}@keyframes draw-notice{0%{opacity:0;transform:translateY(-8px)scale(.92)}10%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px)}}.draw-notice{animation:2.6s ease-out both draw-notice}@media (prefers-reduced-motion:reduce){.card-fresh{box-shadow:0 0 0 3px var(--fresh), 0 0 12px 3px color-mix(in srgb, var(--fresh) 70%, transparent);animation:none}.card-fresh:after{display:none}.draw-notice{animation:none}}
