@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./instrument-sans-latin-ext-wght-normal.B5bTHO_g.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./instrument-sans-latin-wght-normal.BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#191816;--color-surface:#211f1c;--color-text:#eee9df;--color-muted:#938d83;--color-border:#35312c;--color-accent:#c9a875;--color-spotify:#1db954;--content-width:760px;--content-gutter:calc(clamp(1.25rem, 5vw, 2rem));--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:calc(clamp(1.625rem, 3vw, 1.875rem));--text-2xl:calc(clamp(1.75rem, 3vw, 2.25rem));--text-3xl:calc(clamp(2.5rem, 7vw, 4.5rem));--leading-tight:1.12;--leading-body:1.65;--radius-sm:2px;--radius-md:6px;--header-height:4rem;--transition-fast:.16s ease;--transition-base:.24s ease}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-4));-webkit-text-size-adjust:100%}body,html{background:var(--color-bg)}body{min-height:100vh;color:var(--color-text);font-family:Instrument Sans Variable,Instrument Sans,system-ui,sans-serif;font-size:var(--text-base);font-weight:400;line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}figure,h1,h2,h3,h4,ol,p,ul{margin:0;padding:0}ol,ul{list-style:none}img,svg{max-width:100%;height:auto;display:block}.error-page__title,.hero__name,.project__name,.section-title,.timeline-entry__org,.track__title{text-wrap:balance}a{color:inherit}a,button{touch-action:manipulation;-webkit-tap-highlight-color:#c9a87529}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}::selection{background:var(--color-accent);color:var(--color-bg)}.site-shell{flex-direction:column;min-height:100vh;display:flex}.site-main{width:min(100% - (2 * var(--content-gutter)),var(--content-width));flex:1;margin-inline:auto}footer[id],main[id],section[id]{scroll-margin-top:calc(var(--header-height) + var(--space-4))}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-3);left:var(--content-gutter);z-index:100;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-text);color:var(--color-bg);font-size:var(--text-sm);transform:translateY(calc(-100% - var(--space-4)));transition:transform var(--transition-fast);font-weight:500;text-decoration:none;position:fixed}.skip-link:focus-visible{transform:translateY(0)}.site-header{z-index:50;border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0}.site-header__inner{width:min(100% - (2 * var(--content-gutter)),var(--content-width));min-height:var(--header-height);align-items:center;gap:var(--space-5);margin-inline:auto;display:flex}.wordmark{letter-spacing:-.02em;white-space:nowrap;transition:color var(--transition-fast);font-weight:600;text-decoration:none}.wordmark:hover{color:var(--color-accent)}.header-contact,.locale-switcher a,.site-nav a,.wordmark{align-items:center;min-height:2.75rem;display:inline-flex}.site-nav{gap:var(--space-4);margin-left:auto;display:flex}.header-contact,.site-nav a{color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap;transition:color var(--transition-fast);text-decoration:none}.header-contact:hover,.site-nav a:hover,.header-contact:focus-visible,.site-nav a:focus-visible{color:var(--color-text)}.locale-switcher{align-items:center;gap:var(--space-1);color:var(--color-border);font-size:var(--text-xs);letter-spacing:.08em;display:flex}.locale-switcher a{padding:var(--space-1);color:var(--color-muted);transition:color var(--transition-fast);text-decoration:none}.locale-switcher a:hover{color:var(--color-text)}.locale-switcher a[aria-current=page]{color:var(--color-text);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.3em}.page{gap:var(--space-9);padding-top:var(--space-7);flex-direction:column;display:flex}.hero{gap:var(--space-7);padding-bottom:var(--space-8);grid-template-columns:minmax(0,1fr) 220px;align-items:center;display:grid;position:relative}.hero:after{background:linear-gradient(to right,var(--color-accent) 0,var(--color-accent) 88px,var(--color-border) 88px,var(--color-border) 100%);content:"";height:1px;position:absolute;bottom:0;left:0;right:0}.hero__name{font-size:var(--text-3xl);letter-spacing:-.055em;font-weight:500;line-height:1.02}.hero__role{margin-top:var(--space-3);color:var(--color-accent);font-size:var(--text-lg);letter-spacing:-.015em;font-weight:500}.hero__summary{max-width:44ch;margin-top:var(--space-5);color:var(--color-muted);font-size:1.0625rem;line-height:1.7}.hero__links{margin-top:var(--space-5);gap:var(--space-5);flex-wrap:wrap;display:flex}.hero__links a{border-bottom:1px solid var(--color-border);transition:color var(--transition-fast),border-color var(--transition-fast);padding-block:2px;font-size:.9375rem;text-decoration:none}.hero__links a:hover{border-color:var(--color-accent);color:var(--color-accent)}.hero__portrait{justify-self:end;width:100%;max-width:220px;margin:0}.hero__monogram,.hero__portrait img{aspect-ratio:1;border:1px solid var(--color-border);background:var(--color-surface);border-radius:50%;width:100%}.hero__portrait img{-o-object-fit:cover;object-fit:cover;height:auto}.hero__monogram{max-width:220px;color:var(--color-accent);letter-spacing:-.04em;justify-self:end;place-items:center;font-size:2.75rem;font-weight:500;display:grid}@keyframes hero-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.hero__copy{animation:.5s cubic-bezier(.2,.7,.2,1) both hero-enter}.hero__monogram,.hero__portrait{animation:.6s cubic-bezier(.2,.7,.2,1) 80ms both hero-enter}.section-title{font-size:var(--text-xl);letter-spacing:-.03em;font-weight:550;line-height:1.2}.projects{margin-top:var(--space-6);flex-direction:column;display:flex}.project{grid-template-columns:minmax(0,1fr);display:grid}.project+.project{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--color-border)}.project__body{min-width:0}.project__name{letter-spacing:-.03em;font-size:1.5rem;font-weight:550;line-height:1.2}.project__summary{margin-top:var(--space-3);font-size:1.0625rem}.project__contribution{margin-top:var(--space-3);color:var(--color-muted);font-size:.9375rem}.project__outcome{margin-top:var(--space-3);color:var(--color-accent);font-size:.875rem}.project__tech{margin-top:var(--space-4);color:var(--color-muted);font-size:var(--text-xs);letter-spacing:.01em;line-height:1.5}.project__links{margin-top:var(--space-5);gap:var(--space-4);flex-wrap:wrap;display:flex}.project__links a{border-bottom:1px solid var(--color-border);transition:color var(--transition-fast),border-color var(--transition-fast);padding-block:2px;font-size:.875rem;text-decoration:none}.project__links a:hover{border-color:var(--color-accent);color:var(--color-accent)}.career-group{margin-top:var(--space-6)}.timeline-entry{padding-block:var(--space-5);border-bottom:1px solid var(--color-border)}.timeline-entry__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.timeline-entry__org{min-width:0;font-size:var(--text-base);letter-spacing:-.01em;overflow-wrap:break-word;font-weight:600;line-height:1.3}.timeline-entry__period{color:var(--color-muted);font-size:var(--text-xs);white-space:nowrap}.timeline-entry__role{margin-top:var(--space-1);color:var(--color-muted);font-size:var(--text-sm)}.timeline-entry__summary{margin-top:var(--space-3);color:var(--color-muted);font-size:.9375rem}.timeline-entry__highlights{margin-top:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.timeline-entry__highlights li{padding-left:var(--space-4);color:var(--color-muted);font-size:.9375rem;position:relative}.timeline-entry__highlights li:before{background:var(--color-accent);content:"";width:6px;height:1px;position:absolute;top:.78em;left:0}.timeline-entry__tech{margin-top:var(--space-3);color:var(--color-muted);font-size:var(--text-xs);word-spacing:.15em;line-height:1.5}.spotify{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);background:color-mix(in srgb,var(--color-surface) 62%,var(--color-bg))}.spotify-primary{padding:0 0 var(--space-5);border-bottom:1px solid var(--color-border)}.track{align-items:center;gap:var(--space-5);grid-template-columns:136px minmax(0,1fr);display:grid}.track--recent{gap:var(--space-4);grid-template-columns:44px minmax(0,1fr)}.track__artwork{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;overflow:hidden}.track--primary .track__artwork{width:136px}.track--recent .track__artwork{width:44px}.track__artwork img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.track__artwork--empty{color:var(--color-muted);place-items:center;display:grid}.track__body{overflow-wrap:anywhere;min-width:0}.track__status{align-items:center;gap:var(--space-2);color:var(--color-muted);font-size:var(--text-sm);display:flex}.track__status-dot{background:var(--color-muted);border-radius:50%;flex:none;width:7px;height:7px}.track__status-dot--playing{background:var(--color-spotify);box-shadow:0 0 0 3px #1db9541f}.track__title{max-width:100%;margin-top:var(--space-2);letter-spacing:-.035em;transition:color var(--transition-fast);font-size:1.75rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-block}.track__title:hover{color:var(--color-accent)}.track--recent .track__title{letter-spacing:-.01em;margin-top:0;padding-block:3px;font-size:.9375rem;font-weight:550}.track__artists{margin-top:var(--space-1);color:var(--color-muted);font-size:var(--text-sm)}.track--recent .track__artists,.track__album{font-size:var(--text-xs)}.track__album{margin-top:var(--space-1);color:var(--color-muted)}.spotify-recent{margin-top:var(--space-4)}.spotify-recent__title{color:var(--color-muted);font-size:var(--text-sm);letter-spacing:.01em;font-weight:600}.track-list{margin-top:var(--space-2)}.track-list li{border-bottom:1px solid var(--color-border)}.track-list li:last-child{border-bottom:0}.track-list li .track{padding-block:var(--space-3)}.spotify-empty{margin-top:var(--space-5);padding-block:var(--space-4);border-top:1px solid var(--color-border);color:var(--color-muted)}.spotify-dev-hint{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--text-xs)}.error-page{min-height:calc(100vh - 10rem - var(--header-height));padding-block:var(--space-9);flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.error-page__code{color:var(--color-accent);font-size:var(--text-sm);letter-spacing:.14em;font-weight:600}.error-page__title{margin-top:var(--space-4);font-size:var(--text-2xl);letter-spacing:-.04em;font-weight:500;line-height:1.1}.error-page__description{max-width:44ch;margin-top:var(--space-4);color:var(--color-muted);font-size:1.0625rem;line-height:1.7}.error-page__link{margin-top:var(--space-6);border-bottom:1px solid var(--color-border);transition:color var(--transition-fast),border-color var(--transition-fast);padding-block:2px;font-size:.9375rem;text-decoration:none}.error-page__link:hover{border-color:var(--color-accent);color:var(--color-accent)}.site-footer{margin-top:var(--space-10);border-top:1px solid var(--color-border)}.site-footer__inner{width:min(100% - (2 * var(--content-gutter)),var(--content-width));padding-block:var(--space-6);justify-content:space-between;align-items:flex-end;gap:var(--space-5);flex-wrap:wrap;margin-inline:auto;display:flex}.site-footer__label{margin-bottom:var(--space-2);color:var(--color-muted);font-size:var(--text-sm)}.site-footer__links{gap:var(--space-5);flex-wrap:wrap;display:flex}.site-footer__links a{border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:var(--text-base);transition:color var(--transition-fast),border-color var(--transition-fast);padding-block:2px;text-decoration:none}.site-footer__links a:hover{border-color:var(--color-accent);color:var(--color-accent)}.external-mark{color:var(--color-muted);margin-left:.2em;font-size:.85em}.site-footer__note{color:var(--color-muted);font-size:var(--text-sm)}@media (width<=720px){.page{gap:var(--space-8);padding-top:var(--space-5)}.hero{gap:var(--space-5);padding-bottom:var(--space-6);grid-template-columns:1fr}.hero__copy{grid-row:2}.hero__monogram,.hero__portrait{grid-row:1;justify-self:start;width:148px}.hero__name{font-size:calc(clamp(2.5rem,13vw,3.5rem))}.hero__summary{font-size:1rem}.projects{margin-top:var(--space-5)}.project+.project{margin-top:var(--space-7);padding-top:var(--space-7)}.timeline-entry__header{gap:var(--space-1);flex-direction:column}.timeline-entry__period{white-space:normal}.track{gap:var(--space-4);grid-template-columns:92px minmax(0,1fr)}.spotify{padding:var(--space-4)}.spotify-primary{padding-bottom:var(--space-4)}.track--primary .track__artwork{width:92px}.track__title{font-size:1.375rem}.track--recent{grid-template-columns:40px minmax(0,1fr)}.track--recent .track__artwork{width:40px}}@media (width<=640px){.site-header__inner{gap:var(--space-3);min-height:3.5rem}.site-nav{display:none}.header-contact{margin-left:auto}.wordmark{font-size:.9375rem}.site-footer__inner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hero__copy,.hero__monogram,.hero__portrait{animation:none}}
