:root{--bg:#0c1618;--panel:#0f2224;--panel-2:#004643;--text:#faf4d3;--muted:#a7a692;--accent:#d1ac00;--accent-hover:#e3bd12;--accent-2:#f6be9a;--border:#173437;--radius:10px;--sidebar-width:240px;--content-width:980px;--space-1:6px;--space-2:12px;--space-3:20px;--space-4:40px;--space-5:60px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 var(--space-2);line-height:1.2}h1{font-size:clamp(2rem,5vw,3rem)}img,video{max-width:100%}.subtitle{color:var(--muted);max-width:60ch;font-size:1.1rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout{min-height:100vh;display:flex}.sidebar{height:100vh;width:var(--sidebar-width);gap:var(--space-4);padding:var(--space-4) var(--space-3);background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0}.brand{color:var(--text);font-size:1.25rem;font-weight:700}.sidebar nav{gap:var(--space-1);flex-direction:column;display:flex}.nav-link{border-radius:var(--radius);color:var(--muted);padding:8px 12px}.nav-link:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--panel-2);color:var(--accent)}.sidebar .contact-links{flex-direction:column;align-items:flex-start;margin-top:auto}#content{min-width:0;padding:var(--space-5) var(--space-4);flex:1}.page{max-width:var(--content-width);opacity:0;margin:0 auto;transition:opacity .25s,transform .25s;transform:translateY(8px)}.page.visible{opacity:1;transform:none}@media (width<=760px){.layout{flex-direction:column}.sidebar{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;height:auto;padding:var(--space-2) 16px;border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;position:static}.sidebar nav{flex-flow:wrap}.sidebar .contact-links{display:none}#content{padding:var(--space-4) 16px}}.btn{border-radius:var(--radius);border:1px solid #0000;padding:10px 18px;font-weight:600;transition:background .15s,border-color .15s;display:inline-block}.btn:hover{text-decoration:none}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{border-color:var(--border);color:var(--text)}.btn-secondary:hover{border-color:var(--accent)}.contact-links{gap:var(--space-2);flex-wrap:wrap;display:flex}.contact-link{color:var(--muted)}.contact-link:hover{color:var(--accent)}.tech-tags{gap:var(--space-1);margin:var(--space-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.tech-tags li{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:2px 10px;font-size:.8rem}.project-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.project-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-2px)}.project-card-image{aspect-ratio:16/9;object-fit:cover;width:100%}.project-card-body{padding:var(--space-3)}.project-card-body h3{margin-bottom:var(--space-1)}.project-card-body p{color:var(--muted);margin:0}.project-date{color:var(--accent-2);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.markdown-body h2{margin-top:var(--space-4);padding-bottom:var(--space-1);border-bottom:1px solid var(--border)}.markdown-body pre{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2);overflow-x:auto}.markdown-body code{font-family:var(--font-mono);font-size:.9em}.markdown-body :not(pre)>code{background:var(--panel-2);border-radius:4px;padding:2px 6px}.markdown-body pre code.hljs{background:0 0;padding:0}.markdown-body img{border-radius:var(--radius)}.markdown-body table{border-collapse:collapse;width:100%}.markdown-body th,.markdown-body td{border:1px solid var(--border);text-align:left;padding:6px 10px}.link-list{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.link-list .btn{padding:6px 14px;font-size:.9rem}.markdown-body figure{margin:0}.markdown-body figure img{object-fit:cover;border:1px solid var(--border);background:#fff;width:100%;height:auto;display:block}.markdown-body figcaption{margin-top:var(--space-1);color:var(--muted);text-align:center;font-size:.85rem}.markdown-body .figure-row{gap:var(--space-2);margin:var(--space-3) 0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.markdown-body .figure-row img{aspect-ratio:4/3}.markdown-body .figure-inline{float:right;width:min(260px,40%);margin:0 0 var(--space-2) var(--space-3)}.markdown-body .figure-inline img{object-fit:contain}.markdown-body h2{clear:both}.markdown-body:after{content:"";clear:both;display:block}.markdown-body h3{margin-top:var(--space-3);margin-bottom:0}.markdown-body h3+p em{color:var(--muted)}@media (width<=560px){.markdown-body .figure-inline{float:none;width:100%;max-width:360px;margin:var(--space-2) auto}}.markdown-body thead:not(:has(th:not(:empty))){display:none}.markdown-body td:first-child{white-space:nowrap}.hero{padding:var(--space-4) 0 var(--space-5)}.hero-greeting{margin:0 0 var(--space-1);color:var(--accent-2);font-size:1.1rem;font-weight:600}.hero-list{margin:var(--space-3) 0;padding:0;font-size:1.15rem;list-style:none}.hero-list li{padding-left:1.4em;line-height:1.5;position:relative}.hero-list li+li{margin-top:var(--space-1)}.hero-list li:before{content:"–";color:var(--accent-2);position:absolute;left:0}.hero-link{color:var(--text);display:inline-block}.hero-link-first{transition:font-size .2s,color .2s;display:inline-block}.hero-link:hover,.hero-link:focus-visible{text-decoration:none}.hero-link:hover .hero-link-first,.hero-link:focus-visible .hero-link-first{color:var(--accent);font-size:1.3em;font-weight:700}.featured h2{margin-bottom:var(--space-3)}.back-link{margin-bottom:var(--space-3);color:var(--muted);display:inline-block}.project-header{padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.project-links{gap:var(--space-2);margin:var(--space-2) 0;flex-wrap:wrap;display:flex}.project-links:empty{display:none}.resume-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.resume-embed{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;height:85vh}.not-found{text-align:center;padding-top:var(--space-5)}.home .hero{align-items:center;gap:var(--space-4);grid-template-columns:1.2fr 1fr;display:grid}.hero-image{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);width:100%}@media (width<=760px){.home .hero{grid-template-columns:1fr}}.section-header{margin-bottom:var(--space-4)}.empty-state{padding:var(--space-4);text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius)}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
