:root{--bg:#2b3856;--fg:#fff;--fg-hover:#ffffffc7;--fg-quiet:#ffffffd1;--rule-soft:1px solid #ffffff2e;--rule-medium:2px solid #fff}.top-bar{background:var(--bg)}html{scroll-snap-type:none;scroll-behavior:auto;scroll-padding-top:0}.page{width:100%;max-width:760px;padding-inline:max(24px, env(safe-area-inset-left)) max(24px, env(safe-area-inset-right));min-height:calc(100vh - var(--top-bar-h));flex-direction:column;margin:0 auto;display:flex}.page>main{flex:1}.blog-header{border-bottom:var(--rule-medium);padding:56px 0 32px}.blog-title{font-size:40px;font-weight:700;line-height:48px}.blog-subtitle{color:var(--fg-quiet);margin-top:8px}.post-list{padding:8px 0 48px}.post-row{border-bottom:var(--rule-soft);padding:28px 0}.post-row-date{color:var(--fg-quiet);font-size:14px}.post-row-title{margin-top:6px;font-size:26px;font-weight:700;line-height:34px}.post-row-link{color:var(--fg);text-decoration:none}.post-row-link:hover,.post-row-link:focus-visible{color:var(--fg-hover);text-decoration:underline}.post-row-desc{color:var(--fg-quiet);max-width:60ch;margin-top:8px}.post-header{border-bottom:var(--rule-medium);padding:56px 0 24px}.post-title{font-size:36px;font-weight:700;line-height:44px}.post-meta{color:var(--fg-quiet);margin-top:12px;font-size:14px}.post-meta .sep{margin:0 8px}.prose{padding:32px 0 64px;font-size:18px;line-height:30px}.prose h2{margin:40px 0 12px;font-size:26px;font-weight:700;line-height:34px}.prose h3{margin:32px 0 10px;font-size:21px;font-weight:700;line-height:28px}.prose p{margin:0 0 20px}.prose a{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.prose a:hover,.prose a:focus-visible{color:var(--fg-hover)}.prose ul,.prose ol{margin:0 0 20px;padding-left:24px}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li{margin-bottom:8px}.prose blockquote{color:var(--fg-quiet);border-left:3px solid #fff6;margin:24px 0;padding-left:20px}.prose code{background:#ffffff1f;border-radius:3px;padding:2px 6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.85em}.prose pre{background:#00000047;border-radius:4px;margin:0 0 20px;padding:16px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.page-footer{border-top:var(--rule-soft);color:var(--fg-quiet);padding:24px 0;font-size:14px}@media (max-width:768px){.blog-header,.post-header{padding-top:36px}.blog-title{font-size:32px;line-height:40px}.post-title{font-size:28px;line-height:36px}}
