:root {
            --dark-bg: #1E1E1E;
            --neon-green: #39FF14;
            --turquoise: #00E3E3;
            --purple: #FF00FF;
            --azure: #00FFFF;
            --pink: #FF00AA;
            --corner-radius: 12px;
            --glow-intensity: 0.7;
        }
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Inter', 'SF Pro', sans-serif;
        }
        
        body {
            background-color: var(--dark-bg);
            color: white;
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            overflow-x: hidden;
        }
        
        .container {
            display: flex;
            flex-direction: column;
            min-height: 100vh;
            padding: 20px;
            max-width: 1200px;
            margin: 0 auto;
            width: 100%;
        }
        
        .header {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-bottom: 30px;
        }
        
        .app-title {
            font-size: 2rem;
            font-weight: 500;
            color: var(--neon-green);
            text-shadow: 0 0 15px rgba(57, 255, 20, var(--glow-intensity));
            text-align: center;
        }
        
        .subtitle {
            font-size: 1rem;
            color: var(--azure);
            text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
            margin-top: 5px;
            text-align: center;
        }
        
        .vowel-diagram-container {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 20px;
            position: relative;
        }
        
        .vowel-diagram {
            position: relative;
            width: 100%;
            max-width: 700px;
            height: 500px;
            background: rgba(30, 30, 30, 0.7);
            border: 1px solid var(--azure);
            border-radius: var(--corner-radius);
            box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
            padding: 40px;
            margin-bottom: 30px;
        }
        
        /* Connecting lines for tongue position and mouth opening */
        .diagram-lines {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 1;
        }
        
        .horizontal-line {
            position: absolute;
            left: 40px;
            right: 40px;
            height: 1px;
            background: linear-gradient(90deg, var(--turquoise), var(--azure));
            box-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
        }
        
        .vertical-line {
            position: absolute;
            top: 40px;
            bottom: 40px;
            width: 1px;
            background: linear-gradient(0deg, var(--turquoise), var(--azure));
            box-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
        }
        
        /* Horizontal lines - mouth opening levels */
        .line-close { top: 80px; }
        .line-close-mid { top: 160px; }
        .line-open-mid { top: 280px; }
        .line-open { top: 360px; }
        
        /* Vertical lines - tongue position */
        .line-front { left: 120px; }
        .line-front-central { left: 240px; }
        .line-central { left: 360px; }
        .line-back-central { left: 480px; }
        .line-back { left: 580px; }
        
        .vowel-sound {
            position: absolute;
            background: linear-gradient(135deg, var(--neon-green), var(--turquoise));
            color: var(--dark-bg);
            padding: 12px 16px;
            border-radius: 50%;
            cursor: pointer;
            transition: all 0.3s ease;
            border: 2px solid var(--azure);
            font-size: 1.2rem;
            font-weight: 600;
            min-width: 55px;
            height: 55px;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 0 15px rgba(57, 255, 20, 0.4);
            z-index: 2;
        }
        
        .vowel-sound:hover {
            transform: translateY(-3px) scale(1.05);
            box-shadow: 0 0 25px rgba(57, 255, 20, 0.7);
            background: linear-gradient(135deg, var(--turquoise), var(--azure));
        }
        
        .vowel-sound:active {
            transform: translateY(-1px) scale(1.02);
        }
        
        .vowel-sound.playing {
            background: linear-gradient(135deg, var(--pink), var(--purple));
            animation: pulse 0.6s ease-in-out;
            box-shadow: 0 0 30px rgba(255, 0, 170, 0.8);
        }
        
        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(1.15); }
            100% { transform: scale(1); }
        }
        
        /* Vowel positioning based on IPA chart with connecting lines */
        .vowel-i { top: 60px; left: 100px; }
        .vowel-y { top: 60px; left: 220px; }
        .vowel-u { top: 60px; right: 80px; }
        
        .vowel-e { top: 140px; left: 130px; }
        .vowel-ø { top: 140px; left: 250px; }
        .vowel-o { top: 140px; right: 110px; }

        .vowel-ə { top: 220px; left: 340px; }

        .vowel-ɛ { top: 260px; left: 160px; }
        .vowel-ɔ { top: 260px; left: 280px; }
        .vowel-œ { top: 260px; right: 140px; }

        .vowel-a { top: 340px; left: 50%; transform: translateX(-50%); }
        
        .nasal-sounds {
            display: flex;
            justify-content: center;
            gap: 30px;
            padding: 20px;
            border-top: 1px solid rgba(0, 255, 255, 0.3);
            background: rgba(30, 30, 30, 0.7);
            border-radius: var(--corner-radius);
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.3);
        }
        
        .nasal-sounds .vowel-sound {
            position: static;
            background: linear-gradient(135deg, var(--purple), var(--pink));
            border-color: var(--purple);
            box-shadow: 0 0 15px rgba(255, 0, 255, 0.4);
        }
        
        .nasal-sounds .vowel-sound:hover {
            background: linear-gradient(135deg, var(--pink), var(--azure));
            box-shadow: 0 0 25px rgba(255, 0, 255, 0.7);
        }
        
        .current-sound-info {
            position: fixed;
            top: 20px;
            right: 20px;
            background: rgba(30, 30, 30, 0.9);
            border: 1px solid var(--azure);
            border-radius: var(--corner-radius);
            padding: 15px 20px;
            box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
            opacity: 0;
            transform: translateX(100%);
            transition: all 0.3s ease;
            z-index: 1000;
        }
        
        .current-sound-info.show {
            opacity: 1;
            transform: translateX(0);
        }
        
        .sound-symbol {
            font-size: 1.5rem;
            color: var(--neon-green);
            text-shadow: 0 0 10px rgba(57, 255, 20, var(--glow-intensity));
            margin-bottom: 5px;
        }
        
        .sound-example {
            font-size: 0.9rem;
            color: var(--azure);
            text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
        }
        
        .instructions {
            text-align: center;
            margin-top: 20px;
            padding: 20px;
            background: rgba(30, 30, 30, 0.5);
            border: 1px solid rgba(0, 255, 255, 0.2);
            border-radius: var(--corner-radius);
            color: var(--azure);
            font-size: 0.9rem;
            text-shadow: 0 0 5px rgba(0, 255, 255, 0.3);
        }
        
        .legend {
            display: flex;
            justify-content: space-around;
            margin: 20px 0;
            font-size: 0.8rem;
            color: var(--turquoise);
        }
        
        .legend-item {
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .legend-line {
            width: 20px;
            height: 1px;
            background: var(--turquoise);
            box-shadow: 0 0 3px rgba(0, 255, 255, 0.5);
        }
        
        .sound-tables {
            margin: 2rem auto;
            max-width: 800px;
            padding: 0 1rem;
            overflow-x: auto; /* Allow horizontal scrolling if needed */
        }
        
        .phonetic-table {
            width: 100%;
            min-width: 480px; /* Minimum width to maintain readability */
            margin-bottom: 2rem;
            border-collapse: collapse;
            background-color: rgba(30, 30, 30, 0.7);
            box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
            border: 1px solid var(--azure);
            border-radius: var(--corner-radius);
            overflow: hidden;
        }
        
        .phonetic-table caption {
            font-size: 1.2rem;
            font-weight: bold;
            padding: 1rem;
            background-color: rgba(30, 30, 30, 0.9);
            border-bottom: 1px solid var(--azure);
            color: var(--neon-green);
            text-shadow: 0 0 10px rgba(57, 255, 20, var(--glow-intensity));
        }
        
        .phonetic-table th {
            padding: 0.75rem;
            text-align: left;
            border: 1px solid rgba(0, 227, 227, 0.3);
            color: var(--azure);
            background-color: rgba(0, 227, 227, 0.1);
            font-weight: 600;
            white-space: nowrap;
            border-left: none;              /* Remove internal vertical borders */
            border-right: none;
        }
        
        .phonetic-table td {
            padding: 0.75rem;
            border: 1px solid rgba(0, 227, 227, 0.3);
            color: var(--azure);
            vertical-align: top;
            line-height: 1.4;
            border-left: none;              /* Remove internal vertical borders */
            border-right: none;
        }
        
        /* Column width distribution */
        .phonetic-table th:nth-child(1),
        .phonetic-table td:nth-child(1) {
            width: 30%;
            min-width: 60px;
        }
        
        .phonetic-table th:nth-child(2),
        .phonetic-table td:nth-child(2) {
            width: 10%;
            min-width: 20px;
            text-align: center;
        }
        
        .phonetic-table th:nth-child(3),
        .phonetic-table td:nth-child(3) {
            width: 60%;
            min-width: 140px;
        }
        
        .phonetic-table .clickable-ipa,
        .phonetic-table .clickable-example {
            display: inline-block;
            padding: 0.3rem 0.6rem;
            margin: 0.1rem 0.2rem 0.1rem 0;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.2s ease;
            position: relative;
            word-break: normal;
            white-space: nowrap;
        }
        
        .phonetic-table .clickable-ipa {
            color: var(--neon-green);
            background: rgba(57, 255, 20, 0.1);
            border: 1px solid rgba(57, 255, 20, 0.3);
        }
        
        .phonetic-table .clickable-example {
            color: var(--turquoise);
            background: rgba(0, 227, 227, 0.1);
            border: 1px solid rgba(0, 227, 227, 0.3);
        }

        .phonetic-table .graphie {
            color: var(--purple);
            /* background: rgba(255, 0, 170, 0.1);
            border: 1px solid rgba(255, 0, 170, 0.3);
            margin-top: 0.2rem; */
        }
        
        /* Examples cell should allow wrapping while keeping items inline */
        /* .phonetic-table td:nth-child(3) {
            word-wrap: break-word;
            line-height: 1.6;
        } */
        
        .phonetic-table td:nth-child(3) .clickable-example {
            margin-bottom: 0.2rem;
        }
        
        /* Hover effects (apply only on non-touch devices) */
        @media (hover: hover) {
            .phonetic-table .clickable-ipa:hover,
            .phonetic-table .clickable-example:hover {
                transform: translateY(-2px);
                box-shadow: 0 2px 8px rgba(0, 255, 255, 0.2);
            }
        
            .phonetic-table .clickable-ipa:active,
            .phonetic-table .clickable-example:active {
                transform: translateY(0);
            }
        }
