:root{--bg:#fbfaf8;--surface:#f2f0ec;--text:#1c1d21;--muted:#5c5f66;--line:#e2dfd9;--accent:#1f5fbf;--accent-strong:#174a96;--accent-soft:#e6eefb;--on-accent:#ffffff;--accent-2:#b45309;--shadow:0 10px 30px -12px rgb(20 30 60 / 0.25);--radius:0.6rem;--wrap:68rem;--measure:46rem;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", Menlo, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg:#131417;--surface:#1c1e22;--text:#e8e8ea;--muted:#a3a6ad;--line:#2d3036;--accent:#8ab4ff;--accent-strong:#b3ceff;--accent-soft:#1d2a40;--on-accent:#0f1a2e;--accent-2:#fbbf24;--shadow:0 10px 30px -12px rgb(0 0 0 / 0.7);color-scheme:dark}.brand-mark{filter:invert(1)}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:1.0625rem/1.65 var(--font);text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-strong);text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}h1,h2,h3{line-height:1.2;letter-spacing:-.015em;margin:2.2em 0 .6em}h1{font-size:clamp(2rem,1.4rem + 2.6vw,3rem);margin-top:.4em;letter-spacing:-.025em}h2{font-size:1.5rem}h3{font-size:1.125rem}.wrap{width:min(100% - 2rem,var(--wrap));margin-inline:auto}.skip-link{position:absolute;left:-999px;top:.5rem;background:var(--surface);padding:.5rem 1rem}.skip-link:focus{left:.5rem;z-index:10}.site-header{border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.75rem;color:var(--text);text-decoration:none;font-weight:650;letter-spacing:-.01em}.brand:hover{color:var(--text)}.brand-mark{width:7.5rem;height:auto}.nav{display:flex;gap:.25rem 1.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.nav a{color:var(--muted);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}.nav a:hover,.nav a[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.site-footer{border-top:1px solid var(--line);margin-top:5rem;color:var(--muted);font-size:.9375rem}.footer-inner{display:flex;justify-content:space-between;gap:1rem;padding-block:2rem;flex-wrap:wrap}.footer-inner p{margin:0}.footer-links{display:flex;gap:.5rem 1.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.footer-links a{color:var(--muted)}.footer-links a:hover{color:var(--text)}.prose>*{max-width:var(--measure)}.prose>.figure{max-width:56rem}.prose>:first-child{margin-top:0}.lead{font-size:1.1875rem;color:var(--muted)}.muted{color:var(--muted)}.meta{color:var(--muted);margin-top:-.3rem;font-size:.9375rem}.prose h2{padding-top:1.6rem;border-top:1px solid var(--line)}.prose>h2:first-child{border-top:0;padding-top:0}article.prose{padding-top:2.5rem}.prose ul{padding-left:1.2rem}.prose li+li{margin-top:.4rem}.note{display:flow-root;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface);border-radius:var(--radius);padding:.9rem 1.1rem;font-size:.9375rem}.note.draft{border-left-color:var(--accent-2)}.publications li{margin-bottom:1rem}.contact-form{display:grid;gap:.65rem;position:relative}.contact-form label{font-weight:600}.contact-form input,.contact-form textarea{width:100%;min-width:0;padding:.7rem .85rem;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--muted);border-radius:var(--radius)}.contact-form textarea{resize:vertical}.contact-form input+label,.contact-form textarea+label{margin-top:.6rem}.contact-form .muted{font-size:.9375rem}.contact-form .button{justify-self:start;cursor:pointer;font:inherit;font-weight:600}.contact-form .button:disabled{opacity:.6;cursor:not-allowed}.contact-trap{position:absolute;left:-1e4px;width:1px;height:1px;overflow:hidden}.contact-challenge{min-height:65px}.contact-status{min-height:1.65em;margin:0}.actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.75rem}.button{display:inline-block;padding:.7rem 1.25rem;border-radius:999px;background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:600;border:1px solid var(--accent)}.button:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.button-quiet{background:0 0;color:var(--accent)}.button-quiet:hover{background:var(--accent-soft);color:var(--accent-strong)}.band{position:relative;isolation:isolate;overflow:hidden;background:#0b1430;border-bottom:1px solid var(--line);--text:#ffffff;--muted:#c9d6ee;--line:rgb(255 255 255 / 0.25);--accent:#ffffff;--accent-strong:#e6eefb;--accent-soft:rgb(255 255 255 / 0.12);--on-accent:#0d3a72;--accent-2:#fbbf24;color:var(--text)}.band::before{content:"";position:absolute;inset:0;z-index:-1;background:url(/images/bg/lowpoly.svg)50%/cover no-repeat;opacity:.5;mask-image:linear-gradient(to bottom,#000 40%,rgb(0 0 0/.2))}.page-head .wrap{padding-block:3rem 2.5rem}.page-head h1{margin:0}.page-head h1::after{content:"";display:block;width:3rem;height:3px;margin-top:.9rem;border-radius:2px;background:var(--accent-2)}.page-head .lead{max-width:var(--measure);margin:1.1rem 0 0}.chrono{position:relative;z-index:2;margin-top:2.75rem}.chrono ul{list-style:none;margin:0;padding:0}.chrono-track{position:relative;padding-bottom:1.9rem}.chrono-lane{position:relative;height:2.35rem}.chrono-lane-era{height:2.9rem}.chrono-grid{position:absolute;inset:0;pointer-events:none}.chrono-tick{position:absolute;top:0;bottom:0;border-left:1px solid color-mix(in srgb,var(--text) 7%,transparent)}.chrono-tick span{position:absolute;bottom:0;translate:-50% 0;font:500 .7rem/1 var(--font-mono);letter-spacing:.04em;color:var(--muted)}.chrono-tick:first-child span{translate:0 0}.chrono-grid::after{content:"";position:absolute;left:0;right:0;bottom:1.2rem;border-top:1px solid var(--line)}.chrono-now{position:absolute;top:0;bottom:1.2rem;border-left:1px dashed var(--accent-2);opacity:.7}.chrono-item{position:absolute;top:.25rem;height:.5rem;display:block;color:var(--muted);text-decoration:none;font-size:.78rem;line-height:1.2}.chrono-item::after{content:"";position:absolute;inset:-.4rem 0 -1.3rem}.chrono-bar{display:block;height:100%;margin-right:2px;border-radius:999px;background:color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:inset 0 0 0 1px var(--accent)}.chrono-label{position:absolute;top:calc(100% + .3rem);left:0;white-space:nowrap}.chrono-end .chrono-label{left:auto;right:2px}.chrono-era{height:.75rem;font-size:.82rem}.chrono-era .chrono-label{color:var(--text);font-weight:600}.chrono-era .chrono-bar{box-shadow:none}.chrono-independent .chrono-bar{background:var(--accent)}.chrono-employed .chrono-bar{background:#8b5cf6}.chrono-studies .chrono-bar{background:#8b5cf6}.chrono-ongoing .chrono-bar{border-radius:999px 0 0 999px;mask-image:linear-gradient(to right,#000 calc(100% - 1.5rem),rgb(0 0 0/.25))}.chrono-item:hover,.chrono-item:focus-visible{z-index:5;color:var(--text)}.chrono-item:hover .chrono-label,.chrono-item:focus-visible .chrono-label{text-decoration:underline}.chrono-item:hover .chrono-bar,.chrono-item:focus-visible .chrono-bar{filter:brightness(1.2)saturate(1.2)}.chrono-item:focus-visible{outline-offset:4px}.chrono-pop{position:absolute;top:calc(100% + 1.6rem);left:0;width:15rem;padding:.5rem .5rem .65rem;display:block;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);opacity:0;visibility:hidden;translate:0 .35rem;pointer-events:none}.chrono-flip .chrono-pop{left:auto;right:0}.chrono-item:hover .chrono-pop,.chrono-item:focus-visible .chrono-pop{opacity:1;visibility:visible;translate:0 0}.chrono-pop img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:.5rem;border-radius:calc(var(--radius) - .2rem);background:var(--surface)}.chrono-pop img.whole{object-fit:contain}.chrono-pop-title{display:block;padding-inline:.15rem;color:var(--text);font-weight:600;font-size:.875rem;line-height:1.3}.chrono-pop-years{display:block;padding-inline:.15rem;margin-top:.2rem;font:600 .7rem/1.3 var(--font-mono);color:var(--accent-2)}.chrono-pop-note{display:block;padding-inline:.15rem;margin-top:.3rem;color:var(--muted);font-size:.78rem;line-height:1.35}@media(max-width:66rem){.chrono{overflow-x:auto;scrollbar-width:thin}.chrono-track{min-width:62rem;margin-right:.5rem}}@media(max-width:66rem),(hover:none){.chrono-pop{display:none}}.label{display:flex;align-items:center;gap:.6rem;margin:0 0 1.25rem;font:600 .78rem/1.2 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.label-n{color:var(--accent-2)}.label-n::after{content:" /";color:var(--line)}.label::after{content:"";flex:0 1 5rem;height:1px;background:var(--line)}.hero{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center;padding-block:3rem 3.5rem}.hero h1{margin-top:.25rem;max-width:20ch}.hl{color:var(--accent);background:linear-gradient(transparent 68%,color-mix(in srgb,var(--accent-2) 30%,transparent) 0)}.portrait{width:min(18rem,70vw);aspect-ratio:1;object-fit:cover;border-radius:50%;justify-self:center;border:6px solid var(--bg);box-shadow:0 0 0 1px var(--line),var(--shadow)}@media(min-width:48rem){.hero{grid-template-columns:1fr auto;gap:4rem;padding-block:4rem 5rem}}.curve{position:absolute;left:0;right:0;bottom:.75rem;width:100%;height:4.5rem;z-index:-1;opacity:.8}.curve-start{stop-color:var(--accent)}.curve-end{stop-color:var(--accent-2)}.section{margin-top:4.5rem}.cards{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}.card{display:flex;flex-direction:column;overflow:hidden;color:var(--text);text-decoration:none;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius)}.card:hover{color:var(--text);border-color:var(--accent);box-shadow:var(--shadow)}.card img{aspect-ratio:16/10;object-fit:cover;width:100%;background:var(--surface)}.card-whole img{object-fit:contain;background:#e9e9e9}.card-body{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem 1.2rem}.card-years{font:600 .75rem/1.2 var(--font-mono);letter-spacing:.06em;color:var(--accent-2)}.card-title{font-weight:650;line-height:1.3}.card-text{color:var(--muted);font-size:.9375rem;line-height:1.5}.values{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.value{border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem;background:var(--bg)}.value .icon{display:block;box-sizing:content-box;padding:.5rem;margin-bottom:.9rem;border-radius:.5rem;background:var(--accent-soft);color:var(--accent)}.value h2{font-size:1.125rem;margin:0 0 .4rem}.value p{margin:0;color:var(--muted)}.skills>.muted{margin-top:0}.skill-groups{display:grid;gap:1.5rem 2.5rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));margin-top:1.5rem}.skill-group h3{margin:0 0 .6rem;font-size:1rem}.tags{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0}.tags li{border:1px solid var(--line);border-radius:999px;padding:.2rem .75rem;font-size:.9375rem}.cta{margin-top:4.5rem;padding:2rem;border-radius:var(--radius);background:var(--accent-soft);display:flex;gap:1.25rem 2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.cta p{margin:0;max-width:46rem}.figure{margin:1.75rem 0}.figure img{border-radius:var(--radius)}.figure figcaption{color:var(--muted);font-size:.9375rem;margin-top:.5rem}.zoom{display:block;cursor:zoom-in}.video-play{position:relative;display:block;width:100%;padding:0;border:0;background:0 0;cursor:pointer;border-radius:var(--radius);overflow:hidden}.video-play img{aspect-ratio:16/9;object-fit:cover;width:100%}.video-icon{position:absolute;inset:0;margin:auto;width:4.5rem;height:4.5rem;border-radius:50%;background:rgb(0 0 0/.65)}.video-icon::after{content:"";position:absolute;left:1.75rem;top:1.35rem;border-style:solid;border-width:.9rem 0 .9rem 1.5rem;border-color:transparent transparent transparent #fff}.video-play:hover .video-icon{background:rgb(0 0 0/.85)}.video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:var(--radius)}.video-note{display:block;font-size:.8125rem}.clip video{display:block;width:100%;height:auto;border-radius:var(--radius);background:var(--surface)}@media(prefers-reduced-motion:no-preference){a,.button,.nav a,.slides-step{transition:color .15s,background-color .15s,border-color .15s}.card,.value{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.card:hover,.value:hover{transform:translateY(-3px)}.card img{transition:transform .4s ease}.card:hover img{transform:scale(1.03)}.hero-text,.portrait,.page-head .wrap{animation:rise .6s ease both}.portrait{animation-delay:.1s}@keyframes rise{from{opacity:0;transform:translateY(.75rem)}}html{scroll-behavior:smooth}.chrono-pop{transition:opacity .15s ease,translate .15s ease,visibility .15s}}.prose{display:flow-root}.prose h2,.prose h3{clear:both;scroll-margin-top:1.25rem}.prose>.slides{max-width:none;margin:1.25rem 0 1.75rem}.slides-frame{display:flex;gap:0}.slides-frame>.figure{flex:0 0 100%;margin:0}.slides-frame>.figure+.figure{margin-top:1.5rem}.slides.is-ready .slides-frame{overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}.slides.is-ready .slides-frame::-webkit-scrollbar{display:none}.slides.is-ready .slides-frame>.figure{scroll-snap-align:start;margin-top:0}.slides:not(.is-ready) .slides-frame{flex-direction:column}.slides .figure img,.slides .clip video,.slides .video-play img,.slides .video iframe{aspect-ratio:3/2;width:100%;object-fit:contain;background:var(--surface);border-radius:var(--radius)}.slides-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.75rem}.slides-controls[hidden]{display:none}.slides-step{display:grid;place-items:center;width:2.25rem;height:2.25rem;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer}.slides-step:hover{border-color:var(--accent);color:var(--accent)}.slides-dots{display:flex;gap:.15rem}.slides-dot{width:1.5rem;height:1.5rem;padding:0;border:0;background:0 0;cursor:pointer;display:grid;place-items:center}.slides-dot::after{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--line)}.slides-dot[aria-current]::after{background:var(--accent)}.slides-dot:hover::after{background:var(--muted)}@media(min-width:60rem){.prose>.slides{float:right;width:min(42%,28rem);margin:.35rem 0 1.5rem 2.5rem}}.years{display:inline-block;margin-left:.6rem;padding:.1rem .55rem;vertical-align:.2em;white-space:nowrap;font:600 .72rem/1.4 var(--font-mono);letter-spacing:.05em;color:var(--accent-2);border:1px solid var(--line);border-radius:999px}@media(max-width:40rem){.years{display:table;margin:.4rem 0 0}}@media(min-width:86rem){.timeline{position:relative}.timeline::before{content:"";position:absolute;left:-2rem;top:3rem;bottom:0;width:1px;background:var(--line)}.timeline h2,.timeline h3{position:relative}.timeline h2::before,.timeline h3::before{content:"";position:absolute;left:-2rem;top:.3em;width:.7rem;height:.7rem;translate:-50% 0;border-radius:50%;border:2px solid var(--accent);background:var(--bg)}.timeline h2::before{background:var(--accent)}.timeline h2:not(:first-child)::before{top:calc(1.6rem + .3em)}.timeline .years{position:absolute;right:calc(100% + 3.25rem);top:.2em;margin:0;padding:0;border:0;font-size:.8rem;text-align:right}.timeline h2:not(:first-child) .years{top:calc(1.6rem + .2em)}}.slides-toggle{margin-left:.5rem}.slides-toggle .icon-play,.slides-toggle[aria-pressed=true] .icon-pause{display:none}.slides-toggle[aria-pressed=true] .icon-play{display:block}