@font-face{font-family:fraunces;src:url(/fonts/fraunces-italic.woff2)format('woff2');font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:instrument sans;src:url(/fonts/instrument-sans-regular.woff2)format('woff2');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:instrument sans;src:url(/fonts/instrument-sans-600.woff2)format('woff2');font-style:normal;font-weight:600;font-display:swap}:root{--portfolio-bg:#060810;--portfolio-surface:#101621;--portfolio-surface-2:#182338;--portfolio-text:#f5f3ef;--portfolio-muted:#a5adba;--portfolio-faint:#657fa8;--portfolio-accent:#9eb7db;--portfolio-accent-rgb:158, 183, 219;--portfolio-accent-strong:#526fa8;--portfolio-accent-strong-rgb:82, 111, 168;--portfolio-accent-deep:#3f5580;--portfolio-surface-rgb:16, 22, 33;--portfolio-line:rgba(158, 183, 219, 0.14);--portfolio-focus:#9eb7db;--hero-accent:#38bdf8;--hero-accent-rgb:56, 189, 248;--hero-accent-soft:#7dd3fc;--hero-violet:#818cf8;--hero-indigo-rgb:99, 102, 241;--hero-cta-from:#0284c7;--hero-cta-to:#4f46e5;--hero-cta-from-hover:#0369a1;--hero-cta-to-hover:#4338ca;--hero-title-from:#ffffff;--hero-title-mid:#e2e8f0;--hero-title-to:#90b8f0;--hero-icon:#c8cdd5;--hero-btn-hover-bg:rgba(22, 30, 46, 0.7);--portfolio-sans:'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;--portfolio-serif:'Fraunces', Georgia, 'Times New Roman', serif}html{scroll-behavior:smooth}body{font-family:var(--portfolio-sans);background:var(--portfolio-bg);color:var(--portfolio-text)}main,.page-body{position:relative;z-index:1}section[id]{scroll-margin-top:5rem}.portfolio-section{position:relative;padding-block:clamp(2.5rem,5vw,4rem)}.portfolio-section__inner{width:min(1120px,calc(100% - 2.5rem));margin-inline:auto}.portfolio-section h2{margin:0;color:var(--portfolio-text);font-family:var(--portfolio-sans);font-style:normal;font-size:clamp(2rem,3.5vw,2.75rem);letter-spacing:-.025em;font-weight:600}.portfolio-section__intro{max-width:62ch;margin-top:1.2rem;color:var(--portfolio-muted);line-height:1.75;font-size:1.05rem}.portfolio-eyebrow{margin:0 0 .9rem;color:var(--portfolio-accent);font-family:var(--portfolio-serif);font-style:italic;font-weight:400;font-size:1.05rem;letter-spacing:0;text-transform:none}.portfolio-serif-accent{font-family:var(--portfolio-serif);font-style:italic;font-weight:400;color:var(--portfolio-accent)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#080b12}::-webkit-scrollbar-thumb{border-radius:999px;background:#46566e}::-webkit-scrollbar-thumb:hover{background:#657fa8}#site-header{border-bottom:1px solid rgb(181 191 207/8%);background:rgb(6 8 16/58%);backdrop-filter:blur(14px);transition:min-height 200ms ease,background-color 200ms ease}#site-header.portfolio-header--scrolled{background:rgb(6 8 16/.9)}#site-header a{color:#c8cdd5}#site-header a:hover,#site-header a:focus-visible,#site-header a[aria-current=location]{color:#f5f3ef}#site-header a[href$="#contact"]{padding:.45rem .7rem;border:1px solid #424b5a;border-radius:.55rem}:where(a,button,summary):focus-visible{outline:2px solid var(--portfolio-focus);outline-offset:4px}.portfolio-motion [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity 260ms ease,transform 260ms ease}.portfolio-motion [data-reveal].portfolio-reveal--visible{opacity:1;transform:none}.portfolio-motion .portfolio-hero [data-stagger]{opacity:0;transform:translateY(16px);animation:portfolio-hero-in 280ms ease forwards}.portfolio-motion .portfolio-hero [data-stagger]:nth-child(1){animation-delay:40ms}.portfolio-motion .portfolio-hero [data-stagger]:nth-child(2){animation-delay:100ms}.portfolio-motion .portfolio-hero [data-stagger]:nth-child(3){animation-delay:160ms}.portfolio-motion .portfolio-hero [data-stagger]:nth-child(4){animation-delay:220ms}.portfolio-motion .portfolio-hero .portfolio-hero__portrait-col[data-stagger]{animation-delay:180ms}@keyframes portfolio-hero-in{to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}}h2,h3,.page-header-title,.project-title,.article-title,.pub-list-item-title,.publication-title{font-family:var(--portfolio-sans);font-style:normal;font-weight:600}.portfolio-section:not(:last-of-type)::after{content:"";position:absolute;bottom:0;left:8%;right:8%;height:1px;border-bottom:1px dashed rgba(var(--portfolio-accent-rgb),.16);mask-image:linear-gradient(90deg,transparent,black 12%,black 88%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 12%,black 88%,transparent);pointer-events:none}#site-header a{position:relative;color:var(--portfolio-muted);transition:color 250ms ease}#site-header a:hover{color:var(--portfolio-text)}#site-header a:not([href*=contact])::after{content:"";position:absolute;bottom:-6px;left:50%;width:0;height:2px;background:var(--portfolio-accent);border-radius:2px;transform:translateX(-50%);transition:width 250ms ease;pointer-events:none}#site-header a:not([href*=contact]):hover::after,#site-header a:not([href*=contact])[aria-current=location]::after,#site-header a:not([href*=contact]).active::after{width:16px}#site-header a[aria-current=location],#site-header a.active{color:var(--portfolio-text);font-weight:600}#site-header :has(>[data-hb-language-chooser]){position:relative}#site-header [data-hb-language-chooser]+ul{position:absolute!important;inset:auto 0 auto auto!important;top:calc(100% + .6rem)!important;transform:none!important;background:var(--portfolio-surface)!important;border:1px solid var(--portfolio-line);box-shadow:0 12px 32px rgb(0 0 0/45%)}#site-header [data-hb-language-chooser]+ul a{color:var(--portfolio-text)}#site-header [data-hb-language-chooser]+ul a:hover{background:var(--portfolio-surface-2);color:var(--portfolio-text)}.wg-resume-experience,.experience-timeline{padding-block:clamp(2.5rem,5vw,4rem)}.wg-resume-experience .card,.experience-card{background:var(--portfolio-surface);border:1px solid var(--portfolio-line);border-radius:12px;color:var(--portfolio-text)}.wg-resume-experience .card:hover{border-color:rgba(var(--portfolio-accent-rgb),.32)}.portfolio-copy-btn,.portfolio-copy-trigger{position:relative;display:inline-flex;align-items:center;gap:.35rem;background:rgba(var(--portfolio-accent-rgb),.08);border:1px solid rgba(var(--portfolio-accent-rgb),.22);border-radius:6px;color:var(--portfolio-muted);font-family:var(--portfolio-sans);font-size:.78rem;font-weight:500;padding:.22rem .55rem;cursor:pointer;line-height:1;transition:all 200ms ease;user-select:none}.portfolio-copy-btn:hover,.portfolio-copy-trigger:hover{color:var(--portfolio-text);border-color:rgba(var(--portfolio-accent-rgb),.45);background:rgba(var(--portfolio-accent-rgb),.16);transform:translateY(-1px)}.portfolio-copy-btn--hero{padding:.2rem .45rem;border-radius:5px;background:rgba(var(--portfolio-surface-rgb),.6)}.portfolio-copy-btn--contact{padding:.35rem .7rem;border-radius:8px;font-size:.85rem}.portfolio-copy-btn__icon{position:relative;display:inline-grid;place-items:center;width:14px;height:14px}.portfolio-copy-icon--default,.portfolio-copy-icon--success{position:absolute;inset:0;margin:auto;transition:transform 200ms cubic-bezier(.16,1,.3,1),opacity 200ms ease}.portfolio-copy-icon--default{opacity:1;transform:scale(1)}.portfolio-copy-icon--success{opacity:0;transform:scale(.4)}.is-copied{border-color:rgba(16,185,129,.5)!important;color:#10b981!important;background:rgba(16,185,129,.12)!important;box-shadow:0 0 14px rgba(16,185,129,.2)}.is-copied .portfolio-copy-icon--default{opacity:0;transform:scale(.4)}.is-copied .portfolio-copy-icon--success{opacity:1;transform:scale(1)}.featured-case,.featured-pub-card,.research-project-card{position:relative}.featured-case::before,.featured-pub-card::before{content:"";position:absolute;top:12px;right:12px;width:7px;height:7px;border-top:1px solid rgba(var(--portfolio-accent-rgb),.35);border-right:1px solid rgba(var(--portfolio-accent-rgb),.35);opacity:0;transform:translate(-1px,1px);transition:opacity 250ms ease,transform 250ms cubic-bezier(.16,1,.3,1);pointer-events:none}.featured-case:hover::before,.featured-pub-card:hover::before{opacity:1;transform:translate(2px,-2px)}