:root{--bg: #fbf7ef;--bg-soft: #f2ebdc;--text: #1f1a16;--muted: #74695c;--line: #d8cdbd;--link: #4863b8;--link-hover: #334fa8;--code-bg: #e3e7ec;--shadow: 0 8px 30px rgba(46, 35, 21, .07)}html[data-theme=dark]{--bg: #111315;--bg-soft: #181b1e;--text: #ece7dd;--muted: #a69b8f;--line: #2c3137;--link: #8eafff;--link-hover: #b2c9ff;--code-bg: #272c33;--shadow: 0 8px 24px rgba(0, 0, 0, .32);--astro-code-color: var(--shiki-dark);--astro-code-bg: var(--shiki-dark-bg)}html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}*{margin:0;padding:0;box-sizing:border-box}body{background:radial-gradient(circle at 0% 0%,var(--bg-soft),var(--bg) 45%);color:var(--text);font-family:DM Sans,sans-serif;line-height:1.72;font-size:18px;min-height:100vh}.site-header{max-width:920px;margin:2.25rem auto 0;padding:0 1.5rem}.site-nav{border:1px solid var(--line);border-radius:12px;padding:.72rem .95rem;display:flex;align-items:center;justify-content:space-between;background:color-mix(in oklab,var(--bg) 86%,transparent);box-shadow:var(--shadow);backdrop-filter:blur(3px)}.site-title{font-weight:700;letter-spacing:.015em;font-size:1.2rem;color:var(--text);border-bottom:none}.nav-links{display:flex;align-items:center;gap:.9rem}.nav-links a,.nav-links button{color:var(--muted);text-decoration:none;font-size:.92rem;border-radius:999px;border:1px solid transparent;padding:.18rem .6rem;transition:all .14s ease}.social-link{border-bottom:none;padding:.18rem .35rem;line-height:0}.social-link svg{width:.95rem;height:.95rem;display:block}.nav-links a:hover,.nav-links button:hover{color:var(--text);border-color:var(--line)}.nav-links a.active{color:var(--text);border-color:var(--line);background:var(--bg-soft)}#theme-toggle{cursor:pointer;background:none}article{max-width:920px;margin:1.5rem auto 3rem;padding:0 1.5rem}h1,h2,h3,h4,h5,h6{color:var(--text);line-height:1.25;font-weight:700;margin-top:2rem;margin-bottom:.75rem}h1{font-size:2rem;margin-top:.6rem}h2{font-size:1.45rem;margin-top:2.3rem}h3{font-size:1.12rem}p{margin-bottom:1.08rem}a{color:var(--link);text-decoration:none;border-bottom:1px solid transparent;transition:color .14s ease,border-color .14s ease}a:hover{color:var(--link);border-color:var(--link)}pre{background:var(--code-bg);padding:1rem;overflow-x:auto;border-radius:10px;margin:1.2rem 0;border:1px solid var(--line)}pre code{background:transparent;padding:0;border:none}code{background:var(--code-bg);border:1px solid var(--line);border-radius:6px;padding:.15em .38em;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}blockquote{border-left:3px solid var(--line);padding-left:.95rem;margin:1.2rem 0;color:var(--muted)}ul,ol{margin:1.15rem 0;padding-left:1.35rem}li{margin-bottom:.45rem}.post-list{list-style:none;padding:0;margin:1.2rem 0}.post-list li{padding:.8rem 0;border-bottom:1px solid var(--line)}.post-list li:last-child{border-bottom:none}.post-list a{color:var(--link);text-decoration:none;border-bottom:none;display:block}.post-list a:hover h3{color:var(--link)}.about-section{max-width:820px;margin:0 auto;text-align:left}.work-history{text-align:left;list-style:none;padding-left:0;margin:1rem auto 1.2rem}.work-history li{margin-bottom:.75rem}.work-year{color:var(--muted);display:inline-block;width:4.5rem}.recent-blog-list li{padding:.6rem 0}.recent-blog-list a{border-bottom:none;display:grid;grid-template-columns:120px minmax(0,1fr);gap:1rem;align-items:baseline;color:var(--link)}.recent-blog-list a:hover{color:var(--link-hover);border-bottom:none}.recent-blog-list .post-date{margin:0}.post-list h3{margin:0 0 .2rem}.post-date{color:var(--muted);font-size:.9rem}.compact-list li{padding:.6rem 0}hr{border:none;border-top:1px solid var(--line);margin:2rem 0}img{max-width:100%;height:auto;border-radius:10px;margin:1rem 0;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;margin:1.2rem 0}th,td{padding:.68rem;text-align:left;border-bottom:1px solid var(--line)}th{background:var(--bg-soft)}strong{font-weight:700}@media (max-width: 640px){body{font-size:17px}.site-header,article{padding:0 1rem}.site-nav{flex-wrap:wrap;gap:.7rem}.nav-links{gap:.45rem;width:100%;justify-content:space-between}h1{font-size:1.7rem}}
