@charset "UTF-8";*,::after,::before{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{min-height:100vh;line-height:1.55}ol[class],ul[class]{list-style:none}a{color:inherit;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img{display:block}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}.noselect{-webkit-user-select:none;-moz-user-select:none;user-select:none}body,html{height:100%;background-color:#2e3037;font-family:"Fira Sans",sans-serif;text-shadow:0 1px 0 rgba(0,0,0,.6588235294);color:#c4c4c4}h1,h2,h3,h4,h5{font-family:"Fira Sans Condensed",sans-serif;color:#eaeaea}p,ul{font-size:17px;color:#c4c4c4}a{text-decoration-thickness:2px;text-decoration-color:#cccbcb;text-underline-offset:4px;transition:color .2s ease;color:#eaeaea}a:hover{text-decoration-color:#ddd5bd;color:#ddd5bd}a.external{display:inline-block}a.external svg{width:.65em;height:.65em;margin-left:.3em;fill:currentColor;vertical-align:middle;position:relative;top:-.15em;font-size:14px}img{height:auto;width:100%}.desktop-text{display:inline-block}.mobile-text{display:none}.email b{font-weight:400}.email b:nth-child(2){display:none}.title{font-size:35px;font-weight:600;margin-bottom:30px;line-height:1.2}.subheading{font-size:28px;margin-top:45px;margin-bottom:20px;font-weight:500}.line{margin-top:45px}.line:after,.line:before{content:"";display:block;height:2px;background-color:#363840}.line:before{background-color:#292935}.line-margin{margin-bottom:45px}.line-robots{margin-top:0;margin-bottom:30px}.image-link{margin-top:40px;margin-bottom:40px;display:block}.image-smaller{max-width:500px;margin-left:auto;margin-right:auto}.caption{font-style:italic;font-size:13px;margin:auto;display:block;text-align:center;margin-top:10px;color:#c4c4c4}.wrapper{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"nav nav" "main main" "footer footer";max-width:730px;min-height:100vh;box-sizing:content-box;padding-left:clamp(20px,4vw,60px);padding-right:clamp(20px,4vw,60px);margin:auto;position:relative;z-index:1;overflow-y:clip}.two-column .wrapper{grid-template-columns:7fr 3fr;grid-template-rows:auto auto 1fr auto;grid-template-areas:"nav nav" "title title" "main sidebar" "footer footer";-moz-column-gap:50px;column-gap:50px;max-width:1150px}.two-column .title_container{grid-area:title}nav{grid-area:nav;margin-bottom:15px}main{max-width:730px;grid-area:main;margin-bottom:70px}.sidebar{grid-area:sidebar}footer{grid-area:footer}.elsewhere_links{display:flex;margin-top:40px}.elsewhere_links a{display:flex;align-items:center;text-decoration:none;font-size:17px}.elsewhere-img{max-width:18px;margin-right:5px}.post{margin-bottom:20px}.post-title{display:block;margin-bottom:2px;color:#eaeaea}@media only screen and (max-width:800px){.desktop-text{display:none}.mobile-text{display:inline-block}.two-column .wrapper{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;grid-template-areas:"nav" "title" "main" "sidebar" "footer";-moz-column-gap:0;column-gap:0}.two-column main{max-width:100%;margin-bottom:0}.two-column footer{margin-top:50px}.subheading{font-size:25px}.image-smaller{max-width:100%}.navigation_links li a{padding:5px!important}}nav{height:110px;width:100%;display:flex;justify-content:space-between;align-items:center}.navigation_links{list-style-type:none}.navigation_links li{display:inline-block}.navigation_links li+li:before{content:"·";padding:0 0;color:#c4c4c4}.navigation_links li a{font-size:16px;text-transform:lowercase;padding:10px;font-weight:500;text-decoration-line:none}.navigation_links li.active a{color:#ddd5bd}.logo{height:55px;width:55px;margin-left:-6px;touch-action:none}.logo canvas{height:55px!important;width:55px!important}.sidebar{position:sticky;align-self:start;top:50px;padding-left:5%}.subheading-sidebar{font-size:20px;margin-bottom:18px}.subheading-sidebar:first-child{margin-top:0}.text-sidebar{font-size:14px;color:#97979f}.sidebar_list li{padding-top:2px;padding-bottom:2px}.sidebar_list li:first-child{padding-top:0}.sidebar_list li:last-child{padding-bottom:0}.sidebar_list a{font-size:15px;text-decoration:none}.sidebar_list a:hover{color:#ddd5bd}.list_bordered li{border-bottom:1px solid #363840;padding-top:8px;padding-bottom:8px}.list_bordered li:first-child{padding-top:0}.list_bordered li:last-child{border:none;padding-bottom:0}.break{white-space:nowrap}@media only screen and (max-height:600px){.sidebar{position:inherit;top:0}}@media only screen and (max-width:950px){.sidebar{position:inherit;top:0}}@media only screen and (max-width:800px){.two-column .sidebar{position:inherit;top:0;margin-top:35px;padding:0}.two-column .sidebar_list li{padding-top:4px;padding-bottom:4px}.two-column .sidebar_list li a{font-size:17px}.two-column .subheading-sidebar{font-size:25px}.two-column .text-sidebar{font-size:17px;padding-top:3px}.two-column .list_bordered li{border:none;padding-top:8px;padding-bottom:8px}}.button_container{width:120px;height:50px;grid-column:2;border-radius:18px;transform:rotate(-1deg) scale(1.04);margin-top:8px;margin-left:2px}.button_container:hover .starfield{opacity:1}.form-button{width:100%;height:100%;border-radius:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(to bottom,#5e6176 0,#424050 51%,#3c3c47 100%);border:none;outline:0;cursor:pointer;position:relative;z-index:2;animation:swing .7s ease-out infinite;transition:box-shadow .4s ease-out;box-shadow:rgba(38,38,44,.12) 0 6px 12px -2px,rgba(0,0,0,.14) 0 3px 7px -3px}.form-button:after{content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;box-shadow:inset 0 0 18px #333338}.form-button:hover{animation:shake 1s infinite;box-shadow:0 0 80px 10px #242832}.form-button:active{transform:scale(.99) rotate(-1.2deg)!important;background:linear-gradient(to bottom,#333338 0,#41455a 51%,#4a4a50 100%)}.button-text{margin-left:6px;z-index:2;font-family:"Fira Sans Condensed",sans-serif;font-size:18px;font-weight:600;text-transform:lowercase;color:#eaeaea;text-shadow:0 1px 0 rgba(0,0,0,.6588235294)}.button-icon{height:45px;width:auto;margin-left:-25px;position:relative;z-index:2;transform:rotate(-3deg)}@keyframes swing{0%,100%{transform:rotate(-2.8deg)}50%{transform:rotate(-.8deg)}}@keyframes shake{0%{transform:scale(1.09) rotate(-1deg)}10%{transform:scale(1.06) rotate(-3deg)}20%{transform:scale(1.09) rotate(0)}30%{transform:scale(1.05) rotate(-1deg)}40%{transform:scale(1.09) rotate(0)}50%{transform:scale(1.05) rotate(-2deg)}60%{transform:scale(1.08) rotate(-1deg)}70%{transform:scale(1.05) rotate(-2deg)}80%{transform:scale(1.09) rotate(0)}90%{transform:scale(1.07) rotate(-1deg)}100%{transform:scale(1.1) rotate(-2deg)}}.starfield{transition:opacity .3s ease-out;opacity:0}.star{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;margin-top:-5px;width:55px;height:55px;background-color:#67696b;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);transform:translate(-50%,-50%);pointer-events:none;animation:shoot 3s ease-out infinite,fade 3s ease-out infinite;transition:opacity .2s ease-out}@keyframes shoot{0%{transform:none}}@keyframes fade{to{opacity:0}}.star:nth-child(1){left:2px;font-size:9px;transform:translate(2px,-10px) rotate(42deg);animation-duration:.72s}.star:nth-child(2){left:-12px;font-size:27px;transform:translate(13px,1px) rotate(25deg);animation-duration:845ms}.star:nth-child(3){left:-76px;font-size:9px;transform:translate(88px,-45px) rotate(70deg);animation-duration:.86s}.star:nth-child(4){left:16px;font-size:30px;transform:translate(113px,134px) rotate(31deg);animation-duration:875ms}.star:nth-child(5){left:73px;font-size:27px;transform:translate(65px,-28px) rotate(59deg);animation-duration:555ms}.star:nth-child(6){left:-119px;font-size:28px;transform:translate(-114px,120px) rotate(21deg);animation-duration:785ms}.star:nth-child(7){left:68px;font-size:18px;transform:translate(-70px,20px) rotate(16deg);animation-duration:635ms}.star:nth-child(8){left:-97px;font-size:29px;transform:translate(6px,149px) rotate(60deg);animation-duration:675ms}.star:nth-child(9){left:-21px;font-size:32px;transform:translate(110px,-98px) rotate(91deg);animation-duration:.99s}.star:nth-child(10){left:-52px;font-size:30px;transform:translate(-83px,-33px) rotate(2deg);animation-duration:805ms}.star:nth-child(11){left:-44px;font-size:25px;transform:translate(-107px,-87px) rotate(48deg);animation-duration:.59s}.star:nth-child(12){left:-79px;font-size:10px;transform:translate(42px,135px) rotate(32deg);animation-duration:765ms}.star:nth-child(13){left:-129px;font-size:10px;transform:translate(-43px,-3px) rotate(30deg);animation-duration:.99s}.star:nth-child(14){left:-89px;font-size:27px;transform:translate(48px,62px) rotate(88deg);animation-duration:.72s}.star:nth-child(15){left:44px;font-size:8px;transform:translate(-13px,110px) rotate(74deg);animation-duration:.92s}.star:nth-child(16){left:74px;font-size:21px;transform:translate(-37px,105px) rotate(37deg);animation-duration:645ms}.star:nth-child(17){left:25px;font-size:23px;transform:translate(-9px,69px) rotate(63deg);animation-duration:.58s}.star:nth-child(18){left:65px;font-size:15px;transform:translate(-58px,-88px) rotate(18deg);animation-duration:795ms}.star:nth-child(19){left:59px;font-size:24px;transform:translate(126px,69px) rotate(85deg);animation-duration:.7s}.star:nth-child(20){left:31px;font-size:26px;transform:translate(-118px,-128px) rotate(52deg);animation-duration:.74s}.star:nth-child(21){left:-125px;font-size:21px;transform:translate(75px,-36px) rotate(54deg);animation-duration:.93s}.star:nth-child(22){left:4px;font-size:11px;transform:translate(-95px,73px) rotate(68deg);animation-duration:545ms}.star:nth-child(23){left:-61px;font-size:24px;transform:translate(-52px,-90px) rotate(42deg);animation-duration:.89s}.star:nth-child(24){left:1px;font-size:27px;transform:translate(-65px,-127px) rotate(22deg);animation-duration:.86s}.star:nth-child(25){left:10px;font-size:9px;transform:translate(-30px,47px) rotate(61deg);animation-duration:.87s}.star:nth-child(26){left:-73px;font-size:27px;transform:translate(91px,-93px) rotate(22deg);animation-duration:995ms}.star:nth-child(27){left:50px;font-size:22px;transform:translate(-70px,112px) rotate(6deg);animation-duration:735ms}.star:nth-child(28){left:20px;font-size:12px;transform:translate(62px,-96px) rotate(11deg);animation-duration:.87s}.guestbook_container{margin-top:50px;margin-bottom:50px}.guestbook_container:last-child{border-bottom:none}.guestbook-entry{display:grid;grid-template-columns:100px 1fr;gap:3px 30px;padding-top:30px;padding-bottom:30px;border-bottom:1px solid #363840;align-items:center}.guestbook-entry:first-child{padding-top:0}.guestbook-entry:last-child{border:none;padding-bottom:0}.guestbook-entry span{display:block}.label{font-size:15px;font-family:"Fira Sans Condensed",sans-serif;font-weight:500;text-transform:lowercase;color:#97979f}.label:last-of-type{align-self:baseline}.name{font-size:16px;font-weight:500;display:block;justify-self:start;text-decoration-line:none;color:#eaeaea}.date{font-size:13px;font-style:italic;color:#97979f}.message{font-family:"IBM Plex Mono",monospace;font-size:14px;font-weight:500;margin-left:0;align-self:baseline}.form{display:grid;grid-template-columns:100px 1fr;gap:20px 30px;align-items:center;margin-top:30px}input,textarea{height:45px;width:100%;display:block;border:1px solid #292935;box-shadow:0 1px 0 #363840,inset 0 2px 2px rgba(0,0,0,.2);border-radius:3px;padding-left:10px;padding-right:10px;background-color:#41444d;font-family:"Fira Sans",sans-serif;font-weight:400;font-size:15px;color:#c4c4c4}input::-moz-placeholder,textarea::-moz-placeholder{opacity:.4;color:#c4c4c4}input::placeholder,textarea::placeholder{opacity:.4;color:#c4c4c4}textarea{height:auto;resize:vertical;min-height:100px;max-height:250px;padding:10px}.confirmation,.form-telepathy{display:none}@media only screen and (max-width:800px){.guestbook-entry{grid-template-columns:80px 1fr;-moz-column-gap:20px;column-gap:20px}.form{grid-template-columns:1fr;row-gap:0;margin-top:20px}.button_container{grid-column:1;margin-top:30px}label{margin-top:10px;margin-bottom:7px}label:first-child{margin-top:0}label:last-child{margin-bottom:0}textarea{min-height:150px}}.title_container{margin-bottom:25px}.title_container .title{margin-bottom:3px}.grid_item{display:grid;grid-template-columns:120px auto;gap:20px;align-items:center;padding-top:30px;padding-bottom:30px;border-bottom:1px solid #363840}.grid_item:first-child{padding-top:0}.grid_item:last-child{padding-bottom:0;border-bottom:0}.item-image{height:100%;border-radius:2px}.item_content{height:100%;display:flex;flex-direction:column;justify-content:space-around}.item_content .date{padding-top:10px;display:block;width:100%;font-size:13px;color:#97979f}.item_header{display:flex;align-items:center}.item-title{font-family:"Fira Sans",sans-serif;font-size:18px;font-weight:500;margin-right:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration-line:none;color:#eaeaea}.info-link{font-size:11px;padding-left:5px;padding-right:5px;padding-top:1px;padding-bottom:1px;border-radius:4px;border:1px solid #464653;text-decoration:none;transition:.1s ease background-color;color:#c4c4c4}.info-link:hover{border-color:#363840;background-color:#363840;color:#c4c4c4}.hidden{display:none}.double_image{display:flex;gap:20px;margin-top:40px;margin-bottom:40px}.item-excerpt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-top:6px}@media only screen and (max-width:800px){.double_image{flex-direction:column;gap:40px}}@media only screen and (max-width:500px){.grid_item{grid-template-columns:90px auto;gap:15px}.header_listing .schematic-link{display:none}.item-title{white-space:wrap}.item-excerpt{-webkit-line-clamp:1}}.projects_list{margin-top:45px!important}.projects_list li{padding-top:30px;padding-bottom:30px;border-bottom:1px solid #363840}.projects_list li:first-child{padding-top:0}.projects_list li:last-child{padding-bottom:0;border-bottom:0}.projects_list p{padding-top:5px}.project-title{font-family:"Fira Sans",sans-serif;font-size:18px;font-weight:500;text-decoration-line:none;color:#eaeaea}footer{height:40px}.footer-text{font-size:14px;font-weight:400;text-shadow:0 1px 0 rgba(0,0,0,.6588235294);color:#97979f}