#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#29d transparent transparent #29d;border-style:solid;border-width:2px;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}:root{--primary:#160c28;--secondary:#efcb68;--ternary:#e1efe6;--default:#ffffff}body,html{padding:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}a{color:inherit;text-decoration:none}*{box-sizing:border-box}.page{animation:fadeIn .5s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.help-cursor{cursor:help}.text-border{color:var(--default);text-shadow:-1px -1px 0 var(--primary),1px -1px 0 var(--primary),-1px 1px 0 var(--primary),1px 1px 0 var(--primary)}.list-default{margin:0}.list-default li{margin-bottom:5px;font-size:1.4rem}.list-default a{border-bottom:2px solid var(--secondary);font-weight:800}.logo{position:absolute;display:inline-block;top:0;left:0;width:120px;text-align:center;z-index:10}.logo a:hover{color:var(--default);text-shadow:-1px -1px 0 var(--primary),1px -1px 0 var(--primary),-1px 1px 0 var(--primary),1px 1px 0 var(--primary)}.listBtn{margin:0;padding:0;list-style-type:none;display:flex}@media (min-width:720px){.listBtn{justify-content:right}}.listBtn li{margin:0}.linkBtn{font-weight:400;font-size:1rem;border-radius:6px;padding:15px;margin:0 15px;border:1px solid var(--default);position:relative;color:var(--primary);text-transform:uppercase;display:block}.linkBtn:hover{transition:all .2s linear 0s;background-color:var(--ternary)}.linkBtn.active{border-color:var(--secondary);background-color:transparent}.internal-grid{width:80%;margin:0 auto 4rem}.internal-grid.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));grid-gap:20px;gap:20px}.images-container{padding:5px;overflow:hidden;height:auto;border:1px solid var(--ternary);min-height:350px}.images-container:last-child{transform:rotate(-90deg)}.images-container img{width:100%;margin:0 auto;height:100%;object-fit:scale-down}.images-container span{overflow:visible!important}.hero{width:100%;text-align:center;margin-bottom:30px;overflow:hidden;height:300px;background-color:var(--primary);display:flex;flex-flow:column;align-items:center;position:relative}.hero:hover .hero-image{filter:none}.hero-image{width:100%;filter:grayscale(1);max-height:500px;background-color:var(--primary)}@media (min-width:720px){.hero-image{max-height:100%}}.hero-text h1{margin-bottom:0;font-size:4rem;color:var(--secondary)}.hero-text p{font-size:1.5rem;color:var(--ternary)}.page h2{border-bottom:3px solid var(--ternary);padding-bottom:5px;text-transform:capitalize;margin-top:60px;color:var(--primary);font-size:1.8rem}.page p{line-height:2.2rem;font-size:1.4rem}.summary:after{content:"";width:50px;height:50px;position:absolute;top:-30px;left:-30px;z-index:-1;background:var(--secondary)}.global-list,.list-items-card{padding:0;margin:0;list-style-type:none}.list-items-card{display:flex;flex-flow:wrap;align-items:flex-start}.list-items-card li{margin:20px;transition:box-shadow .2s linear 0s}.list-items-card li:hover{box-shadow:2px 10px 10px var(--primary)}.list-items{margin:0;padding:0;list-style-type:none}.list-items li{margin-bottom:2rem}.list-items li:hover{background-color:var(--ternary)}.list-items p{font-weight:300;margin:1rem 0}.list-items a{display:block;padding:1rem 0}#nprogress .spinner{top:40%;left:50%;margin-top:-40px;margin-left:-40px}#nprogress .spinner-icon{width:80px;height:80px}.blog-page img{background-color:var(--ternary);margin:1rem 0;display:inline-block;width:100%;filter:none;-webkit-filter:grayscale(0);object-fit:cover;transition:all .25s linear 0s}.blog-page img:hover{filter:grayscale(100%);-webkit-filter:grayscale(100%)}.blog-page li{font-weight:400;margin:10px 0;font-size:1.2rem}.blog-page pre code{line-height:1.5rem}.blog-page code a{border-bottom:0}.blog-page code:not([class]){background-color:var(--ternary);padding:0 5px;margin:0 5px}.blog-page pre{background-color:var(--ternary);padding:10px}.blog-page ul li a{line-height:normal;border-bottom-width:0}.blog-page ul li a:hover{color:var(--secondary)}.blog-page a{display:inline-block;padding:0 4px;border-bottom:10px solid var(--secondary);font-weight:800;line-height:.2}.blog-page a:hover{border-bottom-style:dashed;transition:border .2s linear 0s}.blog-page figcaption{margin:1rem 0}.blog-page figcaption a{font-weight:300;display:block;text-align:center;border-bottom-color:transparent;color:var(--secondary)}.blog-page figcaption a:hover{color:var(--primary)}.blog-page blockquote{padding:10px 0;text-align:center;margin:2rem auto;position:relative;border-left:5px solid var(--ternary)}@media (min-width:960px){.blog-page blockquote{width:45%}}.blog-page blockquote:after{content:"\201C";top:0;left:0}.blog-page blockquote:after,.blog-page blockquote:before{width:50px;height:50px;position:absolute;z-index:2;font-size:60px}.blog-page blockquote:before{content:"\201D";bottom:0;right:0}.blog-page blockquote:first-letter{font-weight:700;font-size:32px}.article-intro{display:block;text-align:center}.article-intro h1{font-size:30px;margin-bottom:0;text-transform:none}@media (min-width:720px){.article-intro h1{font-size:50px}}.article-intro time{display:inline-block;margin:1rem 0}.article-content{margin:0 auto;width:80%}.article-content h1{font-size:2.5rem}@media (min-width:960px){.article-content{width:60%}}.title-link a{border-bottom:0}.more-posts{width:80%;margin:60px auto;min-height:200px}@media (min-width:960px){.more-posts{width:60%}}.more-posts-container{display:flex;flex-flow:wrap;justify-content:flex-start;align-items:center;margin:60px auto}@media (min-width:720px){.more-posts-container{justify-content:space-between}}.coords-card{box-shadow:0 1px 3px var(--primary);padding:20px;position:relative}.coords-card svg{overflow:visible;padding:10px;width:100%;height:100%}.coords-metadata .title{margin:0 auto;text-align:center}.coords-metadata .time{margin:10px auto;text-align:center;display:block;color:var(--secondary)}.coords-metadata .distance{position:absolute;bottom:20px;right:20px;border-radius:100%;width:60px;height:60px;text-align:center;line-height:60px;font-weight:700;border:1px solid var(--ternary)}.posts-list{list-style-type:none;padding:0}.posts-list li{margin:5px 0}.posts-list a{background:transparent;padding:10px;display:flex;flex-flow:row;align-items:center;justify-content:space-between;font-size:1.4rem;color:var(--primary)}.posts-list span{font-weight:100;font-size:1.2rem}.posts-list a:hover{background-color:var(--ternary);transition:background-color .2s linear 0s;border-radius:5px}.uses-list{list-style-type:disc}.uses-list li{margin:15px 0}.uses-list li span{font-weight:700;margin-left:10px}.uses-list a{font-size:1.4rem;text-decoration:underline}.footer-links,.footer-sections:last-child{display:flex;flex-flow:row;align-items:center}.footer-links{padding:0;margin:20px 0;list-style:none;justify-content:space-evenly}.footer-links li{margin:15px 12px}.footer-links a{border-radius:5px;padding:15px}.footer-links a:hover{background-color:var(--secondary);transition:background-color .2s linear 0s}.posts-comments{width:80%;margin:0 auto}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.player-image{background:var(--ternary);width:100px;height:100px;overflow:hidden;display:inline-block;border-radius:100%;margin:20px 0;animation:spin 5s linear infinite}.player-image a{display:block;width:100%;height:100%;text-decoration:none}.player-image:hover{animation-play-state:paused}.player-image img{width:100%}.introduction a{border-bottom:4px solid var(--secondary);font-weight:800}.introduction a:hover{border-bottom-style:dashed}.blog-post-theme{--bg:#0e0e0e;--surface:#161616;--accent:#d4a94a;--accent-dim:rgba(212,169,74,0.1);--text:#e8e4dc;--muted:#7a7870;--border:rgba(255,255,255,0.07);--font-display:"Playfair Display",Georgia,serif;--font-body:"IBM Plex Sans",sans-serif;--font-mono:"IBM Plex Mono",monospace;color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.8;font-weight:300;min-height:100vh}.blog-post-theme,.blog-post-theme .page{background-color:var(--bg)}.blog-post-theme .blog-page{max-width:720px;margin:0 auto;padding:0 24px 100px}.blog-post-theme .article-intro{padding:72px 0 52px;border-bottom:1px solid var(--border);margin-bottom:60px;text-align:left}.blog-post-theme .article-intro h1{font-family:var(--font-display);font-size:clamp(34px,6vw,56px);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--text);margin-bottom:22px;text-transform:none;border:none}.blog-post-theme .article-intro time{font-family:var(--font-mono);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;display:flex;flex-wrap:wrap;gap:20px;margin-top:30px}.blog-post-theme .article-intro img{margin-top:30px;width:100%;height:auto;filter:none}.blog-post-theme .article-intro img:hover{filter:none}.blog-post-theme .article-intro figcaption{margin-top:10px}.blog-post-theme .article-intro figcaption a{font-family:var(--font-mono);font-size:11px;color:var(--muted);border-bottom:none;letter-spacing:.04em}.blog-post-theme .article-content{width:100%;margin:0}.blog-post-theme .article-content p{margin-bottom:26px;font-size:17px;line-height:1.8;color:var(--text)}.blog-post-theme .article-content h2{font-family:var(--font-display);font-size:28px;font-weight:700;line-height:1.2;color:var(--text);margin:64px 0 18px;border-bottom:none;text-transform:none}.blog-post-theme .article-content h2 a{border-bottom:none;color:var(--text)}.blog-post-theme .article-content h2 a:hover{color:var(--accent)}.blog-post-theme .article-content h3{font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:44px 0 14px}.blog-post-theme .article-content h4{font-family:var(--font-body);font-size:18px;font-weight:500;color:var(--text);margin:32px 0 12px}.blog-post-theme .article-content a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(212,169,74,.3);transition:border-color .2s;display:inline;padding:0;font-weight:400;line-height:inherit}.blog-post-theme .article-content a:hover{border-color:var(--accent)}.blog-post-theme .article-content blockquote{border-left:2px solid var(--accent);padding:4px 0 4px 26px;margin:36px 0;font-family:var(--font-display);font-style:italic;font-size:21px;line-height:1.5;color:var(--text);text-align:left;width:100%}.blog-post-theme .article-content blockquote:after,.blog-post-theme .article-content blockquote:before{display:none}.blog-post-theme .article-content blockquote p{font-family:var(--font-display);font-style:italic;font-size:21px;line-height:1.5;margin:0}.blog-post-theme .article-content code{font-family:var(--font-mono);font-size:13px;background:var(--surface);border:1px solid var(--border);padding:1px 6px;border-radius:2px;color:var(--accent)}.blog-post-theme .article-content pre{background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:20px;margin:32px 0;overflow-x:auto}.blog-post-theme .article-content pre code{background:transparent;border:none;padding:0;font-size:14px;line-height:1.6;color:var(--text)}.blog-post-theme .article-content ol,.blog-post-theme .article-content ul{margin:20px 0 32px;padding-left:0;list-style:none}.blog-post-theme .article-content li{padding:13px 0;border-bottom:1px solid var(--border);font-size:15px;color:var(--text);display:flex;gap:16px;align-items:flex-start;margin:0}.blog-post-theme .article-content li:before{content:"→";color:var(--accent);font-family:var(--font-mono);flex-shrink:0}.blog-post-theme .article-content li a{line-height:inherit}.blog-post-theme .article-content .img-note{background:var(--surface);border:1px dashed rgba(255,255,255,.1);padding:18px 22px;margin:40px 0;border-radius:2px;font-family:var(--font-mono);font-size:11px;color:var(--muted);letter-spacing:.04em}.blog-post-theme .article-content .img-note img{width:100%;height:auto;margin:0;padding:0;border:none;background:transparent}.blog-post-theme .article-content .img-note strong{color:var(--accent);font-weight:400}.blog-post-theme .article-content .divider{display:flex;align-items:center;gap:16px;margin:64px 0}.blog-post-theme .article-content .divider:after,.blog-post-theme .article-content .divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.blog-post-theme .article-content .divider span{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;color:var(--muted)}.blog-post-theme .article-content .tools-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);margin:32px 0}@media (max-width:600px){.blog-post-theme .article-content .tools-grid{grid-template-columns:1fr}}.blog-post-theme .article-content .tool-cell{background:var(--surface);padding:22px 20px}.blog-post-theme .article-content .tool-name{font-family:var(--font-mono);font-size:13px;color:var(--accent);margin-bottom:10px}.blog-post-theme .article-content .tool-role{font-size:13px;color:var(--muted);line-height:1.55}.blog-post-theme .article-content strong{font-weight:500;color:var(--text)}.blog-post-theme .article-content em{font-style:italic;color:inherit}.blog-post-theme .article-content table{width:100%;border-collapse:collapse;margin:32px 0;border:1px solid var(--border)}.blog-post-theme .article-content td,.blog-post-theme .article-content th{padding:14px 18px;text-align:left;border:1px solid var(--border);font-size:14px;line-height:1.6}.blog-post-theme .article-content th{background:var(--surface);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.blog-post-theme .article-content td{background:var(--bg);color:var(--text)}.blog-post-theme .article-content td strong{color:var(--accent)}.blog-post-theme .article-content tr:hover td{background:var(--surface)}.blog-post-theme .post-navigation{max-width:720px;margin:80px auto 60px;border-top:1px solid var(--border);padding:48px 24px 0}.blog-post-theme .post-navigation-header{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:32px}.blog-post-theme .post-navigation-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:40px;gap:40px}@media (max-width:600px){.blog-post-theme .post-navigation-grid{grid-template-columns:1fr;gap:32px}}.blog-post-theme .post-nav-item{display:flex;flex-direction:column;gap:12px;text-decoration:none}.blog-post-theme .post-nav-item--next{text-align:right;align-items:flex-end}@media (max-width:600px){.blog-post-theme .post-nav-item--next{text-align:left;align-items:flex-start}}.blog-post-theme .post-nav-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px}.blog-post-theme .post-nav-item--next .post-nav-label{flex-direction:row-reverse}@media (max-width:600px){.blog-post-theme .post-nav-item--next .post-nav-label{flex-direction:row}}.blog-post-theme .post-nav-title{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:1.3;color:var(--text);transition:color .2s}.blog-post-theme .post-nav-item:hover .post-nav-title{color:var(--accent)}.blog-post-theme .posts-comments{max-width:720px;margin:60px auto;border-top:1px solid var(--border);padding:40px 24px 0}.blog-post-theme #disqus_thread{color:var(--text)}.blog-post-theme .oss{font-family:var(--font-display);font-style:italic;font-size:20px;color:var(--muted);margin-top:48px}.blog-post-theme .toc-sidebar{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:100;display:flex;align-items:stretch;max-height:70vh;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.blog-post-theme .toc-sidebar:hover{opacity:1;visibility:visible}.blog-post-theme .toc-progress-container{width:3px;background:var(--border);position:relative;flex-shrink:0;margin-right:0}.blog-post-theme .toc-progress{position:absolute;top:0;left:0;width:100%;background:var(--accent);transition:height .1s ease-out}.blog-post-theme .toc-content{background:var(--surface);border:1px solid var(--border);border-left:none;padding:16px 20px;max-width:240px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.blog-post-theme .toc-content::-webkit-scrollbar{width:4px}.blog-post-theme .toc-content::-webkit-scrollbar-track{background:transparent}.blog-post-theme .toc-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.blog-post-theme .toc-list{list-style:none;margin:0;padding:0}.blog-post-theme .toc-list li{padding:0;border-bottom:none;display:block;margin:0}.blog-post-theme .toc-list li:before{display:none}.blog-post-theme .toc-link{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-decoration:none;border-bottom:none;padding:8px 0;transition:color .2s ease;line-height:1.4}.blog-post-theme .toc-link:hover{color:var(--text);border-bottom:none}.blog-post-theme .toc-link--active{color:var(--accent)}.blog-post-theme .toc-link--h3{padding-left:12px;font-size:10px;text-transform:none}.blog-post-theme .toc-sidebar:before{content:"";position:absolute;left:0;top:-20px;bottom:-20px;width:60px;z-index:-1}@media (min-width:1200px){.blog-post-theme .toc-sidebar{left:calc(50% - 360px - 280px)}.blog-post-theme .toc-sidebar:before{width:80px}.blog-post-theme .toc-sidebar:hover,.blog-post-theme:hover .toc-sidebar{opacity:1;visibility:visible}.blog-post-theme .toc-sidebar{opacity:.3;visibility:visible}.blog-post-theme .toc-sidebar:hover{opacity:1}}@media (min-width:960px) and (max-width:1199px){.blog-post-theme .toc-sidebar{left:16px;opacity:.2;visibility:visible}.blog-post-theme .toc-sidebar:hover{opacity:1}.blog-post-theme .toc-content{max-width:200px}}@media (max-width:959px){.blog-post-theme .toc-sidebar{display:none}}.Home_container__d256j{padding:0 2rem}.Home_footer__yFiaX{flex-flow:column}.Home_footer__yFiaX,.Home_main__VkIEL{display:flex;justify-content:center;align-items:center}.Home_main__VkIEL{flex-flow:wrap;min-height:calc(100vh - 210px)}.Home_main__VkIEL h1{margin:0;font-size:3rem}.Home_main__VkIEL h2{margin:0;border:0;font-size:2rem;font-weight:600;text-transform:none}.Home_main__VkIEL h3{margin:0;font-size:1.5rem;font-weight:300}.Home_box__UdCoN{margin:1rem 0}.Home_box__UdCoN:first-child{order:3}.Home_box__UdCoN:nth-child(2){order:1}.Home_box__UdCoN:nth-child(3){order:2}.Home_link__Ytel_{border-bottom:4px solid var(--secondary);font-weight:800}.Home_link__Ytel_:hover{border-bottom-style:dashed}@media (min-width:720px){.Home_box__UdCoN{flex:1 1;margin:20px}.Home_box__UdCoN:first-child{order:1}.Home_box__UdCoN:nth-child(2){order:2}.Home_box__UdCoN:nth-child(3){order:3;flex:0 1}.Home_mainTitle__o5VAj{font-size:7rem;line-height:7rem}}@media (min-width:960px){.Home_box__UdCoN:first-child{flex:2 1;text-align:right}}