 /* General Styling */
        html, body { height: 100%; margin: 0; padding: 0; overflow: hidden; }
        body { font-family: 'Fredoka', sans-serif; touch-action: manipulation; background-color: #FEF3C7; display: flex; align-items: center; justify-content: center; }
        #game-wrapper { width: 100%; height: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch; display: flex; align-items: center; justify-content: flex-start; flex-direction: column; padding: 1rem; }
        .item-card { cursor: grab; user-select: none; transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s; will-change: transform; }
        .item-card.dragging { opacity: 0.3; cursor: grabbing; }
        .flying-clone { position: fixed; z-index: 1000; pointer-events: none; transform: scale(1.15); box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); transition: transform 0.1s ease-out; }
        .drop-zone-over { transform: scale(1.03); box-shadow: 0 0 0 4px #34D399, 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); }
        .speech-bubble { position: relative; background: white; border-radius: 1.5em; border: 4px solid #F97316; filter: drop-shadow(0 4px 6px rgba(0,0,0,0.1)); }
        .speech-bubble:after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 0; border: 25px solid transparent; border-top-color: #F97316; border-bottom: 0; border-left: 0; margin-left: -12.5px; margin-bottom: -25px; }
        .bouncing { animation: bounce 0.5s ease; }
        @keyframes bounce { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2); } }
        .shake { animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both; }
        @keyframes shake { 10%, 90% { transform: translate3d(-1px, 0, 0); } 20%, 80% { transform: translate3d(2px, 0, 0); } 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } 40%, 60% { transform: translate3d(4px, 0, 0); } }
        .btn-action { transition: transform 0.1s ease, box-shadow 0.2s ease; }
        .btn-action:active { transform: translateY(2px) scale(0.98); box-shadow: none; }