*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #F8F7F4;--color-surface: #FFFFFF;--color-border: #E5E0D8;--color-text: #1A1A1A;--color-text-muted: #6B6560;--color-text-light: #9B968F;--color-aman: #1E40AF;--color-aman-light: #DBEAFE;--color-aman-accent: #3B82F6;--color-ayesha: #BE185D;--color-ayesha-light: #FCE7F3;--color-ayesha-accent: #EC4899;--color-saad: #065F46;--color-saad-light: #D1FAE5;--color-saad-accent: #10B981;--color-sonia: #7C3AED;--color-sonia-light: #EDE9FE;--color-sonia-accent: #8B5CF6;--color-family: #DC2626;--color-family-light: #FEE2E2;--color-family-accent: #EF4444;--color-swiss-red: #FF0000;--color-gold: #F59E0B;--color-success: #10B981;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;font-family:Inter,-apple-system,sans-serif;font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-bg)}html,body,#root{height:100%;min-height:100vh}body{overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}h1,h2,h3,h4{line-height:1.3;font-weight:700}.font-display{font-family:Playfair Display,Georgia,serif}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--radius-full);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-text);color:#fff}.btn-primary:hover{opacity:.88}.btn-ghost{background:transparent;color:var(--color-text);border:1.5px solid var(--color-border)}.btn-ghost:hover{background:var(--color-bg)}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1.5px solid var(--color-border);overflow:hidden}.card-hover{transition:all .2s ease;cursor:pointer}.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 24px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes popIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade{animation:fadeIn .35s ease forwards}.animate-slide{animation:slideIn .3s ease forwards}.animate-pop{animation:popIn .25s ease forwards}.german-word{border-bottom:2px dashed;cursor:help;position:relative;font-weight:600}.dialogue-bubble{position:relative;padding:14px 18px;border-radius:var(--radius-md);margin-bottom:12px}.flashcard-container{perspective:1000px}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}.flashcard-container.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.flashcard-back{transform:rotateY(180deg)}.progress-bar{height:8px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}@keyframes xpFlash{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-30px) scale(1.2);opacity:0}}.xp-flash{animation:xpFlash .8s ease forwards;pointer-events:none}.swiss-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;background:red;color:#fff;border-radius:var(--radius-full);font-size:11px;font-weight:700}@media (max-width: 768px){:root{font-size:15px}.container{padding:0 16px}}
