@font-face{font-family:RobotoVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/roboto-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:RobotoVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/roboto-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg: #ffffff;--edge-line: #d6d6d6;--ink: #0a0a0a;--ink-dim: #5c5c5c;--ink-faint: #6b6b6b;--font-sans: "RobotoVariable", "Helvetica Neue", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: clamp(1.25rem, 2vw, 1.6rem);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,5vw,6rem);align-items:start;padding:0 clamp(1.25rem,3.6vw,4.5rem) 0 clamp(1.25rem,9vw,10rem)}.hero-card{position:sticky;top:0;display:flex;min-height:100vh;min-height:100svh;flex-direction:column;justify-content:center;padding:4rem 0}.hero-name{font-size:clamp(1.25rem,3.6vw,4.5rem);font-weight:700;white-space:nowrap;line-height:1.02;letter-spacing:-.02em;text-transform:uppercase}.hero-role{margin-top:var(--sp-4);font-size:var(--text-lg);font-weight:500;letter-spacing:.06em;color:var(--ink-dim);text-transform:uppercase}.hero-points{max-width:760px;margin-top:var(--sp-7);padding-left:1.25em;list-style:disc;font-size:var(--text-lg)}.hero-points li+li{margin-top:var(--sp-2)}.hero-block{margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--edge-line)}.hero-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}.hero-certs,.hero-contact{display:grid;gap:var(--sp-3);margin-top:var(--sp-4)}.hero-certs li{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);align-items:baseline}.hero-cert-name{font-weight:600}.hero-contact li{display:grid;grid-template-columns:6.5rem 1fr;gap:var(--sp-3)}.hero-contact-label{color:var(--ink-dim)}.hero-contact a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.hero-contact a:hover,.hero-contact a:focus-visible{text-decoration-thickness:2px}@media(max-width:480px){.hero-contact li{grid-template-columns:4.5rem 1fr}}.hero-side{padding-bottom:40vh}.timeline{padding-top:7rem}.timeline-list{position:relative;display:grid;gap:var(--sp-7);margin-top:var(--sp-6);padding-left:2.25rem}.timeline-list:before{position:absolute;top:.4rem;bottom:.4rem;left:7px;width:2px;background:var(--edge-line);content:""}.timeline-item{position:relative;opacity:.2;transform:translate3d(0,16px,0);transition:opacity .6s ease,transform .6s ease}.timeline-item[data-shown=true]{opacity:1;transform:none}.timeline-item:before{position:absolute;top:.3rem;left:-2.25rem;width:16px;height:16px;border:2px solid var(--ink);border-radius:50%;background:var(--bg);content:"";transition:background-color .6s ease}.timeline-item[data-shown=true]:before{background:var(--ink)}.timeline-period{font-size:var(--text-xl);font-weight:700;line-height:1.2}.timeline-org{margin-top:var(--sp-1);font-size:var(--text-md);font-weight:600}.timeline-points{max-width:34rem;margin-top:var(--sp-3);padding-left:1.25em;list-style:disc}.timeline-points li+li{margin-top:var(--sp-2)}.timeline-tech{margin-top:var(--sp-3);font-size:var(--text-sm);color:var(--ink-faint)}@media(prefers-reduced-motion:reduce){.timeline-item,.timeline-item:before{transition:none}}@media(max-height:820px){.hero-card{position:static}}@media(max-width:960px){.hero{grid-template-columns:minmax(0,1fr);gap:0;padding:0 clamp(1.25rem,3.6vw,4.5rem)}.hero-card{position:static;min-height:auto;padding:6.5rem 0 3rem}.hero-name{font-size:clamp(1.25rem,7vw,4.5rem)}.hero-side{padding-bottom:6rem}.timeline{padding-top:3rem}}
