@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;700&family=IBM+Plex+Sans:wght@300;700&display=swap";:root{--color-bg: #191919;--color-bg-header: #000000;--color-bg-lighter: #333333;--color-fg: #ddddee;--color-fg-darker: #999999;--color-blue: #1177ff;--color-green: #11cc66;--font-sans: "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace;--header-height: 8rem;--content-width: 8in;color-scheme:dark}html{font-size:16px;letter-spacing:.001px}body{padding:0;margin:0;color:var(--color-fg);background-color:var(--color-bg);font-family:var(--font-sans)}a{color:var(--color-blue)}h1{font-family:var(--font-mono);font-size:3rem;padding:3rem 0;margin:0;color:var(--color-fg)}h2{font-size:2.25rem;font-weight:lighter;margin-top:2rem;margin-bottom:1rem;color:var(--color-blue)}code[class*=language-],pre[class*=language-]{color:var(--color-foreground);background:none;font-family:var(--font-mono);font-size:.875rem;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1rem;margin:.5rem 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:var(--color-bg-header)}:not(pre)>code{padding:.1rem .3rem;border-radius:.3rem;white-space:normal;font-family:var(--font-mono);font-size:.875rem;color:var(--color-fg);background-color:var(--color-bg-lighter)}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata,.token.punctuation{color:gray}.token.tag{color:#87cefa}.token.attr-name,.token.namespace,.token.deleted,.token.function-name,.token.boolean,.token.number,.token.function,.token.property,.token.class-name,.token.constant,.token.symbol{color:#40e0d0}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:orchid}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:orange}.token.operator,.token.entity,.token.url{color:var(--color-fg)}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:#90ee90}.layout>.header{background-color:var(--color-bg-header)}.layout>.header>.title{font-size:2rem}.layout>.header>.logoContainer{display:flex;height:calc(var(--header-height) / 2);justify-content:center;align-items:center;flex-grow:1}.layout>.header>.logoContainer>.logo{display:block;position:relative;width:7.5rem;height:2.5rem}.layout>.header>.logoContainer>.logo>.leftBar{position:absolute;width:1rem;height:100%;left:2.25rem;background-color:var(--color-blue)}.layout>.header>.logoContainer>.logo>.rightBar{position:absolute;width:1rem;height:100%;right:2.25rem;background-color:var(--color-blue)}.layout>.header>.logoContainer>.logo>.line{position:absolute;top:calc(50% - 1.5px);z-index:1;width:100%;height:3px;background-color:var(--color-fg)}.layout>.header>.menuItems{display:grid;grid-template-columns:1fr 1fr 1fr;margin:0 auto;height:calc(var(--header-height) / 2);max-width:calc(8in + 2rem);justify-content:space-evenly;align-items:center}.layout>.header>.menuItems>.menuItem{min-width:6rem;text-align:center;font-size:1.1rem;white-space:nowrap}.layout>.header>.menuItems>.menuItem>a{color:var(--color-fg);border-bottom:1px solid transparent;transition:border-bottom-color .2s ease-in;text-decoration:none}.layout>.header>.menuItems>.menuItem>a:hover{border-bottom-color:var(--color-fg)}.layout>.header>.menuItems>.menuItem>a:active{color:var(--color-blue);border-bottom-color:var(--color-blue)}.layout>.header>.menuItems>.menuItem>a>.construction{font-size:.8rem}@media print{.layout>.header{display:none}}.layout>.mainContainer{margin:0 .25in}.layout>.mainContainer>main{width:100%;max-width:var(--content-width);min-height:calc(100vh - var(--header-height));margin-left:auto;margin-right:auto;padding-bottom:6rem}@media print{.layout>.mainContainer>main{padding-bottom:0}}.layout>.mainContainer.full{margin:0}.layout>.mainContainer.full>main{width:100%;max-width:100%;padding-bottom:0}.layout>footer{background-color:var(--color-bg-header);padding-bottom:10rem;padding-top:4rem}.layout>footer>.content{display:grid;grid-template-columns:1fr 1fr 1fr;justify-items:center;max-width:8in;margin:0 auto}.layout>footer>.content>section>h2{font-size:1.25rem;margin:0}.layout>footer>.content>section>div{font-size:.8rem;line-height:1.5rem}.layout>footer>.content>section>div>a{text-decoration:none;color:var(--color-fg);transition:color .5s}.layout>footer>.content>section>div>a:hover{color:var(--color-blue);text-decoration:underline}@media print{.layout>footer{display:none}}@media print{body{--color-bg: white;--color-fg: black}}.index{height:calc(100vh - var(--header-height));overflow:hidden;display:grid;gap:0}.index>.left{display:flex;align-items:center;justify-content:center}.index>.left>.text{font-family:var(--font-mono);font-size:2.1vw;padding:0 5vw;margin:0;height:9vw;overflow:hidden}.index>.left>.text>.nowrap{white-space:nowrap}.index>.left>.text>.nowrap>.phoenetic{color:var(--color-fg-darker)}.index>.left>.text>.definition{transition:opacity 1s;padding-left:1rem}.index>.left>.text>.definition.hidden{opacity:0}@media (orientation: landscape){.index>.left>.text{width:100%}}@media (orientation: portrait){.index>.left>.text{font-size:4.5vw;width:100%;height:100%;margin-top:12vh}}@media (orientation: landscape){.index>.left{grid-column:1 / span 1}}@media (orientation: portrait){.index>.left{grid-row:1 / span 1}}.index>.right{background-color:var(--color-fg)}.index>.right>.bigImage{opacity:.9;width:100%;height:100%;object-fit:cover}@media (orientation: landscape){.index>.right{grid-column:2 / span 1}}@media (orientation: portrait){.index>.right{grid-row:2 / span 1}}@media (orientation: landscape){.index{grid-template-columns:1fr 1fr}}@media (orientation: portrait){.index{grid-template-rows:33% auto}}.blog{display:grid;grid-template-columns:auto;row-gap:1.5rem}.blog>.post{display:grid;grid-template-columns:auto 200px;margin:0 -.25in;padding:.25in;border:1px solid var(--color-bg-lighter);border-radius:.5rem}.blog>.post>.details{grid-column:1 / span 1;display:flex;flex-direction:column;padding:0;padding-right:.5rem;margin:-.2rem 0;overflow:hidden}.blog>.post>.details>h2{flex-basis:0;margin:0;padding:0;margin-bottom:.5rem;font-size:1.5rem;font-family:var(--font-mono);font-weight:700}.blog>.post>.details>h2>a{text-decoration:none;color:var(--color-fg);transition:color .5s}.blog>.post>.details>h2>a:hover{text-decoration:underline;color:var(--color-blue)}.blog>.post>.details>.brief{flex-basis:0;flex-grow:3}.blog>.post>.details>.brief>p{padding:0;margin:0;font-size:.9rem;-webkit-hyphens:auto;hyphens:auto;text-align:justify}.blog>.post>.details>.footer{flex-basis:0;width:100%;height:100%;color:var(--color-fg-darker)}.blog>.post>.details>.footer>.date,.blog>.post>.details>.footer>.readTime{display:inline-block;white-space:nowrap;margin-right:1rem;font-size:.9rem;font-weight:lighter}.blog>.post>.details>.footer>.date>svg,.blog>.post>.details>.footer>.readTime>svg{fill:currentColor;width:1.25rem;height:1.25rem;vertical-align:bottom;margin-right:.25rem}@media (max-aspect-ratio: 4/3){.blog>.post>.details{grid-column:unset;grid-row:2 / span 1;padding:0}}.blog>.post>.imageContainer{display:block;grid-column:2 / span 1;width:100%;height:150px;overflow:hidden}.blog>.post>.imageContainer img{width:100%;height:100%;object-fit:cover;border-radius:.5rem}@media (max-aspect-ratio: 4/3){.blog>.post>.imageContainer{grid-column:unset;grid-row:1 / span 1;height:unset;margin-bottom:1rem}}@media (max-aspect-ratio: 4/3){.blog>.post{grid-template-columns:unset;grid-template-rows:200px auto}}.blog>.pagination{display:grid;grid-template-columns:1fr 1fr;font-size:1.25rem}.blog>.pagination>.prev{display:block;text-align:left}.blog>.pagination>.next{display:block;text-align:right}.post{font-size:1.125rem}.post>h1{text-align:left;padding-bottom:0}@media (orientation: portrait){.post>h1{padding-top:2rem;font-size:2rem}}.post>.meta{padding-bottom:3rem;color:var(--color-fg-darker)}.post>.meta>.date,.post>.meta>.readTime{display:inline-block;white-space:nowrap;margin-right:1rem;color:var(--color-fg-darker);font-size:.9rem;font-weight:lighter}.post>.meta>.date>svg,.post>.meta>.readTime>svg{fill:currentColor;width:1.25rem;height:1.25rem;vertical-align:bottom;margin-right:.25rem}.post>.coverImage{display:block;width:100%;height:calc(50vw - .25in);max-height:4in;object-fit:cover;border-radius:1rem}.post>.content{padding-top:1rem}.post>.content p{margin:1.125rem 0;-webkit-hyphens:auto;hyphens:auto;text-align:justify}.post>.content a{word-wrap:break-word}.post>.content pre{padding:1rem;margin:1rem 0;font-size:1rem;border-left:2px solid var(--color-blue);border-radius:1rem;background-color:var(--color-bg-header);overflow-x:auto}.post>.content code{font-family:var(--font-mono)}.post>.content strong{font-weight:700}.post>.content blockquote{padding:1rem;margin:1rem 0;border-left:2px solid var(--color-blue);border-radius:1rem;background-color:var(--color-bg-lighter)}.post>.content blockquote p{padding:0;margin:0}.post>.content img{display:block;width:100%;border-radius:1rem}.post>.content small{display:block;text-align:right;color:var(--color-fg-darker)}.post>.content iframe{display:block;margin:0;width:100%;height:480px;border:0;border-radius:1rem}.daylight{padding-top:1px;color:var(--color-fg);background-color:var(--color-blue)}.daylight .header h1{text-align:center}.daylight .header .inputs{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem;row-gap:.5rem;align-items:center;max-width:20rem;margin:auto;padding:0 1rem}.daylight .header .inputs>input{padding:.5rem;font-size:1rem;width:calc(100% - 1rem);color:var(--color-fg);border:1px solid var(--color-fg-darker);background-color:var(--color-bg-lighter);border-radius:.5rem}.daylight .solsticeMinutesGained{margin-top:2rem;text-align:center;font-size:1.5rem}.daylight .suns{display:flex;position:relative}.daylight .suns img{display:block}.daylight .suns .sunrise,.daylight .suns .sunset{padding:0;flex-grow:1}.daylight .suns .sunset img{margin:0 0 0 auto}.daylight .suns .guy{display:block;position:absolute;top:51px;margin-top:-20px}.daylight .timeLabels{position:relative;margin-left:auto;margin-right:auto;width:100%;height:0}.daylight .timeLabels .left,.daylight .timeLabels .right{position:absolute;top:10px;left:0}.daylight .timeLabels .right{left:auto;right:0}.daylight .graph{background-color:var(--color-bg)}.daylight .graph canvas{display:block;margin:0;padding:0}.music{display:grid;grid-template-columns:1fr 1fr;column-gap:4.5rem;row-gap:1.5rem}.music>.track{display:grid;grid-template-rows:1fr auto auto;row-gap:1rem;margin:0 -.25in;padding:1rem .25in;border:1px solid var(--color-bg-lighter);border-radius:.5rem}.music>.track>h3{font-size:1.5rem;font-family:var(--font-mono);margin:0;padding:0}.music>.track>h3>svg{fill:var(--color-fg-darker);width:1.4rem;height:1.4rem;vertical-align:bottom;margin-right:.5rem;position:relative;bottom:.2rem}.music>.track>h3>.releaseYear{display:inline-block;padding-left:.5rem;font-size:1rem;font-weight:400;color:var(--color-fg-darker);font-family:var(--font-sans)}.music>.track>.art{width:100%;border-radius:.5rem}.music>.track>.stores{display:flex;align-items:center;gap:.75rem}.music>.track>.stores>a{color:var(--color-fg-darker);transition:color .5s}.music>.track>.stores>a:hover{color:var(--color-blue)}.music>.track>.stores>a>svg{width:2rem;height:2rem;fill:currentColor}.music>.track>.stores>.comingSoonDate{height:2rem}@media (orientation: portrait){.music{grid-template-columns:1fr}}.projects{display:grid;grid-template-columns:auto;row-gap:1.5rem}.projects>.project{display:grid;grid-template-columns:200px auto;margin:0 -.25in;padding:.25in;border:1px solid var(--color-bg-lighter);border-radius:.5rem}.projects>.project>.details{display:flex;flex-direction:column;padding:0;padding-left:1.5rem;margin:-.2rem 0;overflow:hidden}.projects>.project>.details>h2{flex-basis:0;margin:0;padding:0;margin-bottom:.5rem;font-size:1.5rem;font-family:var(--font-mono);font-weight:700;color:var(--color-fg-darker)}.projects>.project>.details>h2>a{text-decoration:none;color:var(--color-fg);transition:color .5s}.projects>.project>.details>h2>a:hover{text-decoration:underline;color:var(--color-blue)}.projects>.project>.details>h2>a>svg{width:1.25rem;height:1.25rem;fill:var(--color-blue);vertical-align:middle;padding:0 0 .125rem .5rem}.projects>.project>.details>.footer{flex-basis:0;width:100%;height:100%;color:var(--color-fg-darker)}.projects>.project>.details>.footer>.date{display:inline-block;white-space:nowrap;margin-right:1rem;font-size:.9rem;font-weight:lighter}.projects>.project>.details>.footer>.date>svg{fill:currentColor;width:1.25rem;height:1.25rem;vertical-align:bottom;margin-right:.25rem}.projects>.project>.details>.brief{flex-basis:0;flex-grow:3}.projects>.project>.details>.brief>p{padding:0;margin:0;-webkit-hyphens:auto;hyphens:auto;text-align:justify}@media (max-aspect-ratio: 4/3){.projects>.project>.details{grid-column:unset;grid-row:2 / span 1;padding:0}}.projects>.project>.imageContainer{width:100%;height:150px;overflow:hidden}.projects>.project>.imageContainer img{width:100%;height:100%;object-fit:cover;border-radius:.5rem}@media (max-aspect-ratio: 4/3){.projects>.project>.imageContainer{grid-column:unset;grid-row:1 / span 1;height:unset;margin-bottom:1rem}}@media (max-aspect-ratio: 4/3){.projects>.project{grid-template-columns:unset;grid-template-rows:200px auto}}.resumeLanding>form{padding-top:3rem;width:14rem}.resumeLanding>form>label{display:block;font-size:.8rem;padding-bottom:.5rem}.resumeLanding>form>input[type=text]{width:calc(100% - 1rem - 2px);padding:.25rem .5rem;font-size:1.5rem;font-family:var(--font-mono);border:1px solid var(--color-fg-darker);border-radius:.5rem;background-color:var(--color-bg-lighter)}.resumeLanding>form>.dash{padding:0 .5rem}.resumeLanding>form>.submitContainer{padding-top:1rem;position:relative}.resumeLanding>form>.submitContainer>input[type=submit]{padding:.5rem 0;width:100%;border:0;border-radius:.5rem;color:var(--color-fg);background-color:var(--color-blue);font-size:1rem;font-family:var(--font-sans);cursor:pointer}.resumeLanding>form>.submitContainer>input[type=submit]:disabled{opacity:.5;cursor:progress}.resumeLanding>h3{margin-top:4rem}.resume h1{margin:0;padding:0;margin-top:3rem;margin-bottom:3rem;display:flex;flex-direction:row;align-items:baseline;gap:.5rem}.resume h1 .name{flex-grow:1}.resume h1 .socialLink{display:flex;flex-direction:column;align-items:center;font-size:1rem;font-weight:400;text-decoration:none;color:var(--color-fg);font-family:var(--font-sans);transition:color .5s}.resume h1 .socialLink:hover{color:var(--color-blue)}.resume h1 .socialLink svg{width:2rem;height:2rem}@media print{.resume h1{margin-top:0;margin-bottom:1rem;color:#000}}.resume h2{margin-top:2rem;margin-bottom:1rem;color:var(--color-blue);break-after:avoid}.resume h3{margin-bottom:.75rem;font-size:1.5rem;break-after:avoid}.resume ul{padding-inline-start:1rem}.resume ul>li{margin-top:.7rem}.resume ul>li>ul{padding-inline-start:2rem}.resume ul>li>ul>li{margin-top:.3rem}.resume strong{color:var(--color-blue)}.resume .soft{color:var(--color-fg-darker);font-style:italic}.resume .cell{flex-grow:1;flex-basis:66%}.resume .right{text-align:right;flex-basis:33%}.resume .linkToLatest{display:none;text-align:right;color:var(--color-fg-darker);font-size:.9rem}.resume .linkToLatest+h2{margin-top:0}@media print{.resume .linkToLatest{display:block}}.resume .contactInfo{display:flex}.resume .skillSet{margin:.2rem 0}@media print{.resume .skillSet{break-inside:avoid}}.resume .skillSet>h4{margin:0;padding:0 .5rem 0 .4rem;display:inline-block;position:relative;top:.55rem;left:.5rem;font-size:.8rem;background-color:var(--color-bg)}.resume .skillSet>.skillGrid{display:grid;padding:.8rem .8rem .5rem;border-radius:.5rem}.resume .skillSet>.skillGrid.basic{border:1px solid var(--color-fg-darker)}.resume .skillSet>.skillGrid.intermediate{border:1px solid var(--color-blue)}.resume .skillSet>.skillGrid.expert{border:1px solid var(--color-green)}.resume .skillSet>.skillGrid.col4{grid-template-columns:1fr 1fr 1fr 1fr}@media (max-width: 7.75in){.resume .skillSet>.skillGrid.col4{grid-template-columns:1fr 1fr}}@media (max-width: 4.5in){.resume .skillSet>.skillGrid.col4{grid-template-columns:1fr}}.resume .skillSet>.skillGrid>.skill{margin:.1rem 0rem .1rem 0;white-space:nowrap}.notFound{text-align:center}.notFound>h1{margin-bottom:0;padding-bottom:0}.notFound>.subtitle{color:var(--color-blue);font-size:.8rem}
