:root{color-scheme:light dark;--cb-paper:light-dark(#faf9fc, #17171b);--cb-ink:light-dark(#27232f, #f5f2f6);--cb-prose:light-dark(#514b5c, #c8c5cf);--cb-muted:light-dark(#72697f, #a09ba9);--cb-accent:light-dark(#b32672, #ff79c6);--cb-line:light-dark(#e6dfe9, #38303d);--cb-code:light-dark(#126b78, #8be4e5);--cb-code-surface:light-dark(#e2f2f4, #1d2b30)}html,body{margin:0;width:100%;min-height:100%;height:auto;overflow:visible}html{scroll-padding-top:84px}body{background:var(--cb-paper)}#rui-clean-preview{container:clean-blog/inline-size;width:100%;min-height:100dvh}#rui-clean-blog{--cb-gutter:40px;--cb-body-size:18.5px;position:relative;display:grid;grid-template-columns:230px minmax(0,1fr);grid-template-rows:64px auto;align-items:start;width:100%;min-height:100dvh;background:var(--cb-paper);color:var(--cb-ink);font:14px/1.5 ibm plex sans,-apple-system,BlinkMacSystemFont,sans-serif;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}#rui-clean-blog *,#rui-clean-blog *::before,#rui-clean-blog *::after{box-sizing:border-box}#rui-clean-blog h1,#rui-clean-blog h2,#rui-clean-blog h3,#rui-clean-blog p,#rui-clean-blog li{margin:0;font-family:inherit}#rui-clean-blog [hidden]{display:none!important}#rui-clean-blog a{color:inherit;text-decoration:none}#rui-clean-blog a:hover{color:var(--cb-ink)}#rui-clean-blog button{font:inherit;color:inherit}#rui-clean-blog a:focus-visible,#rui-clean-blog button:focus-visible{outline:1px solid var(--cb-accent);outline-offset:4px;border-radius:2px}#rui-clean-blog ::selection{background:var(--cb-accent);color:light-dark(#fff,#211621)}#rui-clean-blog .cb-header{grid-column:1/-1;position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;height:64px;padding:0 var(--cb-gutter);background:var(--cb-paper)}#rui-clean-blog .cb-name{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:500;letter-spacing:-.3px}#rui-clean-blog .cb-top-links{display:flex;gap:25px;color:var(--cb-muted);font-size:13px}#rui-clean-blog .cb-top-links a{display:flex;align-items:center;min-height:44px}#rui-clean-blog [data-about][aria-current]{color:var(--cb-ink)}#rui-clean-blog .cb-posts-toggle,#rui-clean-blog .cb-posts-fallback{display:none}#rui-clean-blog .cb-sidebar{position:sticky;top:64px;align-self:start;display:flex;flex-direction:column;height:calc(100dvh - 64px);min-height:0;padding:42px 18px 25px calc(var(--cb-gutter) - 12px)}#rui-clean-blog .cb-sidebar>h2{display:none}#rui-clean-blog .cb-post-list{position:relative;flex:1;min-height:0;max-height:100%;padding:2px 0;overflow-y:auto;scrollbar-width:none}#rui-clean-blog .cb-post-list::-webkit-scrollbar{display:none}#rui-clean-blog .cb-year{margin:22px 12px 8px;color:var(--cb-accent);font:13px/1.5 ibm plex mono,monospace;letter-spacing:.1px;font-variant-numeric:tabular-nums}#rui-clean-blog .cb-post-link{position:relative;display:block;padding:10px 12px;color:var(--cb-muted);font-size:16px;line-height:24px;letter-spacing:0;transition:color 220ms}#rui-clean-blog .cb-post-link[aria-current]{color:var(--cb-ink);font-weight:500}#rui-clean-blog .cb-post-link time{display:none}#rui-clean-blog .cb-current-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#rui-clean-blog .cb-reader{position:relative;display:block;min-height:0;min-width:0}#rui-clean-blog .rf-scroll{position:relative;height:auto;overflow:visible;padding:0 54px env(safe-area-inset-bottom)46px}#rui-clean-blog .rf-scroll:focus{outline:none}#rui-clean-blog .rf-feed{max-width:650px;margin:0 auto}#rui-clean-blog .rf-article{padding:42px 0 40px;border:0}#rui-clean-blog .rf-article-header{display:flex;flex-direction:column}#rui-clean-blog .rf-article-header h1{order:0;margin-bottom:13px;font-size:38px;line-height:1.18;font-weight:500;letter-spacing:-.6px;text-wrap:balance}#rui-clean-blog .rf-article-header time{order:1;margin-bottom:32px;color:var(--cb-muted);font:12px/20px ibm plex mono,monospace;letter-spacing:0}#rui-clean-blog .rf-prose{color:var(--cb-prose);font-size:var(--cb-body-size);line-height:1.65;font-weight:400;letter-spacing:0}#rui-clean-blog .rf-prose p+p{margin-top:20px}#rui-clean-blog .rf-prose a{color:var(--cb-accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--cb-accent) 45%,transparent);text-decoration-thickness:1px;text-underline-offset:4px}#rui-clean-blog .rf-prose a:hover{text-decoration-color:initial}#rui-clean-blog .rf-prose strong,#rui-clean-blog .rf-prose b{color:var(--cb-accent);font-weight:600}#rui-clean-blog .rf-prose ol,#rui-clean-blog .rf-prose ul{margin:20px 0;padding-left:23px}#rui-clean-blog .rf-prose li+li{margin-top:12px}#rui-clean-blog .rf-prose li::marker{color:var(--cb-muted);font-variant-numeric:tabular-nums}#rui-clean-blog .rf-prose code{font:.78em/1.5 ibm plex mono,monospace}#rui-clean-blog .rf-prose :not(pre)>code{padding:2px 4px;border-radius:3px;color:var(--cb-code);background:var(--cb-code-surface);overflow-wrap:anywhere}#rui-clean-blog .rf-prose pre{margin:24px 0;padding:18px 20px;overflow-x:auto;color:#f8f8f2;background:#282a36;border:0;border-radius:6px;tab-size:2}#rui-clean-blog .rf-prose pre code{padding:0;color:inherit;background:0 0;font-size:14px;line-height:1.7;white-space:pre;overflow-wrap:normal}#rui-clean-blog .rf-prose img,#rui-clean-blog .rf-prose video,#rui-clean-blog .rf-prose iframe{max-width:100%}#rui-clean-blog .rf-prose img{height:auto}#rui-clean-blog .rf-prose figure{margin:24px 0}#rui-clean-blog .rf-prose figcaption{margin-top:8px;color:var(--cb-muted);font-size:14px}#rui-clean-blog .rf-prose table{display:block;max-width:100%;overflow-x:auto;margin:24px 0;border-collapse:collapse}#rui-clean-blog .rf-prose th,#rui-clean-blog .rf-prose td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--cb-line)}#rui-clean-blog .rf-prose h2{margin:34px 0 16px;color:var(--cb-ink);font-size:26px;line-height:1.3;font-weight:500}#rui-clean-blog .rf-prose h3{margin:28px 0 12px;color:var(--cb-ink);font-size:21px;line-height:1.4;font-weight:500}#rui-clean-blog .rf-prose blockquote{margin:24px 0;padding-left:20px;border-left:2px solid var(--cb-line)}#rui-clean-blog .rf-prose hr{margin:28px 0;border:0;border-top:1px solid var(--cb-line)}#rui-clean-blog .rf-prose [id]{scroll-margin-top:84px}#rui-clean-blog .footnotes{margin-top:26px;padding-top:18px;font-size:14px;color:var(--cb-muted)}#rui-clean-blog .cb-about .rf-article-header{margin-bottom:32px}#rui-clean-blog .cb-about .rf-article-header h1{margin-bottom:0}#rui-clean-blog .cb-about .rf-prose h2{margin:34px 0 12px;font-size:16px;line-height:1.5}#rui-clean-blog .cb-about .rf-prose ul{margin:0;padding:0;list-style:none}#rui-clean-blog .cb-about .rf-prose li+li{margin-top:8px}#rui-clean-blog .cb-about .rf-prose li a{display:inline-block;padding:3px 0}#rui-clean-blog .cb-mobile-index{position:fixed;z-index:3;inset:64px 0 auto;max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain;padding:25px var(--cb-gutter)max(22px,env(safe-area-inset-bottom));background:var(--cb-paper);border-bottom:1px solid var(--cb-line)}#rui-clean-blog .cb-mobile-index .cb-year{margin:14px 0 6px}#rui-clean-blog .cb-mobile-index .cb-post-link{display:flex;justify-content:space-between;align-items:baseline;gap:22px;padding:13px 0;min-height:48px;color:var(--cb-prose)}#rui-clean-blog .cb-mobile-index .cb-post-link[aria-current]{color:var(--cb-ink)}#rui-clean-blog .cb-mobile-index .cb-post-link time{display:block;color:var(--cb-muted);font-size:12px;white-space:nowrap;font-weight:400}#rui-clean-blog .cb-mobile-footer{display:flex;gap:24px;margin-top:25px;font-size:13px;color:var(--cb-muted)}#rui-clean-blog .cb-mobile-footer a{display:flex;align-items:center;min-height:44px}@container clean-blog (max-width:850px){#rui-clean-blog { --cb-gutter: 28px; grid-template-columns: 195px minmax(0, 1fr); }
  #rui-clean-blog .cb-sidebar { padding-right: 10px; }
  #rui-clean-blog .rf-scroll { padding-left: 28px; padding-right: 32px; }
  #rui-clean-blog .rf-article-header h1 { font-size: 34px; }
}@container clean-blog (max-width:640px){#rui-clean-blog { --cb-gutter: 22px; --cb-body-size: 18px; grid-template-columns: 1fr; }
  #rui-clean-blog .cb-sidebar, #rui-clean-blog .cb-top-links { display: none; }
  #rui-clean-blog[data-enhanced] .cb-posts-toggle, #rui-clean-blog .cb-posts-fallback { display: flex; align-items: center; justify-content: flex-end; min-width: 44px; min-height: 44px; border: 0; padding: 0; background: transparent; color: var(--cb-muted); font-size: 13px; }
  #rui-clean-blog[data-enhanced] .cb-posts-fallback { display: none; }
  #rui-clean-blog .cb-posts-toggle[aria-expanded="true"], #rui-clean-blog .cb-posts-toggle:hover { color: var(--cb-ink); }
  #rui-clean-blog .cb-name { font-size: 15px; }
  #rui-clean-blog .rf-scroll { padding-left: 22px; padding-right: 22px; }
  #rui-clean-blog .rf-article { padding-top: 28px; padding-bottom: 30px; }
  #rui-clean-blog .rf-article-header h1 { margin-bottom: 12px; font-size: 32px; line-height: 1.2; letter-spacing: -.5px; }
  #rui-clean-blog .rf-article-header time { margin-bottom: 30px; }
}@container clean-blog (max-width:350px){#rui-clean-blog { --cb-gutter: 20px; --cb-body-size: 17px; }
  #rui-clean-blog .rf-scroll { padding-left: 20px; padding-right: 20px; }
  #rui-clean-blog .rf-article-header h1 { font-size: 30px; }
  #rui-clean-blog .cb-mobile-index .cb-post-link { gap: 14px; }
}@media(prefers-reduced-motion:reduce){#rui-clean-blog .cb-post-link{transition:none}}