:root{--font-family-primary:"Hind Madurai",system-ui,-apple-system,sans-serif;--font-family-secondary:"Nunito",system-ui,-apple-system,sans-serif;--font-family-accent:"Lora",Georgia,serif;--text-hero:3rem;--text-3xl:2.25rem;--text-2xl:1.875rem;--text-xl:1.5rem;--text-lg:1.125rem;--text-base:1rem;--text-sm:0.875rem;--text-xs:0.75rem;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--spacing-0:0;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-white:#ffffff;--color-black:#000000;--color-chart-1:hsl(12,76%,61%);--color-chart-2:hsl(173,58%,39%);--color-chart-3:hsl(197,37%,24%);--color-chart-4:hsl(43,74%,66%);--color-chart-5:hsl(27,87%,67%);--color-topic-matrix-primary:hsl(173,58%,39%);--color-topic-matrix-secondary:hsl(43,74%,66%);--color-topic-matrix-accent:hsl(12,76%,61%);--color-word-bank-transitions:hsl(197,37%,24%);--color-word-bank-adjectives:hsl(173,58%,39%);--color-word-bank-verbs:hsl(27,87%,67%);--color-word-bank-nouns:hsl(43,74%,66%);--color-hamburger-top-bun:hsl(43,74%,66%);--color-hamburger-lettuce:hsl(120,45%,65%);--color-hamburger-tomato:hsl(12,76%,61%);--color-hamburger-patty:hsl(27,87%,67%);--color-hamburger-bottom-bun:hsl(43,74%,66%);--color-success:hsl(120,40%,70%);--color-warning:hsl(43,74%,66%);--color-error:hsl(350,40%,75%);--color-info:hsl(200,40%,70%);--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgb(0 0 0/0.05);--shadow-md:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--shadow-lg:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--shadow-xl:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:350ms cubic-bezier(0.4,0,0.2,1);--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--z-toast:1080}.card-base{background:var(--color-white);border:1px solid var(--color-gray-100);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.button-primary{background:var(--color-gray-900);color:var(--color-white);border:none;border-radius:var(--radius-lg);padding:var(--spacing-3) var(--spacing-6);font-weight:var(--font-medium);font-size:var(--text-base);transition:all var(--transition-fast);cursor:pointer}.button-primary:hover{background:var(--color-gray-800);transform:translateY(-1px)}.button-secondary{background:var(--color-white);color:var(--color-gray-700);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--spacing-3) var(--spacing-6);font-weight:var(--font-medium);font-size:var(--text-base);transition:all var(--transition-fast);cursor:pointer}.button-secondary:hover{background:var(--color-gray-50);border-color:var(--color-gray-300)}.input-base{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-base);transition:all var(--transition-fast)}.input-base:focus{outline:none;border-color:var(--color-chart-2);box-shadow:0 0 0 3px hsl(173,58%,39%,.1)}.text-hierarchy-1{font-size:var(--text-3xl);font-weight:var(--font-light);letter-spacing:-.025em}.text-hierarchy-1,.text-hierarchy-2{font-family:var(--font-family-primary);line-height:var(--leading-tight);color:var(--color-gray-900)}.text-hierarchy-2{font-size:var(--text-2xl);font-weight:var(--font-medium)}.text-hierarchy-3{font-size:var(--text-xl);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--color-gray-900)}.text-body,.text-hierarchy-3{font-family:var(--font-family-primary)}.text-body{font-size:var(--text-lg);font-weight:var(--font-light);line-height:var(--leading-relaxed);color:var(--color-gray-600)}.text-label{font-family:var(--font-family-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-gray-500)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}@keyframes draw-checkmark{0%{stroke-dasharray:0 24}to{stroke-dasharray:24 0}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 currentColor;opacity:1}50%{box-shadow:0 0 0 10px transparent;opacity:.7}}.animate-fade-in{animation:fade-in var(--transition-normal) ease-out}.animate-slide-up{animation:slide-up var(--transition-normal) ease-out}.animate-scale-in{animation:scale-in var(--transition-normal) ease-out}.animate-confetti-fall{animation:confetti-fall linear}.animate-draw-checkmark{animation:draw-checkmark .5s ease-out .2s both;stroke-dasharray:24}.animate-pulse-blue{animation:pulse-glow 2s infinite;color:hsl(var(--color-chart-3))}.animate-pulse-green{animation:pulse-glow 2s infinite;color:hsl(var(--color-success))}.animate-pulse-red{animation:pulse-glow 2s infinite;color:hsl(var(--color-error))}.animate-pulse-yellow{animation:pulse-glow 2s infinite;color:hsl(var(--color-warning))}.topic-matrix-container{--primary-color:var(--color-topic-matrix-primary);--secondary-color:var(--color-topic-matrix-secondary);--accent-color:var(--color-topic-matrix-accent)}.word-bank-container{--transitions-color:var(--color-word-bank-transitions);--adjectives-color:var(--color-word-bank-adjectives);--verbs-color:var(--color-word-bank-verbs);--nouns-color:var(--color-word-bank-nouns)}.hamburger-paragraph-container{--top-bun-color:var(--color-hamburger-top-bun);--lettuce-color:var(--color-hamburger-lettuce);--tomato-color:var(--color-hamburger-tomato);--patty-color:var(--color-hamburger-patty);--bottom-bun-color:var(--color-hamburger-bottom-bun)}