html{font-size:clamp(1em,2vw,1.25em);font-family:Roboto,system-ui,sans-serif;font-weight:400}body{margin:0;background-color:#333;color:#fff}.is-full-height{display:flex;min-height:100vh}.is-full-height.section{min-height:calc(100vh - 6rem)}*:has(>.is-centered){display:flex;align-items:center;justify-content:center}.section{padding:3rem 3rem}.with-left-space{margin-left:.5em}div:has(>span.slides){overflow-y:hidden;width:100%}.slides{position:relative;overflow-y:hidden;--slides-total-duration: calc(var(--slides-count) * var(--slides-duration, 2s))}.slides>span,.slides>div{position:absolute;top:-1.2em;will-change:transform;animation:text-slider-animation var(--slides-total-duration) linear infinite;animation-delay:calc(var(--subtitle-position)*var(--slides-duration, 2s))}@keyframes text-slider-animation{0%{transform:translateY(0)}10%{transform:translateY(1.2em)}33%{transform:translateY(1.2em)}40%{transform:translateY(2.4em)}99.99%{transform:translateY(2.4em)}100%{transform:translateY(0)}}.articles{display:flex;flex-wrap:wrap;justify-content:space-evenly;gap:3em;margin-left:auto;margin-right:auto;padding-left:5vw;padding-right:5vw;max-width:1300px;min-height:100vh}.articles>article{padding-top:2rem;padding-bottom:0;width:100%;border-image:linear-gradient(to right, rgba(0,0,0,0) 10%, #1ca7d9 50%, rgba(0,0,0,0) 90%) 1;border-top:.1em solid}.articles>article:nth-child(1){border-top:0}.articles>article>p.post-link{margin-top:1.5em}.articles>article>p.post-link>a{float:right;color:#fff;border:.2em solid #a17a49;padding:.5em;box-shadow:inset 0 -3em #a17a49}.articles>article>p.post-link>a:hover{box-shadow:inset 0 -3em #a17a49}.articles>article>h2{font-family:Quantify,sans-serif;font-size:x-large;margin-top:.3rem;margin-bottom:.2em}.articles>article>h2>a{text-decoration:none;color:#1ca7d9}.articles>article>h4{margin:0}.articles>article>h3{font-size:small;font-weight:normal;margin:0;white-space:nowrap}.articles>article>p{font-size:large;font-weight:lighter;line-height:1.7em;color:#fff}.articles>article>p a{color:#fff;text-decoration:none;word-wrap:break-word;border:none;box-shadow:inset 0 -4px #a17a49;transition-property:box-shadow;transition-duration:.1s;transition-timing-function:ease-out}.articles>article>p a:hover{box-shadow:inset 0 -1em #a17a49;color:#fff;text-shadow:0 0 1px #fff}.articles>article~div{width:40%;padding-bottom:1rem}.articles>article~div>a{color:#fff;text-decoration:none;word-wrap:break-word;border:none;box-shadow:inset 0 -4px #a17a49;transition-property:box-shadow;transition-duration:.1s;transition-timing-function:ease-out}.articles>article~div>a:hover{box-shadow:inset 0 -1em #a17a49;color:#fff;text-shadow:0 0 1px #fff}.articles>article~div~div>a{float:right}@media (min-width: 910px){.articles article{width:40%}.articles article:nth-child(2n){margin-top:7rem}.articles article:nth-child(1){border-top:0;margin-top:0}.articles article>p.post-link>a{box-shadow:inset 0 0 #a17a49}}@media (min-width: 1110px){.articles article{width:45%}}@media (min-width: 1350px){.articles article{width:30%}.articles article:nth-child(3){border-top:0}}.page{margin-left:auto;margin-right:auto;padding-left:5vw;padding-right:5vw;max-width:900px;font-weight:300}.page h1,.page h2,.page h3{color:#1ca7d9}.page h1{font-family:Quantify,sans-serif;font-size:2rem;margin-top:0;margin-bottom:2rem}.page h2{font-size:1.2rem;margin:2.4rem 0 1.4rem}.page p{text-align:justify;font-style:normal;margin:0 0 2.2rem;line-height:1.5em}.page p:has(+ul){margin:0}.page img{display:block;margin-left:auto;margin-right:auto}.page ul{margin-bottom:2.2rem}.page ul>li{margin:0 0 1.4rem;line-height:1.5em}.page pre{overflow:auto;padding:1em;font-size:large;line-height:1.5em;margin:0 0 2.2rem;white-space:pre-wrap;word-wrap:break-word;border-left:.2rem solid #a17a49;border-radius:.4em}.page a{color:#fff;text-decoration:none;word-wrap:break-word;border:none;box-shadow:inset 0 -4px #a17a49;transition-property:box-shadow;transition-duration:.1s;transition-timing-function:ease-out}.page a:hover{box-shadow:inset 0 -1em #a17a49;color:#fff;text-shadow:0 0 1px #fff}.page>h4{margin-bottom:.5rem}.page table{width:100%;margin-bottom:1em;padding:0;border-collapse:collapse;border-bottom:solid .05em #555}.page table th{background-color:#a17a49;padding:.5rem 1rem}.page table td{padding:.5rem 1rem}.page table thead tr{border-left:solid .05em #a17a49;border-right:solid .05em #a17a49}.page table tbody tr{border-left:solid .05em #555;border-right:solid .05em #555}.page table tbody tr:nth-child(even){background-color:#555}@media (min-width: 910px){.page h1{font-size:3.5rem;padding-left:.3em;border-left:.3em solid #1ca7d9}}h4:has(>.tags){margin-top:0}.tags{display:inline-flex;align-items:center;border-radius:4px;color:#4a4a4a;font-size:.6rem;height:2em;padding-left:.5em;padding-right:.5em;white-space:nowrap;background-color:#f5f5f5}.tags-frontend{background-color:wheat}.tags-css{background-color:skyblue}.tags-html{background-color:#f08080}.tags-devops{background-color:#20b2aa}.tags-backend{background-color:#90ee90}.tags-java{background-color:#ffa07a}.tags-tools{background-color:khaki}.tags-spring{background-color:#6db33f}.tags-monthly-links{background-color:#ffebcd}.tags-made-by-ai{background-color:#f3baf3}.date{float:right}.date span{font-style:italic}.page .date{margin-top:.5em;font-size:.7rem}.articles>article .date{margin-top:.2em;font-size:.7rem}.resume-container{width:100%;max-width:800px;padding:2rem}.resume-title{font-family:Quantify,sans-serif;font-size:2.5rem;margin-bottom:2rem;color:#fff;text-align:center}.resume-section{margin-bottom:2rem}.resume-section h3{font-family:Hack,sans-serif;color:#1684ac;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:.5rem;margin-bottom:1rem}.resume-item{margin-bottom:1.5rem}.resume-item-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.resume-item-title{font-weight:bold;color:#fff}.resume-item-period{color:rgba(255,255,255,.6)}.resume-item-company{color:#a17a49;margin-bottom:.5rem}.resume-item-details{color:rgba(255,255,255,.8);padding-left:1.5rem;margin-top:.5rem}.skills-container{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{background-color:rgba(22,132,172,.2);color:#fff;padding:.3rem .8rem;border-radius:4px;font-size:.9rem}@media (max-width: 768px){.resume-item-header{flex-direction:column;align-items:flex-start}.resume-item-period{margin-top:.25rem}}@font-face{font-family:"Quantify";src:url("/quantify-20260227.woff2") format("woff2");font-display:swap}@font-face{font-family:"Hack";src:url("/hack-regular-subset-20260227.woff2") format("woff2");font-display:swap}div:has(+.serious-devs-title){color:rgba(255,255,255,.6);margin-left:.2em}div:has(+.serious-devs-title)>span{float:right;margin-right:.3em}.serious-devs-title{font-family:Quantify,sans-serif;font-size:clamp(2.9rem,5vw,6rem);text-transform:uppercase}.serious-devs-title>svg{height:.75em;width:1em}.serious-devs-title>span{color:#1684ac}.serious-devs-title+div{position:relative;font-family:Hack,sans-serif;font-size:1.5rem;color:rgba(255,255,255,.6)}.serious-devs-title+div>div{position:absolute;right:0}.serious-devs-title+div .slides{color:#a17a49}li.serious-devs-title{font-size:clamp(.8rem,6vw,2rem)}.nav-top-margin{padding-top:calc(clamp(.8rem,6vw,2rem)*1.4 + 2rem)}nav{display:flex;align-items:center;justify-content:space-between;padding:.3rem 0;position:fixed;width:calc(100vw - 0rem);top:0;background:#333;z-index:100}nav>ul{display:flex;align-items:center;list-style:none;margin-top:0;margin-bottom:0}nav>ul:nth-child(1){padding-left:clamp(1rem,5vw,20rem)}nav>ul:nth-child(2),ul:nth-child(3){padding-right:clamp(1rem,5vw,20rem)}nav>ul:nth-child(2){flex-direction:column;justify-content:center;flex:1 0 auto;position:absolute;width:100%;background-color:#333;top:calc(1rem + clamp(.8rem,6vw,2rem)*1.4);left:100vw;transition:left .5s ease-in;height:calc(100vh - (1rem + clamp(.8rem,6vw,2rem)*1.4));padding-left:0}nav>ul:nth-child(2) li{margin:0;padding:0 15%}nav>ul:nth-child(2) li a{display:flex;align-items:center;font-size:2.5rem;padding:1.5rem}nav>ul>li{margin-left:2rem;margin-right:0}nav>ul>li.logo{padding-top:.3em}nav>ul>li.logo>a>img{width:calc(clamp(.8rem,6vw,2rem)*1.4)}nav>ul>li:nth-child(1){margin-left:0}nav>ul>li>a:hover{color:#fff}nav>ul>li>a{color:rgba(255,255,255,.6);text-decoration:none;transition-duration:.3s;transition-timing-function:ease-in}nav>ul>li.active>a{color:#fff;text-decoration:rgba(255,255,255,.6) underline;text-underline-offset:.5em}.burger>label>span{display:block;height:calc(clamp(.8rem,6vw,2rem)*1.4);width:calc(clamp(.8rem,6vw,2rem)*1.4)}.burger>label>span>span{display:block;height:.1rem;margin:.5rem auto calc(clamp(.8rem,6vw,2rem)*1.4/3 - .1rem);width:calc(clamp(.8rem,6vw,2rem)*1.4);background-color:#fff;transition:.3s ease-out;transform-origin:0 0}.burger>input{display:none}.burger:has(>input:checked)>label>span>span:nth-child(1){transform:rotate(45deg) translateY(-.1rem)}.burger:has(>input:checked)>label>span>span:nth-child(2){visibility:hidden;opacity:0}.burger:has(>input:checked)>label>span>span:nth-child(3){transform:rotate(-45deg) translateY(.1rem)}nav>ul:has(+ul>li.burger>input:checked){left:0}@media (min-width: 910px){nav>ul:nth-child(3){display:none}nav>ul:nth-child(2){height:unset;position:unset;width:unset;display:flex;flex-direction:row;flex:0 0 auto;justify-content:flex-end}nav>ul:nth-child(2) li>a{font-size:inherit;padding:0}}.footer{font-size:x-small;background:#333;padding:.5rem 0 .5rem clamp(1rem,5vw,20rem);position:sticky;bottom:0}.gradient-top-border{border-image:linear-gradient(to right, rgba(0,0,0,0) 10%, #1ca7d9 50%, rgba(0,0,0,0) 90%) 1;border-top:.1em solid}button.contact-button,a.button{margin-top:1em;float:right;font-size:large;font-weight:lighter;line-height:1.7em;color:#fff;color:#fff;text-decoration:none;word-wrap:break-word;border:none;box-shadow:inset 0 -4px #a17a49;transition-property:box-shadow;transition-duration:.1s;transition-timing-function:ease-out;background-color:rgba(0,0,0,0);border:.2em solid #a17a49;padding:.5em;box-shadow:inset 0 -3em #a17a49;margin-bottom:1em}button.contact-button:hover,a.button:hover{box-shadow:inset 0 -1em #a17a49;color:#fff;text-shadow:0 0 1px #fff}button.contact-button:hover,a.button:hover{box-shadow:inset 0 -3em #a17a49}@media (min-width: 910px){button.contact-button,a.button{box-shadow:inset 0 0 #a17a49}}.contact-form{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:center;gap:1em}.contact-form div{flex-basis:100%;margin-top:.5em;margin-right:1em}.contact-form div>label{display:block;padding-bottom:.5em}.contact-form div>input,.contact-form div textarea{background-color:rgba(0,0,0,0);color:#fff;width:100%;padding:.5em;border-radius:10px;border:gray solid .1em;line-height:1.5em;font-weight:300;font-size:1rem}.contact-form div>textarea{height:10em}.hp-field{position:absolute;left:-9999px}@media (min-width: 910px){.contact-form div:nth-child(1),.contact-form div:nth-child(2){flex-basis:calc(50% - 2em)}}.contact-links{display:flex;flex-flow:row wrap;gap:1em}.contact-links a{box-shadow:inset 0 0 #a17a49}.contact-links a:hover{box-shadow:inset 0 0 #a17a49;color:#d3d3d3}.contact-links a svg{width:2em}.contact-links a svg path{fill:currentColor}.contact-alert{display:none;padding:12px 14px;border-radius:8px;margin:12px 0;font-weight:bold;font-size:.75rem}.contact-alert:target{display:block}.alert-success{color:#00d1b2;background:rgba(0,209,178,.2);border:1px solid rgba(0,209,178,.5)}.alert-error{color:#d1002d;background:rgba(209,0,45,.2);border:1px solid rgba(209,0,45,.5)}