/* Main styles for Ania Do Czytania - Ported Tailwind Utilities + Brand Rules */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;900&display=swap');

:root {
    --primary: #5B5CE2;
    --primary-hover: #4F46E5;
    --success: #22C55E;
    --warning: #FACC15;
    --error: #F87171;
    --bg-light: #F6F8FC;
    --surface: #FFFFFF;
    --border: #E5E7EB;
    --text-main: #111827;
    --text-sec: #6B7280;
}

body {
    font-family: 'Inter', sans-serif;
    color: var(--text-main);
}

/* Utilities (Mocking Tailwind) */
.w-full {
    width: 100%;
}

.h-full {
    height: 100%;
}

.w-32 {
    width: 8rem;
}

.h-32 {
    height: 8rem;
}

.w-48 {
    width: 12rem;
}

.h-48 {
    height: 12rem;
}

.w-64 {
    width: 16rem;
}

.h-64 {
    height: 16rem;
}

.w-40 {
    width: 10rem;
}

.h-40 {
    height: 10rem;
}

.w-4 {
    width: 1rem;
}

.h-4 {
    height: 1rem;
}

.min-h-screen {
    min-height: 80vh;
    /* Adjustment for WP Admin bar context */
}

.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.items-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.justify-start {
    justify-content: flex-start;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-4 {
    gap: 1rem;
}

.gap-6 {
    gap: 1.5rem;
}

.gap-y-8 {
    row-gap: 2rem;
}

.grid {
    display: grid;
}

.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.fixed {
    position: fixed;
}

.top-4 {
    top: 1rem;
}

.right-4 {
    right: 1rem;
}

.left-6 {
    left: 1.5rem;
}

.right-6 {
    right: 1.5rem;
}

.bottom-4 {
    bottom: 1rem;
}

.z-10 {
    z-index: 10;
}

.z-50 {
    z-index: 50;
}

.p-2 {
    padding: 0.5rem;
}

.p-3 {
    padding: 0.75rem;
}

.p-4 {
    padding: 1rem;
}

.p-6 {
    padding: 1.5rem;
}

.p-8 {
    padding: 2rem;
}

.p-10 {
    padding: 2.5rem;
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.pb-10 {
    padding-bottom: 2.5rem;
}

.m-0 {
    margin: 0;
}

.mt-1 {
    margin-top: 0.25rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

.mt-4 {
    margin-top: 1rem;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-4 {
    margin-bottom: 1rem;
}

.mb-6 {
    margin-bottom: 1.5rem;
}

.mb-8 {
    margin-bottom: 2rem;
}

.mb-10 {
    margin-bottom: 2.5rem;
}

.ml-2 {
    margin-left: 0.5rem;
}

.mx-1 {
    margin-left: 0.25rem;
    margin-right: 0.25rem;
}

.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.font-bold {
    font-weight: 700;
}

.font-semibold {
    font-weight: 600;
}

.font-black {
    font-weight: 900;
}

.font-medium {
    font-weight: 500;
}

.text-sm {
    font-size: 0.875rem;
}

.text-lg {
    font-size: 1.125rem;
}

.text-xl {
    font-size: 1.25rem;
}

.text-2xl {
    font-size: 1.5rem;
}

.text-3xl {
    font-size: 1.875rem;
}

.text-4xl {
    font-size: 2.25rem;
}

.text-5xl {
    font-size: 3rem;
}

.text-6xl {
    font-size: 3.75rem;
}

.uppercase {
    text-transform: uppercase;
}

.tracking-wider {
    letter-spacing: 0.05em;
}

.tracking-widest {
    letter-spacing: 0.1em;
}

.tracking-tighter {
    letter-spacing: -0.05em;
}

.rounded-xl {
    border-radius: 0.75rem;
}

.rounded-2xl {
    border-radius: 1rem;
}

.rounded-3xl {
    border-radius: 1.5rem;
}

.rounded-full {
    border-radius: 9999px;
}

.rounded-b-2xl {
    border-bottom-left-radius: 1rem;
    border-bottom-right-radius: 1rem;
}

.rounded-t-full {
    border-top-left-radius: 9999px;
    border-top-right-radius: 9999px;
}

.border {
    border-width: 1px;
}

.border-2 {
    border-width: 2px;
}

.border-4 {
    border-width: 4px;
}

.border-dashed {
    border-style: dashed;
}

.border-t-0 {
    border-top-width: 0;
}

.border-b-0 {
    border-bottom-width: 0;
}

.shadow-sm {
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.shadow-md {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.shadow-inner {
    box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
}

.bg-white {
    background-color: white;
}

.bg-gray-50 {
    background-color: #F9FAFB;
}

.bg-gray-100 {
    background-color: #F3F4F6;
}

.bg-gray-200 {
    background-color: #E5E7EB;
}

.bg-bgLight {
    background-color: var(--bg-light);
}

/* Theme Colors */
.text-primary {
    color: var(--primary);
}

.bg-primary {
    background-color: var(--primary);
}

.border-primary {
    border-color: var(--primary);
}

.text-success {
    color: var(--success);
}

.bg-success {
    background-color: var(--success);
}

.border-success {
    border-color: var(--success);
}

.text-error {
    color: var(--error);
}

.bg-error {
    background-color: var(--error);
}

.border-error {
    border-color: var(--error);
}

.text-textMain {
    color: var(--text-main);
}

.text-textSec {
    color: var(--text-sec);
}

.border-border {
    border-color: var(--border);
}

.bg-primary\/10 {
    background-color: rgba(91, 92, 226, 0.1);
}

.bg-white\/90 {
    background-color: rgba(255, 255, 255, 0.9);
}

.bg-white\/80 {
    background-color: rgba(255, 255, 255, 0.8);
}

/* Menu Colors */
.bg-blue-100 {
    background-color: #DBEAFE;
}

.text-blue-600 {
    color: #2563EB;
}

.bg-purple-100 {
    background-color: #F3E8FF;
}

.text-purple-600 {
    color: #9333EA;
}

.bg-green-100 {
    background-color: #DCFCE7;
}

.text-green-600 {
    color: #16A34A;
}

.bg-teal-100 {
    background-color: #CCFBF1;
}

.text-teal-600 {
    color: #0D9488;
}

.bg-red-100 {
    background-color: #FEE2E2;
}

.text-red-600 {
    color: #DC2626;
}

.bg-pink-100 {
    background-color: #FCE7F3;
}

.text-pink-600 {
    color: #DB2777;
}

.bg-yellow-100 {
    background-color: #FEF9C3;
}

.text-yellow-600 {
    color: #CA8A04;
}

.bg-red-400 {
    background-color: #F87171;
}

.bg-blue-400 {
    background-color: #60A5FA;
}

.bg-green-400 {
    background-color: #4ADE80;
}

.bg-yellow-400 {
    background-color: #FACC15;
}

.bg-purple-400 {
    background-color: #C084FC;
}

/* Transitions */
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-duration: 150ms;
}

.transition-transform {
    transition-property: transform;
    transition-duration: 150ms;
}

.duration-300 {
    transition-duration: 300ms;
}

.duration-500 {
    transition-duration: 500ms;
}

/* Effects */
.opacity-0 {
    opacity: 0;
}

.opacity-50 {
    opacity: 0.5;
}

.opacity-100 {
    opacity: 1;
}

.backdrop-blur-sm {
    backdrop-filter: blur(4px);
}

.overflow-hidden {
    overflow: hidden;
}

.cursor-pointer {
    cursor: pointer;
}

/* Ukryj mrugający kursor tekstowy na przyciskach i elementach interaktywnych */
button,
[role="button"],
.game-card,
#options-grid button,
#answers-grid button,
#letters-area,
#letters-area span,
#letters-area div {
    caret-color: transparent;
}

button:focus,
[role="button"]:focus {
    outline: none;
    caret-color: transparent;
}

.select-none {
    user-select: none;
}

.pointer-events-none {
    pointer-events: none;
}

/* Hover & Group */
.hover\:scale-105:hover {
    transform: scale(1.05);
}

.hover\:scale-110:hover {
    transform: scale(1.10);
}

.hover\:shadow-md:hover {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.hover\:bg-white:hover {
    background-color: white;
}

.hover\:bg-blue-50:hover {
    background-color: #EFF6FF;
}

.active\:scale-90:active {
    transform: scale(0.9);
}

.group:hover .group-hover\:text-primary {
    color: var(--primary);
}

.group:hover .group-hover\:scale-110 {
    transform: scale(1.10);
}

.group:hover .group-hover\:border-primary {
    border-color: var(--primary);
}

.group:hover .group-hover\:bg-blue-50 {
    background-color: #EFF6FF;
}

/* Animations */
@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);
    }
}

.shake {
    animation: shake 0.5s cubic-bezier(.36, .07, .19, .97) both;
}

@keyframes pop {
    0% {
        transform: scale(0.9);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.animate-pop {
    animation: pop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes pulse {
    50% {
        opacity: .5;
    }
}

.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-bounce {
    animation: bounce 1s infinite;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateY(-25%);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }

    50% {
        transform: translateY(0);
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}

/* Media Queries */
@media (min-width: 768px) {
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .md\:grid-cols-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .md\:text-2xl {
        font-size: 1.5rem;
    }

    .md\:text-4xl {
        font-size: 2.25rem;
    }

    .md\:text-5xl {
        font-size: 3rem;
    }

    .md\:p-6 {
        padding: 1.5rem;
    }

    .md\:p-8 {
        padding: 2rem;
    }

    .md\:col-span-2 {
        grid-column: span 2 / span 2;
    }

    .md\:w-24 {
        width: 6rem;
    }

    .md\:h-24 {
        height: 6rem;
    }

    .md\:w-64 {
        width: 16rem;
    }

    .md\:h-64 {
        height: 16rem;
    }
}

/* Object Fit */
.object-cover {
    object-fit: cover;
}

/* ====== NEW CLASSES FOR COMPLETE 10 GAMES ====== */

/* Additional Sizing */
.w-12 {
    width: 3rem;
}

.h-12 {
    height: 3rem;
}

.w-16 {
    width: 4rem;
}

.h-16 {
    height: 4rem;
}

.w-24 {
    width: 6rem;
}

.h-24 {
    height: 6rem;
}

.h-20 {
    height: 5rem;
}

.h-14 {
    height: 3.5rem;
}

.max-w-xs {
    max-width: 20rem;
}

.max-w-md {
    max-width: 28rem;
}

.min-h-\[50vh\] {
    min-height: 50vh;
}

.min-h-\[60vh\] {
    min-height: 60vh;
}

.min-h-\[2rem\] {
    min-height: 2rem;
}

/* Additional Spacing */
.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}

.px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
}

.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}

.py-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.pb-2 {
    padding-bottom: 0.5rem;
}

.p-5 {
    padding: 1.25rem;
}

.mt-6 {
    margin-top: 1.5rem;
}

.mt-8 {
    margin-top: 2rem;
}

.mt-10 {
    margin-top: 2.5rem;
}

.gap-3 {
    gap: 0.75rem;
}

.gap-8 {
    gap: 2rem;
}

.gap-10 {
    gap: 2.5rem;
}

/* Grid Columns */
.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Positioning */
.top-2 {
    top: 0.5rem;
}

.left-2 {
    left: 0.5rem;
}

.right-2 {
    right: 0.5rem;
}

.left-1\/2 {
    left: 50%;
}

.top-1\/2 {
    top: 50%;
}

.-translate-x-1\/2 {
    transform: translateX(-50%);
}

.-translate-y-1\/2 {
    transform: translateY(-50%);
}

.inset-0 {
    inset: 0;
}

.z-20 {
    z-index: 20;
}

/* Text Sizes */
.text-8xl {
    font-size: 6rem;
    line-height: 1;
}

.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}

.text-\[10px\] {
    font-size: 10px;
}

/* Aspect Ratio */
.aspect-square {
    aspect-ratio: 1 / 1;
}

/* Border Colors */
.border-transparent {
    border-color: transparent;
}

.border-gray-100 {
    border-color: #F3F4F6;
}

.border-gray-200 {
    border-color: #E5E7EB;
}

.border-gray-300 {
    border-color: #D1D5DB;
}

.border-white {
    border-color: white;
}

.border-red-500 {
    border-color: #EF4444;
}

.border-blue-100 {
    border-color: #DBEAFE;
}

/* Background Colors for New Games */
.bg-cyan-100 {
    background-color: #CFFAFE;
}

.text-cyan-600 {
    color: #0891B2;
}

.bg-indigo-100 {
    background-color: #E0E7FF;
}

.text-indigo-600 {
    color: #4F46E5;
}

.bg-orange-100 {
    background-color: #FFEDD5;
}

.text-orange-600 {
    color: #EA580C;
}

.bg-green-50 {
    background-color: #F0FDF4;
}

.bg-red-50 {
    background-color: #FEF2F2;
}

.bg-blue-50 {
    background-color: #EFF6FF;
}

.bg-gray-300 {
    background-color: #D1D5DB;
}

.text-gray-300 {
    color: #D1D5DB;
}

.text-gray-400 {
    color: #9CA3AF;
}

.text-white {
    color: white;
}

/* Opacity Variants */
.bg-primary\/5 {
    background-color: rgba(91, 92, 226, 0.05);
}

.bg-primary\/40 {
    background-color: rgba(91, 92, 226, 0.4);
}

.bg-success\/90 {
    background-color: rgba(34, 197, 94, 0.9);
}

.border-primary\/20 {
    border-color: rgba(91, 92, 226, 0.2);
}

.border-primary\/30 {
    border-color: rgba(91, 92, 226, 0.3);
}

.border-primary\/40 {
    border-color: rgba(91, 92, 226, 0.4);
}

.shadow-primary\/30 {
    --tw-shadow-color: rgba(91, 92, 226, 0.3);
    box-shadow: 0 10px 15px -3px var(--tw-shadow-color);
}

.shadow-success\/30 {
    --tw-shadow-color: rgba(34, 197, 94, 0.3);
    box-shadow: 0 10px 15px -3px var(--tw-shadow-color);
}

.shadow-xl {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

/* Effects */
.backdrop-blur {
    backdrop-filter: blur(8px);
}

.blur-xl {
    filter: blur(24px);
}

.will-change-transform {
    will-change: transform;
}

/* Scale Variants */
.scale-105 {
    transform: scale(1.05);
}

.scale-110 {
    transform: scale(1.1);
}

.scale-0 {
    transform: scale(0);
}

/* Hover States */
.hover\:shadow-xl:hover {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.hover\:bg-gray-50:hover {
    background-color: #F9FAFB;
}

.hover\:bg-green-50:hover {
    background-color: #F0FDF4;
}

.hover\:bg-primary:hover {
    background-color: var(--primary);
}

.hover\:bg-primary\/5:hover {
    background-color: rgba(91, 92, 226, 0.05);
}

.hover\:bg-primaryHover:hover {
    background-color: var(--primary-hover);
}

.hover\:border-primary:hover {
    border-color: var(--primary);
}

.hover\:border-primary\/30:hover {
    border-color: rgba(91, 92, 226, 0.3);
}

.hover\:-translate-y-1:hover {
    transform: translateY(-0.25rem);
}

/* Active States */
.active\:scale-95:active {
    transform: scale(0.95);
}

/* Duration */
.duration-75 {
    transition-duration: 75ms;
}

/* Flex Utilities */
.flex-1 {
    flex: 1 1 0%;
}

.items-start {
    align-items: flex-start;
}

.items-end {
    align-items: flex-end;
}

/* Width/Height */
.h-2\.5 {
    height: 0.625rem;
}

.md\:h-20 {
    height: 5rem;
}

.md\:gap-4 {
    gap: 1rem;
}

.md\:gap-8 {
    gap: 2rem;
}

.md\:w-32 {
    width: 8rem;
}

.md\:h-32 {
    height: 8rem;
}

/* Button Styles */
.adc-btn {
    background-color: var(--primary);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 0.625rem;
    font-weight: 700;
    font-size: 1rem;
    box-shadow: 0 10px 15px -3px rgba(91, 92, 226, 0.3);
    transition: all 150ms ease;
    border: none;
    cursor: pointer;
}

.adc-btn:hover {
    background-color: var(--primary-hover);
    transform: scale(1.05);
}

.adc-btn-secondary {
    background-color: white;
    color: var(--primary);
    border: 2px solid var(--border);
}

.adc-btn-secondary:hover {
    border-color: var(--primary);
    background-color: rgba(91, 92, 226, 0.05);
}

/* Reading Game Specific */
.tracking-wide {
    letter-spacing: 0.025em;
}

/* Additional Media Queries */
@media (min-width: 768px) {
    .md\:gap-10 {
        gap: 2.5rem;
    }

    .md\:h-20 {
        height: 5rem;
    }
}