:root{--paper:#f2f1ec;--paper-2:#e7e5dd;--ink:#16150f;--ink-2:#4e4b42;--ink-3:#6f6b60;--rule:#d6d3c9;--accent:#b93a1c;--reverse-bg:var(--ink);--reverse-ink:var(--paper);--reverse-ink-3:#8b877c;--sans:"Helvetica Neue", Helvetica, Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Mono", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--fs-display:clamp(2.9rem, 8.6vw, 8.5rem);--fs-xl:clamp(1.9rem, 4.2vw, 3.4rem);--fs-lg:clamp(1.35rem, 2.1vw, 1.9rem);--fs-md:clamp(1.05rem, 1.35vw, 1.25rem);--fs-body:clamp(1rem, 1.05vw, 1.0625rem);--fs-meta:.8125rem;--fs-micro:.6875rem;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--page-max:1560px;--page-pad:clamp(1.25rem, 4.5vw, 5rem);--gutter:clamp(1rem, 2.2vw, 2rem);--section-pad:clamp(4rem, 9vw, 9rem);--measure:60ch;--masthead-h:3.25rem;--radius:0px;--radius-sm:4px;--rule-w:1px;--ease:cubic-bezier(.22, .61, .36, 1);--dur:.6s;--dur-fast:.28s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--sans);font-size:var(--fs-body);color:var(--ink-2);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#121211;--paper-2:#1b1b19;--ink:#efeee8;--ink-2:#a8a49a;--ink-3:#8b877c;--rule:#2c2c28;--accent:#e0664a;--reverse-ink-3:#6f6b60}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink-2);margin:0;overflow-x:hidden}h1,h2,h3,h4,p,figure,blockquote,ol,ul,dl,dd{margin:0}ol,ul{padding:0;list-style:none}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent);color:var(--paper)}.label{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);line-height:1.4}.meta{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.01em;color:var(--ink-3);line-height:1.5}.display{font-size:var(--fs-display);letter-spacing:-.035em;color:var(--ink);font-weight:600;line-height:.9}.title-xl{font-size:var(--fs-xl);letter-spacing:-.025em;color:var(--ink);font-weight:600;line-height:1.02}.title-lg{font-size:var(--fs-lg);letter-spacing:-.015em;color:var(--ink);font-weight:600;line-height:1.15}.lede{font-size:var(--fs-md);color:var(--ink-2);max-width:var(--measure);line-height:1.55}.prose{max-width:var(--measure);color:var(--ink-2)}.link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.28em;transition:text-decoration-color var(--dur) var(--ease), color var(--dur) var(--ease);text-decoration-thickness:1px}.link:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grid{gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.shell{max-width:var(--page-max);padding-inline:var(--page-pad);margin-inline:auto}.leaders{align-items:baseline;gap:var(--s-4);width:100%;display:flex}.leaders__dots{min-width:var(--s-6);border-bottom:var(--rule-w) dotted var(--rule);flex:auto;transform:translateY(-.3em)}[data-reveal]{opacity:0;transition:opacity .7s var(--ease) var(--reveal-delay,0s), transform .7s var(--ease) var(--reveal-delay,0s);transform:translateY(14px)}[data-reveal].is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.masthead{z-index:20;background:var(--paper);border-bottom:var(--rule-w) solid var(--rule);position:sticky;top:0}.masthead__inner{height:var(--masthead-h);justify-content:space-between;align-items:center;gap:var(--s-4);display:flex}.masthead__name{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);white-space:nowrap}.masthead__end{align-items:center;gap:var(--s-5);min-width:0;display:flex}.masthead__now{align-items:center;gap:var(--s-3);display:flex;overflow:hidden}.masthead__cv{align-items:center;gap:var(--s-2);font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--reverse-ink);background:var(--reverse-bg);white-space:nowrap;padding:var(--s-2) var(--s-3);transition:background-color var(--dur) var(--ease);flex:none;display:inline-flex}.masthead__cv span{transition:transform var(--dur) var(--ease)}.masthead__cv:hover{background-color:var(--accent)}.masthead__cv:hover span{transform:translateY(.15em)}.masthead__now .label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.masthead__now-value{color:var(--ink)}.masthead__progress{background:var(--accent);width:100%;height:1px;transform:scaleX(var(--progress,0));transform-origin:0;position:absolute;bottom:-1px;left:0}.hero{border-bottom:var(--rule-w) solid var(--rule)}.hero__inner{min-height:calc(100svh - var(--masthead-h));flex-direction:column;justify-content:space-between;gap:clamp(3rem,8vw,7rem);padding-block:clamp(3rem,7vw,6rem) clamp(2.5rem,5vw,4rem);display:flex}.hero__eyebrow{gap:var(--s-2) var(--s-5);flex-wrap:wrap;display:flex}.hero__headline{margin-top:var(--s-6)}.hero__line{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:hidden}.hero__line>span{animation:rise .95s var(--ease) var(--d,0s) forwards;display:block;transform:translateY(106%)}@keyframes rise{to{transform:translateY(0)}}.hero__line--indent{padding-left:8.333%}.hero__foot{align-items:end}.hero__index{grid-column:1/6}.hero__index li+li{margin-top:var(--s-3)}.hero__index a{padding-block:var(--s-1);transition:color var(--dur) var(--ease);display:block}.hero__index a:hover,.hero__index a:hover .hero__index-title{color:var(--accent)}.hero__index-title{font-family:var(--sans);font-size:var(--fs-md);letter-spacing:-.01em;text-transform:none;color:var(--ink);transition:color var(--dur) var(--ease)}.hero__about{grid-column:7/13}.hero__about p+p{margin-top:var(--s-4)}.section{border-bottom:var(--rule-w) solid var(--rule);scroll-margin-top:var(--masthead-h)}.section__inner{padding-block:var(--section-pad)}.section__head{align-items:baseline;gap:var(--s-4);grid-column:1/4;display:flex}.section__index{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.14em;color:var(--accent)}.section__title{font-size:var(--fs-lg);letter-spacing:-.02em;color:var(--ink);font-weight:600;line-height:1.1}.section__content{grid-column:4/13}@media (width>=1024px){.section__head{top:calc(var(--masthead-h) + var(--s-6));align-self:start;gap:var(--s-2);flex-direction:column;position:sticky}}.role{border-top:var(--rule-w) solid var(--rule);align-items:start;padding-block:clamp(2rem,4vw,3.5rem)}.role:first-child{border-top:0;padding-top:0}.role:last-child{padding-bottom:0}.role__meta{grid-column:1/5}.role__company{margin-top:var(--s-3);font-size:var(--fs-lg);letter-spacing:-.02em;color:var(--ink);font-weight:600;line-height:1.1}.role__position{margin-top:var(--s-2);max-width:22ch}.role__body{grid-column:5/13}.role__summary{font-size:var(--fs-md);color:var(--ink);max-width:var(--measure);line-height:1.5}.achievements{margin-top:var(--s-6);gap:var(--s-4);max-width:var(--measure);display:grid}.achievements li{grid-template-columns:2.5rem minmax(0,1fr);display:grid}.achievements__n{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;color:var(--accent);padding-top:.42em}.stack{margin-top:var(--s-6);font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-3);flex-wrap:wrap;line-height:1.9;display:flex}.stack li{align-items:baseline;display:flex}.stack li:not(:last-child):after{content:"·";color:var(--ink-3);opacity:.55;padding-inline:.7em}.stack--lg{font-family:var(--sans);font-size:var(--fs-md);letter-spacing:-.01em;color:var(--ink);margin-top:0;line-height:1.7}.degree{border-top:var(--rule-w) solid var(--rule);align-items:start;padding-block:clamp(2rem,4vw,3.5rem)}.degree:first-child{border-top:0;padding-top:0}.degree:last-child{padding-bottom:0}.degree__meta{grid-column:1/5}.degree__name{margin-top:var(--s-3);font-size:var(--fs-lg);letter-spacing:-.02em;color:var(--ink);font-weight:600;line-height:1.1}.degree__school{margin-top:var(--s-2);max-width:24ch}.degree__body{grid-column:5/13}.degree__thesis{margin-top:var(--s-3);font-size:var(--fs-md);letter-spacing:-.01em;color:var(--ink);border-left:var(--rule-w) solid var(--accent);max-width:46ch;padding-left:var(--s-5);line-height:1.45}.skill-group{border-top:var(--rule-w) solid var(--rule);align-items:baseline;padding-block:clamp(1.25rem,2.4vw,2rem)}.skill-group:first-child{border-top:0;padding-top:0}.skill-group:last-child{padding-bottom:0}.skill-group__name{grid-column:1/4}.skill-group__items{grid-column:4/13}.cert{border-top:var(--rule-w) solid var(--rule);align-items:baseline;padding-block:clamp(1.5rem,2.8vw,2.25rem)}.cert:first-child{border-top:0;padding-top:0}.cert:last-child{padding-bottom:0}.cert__date{grid-column:1/4}.cert__body{grid-column:4/13}.cert__name{font-size:var(--fs-md);letter-spacing:-.01em;color:var(--ink);font-weight:600;line-height:1.3}.cert__description{margin-top:var(--s-2);max-width:62ch}.contact__email{font-size:var(--fs-xl);letter-spacing:-.03em;color:var(--ink);word-break:break-word;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.16em;transition:color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease);font-weight:600;line-height:1.05;text-decoration-thickness:1px;display:inline-block}.contact__email:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.contact__email-row{align-items:baseline;gap:var(--s-3) var(--s-5);flex-wrap:wrap;display:flex}.copy{appearance:none;border:var(--rule-w) solid var(--rule);padding:var(--s-2) var(--s-3);cursor:pointer;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;flex:none;line-height:1.4}.copy:hover,.copy[data-copied=true]{color:var(--accent);border-color:var(--accent)}.copy__slot{text-align:center;display:grid;overflow:hidden}.copy__word{transition:transform var(--dur-fast) var(--ease);grid-area:1/1}.copy__word--done{transform:translateY(110%)}.copy[data-copied=true] .copy__word{transform:translateY(-110%)}.copy[data-copied=true] .copy__word--done{transform:translateY(0)}.download{align-items:baseline;gap:var(--s-5) var(--s-4);max-width:46rem;padding:var(--s-5) var(--s-5) var(--s-6);background:var(--reverse-bg);color:var(--reverse-ink);transition:background-color var(--dur) var(--ease);grid-template-columns:minmax(0,1fr) auto;margin-top:clamp(2.5rem,5vw,4rem);display:grid}.download .label,.download__spec{color:var(--reverse-ink-3);transition:color var(--dur) var(--ease)}.download__spec{text-align:right}.download__action{justify-content:space-between;align-items:baseline;gap:var(--s-4);font-size:var(--fs-lg);letter-spacing:-.02em;color:var(--reverse-ink);grid-column:1/-1;font-weight:600;line-height:1.1;display:flex}.download__action span{transition:transform var(--dur) var(--ease);display:inline-block}.download:hover{background-color:var(--accent)}.download:hover .label,.download:hover .download__spec{color:var(--reverse-ink)}.download:hover .download__action span{transform:translateY(.15em)}.contact__details{max-width:46rem;margin-top:clamp(2.5rem,5vw,4rem);display:grid}.contact__row{padding-block:var(--s-4);border-top:var(--rule-w) solid var(--rule)}.contact__row:last-child{border-bottom:var(--rule-w) solid var(--rule)}.contact__value{font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink);text-align:right;overflow-wrap:anywhere}a.contact__value{transition:color var(--dur) var(--ease)}a.contact__value:hover{color:var(--accent)}.colophon__inner{padding-block:var(--s-7);justify-content:space-between;gap:var(--s-4) var(--s-6);flex-wrap:wrap;display:flex}.colophon a{transition:color var(--dur) var(--ease)}.colophon a:hover{color:var(--accent)}@media (width<=1023px){.section__head{margin-bottom:var(--s-6);grid-column:1/13}.section__content,.hero__index,.hero__about,.role__meta,.role__body,.degree__meta,.degree__body,.skill-group__name,.skill-group__items,.cert__date,.cert__body{grid-column:1/13}.hero__foot{gap:clamp(2rem,6vw,3rem)}.role__body,.degree__body{margin-top:var(--s-5)}.skill-group__items,.cert__body{margin-top:var(--s-3)}.role__position,.degree__school{max-width:var(--measure)}.hero__line--indent{padding-left:0}}@media (width<=600px){.masthead__role{display:none}.masthead__end{gap:var(--s-3)}.masthead__cv{padding:var(--s-2)}.achievements li{grid-template-columns:1.75rem minmax(0,1fr)}.contact__row .leaders{gap:var(--s-2);flex-wrap:wrap}.contact__row .leaders__dots{display:none}.contact__value{text-align:left;width:100%}}
