/* sukr docs — clean documentation theme */ :root { --bg: #0d1117; --bg-sidebar: #161b22; --fg: #c9d1d9; --fg-muted: #8b949e; --accent: #58a6ff; --accent-hover: #79b8ff; --border: #30363d; --code-bg: #1f2428; --success: #3fb950; } * { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 16px; line-height: 1.6; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background: var(--bg); color: var(--fg); display: grid; grid-template-columns: 260px 1fr; min-height: 100vh; } /* Sidebar */ .sidebar { background: var(--bg-sidebar); border-right: 1px solid var(--border); padding: 2rem 1.5rem; position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; } .sidebar header { margin-bottom: 2rem; } .sidebar .logo { font-size: 1.5rem; font-weight: 700; color: var(--accent); text-decoration: none; display: flex; align-items: center; gap: 0.5rem; } .sidebar .logo-img { width: 32px; height: 32px; } .sidebar .tagline { display: block; font-size: 0.875rem; color: var(--fg-muted); margin-top: 0.25rem; } .sidebar nav { display: flex; flex-direction: column; gap: 0.25rem; } .sidebar nav a { color: var(--fg); text-decoration: none; padding: 0.5rem 0.75rem; border-radius: 6px; transition: background 0.15s, color 0.15s; } .sidebar nav a:hover { background: var(--border); } .sidebar nav a.active { background: var(--accent); color: var(--bg); } .sidebar .nav-children { margin-left: 1rem; padding-left: 0.5rem; border-left: 1px solid var(--border); display: none; flex-direction: column; gap: 0.25rem; } .sidebar .nav-children.expanded { display: flex; } .sidebar .nav-children a { font-size: 0.9rem; } .sidebar-footer { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--border); font-size: 0.75rem; color: var(--fg-muted); display: flex; flex-direction: column; gap: 0.25rem; } .sidebar-footer a { color: var(--fg-muted); } .sidebar-footer a:hover { color: var(--accent); } /* Main content */ main { padding: 3rem 4rem; max-width: 900px; } h1 { font-size: 2.25rem; margin-bottom: 1rem; color: var(--fg); } h2 { font-size: 1.5rem; margin: 2rem 0 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border); } h3 { font-size: 1.25rem; margin: 1.5rem 0 0.75rem; } p { margin-bottom: 1rem; } .lead { font-size: 1.125rem; color: var(--fg-muted); margin-bottom: 2rem; } a { color: var(--accent); } a:hover { color: var(--accent-hover); } /* KaTeX display math - local overrides */ .katex-display { margin: 1rem 0; overflow-x: auto; } /* Fallback: constrain radical SVG when CDN blocked */ .hide-tail svg { max-width: 100% !important; } /* Code */ code { font-family: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace; font-size: 0.875em; background: var(--code-bg); padding: 0.2em 0.4em; border-radius: 4px; } pre { background: var(--code-bg); padding: 1rem; border-radius: 8px; overflow-x: auto; margin: 1rem 0; border: 1px solid var(--border); } pre code { background: none; padding: 0; } /* Syntax highlighting (tree-sitter classes) * Dracula-inspired color scheme with full coverage * All colors chosen to work well on dark backgrounds */ /* Keywords: control flow, declarations - Pink */ .hl-keyword { color: #ff79c6; } /* Strings and literals - Yellow */ .hl-string, .hl-string-special { color: #f1fa8c; } .hl-string-escape { color: #ffb86c; } .hl-string-special-path, .hl-string-special-uri { color: #8be9fd; text-decoration: underline; } /* Functions and methods - Green */ .hl-function, .hl-function-builtin { color: #50fa7b; } /* Comments - Muted blue-gray */ .hl-comment { color: #6272a4; font-style: italic; } /* Numbers and constants - Purple */ .hl-number, .hl-constant, .hl-constant-builtin { color: #bd93f9; } /* Operators - Pink (same as keywords for visual consistency) */ .hl-operator { color: #ff79c6; } /* Punctuation - Subtle muted */ .hl-punctuation, .hl-punctuation-bracket, .hl-punctuation-delimiter { color: var(--fg-muted); } .hl-punctuation-special { color: #ff79c6; } /* Types - Cyan */ .hl-type, .hl-type-builtin { color: #8be9fd; } /* Variables - Light foreground */ .hl-variable { color: var(--fg); } .hl-variable-builtin { color: #ffb86c; } .hl-variable-parameter { color: #ffb86c; font-style: italic; } /* Properties and attributes - Cyan */ .hl-property, .hl-attribute { color: #8be9fd; } /* Constructors - Green */ .hl-constructor { color: #50fa7b; } /* HTML/XML tags - Pink */ .hl-tag { color: #ff79c6; } /* Embedded/escape content - Orange */ .hl-embedded, .hl-escape { color: #ffb86c; } /* Markdown-specific text highlighting */ .hl-text-title { color: #ff79c6; font-weight: bold; } .hl-text-literal { color: #8be9fd; } .hl-text-uri { color: #8be9fd; text-decoration: underline; } .hl-text-reference { color: #bd93f9; } /* Section navigation */ .section-nav { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 1.5rem; } .section-link { display: block; padding: 1rem; background: var(--bg-sidebar); border: 1px solid var(--border); border-radius: 8px; text-decoration: none; transition: border-color 0.15s; } .section-link:hover { border-color: var(--accent); } .section-link strong { display: block; color: var(--fg); margin-bottom: 0.25rem; } .section-link span { font-size: 0.875rem; color: var(--fg-muted); } /* Lists */ ul, ol { margin: 1rem 0; padding-left: 1.5rem; } li { margin-bottom: 0.5rem; } /* Tables */ table { width: 100%; border-collapse: collapse; margin: 1rem 0; } th, td { padding: 0.75rem; text-align: left; border: 1px solid var(--border); } th { background: var(--bg-sidebar); } /* Navigation toggle (hidden by default) */ .nav-toggle { display: none; } .hamburger { display: none; flex-direction: column; justify-content: space-between; width: 24px; height: 18px; cursor: pointer; padding: 0; user-select: none; } .hamburger span { display: block; width: 100%; height: 2px; background: var(--fg); border-radius: 1px; transition: transform 0.3s ease, opacity 0.3s ease; transform-origin: center; } /* Responsive */ @media (max-width: 768px) { html { overflow-x: hidden; } body { grid-template-columns: 1fr; max-width: 100vw; overflow-x: hidden; } .sidebar { position: static; height: auto; border-right: none; border-bottom: 1px solid var(--border); padding: 1rem 1.5rem; } .sidebar header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0; } .sidebar .tagline { display: none; } /* Position hamburger on right side of header */ .sidebar header { position: relative; } .hamburger { display: flex; position: absolute; right: 0; top: 50%; transform: translateY(-50%); } .sidebar nav { flex-direction: column; padding-top: 0; margin-top: 0; border-top: 1px solid var(--border); max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.3s ease, opacity 0.3s ease, margin-top 0.3s ease, padding-top 0.3s ease; } /* Show nav when checkbox is checked - checkbox is inside header now */ .sidebar:has(.nav-toggle:checked) nav { max-height: 500px; opacity: 1; margin-top: 1rem; padding-top: 1rem; } /* Hamburger → X morph animation */ .nav-toggle:checked~.hamburger span:nth-child(1) { transform: translateY(8px) rotate(45deg); } .nav-toggle:checked~.hamburger span:nth-child(2) { opacity: 0; } .nav-toggle:checked~.hamburger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); } .sidebar-footer { display: none; } main { padding: 1.5rem 1rem; max-width: 100%; } pre { max-width: calc(100vw - 2rem); } /* Make tables scrollable on mobile */ table { display: block; overflow-x: auto; white-space: nowrap; max-width: calc(100vw - 2rem); } /* Allow inline code to wrap */ code { word-break: break-all; } td code { white-space: normal; } }