@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-6px)}20%,40%,60%,80%{transform:translateX(6px)}}.animate-shake{animation:shake .6s cubic-bezier(.36,.07,.19,.97) both}@keyframes xp-float{0%{opacity:0;transform:translateY(0) scale(.5)}20%{opacity:1;transform:translateY(-10px) scale(1.1)}80%{opacity:1;transform:translateY(-40px) scale(1)}to{opacity:0;transform:translateY(-60px) scale(.9)}}.animate-xp-float{animation:xp-float 2s ease-out forwards}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 hsl(var(--primary)/.4)}50%{box-shadow:0 0 0 6px hsl(var(--primary)/0)}}.animate-pulse-glow{animation:pulse-glow 1.5s ease-in-out infinite}@keyframes mastered-ring{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.animate-mastered{animation:mastered-ring .4s ease-in-out}@keyframes lms-slide-in-right{0%{transform:translateX(72px) scale(.98);opacity:0}to{transform:translateX(0) scale(1);opacity:1}}@keyframes lms-slide-in-left{0%{transform:translateX(-72px) scale(.98);opacity:0}to{transform:translateX(0) scale(1);opacity:1}}.lms-slide-anim[data-dir="1"]{animation:lms-slide-in-right .22s ease}.lms-slide-anim[data-dir="-1"]{animation:lms-slide-in-left .22s ease}@media (prefers-reduced-motion:reduce){.animate-mastered,.animate-pulse-glow,.animate-shake,.animate-xp-float,.lms-slide-anim{animation:none!important}}.accessibility_skipLink__6dvsE{position:absolute;top:-100%;left:50%;transform:translateX(-50%);z-index:9999;padding:.75rem 1.5rem;border-radius:0 0 .5rem .5rem;font-size:.875rem;font-weight:600;text-decoration:none;white-space:nowrap;background:hsl(var(--color-primary));color:hsl(var(--color-primary-foreground));box-shadow:0 4px 12px hsl(var(--color-primary)/.3);transition:top .15s ease}.accessibility_skipLink__6dvsE:focus{top:0;outline:2px solid hsl(var(--color-ring));outline-offset:2px}.lms-block-wrapper{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:hsl(var(--color-border)) transparent}.lms-player-card{width:100%;max-width:min(100%,64rem);contain:inline-size}.lms-block-content{width:100%;min-width:0;overflow-wrap:anywhere;word-break:normal;line-height:1.6}.lms-block-content canvas,.lms-block-content iframe,.lms-block-content img,.lms-block-content svg,.lms-block-content video,.lms-block-content>*{max-width:100%}.lms-block-content iframe{width:100%;border:0}.lms-block-content table{display:block;width:-moz-max-content;width:max-content;white-space:nowrap}.lms-block-content pre,.lms-block-content table{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.lms-block-content code{overflow-wrap:anywhere}.lms-block-content [role=button],.lms-block-content button,.lms-block-content input,.lms-block-content select,.lms-block-content textarea{touch-action:manipulation}.lms-block-content [role=button],.lms-block-content button{min-height:2.75rem;min-width:2.75rem}.lms-block-content a[href]{display:inline-block;min-height:2.75rem;line-height:2.75rem}.lms-block-content :focus-visible{outline:2px solid hsl(var(--color-ring));outline-offset:2px}.lms-block-wrapper::-webkit-scrollbar{height:4px}.lms-block-wrapper::-webkit-scrollbar-track{background:transparent}.lms-block-wrapper::-webkit-scrollbar-thumb{background:hsl(var(--color-border));border-radius:4px}@media (max-width:640px){.lms-player-card{border-left:0;border-right:0;border-radius:0;margin-left:-.25rem;margin-right:-.25rem}.lms-block-content{font-size:.95rem}.lms-block-content .overflow-x-auto,.lms-block-content pre,.lms-block-content table{margin-left:-.25rem;margin-right:-.25rem;padding-left:.25rem;padding-right:.25rem}.lms-block-content input[type=number],.lms-block-content input[type=text],.lms-block-content textarea{min-height:2.75rem;font-size:1rem}.block-chem-equation,.block-chem-equation>*{min-width:320px;overflow-x:auto;-webkit-overflow-scrolling:touch}.block-geogebra{min-height:300px}.block-geogebra iframe,.block-geogebra>div{min-width:360px;overflow-x:auto}.block-concept-map{overflow-x:auto;-webkit-overflow-scrolling:touch}.block-concept-map>canvas,.block-concept-map>div,.block-concept-map>svg{min-width:480px}.block-periodic-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.block-periodic-table>div,.block-periodic-table>table{min-width:600px}.block-code code,.block-code pre{overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.8rem}.block-drag-drop .drag-drop-columns,.block-matching .matching-columns{flex-direction:column;gap:1rem}.block-tabs .tab-list{overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;scrollbar-width:none}.block-tabs .tab-list::-webkit-scrollbar{display:none}.block-hotspot{touch-action:pinch-zoom}.block-hotspot img{max-width:none;width:100%;height:auto}.block-data-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.block-phet iframe{min-width:360px;min-height:280px}.block-three-scene canvas,.block-webxr-lab canvas{min-width:320px;min-height:240px}.block-matching button,.block-ordering button,.block-quiz button,.block-true-false button{min-height:3rem;font-size:.875rem}.block-fill-blank input{min-width:5rem;min-height:2.5rem;font-size:1rem}}@media (max-width:375px){.block-geogebra iframe,.block-geogebra>div{min-width:320px}.block-concept-map>canvas,.block-concept-map>div,.block-concept-map>svg{min-width:360px}.lms-block-wrapper{padding-left:.5rem;padding-right:.5rem}}@media (max-width:640px){.lms-scroll-hint{position:relative}.lms-scroll-hint:after{content:"→";position:absolute;right:0;top:50%;transform:translateY(-50%);width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,transparent,hsl(var(--color-background)));color:hsl(var(--color-muted-foreground));font-size:.875rem;pointer-events:none;opacity:.6;animation:scroll-hint-pulse 2s ease-in-out infinite}@keyframes scroll-hint-pulse{0%,to{opacity:.4;transform:translateY(-50%) translateX(0)}50%{opacity:.8;transform:translateY(-50%) translateX(3px)}}@media (prefers-reduced-motion:reduce){.lms-table-scroll-hint:after{animation:none!important;opacity:.6}}}.lms-block-content .prose,.lms-block-content .prose blockquote,.lms-block-content .prose li,.lms-block-content .prose p,.lms-block-content .prose strong{color:hsl(var(--color-foreground))}.lms-block-content .prose a{color:hsl(var(--color-info))}