:root{--color-bg: #F4F2ED;--color-text: #0B0B0B;--color-text-muted: #5A5F5B;--color-primary: #D45500;--color-border: #5A5F5B;--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Archivo", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", Monaco, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 3rem;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem;--space-2xl: 8rem;--max-width: 800px;--max-width-prose: 680px;--radius: 4px;--transition: .15s ease;--focus-outline: 2px solid var(--color-primary);--focus-offset: 2px}:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.skip-link{position:absolute;top:-100%;left:var(--space-md);background:var(--color-text);color:var(--color-bg);padding:var(--space-sm) var(--space-md);z-index:1000;text-decoration:none}.skip-link:focus{top:var(--space-md)}html{scroll-behavior:smooth}body{min-height:100vh;display:flex;flex-direction:column}main{flex:1}header{position:sticky;top:0;z-index:100;background:var(--color-bg);padding:var(--space-md) var(--space-lg)}nav{max-width:var(--max-width);margin:0 auto;display:flex;justify-content:space-between;align-items:center}nav .logo{font-family:var(--font-display);font-weight:700;text-decoration:none;color:var(--color-text);transition:color var(--transition);display:flex;align-items:center}.logo-wordmark{height:28px;width:auto;display:block}.logo-mark{display:none;height:28px;width:auto}nav .logo:hover{opacity:.7}nav ul{display:flex;align-items:center;gap:var(--space-lg);list-style:none}nav a{font-family:var(--font-sans);font-size:var(--text-sm);text-decoration:none;color:var(--color-text-muted);transition:color var(--transition);padding:var(--space-md) var(--space-lg);display:inline-flex;align-items:center}nav a:hover{color:var(--color-text)}nav a.active{color:var(--color-text)}nav .nav-resume{display:inline-flex;align-items:center;gap:var(--space-sm);background:var(--color-text);color:var(--color-bg);padding:var(--space-md) var(--space-lg);transition:background var(--transition)}nav .nav-resume .icon{width:24px;height:24px;filter:invert(1)}nav .nav-resume:hover{background:var(--color-primary);color:var(--color-bg)}#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:var(--space-xl) var(--space-lg)}.hero-portrait{margin-bottom:var(--space-lg)}.portrait-image{width:320px;height:320px;border-radius:50%;object-fit:cover;border:6px solid var(--color-primary)}#hero h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-sm);letter-spacing:-.02em}#hero .title{font-family:var(--font-mono);font-size:var(--text-l);color:var(--color-text-muted);margin-bottom:var(--space-md)}#hero .positioning{font-family:var(--font-sans);font-size:var(--text-lg);color:var(--color-text-muted);max-width:50ch;line-height:var(--leading-relaxed)}#about{max-width:var(--max-width);margin:0 auto;padding:var(--space-2xl) var(--space-lg)}#about h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:var(--space-lg)}#about p{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text);max-width:65ch;margin-bottom:var(--space-md)}#about p:last-child{margin-bottom:0}#work{max-width:var(--max-width);margin:0 auto;padding:var(--space-2xl) var(--space-lg)}.work-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}#work h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:0}.work-controls{display:flex;gap:var(--space-sm)}.work-controls button{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm);transition:color var(--transition)}.work-controls button:hover,.work-controls button:focus-visible{color:var(--color-primary)}.project-card{border:1px solid var(--color-border);margin-bottom:var(--space-md)}.project-card summary{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);cursor:pointer;list-style:none;transition:background var(--transition)}.project-card summary::-webkit-details-marker{display:none}.project-card summary:hover,.project-card summary:focus-visible{background:#00000005}.project-card summary:hover .project-title{color:var(--color-primary)}.project-card summary:hover:after{color:var(--color-primary)}.project-card .project-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--color-text)}.project-card .project-meta{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.project-card summary:after{content:"+";font-family:var(--font-mono);font-size:var(--text-lg);color:var(--color-text-muted);margin-left:var(--space-md);transition:transform var(--transition)}.project-card[open] summary:after{content:"−"}.project-content{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--color-border)}.project-content p{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text);max-width:65ch;margin-top:var(--space-md);margin-bottom:var(--space-md)}.project-content ul{list-style:none;margin:0;padding:0}.project-content li{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted);padding-left:var(--space-md);margin-bottom:var(--space-sm);position:relative}.project-content li:before{content:"—";position:absolute;left:0;color:var(--color-border)}.tech-stack{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.tech-stack span{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);background:#0000000d;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius)}.prose{max-width:var(--max-width-prose);margin:0 auto;padding:var(--space-xl) var(--space-lg);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);line-height:var(--leading-relaxed)}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-display);color:var(--color-text);line-height:var(--leading-tight);letter-spacing:-.01em}.prose h1{font-size:var(--text-3xl);font-weight:800;letter-spacing:-.02em;margin:var(--space-xl) 0 var(--space-md)}.prose h2{font-size:var(--text-2xl);font-weight:700;margin:var(--space-xl) 0 var(--space-md)}.prose h3{font-size:var(--text-xl);font-weight:700;margin:var(--space-lg) 0 var(--space-sm)}.prose h4{font-size:var(--text-lg);font-weight:700;margin:var(--space-lg) 0 var(--space-sm)}.prose h2 a,.prose h3 a,.prose h4 a{color:inherit;text-decoration:none}.prose p{margin:0 0 var(--space-md)}.prose a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px;transition:opacity var(--transition)}.prose a:hover{opacity:.7}.prose strong{font-weight:700;color:var(--color-text)}.prose em{font-style:italic}.prose ul,.prose ol{margin:0 0 var(--space-md);padding-left:var(--space-lg)}.prose li{margin-bottom:var(--space-xs)}.prose li::marker{color:var(--color-text-muted)}.prose li>ul,.prose li>ol{margin-top:var(--space-xs);margin-bottom:0}.prose blockquote{border-left:3px solid var(--color-primary);padding-left:var(--space-md);margin:var(--space-lg) 0;color:var(--color-text-muted);font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.prose code{font-family:var(--font-mono);font-size:.9em;background:#0000000d;padding:.125rem .375rem;border-radius:var(--radius)}.prose pre{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-md);border-radius:var(--radius);overflow-x:auto;margin:0 0 var(--space-md);line-height:var(--leading-normal)}.prose pre code{background:none;padding:0;font-size:inherit;border-radius:0}.prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-xl) 0}.prose img{max-width:100%;height:auto;border-radius:var(--radius);margin:var(--space-md) 0;display:block}.prose table{width:100%;border-collapse:collapse;margin:0 0 var(--space-md);font-size:var(--text-sm)}.prose th,.prose td{border-bottom:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);text-align:left}.prose th{font-family:var(--font-display);font-weight:700}.blog-index{max-width:var(--max-width);margin:0 auto;padding:var(--space-2xl) var(--space-lg)}.blog-index h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:800;letter-spacing:-.02em;margin-bottom:var(--space-md)}.blog-index .blog-intro{font-family:var(--font-sans);font-size:var(--text-lg);color:var(--color-text-muted);max-width:60ch;margin-bottom:var(--space-xl);line-height:var(--leading-relaxed)}.post-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-lg)}.post-card{display:flex;flex-direction:column;gap:var(--space-xs);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.post-list>li:last-child .post-card{border-bottom:none;padding-bottom:0}.post-card .post-date{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.post-card .post-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-text);text-decoration:none;transition:color var(--transition)}.post-card .post-title:hover,.post-card .post-title:focus-visible{color:var(--color-primary)}.post-card .post-description{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-muted);margin:0}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-lg)}.post-meta .post-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);list-style:none;padding:0;margin:0}.post-meta .post-tags li{background:#0000000d;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);font-size:var(--text-xs)}.back-link{display:inline-block;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;margin-top:var(--space-xl);transition:color var(--transition)}.back-link:hover,.back-link:focus-visible{color:var(--color-primary)}#writing{max-width:var(--max-width);margin:0 auto;padding:var(--space-2xl) var(--space-lg)}.writing-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-lg);gap:var(--space-md)}#writing h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin:0}.writing-all{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;transition:color var(--transition)}.writing-all:hover,.writing-all:focus-visible{color:var(--color-primary)}.contact-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-md)}@media(min-width:600px){.contact-links{gap:var(--space-lg)}}.contact-links a{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);text-decoration:none;transition:color var(--transition);display:inline-flex;align-items:center;gap:var(--space-sm)}.contact-links .icon{width:24px;height:24px}.contact-links a:hover,.contact-links a:focus-visible{color:var(--color-primary)}footer{position:sticky;bottom:0;z-index:100;background:var(--color-bg);padding:var(--space-lg)}.footer-content{max-width:var(--max-width);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg)}.footer-content>.footer-logo{height:60px;width:auto;opacity:.6}.footer-bottom{display:none}.footer-logo-mobile{height:20px;width:auto;opacity:.6}.footer-copyright{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}footer p{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}@media(max-width:600px){section[id]{scroll-margin-top:4rem}:root{--text-3xl: 2rem;--text-2xl: 1.5rem;--text-xl: 1.25rem;--space-2xl: 4rem;--space-xl: 2rem}header{padding:var(--space-sm) var(--space-md)}nav{justify-content:space-between}.logo-wordmark{display:none}.logo-mark{display:block;height:24px}nav ul{gap:var(--space-xs)}nav a{padding:var(--space-sm);font-size:var(--text-xs)}nav .nav-resume{padding:var(--space-sm);gap:var(--space-xs)}nav .nav-resume .icon{width:16px;height:16px}#hero{min-height:auto;justify-content:flex-start;padding:var(--space-md) var(--space-lg)}.hero-portrait{margin-bottom:var(--space-md)}.portrait-image{width:240px;height:240px}#hero .positioning{font-size:var(--text-base)}#about,#work{padding:var(--space-xl) var(--space-md)}.work-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.project-card summary{flex-direction:column;align-items:flex-start;gap:var(--space-xs);padding:var(--space-md)}.project-card summary:after{position:absolute;right:var(--space-md);top:var(--space-md)}.project-card summary{position:relative}.project-content{padding:var(--space-md) var(--space-lg)}body{padding-bottom:5.5rem}footer{position:fixed;left:0;right:0;bottom:0;padding:var(--space-md)}.footer-content{flex-direction:column;gap:var(--space-md);text-align:center}.footer-content>.footer-logo{display:none}.footer-copyright{display:none}.footer-bottom{display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.footer-logo-mobile{height:20px}.footer-bottom p{font-size:var(--text-xs)}.contact-links{order:1}.footer-bottom{order:2}}
