*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{--safe-top: env(safe-area-inset-top);--safe-bottom: env(safe-area-inset-bottom);--safe-left: env(safe-area-inset-left);--safe-right: env(safe-area-inset-right);--nav-icon-size: 24px;--nav-label-size: 12px;--nav-padding: 12px;--nav-link-gap: 4px;--nav-link-padding: 8px 16px;--phase-dot-width: 32px;--phase-dot-height: 6px;--phase-label-size: 11px;--header-title-size: 16px;--header-back-size: 24px;--page-title-size: 24px;--page-subtitle-size: 16px;--page-progress-text-size: 14px;--card-number-size: 24px;--card-title-size: 11px;--card-icon-size: 16px;--unit-number-size: 20px;--unit-badge-size: 48px;--unit-title-size: 16px;--unit-desc-size: 14px;--unit-meta-size: 12px;--unit-icon-size: 20px;--badge-size: 12px;--module-icon-size: 32px;--module-title-size: 18px;--module-desc-size: 14px;--section-title-size: 14px;--option-label-size: 16px;--option-value-size: 14px}@media(min-width:768px){html{--nav-icon-size: 28px;--nav-label-size: 14px;--nav-padding: 16px;--nav-link-gap: 6px;--nav-link-padding: 10px 20px;--phase-dot-width: 48px;--phase-dot-height: 8px;--phase-label-size: 13px;--header-title-size: 18px;--header-back-size: 28px;--page-title-size: 32px;--page-subtitle-size: 18px;--page-progress-text-size: 16px;--card-number-size: 32px;--card-title-size: 14px;--card-icon-size: 20px;--unit-number-size: 24px;--unit-badge-size: 56px;--unit-title-size: 18px;--unit-desc-size: 16px;--unit-meta-size: 14px;--unit-icon-size: 24px;--badge-size: 14px;--module-icon-size: 40px;--module-title-size: 20px;--module-desc-size: 16px;--section-title-size: 15px;--option-label-size: 18px;--option-value-size: 16px}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1e293b;line-height:1.5;overflow-x:hidden}[data-theme=dark] body{background-color:#1a1a2e;color:#fff}#root{min-height:100vh;min-height:100dvh}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{user-select:none;-webkit-user-select:none}button,a,input[type=checkbox],input[type=radio]{min-height:44px;min-width:44px}input,textarea,select{font-size:16px}button{background:none;border:none;font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}html{scroll-behavior:smooth}::-webkit-scrollbar{width:0;height:0}:focus-visible{outline:2px solid #6366f1;outline-offset:2px}::selection{background-color:#6366f14d}.phonetic-vowel{color:#dc2626}.phonetic-vowel-long{color:#d97706}.phonetic-vowel-special{color:#db2777}.phonetic-consonant{color:#2563eb}.phonetic-consonant-special{color:#4f46e5}.phonetic-consonant-hacik{color:#059669}.phonetic-consonant-soft{color:#0d9488}.phonetic-diphthong{color:#9333ea}.phonetic-syllabic{color:#ea580c}.phonetic-bg-vowel{background-color:#fee2e2;color:#dc2626}.phonetic-bg-vowel-long{background-color:#fef3c7;color:#d97706}.phonetic-bg-vowel-special{background-color:#fce7f3;color:#db2777}.phonetic-bg-consonant{background-color:#dbeafe;color:#2563eb}.phonetic-bg-consonant-special{background-color:#e0e7ff;color:#4f46e5}.phonetic-bg-consonant-hacik{background-color:#d1fae5;color:#059669}.phonetic-bg-consonant-soft{background-color:#ccfbf1;color:#0d9488}.phonetic-bg-diphthong{background-color:#f3e8ff;color:#9333ea}.phonetic-bg-syllabic{background-color:#fff7ed;color:#ea580c}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.02);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes bounceIn{0%{transform:scale(.9);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes fadeSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes swipeHint{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.fade-in{animation:fadeIn .3s ease-out}.slide-up{animation:slideUp .3s ease-out}.pulse{animation:pulse .3s ease-out}.shake{animation:shake .3s ease-out}
