html,body,#root{min-height:100%;font-family:Inter,sans-serif}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--font-body: "Inter", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-bg: #ffffff;--color-surface: #ffffff;--color-text: #1f1e1a;--color-muted: #6f6b62;--color-line: #e3dfd4;--color-accent: #174740;--color-accent-hover: #0d302a;--color-inline-code-bg: #f1eee4;--color-image-bg: #eaeaf6;--color-quote: #4d4a42;--color-thumbnail-fallback: #d7d4ca;--color-bg-blob-a: white;--color-code-bg: #0d1117;--color-code-line: #2d333b;--color-code-text: #e6edf3;--color-code-comment: #7d8590;--color-code-keyword: #ff7b72;--color-code-string: #a5d6ff;--color-code-number: #79c0ff;--color-code-title: #d2a8ff;--color-code-attr: #ffa657;--color-code-meta: #8b949e;--radius-sm: .35rem;--radius-md: 12px;--radius-lg: 18px}*{box-sizing:border-box}#root{min-height:100dvh;position:relative;z-index:1}html{min-height:100%;background-color:var(--color-bg)}body{margin:0;min-height:100dvh;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);line-height:1.65}#app-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--color-bg)}a{color:var(--color-accent);text-underline-offset:.16em}a:hover{color:var(--color-accent-hover)}code{font-family:var(--font-mono);background:var(--color-inline-code-bg);border-radius:var(--radius-sm);padding:.08rem .35rem;font-size:.9em}.page{max-width:760px;margin:0 auto;padding:3rem 1.25rem 4rem}.hero{margin-bottom:3.5rem}.hero-banner-shell{position:relative;width:min(1200px,92vw);max-width:100%;margin:0 auto 1.35rem;aspect-ratio:1806 / 524;overflow:hidden;border-radius:var(--radius-md)}.hero-banner-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#ffffff9e,#fff0);transform:translate(-100%);animation:hero-skeleton-shimmer 1.3s ease-in-out infinite}.hero-banner-shell.is-loaded:before{display:none}.hero-banner{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .22s ease-out}.hero-banner-shell.is-loaded .hero-banner{opacity:1}@keyframes hero-skeleton-shimmer{to{transform:translate(100%)}}.eyebrow{margin:0 0 .6rem;color:var(--color-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}.hero h1,.article-header h1,.not-found h1{margin:0;font-size:clamp(1.6rem,5vw,2.5rem);line-height:1.08}.hero p,.article-header p,.not-found p{max-width:80ch}.posts-list h2{margin-bottom:1.2rem;font-size:1.1rem;text-transform:uppercase;letter-spacing:.06em}.posts-list ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--color-line)}.posts-list li{padding:1rem 0;border-bottom:1px solid var(--color-line)}.posts-list li a{font-size:1.25rem;text-decoration-thickness:1px}.post-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;align-items:stretch;color:inherit;text-decoration:none}.post-item:hover .post-item-title{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px}.post-item-thumbnail{width:auto;height:100%;min-height:74px;max-height:92px;aspect-ratio:16 / 9;align-self:center;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--color-line);background:var(--color-image-bg)}.post-item-thumbnail img{width:100%;height:100%;display:block;object-fit:cover}.post-item-thumbnail-fallback{width:100%;height:100%;background:linear-gradient(145deg,var(--color-thumbnail-fallback),var(--color-bg-blob-a)),var(--color-thumbnail-fallback)}.post-item-title{display:inline-block;font-size:1.25rem;text-decoration-thickness:1px}.post-item-content p{margin:.2rem 0 0;color:var(--color-muted)}.post-item-content time,.article-header time{display:inline-block;margin-top:.5rem;color:var(--color-muted);font-size:.9rem}.muted{color:var(--color-muted)}.article-page{max-width:780px}.article-header{margin-bottom:2.25rem}.article-header>a{display:inline-block;margin-bottom:1.4rem;font-size:.95rem}.article-content{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:1.5rem 1.25rem}.article-content>:first-child{margin-top:0}.article-content h1,.article-content h2,.article-content h3,.article-content h4{margin:2rem 0 .8rem;line-height:1.2}.article-content p,.article-content ul,.article-content ol,.article-content blockquote,.article-content pre{margin:1rem 0}.article-content ul,.article-content ol{padding-left:1.4rem}.article-content li+li{margin-top:.35rem}.article-content blockquote{border-left:3px solid var(--color-line);margin-left:0;padding-left:1rem;color:var(--color-quote)}.article-content blockquote p{margin:.45rem 0}.article-content pre{background:var(--color-code-bg);border:1px solid var(--color-code-line);border-radius:var(--radius-md);padding:0;overflow-x:auto}.article-content .table-scroll{overflow-x:auto;margin:1.2rem 0}.article-content .markdown-table{width:100%;border-collapse:collapse;min-width:520px;font-size:.95rem}.article-content .markdown-table th,.article-content .markdown-table td{padding:.6rem .75rem;border:1px solid var(--color-line);vertical-align:top}.article-content .markdown-table th{text-align:left;background:color-mix(in srgb,var(--color-surface) 80%,var(--color-line));font-weight:600}.article-content .markdown-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--color-surface) 92%,var(--color-line))}.article-content pre code{background:var(--color-code-bg);padding:1rem 1.1rem;font-size:.88rem;display:block;white-space:pre;color:var(--color-code-text);font-family:var(--font-mono)}.article-content .hljs{color:var(--color-code-text);background:transparent}.article-content .hljs-comment,.article-content .hljs-quote{color:var(--color-code-comment)}.article-content .hljs-keyword,.article-content .hljs-selector-tag,.article-content .hljs-literal{color:var(--color-code-keyword)}.article-content .hljs-string,.article-content .hljs-regexp{color:var(--color-code-string)}.article-content .hljs-number,.article-content .hljs-attr{color:var(--color-code-number)}.article-content .hljs-title,.article-content .hljs-function .hljs-title{color:var(--color-code-title)}.article-content .hljs-property,.article-content .hljs-attribute,.article-content .hljs-name{color:var(--color-code-attr)}.article-content .hljs-meta,.article-content .hljs-doctag{color:var(--color-code-meta)}.article-content img{display:block;margin:0 auto;max-width:100%;height:auto;border-radius:var(--radius-md);background:var(--color-image-bg)}.article-content .media-figure,.article-content .code-figure{margin:1rem 0}.article-content .code-figure pre{margin:0}.article-content figcaption{margin:.6rem auto;color:var(--color-muted);font-size:.9rem;font-style:italic;text-align:center}.article-content hr{border:0;border-top:1px solid var(--color-line);margin:1.5rem 0}.not-found{padding-top:6rem}@media(max-width:640px){.post-item{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.post-item-thumbnail{width:min(100%,340px);height:auto;aspect-ratio:16 / 9}.page{padding-top:2.1rem}.article-content{border-radius:calc(var(--radius-md) + 2px);padding:1.2rem 1rem}}
