.hub-hero>p{animation:hub-reveal .55s ease-out both}
.hub-hero h1{animation:hub-reveal .7s .08s cubic-bezier(.2,.75,.25,1) both}
.hub-hero h1 em{animation:hub-glow 4s 1s ease-in-out infinite}
.hub-heading{animation:hub-reveal .5s .18s ease-out both}
.game-tile{animation:tile-arrive .62s cubic-bezier(.2,.75,.25,1) both;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.game-tile:nth-child(1){animation-delay:.12s}.game-tile:nth-child(2){animation-delay:.2s}.game-tile:nth-child(3){animation-delay:.28s}.game-tile:nth-child(4){animation-delay:.36s}
.tile-tuna{animation:tuna-idle 3.8s ease-in-out infinite}.tile-tuna:before{transform-origin:right center;animation:tuna-tail .9s ease-in-out infinite alternate}
.sudoku-preview{animation:puzzle-float 4.2s ease-in-out infinite}
.sampah-preview span{animation:sampah-swim 3.4s ease-in-out infinite}.sampah-preview i{animation:debris-drift 2.8s ease-in-out infinite alternate}.sampah-preview i:nth-child(3){animation-delay:.55s}.sampah-preview i:nth-child(4){animation-delay:1s}
.game-tile.coming:after{animation:coming-breathe 3.6s ease-in-out infinite}
@media(hover:hover){.game-tile[href]:hover{transform:translateY(-6px);border-color:#8db8b0;box-shadow:0 18px 34px #1026381c}.game-tile[href]:hover em{transform:translateX(4px)}.game-tile em{transition:transform .25s ease}.game-tile.featured:hover .tile-tuna{animation-duration:1.8s}.game-tile.sampah-tile:hover .sampah-preview span{animation-duration:1.7s}}
@keyframes hub-reveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes tile-arrive{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:none}}
@keyframes hub-glow{0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 24px #d5ff5f26}}
@keyframes tuna-idle{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-8px) rotate(-2deg)}}
@keyframes tuna-tail{from{transform:scaleX(.88)}to{transform:scaleX(1.08)}}
@keyframes puzzle-float{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-6px)}}
@keyframes sampah-swim{0%,100%{transform:scaleX(-1) translateX(0)}50%{transform:scaleX(-1) translateX(-12px) translateY(-4px)}}
@keyframes debris-drift{from{transform:translateY(-3px) rotate(-5deg)}to{transform:translateY(5px) rotate(5deg)}}
@keyframes coming-breathe{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(.985)}}
@media(prefers-reduced-motion:reduce){.hub-hero>p,.hub-hero h1,.hub-hero h1 em,.hub-heading,.game-tile,.tile-tuna,.tile-tuna:before,.sudoku-preview,.sampah-preview span,.sampah-preview i,.game-tile.coming:after{animation:none!important}.game-tile,.game-tile em{transition:none!important}}
