        body {
            margin: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            /* Fallback for browsers that don't support dvh */
            height: 90dvh;
            background: #fff9c4;
            overflow: hidden;
            font-family: 'Fredoka One', cursive;
            touch-action: none;
            background: url("../img/background.jpeg") no-repeat center center fixed;
            background-size: cover;
        }

        .game-wrapper {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
            padding-bottom: env(safe-area-inset-bottom);
            box-sizing: border-box;
        }

        #app {
            position: relative;
            width: 100%;
            height: 100%;
            max-width: 415px;
            max-height: 726px;
            /*box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);*/
            border-radius: 20px;
            overflow: hidden;
            /*background: #fff9c4;*/
        }

        #app canvas {
            width: 100%;
            height: 100%;
            object-fit: contain;
            background: #fff9c4;
        }

        .ui-header {
            position: absolute;
            top: 20px;
            left: 0;
            width: 100%;
            display: flex;
            justify-content: space-between;
            padding: 0 20px;
            box-sizing: border-box;
            pointer-events: none;
            z-index: 10;
        }

        .score {
            font-size: 40px;
            /* 크기 키움 */
            color: #5d4037;
            /* 진한 갈색으로 변경해 가독성 높임 */
            font-weight: normal;
            /* 폰트 자체가 두꺼움 */
            text-shadow: 2px 2px 0 #fff;
            pointer-events: none;
        }

        .next-fruit {
            display: flex;
            flex-direction: column;
            align-items: center;
            background: rgba(255, 255, 255, 0.6);
            padding: 5px 10px;
            border-radius: 15px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }

        .next-fruit span {
            font-size: 14px;
            color: #5d4037;
            margin-bottom: 5px;
        }

        .next-fruit img {
            width: 30px;
            height: 30px;
            object-fit: contain;
        }

        .game-over {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            display: none;
            text-align: center;
            z-index: 100;
        }

        .game-over h1 {
            font-size: 45px;
            color: #ff4757;
            font-weight: normal;
            margin: 0 0 20px 0;
            text-shadow: 3px 3px 0 #fff, 0 0 10px rgba(0, 0, 0, 0.1);
            font-family: 'Fredoka One', cursive;
        }

        .restart-btn {
            padding: 15px 30px;
            font-size: 24px;
            color: white;
            background: linear-gradient(135deg, #4ECDC4, #556270);
            border: none;
            border-radius: 50px;
            cursor: pointer;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
            font-weight: bold;
            transition: transform 0.2s, box-shadow 0.2s;
            font-family: inherit;
        }

        .restart-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
        }

        .restart-btn:active {
            transform: translateY(2px);
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
        }

        /* 점수 팝 애니메이션 (Pop Animation) */
        @keyframes scorePop {
            0% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.4);
                color: #ff6b6b;
            }

            100% {
                transform: scale(1);
                color: #5d4037;
            }
        }

        .score.animate {
            animation: scorePop 0.2s ease-out;
        }

        .win-screen {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.7);
            display: none;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 200;
        }

        .win-screen h1 {
            font-size: 32px;
            width: 90%;
            text-align: center;
            line-height: 1.2;
            color: #FFD700;
            text-shadow: 0 0 20px rgba(255, 215, 0, 0.5), 2px 2px 0 #fff;
            margin-bottom: 30px;
            animation: scorePop 0.5s infinite alternate;
        }

        .game-title {
            margin-top: 20px;
            font-size: clamp(30px, 8vw, 48px);
            font-weight: 900;
            color: #FF5252;
            text-shadow:
                2px 2px 0 #fff,
                -2px -2px 0 #fff,
                2px -2px 0 #fff,
                -2px 2px 0 #fff,
                0 4px 6px rgba(0, 0, 0, 0.1);
            margin-bottom: 5px;
            z-index: 11;
            white-space: nowrap;
            letter-spacing: 1px;
            animation: titleFloat 3s ease-in-out infinite;
            pointer-events: none;
        }

        @keyframes titleFloat {

            0%,
            100% {
                transform: rotate(-2deg);
            }

            50% {
                transform: translateY(-5px) rotate(2deg);
            }
        }