:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-glass: rgba(26, 26, 36, .8);--border-color: rgba(255, 255, 255, .08);--border-glow: rgba(99, 102, 241, .3);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .4);--accent-primary: #6366f1;--accent-secondary: #8b5cf6;--accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-glow: 0 0 40px rgba(99, 102, 241, .15);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--bg-glass: rgba(255, 255, 255, .9);--border-color: rgba(0, 0, 0, .08);--text-primary: #0f172a;--text-secondary: rgba(15, 23, 42, .7);--text-muted: rgba(15, 23, 42, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 20% 20%,rgba(99,102,241,.1) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(139,92,246,.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(168,85,247,.05) 0%,transparent 70%);pointer-events:none;z-index:0}.app-container{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-glass);position:sticky;top:0;z-index:100}.logo{display:flex;align-items:center;gap:var(--spacing-sm)}.logo-icon{width:32px;height:32px;color:var(--accent-primary)}.logo-text{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.logo-accent{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.icon-btn svg{width:20px;height:20px}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl)}.glass-effect{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),var(--shadow-glow)}.upload-section{width:100%;max-width:600px;animation:fadeInUp .6s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.upload-card{padding:var(--spacing-xl)}.drop-zone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.drop-zone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-gradient);opacity:0;transition:opacity var(--transition-normal)}.drop-zone:hover,.drop-zone.dragover{border-color:var(--accent-primary);background:#6366f10d}.drop-zone:hover:before,.drop-zone.dragover:before{opacity:.03}.drop-zone-content{position:relative;z-index:1}.upload-icon-wrapper{width:80px;height:80px;margin:0 auto var(--spacing-lg);display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-full);border:1px solid var(--border-color)}.upload-icon{width:40px;height:40px;color:var(--accent-primary)}.drop-zone h2{font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-sm)}.drop-hint{color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.browse-link{color:var(--accent-primary);font-weight:500;text-decoration:underline;cursor:pointer}.supported-formats{font-size:.875rem;color:var(--text-muted)}.file-preview{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.file-info{display:flex;align-items:center;gap:var(--spacing-md)}.file-icon{width:40px;height:40px;color:var(--accent-primary);flex-shrink:0}.file-details{flex:1;display:flex;flex-direction:column}.file-name{font-weight:500;word-break:break-all}.file-size{font-size:.875rem;color:var(--text-muted)}.remove-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.remove-btn:hover{background:var(--error);border-color:var(--error);color:#fff}.remove-btn svg{width:16px;height:16px}.options-panel{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.option-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.option-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.toggle-group{display:flex;gap:var(--spacing-sm)}.toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.toggle-btn svg{width:18px;height:18px}.toggle-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.toggle-btn.active{background:var(--accent-gradient);border-color:transparent;color:#fff}.generate-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-lg);background:var(--accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.generate-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:translate(-100%);transition:transform .6s ease}.generate-btn:hover:not(:disabled):before{transform:translate(100%)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.generate-btn .btn-icon{width:20px;height:20px}.processing-section{width:100%;max-width:500px;text-align:center}.processing-card{padding:var(--spacing-2xl)}.processing-animation{position:relative;width:100px;height:100px;margin:0 auto var(--spacing-xl)}.spinner{position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.pulse-ring{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border:2px solid var(--accent-primary);border-radius:50%;animation:pulse 2s ease-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(1);opacity:.5}to{transform:scale(1.3);opacity:0}}.processing-section h2{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.processing-status{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.progress-container{display:flex;align-items:center;gap:var(--spacing-md)}.progress-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:var(--accent-gradient);border-radius:var(--radius-full);transition:width var(--transition-normal)}.progress-text{font-size:.875rem;font-weight:600;color:var(--accent-primary);min-width:45px}.page-counter{margin-top:var(--spacing-md);font-size:.875rem;color:var(--text-muted)}.results-section{width:100%;max-width:1200px;animation:fadeInUp .6s ease}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.results-title{display:flex;align-items:center;gap:var(--spacing-md)}.results-title svg{width:32px;height:32px;color:var(--success)}.results-title h2{font-size:1.5rem}.results-actions{display:flex;gap:var(--spacing-sm)}.action-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.action-btn svg{width:18px;height:18px}.action-btn.primary{background:var(--accent-gradient);border:none;color:#fff}.action-btn.primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.action-btn.secondary{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.action-btn.secondary:hover{border-color:var(--accent-primary);color:var(--text-primary)}.preview-panel{padding:0;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.preview-title{font-weight:500}.preview-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.zoom-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.zoom-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}#zoomLevel{font-size:.875rem;color:var(--text-muted);min-width:50px;text-align:center}.pdf-viewer{min-height:600px;max-height:80vh;overflow-y:auto;padding:var(--spacing-lg);background:var(--bg-secondary)}.study-guide-content{max-width:800px;margin:0 auto;line-height:1.8}.study-guide-content h1{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--accent-primary)}.study-guide-content h2{font-size:1.5rem;font-weight:600;margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md);color:var(--accent-primary)}.study-guide-content h3{font-size:1.25rem;font-weight:600;margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.study-guide-content p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}.study-guide-content ul,.study-guide-content ol{margin-bottom:var(--spacing-md);padding-left:var(--spacing-lg)}.study-guide-content li{margin-bottom:var(--spacing-sm);color:var(--text-secondary)}.study-guide-content code{background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-family:JetBrains Mono,Fira Code,monospace;font-size:.9em}.study-guide-content pre{background:var(--bg-tertiary);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto;margin-bottom:var(--spacing-md);border:1px solid var(--border-color)}.study-guide-content pre code{background:transparent;padding:0}.study-guide-content blockquote{border-left:4px solid var(--accent-primary);padding-left:var(--spacing-md);margin:var(--spacing-md) 0;color:var(--text-muted);font-style:italic}.study-guide-content table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md)}.study-guide-content th,.study-guide-content td{border:1px solid var(--border-color);padding:var(--spacing-sm) var(--spacing-md);text-align:left}.study-guide-content th{background:var(--bg-tertiary);font-weight:600}.pdf-navigation{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.nav-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.nav-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.nav-btn svg{width:20px;height:20px}#pageInfo{font-size:.875rem;color:var(--text-muted);min-width:100px;text-align:center}.toast-container{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:1000}.toast{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast.success{border-left:4px solid var(--success)}.toast.error{border-left:4px solid var(--error)}.toast.warning{border-left:4px solid var(--warning)}.hidden{display:none!important}@media (max-width: 768px){.header,.main-content{padding:var(--spacing-md)}.upload-card,.processing-card{padding:var(--spacing-lg)}.drop-zone{padding:var(--spacing-xl)}.results-header{flex-direction:column;align-items:flex-start}.results-actions{width:100%}.action-btn{flex:1;justify-content:center}.pdf-viewer{min-height:400px}.toggle-group{flex-direction:column}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}button:focus-visible,input:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.page-section{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.page-section .page-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.page-section .page-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent-gradient);color:#fff;font-weight:700;border-radius:var(--radius-full)}.page-section .page-title{font-size:1.25rem;font-weight:600}.visual-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:#6366f11a;border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:var(--accent-primary);margin-right:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.visual-badge svg{width:14px;height:14px}.key-takeaways{background:linear-gradient(135deg,#22c55e1a,#22c55e0d);border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-md);padding:var(--spacing-md);margin-top:var(--spacing-md)}.key-takeaways h4{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--success);font-size:1rem;margin-bottom:var(--spacing-sm)}.key-takeaways ul{margin:0}.key-takeaways li{color:var(--text-secondary)}.code-block,.study-guide-content pre{background:#1e1e2e;border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-lg);margin:var(--spacing-md) 0;overflow:hidden;position:relative}.code-block:before,.study-guide-content pre[data-language]:before{content:attr(data-language);position:absolute;top:0;right:0;padding:4px 12px;background:var(--accent-primary);color:#fff;font-size:.7rem;font-weight:600;text-transform:uppercase;border-radius:0 var(--radius-lg) 0 var(--radius-sm)}.code-block-enhanced,.study-guide-content pre{padding:var(--spacing-lg);overflow-x:auto}.study-guide-content pre code,.code-block code{display:block;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.7;color:#d4d4d4;background:transparent;padding:0}.line-number{display:inline-block;width:2.5em;color:#5c6370;text-align:right;padding-right:1em;margin-right:.5em;border-right:1px solid #3e4451;-webkit-user-select:none;user-select:none}.code-keyword{color:#c678dd;font-weight:500}.code-string{color:#98c379}.code-comment{color:#5c6370;font-style:italic}.code-number{color:#d19a66}.code-function{color:#61afef}.section-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-md)}.section-icon{font-size:1.2em}.code-header{color:#ef4444}.visual-header{color:#f59e0b}.terms-header{color:#8b5cf6}.study-guide-content p code,.study-guide-content li code{background:#6366f126;color:var(--accent-primary);padding:2px 8px;border-radius:4px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85em;border:1px solid rgba(99,102,241,.2)}.study-guide-content strong{color:var(--text-primary);font-weight:600}@media (max-width: 768px){:root{font-size:15px}.header{padding:var(--spacing-sm) var(--spacing-md)}.logo-text{font-size:1.25rem}.main-content,.upload-card,.processing-card{padding:var(--spacing-md)}.drop-zone{padding:var(--spacing-lg)}.drop-zone h2{font-size:1.25rem}.upload-icon-wrapper{width:60px;height:60px}.upload-icon{width:30px;height:30px}.results-header{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.results-title h2{font-size:1.25rem}.results-actions{width:100%;flex-direction:column}.action-btn{width:100%;justify-content:center;padding:var(--spacing-md)}.preview-header{flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm)}.preview-controls{width:100%;justify-content:space-between}.pdf-viewer{min-height:50vh;max-height:none;padding:var(--spacing-md)}.study-guide-content{line-height:1.7}.study-guide-content h1{font-size:1.5rem}.study-guide-content h2{font-size:1.25rem}.study-guide-content h3{font-size:1.1rem}.study-guide-content pre{padding:var(--spacing-sm);font-size:.8rem}.line-number{width:2em;padding-right:.5em;font-size:.75rem}.toggle-group{flex-direction:column}.toggle-btn{padding:var(--spacing-sm)}.page-section{padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.page-section .page-number{width:30px;height:30px;font-size:.875rem}.page-section .page-title{font-size:1.1rem}.key-takeaways{padding:var(--spacing-sm)}.pdf-navigation{padding:var(--spacing-sm);gap:var(--spacing-sm)}.nav-btn{width:36px;height:36px}.toast-container{left:var(--spacing-sm);right:var(--spacing-sm);bottom:var(--spacing-sm)}.toast{width:100%}}@media (max-width: 480px){:root{font-size:14px}.header{padding:var(--spacing-xs) var(--spacing-sm)}.logo-icon{width:24px;height:24px}.logo-text{font-size:1.1rem}.main-content{padding:var(--spacing-sm)}.upload-card,.processing-card{padding:var(--spacing-sm);border-radius:var(--radius-md)}.drop-zone{padding:var(--spacing-md)}.drop-zone h2{font-size:1.1rem}.drop-hint{font-size:.875rem}.supported-formats{font-size:.75rem}.upload-icon-wrapper{width:50px;height:50px;margin-bottom:var(--spacing-md)}.upload-icon{width:24px;height:24px}.file-preview{padding:var(--spacing-sm)}.file-icon{width:32px;height:32px}.file-name{font-size:.875rem}.generate-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem}.processing-animation{width:70px;height:70px}.processing-section h2{font-size:1.1rem}.results-title svg{width:24px;height:24px}.results-title h2{font-size:1.1rem}.action-btn{font-size:.8rem;padding:var(--spacing-sm)}.preview-title{font-size:.875rem}.pdf-viewer{min-height:40vh;padding:var(--spacing-sm)}.study-guide-content{line-height:1.6}.study-guide-content h1{font-size:1.25rem}.study-guide-content h2{font-size:1.1rem}.study-guide-content h3{font-size:1rem}.study-guide-content p,.study-guide-content li{font-size:.9rem}.study-guide-content pre{padding:var(--spacing-xs);margin:var(--spacing-sm) 0;border-radius:var(--radius-sm)}.study-guide-content pre code{font-size:.75rem;line-height:1.5}.line-number{width:1.5em;padding-right:.3em;font-size:.7rem}.page-section{padding:var(--spacing-sm);border-radius:var(--radius-md)}.page-section .page-header{gap:var(--spacing-sm);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.page-section .page-number{width:26px;height:26px;font-size:.75rem}.page-section .page-title{font-size:1rem}.key-takeaways h4{font-size:.875rem}.visual-badge{font-size:.7rem;padding:2px 6px}#pageInfo{font-size:.75rem;min-width:80px}.zoom-btn{width:24px;height:24px;font-size:.75rem}#zoomLevel{font-size:.75rem;min-width:40px}}@media (max-height: 500px) and (orientation: landscape){.main-content{padding:var(--spacing-sm)}.pdf-viewer{min-height:60vh;max-height:none}.drop-zone{padding:var(--spacing-md)}.upload-icon-wrapper{width:50px;height:50px;margin-bottom:var(--spacing-sm)}}@media print{.header,.preview-header,.pdf-navigation,.results-header,.toast-container{display:none!important}.pdf-viewer{max-height:none;min-height:auto}.page-section{page-break-inside:avoid;break-inside:avoid}.study-guide-content pre{background:#f5f5f5!important;color:#333!important}}@media (hover: none) and (pointer: coarse){.icon-btn,.toggle-btn,.action-btn,.nav-btn,.zoom-btn{min-height:44px;min-width:44px}.drop-zone{padding:var(--spacing-xl)}.browse-link{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background:#6366f11a;border-radius:var(--radius-sm)}}@media (prefers-contrast: high){:root{--border-color: rgba(255, 255, 255, .3)}.code-block,.study-guide-content pre{border-width:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.about-section{margin-top:var(--spacing-lg);padding:0;overflow:hidden}.about-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:transparent;border:none;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.about-toggle:hover{color:var(--text-primary);background:#6366f10d}.about-toggle-text{display:flex;align-items:center;gap:var(--spacing-sm)}.toggle-arrow{transition:transform var(--transition-normal)}.about-toggle.active .toggle-arrow{transform:rotate(180deg)}.about-content{max-height:0;overflow:hidden;transition:max-height var(--transition-slow)}.about-content.expanded{max-height:2000px}.about-block{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-color)}.about-block h3{font-size:1rem;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.about-block p{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-sm);line-height:1.6}.about-block strong{color:var(--accent-primary)}.mode-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-sm)}.mode-card{padding:var(--spacing-md);border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color)}.mode-card.simplified{border-color:#22c55e4d}.mode-card.detailed{border-color:#6366f14d}.mode-card h4{font-size:.9rem;font-weight:600;margin-bottom:var(--spacing-sm)}.mode-card ul{list-style:none;padding:0;margin:0 0 var(--spacing-sm) 0}.mode-card li{font-size:.8rem;color:var(--text-secondary);padding:3px 0 3px var(--spacing-md);position:relative}.mode-card li:before{content:"•";position:absolute;left:0;color:var(--accent-primary)}.mode-best{font-size:.75rem;color:var(--text-muted);font-style:italic;padding-top:var(--spacing-xs);border-top:1px solid var(--border-color);margin:0}.tech-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.tech-tag{padding:4px 10px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;color:var(--accent-primary)}.about-block.limitations{background:#f59e0b0d;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.about-block.limitations h3{color:var(--warning)}.about-block.limitations ul{list-style:none;padding:0;margin:0}.about-block.limitations li{font-size:.8rem;color:var(--text-secondary);padding:var(--spacing-xs) 0 var(--spacing-xs) var(--spacing-lg);position:relative}.about-block.limitations li:before{content:"⚠";position:absolute;left:0;font-size:.7rem}.about-block.limitations strong{color:var(--warning)}@media (max-width: 480px){.about-toggle{padding:var(--spacing-sm) var(--spacing-md);font-size:.8rem}.about-block{padding:var(--spacing-sm) var(--spacing-md)}.mode-cards{grid-template-columns:1fr}.tech-tag{font-size:.7rem;padding:3px 8px}}.api-key-block{background:linear-gradient(135deg,#6366f10d,#6366f105)}.api-explanation{margin-bottom:var(--spacing-md)!important}.api-key-input-wrapper{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.api-key-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:monospace;font-size:.875rem}.api-key-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f11a}.api-key-input::placeholder{color:var(--text-muted)}.toggle-visibility-btn{padding:var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.toggle-visibility-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.api-key-actions{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.api-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.api-btn.save-btn{background:var(--accent-gradient);border:none;color:#fff}.api-btn.save-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.api-btn.clear-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.api-btn.clear-btn:hover{border-color:var(--error);color:var(--error)}.api-key-status{font-size:.8rem;margin:0;padding:var(--spacing-xs) 0}.api-key-status.success{color:var(--success)}.api-key-status.error{color:var(--error)}.api-instructions{margin-top:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.api-instructions summary{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);cursor:pointer;font-size:.85rem;font-weight:500;color:var(--accent-primary)}.api-instructions summary:hover{background:#6366f10d}.instruction-steps{padding:var(--spacing-md) var(--spacing-lg);margin:0;font-size:.8rem;color:var(--text-secondary)}.instruction-steps li{margin-bottom:var(--spacing-xs);padding-left:var(--spacing-xs)}.instruction-steps a{color:var(--accent-primary);text-decoration:underline}.security-note{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);margin:var(--spacing-sm) var(--spacing-md) var(--spacing-md);background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-sm);font-size:.75rem;color:var(--success)}.security-note svg{flex-shrink:0;margin-top:2px}.help-block{background:linear-gradient(135deg,#8b5cf60d,#8b5cf605)}.help-block a{color:var(--accent-secondary);text-decoration:underline}.help-block a:hover{color:var(--accent-primary)}.about-block h3{display:flex;align-items:center;gap:var(--spacing-sm)}.about-block h3 svg{flex-shrink:0;color:var(--accent-primary)}.mode-card h4{display:flex;align-items:center;gap:var(--spacing-xs)}.mode-card h4 svg{color:var(--accent-primary)}@media (max-width: 480px){.api-key-input-wrapper{flex-direction:column}.toggle-visibility-btn{align-self:flex-end}.api-key-actions{flex-direction:column}.api-btn{justify-content:center}}.api-key-warning{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-xl);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg);background:linear-gradient(135deg,#ef44441f,#ef44440d);border:2px solid rgba(239,68,68,.4);border-radius:var(--radius-lg);animation:pulse-warning 2s ease-in-out infinite}.api-key-warning svg{flex-shrink:0;color:var(--error);width:28px;height:28px}.api-key-warning span{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.api-key-warning strong{display:block;color:var(--error);font-size:1rem;margin-bottom:var(--spacing-xs)}.api-key-warning.hidden{display:none}@keyframes pulse-warning{0%,to{border-color:#ef444466;box-shadow:0 0 #ef444400}50%{border-color:#ef4444b3;box-shadow:0 0 15px #ef444426}}.generate-btn:disabled{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-muted);cursor:not-allowed}.generate-btn:disabled:before{display:none}.games-section{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-xl);animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.games-header{text-align:center;margin-bottom:var(--spacing-lg)}.games-header h3{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-size:1.1rem;color:var(--accent-primary);margin-bottom:var(--spacing-xs)}.games-header p{color:var(--text-muted);font-size:.875rem}.game-selector{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);justify-content:center;flex-wrap:wrap}.game-tab{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.game-tab:hover{border-color:var(--accent-primary);color:var(--text-primary)}.game-tab.active{background:var(--accent-gradient);border-color:transparent;color:#fff}.game-container{min-height:300px;display:flex;flex-direction:column;align-items:center}.game-btn{padding:var(--spacing-xs) var(--spacing-md);background:var(--accent-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.game-btn:hover{background:var(--accent-secondary);transform:translateY(-1px)}.game-hint{margin-top:var(--spacing-md);font-size:.75rem;color:var(--text-muted);text-align:center}.stat{font-size:.8rem;color:var(--text-secondary)}.stat strong{color:var(--accent-primary)}.memory-game{width:100%;max-width:320px}.memory-stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md)}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-xs)}.memory-card{aspect-ratio:1;perspective:1000px;cursor:pointer}.card-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .4s;transform-style:preserve-3d}.memory-card.flipped .card-inner,.memory-card.matched .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);backface-visibility:hidden;font-size:1.5rem}.card-front{background:var(--accent-gradient);color:#fff;font-weight:700}.card-back{background:var(--bg-secondary);border:1px solid var(--border-color);transform:rotateY(180deg)}.memory-card.matched .card-back{background:#22c55e33;border-color:var(--success)}.snake-game{display:flex;flex-direction:column;align-items:center}.snake-stats{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:300px;margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md)}#snakeCanvas{border:2px solid var(--accent-primary);border-radius:var(--radius-md);touch-action:none}.snake-controls{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-md)}.control-row{display:flex;gap:var(--spacing-xs)}.control-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:1.25rem;cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.control-btn:hover,.control-btn:active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.typing-game{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px}.typing-stats{display:flex;justify-content:space-around;width:100%;margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md)}.typing-word{font-size:2rem;font-weight:700;color:var(--text-primary);padding:var(--spacing-lg);text-align:center;transition:all var(--transition-fast)}.typing-word.correct{color:var(--success);animation:pulse .3s ease}.typing-word.wrong{color:var(--error)}.typing-word.game-over{font-size:1.2rem;color:var(--accent-primary)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.typing-input{width:100%;padding:var(--spacing-md);background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:1.2rem;text-align:center;margin-bottom:var(--spacing-md)}.typing-input:focus{outline:none;border-color:var(--accent-primary)}.typing-input:disabled{opacity:.5}.processing-complete-toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-100%);display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#22c55ef2,#16a34af2);border-radius:var(--radius-lg);color:#fff;font-size:.9rem;box-shadow:var(--shadow-lg);z-index:9999;transition:transform .3s ease}.processing-complete-toast.show{transform:translate(-50%) translateY(0)}@media (max-width: 480px){.games-section{padding:var(--spacing-md)}.game-selector{gap:var(--spacing-xs)}.game-tab{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem}.memory-grid{gap:4px}.card-front,.card-back{font-size:1.2rem}.typing-word{font-size:1.5rem;padding:var(--spacing-md)}.typing-input{font-size:1rem}}
