*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:"Inter",sans-serif}body{margin:0;line-height:inherit}h1,h2,h3,h4,h5,h6,p,blockquote,figure,hr{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}img,svg,video{display:block;vertical-align:middle;max-width:100%;height:auto}button,input,select,textarea{margin:0;padding:0;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;background-color:transparent;background-image:none;-webkit-appearance:button}button{text-transform:none}@font-face{font-family:"JetBrains Mono";src:url("./fonts/JetBrainsMono-Regular.ttf") format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:"Inter";src:url("./fonts/Inter_24pt-Regular.ttf") format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:"Space Grotesk";src:url("./fonts/SpaceGrotesk-Regular.ttf") format("truetype");font-weight:normal;font-style:normal}:root{--color-primary-container:#ff5f1f;--color-on-surface-variant:#e3bfb3;--color-surface-container-lowest:#0e0e0e;--color-primary:#ffb59c;--color-surface-container:#201f1f;--color-outline:#aa897f;--color-surface-container-high:#2a2a2a;--color-on-surface:#e5e2e1;--color-surface:#131313;--spacing-margin:32px;--spacing-gutter:24px;--spacing-container-max:1280px;--spacing-unit:4px;--font-label-sm:"JetBrains Mono",monospace;--font-body-lg:"Inter",sans-serif;--font-body-md:"Inter",sans-serif;--font-display-lg:"Space Grotesk",sans-serif;--font-headline-lg:"Space Grotesk",sans-serif;--fs-label-sm:12px;--lh-label-sm:1;--ls-label-sm:0.05em;--fw-label-sm:500;--fs-body-lg:18px;--lh-body-lg:1.6;--ls-body-lg:0;--fw-body-lg:400;--fs-body-md:16px;--lh-body-md:1.5;--ls-body-md:0;--fw-body-md:400;--fs-display-lg:64px;--lh-display-lg:1.1;--ls-display-lg:-0.04em;--fw-display-lg:700;--fs-headline-lg:32px;--lh-headline-lg:1.2;--ls-headline-lg:-0.02em;--fw-headline-lg:600;--tw-contrast:contrast(1.25);--tw-grayscale:grayscale(100%)}html{scroll-behavior:smooth;color-scheme:dark}body{background:var(--color-surface);color:var(--color-on-surface);font-family:var(--font-body-md);font-size:var(--fs-body-md);line-height:var(--lh-body-md);letter-spacing:var(--ls-body-md);font-weight:var(--fw-body-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;display:flex;flex-direction:column}main{flex-grow:1}nav{background:var(--color-surface);border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(170 137 127 / var(--tw-border-opacity,1));position:sticky;top:0px;width:100%;z-index:50}nav>div{align-items:center;display:flex;height:72px;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:var(--spacing-container-max);padding-left:var(--spacing-margin);padding-right:var(--spacing-margin);width:100%}nav>div>a:nth-child(1){font-family:Space Grotesk;font-size:24px;line-height:1.2;letter-spacing:-0.05em;font-weight:700;--tw-text-opacity:1;color:rgb(229 226 225 / var(--tw-text-opacity,1))}nav div.shortcuts{align-items:center;display:none;height:100%}nav div.shortcuts a{align-items:center;display:flex;font-family:JetBrains Mono;font-size:12px;line-height:1;letter-spacing:0.05em;font-weight:500;margin-right:1rem;margin-left:1rem;transition-duration:150ms;--tw-text-opacity:1;color:rgb(227 191 179 / var(--tw-text-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(0.4,0,0.2,1)}nav div.shortcuts a:hover{--tw-text-opacity:1;color:rgb(255 95 31 / var(--tw-text-opacity,1))}#nav-menu{position:relative}#nav-menu .dropdown{display:flex;flex-direction:column;gap:0.5rem;padding:1rem;background-color:#1a1a1a;border-radius:4px;position:absolute;top:100%;right:0;min-width:180px;z-index:100}#nav-menu .dropdown[hidden]{display:none}#nav-menu .dropdown a{display:block;color:#e3e3e3;text-decoration:none;padding:0.5rem 0}nav button.cv,section#error button.cv{border-width:1px;display:none;font-family:Inter;justify-content:center;padding-top:0.5rem;padding-bottom:0.5rem;padding-left:1.5rem;padding-right:1.5rem;transition-property:all;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms;--tw-bg-opacity:1;background-color:rgb(255 95 31 / var(--tw-bg-opacity,1));--tw-border-opacity:1;border-color:rgb(255 95 31 / var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(14 14 14 / var(--tw-text-opacity,1));font-size:14px;line-height:1;letter-spacing:0.02em;font-weight:600}nav button.cv:hover,section#error button.cv:hover{box-shadow:4px 4px 0px 0px var(--color-primary-container);transform:translate(-2px,-2px)}@media (min-width:768px){nav>div>a:nth-child(1){font-size:32px;line-height:1.2;letter-spacing:-0.02em;font-weight:600}nav div.shortcuts{display:flex}nav button.cv{display:inline-flex}nav #nav-menu{display:none}}footer{background:var(--color-surface-container-lowest);width:100%;border-top:1px solid var(--color-outline);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding-left:var(--spacing-margin);padding-right:var(--spacing-margin);padding-top:2rem;padding-bottom:2rem;margin-top:auto}footer>div:nth-child(1){font-family:var(--font-label-sm);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);letter-spacing:var(--ls-label-sm);font-weight:var(--fw-label-sm);color:var(--color-primary-container);margin-bottom:1rem}footer>div:nth-child(2){font-family:var(--font-label-sm);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);font-weight:var(--fw-label-sm);text-transform:uppercase;letter-spacing:0.1em;color:var(--color-on-surface-variant);margin-bottom:1rem;text-align:center}footer>div:nth-child(3){display:flex;gap:1.5rem}footer>div:nth-child(3) a{font-family:var(--font-label-sm);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);letter-spacing:0.1em;font-weight:var(--fw-label-sm);color:var(--color-on-surface-variant);text-decoration:none;transition:all 150ms cubic-bezier(0.4,0,0.2,1)}footer>div:nth-child(3) a:hover{color:var(--color-primary-container)}section{border-bottom-width:1px;margin-left:auto;margin-right:auto;max-width:var(--spacing-container-max);padding-top:5rem;padding-bottom:5rem;padding-left:var(--spacing-margin);padding-right:var(--spacing-margin);--tw-border-opacity:1;border-color:rgb(170 137 127 / var(--tw-border-opacity,1))}section .title{align-items:flex-end;border-bottom-width:1px;display:flex;justify-content:space-between;margin-bottom:3rem;padding-bottom:1rem;--tw-border-opacity:1;border-color:rgb(170 137 127 / var(--tw-border-opacity,1))}section .title>h2{font-family:Space Grotesk;--tw-text-opacity:1;color:rgb(229 226 225 / var(--tw-text-opacity,1));font-size:24px;line-height:1.2;letter-spacing:-0.01em;font-weight:600}section#landing{align-items:center;display:grid;gap:var(--spacing-gutter);padding-top:120px;padding-bottom:120px}section#landing div:nth-child(1)>:not(:last-child){--tw-space-y-reverse:0;margin-block-start:calc(2rem * var(--tw-space-y-reverse));margin-block-end:calc(2rem * calc(1 - var(--tw-space-y-reverse)))}section#landing div:nth-child(1)>div:last-child{display:flex;flex-direction:column;gap:1rem;padding-top:1rem}section#landing div:nth-child(1) div:first-child{display:inline-block;border:1px solid var(--color-outline);padding:0.25rem 0.75rem;background-color:var(--color-surface-container);color:var(--color-primary-container);font-family:var(--font-label-sm);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);letter-spacing:var(--ls-label-sm);font-weight:var(--fw-label-sm)}section#landing div:nth-child(2){display:flex;justify-content:flex-end;margin-top:3rem}section#landing div:nth-child(2)>div{border:1px solid var(--color-outline);padding:0.5rem}section#landing button{align-items:center;border-width:1px;display:inline-flex;font-family:Inter;font-size:14px;line-height:1;letter-spacing:0.02em;font-weight:600;justify-content:center;padding-top:0.75rem;padding-bottom:0.75rem;padding-left:2rem;padding-right:2rem;transition-property:all;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms;width:100%}section#landing a[href="#projects"] button{border-color:var(--color-primary-container);background-color:var(--color-primary-container);color:#0e0e0e}section#landing a[href^="mailto:"] button{border-color:var(--color-outline);background-color:var(--color-surface);color:var(--color-on-surface)}section#landing button:hover{box-shadow:4px 4px 0px 0px var(--color-primary-container);transform:translate(-2px,-2px)}section#landing h1{font-family:var(--font-display-lg);font-size:var(--fs-display-lg);line-height:var(--lh-display-lg);letter-spacing:var(--ls-display-lg);font-weight:var(--fw-display-lg);color:var(--color-on-surface)}section#landing img{object-fit:cover;aspect-ratio:1 / 1;height:auto;width:100%;filter:var(--tw-contrast) var(--tw-grayscale)}section#landing p{font-family:var(--font-body-lg);font-size:var(--fs-body-lg);line-height:var(--lh-body-lg);letter-spacing:var(--ls-body-lg);font-weight:var(--fw-body-lg);color:var(--color-on-surface-variant);max-width:28rem}@media (max-width:639px){section#landing{grid-template-columns:minmax(0,1fr);text-align:center;justify-items:center}section#landing>div{min-width:0;width:100%}section#landing h1{font-size:var(--fs-headline-lg);line-height:var(--lh-headline-lg);letter-spacing:var(--ls-headline-lg)}section#landing div:nth-child(1)>div:last-child{align-items:center}section#landing div:nth-child(1)>div:last-child>a{width:100%;max-width:20rem}section#landing div:nth-child(2){justify-content:center;width:100%}section#landing div:nth-child(2)>div{width:100%;max-width:100%}section#landing img{width:100%}}section#projects .projects-carousel{--project-card-height:16rem;--project-card-width:calc(var(--project-card-height) * 2);--project-card-gap:var(--spacing-gutter);--project-stagger:calc( (var(--project-card-width) + var(--project-card-gap)) / 2 );display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,var(--project-card-height));grid-auto-columns:var(--project-card-width);align-items:start;column-gap:var(--project-card-gap);row-gap:var(--project-card-gap);overflow-x:hidden;overflow-y:hidden;overscroll-behavior-x:contain;padding:1rem}section#projects .project-card{width:var(--project-card-width);height:var(--project-card-height);min-width:var(--project-card-width);min-height:var(--project-card-height);overflow:hidden;position:relative;border:1px solid var(--color-primary-container)}section#projects .project-card:nth-child(even){margin-left:var(--project-stagger)}section#projects .project-card:focus-within{outline:2px solid var(--color-primary);outline-offset:4px}section#projects .project-card>a{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}section#projects .project-card__meta{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;padding:0.5rem;border-bottom:1px solid var(--color-primary);background-color:var(--color-surface-container-high)}section#projects .project-card__meta>span{font-family:var(--font-label-sm);font-size:12px;line-height:1.4;font-weight:400;margin-left:auto;padding-right:0.5rem}section#projects .project-card__content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:1.5rem}section#projects .project-card__content>h3{margin-bottom:0.5rem;color:var(--color-on-surface);font-family:var(--font-label-sm);font-size:var(--fs-body-lg);font-weight:var(--fw-body-lg);line-height:var(--lh-body-lg);letter-spacing:var(--ls-body-lg)}section#projects .project-card__content>p{flex:1 1 auto;min-height:0;margin-bottom:1rem;overflow:visible;color:var(--color-on-surface-variant);font-family:var(--font-label-sm);font-size:var(--fs-body-md);font-weight:var(--fw-body-md);line-height:var(--lh-body-md);letter-spacing:var(--ls-body-md)}section#projects .project-card__keywords{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:0.5rem;margin-top:auto}section#projects .project-card__keywords>span{padding:var(--spacing-unit) 0.5rem;border:1px solid var(--color-primary-container);background-color:var(--color-primary-container);color:#0e0e0e;font-family:var(--font-label-sm);font-size:var(--fs-label-sm);font-weight:var(--fw-label-sm);line-height:var(--lh-label-sm);letter-spacing:var(--ls-label-sm)}@media (prefers-reduced-motion:no-preference){section#projects .project-card{transition:transform 150ms cubic-bezier(0.4,0,0.2,1),box-shadow 150ms cubic-bezier(0.4,0,0.2,1)}}section#projects .project-card:hover{box-shadow:4px 4px 0 0 var(--color-primary-container);transform:translate(-2px,-2px)}section#projects .project-card:active{box-shadow:none;transform:translate(0,0)}@media (max-width:32rem){section#projects .projects-carousel{--project-card-width:calc(100vw - (var(--spacing-margin) * 2));--project-card-height:calc((100vw - (var(--spacing-margin) * 2)) / 2);display:grid;grid-auto-flow:row;grid-template-columns:1fr;grid-template-rows:none;grid-auto-columns:auto;gap:var(--project-card-gap);overflow:visible;padding:1rem}section#projects .project-card{width:100%;height:auto;min-width:0;min-height:16rem}section#projects .project-card:nth-child(even){margin-left:0}}section#timeline{border-bottom-width:0px}section#timeline>div:nth-of-type(2){padding-bottom:2rem;border-left-width:1px;--tw-border-opacity:1;border-color:rgb(170 137 127 / var(--tw-border-opacity,1));margin-left:1rem}section#timeline>div:nth-of-type(2)>:not(:last-child){--tw-space-y-reverse:0;margin-block-start:calc(3rem * var(--tw-space-y-reverse));margin-block-end:calc(3rem * calc(1 - var(--tw-space-y-reverse)))}section#timeline>div:nth-of-type(2)>div{position:relative;padding-left:2rem}section#timeline>div:nth-of-type(2)>div .square{position:absolute;left:-5px;top:0px;width:0.5rem;height:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(255 95 31 / var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 95 31 / var(--tw-bg-opacity,1))}section#timeline>div:nth-of-type(2)>div .text{display:grid;gap:1rem}section#timeline>div:nth-of-type(2)>div .text>div:first-child{font-family:var(--font-label-sm);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);letter-spacing:var(--ls-label-sm);font-weight:var(--fw-label-sm);color:var(--color-on-surface-variant);padding-top:var(--spacing-unit)}section#timeline>div:nth-of-type(2)>div .text>div:nth-child(2)>h3{font-family:var(--font-body-lg);font-size:var(--fs-body-lg);line-height:var(--lh-body-lg);letter-spacing:var(--ls-body-lg);font-weight:700;color:var(--color-on-surface)}section#timeline>div:nth-of-type(2)>div .text>div:nth-child(2)>h6{font-family:var(--font-label-sm);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);letter-spacing:var(--ls-label-sm);font-weight:var(--fw-label-sm);color:var(--color-primary-container);margin-top:var(--spacing-unit);margin-bottom:1rem}section#timeline>div:nth-of-type(2)>div .text>div:nth-child(2)>p{font-family:var(--font-body-md);font-size:var(--fs-body-md);line-height:var(--lh-body-md);letter-spacing:var(--ls-body-md);font-weight:var(--fw-body-md);color:var(--color-on-surface-variant)}@media (min-width:768px){nav>div{display:grid;grid-template-columns:1fr auto 1fr}nav div.shortcuts{justify-self:center}nav>div>a:nth-child(3){justify-self:end}footer{display:grid;grid-template-columns:1fr auto 1fr}footer>div:nth-child(1){margin-bottom:0}footer>div:nth-child(2){margin-bottom:0}footer>div:nth-child(3){justify-self:end}section .title>h2{font-size:32px;line-height:1.2;letter-spacing:-0.02em;font-weight:600}section#landing{padding-top:160px;padding-bottom:160px;grid-template-columns:repeat(2,minmax(0,1fr))}section#landing div:nth-child(2){margin-top:0}section#timeline>div:nth-of-type(2){margin-left:2rem}section#timeline>div:nth-of-type(2)>div{padding-left:4rem}section#timeline>div:nth-of-type(2)>div .text{grid-template-columns:200px 1fr}}@media (min-width:640px){section#landing button{width:auto}section#landing div:nth-child(1)>div:last-child{flex-direction:row}}section#error,section#qrcode{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 72px - 132px);padding:var(--spacing-margin);text-align:center;border:0}section#error>div,section#qrcode>div{display:grid;gap:1rem;justify-items:center}section#error p{color:var(--color-primary-container);font-family:var(--font-label-sm);font-size:var(--fs-label-sm)}section#error h1{font-family:var(--font-headline-lg);font-size:var(--fs-headline-lg)}section#error a{color:var(--color-primary);text-decoration:underline}section#error button.cv{display:inline-flex}