*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html:has(dialog[open]){overflow:hidden}body{margin:0;min-height:100vh;background:#111114;color:#f0e9df;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px;transition:opacity .16s ease}a:hover{opacity:.7}:focus-visible{outline:2px solid #b8f2e6;outline-offset:3px}img{max-width:100%}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}.labeled-rows{--row-spacing: 28px;--label-offset: 4px;display:flex;flex-direction:column}.labeled-rows--relaxed{--row-spacing: 32px;--label-offset: 6px}.labeled-rows--bottom-rule .labeled-row:last-child{border-bottom:1px solid #2a2a30}.labeled-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:var(--row-spacing) 0;border-top:1px solid #2a2a30}.labeled-row:first-child{padding-top:0;border-top:none}@media (min-width: 600px){.labeled-row{grid-template-columns:90px minmax(0,1fr);gap:24px}}.labeled-row__label{font:400 13px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596;padding-top:var(--label-offset)}.labeled-row__label--pivot{color:#ef8354}.labeled-row__content{min-width:0}.labeled-row__prose{margin:0;font:300 20px/1.6 "Source Serif 4",Georgia,Times New Roman,serif;text-wrap:pretty;max-width:640px}.labeled-row__quote{margin:0;font:italic 300 24px/1.5 "Source Serif 4",Georgia,Times New Roman,serif;color:#d9d1c7;text-wrap:pretty;max-width:640px}.contact-prompt{--question-size: 20px;--action-size: 24px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.contact-prompt--large{--question-size: 22px;--action-size: 26px}.contact-prompt__question{font:300 var(--question-size)/1.3 "Source Serif 4",Georgia,"Times New Roman",serif;color:#c8bfc9}.contact-prompt__action{padding:0;border:none;background:none;color:#ef8354;font:400 var(--action-size)/1.3 "Source Serif 4",Georgia,"Times New Roman",serif;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;cursor:pointer;transition:opacity .16s ease}.contact-prompt__action:hover{opacity:.7}.contact-dialog{width:calc(100% - 32px);max-width:520px;padding:0;border:1px solid #2a2a30;background:#111114;color:#f0e9df}.contact-dialog::backdrop{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.contact-dialog__panel{display:flex;flex-direction:column;gap:24px;padding:32px}.contact-dialog__header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.contact-dialog__title{margin:0;font:400 28px/1.2 "Source Serif 4",Georgia,Times New Roman,serif}.contact-dialog__close{font:400 20px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#d9d1c7;padding:0 4px;border:none;background:none;cursor:pointer}.contact-dialog__form{display:flex;flex-direction:column;gap:18px}.contact-dialog__field{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596;display:flex;flex-direction:column;gap:8px}.contact-dialog__field input,.contact-dialog__field textarea{padding:12px;border:1px solid #2a2a30;background:#1b1b20;color:#f0e9df;font:400 15px/1.5 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;resize:vertical}.contact-dialog__field input:focus,.contact-dialog__field textarea:focus{border-color:#b8f2e6;outline:none}.contact-dialog__error{font:400 15px/1.55 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#a39cad;margin:0;color:#ef8354}.contact-dialog__submit{font:400 13px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#ef8354;align-self:flex-start;padding:12px 18px;border:1px solid #ef8354;background:none;cursor:pointer;transition:opacity .16s ease}.contact-dialog__submit:hover,.contact-dialog__submit:disabled{opacity:.7}.contact-dialog__submit:disabled{cursor:progress}.contact-dialog__confirmation{margin:0;font:300 20px/1.5 "Source Serif 4",Georgia,Times New Roman,serif;text-wrap:pretty;color:#d9d1c7}.fact-list{display:flex;flex-direction:column;margin:0;border-top:1px solid #2a2a30}.fact-list__row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid #2a2a30}.fact-list__label{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596}.fact-list__value{display:flex;flex-wrap:wrap;gap:20px;margin:0;font:400 15px/1.4 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.social-links{display:flex;gap:20px;font-size:19px;color:#d9d1c7}.social-links__label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.page-aside__top{display:flex;flex-direction:column;gap:36px}.page-aside__home{font:400 13px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#a39cad;display:flex;align-items:center;gap:12px;text-decoration:none}.page-aside__avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.page-aside__intro{display:flex;flex-direction:column;gap:14px}.page-aside__eyebrow{font:400 13px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596;display:flex;align-items:baseline;gap:12px}.page-aside__title{margin:0;font:400 44px/1.1 "Source Serif 4",Georgia,Times New Roman,serif;letter-spacing:-.01em}.page-aside__lede{margin:0;font:300 20px/1.5 "Source Serif 4",Georgia,Times New Roman,serif;text-wrap:pretty;color:#d9d1c7}.page-aside__bottom{display:flex;flex-direction:column;gap:24px}.page-aside__social{padding-top:20px;border-top:1px solid #2a2a30}.split-layout{display:flex;flex-wrap:wrap;max-width:1440px;min-height:100vh;margin:0 auto}@media (min-width: 1000px){.split-layout{flex-wrap:nowrap}}.split-layout__aside{display:flex;flex:1 1 100%;flex-direction:column;justify-content:space-between;gap:40px;align-self:flex-start;border-bottom:1px solid #2a2a30;padding:48px 24px}@media (min-width: 600px){.split-layout__aside{padding:64px 40px}}@media (min-width: 1000px){.split-layout__aside{padding:56px 56px 48px 64px}}@media (min-width: 1000px){.split-layout__aside{position:sticky;bottom:0;flex:0 0 clamp(440px,40vw,560px);align-self:flex-end;min-height:100vh;border-right:1px solid #2a2a30;border-bottom:none}}@media (min-width: 1000px){.split-layout--page .split-layout__aside{flex-basis:clamp(400px,34vw,480px)}}.split-layout__main{display:flex;flex:1 1 100%;flex-direction:column;gap:48px;min-width:0;padding:48px 24px}@media (min-width: 600px){.split-layout__main{padding:64px 40px}}@media (min-width: 1000px){.split-layout__main{padding:56px 56px 48px 64px}}@media (min-width: 1000px){.split-layout__main{flex:1 1 0}}.split-layout--page .split-layout__main{gap:56px}.about-page__portrait{margin:0}.about-page__portrait img{display:block;width:100%;max-width:520px;aspect-ratio:4/5;object-fit:cover}.now-rotator{display:flex;flex-direction:column;gap:16px;padding-bottom:28px;border-bottom:1px solid #2a2a30}.now-rotator__header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.now-rotator__badge{font:500 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#b8f2e6;letter-spacing:.06em}.now-rotator__updated{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596}.now-rotator__item{display:flex;align-items:baseline;gap:16px;min-height:30px;padding:0;border:none;background:none;color:inherit;text-align:left;cursor:pointer;transition:opacity .3s ease}.now-rotator__item--faded{opacity:0}.now-rotator__label{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596;flex:none;width:80px}.now-rotator__text{font:400 20px/1.4 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#f0e9df}.now-rotator__ticks{display:flex;gap:6px}.now-rotator__tick{width:24px;height:12px;padding:0;border:none;background:linear-gradient(#3a3a42,#3a3a42) center/100% 2px no-repeat;cursor:pointer}.now-rotator__tick--active{background-image:linear-gradient(#b8f2e6,#b8f2e6)}.media-frame{height:240px;padding:14px;background:#1b1b20}.media-frame--card{height:200px}.media-frame--hero{height:420px;padding:24px}.media-frame--detail{height:260px;padding:12px}.media-frame--placeholder{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596;display:flex;align-items:flex-end;background:repeating-linear-gradient(135deg,#1b1b20 0,#1b1b20 8px,#202026 8px,#202026 9px)}.media-frame__image{display:block;width:100%;height:100%;object-fit:contain}.timeline-project{display:flex;flex-direction:column;gap:14px}.timeline-project__heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.timeline-project__title{font:400 20px/1.35 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.timeline-project__cover-link{display:block}.timeline-project__cover-link:hover{opacity:.85}.timeline-project__status{font:400 11px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#b8f2e6;letter-spacing:.04em;text-transform:uppercase}.timeline-project__summary{font:400 15px/1.55 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#a39cad;margin:0}.timeline-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.timeline-card{display:flex;flex-direction:column;gap:12px}.timeline-role{display:flex;flex-direction:column;gap:6px}.timeline-role__title{font:400 20px/1.35 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.timeline-role__description{font:400 15px/1.55 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#a39cad;margin:0}.timeline-pivot{margin:0;font:italic 300 24px/1.35 "Source Serif 4",Georgia,Times New Roman,serif;color:#ef8354}.home-aside__top{display:flex;flex-direction:column;gap:32px}.home-aside__profile{display:flex;align-items:center;gap:16px}.home-aside__avatar{width:56px;height:56px;border-radius:50%;object-fit:cover}.home-aside__identity{font:400 13px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#f0e9df;display:flex;flex-direction:column;gap:2px}.home-aside__name{margin:0;font:inherit}.home-aside__role{color:#a39cad}.home-aside__bio{display:flex;flex-direction:column;gap:16px}.home-aside__bio p{margin:0;font:300 20px/1.5 "Source Serif 4",Georgia,Times New Roman,serif;text-wrap:pretty}.home-aside__bio-aside{color:#c8bfc9}.home-aside__bio-aside a{text-decoration-color:#5a5463}.home-aside__bottom{display:flex;flex-direction:column;gap:24px}.home-aside__links{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding-top:20px;border-top:1px solid #2a2a30}.home-aside__resume{font:400 13px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#d9d1c7}.home-aside__location{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596}.image-lightbox__trigger{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in;transition:opacity .16s ease}.image-lightbox__trigger:hover{opacity:.85}.image-lightbox{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);padding:0;border:1px solid #2a2a30;background:#1b1b20;color:#f0e9df}.image-lightbox::backdrop{background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-lightbox__figure{display:flex;flex-direction:column;gap:12px;margin:0;padding:48px 24px 20px}.image-lightbox__image{display:block;width:auto;max-width:min(1200px,100vw - 82px);max-height:calc(100vh - 160px);margin:0 auto;object-fit:contain}.image-lightbox__caption{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596;max-width:72ch}.image-lightbox__close{font:400 22px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#d9d1c7;position:absolute;top:8px;right:12px;padding:4px 8px;border:none;background:none;cursor:pointer}.project-page__status{font:400 11px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#b8f2e6;letter-spacing:.04em;text-transform:uppercase}.project-page__cover{display:flex;flex-direction:column;gap:12px;margin:0}.project-page__caption{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596}.project-page__built{display:flex;flex-direction:column;gap:16px;max-width:640px}.project-page__highlights{font:400 15px/1.55 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#a39cad;display:flex;flex-direction:column;gap:8px;margin:0;padding:0 0 0 18px}.project-page__details{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.project-pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #2a2a30;border-bottom:1px solid #2a2a30}.project-pager__link{display:flex;flex-direction:column;gap:6px;padding:24px 0;text-decoration:none}.project-pager__link--previous{padding-right:24px;border-right:1px solid #2a2a30}.project-pager__link--next{padding-left:24px;text-align:right}.project-pager__meta{font:400 12px/1.4 IBM Plex Mono,SFMono-Regular,Cascadia Code,ui-monospace,monospace;color:#8c8596}.project-pager__name{font:400 18px/1.35 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}
