:root,[data-theme="light"]{--bg: #fafaf7;--fg: #1a1a1a;--muted: #666666;--accent: #a04040;--border: #e5e5e0;--code-bg: #f0efe9}[data-theme="dark"]{--bg: #0e0e0e;--fg: #e8e8e3;--muted: #8a8a85;--accent: #e89a6c;--border: #2a2a27;--code-bg: #1a1a18}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}img,svg,video{max-width:100%;height:auto}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}a{color:inherit}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/JetBrainsMono-Regular.woff2") format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/JetBrainsMono-SemiBold.woff2") format("woff2")}html{background:var(--bg);color:var(--fg);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:16px;line-height:1.65}body{min-height:100vh;display:flex;flex-direction:column}main{flex:1 0 auto;max-width:65ch;width:100%;margin:0 auto;padding:2rem 1.25rem 3rem}h1,h2,h3,h4{font-weight:600;line-height:1.3;margin:2rem 0 0.75rem}h1{font-size:1.5rem;margin-top:0}h2{font-size:1.25rem}h3{font-size:1.05rem}p,ul,ol{margin:0 0 1rem}a{color:var(--accent);text-underline-offset:0.2em}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}hr{border:none;border-top:1px solid var(--border);margin:2rem 0}code{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:0.95em;background:var(--code-bg);padding:0.1em 0.35em;border-radius:2px}pre{background:var(--code-bg);padding:0.75rem 1rem;overflow-x:auto;border-radius:2px}pre code{background:none;padding:0}.muted{color:var(--muted)}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;background:var(--bg);color:var(--accent);padding:0.5rem 0.75rem;border:1px solid var(--accent);z-index:100}.site-header{max-width:65ch;width:100%;margin:0 auto;padding:1.25rem 1.25rem 0;display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.site-title{font-weight:600;text-decoration:none;color:var(--fg)}.site-nav{display:flex;gap:1rem;flex:1;flex-wrap:wrap}.site-nav a{color:var(--muted);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--accent)}.theme-toggle{color:var(--muted);line-height:1}.theme-toggle:hover{color:var(--accent)}.site-footer{max-width:65ch;width:100%;margin:0 auto;padding:2rem 1.25rem;border-top:1px solid var(--border);color:var(--muted);font-size:0.9rem}.site-footer p{margin:0}.project-list{list-style:none;padding:0;margin:0}.project-list>li+li{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.project-list h2{margin:0 0 0.25rem;font-size:1.1rem}.project-list .tech{color:var(--muted);font-size:0.9rem}.resume .resume-meta{color:var(--muted);margin-bottom:2rem}.resume .role{margin-bottom:1.5rem}.resume .role-header{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:0.25rem}.resume .role-header h3{margin:0;font-size:1rem}.resume .role-dates{color:var(--muted);font-size:0.9rem}.resume .skills dt{font-weight:600;margin-top:0.75rem}.resume .skills dd{margin:0 0 0.25rem;color:var(--muted)}
