@font-face{font-family:Montserrat;font-style:normal;font-weight:200;src:url(./montserrat-v14-latin-regular.1ByWinym.woff2)format("woff2")}:root{--background:#030303;--text-color:#979797;--title-color:#fff;--sub-title-color:#c7c7c7;--link-color:#979797;--link-color-over:#c7c7c7;--headbar-height:60px;--thumbnail-width:120px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;outline:none!important}body,html{background:var(--background)}body{color:var(--text-color);margin:0;font:200 17px/1.5em Montserrat,sans-serif}::selection{color:#030303;background:#fff}a{color:var(--link-color);cursor:pointer;border-bottom:1px dashed var(--text-color);text-decoration:none;transition:color .2s ease-out}a:hover{color:var(--link-color-over)}h1{font-size:1.7em}h2{font-size:1.5em}h3{font-size:1.3em}h1,h2,h3{color:var(--title-color);line-height:1em}h4,h5,h6{color:var(--sub-title-color);font-size:1rem}pre{-webkit-overflow-scrolling:touch;border-radius:4px;display:block;overflow:auto}code:not([class]){background:#222;border-radius:2px;padding:1px 8px}.devtin{isolation:isolate}.devtin,.legacy-container{min-height:100vh;position:relative}.legacy-container{z-index:1;width:min(100% - 32px,720px);padding:40px 16px calc(var(--headbar-height) + 45px);margin:0 auto}.legacy-container.with-headbar{padding-top:var(--headbar-height)}.devtin-headbar-container{z-index:100;pointer-events:none;background:linear-gradient(0deg,#03030300 0,#030303cc 50%,#030303);width:100vw;height:90px;transition:transform .3s ease-in-out;position:fixed;top:0;left:0}.devtin-headbar-container.off{transform:translateY(-100%)}.devtin-headbar{pointer-events:auto;border:0;width:44px;margin:9px auto 0;display:block}.devtin-headbar .logo{border:2px solid var(--title-color);border-radius:50%;width:44px;height:44px;display:block}.headbar-background{z-index:90;pointer-events:none;background:linear-gradient(#03030300 0,#030303cc 50%,#030303);height:100px}.bottom-menu,.headbar-background{position:fixed;bottom:0;left:0;right:0}.bottom-menu{z-index:100;height:var(--headbar-height);text-align:center;background:#434343;justify-content:center;align-items:center;gap:0;display:flex}.bottom-menu a{color:#030303;text-transform:uppercase;border:0;min-width:110px;padding:18px 22px;font-size:.78rem;line-height:24px}.bottom-menu a.router-link-active,.bottom-menu a:hover{color:#c7c7c7}.starfield{z-index:0;pointer-events:none;width:100vw;height:100vh;transition:all 1s ease-out;position:fixed;top:0;left:0}.starfield canvas.starfield{position:absolute}.about-me{z-index:1;position:relative}.about-logo{border:4px solid var(--title-color);border-radius:50%;width:120px;height:120px}.about-me h1{color:var(--title-color);margin:20px 0;font-size:36px;line-height:1.3em}.sep{color:#434343;text-align:center;margin:15px 0;font:200 1.15rem/1.5 Montserrat,sans-serif}.contact-card{gap:15px;margin-top:20px;display:flex}.contact-card a{color:#030303;text-align:center;background:#979797;border:0;border-radius:50%;width:40px;height:40px;font-size:.65rem;line-height:40px;transition:background .2s ease-out;display:block}.contact-card a:hover{background:#fff}.inner-section{padding-top:var(--headbar-height)}.blog-index{z-index:1;perspective:300px;text-align:center;position:relative}.portfolio-entry{cursor:pointer;min-height:120px;color:var(--sub-title-color);text-align:left;margin:0 -10px;transition:background-color .3s ease-out;display:flex;position:relative}.portfolio-entry:after,.portfolio-entry:before{content:"";z-index:2;opacity:0;width:15px;height:15px;transition:all .2s ease-out;position:absolute}.portfolio-entry:after{border-top:1px solid #fff;border-left:1px solid #fff;top:0;left:0;transform:translate(10px,10px)}.portfolio-entry:before{border-bottom:1px solid #fff;border-right:1px solid #fff;bottom:0;right:0;transform:translate(-10px,-10px)}.portfolio-entry:hover{background:#ffffff1a}.portfolio-entry:hover:after,.portfolio-entry:hover:before{opacity:1;transform:translate(0)}.entry-description{width:calc(100% - var(--thumbnail-width));text-transform:uppercase;padding:10px 20px 10px 10px;font-size:.75em}.entry-description h3{margin:0 0 .5em;line-height:1.5}.entry-description h3 a{border:0}.entry-description p{margin:0}.thumbnail{width:var(--thumbnail-width)}.thumbnail img{-o-object-fit:cover;object-fit:cover;width:120px;height:120px}.blog-index>.sep{margin:15px 0}.article,.project{z-index:1;padding-top:var(--headbar-height);position:relative}.article{max-width:720px}.article-header,.project-header{margin-bottom:35px;overflow:auto}.article-header .back-link,.project-header .back-link{display:none}.article h1,.project h1{text-transform:uppercase;max-width:calc(100% - 120px);margin:0 0 5px}.dek{color:var(--text-color);text-transform:uppercase;margin-top:0;font-size:1em;font-weight:400}.feature-image{-o-object-fit:cover;object-fit:cover;width:200px;height:200px;margin:0 auto 2em;display:block}.project-header{display:block}.project-header>div{min-height:120px}.project-header>img{float:right;-o-object-fit:cover;object-fit:cover;width:120px;height:120px;margin:0 0 10px 10px}.project-meta{border-block:1px solid #222;flex-wrap:wrap;gap:20px 40px;margin:20px 0 40px;padding:15px 0;display:flex}.project-meta div{min-width:90px}.project-meta dt{color:var(--sub-title-color);text-transform:uppercase;font-size:.7rem}.project-meta dd{margin:3px 0 0}.project-media{grid-template-columns:minmax(0,1fr) minmax(150px,.32fr);gap:20px;margin:0 0 50px;display:grid}.video-frame{aspect-ratio:16/10;background:#000;position:relative}.video-frame.portrait{aspect-ratio:9/16}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.legacy-tabs{margin-bottom:50px}.tab-labels{border-bottom:2px solid #222;display:flex}.tab-labels button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0 20px 12px;position:relative}.tab-labels button:after{content:"";opacity:0;background:#fff;height:2px;transition:all .2s ease-out;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(.4)}.tab-labels button.active,.tab-labels button:hover{color:#fff}.tab-labels button.active:after{opacity:1;transform:scaleX(1)}.tab-panel{padding-top:20px}.tab-panel .video-frame.portrait{width:min(100%,340px);margin:0 auto}.prose{color:var(--text-color)}.prose h2,.prose h3{margin-top:1.8em}.prose a{border-bottom-style:dashed}.prose pre{background:#222;padding:1em}.prose img{max-width:100%}@media (width<=600px){body{font-size:15px}.legacy-container{width:calc(100% - 20px);padding-inline:10px}.bottom-menu a{flex:1;min-width:0;padding-inline:8px}.project-media{grid-template-columns:1fr}.project-media .portrait{width:min(100%,280px);margin:0 auto}}
