.medium-blog{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;color:#fff;max-width:100%}.medium-blog h1{font-size:2.75rem;font-weight:800;line-height:1.2;color:#fff;margin:2rem 0 1.5rem;letter-spacing:-.02em}.medium-blog h2{font-size:2.25rem;font-weight:700;line-height:1.3;color:#e5e7eb;margin:2.5rem 0 1rem;letter-spacing:-.01em}.medium-blog h3{font-size:1.75rem;margin:2rem 0 .75rem}.medium-blog h3,.medium-blog h4{font-weight:600;line-height:1.4;color:#d1d5db}.medium-blog h4{font-size:1.375rem;margin:1.75rem 0 .5rem}.medium-blog h5,.medium-blog h6{font-size:1.125rem;font-weight:600;line-height:1.4;color:#d1d5db;margin:1.5rem 0 .5rem}.medium-blog p{font-size:1.125rem;line-height:1.75;color:#d1d5db;margin:1.5rem 0;font-weight:400;letter-spacing:.01em}.medium-blog p+p{margin-top:1.75rem}.medium-blog a{color:#60a5fa;text-decoration:underline;text-decoration-color:rgba(96,165,250,.4);text-underline-offset:.125em;transition:all .2s ease}.medium-blog a:hover{color:#93c5fd;text-decoration-color:#93c5fd}.medium-blog ol,.medium-blog ul{margin:1.5rem 0;padding-left:0}.medium-blog li{font-size:1.125rem;line-height:1.75;color:#d1d5db;margin:.75rem 0;position:relative;padding-left:1.75rem}.medium-blog ul li:before{content:"•";color:#10b981;font-weight:700;position:absolute;left:0;top:0}.medium-blog ol{counter-reset:item}.medium-blog ol li{counter-increment:item}.medium-blog ol li:before{content:counter(item) ".";color:#10b981;font-weight:600;position:absolute;left:0;top:0}.medium-blog li ol,.medium-blog li ul{margin:.5rem 0}.medium-blog li ol li,.medium-blog li ul li{font-size:1rem;margin:.5rem 0}.medium-blog blockquote{border-left:4px solid #10b981;background:rgba(16,185,129,.05);margin:2rem 0;padding:1.5rem 2rem;border-radius:0 8px 8px 0;font-style:italic;position:relative}.medium-blog blockquote p{color:#e5e7eb;font-size:1.125rem;margin:0}.medium-blog blockquote:before{content:'"';font-size:4rem;color:rgba(16,185,129,.3);position:absolute;top:-.5rem;left:1rem;font-family:Georgia,serif}.medium-blog code{background:rgba(17,24,39,.8);color:#fbbf24;padding:.25rem .5rem;border-radius:4px;font-family:monospace;font-size:.9em;border:1px solid rgba(75,85,99,.3)}.medium-blog pre{background:#0f172a;border:1px solid rgba(75,85,99,.3);border-radius:12px;margin:2rem 0;overflow-x:auto;position:relative}.medium-blog pre code{display:block;padding:1.5rem;background:transparent;border:none;color:#e2e8f0;font-size:.95rem;line-height:1.6;border-radius:0}.medium-blog .hljs{background:transparent!important;color:#e2e8f0}.medium-blog .hljs-keyword,.medium-blog .hljs-selector-tag{color:#c678dd}.medium-blog .hljs-attr,.medium-blog .hljs-string{color:#98c379}.medium-blog .hljs-literal,.medium-blog .hljs-number{color:#d19a66}.medium-blog .hljs-comment{color:#5c6370;font-style:italic}.medium-blog .hljs-function,.medium-blog .hljs-title{color:#61dafb}.medium-blog img{max-width:100%;height:auto;border-radius:8px;margin:2rem 0;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.medium-blog table{width:100%;border-collapse:collapse;margin:2rem 0;background:rgba(17,24,39,.5);border-radius:8px;overflow:hidden}.medium-blog td,.medium-blog th{padding:.75rem 1rem;text-align:left;border-bottom:1px solid rgba(75,85,99,.3)}.medium-blog th{background:rgba(16,185,129,.1);color:#10b981;font-weight:600}.medium-blog td{color:#d1d5db}.medium-blog hr{border:none;height:1px;background:linear-gradient(90deg,transparent,rgba(75,85,99,.5),transparent);margin:3rem 0}.medium-blog strong{color:#fff;font-weight:700}.medium-blog em{color:#e5e7eb;font-style:italic}@media (max-width:768px){.medium-blog h1{font-size:2.25rem}.medium-blog h2{font-size:1.875rem}.medium-blog h3{font-size:1.5rem}.medium-blog li,.medium-blog p{font-size:1rem}.medium-blog blockquote{padding:1rem 1.5rem}.medium-blog pre code{padding:1rem;font-size:.875rem}}.medium-blog-header{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid rgba(75,85,99,.3)}.medium-blog-header h1{margin:0 0 1rem;font-size:3rem;font-weight:900;background:linear-gradient(135deg,#10b981,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.medium-blog-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;color:#9ca3af;font-size:.95rem}.medium-blog-meta .author{color:#10b981;font-weight:600}.medium-blog-meta .date,.medium-blog-meta .reading-time{color:#9ca3af}.medium-blog-meta .category{background:rgba(16,185,129,.1);color:#10b981;padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500}.medium-blog-back-link{display:inline-flex;align-items:center;gap:.5rem;color:#10b981;text-decoration:none;font-weight:500;margin-bottom:2rem;transition:all .2s ease}.medium-blog-back-link:hover{color:#34d399;transform:translateX(-4px)}.medium-blog-back-link .arrow{font-size:1.25rem;transition:transform .2s ease}.medium-blog-back-link:hover .arrow{transform:translateX(-2px)}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}
/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
/*# sourceMappingURL=d3946fbe3848e504.css.map*/