﻿@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@800&display=swap");html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{margin-left:1em}body{line-height:1}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}h1,h2,h3,h4,h5,h6{font-family:"Montserrat",sans-serif}h1{font-size:3em}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.1em}h6{font-size:1em}h1,h2{line-height:1.1em;margin:.25em 0em}h3,h4,h5,h6{line-height:1.4em;margin:.25em 0em}h1,h2,h3{font-weight:800}h4,h5,h6{font-weight:700}html,body,button,html{font-size:16px;font-family:"Inter",sans-serif;line-height:1.4}code,pre{font-family:monospace}a{font-weight:500}small{font-size:.8em}strong{font-weight:800}html,body{height:100%;color:#1f2643;background-color:#f6f6f6;display:flex;flex-direction:column}*{box-sizing:border-box}img{max-width:100%}h1,h2{color:#061348}h3,h4,h5,h6{color:#1f2643}@media screen and (min-width: 781px){.hidden-desktop{display:none !important}}@media screen and (max-width: 780px){.hidden-mobile{display:none !important}}main{padding-top:2em;justify-content:center;display:flex;align-items:stretch}@media screen and (max-width: 780px){main{flex-direction:column-reverse}main .small .resume{width:100%}}@media print{main{padding-top:0;font-size:14px}}footer{display:flex;background-color:#f1e9e6;flex-shrink:0;justify-content:center}hr{display:block;width:100%;background-image:url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:ev='http://www.w3.org/2001/xml-events' viewBox='0 0 6 3'><style type='text/css'>.st0{animation:shift 0.4s linear infinite;}@keyframes shift {from {transform:translateX(0);}to {transform:translateX(6px);}}</style><polyline class='st0' points='-6,0 -3,3 0,0 3,3 6,0' stroke='%23000000' stroke-width='1' fill='none'></polyline></svg>");background-repeat:repeat;height:3px;box-sizing:border-box;border:none;margin:2em 0;background-clip:content-box}hr svg{fill:currentColor !important}a{color:#3b5bda}.flex{display:flex}.column{flex-direction:column}.pad{padding:1em;box-sizing:border-box}model-viewer{width:100%;min-height:400px}.small{box-sizing:border-box;padding:1em;padding-top:0;max-width:24em;width:100%}@media screen and (max-width: 1240px){.small{min-width:20em}}@media screen and (max-width: 780px){.small{min-width:100%}}.hidden{display:none}@media print{.hidden-print{display:none}}header a,footer a{text-decoration:none}.resume{display:flex;flex-direction:column;border-radius:0px;box-sizing:border-box}.resume a{text-decoration:none}.resume h3:not(:first-child){margin-top:2em}.resume-print .item,.resume .item{margin-bottom:1em}.resume-print .item aside,.resume .item aside{color:#3e4666}.resume-print .item .time,.resume-print .item .position,.resume .item .time,.resume .item .position{color:#1f2643;font-size:.8em;font-weight:700}.resume-print .item .content,.resume .item .content{font-size:1em;line-height:1.4}.resume-print .item h4,.resume .item h4{font-size:1em;margin:0}.resume-print .columns{gap:2em;display:flex}.resume-print .columns>div:nth-child(2){min-width:20em}.box{border-radius:0px;border:2px solid rgba(108,113,135,.2196078431);box-sizing:border-box;overflow:hidden}.box:hover{border-color:#000}.border{border-radius:0px;border:4px solid;box-sizing:border-box}.project-title>div{display:flex;flex-direction:row;justify-content:space-between}.project-title date{color:#3e4666}.modal{margin:2em auto;max-width:30em}.project,article .project{overflow:hidden;display:block;transition:all .3s;margin:2em 0;text-decoration:none;max-width:50em}.project:hover,article .project:hover{box-shadow:8px 8px 0 0}.project:hover .project-title,article .project:hover .project-title{background-color:#fff}.project .project-image,article .project .project-image{position:relative;width:100%;background:#f6f6f6;box-sizing:border-box;background-position:center;background-size:cover;border-bottom:0}.project .project-image video,article .project .project-image video{position:absolute}.project .project-image img,article .project .project-image img{margin:0}.project .project-title,article .project .project-title{background:#f6f6f6;transition:background-color 200ms ease;padding:1em;display:flex;flex-direction:column;gap:.2em;color:#1f2643}.project .project-title .heading,article .project .project-title .heading{font-family:"Montserrat",sans-serif;font-weight:bold}.annotated{width:100%;overflow-y:scroll;max-height:50vh}.annotated img{width:100%}.main-page{margin:1em 3em;margin-top:0;box-sizing:border-box}.main-page>*:first-child{margin-top:0}@media screen and (max-width: 1240px){.main-page{margin:1em;margin-top:0}}p,ol,ul,img{margin:1em 0}p:first-of-type,ol:first-of-type,ul:first-of-type,img:first-of-type{margin-top:0}article{font-size:1em;box-sizing:border-box;padding:1em;line-height:1.7;max-width:1000px;width:100%;align-self:center}article img,article video{max-width:100%}article img{margin:0}article li{margin:.5em 0}article ul{list-style:none;padding:0px;margin-left:0em;position:relative}article ul li:before{position:absolute;left:-1.25em;content:"❖";color:#7b61ff}@media screen and (max-width: 1100px){article ul{margin-left:1.25em}article ul li:before{left:-1.25em}}article h1,article h2,article h3,article h4,article h5,article h6{margin:1em 0 .5em 0}article h1{font-size:2em}article h2,article h3,article h4,article h5,article h6{font-size:1.4em}.project .video-thumbnail{opacity:0;transition:opacity .3s ease}.project:hover .video-thumbnail{opacity:1}header{padding:1em;display:flex;align-items:baseline;justify-content:center;gap:2em}header>a{text-decoration-thickness:3px !important;text-decoration:underline}header>a>h1{font-size:2em}header>div{display:flex;gap:1em}@media screen and (max-width: 460px){header>div{margin-top:1em;gap:.4em;flex-direction:column}}.nomargin{margin:0 !important}.nomargin h1,.nomargin h2,.nomargin h3,.nomargin h4,.nomargin h5,.nomargin h6{margin-top:0 !important}.split{margin:2em 0;display:flex;gap:4em}.split>*{flex-basis:100%}@media screen and (max-width: 960px){.split{flex-direction:column;gap:1em;align-items:center}}.split>:first-child :first-child{margin-top:0}.split.featured{margin:4em 0}.split.featured>:first-child{flex-basis:40%}.split.featured>:nth-child(2){flex-basis:60%}.split.spaced{margin:4em 0}.split p{margin:0;text-align:justify}@media screen and (max-width: 780px){.split p{text-align:inherit}}.split img,.split video{max-width:100%}.boxed>img,.boxed>p>img{border-radius:0px;border:#061348 4px solid;box-sizing:border-box;box-shadow:#061348 16px 16px 0 0}article img,article video{display:inline-block;margin:3em 0;border-radius:3px}article .split img,article .split video{margin:0}h1+.image,h2+.image,h3+.image,h4+.image,h5+.image,h6+.image{margin-top:0em}.text-color{color:#1f2643 !important}ins{display:block;margin:1em 0;text-decoration-color:rgba(117,234,106,.3098039216);color:#0f430a}ins::selection{background:rgba(24,188,9,.337254902)}ins:before{position:relative;left:-1em;width:0;display:inline-block;content:"+";text-decoration:none;color:#18bc09}@media screen and (max-width: 1100px){ins:before{width:1em;left:0}}ins .image-container{margin-top:0}footer{background-color:#f1e9e6;padding:4em}.gallery>p{margin:2em 0 4em 0;display:grid;grid-template-columns:repeat(3, 1fr);grid-template-rows:subgrid;gap:2em}.gallery>p img,.gallery>p video{margin:0}@media screen and (max-width: 780px){.gallery>p{grid-template-columns:repeat(2, 1fr)}}@media screen and (max-width: 520px){.gallery>p{grid-template-columns:repeat(1, 1fr)}}.device{margin-left:auto;margin-right:auto;width:fit-content}.device .image-container{margin:0;overflow-y:scroll;border-bottom-left-radius:11px;border-bottom-right-radius:11px}.device .image-container img,.device .image-container video{max-height:fit-content;border-radius:0;border:none;box-shadow:none;height:auto}.device.desktop,.device.mobile{border-radius:0px;border:4px solid;box-sizing:border-box;box-shadow:16px 16px 0 0;border-radius:0px}.device.desktop img,.device.desktop video,.device.mobile img,.device.mobile video{width:100%}.device.desktop .chrome,.device.mobile .chrome{align-items:center;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;background:#1f2643;border-radius:2px 2px 0 0;color:#f6f6f6;font-weight:700;padding:.4em 1em}.device.mobile{max-width:max-content;margin:2em auto}.device.mobile .image-container{aspect-ratio:6/13}.device.mobile img,.device.mobile video{width:100%}.device.desktop{max-height:inherit}.device.desktop .chrome .buttons{display:flex;gap:8px}.device.desktop .chrome .buttons>div{border-radius:1000px;height:16px;width:16px}.device.desktop .chrome .buttons>div:nth-child(3){background:#db4e3c}.device.desktop .chrome .buttons>div:nth-child(2){background:#dbce3c}.device.desktop .chrome .buttons>div:first-child{background:#93db3c}.device.desktop .image-container{aspect-ratio:4/3;overflow-y:scroll}button{background:#3b5bda;padding:1em 2em;border-radius:0px;color:#fff;font-size:1em;cursor:pointer;border:none}input{font-size:1em;padding:.4em .6em;border-radius:0px;border:4px solid #3b5bda}fieldset{display:flex;flex-direction:column;gap:.2em}fieldset label{color:#1f2643;font-size:1em;text-indent:.1em;font-weight:500}.warning{font-size:1em;background:rgba(184,35,16,.1);padding:.6em 1em;border-radius:0px;font-weight:500;border:#b82310 4px solid;box-sizing:border-box;box-shadow:#b82310 16px 16px 0 0;max-height:100vh}.side-by-side{display:flex;gap:4em;align-items:flex-start}.side-by-side>:first-child{flex-basis:40%;text-align:justify;width:100%;max-width:27em}.side-by-side>:nth-child(2){flex-basis:60%}.side-by-side .image-container{margin:0}@media screen and (max-width: 580px){.side-by-side{flex-direction:column;margin:0;gap:1em}}.tag{background-color:#f1e9e6;padding:.2em .5em;border-radius:1000px;border:rgba(108,113,135,.2196078431) 2px solid;display:inline-block}.portrait{border-radius:0px;float:right;width:min-content;max-width:120px;margin-bottom:2em;margin-left:2em}@media screen and (max-width: 960px){.portrait{float:none;display:block;width:100%;margin-left:0}}.twitter-tweet{border:1px solid rgba(108,113,135,.2196078431);padding:1em;border-radius:0px}date{white-space:nowrap}.description{font-size:1em;display:inline-block}a{display:inline-flex;text-decoration-thickness:2px;color:inherit}.button{display:inline-flex;text-decoration:none;align-items:center;gap:.2em;border:#000 2px solid;padding:.5em;transition:all 200ms ease-out}.button i{font-size:1.5em}.button i:last-child{position:relative;left:0;margin-left:auto;transition:left 200ms ease-out}.button:hover{background:#fff}.button:hover i:last-child{left:.2em}nav{flex-direction:column;gap:.5em;display:flex}nav .button{flex:1}blockquote,.pullquote,q{quotes:none;font-style:italic;border-left:2px solid #000;padding-left:16px}.pullquote{border-left-width:3px;font-size:1.5em;line-height:1.4em;margin:0 2rem;margin-bottom:1rem;float:right;max-width:12em}.pullquote::after{content:"”"}.pullquote::before{content:"“"}