.theme-light{--bg-primary: #fdfbf7;--bg-secondary: #f8f6f1;--bg-tertiary: #efece5;--bg-surface: #ffffff;--bg-surface-hover: #f9fafb;--bg-elevated: #ffffff;--text-primary: #111827;--text-secondary: #374151;--text-tertiary: #6b7280;--text-muted: #9ca3af;--text-inverse: #ffffff;--border-primary: #e5e0d5;--border-secondary: #e5e7eb;--border-subtle: #f3f4f6;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--overlay-bg: rgba(0, 0, 0, .5);--overlay-backdrop: blur(4px);--input-bg: #ffffff;--input-border: #d1d5db;--input-focus-ring: var(--color-accent);--scrollbar-track: transparent;--scrollbar-thumb: #d1d5db;--scrollbar-thumb-hover: #9ca3af;--sidebar-bg: #f8f6f1;--sidebar-border: #e5e0d5;--sidebar-item-active-bg: #ffffff;--sidebar-item-hover-bg: #efece5;--card-bg: #ffffff;--card-border: #e5e7eb;--card-hover-shadow: var(--shadow-lg);--dashboard-bg: linear-gradient(to bottom right, #eef2ff, #ffffff, #faf5ff);--dashboard-stat-bg: linear-gradient(to bottom right, #f0f9ff, #eef2ff);--completion-modal-bg: #ffffff;--completion-modal-perfect-bg: linear-gradient(to bottom right, #fefce8, #fef3c7, #fef9c3);--completion-modal-perfect-border: #facc15;--completion-modal-perfect-banner-bg: linear-gradient(to right, #fef9c3, #fde68a);--completion-modal-perfect-banner-border: #fde047;--completion-modal-perfect-text: #713f12;--completion-modal-xp-text: #ca8a04;--completion-modal-xp-label: #a16207;--tag-bar-bg: #f9fafb;--study-card-front-bg: #ffffff;--study-card-back-bg: linear-gradient(to bottom right, #eef2ff, #faf5ff);--study-card-footer-bg: rgba(255, 255, 255, .9);--study-card-back-footer-bg: rgba(238, 242, 255, .9);--study-card-back-footer-border: #c7d2fe;--option-default-border: #e5e7eb;--option-hover-bg: #f9fafb;--option-hover-border: #a5b4fc;--option-correct-bg: #f0fdf4;--option-correct-text: #14532d;--option-incorrect-bg: #fef2f2;--option-incorrect-text: #7f1d1d;--option-selected-bg: #eef2ff;--option-selected-text: #312e81;--challenge-complete-bg: #f0fdf4;--challenge-complete-border: #bbf7d0;--input-correct-bg: #f0fdf4;--input-correct-border: #22c55e;--input-incorrect-bg: #fef2f2;--input-incorrect-border: #ef4444;--input-default-border: #d1d5db;--explanation-bg: #eef2ff;--explanation-border: #c7d2fe;--explanation-text: #3730a3}.theme-night{--bg-primary: #0f1117;--bg-secondary: #1a1d27;--bg-tertiary: #252833;--bg-surface: #1e2130;--bg-surface-hover: #252833;--bg-elevated: #252833;--text-primary: #f3f4f6;--text-secondary: #d1d5db;--text-tertiary: #9ca3af;--text-muted: #6b7280;--text-inverse: #111827;--border-primary: #2d3140;--border-secondary: #374151;--border-subtle: #1f2937;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .4);--overlay-bg: rgba(0, 0, 0, .7);--overlay-backdrop: blur(8px);--input-bg: #1a1d27;--input-border: #374151;--input-focus-ring: var(--color-accent);--scrollbar-track: transparent;--scrollbar-thumb: #374151;--scrollbar-thumb-hover: #4b5563;--sidebar-bg: #1a1d27;--sidebar-border: #2d3140;--sidebar-item-active-bg: #252833;--sidebar-item-hover-bg: #252833;--card-bg: #1e2130;--card-border: #2d3140;--card-hover-shadow: var(--shadow-lg);--dashboard-bg: linear-gradient(to bottom right, #0f1117, #151822, #13111f);--dashboard-stat-bg: linear-gradient(to bottom right, #1a1d27, #1e2130);--completion-modal-bg: #1e2130;--completion-modal-perfect-bg: linear-gradient(to bottom right, #1e2130, #252833, #1e2130);--completion-modal-perfect-border: #854d0e;--completion-modal-perfect-banner-bg: linear-gradient( to right, rgba(161, 98, 7, .15), rgba(202, 138, 4, .15) );--completion-modal-perfect-banner-border: rgba(202, 138, 4, .3);--completion-modal-perfect-text: #fde68a;--completion-modal-xp-text: #fbbf24;--completion-modal-xp-label: #fcd34d;--tag-bar-bg: #252833;--study-card-front-bg: #1e2130;--study-card-back-bg: linear-gradient(to bottom right, #1a1d27, #252833);--study-card-footer-bg: rgba(30, 33, 48, .95);--study-card-back-footer-bg: rgba(37, 40, 51, .95);--study-card-back-footer-border: #374151;--option-default-border: #374151;--option-hover-bg: #252833;--option-hover-border: var(--color-accent, #6366f1);--option-correct-bg: rgba(34, 197, 94, .12);--option-correct-text: #86efac;--option-incorrect-bg: rgba(239, 68, 68, .12);--option-incorrect-text: #fca5a5;--option-selected-bg: var(--color-accent-subtle, rgba(124, 58, 237, .08));--option-selected-text: var(--color-accent-text, #a78bfa);--challenge-complete-bg: rgba(34, 197, 94, .1);--challenge-complete-border: rgba(34, 197, 94, .25);--input-correct-bg: rgba(34, 197, 94, .1);--input-correct-border: #22c55e;--input-incorrect-bg: rgba(239, 68, 68, .1);--input-incorrect-border: #ef4444;--input-default-border: #4b5563;--explanation-bg: rgba(99, 102, 241, .1);--explanation-border: rgba(99, 102, 241, .25);--explanation-text: #a5b4fc}.accent-violet{--color-accent: #7c3aed;--color-accent-hover: #6d28d9;--color-accent-light: #ede9fe;--color-accent-gradient: linear-gradient(to right, #7c3aed, #6366f1);--color-accent-text: #7c3aed;--color-accent-subtle: rgba(124, 58, 237, .1);--color-accent-ring: rgba(124, 58, 237, .5)}.theme-night .accent-violet,.theme-night.accent-violet{--color-accent-light: rgba(124, 58, 237, .15);--color-accent-subtle: rgba(124, 58, 237, .08);--color-accent-text: #a78bfa}.accent-gold{--color-accent: #d97706;--color-accent-hover: #b45309;--color-accent-light: #fef3c7;--color-accent-gradient: linear-gradient(to right, #d97706, #f59e0b);--color-accent-text: #d97706;--color-accent-subtle: rgba(217, 119, 6, .1);--color-accent-ring: rgba(217, 119, 6, .5)}.theme-night .accent-gold,.theme-night.accent-gold{--color-accent-light: rgba(217, 119, 6, .15);--color-accent-subtle: rgba(217, 119, 6, .08);--color-accent-text: #fbbf24}.accent-silver{--color-accent: #6b7280;--color-accent-hover: #4b5563;--color-accent-light: #f3f4f6;--color-accent-gradient: linear-gradient(to right, #6b7280, #9ca3af);--color-accent-text: #6b7280;--color-accent-subtle: rgba(107, 114, 128, .1);--color-accent-ring: rgba(107, 114, 128, .5)}.theme-night .accent-silver,.theme-night.accent-silver{--color-accent-light: rgba(107, 114, 128, .15);--color-accent-subtle: rgba(107, 114, 128, .08);--color-accent-text: #d1d5db}.accent-emerald{--color-accent: #059669;--color-accent-hover: #047857;--color-accent-light: #d1fae5;--color-accent-gradient: linear-gradient(to right, #059669, #10b981);--color-accent-text: #059669;--color-accent-subtle: rgba(5, 150, 105, .1);--color-accent-ring: rgba(5, 150, 105, .5)}.theme-night .accent-emerald,.theme-night.accent-emerald{--color-accent-light: rgba(5, 150, 105, .15);--color-accent-subtle: rgba(5, 150, 105, .08);--color-accent-text: #34d399}.accent-rose{--color-accent: #e11d48;--color-accent-hover: #be123c;--color-accent-light: #ffe4e6;--color-accent-gradient: linear-gradient(to right, #e11d48, #f43f5e);--color-accent-text: #e11d48;--color-accent-subtle: rgba(225, 29, 72, .1);--color-accent-ring: rgba(225, 29, 72, .5)}.theme-night .accent-rose,.theme-night.accent-rose{--color-accent-light: rgba(225, 29, 72, .15);--color-accent-subtle: rgba(225, 29, 72, .08);--color-accent-text: #fb7185}.bg-themed-primary{background-color:var(--bg-primary)}.bg-themed-secondary{background-color:var(--bg-secondary)}.bg-themed-surface{background-color:var(--bg-surface)}.bg-themed-elevated{background-color:var(--bg-elevated)}.text-themed-primary{color:var(--text-primary)}.text-themed-secondary{color:var(--text-secondary)}.text-themed-tertiary{color:var(--text-tertiary)}.text-themed-muted{color:var(--text-muted)}.border-themed{border-color:var(--border-primary)}.border-themed-secondary{border-color:var(--border-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-light{background-color:var(--color-accent-light)}.text-accent{color:var(--color-accent-text)}.border-accent{border-color:var(--color-accent)}.theme-transition,.theme-transition *,.theme-transition *:before,.theme-transition *:after{transition:background-color .3s ease,color .2s ease,border-color .3s ease,box-shadow .3s ease!important}@tailwind base;@tailwind components;@tailwind utilities;@layer utilities{.transform-style-3d{transform-style:preserve-3d}.backface-hidden{backface-visibility:hidden;-webkit-backface-visibility:hidden}.rotate-y-180{transform:rotateY(180deg)}.perspective-1000{perspective:1000px}}@layer utilities{.animate-scale-up{animation:scaleUp .3s ease-out}.animate-pop-in{animation:popIn .4s cubic-bezier(.68,-.55,.265,1.55)}.animate-level-up{animation:levelUp .8s ease-out}.animate-slide-up{animation:slideUp .4s ease-out}.animate-pulse-green{animation:pulseGreen 1.5s ease-in-out infinite}.active\:scale-98:active{transform:scale(.98)}}@keyframes scaleUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes levelUp{0%{transform:scale(.5) translateY(50px);opacity:0}50%{transform:scale(1.1) translateY(-10px)}to{transform:scale(1) translateY(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulseGreen{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes juggle{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-40px) rotate(15deg)}50%{transform:translateY(0) rotate(-15deg)}75%{transform:translateY(-40px) rotate(15deg)}to{transform:translateY(0) rotate(0)}}@layer utilities{.animate-juggle-1{animation:juggle 2s ease-in-out infinite}.animate-juggle-2{animation:juggle 2s ease-in-out infinite;animation-delay:.33s}.animate-juggle-3{animation:juggle 2s ease-in-out infinite;animation-delay:.66s}.animate-fade-in{animation:fadeIn .5s ease-in-out}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float-xp{0%{opacity:1;transform:translate(0) scale(1)}20%{opacity:1;transform:translate(10px,-20px) scale(1.2)}to{opacity:0;transform:translate(120px,-200px) scale(.5)}}.animate-float-xp{animation:float-xp 2.5s cubic-bezier(.4,0,.2,1) forwards}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.animate-pop-in{animation:pop-in .3s ease-out}@keyframes level-up{0%{opacity:0;transform:scale(.5) rotate(-10deg)}50%{transform:scale(1.1) rotate(5deg)}to{opacity:1;transform:scale(1) rotate(0)}}.animate-level-up{animation:level-up .8s cubic-bezier(.68,-.55,.265,1.55)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .3s ease-in}@keyframes scale-up{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-scale-up{animation:scale-up .3s ease-out}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slide-up .4s ease-out}@keyframes pulse-green{0%,to{box-shadow:0 0 #22c55eb3}50%{box-shadow:0 0 0 10px #22c55e00}}.animate-pulse-green{animation:pulse-green 1.5s ease-in-out infinite}.active\:scale-95:active{transform:scale(.95)}.active\:scale-98:active{transform:scale(.98)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-bounce{animation:bounce .6s ease-in-out infinite}.transform-style-3d{transform-style:preserve-3d}.backface-hidden{backface-visibility:hidden}.card-flip-container{perspective:1000px}.card-flip-inner{position:relative;width:100%;transition:transform .6s;transform-style:preserve-3d}.card-flip-inner.flipped{transform:rotateY(180deg)}.card-flip-front,.card-flip-back{backface-visibility:hidden;-webkit-backface-visibility:hidden}.card-flip-back{transform:rotateY(180deg)}@keyframes confetti-fall{0%{transform:translateY(-20vh) rotate(0);opacity:1}80%{opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}@keyframes confetti-shake{0%,to{margin-left:0}25%{margin-left:20px}75%{margin-left:-20px}}.confetti-particle{position:fixed;top:-10px;animation:confetti-fall var(--fall-duration, 3s) linear forwards,confetti-shake var(--shake-duration, 1.5s) ease-in-out infinite;pointer-events:none;z-index:9999}@keyframes shake-light{0%,to{transform:translate(0)}15%{transform:translate(-2px)}30%{transform:translate(2px,-1px)}45%{transform:translate(-1px,1px)}60%{transform:translate(1px,-1px)}75%{transform:translate(-1px)}}@keyframes shake-medium{0%,to{transform:translate(0)}10%{transform:translate(-4px)}20%{transform:translate(3px,-2px)}30%{transform:translate(-2px,3px)}40%{transform:translate(4px,-1px)}50%{transform:translate(-3px,2px)}60%{transform:translate(2px,-2px)}70%{transform:translate(-1px,1px)}80%{transform:translate(1px)}}@keyframes shake-heavy{0%,to{transform:translate(0)}8%{transform:translate(-6px)}16%{transform:translate(5px,-3px)}24%{transform:translate(-4px,5px)}32%{transform:translate(6px,-2px)}40%{transform:translate(-5px,4px)}48%{transform:translate(3px,-4px)}56%{transform:translate(-2px,3px)}64%{transform:translate(4px,-1px)}72%{transform:translate(-3px,2px)}80%{transform:translate(1px,-1px)}}.animate-shake-light{animation:shake-light .3s ease-in-out}.animate-shake-medium{animation:shake-medium .4s ease-in-out}.animate-shake-heavy{animation:shake-heavy .5s ease-in-out}@keyframes fire-glow{0%,to{text-shadow:0 0 4px rgba(255,160,0,.6),0 0 8px rgba(255,80,0,.3);filter:brightness(1)}50%{text-shadow:0 0 8px rgba(255,160,0,.9),0 0 16px rgba(255,80,0,.6),0 0 24px rgba(255,0,0,.3);filter:brightness(1.15)}}@keyframes fire-glow-intense{0%,to{text-shadow:0 0 6px rgba(255,100,0,.8),0 0 12px rgba(255,50,0,.5),0 0 20px rgba(255,0,0,.3);filter:brightness(1.1)}50%{text-shadow:0 0 10px rgba(255,100,0,1),0 0 20px rgba(255,50,0,.8),0 0 30px rgba(255,0,0,.5),0 0 40px rgba(200,0,0,.2);filter:brightness(1.25)}}.animate-fire-glow{animation:fire-glow 1.5s ease-in-out infinite}.animate-fire-glow-intense{animation:fire-glow-intense 1s ease-in-out infinite}@keyframes sparkle-burst{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--sparkle-x, 50px),var(--sparkle-y, -50px)) scale(0)}}.sparkle-particle{position:absolute;border-radius:50%;pointer-events:none;animation:sparkle-burst .6s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--sparkle-delay, 0ms)}@keyframes firework-rise{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-80px) scale(1.2)}to{opacity:0;transform:translateY(-120px) scale(.2)}}@keyframes firework-particle{0%{opacity:1;transform:translate(0) scale(1)}70%{opacity:.8}to{opacity:0;transform:translate(var(--fw-x, 40px),var(--fw-y, -40px)) scale(.3)}}.firework-particle{position:absolute;border-radius:50%;pointer-events:none;animation:firework-particle .8s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--fw-delay, 0ms)}@keyframes count-up-pop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}.animate-count-up{animation:count-up-pop .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes pulse-ring{0%{transform:scaleX(.8) scaleY(1.2);opacity:.4}to{transform:scaleX(1.8) scaleY(2.6);opacity:0}}.streak-pulse-ring{position:absolute;top:-6px;right:-3px;bottom:-6px;left:-3px;border-radius:50%;border:2px solid currentColor;filter:blur(3px);animation:pulse-ring 1.2s ease-out infinite;pointer-events:none}@keyframes correct-flash{0%{box-shadow:0 0 #22c55e99}50%{box-shadow:0 0 0 8px #22c55e33}to{box-shadow:0 0 #22c55e00}}@keyframes incorrect-flash{0%{box-shadow:0 0 #ef444499}50%{box-shadow:0 0 0 8px #ef444433}to{box-shadow:0 0 #ef444400}}.animate-correct-flash{animation:correct-flash .5s ease-out}.animate-incorrect-flash{animation:incorrect-flash .5s ease-out}
