a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,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:after,blockquote:before,q:after,q:before{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 0}h3,h4,h5,h6{line-height:1.4em;margin:.25em 0}h1,h2,h3{font-weight:800}h4,h5,h6{font-weight:700}body,button,html,html .main-page{font-size:24px;font-family:Inter,sans-serif;line-height:1.4}code,pre{font-family:monospace}a{font-weight:600}small{font-size:.8em}strong{font-weight:800}body,html{height:100%}body{color:#1f2643;background-color:#f7f3f1;display:flex;flex-direction:column}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}}footer{display:flex;background-color:#f1e9e6;flex-shrink:0;justify-content:center}hr{display:block;width:100%;opacity:.25;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 10 5'><style type='text/css'>.st0{animation:shift 0.4s linear infinite;}@keyframes shift {from {transform:translateX(0);}to {transform:translateX(10px);}}</style><polyline class='st0' points='-10,0 -5,5 0,0 5,5 10,0' stroke='%23000000' stroke-width='2' fill='none'></polyline></svg>");background-repeat:repeat;height:5px;box-sizing:border-box;border:none;margin:4em 0 4em 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;width:24em;font-size:.75rem}@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}}footer a,nav a{text-decoration:none}.resume{display:flex;flex-direction:column;border-radius:15px;box-sizing:border-box}.resume a{text-decoration:none}.resume h3:not(:first-child){margin-top:2em}.resume .item,.resume-print .item{margin:2em 0}.resume .item aside,.resume-print .item aside{color:#3e4666}.resume .item .time,.resume-print .item .time{color:#3b5bda;font-size:.8em;text-transform:uppercase;font-weight:700}.resume .item .content,.resume-print .item .content{font-size:.9em;line-height:1.4}.resume .item h4,.resume-print .item h4{margin:0}.resume-print{font-family:Arial,Helvetica,sans-serif;padding:2em;box-sizing:border-box;font-size:16px;width:8.5in;height:11in;margin:0 auto}.resume-print h2{margin-bottom:0}.resume-print h3{font-size:1.2em}.resume-print h4{font-size:1.05em}.resume-print h5{font-size:1em;font-weight:700}.resume-print>div:first-child{max-width:60%}.resume-print .item{margin:1em 0!important}.resume-print .columns{gap:2em;display:flex}.resume-print .columns>div:nth-child(2){min-width:20em}.box{border-radius:15px;border:4px solid;box-sizing:border-box;box-shadow:16px 16px 0 0;overflow:hidden}.border{border-radius:15px;border:4px solid;box-sizing:border-box}.modal{margin:2em auto;max-width:30em}.project,article .project{overflow:hidden;display:block;transition:box-shadow .3s;margin:2em 0;text-decoration:none;max-width:40em}.project:hover,article .project:hover{box-shadow:8px 8px 0 0}.project .project-image,article .project .project-image{position:relative;width:100%;background:#f7f3f1;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:#f7f3f1;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:700}.project .project-title>div:first-child,article .project .project-title>div:first-child{display:flex;justify-content:space-between}@media screen and (max-width:960px){.project .project-title>div:first-child,article .project .project-title>div:first-child{flex-direction:column}}.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}}img,ol,p,ul{margin:1em 0}img:first-of-type,ol:first-of-type,p:first-of-type,ul:first-of-type{margin-top:0}article{font-size:18px;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:0;margin-left:0;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{font-size:1.6em}article h3{font-size:1.4em}article h4{font-size:1.2em}article h5{font-size:1.1em}article h6{font-size:1em}.project .video-thumbnail{opacity:0;transition:opacity .3s ease}.project:hover .video-thumbnail{opacity:1}nav{padding:1em;display:flex;align-items:baseline;gap:2em}nav>div{display:flex;gap:1em}@media screen and (max-width:460px){nav>div{margin-top:1em;gap:.4em;font-size:16px;flex-direction:column}}nav a{text-decoration:none}@media screen and (max-width:780px){nav{flex-direction:column;gap:0}}.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:15px;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:0}.text-color{color:#1f2643!important}ins{display:block;margin:1em 0;text-decoration-color:#75ea6a4f;color:#0f430a}ins::selection{background:#18bc0956}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:15px;border:4px solid;box-sizing:border-box;box-shadow:16px 16px 0 0;border-radius:15px}.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:#f7f3f1;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}.locked{box-shadow:16px 16px rgba(6,19,72,.152941);font-size:24px;padding:2em;border:4px solid rgba(6,19,72,.0509804);background-color:rgba(6,19,72,.0509804);border-radius:15px}.locked h1,.locked h2,.locked h3,.locked h4,.locked h5,.locked h6{margin-top:0}@media screen and (max-width:520px){.locked{font-size:18px;padding:1em}}.locked .container{box-sizing:border-box;gap:2em;max-width:30em;display:flex;flex-direction:column;align-items:baseline;justify-content:center}.locked .container .password-container{display:flex;gap:1em;width:100%}@media screen and (max-width:780px){.locked .container .password-container{flex-direction:column}}.locked .container .password-container .password{flex-grow:1}button{background:#3b5bda;padding:1em 2em;border-radius:15px;color:#fff;font-size:1em;cursor:pointer;border:none}input{font-size:1em;padding:.4em .6em;border-radius:15px;border:4px solid #3b5bda}fieldset{display:flex;flex-direction:column;gap:.2em}fieldset label{color:#1f2643;font-size:.8em;text-indent:.1em;font-weight:600}.warning{font-size:18px;background:rgba(184,35,16,.1);padding:.6em 1em;border-radius:15px;font-weight:600;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(167,155,96,.219608) 2px solid;display:inline-block}.portrait{border-radius:15px;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}}.links{display:flex;justify-content:space-between;flex-wrap:wrap}.links>a{padding:.5em;white-space:nowrap}@media screen and (max-width:960px){.links{display:inline-flex;flex-direction:column}.links>a{padding-left:0}}.twitter-tweet{border:1px solid rgba(167,155,96,.219608);padding:1em;border-radius:15px}date{white-space:nowrap}.description{font-size:.75em;line-height:1.3;display:inline-block}