*,*::before,*::after{box-sizing:border-box}*{margin:0}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--color-primary:#004C7E;--color-primary-dark:#003a61;--color-accent:#b54600;--color-accent-green:#4f7705;--color-bg:#fff;--color-text:#1a1a1a;--color-text-muted:#666;--color-border:#e5e5e5;--color-code-bg:#f5f5f5;--color-accent-bg:#f6decd;--max-width:720px;--max-width-wide:1280px;--spacing:2rem;--spacing-sm:1rem}@media(prefers-color-scheme:dark){:root{--color-bg:#0d1117;--color-text:#fff;--color-text-muted:#fff;--color-primary:#58a6ff;--color-primary-dark:#79b8ff;--color-border:#30363d;--color-code-bg:#161b22;--color-accent-bg:#1c1510}}html{font-size:100%;line-height:1.7;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;top:-100%;left:0;background:#004c7e;color:#fff;padding:.5rem 1rem;z-index:100;text-decoration:none}.skip-link:focus{top:0}:focus{outline:3px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.site-header :focus-visible,.site-footer :focus-visible{outline-color:#fff;box-shadow:0 0 0 2px #000,0 0 0 5px #fff}h1,h2,h3,h4,h5,h6{line-height:1.25;margin-bottom:.5em;font-weight:600;letter-spacing:-.02em}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin-bottom:1.25rem}a{color:var(--color-primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .15s ease}a:hover{color:var(--color-primary-dark)}strong{font-weight:600}.site-header{background:#000}.site-nav{max-width:var(--max-width-wide);margin:0 auto;padding:var(--spacing-sm)var(--spacing);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.site-logo{display:flex;align-items:center}.site-logo img{height:40px;width:auto}.nav-links{list-style:none;padding:0;display:flex;gap:2rem}.nav-links a{text-decoration:none;font-weight:500;color:#fff;display:inline-block;padding:.5rem 0;min-height:44px;line-height:1.5}.nav-links a:hover{color:#ccc}.nav-links a[aria-current=page]{color:#fff;text-decoration:underline;text-underline-offset:4px}main{flex:1;max-width:var(--max-width-wide);margin:0 auto;padding:var(--spacing);width:100%}.site-footer{background:#000;text-align:center;padding:var(--spacing);color:#fff;font-size:.875rem}.site-footer p{max-width:var(--max-width-wide);margin:0 auto}.site-footer a{color:#fff;display:inline-block;padding:.25rem 0;min-height:24px}.site-footer a:hover{color:#fff}.footer-links{list-style:none;padding:0;margin:1rem 0 0;display:flex;justify-content:center;gap:1rem}.footer-links a{display:flex;align-items:center;justify-content:center;padding:.5rem;min-width:44px;min-height:44px}.footer-links img{filter:grayscale(1)brightness(0)invert(1);transition:filter .15s ease}.footer-links a:hover img{filter:none}.breadcrumbs{margin-bottom:1.5rem;font-size:.875rem}.breadcrumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.breadcrumbs li{display:flex;align-items:center;gap:.5rem}.breadcrumbs li:not(:last-child)::after{content:"/";color:var(--color-text-muted)}.breadcrumbs a{color:var(--color-text-muted);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.breadcrumbs a:hover{color:var(--color-primary)}.breadcrumbs li:last-child span{color:var(--color-text)}.intro{margin-bottom:3rem}.intro h1{margin-bottom:.75rem;color:var(--color-primary)}.intro p{color:var(--color-text-muted);font-size:1.125rem;margin-bottom:0}.post-list-compact{list-style:none;padding:0;margin:0 0 1.5rem}.post-list-compact li{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.post-list-compact li:first-child{border-top:1px solid var(--color-border)}.post-list-compact .post-info{flex:1;min-width:0}.post-list-compact .post-info a{min-height:44px;display:inline-flex;align-items:center}.post-list-compact .post-info p{margin:.25rem 0 0;color:var(--color-text-muted);font-size:.875rem}.post-list-compact time{color:var(--color-text-muted);font-size:.875rem;white-space:nowrap;padding-top:.625rem}.see-all{display:inline-flex;align-items:center;min-height:44px}@media(max-width:480px){.post-list-compact li{flex-direction:column;align-items:flex-start;gap:.25rem}.post-list-compact time{padding-top:0}}.post-list{list-style:none;padding:0}.post-item{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}.post-item:last-child{border-bottom:none;margin-bottom:1rem}.post-item h2,.post-item h3{margin-bottom:.25rem}.post-item h2 a,.post-item h3 a{color:var(--color-primary)}.post-item time{color:var(--color-text-muted);font-size:.875rem;display:block;margin-bottom:.5rem}.post-item p{margin-bottom:0;color:var(--color-text-muted)}.post-header{margin-bottom:2rem}.post-header h1{margin-bottom:.75rem}.post-meta{color:var(--color-text-muted);font-size:.875rem;display:flex;flex-wrap:wrap;gap:.5rem 1rem}.post-tags a{text-decoration:none;color:var(--color-primary);font-weight:500}.post-tags a:hover{text-decoration:underline}.post-tags a::before{content:"#"}.post-content{margin-bottom:2rem}.post-content h2{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.post-content h2:first-child{margin-top:0;padding-top:0;border-top:none}.post-content h3{margin-top:2rem}.post-content ul,.post-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.post-content li{margin-bottom:.5rem}.post-content li::marker{color:var(--color-primary)}.post-content blockquote{border-left:3px solid var(--color-primary);padding-left:1.25rem;margin:1.5rem 0;color:var(--color-text-muted);font-style:italic}.post-content code{font-family:var(--font-mono);font-size:.875em;background:var(--color-code-bg);padding:.2rem .4rem;border-radius:4px}.post-content pre{background:var(--color-code-bg);padding:1.25rem;overflow-x:auto;margin-bottom:1.25rem;border-radius:6px;border:1px solid var(--color-border)}.post-content pre code{background:0 0;padding:0}.post-content img{max-width:100%;height:auto;display:block;margin:1.5rem 0;border-radius:6px}.post-content>p:first-child img{width:150px;height:150px;object-fit:cover;border-radius:50%;float:left;margin:0 1.5rem 1rem 0}.post-content hr{border:none;border-top:1px solid var(--color-border);margin:2.5rem 0}.post-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-top:2rem;border-top:1px solid var(--color-border);font-size:.9375rem}.post-nav a{text-decoration:none}.post-nav a:hover{text-decoration:underline}.post-nav .next{margin-left:auto;text-align:right}.share-buttons{margin-bottom:2rem}.share-buttons ul{list-style:none;padding:0;margin:0;display:flex;gap:.5rem}.share-buttons a{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:44px;min-height:44px;padding:.625rem;border-radius:6px;text-decoration:none;color:var(--color-text-muted);background:var(--color-code-bg);transition:background-color .15s ease,color .15s ease}.share-buttons a:hover{background:var(--color-primary);color:#fff}.share-buttons svg{flex-shrink:0}.share-buttons .share-label{font-size:.875rem;font-weight:500}@media(max-width:480px){.share-buttons .share-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.post-content>p:first-child img{float:none;margin:0 auto 1.5rem}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.contact-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.contact-links a{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:.5rem;min-width:44px;min-height:44px;padding:.625rem 1rem;border-radius:6px;text-decoration:none;color:var(--color-text-muted);background:var(--color-code-bg);transition:background-color .15s ease,color .15s ease}.post-content .contact-links img{display:inline-block;vertical-align:middle;margin:0;border-radius:4px;filter:grayscale(1)brightness(0)invert(1);transition:filter .15s ease}.contact-links a:hover img{filter:none}.contact-links a:hover{background:var(--color-primary);color:#fff}.contact-links svg,.contact-links img{flex-shrink:0}.contact-links .contact-logo{height:24px;width:auto}.contact-links span{font-size:.875rem;font-weight:500}.related-posts{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border)}.related-posts h2{font-size:1.25rem;margin-bottom:1rem}.related-posts ul{list-style:none;padding:0;margin:0}.related-posts li{margin-bottom:.75rem;display:flex;flex-direction:column;gap:.25rem}.related-posts a{font-weight:500;min-height:44px;display:inline-flex;align-items:center}.related-posts time{font-size:.875rem;color:var(--color-text-muted)}.pagination{display:flex;justify-content:center;gap:.5rem;list-style:none;padding:2rem 0 0}.pagination a{padding:.75rem 1rem;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:4px}.pagination a:hover{background:var(--color-code-bg)}.error-page{text-align:center;padding:4rem 0}.error-page h1{font-size:5rem;margin-bottom:1rem;color:var(--color-primary)}@media(min-width:640px){:root{--spacing:2.5rem}h1{font-size:2.5rem}h2{font-size:1.75rem}h3{font-size:1.375rem}.intro p{font-size:1.25rem}}@media(min-width:1024px){.site-nav{padding:var(--spacing-sm)3rem}}::selection{background:var(--color-primary);color:#fff}body{word-spacing:normal;letter-spacing:normal}p,li,dd,dt,td,th{line-height:1.7;overflow-wrap:break-word;word-wrap:break-word}@media print{.skip-link,.site-header,.site-footer,.post-nav{display:none}body{background:#fff;color:#000}a{color:#000;text-decoration:underline}a[href]::after{content:" (" attr(href)")";font-size:.875em}a[href^="#"]::after,a[href^="javascript:"]::after{content:""}}