:root{--bg: #141414f0;--bg-solid: #141414;--fg: #e8e8e8;--border: #404040;--muted: #888888;--accent: #ffffff;--mono-font: "JetBrains Mono", "Fira Code", monospace;--serif-font: "Lora", "Georgia", serif;--sans-font: "Inter", -apple-system, system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-solid);color:var(--fg);font-family:var(--mono-font);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased;padding:1.5rem}@media(min-width:768px){body{padding:3rem}}h1,h2,h3,h4{font-family:var(--serif-font);font-weight:400;line-height:1.3;color:var(--accent)}a{color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:var(--border);transition:all .2s ease;border-radius:2px}a:hover{text-decoration-color:var(--accent);color:var(--accent);background-color:#0000000d}@media(prefers-color-scheme:dark){a:hover{background-color:#ffffff14}}.mono{font-family:var(--mono-font);font-size:.85em;letter-spacing:.02em}.mono.upper{text-transform:uppercase;letter-spacing:.05em}.serif-display{font-family:var(--serif-font);font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.01em}.container{max-width:840px;margin:0 auto}.masthead{padding-bottom:2rem;margin-bottom:3rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:1rem}.masthead-title{margin-bottom:.25rem}.masthead-title a{text-decoration:none;color:inherit}.masthead-sub{color:var(--muted);display:flex;flex-wrap:wrap;gap:1rem;align-items:baseline}.masthead-sep{font-size:.8em;opacity:.5}.link-prominent{text-decoration:none!important;border-bottom:1px solid currentColor}.masthead-controls{display:flex;align-items:center;gap:1rem;text-align:right;font-size:.8rem}.theme-toggle-btn{padding:.4rem .8rem;cursor:pointer}.site-footer{font-family:var(--mono-font);margin-top:5rem;padding-top:2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;color:var(--muted);font-size:.8rem;flex-wrap:wrap;gap:1rem}.footer-links{display:flex;gap:1.5rem}.section-about{margin-bottom:5rem}.section-projects{margin-bottom:4rem}.section-title{font-family:var(--mono-font);text-transform:uppercase;font-size:.85rem;color:var(--muted);margin-bottom:2rem}.section-about .section-title{margin-bottom:1.5rem}.about-text{font-family:var(--serif-font);font-size:1.25rem;max-width:720px;line-height:1.7;color:var(--fg)}.project-description{font-family:var(--mono-font);font-size:.95rem;color:var(--muted);margin-bottom:1.5rem;max-width:700px;line-height:1.6}.project-links{font-family:var(--mono-font);display:flex;gap:1.5rem;font-size:.85rem}.project-article{max-width:760px}.back-link-container{margin-bottom:3rem}.back-link{font-family:var(--mono-font);color:var(--muted);text-decoration:none}.project-detail-header{margin-bottom:3rem;border-bottom:1px solid var(--border);padding-bottom:2rem}.project-detail-title{margin-bottom:1rem}.gallery-section{margin-top:5rem;padding-top:3rem;border-top:1px solid var(--border)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.gallery-item{border:1px solid var(--border);padding:.5rem;background:var(--bg-solid);cursor:zoom-in;transition:all .2s ease}.gallery-item:hover{border-color:var(--accent)}.gallery-item img{width:100%;height:auto;display:block}.zoom-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;z-index:1000;justify-content:center;align-items:center;padding:2rem;cursor:zoom-out}.gallery-item.zoomed .zoom-overlay{display:flex}.zoom-overlay img{max-width:100%;max-height:100%;border:2px solid #fff;box-shadow:0 0 50px #00000080;width:auto!important}.zoom-close{position:absolute;top:1rem;right:1rem;color:#fff;background:#000;padding:.5rem;cursor:pointer;font-family:var(--mono-font)}.markdown-body{font-family:var(--mono-font);font-size:.95rem;line-height:1.7;color:var(--fg)}.markdown-body p,.markdown-body ul,.markdown-body blockquote{margin-bottom:1.5rem}.markdown-body h2{font-size:1.8rem;margin-top:3rem;margin-bottom:1rem;font-weight:400}.markdown-body h3{font-size:1.3rem;margin-top:2rem;margin-bottom:.75rem;font-weight:400}.markdown-body ul{padding-left:1.5rem}.markdown-body li{margin-bottom:.5rem}.markdown-body strong{font-weight:600;color:var(--accent)}.markdown-body blockquote{border-left:2px solid var(--border);padding-left:1.5rem;color:var(--muted);font-style:italic}.markdown-alert{padding:1rem 1.5rem;margin-bottom:2rem;border-left:4px solid var(--border);background:#8080800d;font-style:normal}.markdown-alert .markdown-alert-title{display:flex;align-items:center;gap:.5rem;font-family:var(--mono-font);font-size:.85rem;font-weight:700;text-transform:uppercase;margin-bottom:.5rem}.markdown-alert-note{border-left-color:#0969da}.markdown-alert-note .markdown-alert-title{color:#0969da}.markdown-alert-warning{border-left-color:#9a6700}.markdown-alert-warning .markdown-alert-title{color:#9a6700}.markdown-alert-important{border-left-color:#8250df}.markdown-alert-important .markdown-alert-title{color:#8250df}.markdown-alert-caution{border-left-color:#cf222e}.markdown-alert-caution .markdown-alert-title{color:#cf222e}.markdown-alert-tip{border-left-color:#1a7f37}.markdown-alert-tip .markdown-alert-title{color:#1a7f37}:root.dark .markdown-alert-note{border-left-color:#2f81f7}:root.dark .markdown-alert-note .markdown-alert-title{color:#2f81f7}:root.dark .markdown-alert-warning{border-left-color:#d29922}:root.dark .markdown-alert-warning .markdown-alert-title{color:#d29922}.markdown-alert svg{fill:currentColor!important}.project-card{padding:2.5rem 0;border-bottom:1px solid var(--border)}.project-card:first-of-type{border-top:1px solid var(--border)}.project-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;flex-wrap:wrap;gap:1rem}.project-title{font-size:1.75rem;text-decoration:none!important}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.tag{font-family:var(--mono-font);font-size:.75rem;color:var(--muted);background:transparent;padding:0;margin-right:.75rem}.tag:before{content:"#";opacity:.5;margin-right:1px}.btn{display:inline-block;font-family:var(--mono-font);font-size:.85rem;text-decoration:none;padding:.6rem 1.2rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--fg);transition:all .2s ease}.btn:hover{border-color:var(--accent);color:var(--accent);background:#8080800d}
