.blog-float-right{float:right;margin:0 0 1rem 1.5rem;max-width:240px;shape-margin:1rem}.blog-float-right img{width:100%;height:auto;display:block;border-radius:1rem 1rem 0 0;-webkit-mask-image:linear-gradient(180deg,black 70%,transparent);mask-image:linear-gradient(180deg,black 70%,transparent)}.prose:has(.blog-float-right) h2,.prose:has(.blog-float-right) h3,.prose:has(.blog-float-right) h4{clear:none}@media (max-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 (min-width:640px){body:has(.blog-page-section){padding-top:1rem!important}}[style*=opacity]{overflow:visible!important}@supports (overflow-x:clip){body:has(.blog-page-section),html:has(body .blog-page-section){overflow-x:clip!important;overflow-y:visible!important}}@supports not (overflow-x:clip){body:has(.blog-page-section),html:has(body .blog-page-section){overflow:visible!important}}.blog-page-section .sticky{position:sticky!important}@media print{@page{margin:1.5cm;size:A4}.blog-header-dock,.breadcrumbs,.command-menu,.comment-section,.cookie-consent,.fixed,.floating-assistant-button,.fullscreen-toggle,.navbar,.print-no-show,.scroll-progress,.seo-editor,.share-menu,.sticky,[data-floating],[role=navigation],aside,button:not(.print-visible),footer,header,nav{display:none!important}.print-only-show{display:block!important}.bg-background,.bg-card,.prose,article,body,main{background:white!important;color:black!important}*{color:black!important;background:transparent!important;box-shadow:none!important;text-shadow:none!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{font-size:24pt}h1,h2{margin-bottom:12pt;page-break-after:avoid}h2{font-size:18pt;margin-top:24pt}h3{font-size:14pt;margin-top:18pt;margin-bottom:8pt;page-break-after:avoid}li,p{orphans:3;widows:3}code,pre{font-family:Courier New,monospace!important;font-size:10pt;border:1px solid #ccc!important;padding:8pt!important;white-space:pre-wrap;word-wrap:break-word}code,img,pre{page-break-inside:avoid}img{max-width:100%!important;height:auto!important}article{page-break-before:auto}.page-break{page-break-before:always}.prose,article,main{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.post-meta{border-bottom:1pt solid #ccc;padding-bottom:12pt;margin-bottom:24pt}table{border-collapse:collapse!important;width:100%!important}td,th{border:1pt solid #ccc!important;padding:6pt!important}blockquote{border-left:3pt solid #666!important;padding-left:12pt!important;margin-left:0!important;font-style:italic}body:after{content:"Printed from ranti.dev";display:block;text-align:center;font-size:10pt;color:#666!important;margin-top:24pt;padding-top:12pt;border-top:1pt solid #ccc}}: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 rgba(255,255,255,.1)!important}.code-block-container:has(code[data-language=mermaid]),pre:has(code[data-language=mermaid]){display:none!important}.mermaid-diagram{margin:2rem 0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.mermaid-diagram svg{display:block;margin:0 auto;height:auto!important;min-height:200px}.mermaid-diagram .labelText,.mermaid-diagram .labelText>tspan,.mermaid-diagram .loopText,.mermaid-diagram .loopText>tspan,.mermaid-diagram .messageText,.mermaid-diagram .noteText,.mermaid-diagram .noteText>tspan{paint-order:stroke fill!important;stroke:white!important;stroke-width:6px!important;stroke-linecap:round!important;stroke-linejoin:round!important}:is(.dark) .mermaid-diagram .labelText,:is(.dark) .mermaid-diagram .labelText>tspan,:is(.dark) .mermaid-diagram .loopText,:is(.dark) .mermaid-diagram .loopText>tspan,:is(.dark) .mermaid-diagram .messageText,:is(.dark) .mermaid-diagram .noteText,:is(.dark) .mermaid-diagram .noteText>tspan{stroke:hsl(var(--background))!important}