@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";:root{--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--color-heading: #e2e8f0}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{scroll-behavior:smooth;background:radial-gradient(circle at center,#252525,#262626,#272727);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.bg-dark-secondary{background-color:#2c2e3b}.bg-gradient{background:radial-gradient(circle at center,#252525,#262626,#272727)}.gradient-text{background:linear-gradient(to right,#4ade80,#22d3ee);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 10px rgba(74,222,128,.3)}.typing-name:before{content:"";animation:names 15s infinite}.typing-name:after{content:"";border-right:3px solid #22d3ee;animation:blink .5s step-end infinite alternate}@keyframes names{0%{content:"V"}4%{content:"Ve"}8%{content:"Ven"}12%{content:"Veno"}16%{content:"Venob"}20%{content:"Venobi"}20%,30%{content:"Venobi"}31%{content:"Venob"}32%{content:"Veno"}33%{content:"Ven"}34%{content:"Ve"}35%{content:"V"}36%{content:""}40%{content:"T"}42%{content:"Th"}44%{content:"Tho"}46%{content:"Thom"}48%{content:"Thomi"}50%{content:"Thomi J"}52%{content:"Thomi Ja"}54%{content:"Thomi Jas"}56%{content:"Thomi Jasi"}58%{content:"Thomi Jasir"}58%,80%{content:"Thomi Jasir"}82%{content:"Thomi Jasi"}84%{content:"Thomi Jas"}86%{content:"Thomi Ja"}88%{content:"Thomi J"}90%{content:"Thomi"}92%{content:"Thom"}94%{content:"Tho"}96%{content:"Th"}98%{content:"T"}99%{content:""}}@keyframes blink{50%{border-color:transparent}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-on-load{animation:fadeSlideUp .6s ease both}.animate-on-load-1{animation:fadeSlideUp .6s ease .1s both}.animate-on-load-2{animation:fadeSlideUp .6s ease .2s both}.animate-on-load-3{animation:fadeSlideUp .6s ease .35s both}.animate-on-load-4{animation:fadeSlideUp .6s ease .5s both}.animate-on-load-5{animation:fadeSlideUp .6s ease .65s both}.section-heading{font-family:Syne,sans-serif;font-size:1.5rem;font-weight:700;color:var(--color-heading);padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid #4b5563;display:flex;align-items:center;gap:.75rem}.section-heading:before{content:"";display:inline-block;width:4px;height:1.25em;background:linear-gradient(to bottom,#4ade80,#22d3ee);border-radius:2px;flex-shrink:0}.blog-title{font-family:DM Sans,sans-serif}.blog-content h2{font-family:DM Sans,sans-serif;font-size:1.5rem;font-weight:700;color:var(--color-heading);margin-top:2rem;margin-bottom:1rem}.blog-content h3{font-family:DM Sans,sans-serif;font-size:1.25rem;font-weight:600;color:var(--color-heading);margin-top:1.5rem;margin-bottom:.75rem}.blog-content p{color:#d1d5db;line-height:1.75;margin-bottom:1rem}.blog-content a{color:#4ade80;text-decoration:none}.blog-content a:hover{text-decoration:underline}.blog-content strong{color:var(--color-heading);font-weight:600}.blog-content code{font-family:var(--mono);font-size:.875em;color:#86efac;background-color:#1f2937;padding:.15em .4em;border-radius:4px}.blog-content img{border-radius:.25rem}@media(min-width:768px){.blog-content img{border-radius:1rem}}.blog-content pre{background-color:#111827;border:1px solid #374151;border-radius:12px;padding:1.25rem;overflow-x:auto;margin-bottom:1.25rem}.blog-content pre code{background:none;padding:0;color:#e5e7eb;font-size:.875rem;line-height:1.7}.blog-content blockquote{border-left:3px solid #4ade80;padding-left:1rem;margin:1.5rem 0;color:#9ca3af;font-style:italic}.blog-content ul{list-style:disc;padding-left:1.5rem;margin-bottom:1rem;color:#d1d5db}.blog-content ol{list-style:decimal;padding-left:1.5rem;margin-bottom:1rem;color:#d1d5db}.blog-content li{margin-bottom:.35rem;line-height:1.7}.blog-content ul li::marker{color:#4ade80}.blog-content table{width:100%;border-collapse:collapse;margin-bottom:1.25rem;font-size:.9rem}.blog-content th{background-color:#1f2937;color:var(--color-heading);font-weight:600;padding:.6rem .75rem;text-align:left;border:1px solid #374151}.blog-content td{color:#d1d5db;padding:.6rem .75rem;border:1px solid #374151}.blog-content tr:nth-child(2n) td{background-color:#1f2937}
