:root{--bg: #faf9f5;--fg: #1c1b18;--muted: #6d6a62;--accent: #b3502a;--accent-soft: #f4e6de;--border: #e5e1d6;--code-bg: #fbfaf7;--card-bg: #fffdf9;--max: 44rem;--header-bg: rgba(250, 249, 245, .92)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:Charter,Georgia,Times New Roman,serif;font-size:1.07rem;line-height:1.78;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(rgba(27,25,20,.025) 1px,transparent 0);background-size:22px 22px;pointer-events:none;z-index:0}main{position:relative;z-index:1}code,pre,.mono{font-family:SF Mono,Fira Code,Cascadia Code,Menlo,monospace}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover, #8f3d1f);text-decoration:underline}main{max-width:var(--max);margin:0 auto;padding:2.5rem 1.25rem 4rem}.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border);background:var(--header-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.site-header nav{max-width:var(--max);margin:0 auto;padding:1rem 1.25rem;display:flex;align-items:baseline;justify-content:space-between}.brand{font-size:1.12rem;font-weight:400;color:var(--fg);letter-spacing:.01em}.brand b{color:var(--accent);font-weight:400}.nav-links a{margin-left:1.2rem;color:var(--muted);font-size:.92rem;font-family:SF Mono,Menlo,monospace}.nav-links a:hover{color:var(--accent);text-decoration:none}.site-footer{border-top:1px solid var(--border);padding:1.6rem 1.25rem;text-align:center;color:var(--muted);font-size:.84rem;font-family:SF Mono,Menlo,monospace;position:relative;z-index:1}.site-footer a{color:var(--muted);text-decoration:underline}.hero{padding:3.2rem 0 .5rem}.hero h1{font-size:2.7rem;line-height:1.12;margin:0 0 1.1rem;letter-spacing:-.015em}.hero .kicker{font-family:SF Mono,Menlo,monospace;color:var(--accent);font-size:.85rem;text-transform:uppercase;letter-spacing:.16em;margin:0 0 .85rem;display:flex;align-items:center;gap:.6rem}.hero .kicker:before{content:"";display:inline-block;width:2.2rem;height:1px;background:var(--accent)}.hero p{color:var(--muted);font-size:1.12rem;margin:0 0 1rem}.hero p strong{color:var(--fg);font-weight:600}.section{margin:3.8rem 0}.section>h2{font-size:1rem;font-family:SF Mono,Menlo,monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:.55rem;margin:0 0 1.3rem;font-weight:400}.skills-grid{display:flex;flex-wrap:wrap;gap:.55rem}.skill{border:1px solid var(--border);padding:.32rem .8rem;border-radius:999px;font-family:SF Mono,Menlo,monospace;font-size:.8rem;color:var(--muted);background:var(--card-bg);transition:border-color .15s ease,color .15s ease}.skill:hover{border-color:var(--accent);color:var(--accent)}.project-card{border:1px solid var(--border);border-radius:12px;background:var(--card-bg);padding:1.7rem 1.8rem;margin-bottom:1rem;box-shadow:0 1px 2px #1c1b1808,0 4px 14px #1c1b180a;transition:box-shadow .2s ease,transform .2s ease}.project-card:hover{box-shadow:0 2px 4px #1c1b180d,0 8px 24px #1c1b1814;transform:translateY(-1px)}.project-card h3{margin:0 0 .3rem;font-size:1.3rem}.project-card h3 a{color:var(--fg)}.project-card h3 a:hover{color:var(--accent);text-decoration:none}.project-card .p-meta{font-family:SF Mono,Menlo,monospace;font-size:.78rem;color:var(--accent);margin-bottom:.8rem}.project-card p{margin:0 0 .9rem;color:var(--muted);font-size:.98rem}.project-card a.goto{font-family:SF Mono,Menlo,monospace;font-size:.85rem;text-decoration:none}.project-card a.goto:hover{text-decoration:underline}.post-list{list-style:none;padding:0;margin:0}.post-list li{padding:1.5rem 0;border-bottom:1px solid var(--border)}.post-list li:first-child{padding-top:.5rem}.post-list .p-date{font-family:SF Mono,Menlo,monospace;font-size:.78rem;color:var(--muted);display:block;margin-bottom:.3rem}.post-list h3{margin:0 0 .35rem;font-size:1.32rem;line-height:1.3}.post-list h3 a{color:var(--fg)}.post-list h3 a:hover{color:var(--accent);text-decoration:none}.post-list .p-desc{color:var(--muted);margin:0 0 .55rem;font-size:.98rem}.tag{font-family:SF Mono,Menlo,monospace;font-size:.72rem;color:var(--accent);border:1px solid var(--border);border-radius:999px;padding:.12rem .62rem;margin-right:.35rem;display:inline-block}.tag:hover{border-color:var(--accent)}.article h1{font-size:2.3rem;line-height:1.18;margin:0 0 .8rem;letter-spacing:-.012em}.article .meta{font-family:SF Mono,Menlo,monospace;font-size:.8rem;color:var(--muted);margin-bottom:2.8rem}.article h2{font-size:1.5rem;margin-top:2.6rem}.article h3{font-size:1.18rem;margin-top:2rem}.article pre.astro-code{border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.3rem;overflow-x:auto;font-size:.86rem;line-height:1.65;box-shadow:0 1px 2px #1c1b1808}.article code{background:var(--accent-soft);color:#7a3418;padding:.12em .4em;border-radius:5px;font-size:.86em}.article pre code{background:none;padding:0;color:inherit}.article blockquote{border-left:3px solid var(--accent);margin:1.6rem 0;padding:.3rem 0 .3rem 1.3rem;color:var(--muted);font-style:italic}.article img{max-width:100%;border-radius:10px;border:1px solid var(--border)}.article table{border-collapse:collapse;width:100%;font-size:.92rem}.article th,.article td{border:1px solid var(--border);padding:.5rem .8rem;text-align:left}.article th{background:var(--code-bg);font-family:SF Mono,Menlo,monospace;font-size:.8rem}.back-link{display:inline-block;font-family:SF Mono,Menlo,monospace;font-size:.85rem;margin-bottom:2rem;color:var(--muted)}.back-link:hover{color:var(--accent)}.page-title{font-size:2.1rem;margin:1rem 0 2rem}.empty-note{color:var(--muted);font-style:italic}@media(max-width:640px){.hero h1{font-size:2.05rem}main{padding:1.6rem 1rem 3rem}.nav-links a{margin-left:.8rem}.article h1{font-size:1.8rem}}@media(prefers-color-scheme:dark){:root{--bg: #16140f;--fg: #e9e5da;--muted: #a29d8f;--accent: #e0885c;--accent-hover: #eda97f;--accent-soft: #3a2a1e;--border: #2f2c24;--code-bg: #1c1a15;--card-bg: #1e1c16;--header-bg: rgba(22, 20, 15, .92)}.article code{color:#eda97f}body:before{background-image:radial-gradient(rgba(233,229,218,.03) 1px,transparent 0)}}.astro-code,.astro-code span{color:var(--shiki-light)!important;background-color:transparent}@media(prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important}.astro-code{background-color:var(--shiki-dark-bg)!important}}
