/* Gates of Sin pacing reference, expressed in Gaia's own visual language. */
:root{--polish-time:180ms;--polish-ease:cubic-bezier(.2,.7,.25,1)}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #ffe28c;outline-offset:4px}
.hud-chip,.hud-buy,.hud-bet-display,.buy-card,.primary,.text-button{transition:filter 130ms ease,scale 130ms var(--polish-ease),background-color 130ms ease,opacity 130ms ease}
.hud-bet-display:active:not(:disabled){scale:.97}
#hud-shell .spin .spin-face{transition:filter 140ms ease,rotate 180ms var(--polish-ease)}
#hud-shell .spin:hover:not(:disabled) .spin-face{filter:brightness(1.12)}
#hud-shell .spin:active:not(:disabled) .spin-face{rotate:18deg}
#hud-shell .spin.busy .spin-face{animation:spin-breathe 1s ease-in-out infinite}
@keyframes spin-breathe{50%{filter:brightness(.75)}}
.board[data-motion]{isolation:isolate}
.cell.path-arrival{animation:seat-light 260ms ease-out both}
@keyframes seat-light{from{box-shadow:inset 0 0 22px #e6ffb7bb;background:#a4cb6860}to{box-shadow:inset 0 0 0 #e6ffb700;background:#8ab94a18}}
.win-focus{position:absolute;left:17.8%;top:24%;width:62.8%;height:65.8%;pointer-events:none;z-index:6;animation:focus-in 120ms ease-out}
.win-focus i{position:absolute;width:16.667%;height:25%;background:#05140c66;border-radius:4px}
@keyframes focus-in{from{opacity:0}to{opacity:1}}
.board.show-connections .cell:not(.winning){opacity:1}
.line-caption{font-family:GaiaHUD,system-ui,sans-serif;box-shadow:0 3px 12px #0005;animation:caption-in 150ms var(--polish-ease)}
@keyframes caption-in{from{opacity:0;translate:0 4px}to{opacity:1;translate:0 0}}
.payline-trace{stroke-width:2;filter:drop-shadow(0 0 3px #ffe5a0a0)}
.payline-overlay circle{r:4;stroke-width:1.5}
.attack-trail .payline-trace{stroke-width:4}
.attack-award{font-family:GaiaHUD,system-ui,sans-serif;animation:award-in 160ms var(--polish-ease)}
@keyframes award-in{from{opacity:0;translate:0 5px;scale:.9}to{opacity:1;translate:0 0;scale:1}}
.path-label{transition:filter 150ms ease;box-shadow:0 2px 8px #0005}
#win{font-variant-numeric:tabular-nums;transition:color 180ms ease,text-shadow 180ms ease}
#win.counting{color:#ffeb91!important;text-shadow:0 0 15px #ffd20155}
.message{font-variant-numeric:tabular-nums}
dialog{opacity:0;translate:0 10px;scale:.98;transition:opacity 160ms var(--polish-ease),translate 180ms var(--polish-ease),scale 180ms var(--polish-ease),display 180ms allow-discrete,overlay 180ms allow-discrete}
dialog[open]{opacity:1;translate:0 0;scale:1}
dialog::backdrop{background:#030c09a6;backdrop-filter:blur(7px);opacity:0;transition:opacity 160ms ease,display 180ms allow-discrete,overlay 180ms allow-discrete}
dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;translate:0 10px;scale:.98}dialog[open]::backdrop{opacity:0}}
.buy-card{border-radius:14px;background-position:center;background-size:cover}
.buy-card:hover:not(:disabled){scale:1.015;filter:brightness(1.12)}
.buy-card:active:not(:disabled){scale:.985}
.quick-motion .cell.path-arrival{animation-duration:130ms}
.quick-motion .attack-award{animation-duration:90ms}
.motion-paused .cell.path-arrival,.motion-paused .attack-award,.motion-paused .win-focus,.motion-paused .line-caption{animation:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
