:root{--bg-color:#fdfcf8;--text-color:#2a2a2a;--heading-color:#1a1a1a;--link-color:#c94040;--link-hover-color:#a32a2a;--sidebar-bg:#e5e2d6;--border-color:#c2bead;--code-bg:#2d2d2d;--code-text:#e6e6e6;--code-accent:#a5d6a7;--font-body:'Lora', 'Noto Emoji', serif;--font-heading:'Patrick Hand', 'Noto Emoji', cursive;--font-code:'Fira Code', 'Courier New', monospace;--soft-sketch:3px 15px 5px 10px/15px 3px 10px 5px}*{box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word}body{margin:0;padding:0;background-color:var(--bg-color);color:var(--text-color);font-family:var(--font-body);line-height:1.7;font-size:19px;display:flex;min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a39f8f}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--heading-color);margin-top:2.5rem;margin-bottom:1rem;line-height:1.2}h1{font-size:3rem}h2{font-size:2.2rem}h3{font-size:1.8rem}p{margin-bottom:1.5rem}a{color:var(--link-color);text-decoration:none;transition:all .2s ease}a:hover{text-decoration:underline wavy var(--link-color);text-underline-offset:4px}img{max-width:100%;height:auto;max-height:400px;object-fit:contain;margin:2rem auto;display:block}@media(min-width:769px){img{max-width:500px}}.sidebar{width:340px;background-color:var(--sidebar-bg);border-right:2px solid var(--border-color);padding:3rem 0;flex-shrink:0;overflow-y:auto;position:sticky;top:0;height:100vh;box-shadow:inset -5px 0 15px rgba(0,0,0,2%)}.main-content{flex-grow:1;padding:4rem 5rem;max-width:900px;min-width:0;width:100%;margin:0 auto}.site-header{margin-bottom:3rem;border-bottom:2px dashed #ddd;padding-bottom:1.5rem}.site-header h1{font-size:2rem;margin:0;border:none}.site-header h1 a{color:var(--heading-color)}.site-description{color:#666;font-family:var(--font-heading);font-size:1.2rem;margin-top:.2rem}.site-footer{margin-top:5rem;padding-top:2rem;border-top:2px solid #eee;text-align:center;font-family:var(--font-heading);font-size:1rem;color:#999}.mobile-header{display:none}@media(max-width:900px){.mobile-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background-color:var(--bg-color);border-bottom:2px solid var(--border-color);position:sticky;top:0;z-index:100}.mobile-site-title a{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--heading-color);text-decoration:none}.mobile-menu-btn{background:var(--heading-color);color:var(--bg-color);border:none;padding:.4rem .8rem;font-family:var(--font-heading);font-size:1.5rem;border-radius:var(--soft-sketch);cursor:pointer;box-shadow:2px 2px rgba(0,0,0,.1)}body{flex-direction:column}.main-content{margin-left:0;max-width:100%;padding:1.2rem 1rem}}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:900}@media(max-width:768px){.sidebar{position:fixed;top:0;left:-320px;width:300px;height:100vh;z-index:999;transition:left .3s cubic-bezier(.4,0,.2,1)}.sidebar.active{left:0}.sidebar-overlay.active{display:block}.main-content{padding:1rem .5rem;width:100vw}}.sidebar h2{font-size:2rem;margin:0 0 1.5rem;padding:0 2rem;color:var(--heading-color);text-align:center}.sidebar nav ul{list-style:none;padding:0;margin:0}.sidebar nav ul li{margin-bottom:.4rem;padding:0 0 0 1rem}.sidebar nav ul .sub-menu{margin-top:.2rem;padding-left:1.5rem;border-left:1px dashed var(--border-color);margin-left:1.5rem}.sidebar nav ul .sub-menu li{padding:0;margin-bottom:.2rem}.sidebar nav ul .sub-menu li a{font-size:1.1rem;padding:.4rem .8rem}.sidebar nav ul li a{display:block;padding:.6rem 1rem;color:var(--text-color);font-family:var(--font-heading);font-size:1.3rem;border-radius:var(--soft-sketch);transition:all .2s}.sidebar nav ul li a:hover{background-color:rgba(0,0,0,4%);text-decoration:none}.sidebar nav ul li a.active{position:relative;font-weight:700;color:var(--heading-color);background:0 0;z-index:1}.sidebar nav ul li a.active::before{content:"";position:absolute;top:10%;bottom:10%;left:5px;right:-5px;background-color:rgba(253,235,113,.7);z-index:-1;transform:rotate(-1.5deg)skewX(-10deg);border-radius:4px 10px 3px 8px;pointer-events:none}.book-nav-buttons{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:4rem;padding-top:2rem;border-top:2px dashed var(--border-color)}.book-nav-buttons a{display:inline-block;background-color:var(--heading-color);color:#fff;padding:.6rem 1.5rem;border-radius:var(--soft-sketch);font-family:var(--font-heading);font-size:1.1rem;transition:transform .2s,box-shadow .2s}.book-nav-buttons a:hover{background-color:var(--link-hover-color);color:#fff;transform:translateY(-2px);box-shadow:2px 2px rgba(0,0,0,.1);text-decoration:none!important}.book-nav-buttons .prev-link{margin-right:auto}.book-nav-buttons .next-link{margin-left:auto}.book-cover{display:flex;align-items:center;justify-content:center;min-height:70vh}.book-cover-inner{text-align:center;border:3px solid var(--heading-color);border-radius:var(--soft-sketch);padding:4rem;background-color:var(--bg-color);box-shadow:6px 6px rgba(0,0,0,6%);max-width:850px;width:100%}.book-cover .book-title{font-size:4rem;font-family:var(--font-heading);margin:0 0 1rem;line-height:1}.book-cover .book-subtitle{font-family:var(--font-body);font-size:1.3rem;color:#555;margin-bottom:2rem}.book-cover .book-author{font-family:var(--font-heading);font-size:1.4rem;color:#777;margin-bottom:3rem}.btn-read{display:inline-block;background-color:var(--heading-color);color:#fff;padding:.8rem 2.5rem;border-radius:var(--soft-sketch);font-family:var(--font-heading);font-size:1.3rem;transition:transform .2s,box-shadow .2s}.btn-read:hover{background-color:var(--link-hover-color);color:#fff;transform:translateY(-2px);box-shadow:3px 3px rgba(0,0,0,.1);text-decoration:none!important}@media(max-width:768px){.sidebar nav ul .sub-menu{padding-left:.8rem;margin-left:.8rem}.book-cover-inner{padding:1.5rem .5rem;max-width:100%}.book-cover .book-title{font-size:2.2rem;hyphens:auto}}pre,code{font-family:var(--font-code);font-size:.9em}code{background-color:#eceaea;padding:.2em .4em;border-radius:3px;color:#ba3232}pre{background-color:var(--code-bg);color:var(--code-text);padding:1.5rem;overflow-x:auto;border-radius:var(--soft-sketch);margin:2rem 0;box-shadow:3px 4px rgba(0,0,0,.1);border:2px solid #1a1a1a}pre code{background-color:transparent;padding:0;color:inherit;border-radius:0}blockquote{margin:1.5rem 0;padding:.8rem 1.2rem;background-color:#e06c6c;color:#fff;font-style:italic;border-radius:255px 15px 225px 15px/15px 225px 15px 255px;box-shadow:4px 4px rgba(0,0,0,.1)}.algo-array{display:flex;gap:12px;margin:3rem 0;justify-content:center;flex-wrap:wrap;align-items:flex-end}.algo-box-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}.algo-box{width:50px;height:50px;display:flex;align-items:center;justify-content:center;border:2px solid var(--heading-color);border-radius:var(--soft-sketch);font-weight:700;font-size:1.3rem;font-family:var(--font-code);background-color:#fff;box-shadow:2px 2px rgba(0,0,0,5%);transition:all .3s ease;position:relative;z-index:2}.algo-box.compare{background-color:#fdeb70;color:var(--heading-color);transform:translateY(-2px);box-shadow:3px 3px rgba(0,0,0,.1)}.algo-box.swap{background-color:#e06c6c;color:#fff;border-color:#c24646;transform:scale(1.05)}.algo-box.pivot{background-color:#e1bee7;color:var(--heading-color);border-color:#ba68c8}.algo-box.sorted{background-color:#81c784;color:var(--heading-color);border-color:#66bb6a;border-style:dashed}.algo-box.hole{background-color:transparent;border-style:dashed;border-color:#c2bead;color:transparent;box-shadow:none}.algo-index{font-size:.8rem;color:#888;margin-top:4px;font-family:var(--font-code)}.algo-floating-value{width:50px;height:50px;display:flex;align-items:center;justify-content:center;border:2px solid var(--heading-color);border-radius:var(--soft-sketch);font-weight:700;font-size:1.3rem;font-family:var(--font-code);background-color:#7986cb;color:#fff;box-shadow:2px 6px 12px rgba(0,0,0,.15);z-index:10;margin-bottom:4px}.author-aside{display:block;background-color:rgba(253,235,113,.2);border:2px dashed var(--heading-color);border-radius:var(--soft-sketch);padding:1.5rem;margin:2.5rem 0;box-shadow:4px 4px rgba(0,0,0,4%)}.author-aside::after{content:"";display:table;clear:both}.author-aside .aside-icon{font-size:2rem;float:left;margin-right:1rem;margin-top:-.2rem;margin-bottom:.5rem}.author-aside .aside-content{font-family:var(--font-body);font-style:italic;color:#444}.author-aside .aside-content p:last-child{margin-bottom:0}.algo-callstack-container{display:flex;justify-content:center;margin:3rem 0}.algo-callstack{display:flex;flex-direction:column-reverse;width:100%;max-width:350px;border:3px solid var(--heading-color);border-radius:var(--soft-sketch);background-color:#fff;overflow:hidden;box-shadow:4px 4px rgba(0,0,0,8%)}.callstack-frame{width:100%;min-height:50px;display:flex;align-items:center;justify-content:center;border-bottom:2px dashed var(--heading-color);font-weight:700;font-size:1.1rem;font-family:var(--font-code);background-color:transparent;transition:background-color .3s ease;padding:.5rem 1rem;position:relative;z-index:2}.callstack-frame:first-child{border-bottom:none}.callstack-frame.active{background-color:#fdeb70;color:var(--heading-color);z-index:3}.callstack-frame.basecase{background-color:#81c784;color:var(--heading-color)}.callstack-frame.popping{background-color:#eee;color:#999;text-decoration:line-through}.frame-label{text-align:center;word-break:break-all}