:root{--primary-color: #4CAF50;--primary-dark: #388E3C;--secondary-color: #2196F3;--secondary-dark: #1976D2;--tertiary-color: #FF5722;--text-color: #333;--text-light: #666;--background-color: #f8f9fa;--border-color: #ddd;--highlight-color: #ffeb3b}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0;padding:0;background-color:#f0f2f5;color:var(--text-color);width:100%;max-width:100%;overflow-x:hidden}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100vw;max-width:100%}.app-nav{display:flex;justify-content:space-between;align-items:center;background-color:var(--text-color);color:#fff;padding:.5rem 1rem;width:100%;box-sizing:border-box;position:sticky;top:0;z-index:100}.nav-left,.nav-right{display:flex;align-items:center}.back-link{color:#fff;text-decoration:none;font-weight:500;display:flex;align-items:center;transition:all .2s ease}.back-link:hover{color:var(--highlight-color);transform:translate(-3px)}.github-link{color:#fff;padding:.3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.github-link:hover{color:var(--highlight-color);transform:scale(1.1);background-color:#ffffff1a}.app-header{background-color:var(--primary-color);color:#fff;padding:1.2rem 1.5rem;box-shadow:0 2px 5px #0000001a;width:100%;box-sizing:border-box}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.app-header h1{margin:0;font-size:1.8rem;text-align:center;flex:3}.title-link{color:#fff;text-decoration:none;transition:all .2s ease;cursor:pointer;display:inline-block}.title-link:hover{color:var(--highlight-color);text-shadow:0 0 10px rgba(255,255,255,.5);transform:scale(1.02)}.app-description{max-width:800px;margin:1rem auto 0;opacity:.9;text-align:center}.app-main{flex:1;display:flex;flex-direction:column;padding:1rem;width:100%;max-width:100%;box-sizing:border-box}.app-footer{background-color:var(--text-color);color:#fff;text-align:center;padding:1rem;margin-top:2rem;width:100%;box-sizing:border-box}.selector-section{margin-bottom:1.5rem;width:100%}.algorithm-selector{background-color:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 10px #0000000d;width:100%;box-sizing:border-box}.algorithm-selector h2{margin-top:0;margin-bottom:1rem;color:var(--primary-color)}.algorithm-buttons{display:flex;flex-wrap:wrap;gap:1rem;width:100%;justify-content:space-between}.algorithm-button{padding:.75rem 1.25rem;border:2px solid var(--primary-color);background-color:#fff;color:var(--primary-color);font-weight:600;border-radius:4px;cursor:pointer;transition:all .2s ease;flex:1;text-align:center;min-width:150px}.algorithm-button:hover,.algorithm-button.active{background-color:var(--primary-color);color:#fff}.visualizer-section{flex:1;width:100%}.visualizer-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000000d;padding:1.5rem;width:100%;box-sizing:border-box;max-width:100%}.visualizer-container.empty{display:flex;justify-content:center;align-items:center;min-height:400px}.welcome-message{text-align:center;max-width:100%;padding:2rem}.welcome-message h2{color:var(--primary-color)}.n-input-container{margin:1.5rem 0;display:flex;align-items:center;justify-content:center;gap:1rem}.n-input-container label{font-weight:600}.n-input-container input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;width:80px;font-size:1rem;text-align:center}.algorithm-visualizer{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:100%}.visualizer-header{margin-bottom:1rem;width:100%}.visualizer-content{display:flex;flex-direction:row;gap:1.5rem;width:100%;max-width:100%}.visualizer-main{flex:1;min-width:60%}.visualizer-details{width:30%;min-width:250px;max-width:350px;background-color:var(--background-color);padding:1rem;border-radius:8px}.visualizer-controls{margin-top:1rem;width:100%}.algorithm-info{background-color:var(--background-color);padding:1rem;border-radius:8px;margin-bottom:1rem;width:100%;box-sizing:border-box}.algorithm-info h3{color:var(--secondary-color);margin-top:0}.algorithm-info .description{margin-bottom:1rem}.algorithm-info .complexity{display:flex;gap:1.5rem;margin-bottom:1rem}.algorithm-info .steps h4{margin-bottom:.5rem}.algorithm-info .steps ol{margin:0;padding-left:1.5rem}.algorithm-info .steps li{margin-bottom:.5rem}.coordinate-system{border:1px solid var(--border-color);border-radius:8px;background-color:#fff;width:100%;box-sizing:border-box}.coordinate-system-container{width:100%!important;height:auto}.animation-controls{background-color:var(--background-color);padding:1rem;border-radius:8px;width:100%;box-sizing:border-box}.controls-buttons{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}.control-button{width:40px;height:40px;border:none;background-color:var(--secondary-color);color:#fff;border-radius:50%;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:1.2rem;transition:background-color .2s ease}.control-button:hover{background-color:var(--secondary-dark)}.control-button:disabled{background-color:var(--text-light);cursor:not-allowed;opacity:.7}.controls-progress{margin-top:1rem;width:100%}.progress-info{display:flex;flex-direction:column;width:100%}.step-counter{font-size:.9rem;font-weight:500;margin-bottom:.5rem;color:var(--text-color)}.progress-bar-container{position:relative;width:100%}.progress-slider{width:100%;margin-bottom:0;position:relative;z-index:10;cursor:pointer;opacity:.8;height:12px}.progress-bar{position:absolute;top:5px;left:0;width:100%;height:8px;background-color:var(--border-color);border-radius:4px;overflow:hidden;pointer-events:none}.progress-bar-inner{height:100%;background-color:var(--secondary-color);border-radius:4px;transition:width .3s ease}.binary-display{margin:1rem 0;font-family:monospace;width:100%;overflow-x:auto}.binary-value{display:flex;justify-content:center;margin-bottom:.25rem}.binary-bit{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;background-color:#f0f0f0;margin:0 2px;border-radius:4px}.binary-bit.highlight{background-color:var(--highlight-color);font-weight:700}.binary-indices{display:flex;justify-content:center;font-size:.8rem;color:var(--text-light)}.binary-index{display:inline-block;width:24px;text-align:center;margin:0 2px}.step-info,.binary-info{margin-bottom:1.5rem}.update-info,.operation-info{color:var(--tertiary-color);font-weight:600}.formula{background-color:#f0f0f0;padding:.5rem;border-radius:4px;font-family:monospace;overflow-x:auto}.operation{margin:1rem 0;font-family:monospace;width:100%;overflow-x:auto}.operation-row{display:flex;margin-bottom:.5rem}.operation-label{width:100px;font-weight:600}.binary-small{font-size:.9rem;color:var(--text-light)}.visualizer-wrapper{width:100%;max-width:100%}@media (max-width: 768px){.header-content{flex-direction:column;gap:.5rem}.nav-left{justify-content:center;margin-bottom:.5rem}.nav-right{justify-content:center;margin-top:.5rem}.app-header h1{font-size:1.5rem}.algorithm-buttons,.visualizer-content{flex-direction:column}.visualizer-main{width:100%;min-width:100%}.visualizer-details{width:100%;max-width:100%}.app-main{padding:.5rem}}.binary-operation{margin-top:1rem;padding:.75rem;background-color:#f5f5f5;border-radius:4px;border-left:3px solid var(--tertiary-color)}.operation-title{font-weight:600;margin-bottom:.5rem;color:var(--tertiary-color)}.operation-row{display:flex;margin:.25rem 0;font-family:monospace}.operation-label{width:80px;font-weight:600}.operation-value{letter-spacing:1px}.operation-row.highlighted{color:var(--tertiary-color);font-weight:600}.point{transition:cx .5s ease,cy .5s ease,r .3s ease}.point-label{font-size:10px;transition:x .5s ease,y .5s ease}.algorithm-button.active{background-color:#4caf50;color:#fff}.comparison-visualizer .result-item{background-color:#ffffff0d;transition:all .3s ease}.comparison-visualizer .result-item:hover{background-color:#ffffff1a}@keyframes pulse{0%{transform:scale(1);opacity:1}to{transform:scale(2);opacity:0}}.coordinate-system-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;justify-content:center}.legend-item{display:flex;align-items:center;gap:5px;font-size:.9rem}.legend-color{width:12px;height:12px;border-radius:50%}.binary-display{margin-bottom:20px;background-color:#f8f9fa;padding:15px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.binary-explanation{margin-bottom:10px;font-weight:700;color:#333}.number-label{font-size:1.1rem}.binary-value{display:flex;justify-content:flex-start;margin-bottom:8px;font-family:monospace;font-size:1.6rem}.binary-indices{display:flex;justify-content:flex-start;font-family:monospace;font-size:.9rem;color:#666;margin-bottom:8px}.binary-values{display:flex;justify-content:flex-start;font-family:monospace;font-size:1.2rem;color:#555;margin-bottom:12px}.binary-bit{display:inline-block;width:35px;height:35px;line-height:35px;text-align:center;margin-right:8px;border-radius:8px;transition:all .3s ease-in-out;animation:fade-in .4s ease-in-out forwards;font-weight:700}.binary-index{display:inline-block;width:35px;text-align:center;margin-right:8px;font-weight:700}.binary-position-value{display:inline-block;width:35px;text-align:center;margin-right:8px;color:#aaa}.binary-position-value.has-value{font-weight:700;color:#4caf50}.bit-one{background-color:#c8e6c9;color:#2e7d32;border:2px solid #81c784}.bit-zero{background-color:#f5f5f5;color:#9e9e9e;border:1px solid #e0e0e0}.binary-bit.highlight{background-color:#ffeb3b;color:#f57f17;border:2px solid #fbc02d;transform:scale(1.1);box-shadow:0 2px 8px #0003}.binary-bit.highlight.pulse{animation:pulse 1.5s infinite}.binary-sum{font-family:monospace;font-size:1.2rem;margin-top:5px;padding:8px;background-color:#e8f5e9;border-radius:6px;display:inline-block;color:#2e7d32;font-weight:700}.sum-explanation{text-align:center}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{transform:scale(1.1);box-shadow:0 2px 8px #0003}50%{transform:scale(1.2);box-shadow:0 4px 12px #0000004d;background-color:#fff176}to{transform:scale(1.1);box-shadow:0 2px 8px #0003}}.animation-controls{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:5px 0;width:100%;position:relative}.animation-button{background-color:#f0f0f0;border:none;border-radius:50%;width:40px;height:40px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .2s ease;color:#333;font-size:18px}.animation-button:hover{background-color:#e0e0e0}.animation-button.active{background-color:#2196f3;color:#fff}.animation-progress{flex:1;max-width:500px;position:relative}.progress-slider{width:100%;height:6px;-webkit-appearance:none;background:#e0e0e0;outline:none;border-radius:3px;cursor:pointer}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#2196f3;cursor:pointer}.progress-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#2196f3;cursor:pointer;border:none}.step-indicators{display:flex;justify-content:space-between;margin-top:5px;font-size:12px;color:#666}.reset-button{background-color:#f44336;color:#fff;border:none;border-radius:4px;padding:8px 12px;cursor:pointer;font-size:14px;transition:background-color .2s}.reset-button:hover{background-color:#d32f2f}.keyboard-shortcuts{width:100%;text-align:center;margin-top:8px;font-size:12px;color:#777}.shortcut-hint{background-color:#f5f5f5;padding:3px 8px;border-radius:4px;border:1px solid #e0e0e0;font-family:monospace}@media (max-width: 600px){.animation-controls{flex-direction:column}.animation-progress{width:100%;max-width:none;margin:10px 0}}.algorithm-visualizer{background-color:#fff;border-radius:10px;box-shadow:0 4px 12px #0000001a;padding:20px 20px 80px;margin-bottom:20px;position:relative;min-height:600px}.visualizer-header{margin-bottom:20px;border-bottom:2px solid #f0f0f0;padding-bottom:15px;display:flex;justify-content:space-between;align-items:center}.visualizer-header h3{margin:0;color:#333;font-size:1.5rem}.simple-guide{background-color:#e3f2fd;border-radius:8px;padding:15px;margin-bottom:20px;display:flex;align-items:center;border-left:5px solid #2196f3}.guide-icon{font-size:24px;margin-right:15px}.guide-text{font-size:16px;line-height:1.5;color:#333}.visualizer-content{display:flex;flex-direction:column;gap:20px}@media (min-width: 768px){.visualizer-content{flex-direction:row}.visualizer-main{flex:3}.visualizer-details{flex:2}}.visualizer-main{background-color:#f9f9f9;padding:15px;border-radius:8px;position:relative}.coordinate-title{text-align:center;margin-bottom:10px}.coordinate-title h4{color:#555;font-weight:400;font-size:14px}.visualizer-details{background-color:#f5f5f5;padding:15px;border-radius:8px;max-height:500px;overflow-y:auto}.simple-explanation{background-color:#fff8e1;padding:15px;border-radius:8px;margin-bottom:20px;border-left:5px solid #ffc107;position:relative}.explanation-badge{position:absolute;top:-10px;right:-10px;background-color:#ffc107;color:#333;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;box-shadow:0 2px 4px #0003}.simple-explanation h3{color:#f57c00;margin-top:0;margin-bottom:10px;font-size:18px}.simple-explanation p{margin:8px 0;line-height:1.4}.simple-explanation ol{padding-left:20px}.simple-explanation li{margin-bottom:8px}.next-hint{color:#2196f3;font-weight:700;font-style:italic}.complete-message{color:#4caf50;font-weight:700;background-color:#e8f5e9;padding:8px;border-radius:4px;text-align:center}.step-info{margin-bottom:20px;background-color:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 4px #0000000d;position:relative}.step-info h4{margin-top:0;color:#333;display:flex;align-items:center}.step-info h4:before{content:"🔍";margin-right:8px;font-size:1.2em}.step-info .step-badge{position:absolute;top:-8px;left:-8px;background-color:#2196f3;color:#fff;font-size:12px;padding:2px 8px;border-radius:12px;box-shadow:0 2px 4px #0003}.ones-count{font-weight:700;color:#4caf50;display:flex;align-items:center}.ones-count:before{content:"➡️";margin-right:5px}.binary-info{background-color:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 4px #0000000d;position:relative}.binary-info h4{margin-top:0;color:#333;display:flex;align-items:center}.binary-info h4:before{content:"💻";margin-right:8px}.binary-info .binary-badge{position:absolute;top:-8px;right:-8px;background-color:#673ab7;color:#fff;font-size:12px;padding:2px 8px;border-radius:12px;box-shadow:0 2px 4px #0003}.operation-info{margin:10px 0;padding:10px;background-color:#fff9c4;border-radius:4px;font-size:14px;line-height:1.4;border-left:3px solid #ffc107}.highlight-text{font-weight:700;color:#f57f17}.binary-operation{margin-top:15px;background-color:#f5f5f5;padding:15px;border-radius:8px;font-family:monospace}.operation-title{font-weight:700;margin-bottom:10px;color:#333;text-align:center;border-bottom:1px dashed #ccc;padding-bottom:5px}.operation-row{display:flex;margin-bottom:10px;align-items:center;flex-wrap:wrap;padding:5px;border-radius:4px;transition:background-color .2s}.operation-row:hover{background-color:#f0f0f0}.operation-label{width:100px;color:#555;font-weight:700}.operation-value{font-weight:700;letter-spacing:1px;color:#333;font-family:Courier New,monospace}.explanation{margin-left:10px;font-size:.9em;color:#777;font-style:italic}.operation-row.highlighted{background-color:#fffde7;padding:8px;border-radius:4px;border-left:3px solid #ffc107}.operation-conclusion{margin-top:15px;padding:10px;background-color:#e8f5e9;border-radius:4px;color:#2e7d32;font-weight:700;text-align:center;border:1px dashed #4caf50}.helper-label{font-size:.9rem;color:#666;margin:5px 0;padding:3px 0;display:flex;align-items:center}.helper-label:before{content:"💡";margin-right:5px}.helper-note{font-size:.85rem;color:#777;margin:5px 0;padding:5px;border-left:3px solid #9e9e9e;background-color:#f9f9f9}.formula{font-family:Courier New,monospace;padding:5px 10px;background-color:#f5f5f5;border-radius:4px;display:inline-block;margin:5px 0;border:1px dashed #ccc}.visualizer-controls{margin-top:20px;position:absolute;bottom:0;left:0;right:0;background-color:#fff;padding:15px 20px;border-top:2px solid #f0f0f0;border-radius:0 0 10px 10px;z-index:10;box-shadow:0 -2px 5px #0000000d}.comparison-visualizer .algorithm-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.algorithm-checkbox{display:flex;align-items:center;padding:6px 12px;border-radius:4px;background-color:#f5f5f5;cursor:pointer;transition:all .2s ease}.algorithm-checkbox:hover{background-color:#e0e0e0}.algorithm-checkbox input{margin-right:8px}.algorithm-results{margin-top:20px}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-top:10px}.result-item{border:2px solid;border-radius:6px;overflow:hidden}.result-header{padding:8px;color:#fff;font-weight:700;text-align:center}.result-content{padding:10px;background-color:#fff}.result-description{font-size:.9em;color:#666;margin-top:5px;font-style:italic}.binary-display-container{margin:15px 0}.comparison-visualizer .coordinate-system{position:relative}.comparison-visualizer .coordinate-system svg{overflow:visible}.comparison-visualizer .data-point{transition:all .3s ease}.comparison-visualizer .data-series{stroke-width:2;fill:none}.comparison-visualizer .data-series-points circle{transition:all .3s ease}.comparison-visualizer .data-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px;justify-content:center}.comparison-visualizer .legend-item{display:flex;align-items:center;font-size:.9em}.comparison-visualizer .legend-color{width:20px;height:10px;margin-right:5px;border-radius:2px}@media (max-width: 768px){.results-grid{grid-template-columns:1fr}}.count-until-n-visualizer .animation-toggle{margin:10px 0;display:flex;align-items:center}.count-until-n-visualizer .animation-toggle input{margin-right:8px}.count-until-n-visualizer .step-info .highlight-count{font-weight:700;color:#4caf50;padding:2px 6px;background-color:#e8f5e9;border-radius:4px}.count-until-n-visualizer .bit-animation-container{margin:15px 0}.count-until-n-visualizer .bit-count-animation{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.count-until-n-visualizer .bit-counter{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:#fff;font-weight:700;animation:pop-in .4s ease forwards;opacity:0;transform:scale(.5)}.count-until-n-visualizer .bit-count-sum{font-size:1.2rem;font-weight:700;margin-top:10px;text-align:center}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}70%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;justify-content:center;min-width:100%;min-height:100vh;width:100%;max-width:100%;overflow-x:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
