:root{color-scheme:light;--paper:#f2f2f7;--ink:#1d1d1f;--body:#515156;--quiet:#6e6e73;--line:#e8e8ed;--blue:#1d1d1f;--accent:#0071e3;--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--site-width:640px;--body-size:17px;--heading-size:36px;--spacing:1;--surface:#fff;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#c3c3cc transparent}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--body-size)/1.47 var(--font);letter-spacing:-.025em;-webkit-font-smoothing:antialiased}
body::before{content:"";position:absolute;inset:0 0 auto;height:440px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 7% -20%,#dfe6f6 0,transparent 52%),radial-gradient(ellipse at 100% -20%,#eae3f1 0,transparent 52%)}
button,input,select,textarea{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:#c8dfff;color:#182c48}[hidden]{display:none!important}
h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--ink);font-weight:700}h1{font-size:var(--heading-size);line-height:1.08;letter-spacing:-.045em}h2{font-size:20px;line-height:1.2;letter-spacing:-.035em;margin:0 0 9px 4px}h3{font-size:16px;font-weight:600;line-height:1.47;letter-spacing:-.02em}p{overflow-wrap:break-word}strong{font-weight:600}svg{display:block;flex:none}
.wrap{width:calc(100% - 40px);max-width:var(--site-width);margin:0 auto;padding-bottom:36px}
.profile-card{margin-top:32px;padding:24px}.name-stress{position:relative;display:inline-block}.name-stress::after{content:"\00b4";position:absolute;left:50%;top:0;transform:translateX(-50%);color:var(--accent);opacity:0;transition:opacity .2s;pointer-events:none}@media(hover:hover){.profile-card:hover .name-stress::after{opacity:1}}
.profile-card+.contact-strip{margin-top:12px}.profile-description{padding:24px;margin-top:16px}.masthead{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:flex-start;gap:20px;padding:0;min-height:0}.avatar{display:block;width:120px;height:120px;flex:none;object-fit:cover;border-radius:50%}.profile-identity{min-width:0}.role{color:var(--quiet);font-size:16px;line-height:1.5;margin-top:8px;letter-spacing:-.02em}
.contact-strip{display:flex;align-items:center;gap:0;margin-left:-10px;padding-top:6px;flex-wrap:wrap}.social-link{border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center;width:40px;height:40px;color:#7c7c82;text-decoration:none;border-radius:10px;transition:color .2s}.brand-icon{width:20px;height:20px;fill:currentColor;stroke:none}.social-link:hover{color:var(--ink)}.social-link:focus-visible{color:var(--ink)}
.section-nav{display:inline-flex;align-items:center;gap:0;margin-top:22px;padding:3px;background:#ffffffa6;border:1px solid #ffffffc9;border-radius:999px;box-shadow:0 9px 20px -9px #20203333,inset 0 1px 0 #fff;max-width:100%}.section-nav a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 20px;border-radius:999px;font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .2s,color .2s}.section-nav a:hover,.section-nav a[aria-current]{background:#fff}.section-nav a:active{background:#eaeaef}
.page-section{scroll-margin-top:32px;outline:none}.site-block{position:relative}.home-section .site-block{padding:14px 0 6px}.intro{font-size:26px;font-weight:600;line-height:1.27;letter-spacing:-.045em;color:var(--ink);text-wrap:pretty}.intro p+p{margin-top:12px}
.group{background:var(--surface);border-radius:28px;overflow:hidden}.line{position:relative;display:block;padding:14px 20px;text-decoration:none;color:var(--ink)}.line+.line::before,.project+.project::before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:var(--line)}a.line{padding-right:48px;transition:background .2s}a.line:hover{background:#f9f9fb}a.line:focus-visible{outline-offset:-4px;border-radius:24px}.line-name{display:block;font-size:16px;font-weight:600;line-height:1.4;letter-spacing:-.025em}.line-desc{display:block;font-size:15px;font-weight:400;line-height:1.5;color:var(--quiet);margin-top:3px;letter-spacing:-.018em}.line-note{font-size:13px;color:var(--quiet);margin-top:7px;letter-spacing:-.01em}.chevron{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:#b5b5bb}.line>.chevron{position:absolute;right:18px;top:50%;translate:0 -50%}
.skill-block{padding:16px 20px 18px}.skill-block+.skill-block{border-top:1px solid var(--line)}.skill-desc{font-size:14px;line-height:1.5;color:var(--quiet);margin-top:5px;letter-spacing:-.015em}.skill-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.skill-tags a{display:inline-flex;align-items:center;gap:7px;background:#f5f5f8;border:1px solid #e8e8ee;border-radius:999px;min-height:34px;padding:5px 11px;text-decoration:none;font-size:13px;letter-spacing:-.01em;transition:background .2s,transform .2s var(--ease)}.skill-tags a:hover{background:#eaeaef;transform:translateY(-1px)}.skill-tags .brand-icon{width:15px;height:15px}.personal-note{padding:12px 4px 0;color:var(--body);font-size:16px;line-height:1.5}.personal-note p+p{margin-top:13px}.contact-note{font-size:16px;line-height:1.5;padding:12px 4px}.copy-email{padding:0;background:none;border:0;color:var(--quiet);font-size:13px;margin-top:10px;text-decoration:underline;text-decoration-color:#bcbcc2;text-underline-offset:3px}
.detail-section{padding-top:calc(52px * var(--spacing))}.detail-section>.site-block+.site-block{margin-top:24px}.detail-section>.site-block>h2{font-size:28px;margin:0 0 16px 4px;letter-spacing:-.04em}.section-description{font-size:16px;color:var(--quiet);margin:0 4px 18px}.experience-item{padding:20px;scroll-margin-top:32px}.experience-item+.experience-item{border-top:1px solid var(--line)}.experience-top{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.experience-top h3{font-size:18px;font-weight:600}.date{font-size:12px;white-space:nowrap;color:var(--quiet);font-variant-numeric:tabular-nums;letter-spacing:0}.experience-role{font-size:15px;color:var(--quiet);margin-top:4px}.experience-item>p:last-child{font-size:15px;line-height:1.55;color:var(--body);margin-top:12px}
.project{position:relative}.project summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;padding:18px 20px;transition:background .2s}.project summary::-webkit-details-marker{display:none}.project summary:hover{background:#f9f9fb}.project summary:focus-visible{outline-offset:-4px;border-radius:24px}.project summary .chevron{transition:transform .25s var(--ease)}.project[open] summary .chevron{transform:rotate(90deg)}.project-body{padding:0 20px 20px;color:var(--body);font-size:15px;line-height:1.6;animation:detail-open .25s var(--ease)}.project-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.project-tags span{font-size:12px;line-height:1.3;padding:5px 9px;background:#f3f3f7;border-radius:6px;color:var(--quiet);letter-spacing:0}@keyframes detail-open{from{opacity:.5;transform:translateY(-4px)}to{opacity:1;transform:none}}
.award{display:flex;align-items:baseline;gap:20px;justify-content:space-between;padding:17px 20px}.award+.award{border-top:1px solid var(--line)}.award .year{font-size:13px;color:var(--quiet);white-space:nowrap;font-variant-numeric:tabular-nums}.award .line-desc{font-size:14px}.page-footer{display:flex;gap:20px;align-items:center;justify-content:space-between;font-size:12px;color:var(--quiet);padding:32px 4px 0;letter-spacing:0}.page-footer a{color:var(--quiet)}
.skip-link{position:fixed;z-index:100;top:-100px;left:20px;background:#fff;color:var(--ink);padding:10px 16px;border-radius:12px}.skip-link:focus{top:12px}main:focus{outline:none}.loading-state,.error-state{padding-top:44px}.loading-state{width:calc(100% - 40px);max-width:var(--site-width);margin:auto;color:var(--quiet)}.error-state p{margin:18px 0}.error-state button{padding:10px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}#toast{position:fixed;z-index:90;bottom:24px;left:50%;translate:-50% 8px;opacity:0;pointer-events:none;padding:12px 18px;background:#1d1d1f;color:#fff;border-radius:14px;font-size:14px;letter-spacing:0;max-width:calc(100vw - 40px);transition:opacity .2s,translate .25s var(--ease)}#toast.show{opacity:1;translate:-50% 0}.preview-mode .site-block{outline-offset:4px}.preview-mode .site-block:hover,.preview-mode .masthead:hover{outline:1px dashed var(--accent)}.preview-mode .preview-selected{outline:2px solid var(--accent)}
@media(max-width:600px){.profile-card{margin-top:20px;padding:20px 16px}.masthead{gap:16px}.avatar{width:92px;height:92px}h1{font-size:clamp(29px,7.5vw,var(--heading-size))}.intro{font-size:24px}.section-nav a{padding-inline:17px;min-height:42px;font-size:14px}.contact-strip{gap:0}.social-link{width:42px;height:42px}.detail-section{padding-top:40px}.experience-top{display:block}.date{display:block;margin-top:5px}.award{gap:14px}.group{border-radius:24px}}
@media(max-width:359px){.profile-card h1{font-size:26px}.masthead{gap:12px}.avatar{width:76px;height:76px}.wrap{width:calc(100% - 32px)}.section-nav{display:flex}.section-nav a{padding-inline:12px;flex:1;font-size:13px}.intro{font-size:22px}.line,.project summary,.award,.experience-item,.skill-block{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.social-link:hover,.skill-tags a:hover{transform:none}}

.get-in-touch{display:inline;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.get-in-touch .copy-hint{display:none}.get-in-touch:hover .copy-hint,.get-in-touch:focus-visible .copy-hint{display:inline}.get-in-touch:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

.competition-profiles{margin-top:24px}.competition-profiles a:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}

.profile-languages{color:var(--quiet);font-size:16px;line-height:1.5;margin-top:4px;letter-spacing:-.02em}

.skill-lane{padding:18px 0;outline-offset:-4px}.skill-lane+.skill-lane{border-top:1px solid var(--line)}.skill-lane h3{padding:0 20px;margin:0 0 12px;font-size:15px;font-weight:600;letter-spacing:-.02em}.skill-window{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent)}.skill-track{display:flex;width:max-content;animation:skills-travel 75s linear infinite;animation-play-state:paused}.skill-cycle{display:flex;align-items:center;gap:10px;list-style:none;margin:0;padding:0 10px 0 0;flex-shrink:0}.skill-cycle li{white-space:nowrap;padding:7px 12px;border-radius:999px;background:#f5f5f8;color:var(--ink);font-size:14px;line-height:1.4}.skill-lane:nth-child(2) .skill-track{animation-direction:reverse;animation-duration:65s}.skill-lane:nth-child(3) .skill-track{animation-duration:45s}.skill-lane.is-visible .skill-track{animation-play-state:running}.skill-lane:hover .skill-track,.skill-lane:focus-within .skill-track,.motion-paused .skill-track{animation-play-state:paused}@keyframes skills-travel{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.skill-window{overflow:visible;mask-image:none}.skill-track{width:auto;animation:none}.skill-cycle{flex-wrap:wrap;padding:0 20px;gap:8px}.skill-cycle[aria-hidden]{display:none}.skill-cycle li{white-space:normal}}

.intro .highlight{padding:0 .1em;border-radius:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.highlight-blue{color:#1254a3;background:#e6f0ff}.highlight-green{color:#22613b;background:#e6f4e8}.highlight-gold{color:#795006;background:#fff0bf}.highlight-yellow{color:#62500a;background:#fff6b8}.intro a.highlight{text-decoration:none;box-shadow:inset 0 -1px currentColor;transition:background .2s}.intro a.highlight:hover{background:#e1e1e9}.award[id]{scroll-margin-top:32px;outline-offset:-4px}

.former-name{color:var(--quiet);font-weight:400}

.language-level{display:inline-grid;vertical-align:baseline;cursor:default;border-radius:3px}.language-level>span{grid-area:1/1;text-align:center;transition:opacity .25s ease}.language-proficiency{opacity:0}.language-level:hover .language-name,.language-level:focus .language-name{opacity:0}.language-level:hover .language-proficiency,.language-level:focus .language-proficiency{opacity:1}.language-level:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.education-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.education-name{min-width:0;cursor:default;border-radius:3px}.education-honors{color:var(--quiet)}.education-year{font-size:13px;font-weight:400;white-space:nowrap;color:var(--quiet);font-variant-numeric:tabular-nums}.education-name:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.education-skills{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:10px 0 0;padding:0}.education-skills li{padding:7px 12px;border-radius:999px;background:#f5f5f8;color:var(--ink);font-size:14px;line-height:1.4}
