astro-island{display:contents}@media (width>=1024px){.blog-page-grid{grid-template-columns:250px minmax(0,1fr)!important;display:grid!important}}@media (width>=1280px){.blog-page-grid{grid-template-columns:300px minmax(0,1fr)!important;display:grid!important}}.blog-float-right{float:right;shape-margin:1rem;max-width:240px;margin:0 0 1rem 1.5rem}.blog-float-right img{border-radius:1rem 1rem 0 0;width:100%;height:auto;display:block;-webkit-mask-image:linear-gradient(#000 70%,#0000 100%);mask-image:linear-gradient(#000 70%,#0000 100%)}.prose:has(.blog-float-right) h2,.prose:has(.blog-float-right) h3,.prose:has(.blog-float-right) h4{clear:none}@media (width<=640px){.blog-float-right{float:none;max-width:200px;margin:0 auto 1.5rem}}body:has(.blog-page-section){padding-top:1rem!important}@media (width>=640px){body:has(.blog-page-section){padding-top:1rem!important}}[style*=opacity]{overflow:visible!important}@supports (overflow-x:clip){html:has(body .blog-page-section),body:has(.blog-page-section){overflow:clip visible!important}}@supports not (overflow-x:clip){html:has(body .blog-page-section),body:has(.blog-page-section){overflow:visible!important}}.blog-page-section .sticky{position:sticky!important}@media print{@page{margin:1.5cm;size:A4}nav,header,footer,aside,.navbar,.command-menu,.fullscreen-toggle,.floating-assistant-button,.blog-header-dock,.share-menu,.comment-section,.scroll-progress,.breadcrumbs,.cookie-consent,.seo-editor,.print-no-show,[data-floating],[role=navigation],button:not(.print-visible),.fixed,.sticky{display:none!important}.print-only-show{display:block!important}body,main,article,.prose,.bg-background,.bg-card{color:#000!important;background:#fff!important}*{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:0 0!important}a[href]:after{content:" (" attr(href) ")";font-size:.8em;color:#666!important}a[href^=\#]:after,a[href^=\/]:after,a[href^=javascript]:after{content:""}body{font-size:12pt;line-height:1.6;font-family:Georgia,Times New Roman,serif!important}h1{page-break-after:avoid;margin-bottom:12pt;font-size:24pt}h2{page-break-after:avoid;margin-top:24pt;margin-bottom:12pt;font-size:18pt}h3{page-break-after:avoid;margin-top:18pt;margin-bottom:8pt;font-size:14pt}p,li{orphans:3;widows:3}pre,code{page-break-inside:avoid;white-space:pre-wrap;word-wrap:break-word;font-size:10pt;border:1px solid #ccc!important;padding:8pt!important;font-family:Courier New,monospace!important}img{page-break-inside:avoid;max-width:100%!important;height:auto!important}article{page-break-before:auto}.page-break{page-break-before:always}main,article,.prose{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.post-meta{border-bottom:1pt solid #ccc;margin-bottom:24pt;padding-bottom:12pt}table{border-collapse:collapse!important;width:100%!important}th,td{border:1pt solid #ccc!important;padding:6pt!important}blockquote{font-style:italic;border-left:3pt solid #666!important;margin-left:0!important;padding-left:12pt!important}body:after{content:"Printed from ranti.dev";text-align:center;border-top:1pt solid #ccc;margin-top:24pt;padding-top:12pt;font-size:10pt;display:block;color:#666!important}}:root:not(.dark) .prose pre{background-color:#f8fafc!important;border:1px solid #e2e8f0!important}:root:not(.dark) .prose pre code{color:#0f172a!important}:root:not(.dark) [data-line-numbers]>.line:before{color:#94a3b8!important}.dark .prose pre{background-color:#0f172a!important;border:1px solid #ffffff1a!important}pre:has(code[data-language=mermaid]),.code-block-container:has(code[data-language=mermaid]){display:none!important}.mermaid-diagram{-webkit-overflow-scrolling:touch;width:100%;margin:2rem 0;overflow-x:auto}.mermaid-diagram svg{min-height:200px;margin:0 auto;display:block;height:auto!important}.mermaid-diagram .messageText,.mermaid-diagram .loopText,.mermaid-diagram .loopText>tspan,.mermaid-diagram .labelText,.mermaid-diagram .labelText>tspan,.mermaid-diagram .noteText,.mermaid-diagram .noteText>tspan{paint-order:stroke fill!important;stroke:#fff!important;stroke-width:6px!important;stroke-linecap:round!important;stroke-linejoin:round!important}.dark .mermaid-diagram .messageText,.dark .mermaid-diagram .loopText,.dark .mermaid-diagram .loopText>tspan,.dark .mermaid-diagram .labelText,.dark .mermaid-diagram .labelText>tspan,.dark .mermaid-diagram .noteText,.dark .mermaid-diagram .noteText>tspan{stroke:hsl(var(--background))!important}.mermaid-diagram{--mm-green-bg:#c3e6cb;--mm-green-border:#28a745;--mm-green-text:#052c11;--mm-yellow-bg:#ffeeba;--mm-yellow-border:#d39e00;--mm-yellow-text:#3d2d00;--mm-blue-bg:#cce5ff;--mm-blue-border:#0056b3;--mm-blue-text:#00224a;--mm-red-bg:#f8d7da;--mm-red-border:#dc3545;--mm-red-text:#4a0910;--mm-purple-bg:#e2d5f1;--mm-purple-border:#6f42c1;--mm-purple-text:#26114a;--mm-teal-bg:#d1ecf1;--mm-teal-border:#17a2b8;--mm-teal-text:#093e47}.dark .mermaid-diagram{--mm-green-bg:#064020;--mm-green-border:#4ade80;--mm-green-text:#bbf7d0;--mm-yellow-bg:#5c4100;--mm-yellow-border:#facc15;--mm-yellow-text:#fef08a;--mm-blue-bg:#0b3469;--mm-blue-border:#60a5fa;--mm-blue-text:#bfdbfe;--mm-red-bg:#63121b;--mm-red-border:#f87171;--mm-red-text:#fecaca;--mm-purple-bg:#3b1f5e;--mm-purple-border:#a78bfa;--mm-purple-text:#ddd6fe;--mm-teal-bg:#0d4d5a;--mm-teal-border:#4ecdc4;--mm-teal-text:#a5f3fc}.mermaid-diagram .mm-green rect,.mermaid-diagram .mm-green polygon,.mermaid-diagram .mm-green circle{fill:var(--mm-green-bg)!important;stroke:var(--mm-green-border)!important}.mermaid-diagram .mm-green .nodeLabel,.mermaid-diagram .mm-green text{color:var(--mm-green-text)!important;fill:var(--mm-green-text)!important}.mermaid-diagram .mm-yellow rect,.mermaid-diagram .mm-yellow polygon,.mermaid-diagram .mm-yellow circle{fill:var(--mm-yellow-bg)!important;stroke:var(--mm-yellow-border)!important}.mermaid-diagram .mm-yellow .nodeLabel,.mermaid-diagram .mm-yellow text{color:var(--mm-yellow-text)!important;fill:var(--mm-yellow-text)!important}.mermaid-diagram .mm-blue rect,.mermaid-diagram .mm-blue polygon,.mermaid-diagram .mm-blue circle{fill:var(--mm-blue-bg)!important;stroke:var(--mm-blue-border)!important}.mermaid-diagram .mm-blue .nodeLabel,.mermaid-diagram .mm-blue text{color:var(--mm-blue-text)!important;fill:var(--mm-blue-text)!important}.mermaid-diagram .mm-red rect,.mermaid-diagram .mm-red polygon,.mermaid-diagram .mm-red circle{fill:var(--mm-red-bg)!important;stroke:var(--mm-red-border)!important}.mermaid-diagram .mm-red .nodeLabel,.mermaid-diagram .mm-red text{color:var(--mm-red-text)!important;fill:var(--mm-red-text)!important}.mermaid-diagram .mm-purple rect,.mermaid-diagram .mm-purple polygon,.mermaid-diagram .mm-purple circle{fill:var(--mm-purple-bg)!important;stroke:var(--mm-purple-border)!important}.mermaid-diagram .mm-purple .nodeLabel,.mermaid-diagram .mm-purple text{color:var(--mm-purple-text)!important;fill:var(--mm-purple-text)!important}.mermaid-diagram .mm-teal rect,.mermaid-diagram .mm-teal polygon,.mermaid-diagram .mm-teal circle{fill:var(--mm-teal-bg)!important;stroke:var(--mm-teal-border)!important}.mermaid-diagram .mm-teal .nodeLabel,.mermaid-diagram .mm-teal text{color:var(--mm-teal-text)!important;fill:var(--mm-teal-text)!important}
