:root{--accent-primary:346 77% 49%;--accent-light:300 100% 97%;--font-target:"Inter",sans-serif}:root[data-language=zh-CN]{--accent-primary:0 73% 51%;--accent-light:0 93% 94%;--font-target:"Noto Sans SC",sans-serif}:root[data-language=de-DE]{--accent-primary:220 77% 40%;--accent-light:214 95% 93%;--font-target:"Inter",sans-serif}:root[data-language=ar-SA]{--accent-primary:160 84% 39%;--accent-light:151 81% 91%;--font-target:"Noto Sans Arabic",sans-serif}:root[data-language=ar-MA]{--accent-primary:357 74% 47%;--accent-light:0 90% 89%;--font-target:"Noto Sans Arabic",sans-serif}:root[data-language=ko-KR]{--accent-primary:258 90% 66%;--accent-light:250 100% 96%;--font-target:"Noto Sans KR",sans-serif}:root[data-language=es-ES]{--accent-primary:0 73% 51%;--accent-light:0 93% 94%;--font-target:"Inter",sans-serif}:root[data-language=fr-FR]{--accent-primary:220 77% 40%;--accent-light:214 95% 93%;--font-target:"Inter",sans-serif}:root[data-language=ja-JP]{--accent-primary:0 73% 51%;--accent-light:0 93% 94%;--font-target:"Noto Sans JP",sans-serif}:root[data-language=ru-RU]{--accent-primary:0 73% 51%;--accent-light:0 93% 94%;--font-target:"Inter",sans-serif}:root[data-target-rtl=true] .target-language-text{direction:rtl;text-align:right}.ltr-content{direction:ltr;text-align:left;unicode-bidi:embed}.dark :root[data-language=zh-CN]{--accent-primary:0 85% 65%;--accent-light:0 50% 20%}.dark :root[data-language=de-DE]{--accent-primary:220 85% 60%;--accent-light:220 50% 20%}.dark :root[data-language=ar-SA]{--accent-primary:160 84% 50%;--accent-light:160 50% 20%}.dark :root[data-language=ar-MA]{--accent-primary:357 74% 57%;--accent-light:357 50% 20%}.dark :root[data-language=ko-KR]{--accent-primary:258 90% 72%;--accent-light:258 50% 20%}.dark :root[data-language=es-ES]{--accent-primary:0 85% 65%;--accent-light:0 50% 20%}.dark :root[data-language=fr-FR]{--accent-primary:220 85% 60%;--accent-light:220 50% 20%}.dark :root[data-language=ja-JP],.dark :root[data-language=ru-RU]{--accent-primary:0 85% 65%;--accent-light:0 50% 20%}@media (prefers-reduced-motion:no-preference){:root[data-language=zh-CN] .language-background{background-image:radial-gradient(circle at 20% 50%,rgba(220,38,38,.03) 0,transparent 50%)}:root[data-language=ko-KR] .language-background{background-image:radial-gradient(circle at 80% 50%,rgba(124,58,237,.03) 0,transparent 50%)}:root[data-language=ar-SA] .language-background{background-image:radial-gradient(circle at 50% 50%,rgba(5,150,105,.03) 0,transparent 50%)}:root[data-language=ar-MA] .language-background{background-image:radial-gradient(circle at 50% 50%,rgba(193,39,45,.03) 0,transparent 50%)}}:root{transition:background-color .3s ease,color .3s ease}*{transition-property:color,background-color,border-color;transition-duration:.2s;transition-timing-function:ease-in-out}.accent-text{color:hsl(var(--accent-primary))}.accent-bg{background-color:hsl(var(--accent-primary)/.1)}.accent-bg-solid{background-color:hsl(var(--accent-primary))}.accent-border{border-color:hsl(var(--accent-primary))}.accent-bg-light{background-color:hsl(var(--accent-light))}[dir=rtl] .icon-mirror{transform:scaleX(-1)}.ltr-content{direction:ltr!important;text-align:left!important}.rtl-content{direction:rtl!important;text-align:right!important}.bidi-wrapper{display:inline-flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.bidi-isolate{unicode-bidi:isolate}.target-language-text{font-family:var(--font-target);unicode-bidi:embed}.font-arabic,[dir=rtl] .font-arabic{font-family:Noto Sans Arabic,sans-serif}.flex-row-fixed{direction:ltr}[dir=rtl] .grid-auto-flow-reverse{grid-auto-flow:row dense;direction:rtl}.number,.percentage,.score,.xp-value{direction:ltr;display:inline-block}.code-block,code,pre{direction:ltr!important;text-align:left!important}.url,a[href^=http]{direction:ltr;display:inline-block}[dir=rtl] input[type=email],[dir=rtl] input[type=search],[dir=rtl] input[type=text],[dir=rtl] textarea{text-align:right}[dir=rtl] input::-moz-placeholder,[dir=rtl] textarea::-moz-placeholder{text-align:right}[dir=rtl] input::placeholder,[dir=rtl] textarea::placeholder{text-align:right}[dir=rtl] .search-input-wrapper{flex-direction:row-reverse}[dir=rtl] .chat-bubble-user{margin-right:auto;margin-left:0}[dir=rtl] .chat-bubble-tutor{margin-left:auto;margin-right:0}.message-text-rtl{direction:rtl;text-align:right}.message-text-ltr{direction:ltr;text-align:left}[dir=rtl] .dropdown-menu{text-align:right}[dir=rtl] .breadcrumb-separator,[dir=rtl] .progress-bar,[dir=rtl] .progress-bar-fill{transform:scaleX(-1)}[dir=rtl] .card-content{text-align:right}[dir=rtl] ol,[dir=rtl] ul{padding-right:1.5rem;padding-left:0}[dir=rtl] .slide-in-right{animation-name:slide-in-left-rtl}[dir=rtl] .slide-in-left{animation-name:slide-in-right-rtl}@keyframes slide-in-left-rtl{0%{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-right-rtl{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@media (prefers-reduced-motion:reduce){[dir=rtl] .icon-mirror{transform:none}}[dir=rtl] :focus-visible{outline-offset:2px}@media print{[dir=rtl]{direction:rtl}[dir=rtl] .no-print-rtl{display:none}}:root{--gl-transition-fast:150ms;--gl-transition-normal:300ms;--gl-transition-slow:500ms;--gl-transition-phase:400ms;--gl-ease-bounce:cubic-bezier(0.34,1.56,0.64,1);--gl-ease-smooth:cubic-bezier(0.4,0,0.2,1);--gl-ease-enter:cubic-bezier(0,0,0.2,1);--gl-ease-exit:cubic-bezier(0.4,0,1,1);--gl-correct:142 76% 36%;--gl-incorrect:0 84% 60%;--gl-perfect:45 93% 47%;--gl-streak:280 85% 65%}@keyframes gl-phase-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gl-phase-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes gl-scale-enter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.gl-phase-enter{animation:gl-phase-enter var(--gl-transition-phase) var(--gl-ease-enter) forwards}.gl-phase-exit{animation:gl-phase-exit var(--gl-transition-phase) var(--gl-ease-exit) forwards}.gl-scale-enter{animation:gl-scale-enter var(--gl-transition-normal) var(--gl-ease-bounce) forwards}.gl-stagger-children>*{opacity:0;animation:gl-phase-enter var(--gl-transition-normal) var(--gl-ease-enter) forwards}.gl-stagger-children>:first-child{animation-delay:0s}.gl-stagger-children>:nth-child(2){animation-delay:50ms}.gl-stagger-children>:nth-child(3){animation-delay:.1s}.gl-stagger-children>:nth-child(4){animation-delay:.15s}.gl-stagger-children>:nth-child(5){animation-delay:.2s}.gl-stagger-children>:nth-child(6){animation-delay:.25s}.gl-card-container{perspective:1000px}.gl-card{position:relative;transform-style:preserve-3d;transition:transform .6s var(--gl-ease-smooth)}.gl-card.flipped{transform:rotateY(180deg)}.gl-card-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.gl-card-back{transform:rotateY(180deg)}@keyframes gl-card-reveal{0%{opacity:0;transform:scale(.8) rotateX(10deg)}50%{opacity:1;transform:scale(1.02) rotateX(-2deg)}to{opacity:1;transform:scale(1) rotateX(0)}}.gl-card-reveal{animation:gl-card-reveal .5s var(--gl-ease-bounce) forwards}@keyframes gl-word-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.gl-word-highlight{animation:gl-word-pulse 1s var(--gl-ease-smooth) infinite}@keyframes gl-correct-pulse{0%{box-shadow:0 0 0 0 hsl(var(--gl-correct)/.4);transform:scale(1)}50%{box-shadow:0 0 0 15px hsl(var(--gl-correct)/0);transform:scale(1.02)}to{box-shadow:0 0 0 0 hsl(var(--gl-correct)/0);transform:scale(1)}}.gl-correct{animation:gl-correct-pulse .5s var(--gl-ease-smooth);background-color:hsl(var(--gl-correct)/.1)!important;border-color:hsl(var(--gl-correct))!important}@keyframes gl-shake{0%,to{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-8px)}80%{transform:translateX(8px)}}.gl-incorrect{animation:gl-shake .4s var(--gl-ease-smooth);background-color:hsl(var(--gl-incorrect)/.1)!important;border-color:hsl(var(--gl-incorrect))!important}@keyframes gl-perfect{0%{transform:scale(1);filter:brightness(1)}25%{transform:scale(1.1);filter:brightness(1.2)}50%{transform:scale(1.05);filter:brightness(1.1)}75%{transform:scale(1.08);filter:brightness(1.15)}to{transform:scale(1);filter:brightness(1)}}.gl-perfect{animation:gl-perfect .6s var(--gl-ease-bounce);background:linear-gradient(135deg,hsl(var(--gl-perfect)/.2),hsl(var(--gl-correct)/.2))!important}@keyframes gl-streak-pop{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}.gl-streak-pop{animation:gl-streak-pop .4s var(--gl-ease-bounce)}.gl-streak-glow{box-shadow:0 0 20px hsl(var(--gl-streak)/.5),0 0 40px hsl(var(--gl-streak)/.3)}@keyframes gl-fire{0%,to{filter:hue-rotate(0deg)}50%{filter:hue-rotate(20deg)}}.gl-streak-fire{animation:gl-fire .5s ease-in-out infinite;background:linear-gradient(0deg,hsl(15,100%,50%),hsl(45,100%,50%));-webkit-background-clip:text;background-clip:text;color:transparent}@keyframes gl-xp-float{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-30px) scale(1.2)}to{opacity:0;transform:translateY(-50px) scale(.8)}}.gl-xp-float{animation:gl-xp-float 1s var(--gl-ease-smooth) forwards;pointer-events:none}@keyframes gl-star-earn{0%{transform:scale(0) rotate(-180deg);opacity:0}60%{transform:scale(1.3) rotate(10deg);opacity:1}to{transform:scale(1) rotate(0deg);opacity:1}}.gl-star-earn{animation:gl-star-earn .6s var(--gl-ease-bounce) forwards}@keyframes gl-shimmer{0%,to{filter:brightness(1)}50%{filter:brightness(1.3) drop-shadow(0 0 10px hsl(var(--gl-perfect)))}}.gl-star-shimmer{animation:gl-shimmer 1.5s ease-in-out infinite}@keyframes gl-progress-fill{0%{width:var(--progress-from,0)}to{width:var(--progress-to,100%)}}.gl-progress-bar{transition:width .5s var(--gl-ease-smooth)}.gl-progress-pulse{animation:gl-word-pulse 1s var(--gl-ease-smooth) infinite}@keyframes gl-milestone{0%,to{transform:scale(1);box-shadow:0 0 0 0 hsl(var(--primary)/.4)}50%{transform:scale(1.2);box-shadow:0 0 0 10px hsl(var(--primary)/0)}}.gl-milestone{animation:gl-milestone .6s var(--gl-ease-bounce)}.gl-btn-primary{position:relative;overflow:hidden;transition:all var(--gl-transition-normal) var(--gl-ease-smooth)}.gl-btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);transform:translateX(-100%)}.gl-btn-primary:hover:after{animation:gl-btn-shine .6s ease forwards}@keyframes gl-btn-shine{to{transform:translateX(100%)}}@keyframes gl-recording-pulse{0%,to{box-shadow:0 0 0 0 hsl(var(--gl-incorrect)/.4)}50%{box-shadow:0 0 0 12px hsl(var(--gl-incorrect)/0)}}.gl-recording{animation:gl-recording-pulse 1.5s ease-in-out infinite}.gl-tap-feedback{transition:transform .1s var(--gl-ease-smooth)}.gl-tap-feedback:active{transform:scale(.95)}@keyframes gl-confetti-fall{0%{transform:translateY(-10px) translateX(0) rotate(0deg);opacity:1}25%{transform:translateY(25vh) translateX(15px) rotate(180deg);opacity:1}50%{transform:translateY(50vh) translateX(-10px) rotate(1turn);opacity:1}75%{transform:translateY(75vh) translateX(20px) rotate(540deg);opacity:.8}to{transform:translateY(100vh) translateX(0) rotate(2turn);opacity:0}}@keyframes gl-confetti-fall-alt{0%{transform:translateY(-10px) translateX(0) rotate(0deg);opacity:1}25%{transform:translateY(25vh) translateX(-20px) rotate(-180deg);opacity:1}50%{transform:translateY(50vh) translateX(15px) rotate(-1turn);opacity:1}75%{transform:translateY(75vh) translateX(-15px) rotate(-540deg);opacity:.8}to{transform:translateY(100vh) translateX(5px) rotate(-2turn);opacity:0}}.gl-confetti{position:absolute;top:0;width:10px;height:10px;animation:gl-confetti-fall 2.5s ease-out forwards}.gl-confetti:nth-child(odd){animation-name:gl-confetti-fall-alt;animation-duration:2.8s}.gl-confetti:nth-child(2n){animation-duration:2.2s}.gl-confetti:nth-child(3n){animation-duration:3s}.gl-confetti:nth-child(5n){animation-duration:2s}@keyframes gl-trophy-bounce{0%,to{transform:translateY(0)}25%{transform:translateY(-15px)}50%{transform:translateY(0)}75%{transform:translateY(-8px)}}.gl-trophy-bounce{animation:gl-trophy-bounce 1s var(--gl-ease-bounce)}@keyframes gl-celebration-bg{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.gl-celebration-bg{background:linear-gradient(270deg,hsl(var(--primary)/.1),hsl(var(--gl-correct)/.1),hsl(var(--gl-perfect)/.1),hsl(var(--primary)/.1));background-size:400% 400%;animation:gl-celebration-bg 3s ease infinite}@keyframes gl-checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.gl-checkmark{stroke-dasharray:100;stroke-dashoffset:100;animation:gl-checkmark .5s var(--gl-ease-smooth) forwards;animation-delay:.2s}@keyframes gl-timer-warning{0%,to{color:hsl(var(--foreground))}50%{color:hsl(var(--gl-incorrect))}}.gl-timer-warning{animation:gl-timer-warning .5s ease-in-out infinite}@keyframes gl-timer-critical{0%,to{transform:scale(1);color:hsl(var(--gl-incorrect))}50%{transform:scale(1.1);color:hsl(0,100%,50%)}}.gl-timer-critical{animation:gl-timer-critical .3s ease-in-out infinite}@keyframes gl-loading-dots{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.gl-loading-dots span{display:inline-block;width:8px;height:8px;margin:0 4px;border-radius:50%;background-color:hsl(var(--primary));animation:gl-loading-dots 1.4s ease-in-out infinite}.gl-loading-dots span:first-child{animation-delay:0s}.gl-loading-dots span:nth-child(2){animation-delay:.2s}.gl-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes gl-audio-bar{0%,to{height:20%}50%{height:100%}}.gl-audio-visualizer{display:flex;align-items:center;gap:3px;height:30px}.gl-audio-bar{width:4px;background-color:hsl(var(--primary));border-radius:2px;animation:gl-audio-bar .8s ease-in-out infinite}.gl-audio-bar:first-child{animation-delay:0s}.gl-audio-bar:nth-child(2){animation-delay:.1s}.gl-audio-bar:nth-child(3){animation-delay:.2s}.gl-audio-bar:nth-child(4){animation-delay:.3s}.gl-audio-bar:nth-child(5){animation-delay:.2s}.gl-audio-bar:nth-child(6){animation-delay:.1s}.gl-audio-bar:nth-child(7){animation-delay:0s}@media (prefers-reduced-motion:reduce){.gl-audio-bar,.gl-btn-primary,.gl-card,.gl-card-reveal,.gl-celebration-bg,.gl-confetti,.gl-correct,.gl-incorrect,.gl-loading-dots span,.gl-milestone,.gl-perfect,.gl-phase-enter,.gl-phase-exit,.gl-progress-bar,.gl-recording,.gl-scale-enter,.gl-star-earn,.gl-star-shimmer,.gl-streak-pop,.gl-timer-critical,.gl-timer-warning,.gl-trophy-bounce,.gl-word-highlight,.gl-xp-float{animation:none!important;transition:none!important}.gl-card.flipped{transform:none}}