.quill .ql-container .ql-editor{font-size:16px;padding:15px 6px}.quill .ql-container .ql-editor div{min-height:100vh}.app .ql-editor,.ql-font span[data-label=Ubuntu]:before{font-family:Ubuntu}.ql-font .ql-font span[data-label=Raleway]:before{font-family:Raleway}.ql-font span[data-label=Roboto]:before{font-family:Roboto!important}.ql-font-Raleway{font-family:Raleway}.ql-font-Roboto{font-family:Roboto}.app .ql-container{border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.app .ql-snow.ql-toolbar{display:block;color:#fff;border-top-left-radius:.5em;border-top-right-radius:.5em}.app .ql-bubble .ql-editor{border:1px solid #ccc;border-radius:.5em}.app .ql-editor{min-height:30vh}.themeSwitcher{margin-top:.5em;font-size:small}@media (prefers-color-scheme:dark){.quill .ql-container .ql-editor p code{font-size:16px}}.blog-content{line-height:1.8;font-size:1.125rem;color:hsl(var(--foreground));max-width:none}.blog-content h1{font-size:1.875rem;font-weight:700;margin-top:2rem;margin-bottom:1.5rem;color:hsl(var(--foreground));line-height:1.2;scroll-margin-top:2rem}@media (min-width:768px){.blog-content h1{font-size:2.25rem}}@media (min-width:1024px){.blog-content h1{font-size:3rem}}.blog-content h2{font-size:1.5rem;font-weight:700;margin-top:2rem;margin-bottom:1rem;color:hsl(var(--foreground));line-height:1.3;scroll-margin-top:2rem;border-bottom:2px solid hsl(var(--border));padding-bottom:.5rem}@media (min-width:768px){.blog-content h2{font-size:1.875rem}}.blog-content h3{font-size:1.25rem;font-weight:600;margin-top:1.5rem;margin-bottom:.75rem;color:hsl(var(--foreground));line-height:1.4;scroll-margin-top:2rem}@media (min-width:768px){.blog-content h3{font-size:1.5rem}}.blog-content h4{font-size:1.125rem;font-weight:600;margin-top:1rem;margin-bottom:.5rem;color:hsl(var(--foreground));line-height:1.4}@media (min-width:768px){.blog-content h4{font-size:1.25rem}}.blog-content p{margin-bottom:1.5rem;color:hsl(var(--foreground));line-height:1.8;font-size:1.125rem}.blog-content a{color:#2563eb;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px;transition:color .2s}.blog-content a:hover{color:#1d4ed8}@media (prefers-color-scheme:dark){.blog-content a{color:#60a5fa}.blog-content a:hover{color:#93bbfc}}.blog-content ol,.blog-content ul{margin-bottom:1.5rem;padding-left:1.5rem}.blog-content li{margin-bottom:.5rem;color:hsl(var(--foreground));line-height:1.8}.blog-content ul li{list-style-type:disc}.blog-content ol li{list-style-type:decimal}.blog-content blockquote{border-left:4px solid #3b82f6;padding-left:1.5rem;padding-top:1rem;padding-bottom:1rem;background-color:#eff6ff;border-radius:0 .5rem .5rem 0;font-style:italic;margin:1.5rem 0}@media (prefers-color-scheme:dark){.blog-content blockquote{border-left-color:#60a5fa;background-color:rgba(37,99,235,.1)}}.blog-content blockquote p{margin-bottom:0;color:#1e40af}@media (prefers-color-scheme:dark){.blog-content blockquote p{color:#93bbfc}}.blog-content pre{background-color:#f3f4f6;border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;overflow-x:auto;border:1px solid #e5e7eb}@media (prefers-color-scheme:dark){.blog-content pre{background-color:#111827;border-color:#374151}}.blog-content code{background-color:#f3f4f6;padding:.125rem .5rem;border-radius:.25rem;font-size:.875rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;color:#1f2937}@media (prefers-color-scheme:dark){.blog-content code{background-color:#111827;color:#f3f4f6}}.blog-content pre code{background-color:transparent;padding:0;font-size:.875rem;display:block;overflow-x:auto}.blog-content li code,.blog-content p code{background-color:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;font-size:.875rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;color:#1f2937}@media (prefers-color-scheme:dark){.blog-content li code,.blog-content p code{background-color:#111827;color:#f3f4f6}}.blog-content img{width:100%;height:auto;border-radius:.5rem;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);margin:1.5rem 0;border:1px solid #e5e7eb;-o-object-fit:contain;object-fit:contain;background-color:#f9fafb}@media (prefers-color-scheme:dark){.blog-content img{border-color:#374151;background-color:#111827}}.blog-content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}@media (prefers-color-scheme:dark){.blog-content table{border-color:#374151}}.blog-content td,.blog-content th{border:1px solid #e5e7eb;padding:.75rem 1rem;text-align:left}@media (prefers-color-scheme:dark){.blog-content td,.blog-content th{border-color:#374151}}.blog-content th{background-color:#f9fafb;font-weight:600;color:hsl(var(--foreground))}@media (prefers-color-scheme:dark){.blog-content th{background-color:#111827}}.blog-content tr:nth-child(2n){background-color:#f9fafb}@media (prefers-color-scheme:dark){.blog-content tr:nth-child(2n){background-color:rgba(17,24,39,.5)}}.blog-content hr{border:none;border-top:2px solid #e5e7eb;margin:2rem 0}@media (prefers-color-scheme:dark){.blog-content hr{border-top-color:#374151}}.blog-content strong{font-weight:700;color:hsl(var(--foreground))}.blog-content em{font-style:italic}.blog-content .ql-editor{padding:0;font-family:inherit;line-height:inherit}.blog-content .ql-editor p{margin-bottom:1rem}.blog-content .ql-editor p:last-child{margin-bottom:0}@media (max-width:768px){.blog-content{font-size:1rem}.blog-content h1{font-size:1.5rem}.blog-content h2{font-size:1.25rem}.blog-content h3{font-size:1.125rem}}.blog-content .hljs{background-color:#111827;color:#f3f4f6;border-radius:.5rem}.blog-content .hljs-comment,.blog-content .hljs-quote{color:#9ca3af;font-style:italic}.blog-content .hljs-keyword,.blog-content .hljs-selector-tag,.blog-content .hljs-subst{color:#60a5fa}.blog-content .hljs-literal,.blog-content .hljs-number,.blog-content .hljs-tag .hljs-attr,.blog-content .hljs-template-variable,.blog-content .hljs-variable{color:#c084fc}.blog-content .hljs-doctag,.blog-content .hljs-string{color:#4ade80}.blog-content .hljs-section,.blog-content .hljs-selector-id,.blog-content .hljs-title{color:#facc15}.blog-content .hljs-class .hljs-title,.blog-content .hljs-type{color:#fb923c}.blog-content .hljs-attribute,.blog-content .hljs-name,.blog-content .hljs-tag{color:#f87171;font-weight:400}.blog-content .hljs-link,.blog-content .hljs-regexp{color:#22d3ee}.blog-content .hljs-bullet,.blog-content .hljs-symbol{color:#a78bfa}.blog-content .hljs-built_in,.blog-content .hljs-builtin-name{color:#f472b6}.blog-content .hljs-meta{color:#9ca3af}.blog-content .hljs-deletion{background-color:rgba(239,68,68,.5)}.blog-content .hljs-addition{background-color:rgba(34,197,94,.5)}.blog-content .hljs-emphasis{font-style:italic}.blog-content .hljs-strong{font-weight:700}