@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-Light.woff2") format("woff2");font-style:normal;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-LightItalic.woff2") format("woff2");font-style:italic;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-Regular.woff2") format("woff2");font-style:normal;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-Italic.woff2") format("woff2");font-style:italic;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-Medium.woff2") format("woff2");font-style:normal;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-MediumItalic.woff2") format("woff2");font-style:italic;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-Bold.woff2") format("woff2");font-style:normal;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla";src:url("../fonts/Piazzolla-BoldItalic.woff2") format("woff2");font-style:italic;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-Light.woff2") format("woff2");font-style:normal;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-LightItalic.woff2") format("woff2");font-style:italic;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-Regular.woff2") format("woff2");font-style:normal;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-Italic.woff2") format("woff2");font-style:italic;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-Medium.woff2") format("woff2");font-style:normal;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-MediumItalic.woff2") format("woff2");font-style:italic;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-Bold.woff2") format("woff2");font-style:normal;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:"Piazzolla SC";src:url("../fonts/PiazzollaSC-BoldItalic.woff2") format("woff2");font-style:italic;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:"Hack";src:url("../fonts/hack-regular-subset.woff2") format("woff2");font-style:normal;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:"Hack";src:url("../fonts/hack-italic-subset.woff2") format("woff2");font-style:italic;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:"Hack";src:url("../fonts/hack-bold-subset.woff2") format("woff2");font-style:normal;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:"Hack";src:url("../fonts/hack-bolditalic-subset.woff2") format("woff2");font-style:italic;font-weight:700;text-rendering:optimizeLegibility}:root{--type-serif: "Piazzolla", serif;--type-caps: "Piazzolla SC", serif;--type-mono: "Hack", monospace;--type-size: 18px;--type-weight: 400;--type-height: 1.4;--type-numeric: oldstyle-nums proportional-nums;--color-particles-text: var(--oc-gray-1);--color-particles-background: var(--oc-gray-9)}html,html[data-theme=light]{--color-background: var(--oc-gray-1);--color-text: var(--oc-gray-8);--color-heading: var(--oc-gray-8);--color-link: var(--oc-blue-8);--color-chunk: var(--oc-gray-8);--color-mark: var(--oc-yellow-3);--color-border: var(--oc-gray-4);--color-button-background: var(--oc-gray-1);--color-button-text: var(--oc-gray-8);--color-button-background-hover: var(--oc-gray-8);--color-button-text-hover: var(--oc-gray-1);--color-form: white;--color-form-placeholder: var(--oc-gray-6);--color-form-description: var(--oc-gray-6);--color-alert-background: var(--oc-gray-1);--color-progress-bar-background: var(--oc-gray-3);--color-progress-bar: var(--oc-gray-7);--color-progress-bar-text: var(--oc-gray-7);--color-progress-bar-tools-background: var(--oc-gray-3);--color-progress-bar-tools-text: var(--oc-gray-8);--color-post-reading-time: var(--oc-gray-6)}html[data-theme=dark]{--color-background: var(--oc-gray-9);--color-text: var(--oc-gray-3);--color-heading: var(--oc-gray-3);--color-link: var(--oc-blue-3);--color-chunk: var(--oc-gray-8);--color-mark: var(--oc-gray-8);--color-border: var(--oc-gray-7);--color-button-background: var(--oc-gray-9);--color-button-text: var(--oc-gray-3);--color-button-background-hover: var(--oc-gray-3);--color-button-text-hover: var(--oc-gray-8);--color-form: var(--oc-gray-8);--color-form-placeholder: var(--oc-gray-6);--color-form-description: var(--oc-gray-4);--color-alert-background: var(--oc-gray-8);--color-progress-bar-background: var(--oc-gray-8);--color-progress-bar: var(--oc-gray-6);--color-progress-bar-text: var(--oc-gray-6);--color-progress-bar-tools-background: var(--oc-gray-8);--color-progress-bar-tools-text: var(--oc-gray-4);--color-post-reading-time: var(--oc-gray-6)}body{font-family:var(--type-serif);font-size:var(--type-size);font-weight:var(--type-weight);line-height:var(--type-height);font-variant-numeric:var(--type-numeric);background-color:var(--color-background);color:var(--color-text)}svg circle,svg path{stroke:var(--color-text);stroke-width:.075em}a{text-decoration:none;color:var(--color-link)}a:focus,a:hover{border-bottom:calc(var(--type-size)/10) dotted var(--color-link);color:var(--color-link)}header{display:flex;justify-content:space-between;margin-top:1.5em;margin-bottom:2em}footer{margin:2em 0}h2,h3,h4{position:relative}small{font-weight:300}abbr{text-transform:lowercase;font-family:var(--type-caps)}blockquote{padding-left:1em;border-left:.1em solid var(--color-border);font-weight:300}mark{padding:.1em;border-radius:.25em;background-color:var(--color-mark);color:var(--color-text)}hr{border-top:.1em solid var(--color-text)}img{display:block;max-width:100%;margin:1em 0;border-radius:.25em}table.table{color:var(--color-text)}pre,code{font-family:var(--type-mono)}.highlight{padding:0 1em;border-radius:.25em;color:var(--color-chunk)}.highlight pre{padding:0;margin:0}.highlight .highlight{padding:0}h1,h2,h3{color:var(--color-heading)}h1 a,h2 a,h3 a{color:inherit}h1 a:focus,h1 a:hover,h2 a:focus,h2 a:hover,h3 a:focus,h3 a:hover{border-color:inherit;color:inherit}h1{font-size:1.5em}h1.page-title{margin:0}#home h1{margin-top:1.5em}h2{margin-top:1.25em;font-size:1.25em}h3{margin-top:1em;font-size:1em;text-transform:lowercase;font-family:var(--type-caps);font-weight:500}h2+h3{margin-top:0}.divider{width:100%;height:1px;background-color:#ccc;margin:20px 0}.heading-link{text-decoration:none !important;border-bottom:none !important;display:inline-block;vertical-align:middle;margin-left:.5rem;visibility:hidden}h2:hover .heading-link,h3:hover .heading-link,h4:hover .heading-link{visibility:visible}.heading-link img{display:inline-block;vertical-align:middle;width:26px;height:26px;transition:transform .2s ease}.heading-link img:hover{transform:scale(1.15)}.language-switcher{margin-top:0}.language-switcher .lang-link{margin-left:.5em;text-decoration:none}.language-switcher .lang-link::after{content:"|";margin-left:.5em}.language-switcher .lang-active::after{content:"|";margin-left:.5em}.footer-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:1em;margin-bottom:1em;flex-wrap:wrap}.footer-links{margin:0;padding:0}.footer-links a{margin-left:.5em}.footer-links a::after{content:"|";margin-left:.5em}.blog-back a{display:inline-block;border-bottom:2px dotted rgba(0,0,0,0);transition:all .2s ease}.blog-back a:hover{border-color:var(--color-link);transform:scale(1.05)}.post-nav{display:flex;justify-content:space-between;align-items:center;margin-top:2rem}.prev-post{text-align:left}.next-post{text-align:right}.post-nav a{display:inline-block;border-bottom:2px dotted rgba(0,0,0,0);transition:all .2s ease}.post-nav a:hover{border-color:var(--color-link);transform:scale(1.05)}.post-nav .page-info{font-size:1rem;color:var(--color-post-reading-time)}.post-tags{display:inline-block;font-size:.85rem;color:var(--color-post-reading-time);margin-bottom:.5rem}.post-tags a{display:inline-block;text-decoration:none;color:var(--color-text);background-color:var(--color-background);padding:.15rem .4rem;font-size:.85rem;border-radius:.5rem;border:1px solid var(--color-post-reading-time);transition:all .1s ease;margin-right:.3rem}.post-tags a:hover{background-color:var(--color-text);color:var(--color-background);cursor:pointer;transform:translateY(-1px);box-shadow:0 2px 5px rgba(0,0,0,.15)}.back-to-top{text-align:right;margin-top:1rem}.back-to-top a{display:inline-block;text-decoration:none;color:var(--color-link);font-size:1rem;border-bottom:2px dotted rgba(0,0,0,0);transition:all .2s ease}.back-to-top a:hover{border-color:var(--color-link);transform:scale(1.05)}.post-date{display:block;text-align:right;margin-top:1rem;font-size:1rem;color:var(--color-text)}.post-homepage-banner ul{list-style:none;padding:0;margin:1rem 0 1rem 0}.post-homepage-banner li{margin-bottom:.5rem}.post-homepage-banner a{text-decoration:none;color:var(--color-link)}.post-homepage-banner .post-title{font-size:1.5rem}.post-homepage-banner span{display:block;font-size:1rem;color:var(--color-text)}.post-homepage-banner p{margin-top:1rem;text-align:center}.post-homepage-banner .reading-time{font-size:.85rem;color:var(--color-post-reading-time);font-style:italic}.all-posts-link{margin-bottom:2rem}.blog-list{display:flex;flex-direction:column;gap:2rem}.blog-list .post-item{border-bottom:1px solid var(--color-border);padding-bottom:1rem}.blog-list .post-title{margin:0 0 .5rem 0;font-size:1.5rem}.blog-list .post-title a{text-decoration:none;color:var(--color-link)}.blog-list .post-lead{margin:0 0 .5rem 0;color:--color-text}.blog-list .reading-time{font-size:.85rem;color:var(--color-post-reading-time);margin-bottom:.5rem}.blog-list .post-date{font-size:.85rem;color:var(--color-post-reading-time);float:right}a.site-title{font-weight:500;color:var(--color-heading)}a.site-title:focus,a.site-title:hover{border-color:inherit;color:inherit}.search-container{max-width:500px;width:100%;margin:20px 0;box-sizing:border-box;text-align:left}.search-input{width:100%;padding:8px 12px;font-size:1em;border:1px solid var(--color-border);border-radius:4px;margin-bottom:10px;box-sizing:border-box;background-color:var(--color-form);color:var(--color-text);outline:none}.search-input:focus{outline:2px solid var(--color-link);outline-offset:2px}.search-results{list-style:none;padding:0;margin:0;border:1px solid var(--color-border);border-radius:5px;background:var(--color-background)}.search-results li{padding:10px;border-bottom:1px solid var(--color-border)}.search-results li:last-child{border-bottom:none}.search-results li a{text-decoration:none}.load-more{margin-top:10px}.no-results{color:var(--color-text);list-style:none;font-style:italic;font-size:1rem}.toggle-bar{display:flex;justify-content:end;padding-top:1.5em}.toggle-icon{color:var(--color-heading)}.toggle-icon:focus,.toggle-icon:hover{cursor:pointer;border:none}.toggle-icon:focus svg circle,.toggle-icon:focus svg path,.toggle-icon:hover svg circle,.toggle-icon:hover svg path{stroke-width:.1em}.message{padding:.25em 1em;border-radius:.25em;background-color:var(--color-mark);color:var(--color-text)}dd{padding-left:.5em}.archive ul,.contact ul{list-style-type:none;padding:0}.li-icon{margin-right:.25em}a.iconlink svg circle,a.iconlink svg path{stroke:var(--color-link)}a.iconlink:focus,a.iconlink:hover{border:none}a.iconlink:focus svg circle,a.iconlink:focus svg path,a.iconlink:hover svg circle,a.iconlink:hover svg path{stroke-width:.1em}.footnotes{margin-top:2em}.footnotes p{margin:0}.footnotes::before{content:"Notes"}a[href^="#fn:"]{margin-left:.1em;font-weight:500}a[href^="#fn:"]:focus,a[href^="#fn:"]:hover{font-weight:700;border:none}a.reversefootnote{font-weight:500}a.reversefootnote:focus,a.reversefootnote:hover{font-weight:700;border:none}.button{background-color:var(--color-background);color:var(--color-text);border:solid 2px var(--color-text);border-radius:12px;padding:8px 10px 8px 10px;margin:10px;text-decoration:none;transition:box-shadow .1s ease}.button:focus,.button:hover{border:solid 2px var(--color-text);color:var(--color-text);box-shadow:0 0 0 1px var(--color-text)}.contact-section{width:100%;max-width:40rem;margin-left:auto;margin-right:auto;padding:0 1rem;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,.1)}.contact-intro>*+*{margin-top:1rem}.contact-description{color:var(--color-form-description)}.form-group-container{display:grid;gap:1rem;margin-top:2rem}.form-group{display:flex;flex-direction:column}.form-label{margin-bottom:.5rem}.form-input,.form-textarea{padding:.5rem;border:1px solid #e5e7eb;background-color:var(--color-form);color:var(--color-text);display:flex;height:2.5rem;width:100%;border-radius:.375rem;font-size:.875rem;line-height:1.25rem}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-form-placeholder)}.form-input:focus-visible,.form-textarea:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.form-textarea{min-height:120px;color:var(--color-text)}.form-submit{background-color:var(--color-button-background);color:var(--color-button-text);border:solid 2px var(--color-text);border-radius:12px;padding:13px 5px;margin-top:1.2rem;text-decoration:none;transition:box-shadow .1s ease}.form-submit:focus,.form-submit:hover{border:solid 2px var(--color-text);color:var(--color-button-text-hover);background-color:var(--color-button-background-hover);box-shadow:0 0 0 1px var(--color-text)}.invalid-feedback,.empty-feedback{display:none}.was-validated :placeholder-shown:invalid~.empty-feedback{display:block}.was-validated :not(:placeholder-shown):invalid~.invalid-feedback{display:block}.is-invalid,.was-validated :invalid{border-color:#dc3545}.custom-feedback,.empty-feedback,.invalid-feedback{color:#f87171;font-size:.875rem;margin-top:.25rem}.alert-banner{display:flex;align-items:center;justify-content:center;padding:.5em 1em .5em 1em;text-align:center;position:fixed;top:0;left:0;z-index:1000;width:100%;font-size:1rem;box-sizing:border-box;box-shadow:0 4px 6px rgba(0,0,0,.2);font-weight:bold}.alert-icon{display:flex;align-items:center;margin-right:10px;font-size:2em}.alert-text{flex-grow:1}.alert-text a{color:var(--color-link);text-decoration:none}.alert-text a:hover{color:var(--color-link);text-decoration:dotted}.alert-close{margin-left:auto;padding-left:10px;background:none;border:none;font-size:2rem;color:inherit;cursor:pointer;transition:transform .2s ease-in-out}.alert-close:hover{transform:scale(1.1)}.alert-notice{background-color:var(--color-alert-background);color:var(--color-text)}.alert-warning{background-color:#fbebd1;color:#e65100}.alert-error{background-color:#ffd8de;color:#b71c1c}[data-non-dismissible] .alert-close{display:none}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.hidden{display:none !important}.progress-bar-container{width:100%;max-width:40rem;margin:15px auto 20px auto;padding:1rem 1rem;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,.1);box-sizing:border-box}.progress-bar-title{padding-left:8px}.progress-bar-unit{margin:15px auto 5px auto}.progress-bar{width:100%;height:30px;border-radius:8px;border:2px solid var(--color-border);background-color:var(--color-progress-bar-background);overflow:hidden;position:relative}.progress-bar span{height:100%;display:flex;align-items:center;justify-content:flex-end;width:0;color:var(--color-background);line-height:30px;position:absolute;text-align:end;padding-right:5px;border-radius:4px 8px 8px 4px;border:1px solid var(--color-border)}.progress-bar span:hover{background-color:var(--color-text);color:var(--color-background)}.progress-bar-one span{background-color:var(--color-progress-bar);color:var(--color-progress-bar-text);width:80%}.progress-bar-two span{background-color:var(--color-progress-bar);color:var(--color-progress-bar-text);width:80%}.progress-bar-three span{background-color:var(--color-progress-bar);color:var(--color-progress-bar-text);width:30%}.progress-bar-four span{background-color:var(--color-progress-bar);color:var(--color-progress-bar-text);width:50%}.progress-bar-five span{background-color:var(--color-progress-bar);color:var(--color-progress-bar-text);width:15%}.tools span{background:var(--color-progress-bar-tools-background);color:var(--color-progress-bar-tools-text);border:solid 2px var(--color-border);border-radius:8px;margin:5px 4px 5px 1px;padding:4px 8px;display:inline-block}.tools span:hover{color:var(--color-text);border:solid 2px var(--color-text)}.dots::after{content:"";animation:dot-blink 2s infinite steps(1, end)}@keyframes dot-blink{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}100%{content:"...."}}.loading{padding-left:10px}.start-side-image{position:relative}.side-image{position:absolute;width:50%;height:1600px;border-radius:8px;opacity:0;transition:opacity 1.5s ease-in-out;background-position:center;background-repeat:no-repeat}.side-image.left{left:-55%;top:0;transform:translateY(-1%);background-image:url("/assets/files/road-left.jpg")}.side-image.right{right:-55%;top:0;transform:translateY(-1%);background-image:url("/assets/files/road-right.jpg")}.start-side-image.visible .side-image{opacity:1}@media(max-width: 1200px){.side-image{display:none}}@media(max-width: 1200px){.parallax{height:200px;background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover;background-image:url("/assets/files/road-mountains-middle.jpg");border-radius:8px}}#particles-js{width:100%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;background-color:var(--color-particles-background)}#particles-js .particles-js-canvas-el{width:100%;height:99.5vh !important}#particles-js .jumbotron{position:absolute;top:44%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);pointer-events:none}.fullscreen{min-height:100vh}.fullscreen h1,.fullscreen h2{color:var(--color-particles-text)}.particles-photo{width:70%;height:auto;max-width:220px;border-radius:50%;margin:auto;margin-bottom:.5em}.particles-title{margin:0;font-size:2.5em;font-weight:500;white-space:nowrap}.particles-subtitle{margin:0 0 1em 0;font-size:1.25em;font-weight:400}.nowrap{white-space:nowrap}.particles-icon{margin:0 .5em;pointer-events:all}.particles-icon svg{-webkit-transform:scale(1.8);transform:scale(1.8)}.particles-icon svg circle,.particles-icon svg path{stroke:var(--color-particles-text) !important;stroke-width:.05em}.particles-icon:focus,.particles-icon:hover{border:none}.particles-icon:focus svg circle,.particles-icon:focus svg path,.particles-icon:hover svg circle,.particles-icon:hover svg path{stroke-width:.075em}.particles-scroll{position:absolute;bottom:5%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.particles-scroll .particles-icon{position:relative;-webkit-animation:pulse 1s infinite;animation:pulse 1s infinite}.particles-scroll svg{-webkit-transform:scale(2.7);transform:scale(2.7)}@keyframes pulse{from{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);opacity:.4;top:0}50%{-ms-filter:none;filter:none;opacity:1;top:-1rem}to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);opacity:.4;top:0}}.pagination{display:flex;margin-top:2em;text-align:center}.pagination-item{float:left;width:50%;padding:1em 2em;border:.075em solid var(--color-border);color:var(--color-button);-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.pagination-item svg circle,.pagination-item svg path{stroke:var(--color-button)}.pagination-item:first-child{margin-bottom:0;border-top-left-radius:var(--border-radius);border-bottom-left-radius:var(--border-radius)}.pagination-item:last-child{margin-left:-1px;border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}a.pagination-item{color:var(--color-text)}a.pagination-item svg circle,a.pagination-item svg path{stroke:var(--color-text)}a.pagination-item:focus,a.pagination-item:hover{background-color:var(--color-border);border:.075em solid var(--color-border)}@media(prefers-color-scheme: dark){html,html[data-theme=dark]{--color-background: var(--oc-gray-9);--color-text: var(--oc-gray-3);--color-heading: var(--oc-gray-3);--color-code: var(--oc-gray-3);--color-link: var(--oc-blue-3);--color-mark: var(--oc-gray-8);--color-border: var(--oc-gray-7);--color-button: var(--oc-gray-7)}html[data-theme=light]{--color-background: var(--oc-gray-1);--color-text: var(--oc-gray-8);--color-heading: var(--oc-gray-8);--color-code: var(--oc-gray-8);--color-link: var(--oc-blue-8);--color-mark: var(--oc-yellow-3);--color-border: var(--oc-gray-4);--color-button: var(--oc-gray-6)}}@media screen and (min-width: 768px){body{font-size:1.25em}.particles-title{font-size:3.5em}.particles-subtitle{font-size:1.75em}.particles-icon{margin:0 1em}.particles-icon svg{-webkit-transform:scale(2.4);transform:scale(2.4)}.particles-scroll svg{-webkit-transform:scale(3.6);transform:scale(3.6)}}@media only print{body{font-size:10pt;background-color:#fff;color:#000}a{color:#000}dd{padding-left:1.5em}.pagination{display:none}#cv header{margin:0}#cv .site-title{font-size:1.5em}#cv small{display:none}#cv .toggle-icon,#cv .li-icon,#cv .reversefootnote,#cv a.iconlink{display:none}}