/* Selection motion shares a soft landing; the original layout stays in style.css. */
.world { transform:scale(1.025); transition:opacity .65s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.16,1,.3,1); }
.world.is-visible { transform:scale(1); animation:none; }
.world.is-visible img { animation:none; }
.cover { transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,filter .3s ease; }
.game-tile:not(.is-selected):hover .cover { transform:translateY(-2px) scale(1.035); }
.game-tile.is-selected .cover { transform:translateY(-3px) scale(1.14); }
.game-tile:active .cover { transform:translateY(-1px) scale(1.01); transition-duration:.12s; }
.game-tile .tile-label { transition:opacity .4s ease,color .4s ease; }
.game-shelf { cursor:grab; user-select:none; }
.game-shelf.is-dragging, .game-shelf.is-dragging * { cursor:grabbing; }
.game-shelf img { -webkit-user-drag:none; }
.game-copy.is-entering > * { animation:console-copy-in .5s cubic-bezier(.16,1,.3,1) both; }
.game-copy.is-entering > :nth-child(1) { animation-delay:20ms; }
.game-copy.is-entering > :nth-child(2) { animation-delay:50ms; }
.game-copy.is-entering > :nth-child(3) { animation-delay:90ms; }
.game-copy.is-entering > :nth-child(4) { animation-delay:115ms; }
.game-copy.is-entering > :nth-child(5) { animation-name:console-action-in; animation-delay:140ms; }
@keyframes console-copy-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes console-action-in { from { opacity:0; } to { opacity:1; } }
.game-actions { width:max-content; }
.play-button { white-space:nowrap; flex-shrink:0; transition:background .25s ease,transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease; }
body.is-booting .world { transform:scale(1); }
body.reduced-motion .world { transform:none; }
@media(prefers-reduced-motion:reduce) { .world { transform:none; } }
