@property --inline-size-s{syntax: "<length-percentage>"; inherits: true; initial-value: 100vi;}@property --inline-size-m{syntax: "<length-percentage>"; inherits: true; initial-value: 100vi;}@property --inline-size-l{syntax: "<length-percentage>"; inherits: true; initial-value: 100vi;}@property --inline-size-xl{syntax: "<length-percentage>"; inherits: true; initial-value: 100vi;}:root{--breakpoint-s: 37.5rem;--inline-size-s: min(var(--breakpoint-s), 100vi);--breakpoint-m: 56.25rem;--inline-size-m: min(var(--breakpoint-m), 100vi);--breakpoint-l: 75rem;--inline-size-l: min(var(--breakpoint-l), 100vi);--breakpoint-xl: 112.5rem;--inline-size-xl: min(var(--breakpoint-xl), 100vi)}body{@container style(100vi <= --inline-size-s){background-color:red}@container style(--inline-size-s < 100vi){background:#00f}@container style(--inline-size-m < 100vi){background:green}@container style(--inline-size-l < 100vi){background:orange}@container style(--inline-size-xl < 100vi){background:purple}}:root{--color-primary: #03A9F4;--color-primary-light: #63b8f6;--color-primary-dark: hsl(from var(--color-primary) h s 40%);--color-primary-bg: hsl(from var(--color-primary) h s l / 20%);--color-primary-contrast: white;--color-accent: #aed581;--color-accent-light: #bcdc9b;--color-accent-dark: #97b870;--color-accent-bg:#aed58133;--color-accent-contrast: white;--color-body-bg: white;--black: #1d1d21;--gray-10: #2e2e31;--gray-6: #7b7a7d;--gray-4: #a5a5a6;--gray-3: #bbbbbc;--gray-2: #d1d0d2;--gray-1: #e8e7e8;--white: white}:root{--color-text: var(--gray-10);--color-text-heading: var(--black);--color-text-subtle: var(--gray-4);--color-link: var(--color-primary);--color-link-visited: var(--color-primary-dark);--color-pills-text: var(--white);--color-pills-bg: var(--color-primary-dark)}@media screen and (prefers-color-scheme:dark){:root{--color-text: var(--gray-1);--color-text-heading: var(--white);--color-text-subtle: var(--gray-3);--color-link: var(--color-accent);--color-link-visited: var(--color-accent-dark);--color-body-bg: var(--black);--color-primary-contrast: var(--black);--color-accent-contrast: var(--black);--color-pills-text: var(--black);--color-pills-bg: var(--color-accent-dark)}}.theme--dark{--color-text: var(--gray-1);--color-text-heading: var(--white);--color-text-subtle: var(--gray-3);--color-link: var(--color-accent);--color-link-visited: var(--color-accent-dark);--color-body-bg: var(--black);--color-primary-contrast: var(--black);--color-accent-contrast: var(--black);--color-pills-text: var(--black);--color-pills-bg: var(--color-accent-dark)}.theme--dark{color:var(--gray-1);background-color:var(--color-body-bg);h1,h2,h3,h4{color:var(--white)}.text--subtle{color:var(--gray-4)}a{color:var(--color-accent)}}@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;src:url(/fonts/ubuntu-v19-latin-regular.eot);src:local(""),url(/fonts/ubuntu-v19-latin-regular.eot?#iefix) format("embedded-opentype"),url(/fonts/ubuntu-v19-latin-regular.woff2) format("woff2"),url(/fonts/ubuntu-v19-latin-regular.woff) format("woff"),url(/fonts/ubuntu-v19-latin-regular.ttf) format("truetype"),url(/fonts/ubuntu-v19-latin-regular.svg#Ubuntu) format("svg")}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;src:url(/fonts/ubuntu-v19-latin-500.eot);src:local(""),url(/fonts/ubuntu-v19-latin-500.eot?#iefix) format("embedded-opentype"),url(/fonts/ubuntu-v19-latin-500.woff2) format("woff2"),url(/fonts/ubuntu-v19-latin-500.woff) format("woff"),url(/fonts/ubuntu-v19-latin-500.ttf) format("truetype"),url(/fonts/ubuntu-v19-latin-500.svg#Ubuntu) format("svg")}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;src:url(/fonts//ubuntu-v19-latin-700.eot);src:local(""),url(/fonts/ubuntu-v19-latin-700.eot?#iefix) format("embedded-opentype"),url(/fonts/ubuntu-v19-latin-700.woff2) format("woff2"),url(/fonts/ubuntu-v19-latin-700.woff) format("woff"),url(/fonts/ubuntu-v19-latin-700.ttf) format("truetype"),url(/fonts/ubuntu-v19-latin-700.svg#Ubuntu) format("svg")}:root{--font-primary: "Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-secondary: serif;--font-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--text-base-size: 1em;--text-scale-ratio: 1.2;--text-leading: calc(var(--text-base-size) + var(--text-scale-ratio));--text-xs: calc(1em / (var(--text-scale-ratio) * var(--text-scale-ratio)));--text-sm: calc(1em / var(--text-scale-ratio));--text-md: calc(1em * var(--text-scale-ratio));--text-lg: calc(1em * var(--text-scale-ratio) * var(--text-scale-ratio));--text-xl: calc(1em * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio));--text-xxl: calc(1em * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio));--text-xxxl: calc(1em * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio));--heading-line-height: 1.2;--body-line-height: 1.4}@media(min-width:37.5rem){:root{--text-base-size: 1.25em;--text-scale-ratio: 1.25}}@media print{:root{--text-base-size: 12px;--text-scale-ratio: 1.125}}body{font-size:var(--text-base-size);font-family:var(--font-primary);color:var(--color-text);line-height:var(--body-line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6,form legend{color:var(--color-text-heading);margin-block-end:var(--space-xxs);margin-block-start:.6em;line-height:var(--heading-line-height);font-weight:300;text-wrap:balance}.text--xxxl{font-size:var(--text-xxxl)}h1,.text--xxl{font-size:var(--text-xxl);letter-spacing:-.1rem}h2,.text--xl{font-size:var(--text-xl);letter-spacing:-.1rem}h3,.text--lg{font-size:var(--text-lg);letter-spacing:-.1rem}h4,.text--md{font-size:var(--text-md);letter-spacing:-.08rem}h5,.text--sm,small{font-size:var(--text-sm);letter-spacing:-.05rem}h6,.text--xs{font-size:var(--text-xs);letter-spacing:0}p{line-height:var(--body-line-height);max-width:65ch;text-wrap:pretty}a{color:var(--color-link);&:hover,&:visited{color:var(--color-link-visited)}}b,strong{font-weight:700}mark{padding:.1ch .25ch;background-color:var(--color-primary);@media screen and (prefers-color-scheme:dark){background-color:var(--color-accent)}}u{text-decoration-color:var(--color-accent);@media screen and (prefers-color-scheme:dark){text-decoration-color:var(--color-primary)}}.text-container{h2,h3,h4{margin-top:var(--space-sm)}ul,ol,p{margin-bottom:var(--space-md)}ul,ol{list-style-position:outside;padding-left:24px}ul{list-style-type:disc}ol{list-style-type:decimal}ul li,ol li{line-height:var(--body-line-height)}em{font-style:italic}u{text-decoration:underline}}code{font-family:var(--font-mono)}.truncate{text-overflow:ellipsis;white-space:nowrap}.svg-icon{width:1em;height:1em;display:inline-block;vertical-align:text-top;color:currentColor}blockquote{padding-left:1em;border-left:3px solid var(--color-pills-bg)}*{box-sizing:border-box}html,body{margin:0;background-color:var(--color-body-bg);overscroll-behavior:none}html{border-block-start:var(--color-primary) 1em solid;border-block-end:var(--color-accent) 1em solid;@media print{border-block-start-width:.5em;border-block-end-width:.5em}min-height:100vh}.flow>*+*{margin-block-start:var(--flow-gap, 1em)}.wrapper,.resume-wrapper{padding:.75rem;@container style(--inline-size-m < 100vi){padding:1.25rem}@container style(--inline-size-l < 100vi){max-width:var(--breakpoint-m);margin:0 auto}@media print{padding:0}}.cta-button{border:1px solid grey;border-radius:.5em;padding:.5em 1em;text-align:center}.tag{font-size:var(--text-sm);letter-spacing:-.05rem;text-transform:capitalize;display:inline-block;color:var(--color-pills-text);background-color:var(--color-pills-bg);min-width:5ch;padding:.2em .5em;border-radius:.2rem}a.tag{color:var(--color-pills-text);text-decoration-color:var(--color-pills-bg)}a.tag:hover{text-decoration-color:var(--color-pills-text)}.site-navigation{position:sticky;top:0;padding:.75rem;z-index:99;background-color:rgba(var(--color-body-bg),.5);backdrop-filter:blur(16px);@media print{display:none}}.nav__list{list-style:none;padding:0;margin:0;display:flex;position:relative;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;&::-webkit-scrollbar{display:none}@container style(--inline-size-m < 100vi){justify-content:flex-start}}.nav__item{margin-inline:1.5em;scroll-snap-align:start;flex-shrink:0}.person-header{text-align:right}.page-footer{position:sticky;bottom:0;background:var(--color-body-bg);padding-block:.2rem;z-index:99;border-top:1px solid var(--color-primary);.social-media-list{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2rem}}.social-media-list{padding-inline-start:0}.social-media-list>li{list-style-type:none}.social-media-list>li a:after{@media print{display:inline-block;content:attr(href);font-size:.8em;margin-inline-start:.5em}}.social-media-list>li a{display:inline-flex;align-items:center;gap:.5rem;@media print{text-decoration:none;color:var(--color-text)}}.social-media-list>li a>span{@media print{display:none}}.social-media-list .username{display:none;@container style(--inline-size-m < 100vi){display:inline}}.resume-wrapper .social-media-list .username{display:inline}.astro-code{padding:.75rem;border:solid 1px var(--color-primary-dark)}.astro-code code{display:block;width:100%;overflow-wrap:break-word;white-space:break-spaces}.backlinks{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));grid-gap:var(--flow-gap, 1em)}.links svg{height:1em}.weeks{--flow-gap: 5em}.bookmarks{--flow-gap: 3em}.bookmark{display:flex;max-width:unset;gap:2rem}.bookmark_image{width:100px;min-height:100px;height:100px;flex-shrink:0;border-radius:.5rem;overflow:hidden;display:none;@container style(--inline-size-s < 100vi){display:unset}}.bookmark .title{word-break:break-word}.bookmark-description>p{grid-row:1 / -1;max-width:60ch;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.meta{display:grid;grid-template-columns:1fr auto;gap:calc(var(--flow-gap, 1em) / 2)}.categories{display:flex;flex-wrap:wrap;gap:1em;align-items:flex-start}.timestamps{text-align:end}.applications{display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));grid-gap:var(--flow-gap, 1em)}.application{display:grid;grid-template-rows:auto 1fr auto;grid-gap:var(--flow-gap, 1em);padding:.5em 1em;border:1px solid gray;border-radius:.5em}.posts{--flow-gap: 2em;list-style:none;padding:0;margin:0}.post a{text-decoration:none}.post-title{max-width:25ch}.post__tags{font-size:var(--text-sm);letter-spacing:-.05rem;display:flex;flex-wrap:wrap;gap:1ch}.uses{flex:1;display:grid;@container style(--inline-size-s < 100vi){grid-template-columns:repeat(2,1fr)}grid-column-gap:1em}.used-item__header{text-transform:capitalize}.used-item__list{display:flex;flex-wrap:wrap;gap:1em}.job-list__history{list-style:none;padding:0}.job-item{display:flex;flex-direction:row;flex-wrap:nowrap;@media print{page-break-inside:avoid}}.job-item__dates{flex-basis:20%;margin-inline-end:1.5em;border-inline-end:1px var(--color-text-subtle) solid;padding-inline-end:.6em;position:relative;@media print{flex-basis:15%}&:after{--width: .4em;--position: calc(1em * (1 / var(--body-line-height)));content:"";position:absolute;top:var(--position);right:calc((var(--position) * -1) - 1px);width:var(--width);height:var(--width);border-radius:50%;background:var(--color-text);transform:translate(-50%,-50%);border:3px solid var(--color-body-bg)}}.job-item__date{white-space:nowrap}.job-item__details{flex:1;padding-block-end:2em;@media print{padding-block-end:1em}}.job-item__header,.job-item__info{width:100%}.job-item__header{display:flex;flex-direction:column;flex-wrap:nowrap;margin-block-end:1em;@media print{margin-block-end:.5em}&:last-child{margin-block-end:0}}.job-item__title{flex-basis:100%;margin-block-end:.5em}.job-item__location{flex-basis:100%;white-space:nowrap;display:inline}.location__icon{margin-inline-end:.3em}.job-item__description--meta{font-size:var(--text-sm);letter-spacing:-.05rem;display:block;color:var(--color-text-subtle);font-style:italic}@container style(--inline-size-s < 100vi){.job-item__header{flex-direction:row}.job-item__title{flex-basis:75%;margin-block-end:0;margin-inline-end:.3em}.job-item__location{flex-basis:25%;justify-content:flex-end;text-align:right}}@media print{.job-item__header{flex-direction:row}.job-item__title{flex-basis:75%;margin-block-end:0;margin-inline-end:.3em}.job-item__location{flex-basis:25%;justify-content:flex-end;text-align:right}}.skills-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1em;justify-content:center}.chat{margin-top:1em;display:grid;justify-content:start}:root{--grid-gap: 1em;@media print{--grid-gap: 2em}}body{@container style(--inline-size-m < 100vi){--grid-gap: 2em}}.resume{display:flex;flex-direction:column;gap:var(--grid-gap)}.information{grid-area:information;display:grid;gap:var(--grid-gap);align-content:start}@container style(--inline-size-s < 100vi){.information{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}}@container style(--inline-size-m < 100vi){.information{grid-template-columns:unset;grid-template-rows:unset}}@container style(--inline-size-s < 100vi){.description{grid-row:1 / -1}}@container style(--inline-size-m < 100vi){.description{grid-row:unset}}.description>*+*,.skills>*+*{margin-block-start:1em}.description>p{max-width:50ch}.experience{grid-area:experience;display:flex;flex-direction:column;gap:var(--grid-gap)}.job-item__description{max-width:55ch}@media print{.resume{display:grid;grid-template-columns:2fr 1fr;grid-template-areas:"experience information";column-gap:calc(var(--grid-gap) * var(--text-scale-ratio))}.information{grid-template-columns:unset;grid-template-rows:unset}.lets-chat{display:none}}@container style(--inline-size-m < 100vi){.resume{display:grid;grid-template-columns:5fr 3fr;grid-template-areas:"experience information"}}.education{@media print{page-break-inside:avoid}}last-fm{display:grid;grid-gap:.75em}last-fm h2,last-fm h3{font-size:var(--text-md);letter-spacing:-.08rem;margin:0}last-fm .track{display:grid;grid-template-columns:max-content 1fr;grid-gap:1em}last-fm p{margin:0}.last-fm-player{position:fixed;bottom:1.5rem;left:1.5rem;z-index:40;display:flex;flex-direction:column;width:16rem;background-color:#000;border:2px solid #334155;box-shadow:4px 4px #fff3;font-family:monospace;animation:slideInFromLeft .5s ease-out,fadeIn .5s ease-out}.last-fm-player__header{background-color:#1e293b;font-size:.75rem;color:#fff;padding:.25rem .5rem;display:flex;justify-content:space-between;align-items:center;user-select:none}.last-fm-player__title{text-transform:uppercase;font-weight:700;letter-spacing:.05em}.last-fm-player__icon{color:#10b981;width:1rem;height:1rem}.last-fm-player__content{padding:.75rem;display:flex;gap:.75rem;align-items:center;position:relative;overflow:hidden}.last-fm-player__album-art{position:relative;width:3rem;height:3rem;flex-shrink:0;border:1px solid #475569;&:hover{.last-fm-player__album-img{filter:grayscale(0%);opacity:1}}}.last-fm-player__album-img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%);opacity:.8;transition:all .5s ease-in-out}.last-fm-player__album-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.last-fm-player__disc{color:#ffffff80;width:2rem;height:2rem;animation:spin 3s linear infinite}.last-fm-player__track-info{flex:1;min-width:0;overflow:hidden}.last-fm-player__track-name{color:#ec4899;font-weight:700;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.last-fm-player__artist-name{color:#94a3b8;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.last-fm-player__equalizer{display:flex;justify-content:space-between;align-items:flex-end;height:1rem;padding:0 .75rem .25rem;gap:.25rem;background-color:#00000080;position:absolute;bottom:.25rem;right:.5rem;width:3rem;opacity:.5}.last-fm-player__eq-bar{width:.25rem;background-color:#10b981;animation:equalize .6s ease-in-out infinite alternate}@keyframes slideInFromLeft{0%{transform:translate(-2.5rem)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes equalize{0%{height:20%}50%{height:80%}to{height:40%}}
