@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}@keyframes barCompare{0%{filter:brightness();transform:scaleY(1)translateY(0)}30%{filter:brightness(1.3);transform:scaleY(1.04)translateY(-4px)}70%{filter:brightness(1.3);transform:scaleY(1.04)translateY(-4px)}to{filter:brightness();transform:scaleY(1)translateY(0)}}@keyframes barSwap{0%{filter:brightness();transform:scaleX(1)translateY(0)}20%{filter:brightness(1.5);transform:scaleX(1.08)translateY(-8px)}50%{filter:brightness(1.8);transform:scaleX(.94)translateY(-12px)}80%{filter:brightness(1.4);transform:scaleX(1.08)translateY(-4px)}to{filter:brightness();transform:scaleX(1)translateY(0)}}@keyframes barPivot{0%,to{transform:scaleY(1)translateY(0)}50%{transform:scaleY(1.06)translateY(-6px)}}@keyframes barSorted{0%{opacity:.5;transform:scaleY(.92)}60%{opacity:1;transform:scaleY(1.05)}to{opacity:1;transform:scaleY(1)}}.bar{transform-origin:bottom;will-change:transform, background-color, height;border-radius:3px 3px 0 0;transition:height 80ms,background-color 80ms}.bar--idle{animation:none}.bar--comparing{animation:.22s forwards barCompare}.bar--swapping{animation:.25s forwards barSwap}.bar--pivot{animation:.4s infinite barPivot}.bar--sorted{animation:.3s forwards barSorted}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes countUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes successPop{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes themeSwitch{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.theme-root{min-height:100vh;font-family:Inter,system-ui,sans-serif;transition:background .3s,color .3s;animation:.25s themeSwitch}.navbar{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:12px;height:56px;padding:0 24px;transition:background .3s,border-color .3s;display:flex;position:sticky;top:0}.navbar__logo{align-items:center;gap:9px;margin-right:4px;display:flex}.navbar__logo-mark{color:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:700;transition:background .3s,box-shadow .3s;display:flex}.navbar__wordmark{letter-spacing:-.3px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600}.navbar__tabs{border-radius:10px;gap:3px;padding:3px;transition:background .3s;display:flex}.navbar__spacer{flex:1}.navbar__theme-btn{cursor:pointer;border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;font-family:inherit;transition:all .2s;display:flex}.algo-tab{cursor:pointer;border:none;border-radius:8px;padding:5px 14px;font-family:inherit;font-size:13px;transition:all .2s}.algo-tab:hover:not(:disabled){opacity:.85}.algo-tab:disabled{cursor:not-allowed;opacity:.4}.card{border-radius:13px;transition:background .3s,border-color .3s,box-shadow .3s}.card--clickable{cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}.card--clickable:hover{transform:translateY(-1px)}.controls{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 18px;transition:border-color .3s;display:flex}.controls__divider{flex-shrink:0;width:1px;height:22px}.btn{cursor:pointer;border:none;align-items:center;gap:6px;font-family:inherit;transition:all .18s;display:flex}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.btn--primary{border-radius:9px;min-width:96px;padding:7px 20px;font-size:13px;font-weight:600;transition:background .2s,box-shadow .2s}.btn--secondary{background:0 0;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:500}input[type=range]{appearance:none;cursor:pointer;border:none;border-radius:99px;outline:none;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .15s,box-shadow .15s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]:disabled{opacity:.3;cursor:not-allowed}.slider-label{align-items:center;gap:9px;display:flex}.slider-label__text{white-space:nowrap;font-size:12px;font-weight:500}.slider-label__value{min-width:28px;font-family:JetBrains Mono,monospace;font-size:12px}.status{align-items:center;height:24px;margin-left:auto;display:flex}.status__sorted{color:#10b981;background:#10b98118;border:1px solid #10b98133;border-radius:20px;align-items:center;gap:5px;padding:3px 10px;font-size:13px;font-weight:600;animation:.35s cubic-bezier(.34,1.56,.64,1) forwards successPop;display:flex}.status__sorting{align-items:center;gap:6px;font-size:12px;display:flex}.spinner{animation:.9s linear infinite spin;display:inline-flex}.visualizer{padding:24px 20px 18px}.visualizer__bars{align-items:flex-end;height:270px;padding:0 2px;display:flex;position:relative}.legend{flex-wrap:wrap;gap:16px;margin-top:14px;padding-top:12px;transition:border-color .3s;display:flex}.legend__item{align-items:center;gap:7px;display:flex}.legend__swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.legend__label{font-size:12px}.stat-num{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:600;line-height:1;animation:.18s countUp}.stat-label{opacity:.5;letter-spacing:.3px;margin-top:4px;font-size:11px;font-weight:500}.page-enter{animation:.4s both fadeSlideIn}.page-enter-1{animation:.4s 50ms both fadeSlideIn}.page-enter-2{animation:.4s .1s both fadeSlideIn}
