.scan-busy [data-scan-icon]{animation:website-scan-spin 1.4s linear infinite}@keyframes website-scan-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.scan-busy [data-scan-icon]{animation:none}}.op-dialog::backdrop{background:rgb(17 24 39 / 35%)}.op-detail-dialog{position:fixed;inset:0 0 0 auto;overflow-y:auto}.blog-prose{color:#374151;font-size:1.125rem;line-height:1.8;max-width:44rem;overflow-wrap:break-word}.blog-prose>:first-child{margin-top:0}.blog-prose p,.blog-prose ul,.blog-prose ol,.blog-prose blockquote,.blog-prose table,.blog-prose pre{margin-top:1.4em}.blog-prose h2,.blog-prose h3,.blog-prose h4{color:#111827;font-weight:600;letter-spacing:-.015em;scroll-margin-top:1.5rem}.blog-prose h2{font-size:1.75rem;line-height:1.25;margin-top:2.4em}.blog-prose h3{font-size:1.3rem;line-height:1.35;margin-top:2em}.blog-prose h4{font-size:1.1rem;margin-top:1.8em}.blog-prose h2+*,.blog-prose h3+*,.blog-prose h4+*{margin-top:.7em}.blog-prose a{color:#2563eb;font-weight:500;text-decoration:underline;text-decoration-color:#93c5fd;text-underline-offset:3px}.blog-prose a:hover{color:#1d4ed8;text-decoration-color:currentColor}.blog-prose strong{color:#111827;font-weight:600}.blog-prose ul,.blog-prose ol{padding-left:1.4em}.blog-prose ul{list-style:disc}.blog-prose ol{list-style:decimal}.blog-prose li{margin-top:.5em;padding-left:.25em}.blog-prose li::marker{color:#2563eb}.blog-prose li>ul,.blog-prose li>ol{margin-top:.5em}.blog-prose blockquote{border-left:4px solid #2563eb;background:#eff6ff;border-radius:0 1rem 1rem 0;color:#1f2937;padding:1em 1.25em}.blog-prose blockquote>:first-child{margin-top:0}.blog-prose img{border-radius:1.25rem;border:1px solid #f3f4f6;height:auto;margin:2em 0;width:100%}.blog-prose p:has(>img:only-child){margin-top:0}.blog-prose hr{border-color:#e5e7eb;margin:3em 0}.blog-prose code{background:#f1f5f9;border-radius:.375rem;color:#0f172a;font-size:.875em;padding:.15em .4em}.blog-prose pre{background:#0f172a;border-radius:1rem;color:#e2e8f0;font-size:.9rem;overflow-x:auto;padding:1.25em}.blog-prose pre code{background:none;color:inherit;padding:0}.blog-prose table{border-collapse:collapse;display:block;font-size:.95rem;overflow-x:auto;width:100%}.blog-prose th,.blog-prose td{border-bottom:1px solid #e5e7eb;padding:.65em .9em;text-align:left;vertical-align:top}.blog-prose th{color:#111827;font-weight:600;background:#f8fafc}@media (max-width: 639px){.blog-prose{font-size:1.0625rem;line-height:1.75}.blog-prose h2{font-size:1.5rem}}
