.resume-head[data-astro-cid-yo75cwor]{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:2rem;align-items:start}h1[data-astro-cid-yo75cwor]{margin-bottom:0}.head-role[data-astro-cid-yo75cwor]{margin-top:.5rem;font-size:var(--text-title);line-height:1.35;letter-spacing:-.015em}.head-focus[data-astro-cid-yo75cwor]{margin-top:.125rem;color:var(--color-muted)}.head-action[data-astro-cid-yo75cwor]{display:grid;justify-items:end;gap:.375rem}.head-action[data-astro-cid-yo75cwor] small[data-astro-cid-yo75cwor]{font-size:var(--text-small);color:var(--color-muted)}.head-contact[data-astro-cid-yo75cwor]{grid-column:1 / -1;margin-top:1.5rem;font-style:normal}.head-facts[data-astro-cid-yo75cwor]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:var(--text-small);color:var(--color-muted)}.fact-pill[data-astro-cid-yo75cwor]{display:inline-flex;align-items:center;gap:.375rem;min-height:1.75rem;padding:0 .625rem 0 .5rem;border-radius:var(--radius-pill);background:var(--color-soft);color:var(--color-ink)}.fact-pill[data-astro-cid-yo75cwor] .icon{color:var(--color-accent)}.head-contact[data-astro-cid-yo75cwor] .social{margin-top:1rem}@media(max-width:36rem){.resume-head[data-astro-cid-yo75cwor]{grid-template-columns:minmax(0,1fr)}.head-action[data-astro-cid-yo75cwor]{order:2;justify-items:stretch;margin-top:1.25rem}.head-action[data-astro-cid-yo75cwor] small[data-astro-cid-yo75cwor]{text-align:center}}@media print{.head-action[data-astro-cid-yo75cwor]{display:none}.fact-pill[data-astro-cid-yo75cwor]{min-height:0;padding:0}.head-contact[data-astro-cid-yo75cwor] .social{gap:0 1.25rem;margin-top:.5rem}.head-contact[data-astro-cid-yo75cwor] .btn{min-height:0;width:auto;padding:0;box-shadow:none;font-weight:var(--weight-regular)}.head-contact[data-astro-cid-yo75cwor] .btn-ico,.head-contact[data-astro-cid-yo75cwor] .social-copy,.head-contact[data-astro-cid-yo75cwor] .social-gap{display:none}}.tag[data-astro-cid-tugpja7w]{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-2);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-xs);font:var(--weight-regular) var(--text-small)/var(--leading-body) var(--font-sans);color:var(--color-muted)}.draft[data-astro-cid-tugpja7w]{color:var(--color-accent);border-color:currentColor}.xp[data-astro-cid-rt44mzwg]{list-style:none;margin:0;padding:0}.xp-item[data-astro-cid-rt44mzwg]{display:grid;grid-template-columns:var(--meta-w) var(--rail-w) minmax(0,1fr);column-gap:var(--col-gap);padding-bottom:2.5rem}.xp-item[data-astro-cid-rt44mzwg]:last-child{padding-bottom:0}.xp-meta[data-astro-cid-rt44mzwg]{grid-column:1;grid-row:1}.xp-marks[data-astro-cid-rt44mzwg]{display:flex;align-items:center;gap:.375rem;height:1.75rem}.xp-marks[data-astro-cid-rt44mzwg] .project-logo{width:1.75rem;height:1.75rem}.xp-when[data-astro-cid-rt44mzwg],.xp-where[data-astro-cid-rt44mzwg]{font-size:var(--text-small);line-height:1.5;color:var(--color-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.xp-when[data-astro-cid-rt44mzwg]{margin-top:.5rem}.xp-rail[data-astro-cid-rt44mzwg]{grid-column:2;grid-row:1;position:relative}.xp-rail[data-astro-cid-rt44mzwg]:before{content:"";position:absolute;left:50%;width:1px;margin-left:-.5px;top:1.53125rem;bottom:-2.71875rem;background:var(--color-line);transform-origin:50% 0;transition:transform var(--duration-slow) var(--ease-out) calc(var(--reveal-delay, 0s) + var(--stagger) * 3)}.xp-item[data-astro-cid-rt44mzwg]:last-child .xp-rail[data-astro-cid-rt44mzwg]:before{display:none}.xp-node[data-astro-cid-rt44mzwg]{display:block;width:.5625rem;height:.5625rem;margin:.59375rem auto 0;border:1px solid var(--color-muted);border-radius:50%;background:var(--color-bg);transition:opacity var(--duration-fast) ease calc(var(--stagger) * (var(--i, 0) + 2)),transform var(--duration-slow) var(--ease-spring) calc(var(--stagger) * (var(--i, 0) + 2))}.xp-item[data-astro-cid-rt44mzwg][data-current] .xp-node[data-astro-cid-rt44mzwg]{border-color:var(--color-accent);background:var(--color-accent)}.xp-body[data-astro-cid-rt44mzwg]{grid-column:3;grid-row:1;min-width:0}.xp-body[data-astro-cid-rt44mzwg] h3[data-astro-cid-rt44mzwg]{font-size:var(--text-body);line-height:1.75rem;letter-spacing:0}.xp-title[data-astro-cid-rt44mzwg]{display:block;font-weight:var(--weight-regular);line-height:1.5}.xp-scope[data-astro-cid-rt44mzwg]{font-size:var(--text-small);line-height:1.5;color:var(--color-muted)}.xp-now[data-astro-cid-rt44mzwg]{display:flex;align-items:baseline;gap:.5rem;margin-top:.75rem;font-size:var(--text-small)}.xp-now[data-astro-cid-rt44mzwg]:before{content:"";flex:none;width:.375rem;height:.375rem;border-radius:50%;background:var(--color-accent);transform:translateY(-.125rem)}.xp-lede[data-astro-cid-rt44mzwg]{margin-top:.75rem;color:var(--color-muted);text-wrap:pretty}.more[data-astro-cid-rt44mzwg]{display:inline-flex;align-items:center;gap:.375rem;min-height:var(--touch-target);margin:.25rem 0 -.75rem;font-size:var(--text-small);color:var(--color-muted)}.more[data-astro-cid-rt44mzwg] .icon{transition:transform var(--duration-base) var(--ease-spring)}.clients[data-astro-cid-rt44mzwg]{list-style:none;margin:.5rem 0 0;padding:0}.clients[data-astro-cid-rt44mzwg]>li[data-astro-cid-rt44mzwg]{padding-block:.75rem}.clients[data-astro-cid-rt44mzwg]>li[data-astro-cid-rt44mzwg]+li[data-astro-cid-rt44mzwg]{box-shadow:0 -1px 0 var(--color-line)}.clients[data-astro-cid-rt44mzwg]>li[data-astro-cid-rt44mzwg]:last-child{padding-bottom:0}.client-meta[data-astro-cid-rt44mzwg]{font-size:var(--text-small);color:var(--color-muted)}.clients[data-astro-cid-rt44mzwg] p[data-astro-cid-rt44mzwg]+p[data-astro-cid-rt44mzwg]{margin-top:.25rem;text-wrap:pretty}.clients[data-astro-cid-rt44mzwg] .bul{margin-top:.5rem}@media(prefers-reduced-motion:no-preference){.reveal-ready .xp[data-astro-cid-rt44mzwg]:not(.is-visible) .xp-rail[data-astro-cid-rt44mzwg]:before{transform:scaleY(0)}.reveal-ready .xp[data-astro-cid-rt44mzwg]:not(.is-visible) .xp-node[data-astro-cid-rt44mzwg]{opacity:0;transform:scale(.5)}}@media(hover:hover)and (pointer:fine){.more[data-astro-cid-rt44mzwg]:hover{color:var(--color-ink)}.more[data-astro-cid-rt44mzwg]:hover .icon{transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.xp-node[data-astro-cid-rt44mzwg],.more[data-astro-cid-rt44mzwg] .icon{transform:none!important}}@media(max-width:36rem){.xp-item[data-astro-cid-rt44mzwg]{grid-template-columns:var(--rail-w) minmax(0,1fr);column-gap:.75rem;padding-bottom:2rem}.xp-rail[data-astro-cid-rt44mzwg]{grid-column:1;grid-row:1 / span 2}.xp-rail[data-astro-cid-rt44mzwg]:before{bottom:-2.21875rem}.xp-meta[data-astro-cid-rt44mzwg]{grid-column:2;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:.75rem;align-items:center;min-height:1.75rem}.xp-marks[data-astro-cid-rt44mzwg]{grid-column:1;grid-row:1 / span 2}.xp-when[data-astro-cid-rt44mzwg],.xp-where[data-astro-cid-rt44mzwg]{grid-column:2;margin:0;text-align:right}.xp-body[data-astro-cid-rt44mzwg]{grid-column:2;grid-row:2;margin-top:.5rem}}@media print{.xp-item[data-astro-cid-rt44mzwg]{column-gap:0;grid-template-columns:var(--meta-w) 0 minmax(0,1fr);padding-bottom:1.25rem;break-inside:avoid}.xp-rail[data-astro-cid-rt44mzwg],.more[data-astro-cid-rt44mzwg]{display:none}.xp-marks[data-astro-cid-rt44mzwg] .on-light{display:block!important}.xp-marks[data-astro-cid-rt44mzwg] .on-dark{display:none!important}.xp-marks[data-astro-cid-rt44mzwg] .project-logo,.xp-marks[data-astro-cid-rt44mzwg] img{-webkit-print-color-adjust:exact;print-color-adjust:exact}.clients[data-astro-cid-rt44mzwg]>li[data-astro-cid-rt44mzwg]{break-inside:avoid}h3[data-astro-cid-rt44mzwg]{break-after:avoid}}.pj[data-astro-cid-bysay2z7]{display:grid;grid-template-columns:var(--meta-w) minmax(0,1fr);column-gap:var(--content-gap)}.pj-head[data-astro-cid-bysay2z7]{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 1rem}.pj-head[data-astro-cid-bysay2z7] h3[data-astro-cid-bysay2z7]{font-size:var(--text-body);line-height:1.75rem;letter-spacing:0}.pj-desc[data-astro-cid-bysay2z7]{color:var(--color-muted);text-wrap:pretty}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.pj[data-astro-cid-bysay2z7]:hover .project-logo{transform:scale(1.06)}}@media(max-width:36rem){.pj[data-astro-cid-bysay2z7]{grid-template-columns:minmax(0,1fr);row-gap:.75rem}}@media print{.pj[data-astro-cid-bysay2z7]{break-inside:avoid}h3[data-astro-cid-bysay2z7]{break-after:avoid}}.strip[data-astro-cid-n42td3bt]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1rem;margin:2rem -.75rem 0;padding:.75rem 0 0;list-style:none}.strip[data-astro-cid-n42td3bt].list-rule:before{inset:0 .75rem auto}.strip-tile[data-astro-cid-n42td3bt]{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:.875rem;align-items:start;height:100%;padding:.75rem;border-radius:var(--radius-md);transition:transform var(--duration-base) var(--ease-spring)}.strip-tile[data-astro-cid-n42td3bt]:active{transform:scale(.985);transition-duration:var(--duration-press);transition-timing-function:var(--ease-out)}.strip-tile[data-astro-cid-n42td3bt] h3[data-astro-cid-n42td3bt]{font-size:var(--text-body);line-height:1.5;letter-spacing:0}.strip-tile[data-astro-cid-n42td3bt] p[data-astro-cid-n42td3bt]{font-size:var(--text-small);line-height:1.5;color:var(--color-muted);text-wrap:pretty}.strip-tile[data-astro-cid-n42td3bt] p[data-astro-cid-n42td3bt]+p[data-astro-cid-n42td3bt]{margin-top:.25rem}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.strip-tile[data-astro-cid-n42td3bt]:hover .project-logo{transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.strip-tile[data-astro-cid-n42td3bt]:active{transform:none}}@media(max-width:36rem){.strip[data-astro-cid-n42td3bt]{grid-template-columns:minmax(0,1fr)}}@media print{.strip[data-astro-cid-n42td3bt]{margin-inline:0;gap:.5rem 1.5rem}.strip-tile[data-astro-cid-n42td3bt]{padding:0;break-inside:avoid}.strip[data-astro-cid-n42td3bt].list-rule:before{inset:0 0 auto}}.rows[data-astro-cid-uennbixp]{list-style:none;margin:0;padding:0}.row[data-astro-cid-uennbixp]{display:grid;grid-template-columns:var(--meta-w) minmax(0,1fr);column-gap:var(--content-gap);align-items:baseline;padding-block:.875rem;border-bottom:1px solid var(--color-line)}.row-meta[data-astro-cid-uennbixp]{font-size:var(--text-small);color:var(--color-muted);font-variant-numeric:tabular-nums}.row-sub[data-astro-cid-uennbixp]{color:var(--color-muted)}.thesis[data-astro-cid-uennbixp]{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.75rem;align-items:start;margin-top:.75rem}.thesis[data-astro-cid-uennbixp] .project-logo{width:2rem;height:2rem}.thesis[data-astro-cid-uennbixp] p[data-astro-cid-uennbixp]{font-size:var(--text-small);line-height:1.5;text-wrap:pretty}.thesis[data-astro-cid-uennbixp] .ext{margin-top:.125rem}@media(max-width:36rem){.row[data-astro-cid-uennbixp]{grid-template-columns:minmax(0,1fr);row-gap:.125rem}}@media print{.row[data-astro-cid-uennbixp]{padding-block:.5rem;break-inside:avoid}}.resume[data-astro-cid-ruvg6z4q]{--meta-w: 8rem;--rail-w: 1rem;--col-gap: 1rem;--content-gap: calc(var(--rail-w) + var(--col-gap) * 2);padding-top:3.5rem}.resume[data-astro-cid-ruvg6z4q] section{margin-top:4rem}.resume[data-astro-cid-ruvg6z4q] a:not(.btn){text-decoration:none}.resume-summary[data-astro-cid-ruvg6z4q]{margin-top:2rem;max-width:36em;text-wrap:pretty}.resume-end[data-astro-cid-ruvg6z4q]{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:3rem}.resume-end[data-astro-cid-ruvg6z4q] small[data-astro-cid-ruvg6z4q]{font-size:var(--text-small);color:var(--color-muted)}.resume[data-astro-cid-ruvg6z4q] .project-logo{line-height:1}.resume[data-astro-cid-ruvg6z4q] .project-logo[data-mark]:before{content:attr(data-mark)}.resume[data-astro-cid-ruvg6z4q] .bul{list-style:none;margin:.75rem 0 0;padding:0}.resume[data-astro-cid-ruvg6z4q] .bul li{position:relative;padding-left:1.125rem;text-wrap:pretty}.resume[data-astro-cid-ruvg6z4q] .bul li+li{margin-top:.5rem}.resume[data-astro-cid-ruvg6z4q] .bul .bul{margin-top:.5rem}.resume[data-astro-cid-ruvg6z4q] .bul li:before{content:"";position:absolute;left:.25rem;top:.7em;width:.3125rem;height:.3125rem;border-radius:50%;background:var(--color-muted);opacity:.55}.resume[data-astro-cid-ruvg6z4q] .chips{display:flex;flex-wrap:wrap;gap:.375rem;margin:1rem 0 0;padding:0;list-style:none}.resume[data-astro-cid-ruvg6z4q] .chips li{display:flex}.resume[data-astro-cid-ruvg6z4q] .ext{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--text-small);color:var(--color-muted)}.resume[data-astro-cid-ruvg6z4q] .ext .icon{transition:transform var(--duration-base) var(--ease-spring)}@media(hover:hover)and (pointer:fine){.resume[data-astro-cid-ruvg6z4q] .ext:hover{color:var(--color-ink)}.resume[data-astro-cid-ruvg6z4q] .ext:hover .icon{transform:translate(var(--nudge),calc(-1 * var(--nudge)))}}@media(prefers-reduced-motion:reduce){.resume[data-astro-cid-ruvg6z4q] .ext .icon{transform:none!important}}@media(max-width:36rem){.resume[data-astro-cid-ruvg6z4q]{padding-top:1.5rem}.resume[data-astro-cid-ruvg6z4q] section{margin-top:3rem}}@page{size:A4;margin:16mm 15mm}@media print{html:root,html:root[data-theme=dark]{--color-bg: #fff;--color-ink: #000;--color-muted: #444;--color-line: #bbb;--color-soft: #fff;--color-accent: #000;color-scheme:light}html{font-size:9.5pt}body{background:#fff}.page{max-width:none;padding:0}.skip-link,.site-header,footer,dialog,.tip,.site-toast,.section-chip,.section-link,.resume-end[data-astro-cid-ruvg6z4q]{display:none!important}.resume[data-astro-cid-ruvg6z4q]{--meta-w: 7rem;padding-top:0}.resume[data-astro-cid-ruvg6z4q] section{margin-top:1.75rem}.resume[data-astro-cid-ruvg6z4q] .section-head{margin-bottom:.5rem}.resume[data-astro-cid-ruvg6z4q] .chips{display:block;margin-top:.5rem}.resume[data-astro-cid-ruvg6z4q] .chips li{display:inline}.resume[data-astro-cid-ruvg6z4q] .chips .tag{display:inline;padding:0;border:0}.resume[data-astro-cid-ruvg6z4q] .chips li:not(:last-child) .tag:after{content:","}.resume[data-astro-cid-ruvg6z4q] .bul li:before{-webkit-print-color-adjust:exact;print-color-adjust:exact}.resume[data-astro-cid-ruvg6z4q] .ext .icon{display:none}.resume[data-astro-cid-ruvg6z4q] h2,.resume[data-astro-cid-ruvg6z4q] h3{break-after:avoid}.resume[data-astro-cid-ruvg6z4q] p,.resume[data-astro-cid-ruvg6z4q] li{orphans:2;widows:2}}
