html{--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}body{color-scheme:light;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium);margin:0}:root{--bg-color-light: #FFFFFF;--text-color-light: #000000;--main-header-color-light: #a5c4f6;--main-content-color-light: #c9daf8;--main-hover-color-light: #48505e;--bg-color-dark: #222222;--text-color-dark: #FFFFFF;--main-header-color-dark: #000080;--main-content-color-dark: #0000b3;--main-hover-color-dark: #000033;--filter-light: invert(100%);--filter-dark: none;--bg-color: var(--bg-color-light);--text-color: var(--text-color-light);--main-header-color: var(--main-header-color-light);--main-content-color: var(--main-content-color-light);--main-hover-color: var(--main-hover-color-light);--filter: var(--filter-light)}app-root{display:block;height:100%}#root{display:block;height:100%}body{height:100vh;height:100dvh;background-color:var(--bg-color)}*{font-size:12px;font-family:Times New Roman;overflow:hidden;line-height:normal;grid-template-rows:1fr;-webkit-user-select:none;user-select:none;margin:0;background-color:var(--bg-color);color:var(--text-color);transition-property:background-color,color,filter;transition-duration:.5s}.main{padding:0;max-width:1024px;margin-left:auto;margin-right:auto;display:grid;grid-template-rows:auto 1fr auto;position:relative;height:100%}.container-portrait{transition:all .5s}.sidebar-container{height:auto;background-color:var(--main-header-color);display:inherit}.sidebar-show{left:0;right:0;position:absolute}.sidebar-hidden{left:-100vw;right:100vw;position:absolute}.sidebar{grid-template-columns:1fr;overflow-y:scroll;scrollbar-width:none;background-color:var(--main-header-color)}.viewport-container{height:100%;grid-template-columns:1fr;display:inherit;transition:all .5s}.viewport{height:100%;overflow-y:scroll;scrollbar-width:none}.viewport table{width:100%;height:100%}.viewport-show{right:0;left:0;position:absolute}.viewport-hidden{right:-100vw;left:100vw;position:absolute}h1{font-size:20px;font-weight:700;text-align:center}h2{text-align:center;font-size:14px;font-weight:700;margin:8px 0}h3{margin-top:8px;margin-bottom:4px}.sidebar-header{background-color:var(--main-header-color);padding:8px;margin:0}@media (hover : hover){.sidebar-header:hover{background-color:var(--main-hover-color)}.sidebar-header:hover.nolink{background-color:var(--main-header-color)}}.sidebar-header *{background-color:var(--main-header-color)}.sidebar-content{display:grid;margin:0;transition:all .5s;padding:4px;background-color:var(--main-content-color)}.sidebar-content *{background-color:var(--main-content-color)}.sidebar-content table{display:block}.education-header{font-weight:700}.unindented-list{padding-inline-start:14px;list-style-type:none}ul{list-style-type:disc;padding-left:20px}ul li{overflow:visible}li::marker{color:var(--text-color);transition-property:color;transition-duration:.5s}.hidden{grid-template-rows:0fr;padding:0 4px;overflow:hidden}.employer{font-weight:700}.employer-name{width:128px;white-space:nowrap;text-align:left}.employer-locale{white-space:nowrap;text-align:center}.employer-dates{width:128px;white-space:nowrap;text-align:right}.role-name{width:128px;text-align:left}.role-dates{width:128px;white-space:nowrap;text-align:right}.article{width:auto;margin:0 8px}.article pre{white-space:pre-wrap;text-align:justify}.article p{text-indent:16px}.article .article-image-container{text-align:center;vertical-align:center}.article .article-image{border-radius:16px;width:256px;max-width:30vw;margin-bottom:8px}.article .image-right{float:right;margin-left:16px;margin-right:16px}.article .image-left{float:left;margin-right:16px;margin-left:16px}.resume-header{z-index:3;top:0;position:sticky;width:100%}.resume-header .header-link h2{margin:0}@media (hover : hover){.resume-header .header-link:hover *{background-color:var(--main-header-color)}}.resume-header .resume-header-subtitle{text-align:center}#footer{position:sticky;bottom:0;z-index:2;width:100%;margin:0;height:32px}.fly-in{animation-name:flyInRight;animation-duration:1s}.fly-out-left{animation-name:flyOutLeft;animation-duration:1s;animation-fill-mode:forwards}.fly-in-right{animation-name:flyInRight;animation-duration:1s;animation-delay:1s}@keyframes flyInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes flyInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes flyOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-20px)}}@keyframes flyOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(0)}}.spotlight{width:80%;height:100%;position:relative;text-align:center;margin:auto}.spotlight .spotlight-container{max-height:80vh;z-index:1;margin:auto;top:0;left:0}.spotlight .spotlight-container .spotlight-content{width:100%}.spotlight .spotlight-left{width:32px;height:32px;position:absolute;left:4px;z-index:2;transform:scaleX(-1);opacity:50%;transition:opacity .5s}@media (hover : hover){.spotlight .spotlight-left:hover{opacity:100%;transition:opacity .5s}}.spotlight .spotlight-right{width:32px;height:32px;position:absolute;right:4px;z-index:2;opacity:50%;transition:opacity .5s}@media (hover : hover){.spotlight .spotlight-right:hover{opacity:100%;transition:opacity .5s}}.spotlight table,.spotlight tr,.spotlight td,.spotlight div{width:100%;height:100%}.spotlight-hidden{opacity:0;transform:translate(-20px)}.switch-background{background-color:var(--main-content-color);height:24px;width:48px;border-radius:24px;position:relative}@media (hover : hover){.switch-background:hover{background-color:var(--main-hover-color)}}.switch-background .switch-control{background-color:var(--main-header-color);height:24px;width:24px;border-radius:24px;position:absolute;left:0;right:100%;transition-property:left,right,background-color;transition-duration:.5s}.switch-background .switch-control.active{position:absolute;right:0;left:calc(100% - 24px);transition-property:left,right,background-color;transition-duration:.5s}.spotlight{position:relative;display:flex;align-items:center;width:100%;height:auto;aspect-ratio:16 / 9}.spotlight-container{position:absolute}.spotlight-image{max-width:100%;position:absolute;top:0;left:0}.spotlight-caption{position:absolute;font-size:20px;left:50%;bottom:16px;transform:translate(-50%);z-index:2;width:80%;background-color:transparent;color:#fff;text-shadow:-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,1px 1px 0 #000}.spotlight-caption:hover{text-decoration:underline}spotlight-item{transition-property:opacity,transform;transition-duration:1s}table tr td{vertical-align:top}img{background-color:transparent;-webkit-user-drag:none;-moz-user-drag:none;user-drag:none}.article-title{margin:16px}.catalog{border-collapse:collapse}.catalog label{font-size:24px;text-align:center}.catalog td{padding:8px;vertical-align:middle;border-style:solid;border-width:1px}.catalog p{text-indent:8px}.image-full{max-width:100%;max-height:100%}.album-art{width:256px}.icon{filter:var(--filter)}.icon-hidden{display:none}.content-div{position:relative}.content-div-landscape{display:grid;grid-template-columns:.3fr .7fr}.content-div-portrait{display:auto;position:relative}#contact{display:flex;justify-content:center}#contact h1{margin-bottom:8px}#contact h2{text-align:center;margin:0}#contact td{width:50%}#contact a{display:flex;flex-wrap:wrap;align-content:middle;justify-content:left}.switch{display:grid;grid-template-columns:auto auto}
