@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/fonts/roboto-v30-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:400;src:url(/fonts/roboto-v30-latin-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/fonts/roboto-v30-latin-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:500;src:url(/fonts/roboto-v30-latin-500italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/fonts/roboto-v30-latin-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:700;src:url(/fonts/roboto-v30-latin-700italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:normal;font-weight:400;src:url(/fonts/eb-garamond-v27-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:italic;font-weight:400;src:url(/fonts/eb-garamond-v27-latin-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:normal;font-weight:500;src:url(/fonts/eb-garamond-v27-latin-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:italic;font-weight:500;src:url(/fonts/eb-garamond-v27-latin-500italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:normal;font-weight:600;src:url(/fonts/eb-garamond-v27-latin-600.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:italic;font-weight:600;src:url(/fonts/eb-garamond-v27-latin-600italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:normal;font-weight:700;src:url(/fonts/eb-garamond-v27-latin-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:italic;font-weight:700;src:url(/fonts/eb-garamond-v27-latin-700italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:normal;font-weight:800;src:url(/fonts/eb-garamond-v27-latin-800.woff2) format("woff2")}@font-face{font-display:swap;font-family:EB Garamond;font-style:italic;font-weight:800;src:url(/fonts/eb-garamond-v27-latin-800italic.woff2) format("woff2")}:root{--max-width: 935px;--font-sans: "Roboto", system-ui, -apple-system, sans-serif;--font-serif: "EB Garamond", Georgia, serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--bg: #fff;--bg-secondary: #f9f9f9;--text: #1d1d1f;--text-secondary: #6e6e73;--border: #d2d2d7;--link: #0066cc;--link-hover: #004499;--code-bg: #f4f4f4;--header-bg: rgba(255, 255, 255, .8)}[data-theme=dark]{--bg: #1d1d1f;--bg-secondary: #2d2d2f;--text: #f5f5f7;--text-secondary: #a1a1a6;--border: #424245;--link: #6bb3ff;--link-hover: #8ec5ff;--code-bg: #2d2d2f;--header-bg: rgba(29, 29, 31, .8)}*,*:before,*:after{box-sizing:border-box}html{font-size:22px;scroll-behavior:smooth}body{margin:0;padding:0;font-family:var(--font-serif);background:var(--bg);color:var(--text);line-height:1.4;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:1.3;margin:1em 0 .4em}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.375rem}h4{font-size:1.125rem}p{margin:.5em 0}a{color:var(--link);text-decoration:none;transition:color .2s ease}a:hover{color:var(--link-hover);text-decoration:underline}code{font-family:var(--font-mono);font-size:.9em;background:var(--code-bg);padding:.2em .4em;border-radius:4px}pre{background:var(--code-bg);padding:1rem;border-radius:8px;overflow-x:auto;margin:1.5em 0}pre code{background:none;padding:0;font-size:.875rem;line-height:1}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}header{position:sticky;top:0;z-index:100;background:var(--header-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:1rem 0}header .container{display:flex;justify-content:space-between;align-items:center}.logo{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;color:var(--text);text-decoration:none}.logo:hover{color:var(--text);text-decoration:none}nav{display:flex;align-items:center;gap:1.5rem}nav a{color:var(--text-secondary);font-size:.9rem;font-weight:500}nav a:hover{color:var(--text);text-decoration:none}.theme-toggle{background:none;border:none;cursor:pointer;padding:.5rem;color:var(--text-secondary);font-size:1.25rem;line-height:1;transition:color .2s ease}.theme-toggle:hover{color:var(--text)}main{padding:2rem 0 4rem;min-height:calc(100vh - 200px)}article{margin-bottom:3rem}.post-header{margin-bottom:2rem}.post-title{margin:0 0 .5rem}.post-meta{color:var(--text-secondary);font-size:.9rem}.post-content{font-size:1.0625rem}.post-content h2{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border)}.toc{display:block;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:1rem 1.5rem;margin-bottom:2rem}.toc-title{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin:0;display:flex;align-items:center;gap:.5rem;cursor:pointer}.toc:not(.collapsed) .toc-title{margin-bottom:.75rem}.toc-title:before{content:"▼";font-size:.75rem;transition:transform .2s ease}.toc.collapsed .toc-title:before{transform:rotate(-90deg)}.toc.collapsed .toc-list{display:none}.toc-list{margin:0;padding-left:1.25rem;list-style:none}.toc-list li{margin:.4rem 0}.toc-list a{color:var(--text-secondary);font-size:.9rem}.toc-list a:hover{color:var(--link)}.toc-list ul{padding-left:1rem;margin:.25rem 0}.post-list{list-style:none;padding:0;margin:0}.post-list-item{padding:1.5rem 0;border-bottom:1px solid var(--border)}.post-list-item:first-child{padding-top:0}.post-list-item h2{font-size:1.375rem;margin:0 0 .5rem}.post-list-item h2 a{color:var(--text)}.post-list-item h2 a:hover{color:var(--link);text-decoration:none}.post-list-item .post-meta{margin:0}footer{border-top:1px solid var(--border);padding:1rem 0}.back-to-top{display:block;text-align:right;color:var(--text-secondary);font-size:1.25rem;text-decoration:none;line-height:1}.back-to-top:hover{color:var(--text)}.embed.video-player{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin:1.5em 0;border-radius:8px}.embed.video-player iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}@media(max-width:640px){h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}.container{padding:0 1rem}nav{gap:1rem}}
