*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.7}a{color:inherit;text-decoration:none}a:hover{opacity:.6}img{max-width:100%;display:block}ul{list-style:none;margin:0;padding:0}.shell{display:flex;align-items:flex-start;max-width:1400px;margin:0 auto}.sidebar{width:240px;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;padding:48px 24px 40px 40px}.sidebar-title{font-family:var(--font-display);font-size:19px;letter-spacing:.02em;margin:0 0 48px}.sidebar-title a{color:var(--text)}.sidebar-group-label{margin:26px 0 10px;font-family:var(--font-display);font-size:16px;font-weight:400;letter-spacing:0}.sidebar-group-label:first-child{margin-top:0}.sidebar-group-label a{color:var(--text)}.sidebar-group-label a[aria-current=page]{color:var(--accent)}.sidebar-nav ul li{margin-bottom:9px}.sidebar-nav ul li a{font-family:var(--font-display);font-size:15px;color:var(--text-muted);line-height:1.4;display:inline-block}.sidebar-nav ul li a:hover,.sidebar-nav ul li a[aria-current=page]{color:var(--text);opacity:1}.content{flex:1;min-width:0;padding:48px 48px 0}@media (max-width: 860px){.shell{flex-direction:column}.sidebar{position:static;width:100%;height:auto;padding:32px 24px 8px}.content{padding:8px 24px 0}}.site-footer{margin-top:18vh;padding:30px 0 60px;color:var(--text-muted);font-size:12px}#to-top{position:fixed;right:24px;bottom:24px;width:40px;height:40px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:16px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s ease}#to-top.visible{opacity:1;pointer-events:auto}#to-top:hover{opacity:.7}.home-hero{margin:8vh 0 20vh;max-width:42ch}.home-hero p{color:var(--text-muted);font-family:var(--font-display);font-size:22px;line-height:1.5;margin:0}.home-section{margin-bottom:18vh}.home-section-title{font-family:var(--font-nav);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:28px;display:flex;justify-content:space-between;align-items:baseline}.home-section-title a{color:var(--text-muted)}.grid{column-count:2;column-gap:20px}@media (min-width: 720px){.grid{column-count:3}}.grid-item{display:block;break-inside:avoid;margin-bottom:20px}.grid-item img{width:100%;height:auto}.grid-caption{display:block;margin-top:8px;font-family:var(--font-nav);font-size:12px;color:var(--text-muted)}.post-list{display:flex;flex-direction:column;gap:12vh}.post-list-title{font-family:var(--font-display);font-size:24px;margin:0 0 8px;font-weight:400}.post-meta{font-size:13px;color:var(--text-muted);margin-bottom:10px}.post-excerpt{color:var(--text-muted)}.tag-list{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0;font-family:var(--font-nav);font-size:12px}.tag-pill{color:var(--text-muted)}.tag-pill:before{content:"#"}.tag-pill:hover{color:var(--text)}.post-header{max-width:62ch;margin:8vh 0 14vh;text-align:left}.post-header h1{font-family:var(--font-display);font-weight:400;font-size:38px;line-height:1.25;margin:0 0 18px}.post-header .tag-list,.post-header .post-meta{justify-content:flex-start}.post-body{font-size:18px}.post-body p{max-width:62ch;margin:0 0 26px}.post-body p:has(>img:only-child){max-width:none;margin:0}.post-body img{width:100%;margin:10vh 0}.post-body h2{max-width:62ch;margin:60px 0 20px;font-family:var(--font-display);font-weight:400;text-align:left}.post-body blockquote{max-width:62ch;margin:40px 0;padding:0 0 0 20px;border-left:2px solid var(--line);border-top:none;border-right:none;border-bottom:none;color:var(--text-muted);font-family:var(--font-display);font-size:22px;font-style:italic;text-align:left}.post-cover{margin:0 0 14vh}.post-cover img{width:100%}.sidebar-subtle{font-style:italic}.profile-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-bottom:32px}.contact-email{display:inline-block;font-family:var(--font-display);font-size:26px;margin-bottom:36px}.contact-social{display:flex;flex-direction:column;gap:10px}.contact-social a{font-family:var(--font-nav);font-size:14px;color:var(--text-muted)}.contact-social a:hover{color:var(--text)}
