@import"https://fonts.googleapis.com/css2?family=Instrument+Serif&family=Source+Serif+4:wght@300;400;500;600&family=Geist:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--font-heading: "Instrument Serif", Georgia, serif;--font-serif: "Source Serif 4", Georgia, serif;--font-body: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--black: #0A0A0A;--gray-900: #1A1A1A;--gray-700: #404040;--gray-500: #737373;--gray-300: #D4D4D4;--gray-200: #E5E5E5;--gray-100: #F5F5F5;--white: #FAFAFA;--pure-white: #FFFFFF;--accent: #2563EB;--accent-hover: #1D4ED8;--accent-light: #EFF6FF;--max-width: 920px;--max-width-wide: 1200px;--header-height: 56px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px rgba(0,0,0,.07);--radius: 6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);color:var(--gray-900);background:var(--white);line-height:1.7;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto;display:block}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.container-wide{max-width:var(--max-width-wide);margin:0 auto;padding:0 24px}.site-header{position:sticky;top:0;height:var(--header-height);background:#fafafad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--gray-200);z-index:100;display:flex;align-items:center}.site-header .container-wide{display:flex;align-items:center;justify-content:space-between;width:100%}.site-logo{font-size:15px;font-weight:700;color:var(--black);text-decoration:none;letter-spacing:-.02em}.site-logo:hover{text-decoration:none;color:var(--black)}.site-nav{display:flex;gap:28px;list-style:none}.site-nav a{font-size:14px;font-weight:500;color:var(--gray-500);text-decoration:none;transition:color .15s}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--black);text-decoration:none}.site-footer{margin-top:80px;padding:32px 24px;border-top:1px solid var(--gray-200);text-align:right;font-size:12px;color:#e2e2e2}.site-footer p{color:inherit}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:400;line-height:1.3;letter-spacing:-.01em;color:var(--black)}h1{font-size:2.5rem;margin-bottom:16px}h2{font-size:1.75rem;margin-bottom:12px}h3{font-size:1.35rem;margin-bottom:8px}p{margin-bottom:16px;color:var(--gray-700)}.prose{font-family:var(--font-serif);font-weight:400}.prose h2{margin-top:40px;margin-bottom:12px}.prose h3{margin-top:32px;margin-bottom:8px}.prose p{margin-bottom:20px}.prose ul,.prose ol{margin-bottom:20px;padding-left:24px;color:var(--gray-700)}.prose li{margin-bottom:6px}.prose blockquote{border-left:3px solid var(--gray-300);padding-left:16px;margin:24px 0;color:var(--gray-500);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--gray-100);padding:2px 6px;border-radius:3px}.prose pre{font-family:var(--font-mono);font-size:.875rem;background:var(--gray-900);color:var(--gray-200);padding:20px;border-radius:var(--radius);overflow-x:auto;margin:24px 0}.prose pre code{background:none;padding:0;color:inherit}.prose img{border-radius:var(--radius);margin:24px 0}.prose a{text-decoration:underline;text-underline-offset:3px}.prose hr{border:none;border-top:1px solid var(--gray-200);margin:40px 0}.card{display:grid;grid-template-columns:80px 1fr auto;align-items:start;gap:16px;padding:20px 0;border-bottom:1px solid var(--gray-200);text-decoration:none;transition:background .15s}.card:after{content:"→";font-size:1.2rem;color:var(--gray-300);flex-shrink:0;padding-top:4px;transition:color .15s,transform .15s}.card:hover:after{color:var(--accent);transform:translate(4px)}.card:hover{text-decoration:none}.card-date{font-size:13px;color:var(--gray-500);font-family:var(--font-mono);padding-top:2px}.card-content{min-width:0}.card-title{font-family:var(--font-heading);font-size:1.2rem;font-weight:400;color:var(--black);line-height:1.4}.card:hover .card-title{color:var(--accent)}.card-description{font-family:var(--font-serif);font-size:14px;color:var(--gray-500);line-height:1.6;margin-top:4px}.card-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.tag{font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px;background:var(--gray-100);color:var(--gray-500)}.project-grid{display:grid;grid-template-columns:1fr;gap:24px;margin-top:32px}@media(min-width:640px){.project-grid{grid-template-columns:1fr 1fr}}.project-card{display:block;border:1px solid var(--gray-200);border-radius:var(--radius);overflow:hidden;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}.project-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}.project-card-image{width:100%;aspect-ratio:16 / 10;object-fit:cover;display:block;border-bottom:1px solid var(--gray-200);transition:transform .3s}.project-card:hover .project-card-image{transform:scale(1.03)}.project-card-body{padding:20px}.project-card-title{font-family:var(--font-heading);font-size:1.15rem;font-weight:400;color:var(--black);margin-bottom:6px}.project-card-description{font-family:var(--font-serif);font-size:14px;color:var(--gray-500);line-height:1.6}.project-card-tech{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap}.section-header{margin-bottom:8px}.section-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-500)}.hero{padding:64px 0 48px}.hero-inner{display:flex;align-items:center;gap:32px}.hero-avatar{width:175px;height:175px;border-radius:50%;object-fit:cover;object-position:center 12%;flex-shrink:0}.hero h1{font-size:3rem;letter-spacing:-.02em;margin-bottom:14px}.hero-subtitle{font-family:var(--font-serif);font-size:1.15rem;font-weight:300;color:var(--gray-500);line-height:1.8;max-width:640px}.post-header{padding:48px 0 32px}.post-meta{font-size:13px;color:var(--gray-500);font-family:var(--font-mono);margin-bottom:12px}.post-title{font-size:2rem;letter-spacing:-.03em;margin-bottom:8px}.post-description{font-family:var(--font-serif);font-size:1.05rem;font-weight:300;color:var(--gray-500);line-height:1.7}@media(max-width:640px){.hero-inner{gap:20px}.hero-avatar{width:120px;height:120px}.hero h1,h1{font-size:1.75rem}h2{font-size:1.25rem}.site-nav{gap:20px}.site-nav a{font-size:13px}}
