:root{color-scheme:light;--bg: #ffffff;--panel: #ffffff;--text: #0b0b0b;--muted: #4b5563;--border: #d1d5db;--link: #0b0b0b;--accent: #08783e;--accent-solid: #08783e;--accent-hover: #065c30;--on-accent: #ffffff;--subtle: #f3f5f7;--code: #f3f5f7;--article-link: #155fbd;--dot: rgba(0, 0, 0, .035);--max: 980px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--font: "Manrope", "IBM Plex Sans", "Segoe UI", "Helvetica", "Arial", sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #10161f;--panel: #17212d;--text: #eef2f6;--muted: #b2bdcb;--border: #394758;--link: #eef2f6;--accent: #79dfae;--subtle: #202c3b;--code: #202c3b;--article-link: #9ac7ff;--dot: rgba(255, 255, 255, .035);--shadow: 0 10px 30px rgba(0, 0, 0, .18)}*{box-sizing:border-box}html{min-height:100%;background-color:var(--bg)}body{min-height:100vh;margin:0;font-family:var(--font);background-color:var(--bg);color:var(--text);line-height:1.6}.layout{display:flex;min-height:100vh}.sidebar{width:240px;padding:26px 18px;border-left:6px solid var(--accent);border-right:2px solid var(--border);background:var(--panel)}.brand{margin-bottom:24px;font-weight:800;text-transform:uppercase;letter-spacing:1px}.brand a{color:var(--accent);font-size:17px;letter-spacing:1.6px}.links{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--muted)}.links a{display:flex;align-items:center;gap:10px;color:var(--text);padding:8px 10px;border-radius:10px;border:1px solid var(--border);transition:border-color .2s ease,background-color .2s ease,color .2s ease}.links a:hover{color:var(--text);border-color:var(--accent);background:#00b30014;text-decoration:none}.icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.6;fill:none}.nav-section{margin-top:16px;display:flex;flex-direction:column;gap:10px}.nav-title{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.content{flex:1}@media(max-width:900px){.layout{flex-direction:column}.sidebar{width:100%;border-left:0;border-right:0;border-bottom:2px solid var(--border)}.links{flex-direction:row;flex-wrap:wrap}.nav-section{width:100%}}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline;color:var(--accent)}.blog-post a,.blog-post a:visited{color:var(--article-link);text-decoration:underline;text-underline-offset:2px}.blog-post a:hover{color:var(--article-link)}h1,h2,h3{color:var(--text);letter-spacing:-.2px}.container{max-width:var(--max);margin:0 auto;padding:0 20px;width:100%}main .container{padding:32px 32px 54px}footer .container{padding:24px 32px 40px;color:var(--muted)}.card{border:1px solid var(--border);background:var(--panel);border-radius:12px;padding:18px;box-shadow:none}.card img{max-width:100%;height:auto;display:block;margin:16px 0}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--subtle);padding:6px 10px;border-radius:999px;color:var(--text);font-size:13px;white-space:nowrap}.content{min-width:0}.sidebar{flex-shrink:0}.hero{padding:12px 0 24px}.hero h1{font-size:clamp(1.85rem,3.4vw,2.75rem);line-height:1.18;max-width:25ch;margin:8px 0 20px}.eyebrow{color:var(--accent);font-weight:700;font-size:.9rem}.hero-description{max-width:65ch;color:var(--muted);font-size:1.1rem}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.button{display:inline-flex;align-items:center;padding:10px 16px;border:1px solid var(--border);border-radius:7px;font-weight:600}.primary,.links .resume-link{background:var(--accent-solid);color:var(--on-accent);border-color:var(--accent-solid)}.primary:hover,.links .resume-link:hover{background:var(--accent-hover);color:var(--on-accent)}.featured-project{display:flex;gap:24px;align-items:center}.project-image{width:45%;flex-shrink:0;display:block}.prose{max-width:76ch;overflow-wrap:anywhere}.prose h2{margin-top:32px}.prose img{max-width:100%;height:auto}.prose table{display:block;overflow-x:auto}.prose pre{overflow-x:auto}.contents{border-block:1px solid var(--border);padding:14px 0;margin-top:24px}.contents summary{cursor:pointer;font-weight:600}.footer-links{display:flex;gap:16px;flex-wrap:wrap;border-top:1px solid var(--border);margin-top:32px}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media(max-width:900px){.sidebar{padding:16px 20px}.brand{margin-bottom:12px}.brand a{font-size:15px}.links{gap:8px}.links a{padding:7px 9px;font-size:13px}.nav-section{display:none}main .container{padding:24px 20px 36px}footer .container{padding:20px}}@media(max-width:600px){.featured-project{flex-direction:column;align-items:stretch}.project-image{width:100%}.card{padding:16px}}.theme-toggle{font:inherit;font-size:14px;font-weight:600;border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);background:var(--panel);cursor:pointer}.theme-toggle:hover{border-color:var(--accent);background:var(--subtle)}.theme-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.theme-toggle[hidden]{display:none}.sidebar>.theme-toggle{margin-top:18px}.prose :not(pre)>code{background:var(--code);padding:2px 5px;border-radius:4px}.prose pre{padding:16px;border:1px solid var(--border);border-radius:8px}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}.prose table td,.prose table th{border-color:var(--border)!important}.sandbox-http-codes{margin:20px 0;border:1px solid var(--border);border-radius:12px;overflow:hidden}.prose .sandbox-http-codes table{display:table;width:100%;margin:0;border-collapse:collapse;font-size:.92em}.sandbox-http-codes th,.sandbox-http-codes td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.sandbox-http-codes thead{background:var(--code)}.sandbox-http-codes tbody th{min-width:145px;font-weight:600}.sandbox-http-codes tbody tr:last-child>*{border-bottom:0}.http-code{display:inline-block;padding:3px 8px;margin:0 5px 4px 0;border-radius:6px;font:700 .95em ui-monospace,monospace}.http-ok{background:#d8f3e6;color:#12533d}.http-fix{background:#fbe2e9;color:#8c2343}.http-retry{background:#fff0c9;color:#704b08}@media(max-width:600px){.sandbox-http-codes{overflow-x:auto}.prose .sandbox-http-codes table{min-width:530px}.sandbox-http-codes th,.sandbox-http-codes td{padding:10px}}@media(max-width:900px){.sidebar>.theme-toggle{margin-top:12px}}
