@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-dark: #0a0a0f;--bg-deep: #050508;--bg-card: rgba(255, 255, 255, .03);--bg-card-hover: rgba(255, 255, 255, .07);--glass-surface: rgba(20, 20, 30, .6);--glass-border: rgba(255, 255, 255, .08);--glass-highlight: rgba(255, 255, 255, .15);--blur-amount: 16px;--primary-glow: #7b2cbf;--secondary-glow: #3a86ff;--accent-cyan: #00f2ea;--accent-pink: #ff0055;--text-primary: #ffffff;--text-secondary: #a0a0b0;--text-muted: #606070;--font-main: "Outfit", sans-serif;--font-code: "JetBrains Mono", monospace;--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .4s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-deep);color:var(--text-primary);line-height:1.6;overflow-x:hidden;min-height:100vh;background:radial-gradient(circle at top left,#1a0b2e 0%,transparent 40%),radial-gradient(circle at bottom right,#0b1a2e 0%,transparent 40%),var(--bg-deep)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}a{text-decoration:none;color:inherit}button{font-family:var(--font-main);border:none;outline:none;cursor:pointer}.sidebar{position:fixed;top:0;left:0;width:260px;height:100vh;background:linear-gradient(180deg,#0f172a,#020617);color:#cbd5e1;display:flex;flex-direction:column;padding:20px;box-shadow:4px 0 10px #0000004d;z-index:1000;transition:transform .3s ease-in-out}.sidebar-header{margin-bottom:40px;padding-left:10px}.sidebar-header h2{font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:.5px}.sidebar-nav ul{list-style:none;padding:0;margin:0}.nav-item{display:flex;align-items:center;padding:16px;border-radius:10px;margin:6px 0;color:#cbd5e1;text-decoration:none;transition:background-color .2s,color .2s;font-size:1rem;font-weight:500}.nav-item .icon{display:flex;align-items:center;margin-right:12px}.nav-item:hover{background-color:#1e293b;color:#fff}.nav-item.active{background-color:#2563eb;color:#fff}.mobile-toggle{display:none;position:fixed;top:15px;left:15px;z-index:1100;background:#1e293b;border:none;color:#fff;padding:8px;border-radius:8px;cursor:pointer}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-toggle{display:block}}:root{--bg-color: #020617;--text-color: #f8fafc;--text-muted: #94a3b8;--card-bg: rgba(30, 41, 59, .4);--card-border: rgba(255, 255, 255, .08);--card-hover-bg: rgba(30, 41, 59, .8);--accent-color: #3b82f6}body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-color);background-image:radial-gradient(circle at 15% 50%,rgba(59,130,246,.08),transparent 25%),radial-gradient(circle at 85% 30%,rgba(139,92,246,.08),transparent 25%)}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:260px;padding:60px 80px;transition:margin-left .3s ease-in-out;position:relative;z-index:1}.landing-hero{position:relative;margin-bottom:60px;text-align:left;max-width:800px}.hero-glow{position:absolute;top:-50%;left:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(59,130,246,.15) 0%,transparent 70%);filter:blur(40px);z-index:-1}.landing-hero h1{font-size:3.5rem;font-weight:800;letter-spacing:-1px;margin-bottom:16px;line-height:1.1}.text-gradient{background:linear-gradient(135deg,#60a5fa,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;padding-right:5px}.subtitle{font-size:1.25rem;color:var(--text-muted);line-height:1.6;font-weight:400;max-width:600px}.bento-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;width:100%}.bento-card{position:relative;display:flex;flex-direction:column;background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:20px;padding:32px;color:inherit;text-decoration:none;overflow:hidden;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .4s cubic-bezier(.175,.885,.32,1.275);height:100%}.bento-card:hover{transform:translateY(-8px) scale(1.02);background-color:var(--card-hover-bg);border-color:#ffffff26;box-shadow:0 20px 40px #0006}.card-glass-overlay{position:absolute;inset:0;background:linear-gradient(125deg,#ffffff0d,#fff0 40%);pointer-events:none;z-index:0}.card-header,.card-body,.card-footer{position:relative;z-index:2}.card-header{margin-bottom:24px;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:#0f172a99;border:1px solid rgba(255,255,255,.05);transition:transform .3s ease}.bento-card:hover .card-header{transform:scale(1.1) rotate(5deg)}.card-body h3{font-size:1.5rem;font-weight:600;margin:0 0 12px;color:#fff;letter-spacing:-.5px}.card-body p{color:var(--text-muted);line-height:1.6;font-size:.95rem;margin:0;flex-grow:1}.card-footer{margin-top:auto;padding-top:24px}.card-footer span{font-size:.9rem;font-weight:600;display:inline-flex;align-items:center;transition:transform .3s ease}.bento-card:hover .card-footer span{transform:translate(5px)}.text-yellow{color:#facc15}.text-purple{color:#c084fc}.text-blue{color:#60a5fa}.text-red{color:#f87171}.text-emerald{color:#34d399}.text-indigo{color:#818cf8}.text-orange{color:#fb923c}.glint-yellow:hover{border-color:#facc154d;box-shadow:0 10px 40px #facc151a}.glint-yellow:hover .card-footer span{color:#facc15}.glint-purple:hover{border-color:#c084fc4d;box-shadow:0 10px 40px #c084fc1a}.glint-purple:hover .card-footer span{color:#c084fc}.glint-blue:hover{border-color:#60a5fa4d;box-shadow:0 10px 40px #60a5fa1a}.glint-blue:hover .card-footer span{color:#60a5fa}.glint-red:hover{border-color:#f871714d;box-shadow:0 10px 40px #f871711a}.glint-red:hover .card-footer span{color:#f87171}.glint-emerald:hover{border-color:#34d3994d;box-shadow:0 10px 40px #34d3991a}.glint-emerald:hover .card-footer span{color:#34d399}.glint-indigo:hover{border-color:#818cf84d;box-shadow:0 10px 40px #818cf81a}.glint-indigo:hover .card-footer span{color:#818cf8}.glint-orange:hover{border-color:#fb923c4d;box-shadow:0 10px 40px #fb923c1a}.glint-orange:hover .card-footer span{color:#fb923c}@media(max-width:1024px){.main-content{padding:40px}}@media(max-width:768px){.main-content{margin-left:0;padding:80px 24px 24px}.landing-hero h1{font-size:2.5rem}.bento-grid{grid-template-columns:1fr}}.level-selection-container{padding:4rem 2rem;max-width:1200px;margin:0 auto;width:100%}.level-header{text-align:center;margin-bottom:4rem}.level-header h2{font-size:3rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.back-nav{position:absolute;top:2rem;left:2rem}.back-link-btn{background:transparent;color:var(--text-secondary);font-size:1rem;display:flex;align-items:center;gap:.5rem;transition:color .3s ease;padding:.5rem 1rem;border-radius:8px}.back-link-btn:hover{color:var(--text-primary);background:#ffffff0d}.language-selector{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.lang-tab{padding:.8rem 1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);border-radius:12px;transition:all .3s ease;font-weight:500}.lang-tab:hover{background:#ffffff1a;color:#fff;transform:translateY(-2px)}.lang-tab.active{background:var(--primary-glow);color:#fff;box-shadow:0 0 20px #7b2cbf66;border-color:transparent}.levels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.level-card{background:var(--glass-surface);-webkit-backdrop-filter:blur(var(--blur-amount));backdrop-filter:blur(var(--blur-amount));border:2px solid var(--glass-border);border-radius:20px;padding:2rem;transition:all var(--transition-smooth);cursor:pointer;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:200px}.level-card.level-basic{background:linear-gradient(145deg,#10b98126,#0596690d);border-color:#10b98166}.level-card.level-basic:hover{border-color:#10b981b3;box-shadow:0 10px 40px #10b98140}.level-card.level-basic h3,.level-card.level-basic .level-icon,.level-card.level-basic .start-indicator{color:#10b981}.level-card.level-medium{background:linear-gradient(145deg,#f59e0b26,#d977060d);border-color:#f59e0b66}.level-card.level-medium:hover{border-color:#f59e0bb3;box-shadow:0 10px 40px #f59e0b40}.level-card.level-medium h3,.level-card.level-medium .level-icon,.level-card.level-medium .start-indicator{color:#f59e0b}.level-card.level-advanced{background:linear-gradient(145deg,#ef444426,#b91c1c0d);border-color:#ef444466}.level-card.level-advanced:hover{border-color:#ef4444b3;box-shadow:0 10px 40px #ef444440}.level-card.level-advanced h3,.level-card.level-advanced .level-icon,.level-card.level-advanced .start-indicator{color:#ef4444}.level-card.level-ultraAdvanced{background:linear-gradient(145deg,#8b5cf633,#5b21b61a,#0003);border-color:#8b5cf680;position:relative}.level-card.level-ultraAdvanced:after{content:"";position:absolute;inset:-2px;border-radius:22px;background:linear-gradient(45deg,#8b5cf6,#f43f5e,#8b5cf6);background-size:200% 200%;animation:gradientShift 3s ease infinite;z-index:-1;opacity:.5}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.level-card.level-ultraAdvanced:hover{border-color:#8b5cf6e6;box-shadow:0 10px 50px #8b5cf666,0 0 30px #f43f5e33;transform:translateY(-8px)}.level-card.level-ultraAdvanced h3{color:#a78bfa;text-shadow:0 0 10px rgba(139,92,246,.5)}.level-card.level-ultraAdvanced .level-icon{color:#f43f5e;font-size:2rem}.level-card.level-ultraAdvanced .start-indicator{color:#a78bfa}.level-card.level-graphics{background:linear-gradient(145deg,#06b6d433,#14b8a61a,#2dd4bf0d);border-color:#06b6d480}.level-card.level-graphics:hover{border-color:#06b6d4e6;box-shadow:0 10px 50px #06b6d459,0 0 20px #14b8a633;transform:translateY(-5px)}.level-card.level-graphics h3{color:#22d3ee;text-shadow:0 0 8px rgba(6,182,212,.4)}.level-card.level-graphics .level-icon{color:#2dd4bf;font-size:1.8rem}.level-card.level-graphics .start-indicator{color:#22d3ee}.level-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,transparent 100%);z-index:1}.level-card:hover{transform:translateY(-5px);border-color:#fff3;box-shadow:0 10px 40px #0000004d}.level-card-content{position:relative;z-index:2}.level-card h3{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.level-card p{color:var(--text-secondary);font-size:.95rem;line-height:1.5}.level-card-footer{margin-top:1.5rem;display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}.start-indicator{font-size:.9rem;color:var(--accent-cyan);font-weight:600;opacity:0;transform:translate(-10px);transition:all .3s ease}.level-card:hover .start-indicator{opacity:1;transform:translate(0)}.level-icon{font-size:2rem;opacity:.5;transition:all .3s ease}.level-card:hover .level-icon{opacity:1;transform:scale(1.1) rotate(5deg)}.code-editor-container{position:relative;flex:1;overflow:hidden;background:transparent;border-radius:8px;transition:box-shadow .2s ease}.code-editor-container:focus-within{box-shadow:0 0 0 2px #8b5cf680}.code-highlight,.code-textarea{font-family:JetBrains Mono,Fira Code,Consolas,Courier New,monospace;font-size:.95rem;line-height:1.6;padding:1.5rem;margin:0;border:none;tab-size:4;white-space:pre;word-wrap:normal;overflow:auto;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:normal;font-weight:400;font-variant-ligatures:none;font-feature-settings:normal;text-rendering:optimizeSpeed}.code-highlight{position:absolute;inset:0;pointer-events:none;background:transparent;color:#e0e0ed;z-index:1}.code-textarea{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;color:transparent;caret-color:#fff;resize:none;outline:none;z-index:2;-webkit-text-fill-color:transparent}.code-textarea::selection{background:#8b5cf666;-webkit-text-fill-color:transparent}.code-highlight .token.comment,.code-highlight .token.prolog,.code-highlight .token.doctype,.code-highlight .token.cdata{color:#6a9955;font-style:italic}.code-highlight .token.string,.code-highlight .token.char{color:#ce9178}.code-highlight .token.number{color:#b5cea8}.code-highlight .token.keyword{color:#c586c0;font-weight:500}.code-highlight .token.control-flow,.code-highlight .token.keyword.control-flow{color:#c586c0}.code-highlight .token.operator{color:#d4d4d4}.code-highlight .token.punctuation{color:#a0a0b0}.code-highlight .token.function,.code-highlight .token.function-variable{color:#dcdcaa}.code-highlight .token.class-name,.code-highlight .token.type,.code-highlight .token.builtin{color:#4ec9b0}.code-highlight .token.variable,.code-highlight .token.property{color:#9cdcfe}.code-highlight .token.constant{color:#569cd6}.code-highlight .token.directive,.code-highlight .token.preprocessor,.code-highlight .token.macro{color:#f97316}.code-highlight .token.boolean,.code-highlight .token.null,.code-highlight .token.nil{color:#569cd6}.code-highlight .token.annotation,.code-highlight .token.decorator{color:#fbbf24}.code-highlight .token.namespace,.code-highlight .token.package,.code-highlight .token.import-statement{color:#f472b6}.code-highlight .token.regex{color:#d16969}.code-highlight .token.attr-name{color:#9cdcfe}.code-highlight .token.attr-value{color:#ce9178}.code-highlight .token.tag,.code-highlight .token.entity{color:#569cd6}.language-java .token.keyword{color:#c586c0}.language-java .token.class-name{color:#4ec9b0;font-weight:500}.language-python .token.keyword{color:#c586c0}.language-python .token.builtin{color:#4ec9b0}.language-python .token.decorator{color:#fbbf24}.language-c .token.directive,.language-cpp .token.directive{color:#f97316}.language-c .token.macro,.language-cpp .token.macro{color:#569cd6}.code-highlight::selection,.code-highlight *::selection{background:#8b5cf666}.code-textarea::-webkit-scrollbar,.code-highlight::-webkit-scrollbar{width:10px;height:10px}.code-textarea::-webkit-scrollbar-track,.code-highlight::-webkit-scrollbar-track{background:transparent}.code-textarea::-webkit-scrollbar-thumb,.code-highlight::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:5px;border:2px solid rgba(30,30,45,1)}.code-textarea::-webkit-scrollbar-thumb:hover,.code-highlight::-webkit-scrollbar-thumb:hover{background:#ffffff40}.code-textarea::-webkit-scrollbar-corner,.code-highlight::-webkit-scrollbar-corner{background:transparent}.autocomplete-dropdown{position:absolute;background:#1e1e2dfa;border:1px solid rgba(139,92,246,.4);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 20px #8b5cf626;z-index:100;max-height:280px;min-width:300px;max-width:450px;overflow-y:auto;overflow-x:hidden;animation:dropdownSlide .15s ease-out;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.autocomplete-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .1s ease;border-bottom:1px solid rgba(255,255,255,.05)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.selected{background:#8b5cf633}.autocomplete-item.selected{background:#8b5cf64d}.autocomplete-icon{font-size:.9rem;width:20px;text-align:center}.autocomplete-label{font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:500;color:#fff;flex-shrink:0}.autocomplete-type{font-size:.7rem;padding:2px 6px;border-radius:4px;background:#ffffff1a;color:#fff9;text-transform:uppercase;letter-spacing:.5px;margin-left:auto;flex-shrink:0}.autocomplete-detail{display:none}.autocomplete-type-keyword .autocomplete-label{color:#c586c0}.autocomplete-type-keyword .autocomplete-type{background:#c586c033;color:#c586c0}.autocomplete-type-type .autocomplete-label,.autocomplete-type-class .autocomplete-label{color:#4ec9b0}.autocomplete-type-type .autocomplete-type,.autocomplete-type-class .autocomplete-type{background:#4ec9b033;color:#4ec9b0}.autocomplete-type-function .autocomplete-label,.autocomplete-type-method .autocomplete-label{color:#dcdcaa}.autocomplete-type-function .autocomplete-type,.autocomplete-type-method .autocomplete-type{background:#dcdcaa33;color:#dcdcaa}.autocomplete-type-snippet .autocomplete-label{color:#9cdcfe}.autocomplete-type-snippet .autocomplete-type{background:#9cdcfe33;color:#9cdcfe}.autocomplete-type-constant .autocomplete-label{color:#569cd6}.autocomplete-type-constant .autocomplete-type{background:#569cd633;color:#569cd6}.autocomplete-type-interface .autocomplete-label{color:#b8d7a3}.autocomplete-type-interface .autocomplete-type{background:#b8d7a333;color:#b8d7a3}.autocomplete-dropdown::-webkit-scrollbar{width:6px}.autocomplete-dropdown::-webkit-scrollbar-track{background:transparent}.autocomplete-dropdown::-webkit-scrollbar-thumb{background:#8b5cf64d;border-radius:3px}.autocomplete-dropdown::-webkit-scrollbar-thumb:hover{background:#8b5cf680}.modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease;padding:2rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.completion-modal{background:linear-gradient(145deg,#1e1e32fa,#141423fa);border:1px solid rgba(74,222,128,.3);border-radius:20px;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080,0 0 40px #4ade8026;animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{text-align:center;padding:2rem 2rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.success-icon{width:60px;height:60px;margin:0 auto 1rem;background:linear-gradient(135deg,#4ade8033,#22c55e33);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:pulse 2s ease infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.success-icon svg{width:32px;height:32px;color:#4ade80}.modal-header h2{font-size:1.5rem;color:#4ade80;margin:0 0 .5rem}.exercise-title{color:var(--text-secondary);font-size:1rem;margin:0}.modal-content{flex:1;overflow-y:auto;padding:1.5rem 2rem;min-height:0}.explanation-content{color:var(--text-secondary);line-height:1.7;font-size:.95rem}.explanation-content .modal-main-title{color:#4ade80;font-size:1.1rem;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(74,222,128,.2)}.explanation-content .modal-section-title{color:#60a5fa;font-size:1rem;margin:1.5rem 0 .75rem;font-weight:600}.explanation-content p{margin-bottom:.75rem}.explanation-content strong{color:#fff}.explanation-content .modal-code-block{background:#0006;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;margin:1rem 0;overflow-x:auto;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;color:#e0e0ed;line-height:1.5}.explanation-content .modal-inline-code{background:#8b5cf633;color:#c4b5fd;padding:.15rem .4rem;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.85em}.explanation-content .modal-list{list-style:none;padding:0;margin:.75rem 0}.explanation-content .modal-list-item{padding:.4rem 0 .4rem 1.5rem;position:relative}.explanation-content .modal-list-item:before{content:"•";position:absolute;left:.5rem;color:#4ade80}.explanation-content .modal-table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.85rem}.explanation-content .modal-table th,.explanation-content .modal-table td{padding:.5rem .75rem;border:1px solid rgba(255,255,255,.1);text-align:left}.explanation-content .modal-table th{background:#4ade801a;color:#4ade80;font-weight:500}.explanation-content .modal-table tr:nth-child(odd) td{background:#ffffff05}.modal-footer{padding:1.5rem 2rem;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:center;gap:1rem;flex-shrink:0}.modal-footer button{padding:.8rem 1.8rem;border-radius:12px;font-weight:500;font-size:.95rem;cursor:pointer;transition:all .2s}.btn-secondary{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary)}.btn-secondary:hover{background:#ffffff1f;color:#fff}.btn-primary{background:linear-gradient(135deg,#4ade80,#22c55e);border:none;color:#000}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 20px #4ade8066}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:transparent}.modal-content::-webkit-scrollbar-thumb{background:#4ade804d;border-radius:3px}.modal-content::-webkit-scrollbar-thumb:hover{background:#4ade8080}@media(max-width:600px){.modal-overlay{padding:1rem}.completion-modal{max-height:90vh}.modal-header{padding:1.5rem 1.5rem 1rem}.modal-content{padding:1rem 1.5rem}.modal-footer{padding:1rem 1.5rem;flex-direction:column-reverse}.modal-footer button{width:100%}}.plot-canvas-container{background:linear-gradient(145deg,#1a1a2ef2,#0f0f23fa);border:1px solid rgba(139,92,246,.3);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:300px}.plot-header{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:#0000004d;border-bottom:1px solid rgba(139,92,246,.2)}.plot-title{font-size:14px;font-weight:600;color:#a78bfa}.download-btn{background:#8b5cf633;border:1px solid rgba(139,92,246,.3);border-radius:6px;padding:5px 10px;cursor:pointer;font-size:14px;text-decoration:none;transition:all .2s ease}.download-btn:hover{background:#8b5cf666;transform:scale(1.05)}.plot-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;color:#a78bfa;padding:40px}.loading-spinner{width:40px;height:40px;border:3px solid rgba(139,92,246,.2);border-top-color:#a78bfa;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.plot-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff6;padding:40px;text-align:center}.plot-placeholder span{font-size:48px;margin-bottom:15px;opacity:.5}.plot-placeholder p{font-size:14px;margin:0}.plot-image-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:15px;background:#0d0d1a}.plot-image{max-width:100%;max-height:400px;border-radius:8px;box-shadow:0 4px 20px #00000080}.exercise-container{display:flex;height:100vh;overflow:hidden;background:var(--bg-deep)}.exercise-sidebar{width:300px;background:linear-gradient(180deg,#3b82f61a,#2563eb0d);border-right:2px solid rgba(59,130,246,.3);display:flex;flex-direction:column;z-index:10;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:width .3s ease;flex-shrink:0}.exercise-sidebar.closed{width:70px}.sidebar-header{padding:1rem;border-bottom:1px solid var(--glass-border);display:flex;align-items:center;justify-content:space-between;gap:.5rem;height:60px}.toggle-sidebar-btn{background:transparent;color:var(--text-secondary);border:none;cursor:pointer;padding:.4rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s}.toggle-sidebar-btn:hover{background:#ffffff1a;color:#fff}.back-btn-icon{background:transparent;color:var(--text-secondary);font-size:1.2rem;padding:.5rem;border-radius:50%;transition:all .2s}.back-btn-icon:hover{background:#ffffff1a;color:#fff}.sidebar-title{font-size:1rem;font-weight:600;color:var(--text-primary);letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exercise-list{flex:1;overflow-y:auto;padding:1rem;list-style:none}.exercise-item{padding:1rem;margin-bottom:.5rem;border-radius:10px;cursor:pointer;color:var(--text-secondary);transition:all .2s ease;border:1px solid transparent;font-size:.95rem}.exercise-item:hover{background:#ffffff0d;color:var(--text-primary)}.exercise-item.active{background:#3b82f633;border-color:#3b82f680;color:#60a5fa;font-weight:500}.editor-area{flex:1;display:flex;flex-direction:column;height:100vh;position:relative;overflow:hidden;background:radial-gradient(circle at top right,rgba(58,134,255,.05),transparent 40%)}.problem-header{padding:2rem 3rem;border-bottom:1px solid var(--glass-border);min-height:150px;display:flex;justify-content:space-between;align-items:flex-start}.header-content{flex:1}.header-actions{margin-left:2rem}.problem-header h1{font-size:2rem;margin-bottom:.8rem;background:linear-gradient(90deg,#fff,#b8c1ec);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.problem-header p{color:var(--text-secondary);max-width:800px;line-height:1.6}.code-section{flex:1;display:flex;flex-direction:column;padding:1rem;gap:1rem;min-height:0}@media(min-width:1024px){.code-section{flex-direction:row}}.editor-window,.output-window{flex:1;border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.editor-window{background:linear-gradient(145deg,#8b5cf61a,#0006);border:2px solid rgba(139,92,246,.3);box-shadow:0 4px 20px #8b5cf626}.editor-window .window-header{background:#8b5cf61a;border-bottom:1px solid rgba(139,92,246,.2)}.editor-window .dot{background-color:#8b5cf6;box-shadow:0 0 8px #8b5cf6}.window-header{background:#ffffff08;padding:.8rem 1.2rem;border-bottom:1px solid var(--glass-border);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-code);font-size:.85rem;color:var(--text-muted)}.filename{display:flex;align-items:center;gap:.5rem}.file-tabs{display:flex;align-items:center;gap:.25rem;overflow-x:auto;max-width:70%}.file-tab{display:flex;align-items:center;gap:.4rem;padding:.4rem .8rem;background:#ffffff08;border:1px solid transparent;border-radius:6px 6px 0 0;color:var(--text-muted);font-family:var(--font-code);font-size:.8rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.file-tab:hover{background:#8b5cf626;color:var(--text-secondary)}.file-tab.active{background:#8b5cf640;border-color:#8b5cf666;color:#a78bfa;border-bottom:2px solid #8b5cf6}.file-tab .dot{width:8px;height:8px}.dot{width:10px;height:10px;border-radius:50%;background-color:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan)}.code-input{flex:1;background:transparent;border:none;color:#e0e0ed;font-family:var(--font-code);font-size:1rem;padding:1.5rem;resize:none;outline:none;line-height:1.6;tab-size:4}.stdin-input{flex:1;background:#0000004d;border:none;color:#e0e0ed;font-family:var(--font-code);font-size:.95rem;padding:1.5rem;resize:none;outline:none}.stdin-input::placeholder{color:var(--text-muted);font-style:italic}.output-window{background:linear-gradient(145deg,#06b6d41a,#0006);border:2px solid rgba(6,182,212,.3);box-shadow:0 4px 20px #06b6d426}.output-window .window-header{background:#06b6d41a;border-bottom:1px solid rgba(6,182,212,.2)}.output-header{justify-content:space-between}.tabs{display:flex;gap:.5rem}.tab-btn{background:transparent;border:none;color:var(--text-muted);font-family:var(--font-code);font-size:.8rem;cursor:pointer;padding:.2rem .6rem;border-bottom:2px solid transparent;transition:all .2s}.tab-btn:hover{color:#fff}.tab-btn.active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan)}.run-btn{background:var(--primary-glow);color:#fff;padding:.5rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:.5rem}.run-btn:hover{background:#9d4edd;box-shadow:0 0 15px #7b2cbf80}.run-btn:disabled{background:var(--text-muted);cursor:wait}.terminal-content{flex:1;padding:1.5rem;font-family:var(--font-code);color:var(--accent-cyan);font-size:.95rem;white-space:pre-wrap;overflow-y:auto}.terminal-content.empty{color:var(--text-muted);font-style:italic}.solution-btn{background:#ffc10733;color:#ffc107;border:1px solid rgba(255,193,7,.4);padding:.4rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600;transition:all .2s;margin-right:auto}.solution-btn:hover{background:#ffc1074d;box-shadow:0 0 10px #ffc1074d}.graphics-tab{background:#06b6d433!important;color:#22d3ee!important;border-color:#06b6d466!important}.graphics-tab.active{background:#06b6d466!important;box-shadow:0 0 10px #06b6d44d}.graphics-panel{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1rem;flex:1;overflow-y:auto;background:linear-gradient(180deg,rgba(6,182,212,.05) 0%,transparent 100%)}.graphics-output{width:100%;background:#0000004d;border:1px solid rgba(6,182,212,.2);border-radius:8px;padding:1rem;font-family:var(--font-code);color:var(--accent-cyan);font-size:.85rem;white-space:pre-wrap;max-height:150px;overflow-y:auto}.concepts-container{min-height:100vh;background:var(--bg-deep);padding:2rem}.concepts-header{text-align:center;margin-bottom:2rem;position:relative}.concepts-header .back-btn{position:absolute;left:0;top:0;color:var(--text-secondary);padding:.5rem 1rem;border-radius:8px;transition:all .3s;text-decoration:none}.concepts-header .back-btn:hover{color:var(--text-primary);background:#ffffff1a}.concepts-header h1{font-size:2.5rem;background:linear-gradient(135deg,#fff,#93c5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.concepts-header p{color:var(--text-secondary);font-size:1.1rem}.language-group{margin-bottom:1rem;border-radius:12px;overflow:hidden;transition:all .3s ease}.language-group.active{background:#ffffff08;border:1px solid rgba(255,255,255,.08)}.language-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.2rem;cursor:pointer;transition:all .2s;color:var(--text-secondary);border-radius:12px;white-space:nowrap;overflow:hidden}.sidebar-closed .language-header{padding:1rem 0;justify-content:center}.lang-name.hidden{display:none}.sidebar-closed .lang-icon{font-size:1.5rem;margin:0}.language-header:hover{background:#ffffff0d;color:#fff}.language-group.active .language-header{background:linear-gradient(135deg,#3b82f633,#06b6d41a);color:#60a5fa;font-weight:600}.lang-icon{font-size:1.2rem}.lang-name{font-weight:500}.language-concepts{padding:.5rem .5rem 1rem 1.5rem;animation:slideDown .3s ease-out;border-left:1px solid rgba(255,255,255,.05);margin-left:1.2rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.concept-category{margin-bottom:1.25rem;margin-top:.75rem}.concepts-layout{display:flex;gap:3rem;max-width:1600px;margin:0 auto;position:relative;padding-bottom:4rem}.concepts-sidebar{width:350px;flex-shrink:0;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1.5rem;max-height:calc(100vh - 150px);overflow-y:auto;overflow-x:hidden;transition:width .3s cubic-bezier(.4,0,.2,1),padding .3s ease;position:sticky;top:2rem;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:rgba(59,130,246,.3) transparent}.sidebar-closed .concepts-sidebar{width:80px;padding:1.5rem .5rem;overflow-x:hidden}.sidebar-toggle{position:absolute;top:1rem;right:1rem;background:#ffffff1a;border:none;color:var(--text-secondary);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:10;font-size:.8rem}.sidebar-closed .sidebar-toggle{right:50%;transform:translate(50%);top:.5rem}.sidebar-toggle:hover{background:#3b82f64d;color:#fff}.sidebar-content{margin-top:2rem}.concept-category{margin-bottom:1.5rem}.category-title{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:.75rem;padding-left:.5rem}.concept-list{list-style:none}.concept-item{padding:.75rem 1rem;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s;margin-bottom:.25rem}.concept-item:hover{background:#ffffff14;color:var(--text-primary)}.concept-item.active{background:linear-gradient(135deg,#3b82f633,#06b6d41a);color:#60a5fa;font-weight:500;border-left:3px solid #3b82f6}.concepts-content{flex:1;min-width:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.concept-article{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:2rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.article-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.category-badge{display:inline-block;padding:.25rem .75rem;background:#3b82f633;color:#60a5fa;border-radius:20px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem}.article-header h2{font-size:1.8rem;color:#fff;margin:0}.article-body{color:var(--text-secondary);line-height:2.1;letter-spacing:.01em}.article-body h2{color:#fff;font-size:1.5rem;margin:2.5rem 0 1.25rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.article-body h2:first-child{margin-top:0;padding-top:0;border-top:none}.article-body h3{color:#60a5fa;font-size:1.2rem;margin:2rem 0 1rem}.article-body h4{color:#60a5fa;font-size:1.05rem;margin:1.5rem 0 .75rem}.article-body p{margin-bottom:1.25rem}.article-body .code-block{background:#1e1e1e;border:1px solid #333;border-radius:6px;padding:1.25rem 1.5rem;margin:2rem 0;overflow-x:auto;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:.9rem;line-height:1.6;white-space:pre;box-shadow:none}.article-body .code-block code{background:transparent;color:#d4d4d4;padding:0;white-space:pre;display:block;line-height:1.6;font-family:inherit}.article-body .token.comment,.article-body .token.prolog,.article-body .token.doctype,.article-body .token.cdata{color:#6a9955;font-style:italic}.article-body .token.punctuation{color:#d4d4d4}.article-body .token.property,.article-body .token.tag,.article-body .token.boolean,.article-body .token.number,.article-body .token.constant,.article-body .token.symbol,.article-body .token.deleted{color:#b5cea8}.article-body .token.selector,.article-body .token.attr-name,.article-body .token.string,.article-body .token.char,.article-body .token.builtin,.article-body .token.inserted{color:#ce9178}.article-body .token.operator,.article-body .token.entity,.article-body .token.url,.article-body .language-css .token.string,.article-body .style .token.string,.article-body .token.variable{color:#d4d4d4}.article-body .token.atrule,.article-body .token.attr-value,.article-body .token.keyword{color:#569cd6}.article-body .token.function,.article-body .token.class-name{color:#dcdcaa}.article-body .token.regex,.article-body .token.important{color:#d16969}.article-body .token.important,.article-body .token.bold{font-weight:700}.article-body .token.italic{font-style:italic}.article-body .inline-code{color:#93c5fd;font-family:JetBrains Mono,monospace;font-size:.9em;font-weight:700}.article-body li{margin-left:1.5rem;margin-bottom:.75rem;line-height:1.9}.article-body ul,.article-body ol{margin:1.5rem 0;padding-left:.5rem}.article-body table,.article-body .markdown-table{width:100%;border-collapse:collapse;margin:2rem 0;font-size:.9rem;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.article-body th{padding:.75rem 1rem;background:linear-gradient(135deg,#3b82f64d,#06b6d433);font-weight:600;color:#fff;text-align:left;border:1px solid rgba(255,255,255,.1)}.article-body td{padding:.75rem 1rem;border:1px solid rgba(255,255,255,.08);color:var(--text-secondary)}.article-body tr:nth-child(2n) td{background:#ffffff05}.article-body tr:hover td{background:#3b82f61a}.article-body strong{color:#fff}.no-selection{text-align:center;padding:4rem 2rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:16px}.no-selection-icon{font-size:4rem;margin-bottom:1rem}.no-selection h3{color:#fff;font-size:1.5rem;margin-bottom:.5rem}.no-selection p{color:var(--text-secondary);max-width:400px;margin:0 auto 2rem}.quick-stats{display:flex;justify-content:center;gap:2rem}.stat-card{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:12px;padding:1.5rem 2rem}.stat-number{font-size:2rem;font-weight:700;color:#60a5fa}.stat-label{color:var(--text-secondary);font-size:.9rem}@media(max-width:900px){.concepts-layout{flex-direction:column}.concepts-sidebar{width:100%;max-height:none}}.doc-viewer-layout{display:flex;height:100vh;width:100vw;overflow:hidden;background:#0a0a0f}.doc-viewer-main{display:flex;flex-direction:column;flex:1;min-width:0;height:100vh;overflow:hidden}.doc-viewer-topbar{display:flex;align-items:center;gap:16px;padding:10px 20px;background:#0f0f19f2;border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;flex-shrink:0}.doc-back-btn{display:inline-flex;align-items:center;gap:6px;color:#ffffffa6;font-size:.85rem;font-weight:500;text-decoration:none;padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;transition:all .2s ease;white-space:nowrap}.doc-back-btn:hover{color:#fff;background:#ffffff1a;border-color:#ffffff40;transform:translate(-2px)}.doc-viewer-topbar h2{font-size:.95rem;font-weight:600;color:#ffffffd9;margin:0;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-open-external{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:#ffffff73;font-size:.78rem;text-decoration:none;padding:5px 12px;border-radius:7px;border:1px solid rgba(255,255,255,.08);background:transparent;transition:all .2s ease;white-space:nowrap}.doc-open-external:hover{color:#fffc;border-color:#fff3;background:#ffffff0f}.doc-viewer-iframe{flex:1;width:100%;border:none;background:#fff;display:block;min-height:0}.doc-viewer-loading{flex:1;display:flex;align-items:center;justify-content:center;color:#ffffff4d;font-size:.9rem}@media(max-width:768px){.doc-viewer-layout{flex-direction:column}}.app-container{min-height:100vh;width:100%;display:flex;flex-direction:column;position:relative}.app-container:before{content:"";position:absolute;top:-20%;left:50%;transform:translate(-50%);width:1000px;height:1000px;background:radial-gradient(circle,rgba(123,44,191,.2) 0%,transparent 70%);pointer-events:none;z-index:0}
