@font-face{font-family:SF Pro Display;src:url(/fonts/SF-Pro-Display-Regular.otf) format("opentype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:SF Pro Display;src:url(/fonts/SF-Pro-Display-Medium.otf) format("opentype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:SF Pro Display;src:url(/fonts/SF-Pro-Display-Semibold.otf) format("opentype");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:SF Pro Display;src:url(/fonts/SF-Pro-Display-Bold.otf) format("opentype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:SF Pro Display;src:url(/fonts/SF-Pro-Display-Heavy.otf) format("opentype");font-style:normal;font-weight:800;font-display:swap}@font-face{font-family:SF Pro Display;src:url(/fonts/SF-Pro-Display-Black.otf) format("opentype");font-style:normal;font-weight:900;font-display:swap}@font-face{font-family:SF Pro Text;src:url(/fonts/SF-Pro-Text-Regular.otf) format("opentype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:SF Pro Text;src:url(/fonts/SF-Pro-Text-Medium.otf) format("opentype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:SF Pro Text;src:url(/fonts/SF-Pro-Text-Semibold.otf) format("opentype");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:SF Pro Text;src:url(/fonts/SF-Pro-Text-Bold.otf) format("opentype");font-style:normal;font-weight:700;font-display:swap}:root{color-scheme:light dark;--font-display: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-text: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--background: #f7f7f5;--text: #171717;--muted: #666663;--line: #deded9;--focus: #245ca6;--ease-fluid: cubic-bezier(.16, 1, .3, 1);--ease-cinematic: cubic-bezier(.2, .9, .2, 1)}@media(prefers-color-scheme:dark){:root{--background: #090807;--text: #b5b5b5;--muted: #6e6e6e;--line: #1c1a18;--focus: #38bdf8}}*,*:before,*:after{box-sizing:border-box}html{background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none;scroll-behavior:auto;overscroll-behavior:none}body{position:relative;display:flex;flex-direction:column;align-items:center;min-width:20rem;min-height:100dvh;margin:0;padding:clamp(3rem,7vh,5.5rem) 1.5rem;padding-top:calc(clamp(3rem,7vh,5.5rem) + env(safe-area-inset-top,0px));padding-bottom:calc(clamp(3rem,7vh,5.5rem) + env(safe-area-inset-bottom,0px));padding-left:calc(1.5rem + env(safe-area-inset-left,0px));padding-right:calc(1.5rem + env(safe-area-inset-right,0px));background:var(--background);color:var(--text);font-family:var(--font-text);font-size:1.05rem;line-height:1.55}::selection{background:color-mix(in srgb,var(--text) 16%,transparent)}a{color:inherit;text-decoration-color:color-mix(in srgb,currentColor 32%,transparent);text-decoration-thickness:1px;text-underline-offset:.2em;transition:color .26s var(--ease-fluid),text-decoration-color .26s var(--ease-fluid)}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.profile{position:relative;z-index:1;width:min(100%,39rem);margin:0 auto}.education,.summary,.ai-choice,.work h2,.music h2,.footer{animation:enter .75s var(--ease-cinematic) both;will-change:opacity,filter}.education{animation-delay:.11s}.summary{animation-delay:.18s}.ai-choice{animation-delay:.25s}.work h2{animation-delay:.32s}.music h2{animation-delay:.56s}.footer{animation-delay:.74s}.intro{margin-bottom:2.75rem}h1,h2,p{margin-top:0}.hero-signature-wrap{margin:0 0 .85rem -.35rem;padding:0;display:block}.hero-signature{display:block;width:100%;max-width:clamp(14.5rem,44vw,19.5rem);height:auto;color:var(--text);overflow:visible}.mask-stroke{fill:none;stroke:#fff;stroke-width:24;stroke-linecap:round;stroke-linejoin:round}.education,.summary,.contact{color:var(--muted)}.education{margin:0;font-family:var(--font-text);font-size:1.05rem;font-weight:400;letter-spacing:-.008em}.education a,.contact a{color:var(--text);text-decoration-color:color-mix(in srgb,currentColor 32%,transparent);transition:color .24s var(--ease-fluid),text-decoration-color .24s var(--ease-fluid)}.ai-choice a{color:var(--muted);text-decoration-color:color-mix(in srgb,currentColor 32%,transparent);transition:color .24s var(--ease-fluid),text-decoration-color .24s var(--ease-fluid)}.summary{max-width:39rem;margin-bottom:0;font-family:var(--font-text);font-size:1.05rem;font-weight:400;line-height:1.55;letter-spacing:-.011em;text-wrap:pretty}.work{margin-bottom:2.75rem}h2{margin-bottom:.85rem;font-family:var(--font-display);font-size:1rem;font-weight:600;letter-spacing:-.015em}.project-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem}.project-list li{animation:row-enter .6s var(--ease-cinematic) both;will-change:opacity,filter}.project-list li:nth-child(1){animation-delay:.38s}.project-list li:nth-child(2){animation-delay:.44s}.project-list li:nth-child(3){animation-delay:.5s}.project-list a{position:relative;display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:1rem;align-items:baseline;min-height:2.85rem;padding:.55rem 1.4rem .55rem 0;text-decoration:none}.project-list a:after{position:absolute;top:50%;right:0;width:.48rem;height:.48rem;border-top:1px solid currentColor;border-right:1px solid currentColor;color:var(--muted);content:"";opacity:0;transform:translateY(-50%);transition:opacity .28s var(--ease-fluid),color .28s var(--ease-fluid)}.project-name{font-family:var(--font-text);font-size:1.02rem;font-weight:600;color:var(--muted);letter-spacing:-.012em;transition:color .28s var(--ease-fluid)}.project-description{font-family:var(--font-text);font-size:1rem;font-weight:400;color:var(--muted);letter-spacing:-.006em;transition:color .28s var(--ease-fluid)}.music{margin-bottom:2.75rem}.music-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.music-list li{display:grid;grid-template-columns:3.35rem minmax(0,1fr) auto;gap:1.05rem;align-items:center;min-height:4.4rem;padding:.5rem 0;animation:row-enter .6s var(--ease-cinematic) both;will-change:opacity,filter}.music-list li:nth-child(1){animation-delay:.62s}.music-list li:nth-child(2){animation-delay:.68s}.music-icon{width:3.25rem;height:3.25rem;background:var(--text);opacity:.88;filter:drop-shadow(0 0 .4px currentColor);transition:opacity .28s var(--ease-fluid),filter .28s var(--ease-fluid);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.music-icon--piano{-webkit-mask-image:url(/images/piano.png);mask-image:url(/images/piano.png)}.music-icon--sax{-webkit-mask-image:url(/images/altosax.png);mask-image:url(/images/altosax.png)}.music-details{display:grid;gap:.02rem;min-width:0}.music-name{font-family:var(--font-text);font-size:1rem;font-weight:600;color:var(--text);letter-spacing:-.012em;transition:color .28s var(--ease-fluid)}.music-gear{font-family:var(--font-text);font-size:.85rem;font-weight:400;line-height:1.35;color:var(--muted);letter-spacing:-.004em;transition:color .28s var(--ease-fluid)}.music-duration{align-self:center;justify-self:end;text-align:right;font-family:var(--font-text);font-size:.9rem;font-weight:400;color:var(--muted);white-space:nowrap;letter-spacing:-.005em;transition:color .28s var(--ease-fluid)}.footer{display:flex;flex-direction:column;gap:.65rem;margin:0}.contact{display:flex;flex-wrap:wrap;gap:.45rem .9rem;align-items:center;margin:0;font-family:var(--font-text);font-size:.95rem;font-weight:400;font-style:normal}.ai-choice{margin-top:0;margin-bottom:2.75rem;font-family:var(--font-text);font-size:.8rem;font-weight:400;font-style:italic;color:var(--muted);letter-spacing:-.004em}@media(hover:hover)and (pointer:fine){.education a:hover,.contact a:hover,.ai-choice a:hover{color:var(--text);text-decoration-color:currentColor}.project-list a:hover .project-name{color:var(--text)}.project-list a:hover:after{opacity:1;color:var(--text)}.project-list a:hover .project-description,.music-list li:hover .music-name{color:var(--text)}.music-list li:hover .music-icon{opacity:1;filter:drop-shadow(0 0 .6px currentColor)}.music-list li:hover .music-gear,.music-list li:hover .music-duration{color:var(--text)}}@media(prefers-color-scheme:light){@media(hover:hover)and (pointer:fine){.education a:hover,.contact a:hover,.ai-choice a:hover,.project-list a:hover .project-name,.project-list a:hover:after,.project-list a:hover .project-description,.music-list li:hover .music-name,.music-list li:hover .music-gear,.music-list li:hover .music-duration{color:#000}}}@keyframes enter{0%{opacity:0;transform:translateY(8px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0px)}}@keyframes row-enter{0%{opacity:0;transform:translateY(4px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0px)}}@media(max-width:34rem){body{padding-inline:1.25rem}.hero-signature-wrap{margin:0 0 .75rem -.2rem;animation:enter .75s var(--ease-cinematic) 40ms both;will-change:opacity,filter}.hero-signature{max-width:min(17rem,86vw)}.intro,.ai-choice,.work,.music{margin-bottom:2.35rem}.summary{margin-bottom:0}.ai-choice{margin-top:0}.project-list a{grid-template-columns:1fr;gap:.05rem;padding-block:.72rem}.music-list li{grid-template-columns:2.85rem minmax(0,1fr) auto;gap:.85rem}.music-icon{width:2.85rem;height:2.85rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;filter:none!important}.mask-stroke{stroke-dashoffset:0!important;animation:none!important}}
