@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&family=Fredoka+One&display=swap";
:root{--color-primary:#ff6b35;--color-primary-light:#ff8c5a;--color-primary-dark:#e85520;--color-accent:gold;--color-accent-light:#ffe740;--color-bg:#fffbf5;--color-bg-card:#fff;--color-bg-alt:#f7f2e8;--color-skill-listen:#ff6b6b;--color-skill-read:#4ecdc4;--color-skill-math:#45b7d1;--color-skill-logic:#96ceb4;--color-skill-world:#ffeaa7;--color-skill-life:plum;--color-skill-english:#f0a500;--color-success:#51cf66;--color-warning:#ffa94d;--color-error:#ff6b6b;--color-info:#74c0fc;--color-text-primary:#2d3436;--color-text-secondary:#636e72;--color-text-muted:#b2bec3;--color-text-on-primary:#fff;--color-star:gold;--color-xp:#a29bfe;--color-streak:#ff7675;--border-radius-sm:8px;--border-radius-md:16px;--border-radius-lg:24px;--border-radius-xl:32px;--border-radius-full:9999px;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001f;--shadow-lg:0 8px 32px #00000029;--shadow-card:0 4px 0 #0000001f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--font-display:"Fredoka One", cursive;--font-body:"Nunito", sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:32px;--font-size-4xl:40px;--font-size-5xl:56px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-bounce:.3s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-primary);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}img,video{max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.heading-display{font-family:var(--font-display);line-height:1.1}.heading-1{font-size:var(--font-size-5xl);font-weight:800}.heading-2{font-size:var(--font-size-4xl);font-weight:800}.heading-3{font-size:var(--font-size-3xl);font-weight:700}.heading-4{font-size:var(--font-size-2xl);font-weight:700}.heading-5{font-size:var(--font-size-xl);font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--border-radius-full);font-family:var(--font-body);font-weight:700;font-size:var(--font-size-base);transition:all var(--transition-bounce);cursor:pointer;white-space:nowrap;border:3px solid #0000;outline:none;display:inline-flex}.btn:active{transform:translateY(2px)}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary-dark);box-shadow:0 4px 0 var(--color-primary-dark)}.btn-primary:hover{background:var(--color-primary-light);box-shadow:0 6px 0 var(--color-primary-dark);transform:translateY(-2px)}.btn-primary:active{box-shadow:0 2px 0 var(--color-primary-dark);transform:translateY(2px)}.btn-accent{background:var(--color-accent);color:var(--color-text-primary);border-color:#e6b800;box-shadow:0 4px #e6b800}.btn-accent:hover{background:var(--color-accent-light);transform:translateY(-2px);box-shadow:0 6px #e6b800}.btn-outline{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.btn-outline:hover{background:var(--color-primary);color:#fff}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{background:var(--color-bg-alt)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.btn-lg{padding:var(--space-4) var(--space-10);font-size:var(--font-size-lg)}.btn-xl{padding:var(--space-5) var(--space-12);font-size:var(--font-size-xl);border-width:4px}.card{background:var(--color-bg-card);border-radius:var(--border-radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);transition:transform var(--transition-base), box-shadow var(--transition-base)}.card-hover:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-game{background:var(--color-bg-card);border-radius:var(--border-radius-xl);border:3px solid var(--color-bg-alt);transition:all var(--transition-bounce);cursor:pointer;overflow:hidden;box-shadow:0 6px #00000014}.card-game:hover{border-color:var(--color-primary);transform:translateY(-4px);box-shadow:0 10px #00000014}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);font-weight:700;display:inline-flex}.badge-star{color:#b8860b;background:#ffd70026}.badge-xp{color:#5f4ee8;background:#a29bfe26}.badge-streak{color:#c0392b;background:#ff767526}.badge-premium{color:#fff;background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%)}.progress-bar{background:var(--color-bg-alt);border-radius:var(--border-radius-full);width:100%;height:12px;overflow:hidden}.progress-fill{border-radius:var(--border-radius-full);background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-accent) 100%);height:100%;transition:width var(--transition-slow)}.stars{gap:2px;display:flex}.star{transition:transform var(--transition-bounce);font-size:24px}.star-filled{color:var(--color-star)}.star-empty{color:var(--color-bg-alt);filter:brightness(.8)}.input{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--color-bg-alt);border-radius:var(--border-radius-md);font-family:var(--font-body);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-card);transition:border-color var(--transition-fast);outline:none}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ff6b3526}.input::placeholder{color:var(--color-text-muted)}.container{width:100%;max-width:1200px;padding:0 var(--space-6);margin:0 auto}.container-narrow{max-width:800px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.5)}60%{transform:scale(1.1)}80%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes shoot-star{0%{opacity:1;transform:translate(0)translateY(0)rotate(45deg)}to{opacity:0;transform:translate(200px)translateY(-200px)rotate(45deg)}}.animate-float{animation:3s ease-in-out infinite float}.animate-wiggle{animation:.5s ease-in-out wiggle}.animate-bounce-in{animation:.5s ease-out bounce-in}.animate-pulse-scale{animation:2s ease-in-out infinite pulse-scale}.skeleton{background:linear-gradient(90deg, var(--color-bg-alt) 25%, #ffffffb3 50%, var(--color-bg-alt) 75%);border-radius:var(--border-radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.level-mam{color:#e67e22;background:#ffe5cc;border:2px solid #f39c12}.level-choi{color:#27ae60;background:#d5f5e3;border:2px solid #2ecc71}.level-la{color:#2980b9;background:#d6eaf8;border:2px solid #3498db}@media (max-width:768px){.heading-1{font-size:var(--font-size-4xl)}.heading-2{font-size:var(--font-size-3xl)}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}.container{padding:0 var(--space-4)}}@media (max-width:480px){.heading-1{font-size:var(--font-size-3xl)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
