@font-face{font-family:fraunces;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/fraunces-500-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:fraunces;font-style:normal;font-weight:580;font-display:swap;src:url(/fonts/fraunces-580-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:fraunces;font-style:normal;font-weight:860;font-display:swap;src:url(/fonts/fraunces-860-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#100d0b;--ink-2:#16120f;--panel:#1b1613;--line:rgba(236,230,220,.10);--line-strong:rgba(236,230,220,.18);--bone:#ece6dc;--bone-dim:#b8b0a4;--muted:#8b8478;--faint:#5f594f;--red:#ee2a23;--red-deep:#c01e18;--serif:'Fraunces',Georgia,'Times New Roman',serif;--mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;--ease:cubic-bezier(.2,.7,.2,1)}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--ink);-webkit-text-size-adjust:100%}body{font-family:var(--mono);color:var(--bone);background:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga" 1,"calt" 1;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--red);color:#fff}.bg{position:fixed;inset:0;z-index:0;pointer-events:none}.bg::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(120% 90% at 30% 0%,#000 30%,transparent 78%);-webkit-mask-image:radial-gradient(120% 90% at 30% 0%,#000 30%,transparent 78%);opacity:.5}.bg::after{content:"";position:absolute;top:-30vh;left:-10vw;width:70vw;height:70vw;background:radial-gradient(circle at center,rgba(238,42,35,.16),transparent 60%);filter:blur(20px)}.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:overlay}.shell{position:relative;z-index:2;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.05fr)minmax(0,.95fr)}.media{position:relative;overflow:hidden;border-left:1px solid var(--line)}.media img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;filter:saturate(1.02)contrast(1.03)}.media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,transparent 22%),linear-gradient(0deg,rgba(16,13,11,.55),transparent 40%),radial-gradient(80% 60% at 70% 40%,transparent,rgba(16,13,11,.35))}.content{display:flex;flex-direction:column;justify-content:center;gap:clamp(18px,2vw,30px);padding:clamp(40px,5vh,64px)clamp(28px,5vw,84px);max-width:760px}.kicker{display:inline-flex;align-items:center;gap:.7em;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-dim);font-weight:500}.dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 rgba(238,42,35,.55);animation:pulse 2.6s var(--ease)infinite}@keyframes pulse{0%{box-shadow:0 0 rgba(238,42,35,.5)}70%{box-shadow:0 0 0 9px rgba(238,42,35,0)}100%{box-shadow:0 0 rgba(238,42,35,0)}}.name{font-family:var(--serif);font-weight:860;font-size:clamp(2.9rem,7.2vw,5.6rem);line-height:1.05;letter-spacing:-.02em;color:#fff;font-optical-sizing:auto}.name .accent{color:var(--red)}.colored-i{position:relative;display:inline-block;color:var(--red)}.colored-i::after{content:"ı";position:absolute;left:0;top:0;color:#fff;pointer-events:none}.tagline{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.25rem,2.5vw,1.85rem);line-height:1.2;color:var(--bone-dim);letter-spacing:.01em;max-width:24ch}.bio{font-size:clamp(.92rem,1.05vw,1.02rem);color:var(--muted);max-width:54ch}.bio p+p{margin-top:.85em}.bio a{color:var(--bone);border-bottom:1px solid var(--line-strong);transition:color .18s var(--ease),border-color .18s var(--ease)}.bio a:hover{color:var(--red);border-color:var(--red)}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12.5px}.facts dt{color:var(--faint);letter-spacing:.12em;text-transform:uppercase;font-size:10.5px}.facts dd{color:var(--bone-dim);margin-top:3px}.facts dd .accent{color:var(--red)}.links{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,56px)}.cluster h3{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);font-weight:500;margin-bottom:14px}.cluster ul{list-style:none}.cluster li{margin-bottom:2px}.cluster a{position:relative;display:inline-flex;align-items:baseline;gap:.55em;font-size:14px;color:var(--bone-dim);padding:3px 0;transition:color .18s var(--ease)}.cluster a .arrow{color:var(--red);opacity:0;transform:translateX(-6px);transition:opacity .2s var(--ease),transform .2s var(--ease);font-weight:600}.cluster a:hover{color:#fff}.cluster a:hover .arrow{opacity:1;transform:translateX(0)}.cluster a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--red);transition:width .25s var(--ease)}.cluster a:hover::after{width:100%}.credit{margin-top:6px;font-size:11px;color:var(--faint);letter-spacing:.04em;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.credit a{color:var(--muted);transition:color .18s var(--ease)}.credit a:hover{color:var(--red)}.credit .sep{color:var(--line-strong)}.lang-switch{display:inline-flex;gap:12px}.lang-switch a{color:var(--muted);transition:color .18s var(--ease)}.lang-switch a:hover{color:var(--red)}.lang-switch a.is-current{color:var(--bone-dim);font-weight:600}.shell--center{grid-template-columns:1fr;place-items:center}.content--center{align-items:flex-start;text-align:left;max-width:560px;width:100%}.content--center .name{font-size:clamp(4rem,12vw,7rem)}.content--center .arrow--back{opacity:1;transform:none}.content--center .cluster a:hover .arrow--back{transform:translateX(-3px)}.reveal{opacity:0;transform:translateY(14px);animation:rise .7s var(--ease)forwards}.media{opacity:0;animation:fade 1.1s var(--ease).15s forwards}.content>*:nth-child(1){animation-delay:.1s}.content>*:nth-child(2){animation-delay:.18s}.content>*:nth-child(3){animation-delay:.26s}.content>*:nth-child(4){animation-delay:.34s}.content>*:nth-child(5){animation-delay:.42s}.content>*:nth-child(6){animation-delay:.5s}.content>*:nth-child(7){animation-delay:.58s}@keyframes rise{to{opacity:1;transform:none}}@keyframes fade{to{opacity:1}}@media(max-width:900px){.shell{grid-template-columns:1fr;grid-template-rows:40vh auto}.media{border-left:0;border-bottom:1px solid var(--line);order:-1}.media img{object-position:60% 35%}.media::after{background:linear-gradient(0deg,var(--ink),transparent 20%)}.content{max-width:none}}@media(max-width:460px){.facts{grid-template-columns:1fr}.links{gap:28px}}@media(prefers-reduced-motion:reduce){.reveal,.media{animation:none;opacity:1;transform:none}.dot{animation:none}}.shell--doc{grid-template-columns:1fr}.content--doc{justify-content:flex-start;width:100%;max-width:900px;margin:0 auto;padding-top:clamp(48px,7vh,96px);padding-bottom:clamp(48px,7vh,96px);gap:clamp(26px,3.4vh,42px)}.cv-head{display:flex;flex-direction:column;gap:clamp(15px,2vw,22px)}.cv-head .name{font-size:clamp(2.3rem,5.6vw,3.9rem)}.cv-summary{font-size:clamp(.9rem,1.02vw,1rem);color:var(--bone-dim);max-width:70ch;line-height:1.72}.cv-summary a,.cv-section__lede a,.cv-entry a,.cv-list a{color:var(--bone);border-bottom:1px solid var(--line-strong);transition:color .18s var(--ease),border-color .18s var(--ease)}.cv-summary a:hover,.cv-section__lede a:hover,.cv-entry a:hover,.cv-list a:hover{color:var(--red);border-color:var(--red)}.cv-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding-top:4px}.cv-download{display:inline-flex;align-items:center;gap:.6em;font-size:13px;letter-spacing:.04em;color:var(--bone);border:1px solid var(--line-strong);border-radius:2px;padding:9px 16px;transition:border-color .2s var(--ease),color .2s var(--ease),background .2s var(--ease)}.cv-download:hover{border-color:var(--red);color:#fff;background:rgba(238,42,35,8%)}.cv-download__icon{color:var(--red);font-weight:600}.cv-contact{font-size:12.5px;color:var(--muted);letter-spacing:.04em;transition:color .18s var(--ease)}.cv-contact:hover{color:var(--red)}.cv-contact__val{color:var(--bone-dim)}.cv-section{display:flex;flex-direction:column;gap:clamp(17px,2.3vh,26px);padding-top:clamp(20px,3vh,34px);border-top:1px solid var(--line)}.cv-section__title{font-family:var(--serif);font-weight:580;letter-spacing:-.01em;color:#fff;font-size:clamp(1.15rem,2vw,1.5rem)}.cv-section__lede{font-size:13.5px;color:var(--muted);max-width:64ch}.cv-entry{display:grid;grid-template-columns:168px minmax(0,1fr);gap:8px 32px;align-items:start}.cv-entry__meta{display:flex;flex-direction:column;gap:4px;padding-top:3px}.cv-entry__period{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.cv-entry__loc{font-size:11px;color:var(--muted)}.cv-entry__body{display:flex;flex-direction:column;gap:9px;min-width:0}.cv-entry__role{font-size:15px;font-weight:600;color:var(--bone);letter-spacing:.01em}.cv-entry__org{font-weight:400;color:var(--bone-dim)}.cv-entry__intro{font-size:13.5px;color:var(--muted);line-height:1.66}.cv-entry__note{font-size:12.5px;font-style:italic;color:var(--faint);line-height:1.6}.cv-entry__sublabel{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-top:2px}.cv-list{list-style:none;display:flex;flex-direction:column;gap:7px}.cv-list li{position:relative;padding-left:18px;font-size:13.5px;color:var(--bone-dim);line-height:1.62}.cv-list li::before{content:"–";position:absolute;left:0;top:0;color:var(--red)}.cv-list em{color:var(--bone);font-style:italic}.cv-talks__year{display:inline-block;min-width:3.1em;margin-right:.4em;color:var(--faint);font-size:11px;letter-spacing:.08em}.cv-skills{display:flex;flex-direction:column;gap:12px}.cv-skills>div{display:grid;grid-template-columns:168px minmax(0,1fr);gap:6px 32px}.cv-skills dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding-top:2px}.cv-skills dd{font-size:13.5px;color:var(--bone-dim)}.cv-back{margin-top:8px}@media(max-width:640px){.cv-entry{grid-template-columns:1fr;gap:6px}.cv-entry__meta{flex-direction:row;gap:14px;align-items:baseline;padding-top:0}.cv-skills>div{grid-template-columns:1fr;gap:2px}}@media print{html,body{background:#fff;color:#000;overflow:visible}.bg,.grain,.kicker,.cv-actions,.cv-back{display:none!important}.reveal,.media{opacity:1!important;transform:none!important;animation:none!important}.shell--doc{display:block;min-height:0}.content--doc{max-width:none;margin:0;padding:0;gap:18px}.name,.name .colored-i,.name .colored-i::after,.cv-section__title,.cv-entry__role{color:#000!important}.cv-summary,.cv-entry__intro,.cv-entry__org,.cv-list li,.cv-skills dd{color:#222!important}.cv-entry__period,.cv-entry__loc,.cv-entry__note,.cv-entry__sublabel,.cv-skills dt,.cv-talks__year,.cv-section__lede{color:#555!important}.cv-list li::before{color:#000}.cv-section{border-color:#ccc}.cv-entry,.cv-section{break-inside:avoid}a{color:#000!important;border-bottom:0!important}}