body {
    font-family: 'Noto Sans KR', sans-serif;
}

/* 3D Flip Card Styles */
.perspective-1000 {
    perspective: 1000px;
}

.transform-style-3d {
    transform-style: preserve-3d;
}

.flip-card {
    transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

.is-flipped {
    transform: rotateY(180deg);
}

.card-front,
.card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.375rem;
    box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
    font-weight: 900;
}

.card-back {
    transform: rotateY(180deg);
}

/* SVG Animation */
.dash-anim {
    stroke-dasharray: 8;
    animation: dash 0.8s linear infinite;
}

@keyframes dash {
    to {
        stroke-dashoffset: -16;
    }
}

/* Highlights */
@keyframes pulse-border {
    0% {
        box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
    }

    70% {
        box-shadow: 0 0 0 8px rgba(239, 68, 68, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
    }
}

.highlight-danger {
    animation: pulse-border 1.5s infinite;
    border: 2px solid #ef4444;
    border-radius: 0.375rem;
}

.highlight-blue {
    box-shadow: 0 0 0 3px #3b82f6;
    border-radius: 0.375rem;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

/* Board specific sizing to fit 4 players */
.tile-sm {
    width: 2rem;
    height: 2.75rem;
    font-size: 1rem;
}

@media (min-width: 640px) {
    .tile-sm {
        width: 2.5rem;
        height: 3.5rem;
        font-size: 1.25rem;
    }
}

.tile-lg {
    width: 3rem;
    height: 4rem;
    font-size: 1.5rem;
}

@media (min-width: 640px) {
    .tile-lg {
        width: 4rem;
        height: 5.5rem;
        font-size: 2rem;
    }
}

.door-tile {
    width: 3rem;
    height: 4.5rem;
    font-size: 1.5rem;
}

@media (min-width: 640px) {
    .door-tile {
        width: 4rem;
        height: 6rem;
        font-size: 2rem;
    }
}

@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade-in { animation: fadeIn 0.4s ease-out forwards; }
