@layer resume{.resume-page{--resume-nav-height:0px;max-width:1136px;margin:auto;padding:0 32px}.resume-header{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;gap:20px 64px;padding:52px 0 24px;display:grid}.resume-name{flex-wrap:wrap;align-items:baseline;gap:8px 24px;display:flex}.resume-name h1{letter-spacing:-.025em;font-size:58px;font-weight:650;line-height:1.2}.resume-name>p{font-size:22px}.resume-description{max-width:36em;margin-top:20px;font-size:16px;line-height:1.9}.resume-skills{color:var(--secondary);margin-top:12px;font-size:13px}.resume-contact{flex-direction:column;align-items:flex-start;padding-top:4px;font-size:13px;display:flex}.resume-contact>span{color:var(--secondary);margin-bottom:5px}.resume-contact a{align-items:center;min-height:32px;display:inline-flex}.resume-page a:hover{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.resume-page button{min-height:44px;color:var(--secondary);border:0;padding:0;font-size:13px}.resume-page button:hover{color:var(--accent)}.resume-contact button{text-underline-offset:4px;margin-top:5px;text-decoration:underline}.resume-description p+p{margin-top:10px}.resume-page summary{cursor:pointer;list-style:none}.resume-page summary::-webkit-details-marker{display:none}.resume-edition{color:var(--secondary);grid-column:1/-1;font-size:12px}.resume-layout{grid-template-columns:140px minmax(0,1fr);gap:56px;padding-top:36px;display:grid}.resume-nav{top:calc(var(--header-height) + 28px);flex-direction:column;align-self:start;gap:2px;display:flex;position:sticky}.resume-nav a{width:fit-content;min-height:42px;color:var(--secondary);align-items:center;font-size:13px;display:flex}.resume-nav a[aria-current]{color:var(--text);text-underline-offset:6px;font-weight:700;text-decoration:underline 1px}.resume-sections{min-width:0}.resume-page :is(section,details,[id]){scroll-margin-top:calc(var(--header-height) + var(--resume-nav-height) + 24px)}:root:has(.resume-page){scroll-padding-top:0}.resume-section+.resume-section{margin-top:64px}.resume-section>h2{letter-spacing:0;margin-bottom:20px;font-size:26px;font-weight:650}.experience-list,.project-list,.resume-background{border-top:1px solid var(--line)}.experience-entry,.project-entry,.resume-background>details{border-bottom:1px solid var(--line)}.experience-entry>summary,.project-entry>summary{grid-template-columns:138px minmax(0,1fr) 20px;align-items:start;gap:22px;padding:24px 0;display:grid}.experience-period,.project-period{color:var(--secondary);font-variant-numeric:tabular-nums;padding-top:5px;font-size:12px}.experience-heading,.project-summary{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.experience-heading>strong,.project-title{font-size:21px;font-weight:600;line-height:1.55}.experience-heading>span,.project-meta{color:var(--secondary);font-size:13px}.experience-heading>small{margin-top:5px;font-size:14px;line-height:1.8}.detail-indicator{width:20px;height:28px;color:var(--secondary);transition:transform .16s var(--ease);justify-content:center;align-items:center;font-size:22px;font-weight:350;line-height:1;display:inline-flex}details[open]>summary .detail-indicator{transform:rotate(45deg)}.resume-page summary:hover .detail-indicator{color:var(--accent)}.experience-content,.project-content{padding:0 42px 26px 160px}.resume-prose{overflow-wrap:anywhere;font-size:15px;line-height:1.9}.resume-prose p{margin:0 0 16px}.resume-prose blockquote{color:var(--secondary);margin:0 0 24px}.resume-prose :is(ol,ul){margin:16px 0;padding-left:22px}.resume-prose li{margin:10px 0;padding-left:4px}.resume-prose li::marker{color:var(--secondary);font-size:.85em}.resume-prose a:not(.heading-anchor){color:var(--accent);text-underline-offset:4px;text-decoration:underline}.resume-prose :is(h2,h3,h4){margin:26px 0 14px;font-size:19px}.resume-prose .heading-anchor{opacity:0;margin-left:8px;font-size:12px}.resume-prose :is(h2,h3,h4):hover .heading-anchor,.resume-prose .heading-anchor:focus{opacity:1}.experience-projects{flex-wrap:wrap;gap:0 20px;margin-top:24px;display:flex}.experience-projects>span{width:100%;color:var(--secondary);font-size:12px}.experience-projects a{min-height:40px;color:var(--accent);align-items:center;font-size:13px;display:inline-flex}.project-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-top:-6px;padding-bottom:14px;display:flex}.project-filters{flex-wrap:wrap;gap:22px;display:flex}.project-filters button[aria-pressed=true]{color:var(--text);text-underline-offset:6px;font-weight:700;text-decoration:underline 1px}.project-filters button span{margin-left:4px;font-size:11px;font-weight:400}.project-expand-all{flex-shrink:0}.project-outcome{margin-top:7px;font-size:15px;line-height:1.8}.project-technologies{color:var(--secondary);margin-top:8px;font-size:12px}.project-detail-footer{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:24px;padding-top:14px;font-size:13px;display:flex}.project-detail-footer a{color:var(--accent);align-items:center;min-height:44px;display:flex}.project-detail-footer button{margin-left:auto}.resume-contributions{border-top:1px solid var(--line);padding-top:24px}.resume-contributions h3{letter-spacing:0;margin-bottom:12px;font-size:18px;font-weight:550}.resume-opensource .resume-prose ol,.resume-talk .resume-prose ol{margin:0;padding:0;list-style:none}.resume-opensource .resume-prose li,.resume-talk .resume-prose li{margin:0;padding:0;font-size:14px}.resume-opensource .resume-prose li a,.resume-talk .resume-prose li a{padding:8px 0;display:block}.resume-writing{margin-top:32px}.resume-writing>a{color:var(--accent);padding:8px 0;font-size:14px;display:block}.resume-writing>a>span{color:var(--secondary);margin-left:12px;font-size:12px}.resume-background>details>summary{justify-content:space-between;align-items:center;gap:20px;padding:20px 0;display:flex}.resume-background summary strong{font-size:17px;font-weight:550}.resume-background .resume-prose{padding:0 42px 16px 0}.resume-closing{border-top:1px solid var(--line);margin-top:56px;padding:22px 0 64px}.resume-closing>p{color:var(--secondary);font-size:12px}.resume-closing>div{flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:10px;font-size:13px;display:flex}.resume-closing a{align-items:center;min-height:44px;display:flex}.resume-closing button{margin-left:auto}.resume-noscript{color:var(--secondary);padding-bottom:30px;font-size:12px}.legacy-anchor{display:block}@media (width<=1100px){.resume-layout{grid-template-columns:112px minmax(0,1fr);gap:32px}.resume-header{column-gap:36px}.experience-entry>summary,.project-entry>summary{grid-template-columns:116px minmax(0,1fr) 20px;gap:18px}.experience-period,.project-period{font-size:11px}.experience-content,.project-content{padding-left:134px;padding-right:38px}.project-filters{gap:16px}}@media (width<=900px){.resume-page{--resume-nav-height:52px}.resume-layout{padding-top:0;display:block}.resume-nav{top:var(--header-height);height:var(--resume-nav-height);background:var(--bg);z-index:14;border-bottom:1px solid var(--line);scrollbar-width:thin;flex-direction:row;gap:28px;overflow-x:auto}.resume-nav a{white-space:nowrap;flex-shrink:0}.resume-sections{padding-top:28px}.experience-entry>summary,.project-entry>summary{grid-template-columns:138px minmax(0,1fr) 20px;gap:22px}.experience-content,.project-content{padding-left:160px;padding-right:42px}.experience-period,.project-period{font-size:12px}}@media (width<=620px){.resume-page{padding:0 20px}.resume-header{grid-template-columns:1fr;gap:14px;padding-top:32px;padding-bottom:16px}.resume-name{gap:16px}.resume-name h1{font-size:46px}.resume-name>p{font-size:19px}.resume-description{margin-top:16px;font-size:15px}.resume-skills{line-height:1.9}.resume-contact{flex-flow:wrap;align-items:center;gap:0 20px;padding-top:0}.resume-contact>span{margin:0}.resume-contact a{min-height:44px}.resume-contact button{margin-top:0}.resume-edition{font-size:11px}.resume-nav{gap:24px;margin-inline:-20px;padding-inline:20px}.resume-nav a{font-size:12px}.resume-section>h2{margin-bottom:16px;font-size:24px}.resume-section+.resume-section{margin-top:44px}.experience-entry>summary,.project-entry>summary{grid-template-columns:minmax(0,1fr) 20px;gap:5px 14px;padding:20px 0}.experience-period,.project-period{grid-column:1;padding-top:0;font-size:12px}.experience-heading,.project-summary{grid-column:1}.experience-entry>summary>.detail-indicator,.project-entry>summary>.detail-indicator{grid-area:1/2/3;align-self:start;margin-top:24px}.experience-heading>strong,.project-title{font-size:20px}.experience-heading>small{font-size:14px}.experience-content,.project-content{padding:0 0 24px}.experience-projects a{min-height:44px}.project-toolbar{flex-wrap:wrap;gap:0 16px;padding-bottom:8px}.project-filters{gap:18px}.project-expand-all{margin-left:auto}.resume-prose{font-size:15px}.resume-writing>a>span{margin:5px 0 0;display:block}.resume-background .resume-prose{padding-right:0}.resume-closing{margin-top:36px;padding-bottom:40px}}@media (prefers-reduced-motion:reduce){.resume-page *,.resume-page :before,.resume-page :after{scroll-behavior:auto!important;transition:none!important}}@media print{@page{margin:16mm}:root:has(.resume-page){color-scheme:light;--bg:oklch(99.6% .002 150);--surface:oklch(99.6% .002 150);--text:oklch(20% .01 155);--secondary:oklch(35% .01 155);--muted:oklch(43% .01 155);--line:oklch(82% .01 150);--accent:oklch(35% .05 160)}body:has(.resume-page) :is(.site-header,.site-footer,.skip-link,.image-dialog,.toast){display:none!important}.resume-page{max-width:none;padding:0}.resume-page :is(.resume-nav,.project-toolbar,.detail-indicator,.experience-projects,.project-detail-footer,.resume-closing button,.resume-contact button,.resume-noscript){display:none!important}.resume-header{grid-template-columns:minmax(0,1fr) auto;gap:12pt 24pt;padding:0 0 12pt}.resume-name h1{font-size:28pt}.resume-name>p{font-size:15pt}.resume-description{margin-top:8pt;font-size:10pt}.resume-skills,.resume-contact{font-size:9pt}.resume-contact{display:block}.resume-contact>span,.resume-contact a{min-height:0;display:block}.resume-edition{margin-top:8pt}.resume-layout{padding-top:16pt;display:block}.resume-sections{padding:0}.resume-prose{font-size:10pt;line-height:1.7}.resume-prose :is(ol,ul){margin-block:8pt}.resume-prose li{margin-block:5pt}.resume-prose p{margin-bottom:8pt}.resume-prose blockquote{margin-bottom:10pt}.resume-section+.resume-section{margin-top:22pt}.resume-section>h2{break-after:avoid;margin-bottom:10pt;font-size:17pt}.resume-page details{display:block!important}.resume-page details::details-content{content-visibility:visible;display:block}.resume-page summary{break-after:avoid}.experience-entry>summary,.project-entry>summary{grid-template-columns:100pt minmax(0,1fr);gap:14pt;padding:12pt 0 8pt}.experience-period,.project-period,.experience-heading,.project-summary{grid-column:auto}.experience-period,.project-period{font-size:9pt}.experience-heading>strong,.project-title{font-size:14pt}.experience-heading>small{display:none}.experience-content,.project-content{padding:0 0 12pt}.project-outcome{font-size:10pt}.project-meta,.project-technologies{font-size:9pt}.resume-contributions{padding-top:12pt}.resume-contributions h3{font-size:12pt}.resume-opensource li a:after{content:" (" attr(href) ")";color:var(--secondary);font-size:8pt}.resume-writing{margin-top:14pt}.resume-background .resume-prose{padding:0 0 12pt}.resume-closing{margin-top:18pt;padding:12pt 0 0}.resume-page .heading-anchor{display:none!important}}}
