:root{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#1a1d26;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}html{background-color:#fff}body{margin:0;min-width:320px;min-height:100vh;background-color:transparent;color:inherit;text-transform:lowercase}body:before{content:"";position:fixed;top:-15%;right:-15%;bottom:-15%;left:-15%;z-index:0;pointer-events:none;background:radial-gradient(ellipse 55% 45% at 20% 30%,color-mix(in srgb,#7c9cff 22%,transparent),transparent 70%),radial-gradient(ellipse 50% 50% at 85% 20%,color-mix(in srgb,#e8a8d8 18%,transparent),transparent 68%),radial-gradient(ellipse 60% 55% at 70% 85%,color-mix(in srgb,#9ee4d4 16%,transparent),transparent 72%),radial-gradient(ellipse 45% 40% at 10% 90%,color-mix(in srgb,#ffd4a8 14%,transparent),transparent 65%);animation:ambient-gradient-drift 28s ease-in-out infinite alternate}@keyframes ambient-gradient-drift{0%{transform:translate(0) rotate(0) scale(1)}25%{transform:translate(4%,-3%) rotate(2deg) scale(1.04)}50%{transform:translate(-3%,2%) rotate(-1deg) scale(1.02)}75%{transform:translate(2%,4%) rotate(1deg) scale(1.05)}to{transform:translate(-2%,-2%) rotate(0) scale(1)}}@media (prefers-reduced-motion: reduce){body:before{animation:none;transform:none;top:0;right:0;bottom:0;left:0}}#root{position:relative;z-index:1;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f0f2f7;color:#1a1d26;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.page{min-height:100vh;display:flex;flex-direction:column}html{scroll-behavior:smooth}.section{padding:clamp(1.5rem,4vw,2.25rem) clamp(1.25rem,5vw,2rem)}.section__inner{max-width:42rem;margin:0 auto;width:100%}.section__inner--footer{max-width:56rem;display:grid;gap:0}.section--welcome{flex:0 0 auto;display:flex;align-items:center;justify-content:center;position:relative;box-sizing:border-box;min-height:clamp(12rem,32vh,18rem);padding-top:clamp(.85rem,3vw,1.35rem);padding-bottom:clamp(.85rem,3vw,1.35rem);text-align:center}.section--welcome .section__inner{position:relative;max-width:48rem;display:flex;flex-direction:column;align-items:center;text-align:center}.eyebrow{margin:0 0 .5rem;font-size:clamp(1.2rem,3vw,1.7rem);letter-spacing:.06em;color:color-mix(in srgb,currentColor 55%,transparent)}.welcome__title{margin:0 0 1rem;font-size:clamp(2.25rem,5vw,3.25rem);line-height:1.15;font-weight:700}.welcome-type__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.welcome-type{display:flex;flex-direction:column;align-items:center}.welcome-type__line1{min-height:1.4em}.welcome-type__line2{min-height:1.15em}.welcome-type__cursor{display:inline-block;margin-left:2px;font-weight:400;animation:welcome-cursor-blink 1s step-end infinite}@keyframes welcome-cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.welcome-type__cursor{animation:none;opacity:1}}.side-menu{position:fixed;left:1.25rem;top:1.25rem;z-index:10;display:flex;flex-direction:column;gap:.65rem;padding:.65rem .75rem;border-radius:10px;border:1px solid color-mix(in srgb,currentColor 14%,transparent);background:color-mix(in srgb,currentColor 5%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.side-menu a{font-size:.85rem;color:color-mix(in srgb,currentColor 76%,transparent);text-decoration:none}.side-menu a:hover{color:inherit}.welcome__lede{margin:0;font-size:clamp(1.05rem,2vw,1.2rem);line-height:1.6;color:color-mix(in srgb,currentColor 78%,transparent);max-width:36rem}.section h2{margin:0 0 1.25rem;font-size:clamp(1.35rem,2.5vw,1.6rem);font-weight:600}.section--about p,.section--experiences p{margin:0 0 1rem;line-height:1.65;color:color-mix(in srgb,currentColor 85%,transparent)}.section--about p:last-child{margin-bottom:0}.section__inner--about{max-width:56rem}.about__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,320px);gap:clamp(1.75rem,4vw,3rem);align-items:start}.about__content{min-width:0}.about__tech-list{margin:.5rem 0 0;padding-left:1.25rem;line-height:1.65;color:color-mix(in srgb,currentColor 85%,transparent)}.about__tech-list li{margin-bottom:.25rem}.about__figure{margin:0;position:relative}.about__image{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;border-radius:12px;background-color:color-mix(in srgb,currentColor 8%,transparent)}@media (max-width: 52rem){.about__grid{grid-template-columns:1fr}.about__figure{max-width:20rem;margin-inline:auto}.side-menu{display:none}}.experience-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2rem}.experience-list__item h3{margin:0 0 .35rem;font-size:1.1rem;font-weight:600}.experience-list__meta{margin:0 0 .5rem!important;font-size:.9rem;color:color-mix(in srgb,currentColor 55%,transparent)!important}.experience-list__item p:last-child{margin-bottom:0}.section--footer{margin-top:auto;padding-top:clamp(1.5rem,4vw,2.25rem);padding-bottom:clamp(1.5rem,4vw,2.25rem)}.footer__title{margin:0 0 1.25rem;font-size:clamp(1.35rem,2.5vw,1.6rem);font-weight:600}.footer__copy{margin:0;font-size:1rem;color:color-mix(in srgb,currentColor 72%,transparent)}.footer__groups{display:grid;gap:1rem;justify-items:start}.footer__group{display:grid;gap:.45rem;justify-items:start}.footer__subheader{margin:0;font-size:.8rem;font-weight:600;letter-spacing:.04em;color:color-mix(in srgb,currentColor 60%,transparent)}.footer__links{display:flex;flex-wrap:wrap;gap:.6rem .75rem;justify-content:flex-start;align-self:start;width:fit-content;max-width:100%;margin:0;padding:0}.footer__group .footer__links a{border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:8px;background:color-mix(in srgb,currentColor 4%,transparent);color:inherit;text-decoration:none;transition:background-color .2s ease,border-color .2s ease;cursor:pointer}.footer__group .footer__links a:hover,.footer__group .footer__links a:focus-visible{border-color:color-mix(in srgb,currentColor 28%,transparent);background:color-mix(in srgb,currentColor 10%,transparent);color:inherit}.footer__group .footer__links a{display:inline-block;font-size:.9rem;line-height:1.1;padding:.5rem .65rem}.footer__bar{margin-top:.75rem}.footer__copyright{margin:0;font-size:.88rem;color:color-mix(in srgb,currentColor 58%,transparent)}.spotify-now{position:absolute;top:clamp(.65rem,2vw,1rem);right:clamp(.65rem,4vw,1.5rem);z-index:2;display:flex;align-items:center;gap:.65rem;max-width:min(18.5rem,calc(100vw - 8rem));padding:.55rem .65rem;border-radius:10px;border:1px solid color-mix(in srgb,currentColor 14%,transparent);background:color-mix(in srgb,currentColor 6%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:left}.spotify-now__art{flex-shrink:0;width:48px;height:48px;border-radius:6px;object-fit:cover;background:color-mix(in srgb,currentColor 10%,transparent)}.spotify-now__art--placeholder{display:grid;place-items:center;color:#1db954;background:color-mix(in srgb,#1db954 12%,transparent)}.spotify-now__logo{width:26px;height:26px}.spotify-now__text{min-width:0}.spotify-now__label{margin:0;display:flex;flex-wrap:wrap;align-items:center;column-gap:.4rem;row-gap:.15rem;font-size:.68rem;font-weight:600;letter-spacing:.06em;color:color-mix(in srgb,currentColor 55%,transparent)}.spotify-now__preface{margin:0;min-width:0}.spotify-now__brand-group{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.spotify-now__live{display:inline-flex;align-items:center}.spotify-now__dot{width:6px;height:6px;border-radius:50%;background:#1db954;animation:spotify-pulse 1.4s ease-in-out infinite}@keyframes spotify-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.spotify-now__track{margin:.1rem 0 0;font-size:.82rem;font-weight:600;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.spotify-now__track a{color:inherit;text-decoration:none}.spotify-now__track a:hover{text-decoration:underline}.spotify-now__artist{margin:.15rem 0 0;font-size:.72rem;line-height:1.2;color:color-mix(in srgb,currentColor 65%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-now__hint{margin:.35rem 0 0;font-size:.65rem;line-height:1.3;color:color-mix(in srgb,currentColor 58%,transparent);word-break:break-word}@media (max-width: 36rem){.spotify-now{max-width:calc(100vw - 2.5rem)}}
