:root{color-scheme:light;--bg: oklch(98.3% .004 80);--bg-panel: oklch(99.3% .003 80);--bg-hover: oklch(95.3% .007 80);--border: oklch(90% .006 80);--border-soft: oklch(93.5% .005 80);--text: oklch(23% .012 75);--text-secondary: oklch(42% .012 75);--text-muted: oklch(58% .01 75);--text-faint: oklch(68% .008 75);--accent: oklch(47% .11 259);--accent-hover: oklch(40% .12 259);--accent-soft: oklch(94.5% .022 259);--accent-soft-border: oklch(85% .04 259);--danger: oklch(55% .16 25);--danger-soft: oklch(95.5% .03 25);--font-ui: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-read: "Newsreader", Georgia, "Times New Roman", serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 18px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-ui);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit}.centered-message{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-faint);font-size:.9rem;letter-spacing:.01em}.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg);padding:1.5rem}.login-card{width:100%;max-width:380px;text-align:left}.login-card h1{font-family:var(--font-read);font-weight:500;font-size:clamp(1.6rem,1.3rem + 1vw,2rem);letter-spacing:-.01em;margin:0 0 .6rem;color:var(--text)}.login-card p{color:var(--text-secondary);font-size:.95rem;line-height:1.55;margin:0 0 2rem}button.primary{width:100%;padding:.7rem 1rem;border:none;border-radius:999px;background:var(--accent);color:#fcfcfc;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .15s ease-out}button.primary:hover{background:var(--accent-hover)}.login-card details{margin-top:1.25rem}.login-card summary{font-size:.82rem;color:var(--text-faint);cursor:pointer;list-style:none}.login-card summary::-webkit-details-marker{display:none}.login-card summary:before{content:"▸ "}.login-card details[open] summary:before{content:"▾ "}.login-card form{display:flex;gap:.5rem;margin-top:.75rem}.login-card input[type=text]{flex:1;padding:.5rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;background:var(--bg-panel)}.login-card form button{padding:.5rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);font-size:.85rem;cursor:pointer}.login-card form button:disabled{opacity:.5;cursor:not-allowed}.app-shell{display:flex;height:100vh}.sidebar{width:300px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-panel);border-right:1px solid var(--border-soft)}.sidebar-home{display:block;font-family:var(--font-read);font-weight:500;font-size:1.05rem;letter-spacing:-.005em;padding:1.25rem 1.25rem .9rem;text-decoration:none;color:var(--text)}.sidebar-scroll{flex:1;overflow-y:auto;padding:0 .75rem 1.25rem}.sidebar-loading{padding:0 .5rem;color:var(--text-faint);font-size:.85rem}.quick-search{position:relative;padding:0 1rem .9rem}.quick-search-input-wrap{position:relative}.quick-search-input-wrap svg{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.quick-search input{width:100%;padding:.5rem .65rem .5rem 2rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);font-size:.86rem;color:var(--text)}.quick-search input:focus{outline:none;border-color:var(--accent-soft-border);box-shadow:0 0 0 3px var(--accent-soft)}.quick-search-dropdown{position:absolute;z-index:20;top:calc(100% - .4rem);left:1rem;right:1rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 32px -8px #00000029;overflow:hidden;max-height:60vh;overflow-y:auto}.quick-search-empty{padding:.9rem 1rem;font-size:.82rem;color:var(--text-faint)}.quick-search-result{display:block;padding:.55rem 1rem;text-decoration:none;border-bottom:1px solid var(--border-soft)}.quick-search-result:last-child{border-bottom:none}.quick-search-result:hover,.quick-search-result.active{background:var(--bg-hover)}.quick-search-result-id{display:block;font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:.15rem}.quick-search-result-title{display:block;font-size:.86rem;color:var(--text)}.quick-search-see-all{color:var(--text-faint);font-size:.8rem;padding:.6rem 1rem}.tree-nav{list-style:none;margin:0;padding-left:.6rem}.tree-nav .tree-nav{padding-left:.85rem}.tree-dir{display:flex;align-items:center;gap:.35rem;width:100%;background:none;border:none;padding:.3rem .4rem;cursor:pointer;font-size:.85rem;font-weight:500;color:var(--text-secondary);border-radius:var(--radius-sm);text-align:left}.tree-dir:hover{background:var(--bg-hover)}.tree-caret{display:inline-block;width:.8rem;color:var(--text-faint);font-size:.7rem}.tree-file-link{display:block;padding:.32rem .5rem;border-radius:var(--radius-sm);text-decoration:none;line-height:1.3}.tree-file-link:hover{background:var(--bg-hover)}.tree-file-link.active{background:var(--accent-soft)}.tree-file-id{display:block;font-size:.66rem;font-weight:600;letter-spacing:.04em;color:var(--text-faint)}.tree-file-link.active .tree-file-id{color:var(--accent)}.tree-file-title{display:block;font-size:.84rem;color:var(--text-secondary)}.tree-file-link.active .tree-file-title{color:var(--text)}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.app-header{display:flex;justify-content:flex-end;align-items:center;gap:1.25rem;padding:.85rem 2rem;border-bottom:1px solid var(--border-soft);font-size:.8rem;color:var(--text-faint)}.app-header button{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:0}.app-header button:hover{color:var(--text)}.app-content{flex:1;overflow-y:auto;padding:clamp(2rem,4vw,4rem) clamp(1.5rem,5vw,3rem)}.page{max-width:720px;margin:0 auto}.page-id{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 .5rem}.page h1{font-family:var(--font-read);font-weight:500;font-size:clamp(1.9rem,1.5rem + 1.4vw,2.5rem);letter-spacing:-.01em;line-height:1.15;margin:0 0 1.5rem;color:var(--text)}.frontmatter-panel{display:flex;flex-wrap:wrap;column-gap:1.75rem;row-gap:.5rem;padding-bottom:1.5rem;margin-bottom:1.75rem;border-bottom:1px solid var(--border-soft);font-size:.8rem}.frontmatter-item{display:flex;flex-direction:column;gap:.1rem}.frontmatter-key{color:var(--text-faint);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase}.frontmatter-value{color:var(--text-secondary);max-width:32ch}.frontmatter-more{flex-basis:100%}.frontmatter-more summary{color:var(--text-faint);font-size:.75rem;cursor:pointer;list-style:none}.frontmatter-more summary::-webkit-details-marker{display:none}.frontmatter-more summary:before{content:"▸ "}.frontmatter-more[open] summary:before{content:"▾ "}.frontmatter-more[open] summary{margin-bottom:.6rem}.frontmatter-more .frontmatter-item{display:inline-flex;flex-direction:row;gap:.35rem;margin:0 1.25rem .4rem 0}.prose{font-family:var(--font-read);font-size:1.08rem;line-height:1.7;color:var(--text)}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-read);font-weight:500;color:var(--text);letter-spacing:-.005em;line-height:1.25}.prose h2{font-size:1.4rem;margin:2.5rem 0 1rem;padding-top:.25rem;border-top:1px solid var(--border-soft)}.prose h2:first-child{border-top:none;padding-top:0;margin-top:0}.prose h3{font-size:1.15rem;margin:1.75rem 0 .75rem}.prose p{margin:0 0 1.15rem}.prose a{color:var(--accent);text-decoration-color:var(--accent-soft-border);text-underline-offset:2px}.prose a:hover{text-decoration-color:var(--accent)}.prose ul,.prose ol{margin:0 0 1.15rem;padding-left:1.4rem}.prose li{margin-bottom:.35rem}.prose blockquote{margin:0 0 1.15rem;padding:.1rem 0 .1rem 1rem;border-left:2px solid var(--accent-soft-border);color:var(--text-secondary);font-style:italic}.prose code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.86em;background:var(--bg-hover);padding:.1em .35em;border-radius:4px}.prose pre{background:var(--text);color:#f3f1ee;padding:1rem 1.15rem;border-radius:var(--radius-md);overflow-x:auto;font-size:.85rem;line-height:1.55;margin:0 0 1.5rem}.prose pre code{background:none;padding:0;color:inherit}.prose table{border-collapse:collapse;width:100%;margin:0 0 1.5rem;font-family:var(--font-ui);font-size:.86rem}.prose th,.prose td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left;vertical-align:top}.prose th{background:var(--bg-panel);font-weight:600;color:var(--text-secondary)}.broken-wikilink{color:var(--text-faint);font-style:italic}.mermaid-diagram{margin:1.5rem 0;padding:1.25rem;text-align:center;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius-md);overflow-x:auto}.mermaid-error{background:var(--danger-soft);color:var(--danger);padding:1rem;border-radius:var(--radius-md);white-space:pre-wrap;font-family:ui-monospace,monospace;font-size:.85rem}.not-found{padding:2rem 0;color:var(--text-muted);font-family:var(--font-read);font-size:1.1rem}.search-page{max-width:720px;margin:0 auto}.search-page h1{font-family:var(--font-read);font-weight:500;font-size:1.8rem;margin:0 0 1.25rem}.search-page form{display:flex;gap:.6rem;margin-bottom:2rem}.search-page input{flex:1;padding:.65rem .9rem;font-size:1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel)}.search-page input:focus{outline:none;border-color:var(--accent-soft-border);box-shadow:0 0 0 3px var(--accent-soft)}.search-page button{padding:.65rem 1.25rem;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fcfcfc;font-size:.9rem;cursor:pointer}.search-results{list-style:none;padding:0;margin:0}.search-results li{padding:1rem 0;border-bottom:1px solid var(--border-soft)}.search-results li:first-child{padding-top:0}.search-result-id{display:block;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-bottom:.2rem}.search-result-title{font-size:1.02rem;font-weight:500;text-decoration:none;color:var(--text)}.search-result-title:hover{color:var(--accent)}.search-results p{margin:.35rem 0 0;color:var(--text-muted);font-size:.88rem;line-height:1.5}
