html{scroll-behavior:smooth}.skip-link{position:absolute;top:-40px;left:0;background:var(--accent-light);color:#fff;padding:.5rem 1rem;z-index:10000;text-decoration:none;border-radius:0 0 4px 0}.skip-link:focus{top:0}:root{--bg: #1a1a2e;--bg-secondary: #16213e;--text: #eee;--text-muted: #aaa;--accent: #0f4c75;--accent-light: #3282b8;--code-bg: #0d1117;--border: #333}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}header{background:var(--bg-secondary);padding:1rem 2rem;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1000}header nav{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}header nav .logo{font-size:1.5rem;font-weight:bold;color:var(--accent-light);text-decoration:none}header nav .nav-links{display:flex;list-style:none;gap:1.5rem}header nav .nav-links a{color:var(--text);text-decoration:none}header nav .nav-links a:hover{color:var(--accent-light)}header nav .nav-links .donate-link{color:#f5a623;font-weight:500}header nav .nav-links .donate-link:hover{color:gold}header nav .search-container{position:relative}header nav .search-container #search-input{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.5rem 1rem;color:var(--text);width:200px;font-size:.9rem}header nav .search-container #search-input:focus{outline:none;border-color:var(--accent-light)}header nav .search-container #search-results{display:none;position:absolute;top:100%;right:0;width:300px;max-height:400px;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;margin-top:4px;box-shadow:0 4px 12px rgba(0,0,0,.3)}header nav .search-container #search-results .search-result{display:block;padding:.75rem 1rem;text-decoration:none;border-bottom:1px solid var(--border)}header nav .search-container #search-results .search-result:last-child{border-bottom:none}header nav .search-container #search-results .search-result:hover{background:var(--bg)}header nav .search-container #search-results .search-result strong{display:block;color:var(--accent-light);font-size:.95rem}header nav .search-container #search-results .search-result span{display:block;color:var(--text-muted);font-size:.8rem;margin-top:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}header nav .search-container #search-results .no-results{padding:1rem;color:var(--text-muted);text-align:center}main{flex:1;max-width:1200px;margin:0 auto;padding:2rem;width:100%}article h1{margin-bottom:1rem;color:var(--accent-light)}article h2{margin:2rem 0 1rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}article h3{margin:1.5rem 0 .5rem}article p{margin:1rem 0}article ul,article ol{margin:1rem 0 1rem 2rem}article ul li,article ol li{margin:.5rem 0}article a{color:var(--accent-light)}article a:hover{text-decoration:underline}article code{background:var(--code-bg);padding:.2em .4em;border-radius:3px;font-size:.9em}article pre{background:var(--code-bg);padding:1rem;border-radius:5px;overflow-x:auto;margin:1rem 0}article pre code{padding:0;background:none}.page-list,.subsection-list{list-style:none;margin-left:0}.page-list li,.subsection-list li{padding:1rem;border:1px solid var(--border);border-radius:5px;margin:.5rem 0}.page-list li:hover,.subsection-list li:hover{border-color:var(--accent-light)}.page-list li a,.subsection-list li a{font-weight:bold;font-size:1.1rem}.page-list li p,.subsection-list li p{margin:.5rem 0 0;color:var(--text-muted)}.algorithm-card,.method-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:5px;padding:1rem;margin:1rem 0}.algorithm-card .math,.method-card .math{background:var(--code-bg);padding:1rem;border-radius:3px;overflow-x:auto;margin:.5rem 0}.algorithm-card .refs,.method-card .refs{font-size:.9em;color:var(--text-muted)}footer{background:var(--bg-secondary);padding:1rem 2rem;text-align:center;border-top:1px solid var(--border);color:var(--text-muted)}footer a{color:var(--accent-light)}footer p{margin:.5rem 0}.api-link{background:var(--accent);display:inline-block;padding:.5rem 1rem;border-radius:5px;margin:1rem 0}.api-link a{color:#fff;text-decoration:none}.homepage h1{font-size:2.5rem;margin-bottom:.5rem}.homepage>p:first-of-type{font-size:1.2rem;color:var(--text-muted);margin-bottom:2rem}.library-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:1.5rem;margin:1.5rem 0}.library-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:1.5rem;transition:border-color .2s,transform .2s}.library-card:hover{border-color:var(--accent-light);transform:translateY(-2px)}.library-card h3{margin:0 0 .5rem}.library-card h3 a{color:var(--accent-light);text-decoration:none;font-size:1.3rem}.library-card .layer-badge{background:var(--accent);padding:.2rem .6rem;border-radius:12px;font-size:.75rem;margin-right:.5rem}.library-card p{color:var(--text-muted);margin:.75rem 0;font-size:.95rem}.library-card .class-count{color:var(--text-muted);font-size:.85rem}article table{width:100%;border-collapse:collapse;margin:1rem 0}article table th,article table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}article table th{background:var(--bg-secondary);font-weight:600}article table code{font-size:.85rem}.quick-nav{display:flex;gap:1rem;margin:2rem 0;flex-wrap:wrap}.quick-nav .nav-card{flex:1;min-width:150px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:1.25rem;text-decoration:none;text-align:center;transition:border-color .2s,transform .2s}.quick-nav .nav-card:hover{border-color:var(--accent-light);transform:translateY(-2px)}.quick-nav .nav-card strong{display:block;color:var(--accent-light);font-size:1.1rem;margin-bottom:.25rem}.quick-nav .nav-card span{color:var(--text-muted);font-size:.85rem}.layer-diagram{margin:1.5rem 0}.layer-diagram .layer{padding:1rem 1.5rem;margin:.25rem 0;border-radius:4px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.layer-diagram .layer strong{color:var(--text)}.layer-diagram .layer span{color:var(--text-muted);font-size:.9rem}.layer-diagram .layer-0{background:linear-gradient(90deg, var(--accent) 0%, var(--bg-secondary) 100%)}.layer-diagram .layer-1{background:linear-gradient(90deg, rgba(15,76,117,.7) 0%, var(--bg-secondary) 100%)}.layer-diagram .layer-2{background:linear-gradient(90deg, rgba(15,76,117,.5) 0%, var(--bg-secondary) 100%)}.layer-diagram .layer-3{background:linear-gradient(90deg, rgba(15,76,117,.3) 0%, var(--bg-secondary) 100%)}.layer-diagram .layer-4{background:linear-gradient(90deg, rgba(15,76,117,.15) 0%, var(--bg-secondary) 100%)}article h3{color:var(--accent-light);margin-top:2rem;font-size:1.2rem}article h3+p{color:var(--text-muted);margin-bottom:1rem}.breadcrumbs{max-width:1200px;margin:0 auto;padding:.75rem 2rem;font-size:.9rem;color:var(--text-muted)}.breadcrumbs a{color:var(--text-muted);text-decoration:none}.breadcrumbs a:hover{color:var(--accent-light)}.breadcrumbs .separator{margin:0 .5rem}.library-layers h2{color:var(--accent-light);font-size:1.5rem;margin:2rem 0 .5rem;border-bottom:none;padding-bottom:0}.library-layers .layer-desc{color:var(--text-muted);margin:0 0 1rem;font-size:1rem}.library-layers hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.library-card .brief{color:var(--text-muted);font-size:.9rem;margin:.5rem 0 .75rem;line-height:1.5}.library-card .meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.library-card .badge{font-size:.75rem;padding:.2rem .6rem;border-radius:12px;font-weight:500}.library-card .badge.documented{background:#28a745;color:#fff}.library-card .badge.headers{background:var(--accent);color:#fff}.library-card .badge.external{background:#6c757d;color:#fff}.library-card .headers{font-size:.8rem;color:var(--text-muted)}.library-card .topics{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.library-card .topics span{background:var(--bg);padding:.2rem .5rem;border-radius:4px;font-size:.75rem;color:var(--text-muted);border:1px solid var(--border)}.library-card.documented{border-color:#28a745;border-width:2px}.library-card.documented h3 a{color:#28a745}@media (max-width: 768px){.library-grid{grid-template-columns:1fr}.library-card{padding:1rem}}.quick-nav .nav-card.featured{background:linear-gradient(135deg, rgba(78,205,196,.2), rgba(78,205,196,.1));border-color:#4ecdc4}.quick-nav .nav-card.featured strong{color:#4ecdc4}.quick-nav .nav-card.featured:hover{border-color:#4ecdc4;background:linear-gradient(135deg, rgba(78,205,196,.3), rgba(78,205,196,.15))}.prereq-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:1.5rem;margin:1.5rem 0}.prereq-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.prereq-card h4{margin:0 0 1rem 0;color:var(--accent-light);font-size:1.1rem}.prereq-card ul,.prereq-card ol{margin:0;padding-left:1.25rem}.prereq-card ul li,.prereq-card ol li{margin:.5rem 0;line-height:1.5}.prereq-card ul strong,.prereq-card ol strong{color:var(--text)}.try-interactive{background:linear-gradient(135deg, rgba(168,85,247,.15), rgba(168,85,247,.05));border:1px solid rgba(168,85,247,.3);border-radius:8px;padding:1rem 1.5rem;margin:1.5rem 0}.try-interactive strong{color:#a855f7}.try-interactive a{color:#a855f7;font-weight:500}.diagram-container{margin:1.5rem 0;text-align:center;overflow-x:auto}.diagram-container img{max-width:100%;height:auto;border-radius:8px}.diagram-container .algorithm-diagram{max-width:600px}.diagram-container .architecture-diagram{max-width:800px}details{margin:1rem 0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}details summary{cursor:pointer;font-weight:500;color:var(--accent-light);user-select:none}details summary:hover{text-decoration:underline}details summary::marker{color:var(--accent-light)}details[open] summary{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}