code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.code-panel{display:flex;flex-direction:column;border:1px solid #274161;border-radius:12px;overflow:hidden;background:#0d1a2a;min-height:320px}.code-header{display:flex;flex-direction:column;gap:8px;padding:10px 10px 8px;border-bottom:1px solid #274161;background:#13253b}.code-header-title{font-size:13px;color:#e2efff;font-weight:700}.language-switcher{display:flex;gap:6px;flex-wrap:wrap}.lang-btn{border:1px solid #476180;background:#1a2e47;color:#bdd7f6;border-radius:999px;font-size:11px;padding:4px 9px;cursor:pointer}.lang-btn.active{background:#f0a93a;border-color:#f0a93a;color:#20344c;font-weight:700}.code-body{overflow:auto;padding:8px 0}.code-pre{margin:0;padding:0 0 6px;font-size:12px;line-height:1.5;font-family:JetBrains Mono,Consolas,monospace}.code-line{display:grid;grid-template-columns:30px minmax(220px,1fr) auto;align-items:flex-start;gap:10px;padding:2px 10px;min-height:21px}.code-line.active{background:#f0a93a2e;border-left:3px solid #f0a93a;padding-left:7px}.line-no{text-align:right;color:#6084ad;-webkit-user-select:none;user-select:none}.code-line code{white-space:pre}.line-vars{display:inline-flex;flex-wrap:wrap;gap:4px}.var-pill{border-radius:6px;border:1px solid transparent;font-size:10px;padding:2px 6px;white-space:nowrap;font-family:JetBrains Mono,Consolas,monospace}.var-pill.pointer{border-color:#4d7fb0;background:#4d7fb03d;color:#b8dbff}.var-pill.number{border-color:#6d9d57;background:#6d9d5733;color:#ceefbb}.var-pill.node{border-color:#c7884d;background:#c7884d3d;color:#ffd9aa}.var-pill.frame{border-color:#8f8f8f;background:#8f8f8f38;color:#eee}.timeline{width:100%;display:flex;flex-direction:column;gap:6px}.timeline-track{position:relative;width:100%;height:12px;border-radius:999px;background:#53606e;cursor:pointer}.timeline-played{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,#3fbf6a,#6adb80)}.timeline-thumb{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #2d9f57;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0d4f2659}.timeline-text{display:flex;justify-content:space-between;font-size:12px;color:#98b8dc}.control-panel{border:1px solid #274161;border-radius:12px;background:#12263e;padding:10px 12px;display:flex;flex-direction:column;gap:10px;align-items:center}.button-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.button-row button{border:1px solid #4d6784;background:#1a314d;color:#d9ebff;border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer}.button-row button:disabled{opacity:.45;cursor:not-allowed}.button-row button:nth-child(2){border-color:#f0a93a;background:#f0a93a;color:#1f3450;font-weight:700}.speed-row{width:100%;display:flex;align-items:center;justify-content:center;gap:10px}.speed-row span{font-size:12px;color:#9fc2e7;font-weight:600}.speed-options{display:flex;gap:6px}.speed-btn{border:1px solid #5a7393;border-radius:999px;background:#1a2c43;color:#bcd7f6;font-size:11px;padding:4px 8px;cursor:pointer}.speed-btn.active{background:#2f9c58;border-color:#2f9c58;color:#f5fff8;font-weight:700}.data-input{border-bottom:1px solid #24405d;background:#0f1d2d;padding:8px 10px 6px;display:flex;flex-direction:column;gap:6px}.toolbar-scroll{display:flex;align-items:center;gap:8px;overflow-x:auto;white-space:nowrap;padding-bottom:2px}.solution-tabs{display:inline-flex;gap:6px;margin-right:4px}.solution-tab{border:1px solid #4f6885;border-radius:999px;background:#14263b;color:#d2e5ff;font-size:12px;padding:5px 10px;cursor:pointer}.solution-tab.active{background:#1f4672;border-color:#75a8da;color:#fff}.compact-input{display:inline-flex;align-items:center;gap:5px;border:1px solid #35526f;border-radius:8px;background:#13253a;padding:4px 7px}.compact-input span{font-size:11px;color:#96b6d8;font-weight:700}.compact-input input{width:150px;border:none;outline:none;background:transparent;color:#edf5ff;font-size:12px;font-family:JetBrains Mono,Consolas,monospace}.toolbar-btn{border:1px solid #4c6480;border-radius:8px;background:#1a2c42;color:#d5e8ff;font-size:12px;padding:5px 9px;cursor:pointer;white-space:nowrap}.toolbar-btn.primary{background:#f0a93a;border-color:#f0a93a;color:#1b2d45;font-weight:700}.preset-list{display:inline-flex;gap:6px;margin-left:4px}.preset-chip{border:1px solid #4d627d;border-radius:999px;background:#12253b;color:#b6d0ee;font-size:11px;padding:4px 8px;cursor:pointer}.preset-chip:hover{border-color:#f0a93a;color:#ffdba1}.toolbar-status{min-height:16px;font-size:12px;color:#9bc2ee;padding-left:2px}.error-text{color:#ff8e7f}.floating-ball-container{position:fixed;right:18px;bottom:18px;z-index:1300}.floating-ball{width:68px;height:68px;border-radius:50%;border:1px solid #5ca273;background:linear-gradient(160deg,#2ca25f,#258654);color:#f4fff7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;box-shadow:0 7px 20px #126c3461}.group-icon{width:24px;height:24px}.floating-ball span{font-size:11px;font-weight:700}.qr-popup{position:absolute;right:0;bottom:76px;width:280px;background:#fff;border-radius:14px;border:1px solid #dbe4ec;box-shadow:0 12px 30px #00000040;padding:10px}.qr-image{width:100%;height:auto;display:block;object-fit:contain}.qr-text{margin:8px 2px 0;color:#294062;text-align:center;font-size:12px;line-height:1.5}.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 16px;background:linear-gradient(90deg,#101925,#16273d);border-bottom:1px solid #274466}.header-left{justify-self:start}.back-link{color:#8fc7ff;text-decoration:none;font-size:13px;font-weight:600}.back-link:hover{color:#b4daff}.header-center{justify-self:center;min-width:200px}.problem-title-link{color:#f4b248;text-decoration:none;font-size:22px;font-weight:700;letter-spacing:.4px}.problem-title-link:hover{color:#ffd178}.header-right{justify-self:end;display:flex;align-items:center;gap:10px}.idea-button{border:1px solid #48698f;background:#1a314d;color:#d5e7ff;border-radius:10px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}.idea-button:hover{background:#234269}.github-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#e6edf3;border:1px solid #445d7a;border-radius:10px;padding:6px 10px;background:#1b2736}.github-link:hover{background:#26384f}.github-icon{width:20px;height:20px}.star-count{font-size:12px;font-weight:700;color:#ffcb69}@media(max-width:980px){.header{grid-template-columns:1fr;justify-items:center;gap:8px}.header-left,.header-right,.header-center{justify-self:center}.problem-title-link{font-size:18px}}.idea-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center}.idea-modal-mask{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#030a14b8}.idea-modal{position:relative;width:min(760px,92vw);max-height:78vh;overflow:auto;background:#f8fbff;color:#1a2a3f;border-radius:14px;border:1px solid #c8d6e8;box-shadow:0 20px 48px #00000040;z-index:1}.idea-modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #dbe6f2}.idea-modal-header h2{margin:0;font-size:18px;color:#123055}.idea-modal-header button{border:1px solid #8ea8c3;background:#eaf2fb;color:#1f3a5c;border-radius:8px;padding:6px 10px;cursor:pointer}.idea-modal-body{margin:0;padding:16px;white-space:pre-wrap;line-height:1.6;font-size:14px;font-family:JetBrains Mono,Consolas,monospace}.visualization-panel{border:1px solid #274161;border-radius:12px;background:#0d1b2c;display:flex;flex-direction:column;min-height:420px;overflow:hidden}.viz-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid #274161;background:#13263e;color:#9ec2e8;font-size:12px}.viz-toolbar button{border:1px solid #567497;background:#1a2f48;color:#d6e8ff;border-radius:8px;font-size:12px;padding:5px 9px;cursor:pointer}.visualization-svg{width:100%;height:100%;min-height:390px;display:block}.scene-title{font-size:13px;fill:#aac8e7;text-anchor:middle;font-weight:700}.scene-note{font-size:12px;fill:#f5bc5a;text-anchor:middle}.row-title{font-size:12px;font-weight:700}.list-node{fill:#16334f;stroke:#4d769f;stroke-width:2}.list-node.active{fill:#1d4063;stroke:#f1a93a;stroke-width:3}.node-value{fill:#f2f8ff;text-anchor:middle;font-size:17px;font-weight:700}.node-index{fill:#7ca0c5;text-anchor:middle;font-size:10px}.pointer-label{text-anchor:middle;font-size:11px;font-weight:700}.list-edge{stroke:#5f83aa;stroke-width:2}.null-node{fill:#4d668147;stroke:#7b93ad;stroke-width:1.5;stroke-dasharray:5 4}.null-text{fill:#8ea3bc;text-anchor:middle;font-style:italic;font-size:12px}.compute-box{fill:#f1a93a1f;stroke:#f0a93a;stroke-width:2}.compute-title{fill:#ffd58c;text-anchor:middle;font-size:13px;font-weight:700}.compute-expression{fill:#dceeff;text-anchor:middle;font-size:13px}.carry-box{fill:#4dbf7a29;stroke:#58bd7e;stroke-width:2}.carry-label{fill:#a8e2bf;text-anchor:middle;font-size:11px}.carry-value{fill:#d9ffe6;text-anchor:middle;font-size:20px;font-weight:700}.flow-label{text-anchor:middle;font-size:10px;font-weight:700}.stack-title{fill:#c6daf2;font-size:12px;font-weight:700}.stack-frame{stroke:#6c84a1;stroke-width:1.5}.stack-frame.enter{fill:#6fa4da33}.stack-frame.compute{fill:#f1a93a33}.stack-frame.return{fill:#57bf7e33}.stack-frame.base{fill:#97979733}.stack-frame-title{fill:#e5f0ff;font-size:11px;font-weight:700}.stack-frame-meta{fill:#b9cce0;font-size:10px}.stack-empty{fill:#6f879f33;stroke:#6e8aa8;stroke-width:1.5}.stack-empty-text{text-anchor:middle;fill:#c2d5e9;font-size:11px}.density-note{fill:#8cb0d2;font-size:11px}.app{width:100%;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(circle at 18% 8%,#173253,#091524 55%,#06101d);color:#e5f0ff}.app-main{flex:1;min-height:0;display:flex;gap:12px;padding:10px;overflow:hidden}.canvas-column{flex:1.75;min-width:0;display:flex;flex-direction:column;gap:8px}.side-column{flex:1;min-width:410px;max-width:46%;display:flex;flex-direction:column;gap:8px;min-height:0}.side-column .code-panel{flex:1;min-height:0}.step-description{border:1px solid #294363;border-radius:10px;background:#102236;padding:8px 10px;display:flex;gap:8px;align-items:baseline;font-size:13px}.step-description-title{color:#f3b54c;font-weight:700;flex-shrink:0}.share-toast{position:fixed;right:18px;top:90px;z-index:1400;border:1px solid #4b6a90;background:#173050;color:#d7eaff;border-radius:8px;padding:8px 10px;font-size:12px}@media(max-width:1180px){.app-main{flex-direction:column}.side-column{max-width:none;min-width:0;flex:0 0 44%}.canvas-column{flex:1}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:Manrope,Noto Sans SC,Segoe UI,sans-serif;background:#06101d;color:#e6f1ff}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #f0a93a;outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0d1a2a}::-webkit-scrollbar-thumb{background:#365172;border-radius:999px}
