body{timeline-scope:--hero}.profile-photo.svelte-549brs,.hero.svelte-549brs{--pad:0px}@media (width>=420px){.profile-photo.svelte-549brs,.hero.svelte-549brs{--pad:clamp(.5rem, calc(.5rem + (100vw - 375px) * 2.5rem / 1065px), 3rem)}}.profile-photo.svelte-549brs{--size:min(420px, 100% - 2 * var(--pad));width:var(--size);aspect-ratio:1;margin-inline-start:var(--pad);margin-bottom:calc(-1 * var(--size));z-index:5;display:block;position:relative}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()) and (animation-range:exit 0% exit 50%) and (timeline-scope:--hero){.profile-photo.svelte-549brs{top:var(--pad);transform-origin:100% 0;animation-name:svelte-549brs-photo-morph;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--hero;animation-range:exit calc(0% - var(--pad)) exit 50%;transition:translate .3s ease-out;position:sticky}}}.hero.svelte-549brs{padding-inline:var(--pad);view-timeline:--hero;flex-wrap:wrap;align-items:center;gap:1rem;display:flex}@media (width>=800px){.hero.svelte-549brs{flex-wrap:nowrap}}.hero.svelte-549brs .photo-slot:where(.svelte-549brs){aspect-ratio:1;flex:none;width:min(420px,100%)}.hero.svelte-549brs .intro:where(.svelte-549brs){flex:auto}@media (width>=800px) and (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()) and (animation-range:exit 0% exit 50%) and (timeline-scope:--hero){.hero.svelte-549brs .intro:where(.svelte-549brs){top:var(--pad);animation-name:svelte-549brs-intro-slide;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--hero;animation-range:exit calc(0% - var(--pad)) exit 50%;align-self:flex-end;position:sticky}}}@keyframes svelte-549brs-intro-slide{to{translate:calc(-420px - 1rem)}}@keyframes svelte-549brs-photo-morph{0%{clip-path:polygon(0% 100%,0% 0%,20% 0%,50% 0%,80% 0%,100% 0%,100% 100%,80% 100%,65% 100%,50% 100%,35% 100%,20% 100%);margin-inline-start:var(--pad);scale:1}25%,35%{clip-path:polygon(0% 100%,0% 0%,20% 0%,50% 45%,80% 0%,100% 0%,100% 100%,80% 100%,80% 35%,50% 80%,20% 35%,20% 100%)}55%,65%{clip-path:polygon(0% 100%,0% 0%,100% 0%,100% 20%,25% 20%,25% 40%,80% 40%,80% 60%,25% 60%,25% 80%,100% 80%,100% 100%)}0%,99%{pointer-events:none}90%{clip-path:polygon(14.64% 85.36%,1.7% 62.94%,1.7% 37.06%,14.64% 14.64%,37.06% 1.7%,62.94% 1.7%,85.36% 14.64%,98.3% 37.06%,98.3% 62.94%,85.36% 85.36%,62.94% 98.3%,37.06% 98.3%)}to{clip-path:circle(50%);pointer-events:auto;margin-inline-start:calc(100% - var(--pad) - var(--size));scale:.12}}nav.svelte-uoct51{z-index:10;background-color:#ffffff6a;border-block:2px solid #000;justify-content:space-around;width:100%;transition:transform .3s;display:flex;position:fixed;bottom:0;transform:translateY(0)}nav.svelte-uoct51.nav-hidden{transform:translateY(100%)}nav.svelte-uoct51 a:where(.svelte-uoct51){color:#000;scroll-behavior:smooth;padding:.5rem;text-decoration:none}nav.svelte-uoct51 a:where(.svelte-uoct51):after{bottom:.5rem}#biography.svelte-kqumkp .hint:where(.svelte-kqumkp){cursor:help;position:relative}#biography.svelte-kqumkp .hint:where(.svelte-kqumkp):after{content:attr(data-tooltip);white-space:nowrap;color:#fff;opacity:0;pointer-events:none;z-index:20;background:#000;border-radius:.25rem;margin-top:.35rem;padding:.25rem .5rem;font-size:.75rem;transition:opacity .2s;position:absolute;top:100%;left:50%;transform:translate(-50%)}#biography.svelte-kqumkp .hint:where(.svelte-kqumkp):hover:after{opacity:1}#projects.svelte-jfvkwq .project-grid:where(.svelte-jfvkwq){grid-template-columns:repeat(auto-fit,minmax(max(15rem,25%),1fr));grid-template-rows:repeat(auto);display:grid}#projects.svelte-jfvkwq .project-grid:where(.svelte-jfvkwq) li:where(.svelte-jfvkwq){list-style:none;position:relative;overflow:hidden}#projects.svelte-jfvkwq .project-grid:where(.svelte-jfvkwq) li:where(.svelte-jfvkwq) a:where(.svelte-jfvkwq){display:block;position:relative}#projects.svelte-jfvkwq .project-grid:where(.svelte-jfvkwq) li:where(.svelte-jfvkwq) a:where(.svelte-jfvkwq) img:where(.svelte-jfvkwq){object-fit:cover;width:100%;height:auto;transition:filter .3s;display:block}#projects.svelte-jfvkwq .project-grid:where(.svelte-jfvkwq) li:where(.svelte-jfvkwq) a:where(.svelte-jfvkwq) .desc:where(.svelte-jfvkwq){text-align:center;color:#fff;opacity:0;background-color:#00000080;justify-content:center;align-items:center;padding:1rem;transition:opacity .3s;display:flex;position:absolute;inset:0}#projects.svelte-jfvkwq .project-grid:where(.svelte-jfvkwq) li:where(.svelte-jfvkwq) a:where(.svelte-jfvkwq):hover img:where(.svelte-jfvkwq){filter:blur(4px)}#projects.svelte-jfvkwq .project-grid:where(.svelte-jfvkwq) li:where(.svelte-jfvkwq) a:where(.svelte-jfvkwq):hover .desc:where(.svelte-jfvkwq){opacity:1}#contact.svelte-5cwemc{margin-bottom:2.8rem}#contact.svelte-5cwemc ul:where(.svelte-5cwemc) li:where(.svelte-5cwemc){width:fit-content}#contact.svelte-5cwemc ul:where(.svelte-5cwemc) li:where(.svelte-5cwemc) a:where(.svelte-5cwemc){display:flex}@media (width>768px){#contact.svelte-5cwemc ul:where(.svelte-5cwemc){justify-content:space-evenly;display:flex}}h1.svelte-1uha8ag{--stretch:clamp(.5, calc(1.5 - .5 * (100vw - 375px) / 825px), 1.5)}@media (prefers-reduced-motion:reduce){h1.svelte-1uha8ag{transform:scaleY(var(--stretch))}}h1.svelte-1uha8ag{transform-origin:top;white-space:nowrap;width:max-content;font-size:min(10vw,7rem)}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){h1.svelte-1uha8ag{--translate:min(0px, calc(-100% + 100vw - 2 * var(--pad)));animation-name:svelte-1uha8ag-extended-animation;animation-fill-mode:forwards;animation-timeline:view();animation-range:entry 100lvh exit 0%}}}.marquee.svelte-1uha8ag{--pad:clamp(.5rem, calc(.5rem + (100vw - 375px) * 2.5rem / 1065px), 3rem);padding-inline:var(--pad);width:100%;height:clamp(10lvh, calc(10lvh + (40lvh - 10lvh) * (100vw - 375px) / 1065px), 40lvh);overflow:clip}.marquee.svelte-1uha8ag .marquee__inner:where(.svelte-1uha8ag){width:max-content;position:sticky;top:0}@keyframes svelte-1uha8ag-translate-to{0%{transform:translate(0)}to{transform:translateX(var(--translate))}}@keyframes svelte-1uha8ag-extended-animation{0%{font-weight:300;transform:translate(0)}to{transform:translateX(var(--translate));color:#00f;font-weight:900}}
