:root{--contrast: #242a33;--contrast-2: #363f4d;--contrast-3: #e6e8eb;--base: #c5c8d1;--accent: #17e8e8;--link: #0a62a1;--white: #fff;--font: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);font-size:18px;line-height:1.6;color:var(--contrast-2);background:#fff}img{max-width:100%;height:auto}a{color:var(--link)}h1,h2,h3,h4{color:var(--contrast);line-height:1.2;margin:1.4em 0 .5em}h1{font-size:2.4rem;margin-top:0}h2{font-size:1.8rem}.container{max-width:1200px;margin:0 auto;padding:0 30px}.narrow{max-width:960px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.85rem;font-weight:700;color:var(--accent);margin:0 0 .5rem}.site-header{background:var(--contrast);position:sticky;top:0;z-index:20}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:70px}.logo img{display:block;height:40px;width:auto}.main-nav{display:flex;gap:28px}.main-nav a{color:var(--contrast-3);text-decoration:none;font-weight:500}.main-nav a:hover,.main-nav a.active{color:var(--accent)}.hero{position:relative;overflow:hidden;color:#fff;background:var(--contrast) url(/uploads/2019/10/cropped-background.jpg) left center / cover no-repeat}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#242a33fa 20%,#36404ecc)}.hero-inner{position:relative;z-index:1;padding-top:100px;padding-bottom:240px}.hero-text{width:55%}.hero h1{color:#fff;font-size:3.2rem}.btn-link{color:#fff;text-decoration:none;font-weight:700}.btn-link:hover{color:var(--accent)}.intro{position:relative;z-index:2;margin-top:-105px;background:#fff url(/uploads/2022/01/pattern.svg) no-repeat top 0 left 40px / 340px;overflow:hidden}.intro-inner{display:flex;justify-content:center;padding-top:110px;padding-bottom:80px}.intro-inner>div{width:66%;margin-top:60px}.intro .eyebrow{color:var(--link)}.skills{background:linear-gradient(180deg,var(--contrast) 28%,var(--contrast-2) 28%);padding:0}.skills-title{margin:0;padding:0 0 20px;color:#fff;font-weight:700;text-align:center;background:var(--contrast)}.skills .container{padding-bottom:0}.skills-row{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:30px 0 60px;background:var(--contrast-2)}.skill svg{height:64px;width:auto;max-width:140px;display:block;fill:#fff}.skill{display:inline-flex}.project{display:flex;align-items:center;gap:100px;padding-top:120px;padding-bottom:60px}.project>div{flex:1 1 0}.project h2{margin-top:0}.chips span{display:inline-block;margin:0 8px 8px 0;padding:2px 12px;border:1px solid var(--base);border-radius:20px;font-size:14px}.testimonials{position:relative;background:var(--contrast);color:var(--contrast-3);padding:60px 0;overflow:hidden}.testimonials:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/uploads/2022/01/pattern.svg) no-repeat top 40px right 40px / 400px;opacity:.2}.testimonials .container{position:relative}.t-grid{display:flex;gap:40px}.t-card{flex:1;margin:0;background:var(--contrast-2);padding:30px 35px;border-bottom:3px solid var(--accent)}.t-card blockquote{margin:0 0 20px;font-size:1.05rem}.t-card a{color:var(--accent)}.t-card figcaption{display:flex;align-items:center;gap:15px;font-size:.95rem}.t-card img{width:60px;height:60px;border-radius:50%;object-fit:cover}.latest{padding-top:60px;padding-bottom:60px}.latest h2{margin-top:0}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:40px}.post-card{display:flex;flex-direction:column}.post-card-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.post-card h2{font-size:1.4rem;margin:.8rem 0 .2rem}.post-card h2 a{color:var(--contrast);text-decoration:none}.post-card h2 a:hover{color:var(--link)}.meta{color:#6b7280;font-size:.9rem;margin:0 0 .6rem}.excerpt{margin:0 0 .6rem}.read-more{font-weight:700;text-decoration:none;margin-top:auto}.listing{padding-top:50px;padding-bottom:60px}.cats{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:30px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:40px}.single,.page{padding-top:50px;padding-bottom:60px}.featured{display:block;width:100%;margin-bottom:30px}.toc{background:#f4f5f7;border:1px solid var(--contrast-3);padding:14px 20px;margin:0 0 30px}.toc summary{cursor:pointer;font-weight:700}.toc ul{list-style:none;padding-left:0;margin:10px 0 0}.toc li{margin:3px 0}.toc .lvl-3{padding-left:18px}.toc .lvl-4{padding-left:36px}.post-nav{display:flex;justify-content:space-between;gap:30px;margin-top:50px;padding-top:20px;border-top:1px solid var(--contrast-3)}.post-nav .next{margin-left:auto;text-align:right}.prose h2,.prose h3,.prose h4{scroll-margin-top:90px}.prose figure{margin:1.5em 0}.prose figcaption{font-size:.85rem;color:#6b7280;text-align:center}.prose table{border-collapse:collapse;width:100%;margin:1.5em 0}.prose th,.prose td{border:1px solid var(--base);padding:8px 12px;text-align:left}.prose blockquote{border-left:4px solid var(--accent);margin-left:0;padding-left:20px;color:var(--contrast)}.prose pre{background:#272822;color:#f8f8f2;padding:16px 20px;overflow-x:auto;border-radius:4px;font-size:14px;line-height:1.5}.prose pre code{background:none;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.prose :not(pre)>code{background:#f1f2f4;padding:1px 5px;border-radius:3px;font-size:.9em}.prose .has-background{padding:1em 1.4em}.prose .has-luminous-vivid-orange-background-color{background:#ff6900}.prose .experience__context{font-weight:700;color:var(--contrast);font-size:1.1rem}.prose .experience__dates{color:#6b7280;font-size:.9rem}.prose .experience__title{font-weight:500;font-style:italic}.prose .experience__detail__technical{font-size:.9rem;color:#6b7280;margin:.4em 0 1em}.site-footer{background:var(--contrast);color:var(--contrast-3)}.site-footer a{color:var(--accent)}.site-footer h2{color:#fff;margin-top:0}.footer-contact{display:flex;gap:80px;padding-top:80px;padding-bottom:60px}.footer-info{flex:0 0 35%}.contact-form{flex:1;display:grid;gap:14px}.contact-form label{display:grid;gap:4px;font-size:.95rem}.contact-form input,.contact-form textarea{font:inherit;padding:10px 12px;border:1px solid var(--contrast-2);background:var(--contrast-2);color:#fff;border-radius:3px}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--accent)}.btn{display:inline-block;justify-self:start;font:inherit;font-weight:700;padding:10px 28px;border:0;border-radius:3px;background:var(--accent);color:var(--contrast);cursor:pointer;text-decoration:none}.btn:disabled{opacity:.6;cursor:wait}.form-success{background:#1b6b46;color:#fff;padding:10px 14px;margin:0;border-radius:3px}.form-error{color:#ff8a8a;font-size:.85rem}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.copyright{padding-top:20px;padding-bottom:30px;font-size:.85rem;border-top:1px solid var(--contrast-2)}@media(max-width:900px){h1,.hero h1{font-size:2.2rem}.hero-text,.intro-inner>div{width:100%}.hero-inner{padding-bottom:180px}.project,.footer-contact,.t-grid{flex-direction:column;gap:40px}.footer-info{flex:none}.cards{grid-template-columns:1fr}.skills-row{flex-wrap:wrap;justify-content:center}.main-nav{gap:16px}}
