@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.resize{resize:both}.italic{font-style:italic}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}@font-face{font-family:Google Sans Fallback;src:local(Arial);size-adjust:104%}@font-face{font-family:Google Sans Text Fallback;src:local(Arial);size-adjust:101.8%}:root{--bg:#fff;--surface:#fafbfc;--figure-bg:#fff;--ink:#1f1f1f;--ink-2:#444746;--ink-3:#5f6368;--line:#e3e7ed;--line-strong:#c9d1db;--blue:#1b4b7a;--blue-hover:#133a60;--blue-soft:#c9d9ea;--blue-ghost:#eef4fa;--gold:#c29a2e;--gold-soft:#f1e2b4;--gold-ghost:#fbf6e6;--grey-token:#edeff2;--grey-token-line:#b7bec7;--ok:#146c2e;--chart-ours:#1b4b7a;--chart-base:#c29a2e;--chart-other:#bfc5cc;--radius-card:14px;--radius-ctl:8px;--shadow-hover:0 8px 24px #1b4b7a12;--font-display:"Google Sans","Google Sans Fallback",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-body:"Google Sans Text","Google Sans Text Fallback",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"Roboto Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--measure:70ch;--content-max:1120px;--header-h:64px;--on-blue:#fff;color-scheme:light}html{scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink-2);font-family:var(--font-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.7}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:500;line-height:1.25}h1{letter-spacing:-.01em;font-size:clamp(2.3rem,4.6vw,3.3rem);line-height:1.1}h2{font-size:clamp(1.6rem,2.8vw,2.1rem)}h3{font-size:1.15rem}p{margin:0}a{color:var(--blue);text-decoration:none;transition:color .15s}a:hover{color:var(--blue-hover);text-underline-offset:3px;text-decoration:underline}img{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}main{outline:none;min-height:70vh;display:block}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--blue);color:var(--on-blue);border-radius:var(--radius-ctl);font-family:var(--font-display);padding:8px 14px;position:absolute;top:-48px;left:12px}.skip-link:focus{color:var(--on-blue);top:12px}.shell{width:min(100% - 32px,var(--content-max));margin-inline:auto}.page{padding-top:3rem;padding-bottom:2rem}.narrow{max-width:780px}.muted{color:var(--ink-3);font-size:.92rem}.site-header{z-index:40;height:var(--header-h);background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.nav{justify-content:space-between;align-items:center;gap:1rem;height:100%;display:flex}.site-name{font-family:var(--font-display);color:var(--ink);white-space:nowrap;font-size:1.08rem;font-weight:500}.site-name:hover{color:var(--blue);text-decoration:none}.menu-toggle{border:1px solid var(--line-strong);border-radius:var(--radius-ctl);width:40px;height:40px;color:var(--ink);justify-content:center;align-items:center;display:inline-flex}.nav-links{left:0;right:0;top:var(--header-h);background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;padding:.5rem 16px 1rem;display:none;position:absolute}.nav-links.open{display:flex}.nav-links a{font-family:var(--font-display);color:var(--ink-2);border-bottom:1px solid var(--line);padding:.7rem .25rem;font-size:1rem;font-weight:500}.nav-links a:hover{color:var(--blue);text-decoration:none}.nav-links a[aria-current=page]{color:var(--blue)}.nav-links .nav-cv{color:var(--on-blue);border-bottom:0;justify-content:center;margin-top:.9rem}@media(min-width:900px){.menu-toggle{display:none}.nav-links{background:0 0;border:0;flex-direction:row;align-items:center;gap:.25rem;padding:0;display:flex;position:static}.nav-links a{border-radius:var(--radius-ctl);border:0;padding:.4rem .7rem;font-size:.95rem}.nav-links a[aria-current=page]{background:var(--blue-ghost)}.nav-links .nav-cv{margin:0 0 0 .6rem;padding-inline:1rem}}.button{border-radius:var(--radius-ctl);height:40px;font-family:var(--font-display);white-space:nowrap;justify-content:center;align-items:center;gap:.45rem;padding:0 1.1rem;font-size:.95rem;font-weight:500;line-height:1;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.button:hover{text-decoration:none}.button.primary{background:var(--blue);color:var(--on-blue)}.button.primary:hover{background:var(--blue-hover);color:var(--on-blue)}.button.secondary{border:1px solid var(--line-strong);color:var(--ink);background:var(--bg)}.button.secondary:hover{border-color:var(--blue);color:var(--blue)}.button.small{height:32px;padding:0 .8rem;font-size:.85rem}.button:disabled{opacity:.5;cursor:default}.icon-button{border-radius:var(--radius-ctl);width:32px;height:32px;color:var(--ink-3);justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{color:var(--ink);background:var(--blue-ghost)}.more-link{font-family:var(--font-display);align-items:center;gap:.3rem;font-size:.95rem;font-weight:500;display:inline-flex}.text-link{font-family:var(--font-display);font-size:.92rem;font-weight:500}.text-links{font-family:var(--font-display);flex-wrap:wrap;gap:.35rem 1rem;font-size:.92rem;font-weight:500;display:flex}.back-link{font-family:var(--font-display);margin-bottom:1.5rem;font-size:.95rem;font-weight:500;display:inline-block}.pill-row{flex-wrap:wrap;gap:.45rem;display:flex}.pill{border:1px solid var(--line-strong);height:32px;color:var(--ink);font-family:var(--font-display);border-radius:999px;align-items:center;gap:.4rem;padding:0 .85rem;font-size:.85rem;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.pill:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}.pill.small{gap:.35rem;height:28px;padding:0 .7rem;font-size:.8rem}.evidence-chips{margin-top:.45rem}.kicker{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-size:.74rem;font-weight:500;display:block}.venue{font-family:var(--font-display);color:var(--blue);font-size:.9rem;font-weight:500}.area-label{font-family:var(--font-display);color:var(--ink-3);font-size:.8rem}.badge{border-radius:var(--radius-ctl);background:var(--blue-ghost);height:20px;font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);vertical-align:middle;align-items:center;padding:0 .5rem;font-size:.7rem;font-weight:500;display:inline-flex}.badge-ok{color:var(--ok)}.badge-blue{color:var(--blue)}.authors{color:var(--ink-3);font-size:.98rem;line-height:1.55}.authors strong{color:var(--ink);font-weight:700}.footnote,.section-note{color:var(--ink-3);font-size:.9rem}.page-header{max-width:var(--measure);margin-bottom:2.5rem}.page-header h1{margin:.6rem 0 .9rem}.page-lede{color:var(--ink-2)}.page-lede a,.prose a{text-underline-offset:3px;text-decoration:underline}.page-loading{min-height:100vh}.section{border-top:1px solid var(--line);padding:3.5rem 0}@media(min-width:768px){.section{padding:5rem 0}}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem;display:flex}.section-number{font-family:var(--font-display);color:var(--blue);margin-bottom:.35rem;font-size:.95rem;font-weight:500;display:block}.section-subtitle{color:var(--ink-3);margin-top:.4rem}.prose{max-width:var(--measure);gap:1rem;display:grid}.prose h2{margin-top:1rem;margin-bottom:.5rem;font-size:1.3rem}.statement,.about-bio{margin-bottom:3rem}.empty-state{border:1px solid var(--line);border-radius:var(--radius-card);color:var(--ink-3);margin-bottom:2rem;padding:1.5rem}.intro{gap:2rem;padding:2.5rem 0 3.5rem;display:grid}.intro-side{justify-items:start;gap:1rem;display:grid}.portrait{aspect-ratio:4/5;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);width:180px;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.role-line{font-family:var(--font-display);color:var(--ink-2);font-size:.95rem;line-height:1.45}.icon-links{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.icon-link{border:1px solid var(--line-strong);width:36px;height:36px;color:var(--ink-2);border-radius:50%;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:inline-flex}.icon-link:hover{color:var(--blue);border-color:var(--blue)}.intro-main{max-width:var(--measure);align-content:start;gap:1.1rem;display:grid}.headline{font-family:var(--font-display);color:var(--ink);font-size:1.2rem}.status-line{font-family:var(--font-display);color:var(--ink-2);align-items:center;gap:.55rem;font-size:.95rem;font-weight:500;display:inline-flex}.status-dot{background:var(--ink-3);border-radius:50%;flex:none;width:8px;height:8px}.interests-title{letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-top:.3rem;font-size:.74rem}.interests{gap:.2rem;margin:0;padding-left:1.3rem;list-style:decimal;display:grid}.interests li::marker{color:var(--blue);font-family:var(--font-display);font-weight:500}.interests strong{color:var(--ink);font-weight:500;font-family:var(--font-display)}.interests span{color:var(--ink-3)}.intro-actions{flex-wrap:wrap;align-items:center;gap:.7rem 1rem;margin-top:.4rem;display:flex}.email-link{font-family:var(--font-display);font-size:.95rem;font-weight:500}@media(min-width:768px){.intro{grid-template-columns:240px 1fr;gap:3rem;padding:3.5rem 0 4rem}.portrait{width:100%}}.area-grid,.ongoing-grid{gap:1.25rem;display:grid}.ongoing-grid{align-items:start}@media(min-width:900px){.area-grid,.ongoing-grid{grid-template-columns:repeat(3,1fr)}}.area-tile,.project-card,.ongoing-card,.compact-card,.paper-tile,.manuscript,.article-card,.edu-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-card);transition:border-color .2s,box-shadow .2s}.area-tile:hover,.project-card:hover,.ongoing-card:hover,.compact-card:hover,.paper-tile:hover,.article-card:hover{border-color:var(--blue-soft);box-shadow:var(--shadow-hover)}.area-tile{color:inherit;flex-direction:column;display:flex;overflow:hidden}.area-tile:hover{text-decoration:none}.area-image,.card-media{background:var(--figure-bg);border-bottom:1px solid var(--line);aspect-ratio:3/2;padding:12px;display:block}.area-image img,.card-media img{object-fit:contain;width:100%;height:100%}.area-body,.card-body{align-content:start;gap:.45rem;padding:1.1rem 1.25rem 1.3rem;display:grid}.area-body p{color:var(--ink-3);font-size:.95rem;line-height:1.5}.area-tile:hover h3{color:var(--blue)}.area-count{font-family:var(--font-mono);color:var(--ink-3);font-size:.78rem}.card-meta{font-family:var(--font-display);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:.35rem .75rem;font-size:.8rem;display:flex}.card-body h3 a,.compact-body h3 a{color:var(--ink)}.card-body h3 a:hover,.compact-body h3 a:hover{color:var(--blue)}.card-body p{font-size:.98rem}.card-period{font-family:var(--font-display);color:var(--ink-3);font-size:.85rem}.tag-line{color:var(--ink-3);font-size:.85rem!important}.card-actions{flex-wrap:wrap;gap:.35rem 1rem;margin-top:.3rem;display:flex}.project-card{flex-direction:column;display:flex;overflow:hidden}.project-grid{align-items:start;gap:1.25rem;display:grid}@media(min-width:768px){.project-grid{grid-template-columns:repeat(2,1fr)}}.compact-grid{gap:1rem;display:grid}@media(min-width:640px){.compact-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.compact-grid{grid-template-columns:repeat(3,1fr)}}.compact-card{flex-direction:column;display:flex;overflow:hidden}.compact-media{background:var(--figure-bg);border-bottom:1px solid var(--line);height:150px;padding:10px;display:block}.compact-media img{object-fit:contain;width:100%;height:100%}.compact-body{align-content:start;gap:.4rem;padding:.95rem 1.1rem 1.1rem;display:grid}.compact-body h3{font-size:1.02rem}.compact-body p{font-size:.92rem;line-height:1.55}.chips{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.chip{border:1px solid var(--line-strong);border-radius:var(--radius-ctl);height:34px;font-family:var(--font-display);color:var(--ink-2);padding:0 .95rem;font-size:.88rem;font-weight:500;transition:border-color .15s,color .15s,background-color .15s}.chip:hover{border-color:var(--blue);color:var(--blue)}.chip[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.venue-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:1.5rem;padding:1.1rem 0;overflow:hidden}.venue-track{width:max-content;animation:venue-scroll var(--venue-duration,16s)linear infinite;align-items:center;margin:0;padding:0;list-style:none;display:flex}.venue-track li{border-right:1px solid var(--line);flex:none;align-items:center;padding:0 1.75rem;display:flex}.venue-track img{width:auto;max-width:none;height:40px}@keyframes venue-scroll{to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.venue-strip{overflow-x:auto}.venue-track{animation:none}}.year-group{margin-bottom:1rem}.year-label{letter-spacing:.12em;text-transform:uppercase;color:var(--blue);align-items:center;gap:1rem;margin:0 0 1.25rem;font-size:.74rem;display:flex}.year-label:after{content:"";background:var(--line);flex:1;height:1px}.paper-list{gap:1.25rem;margin-bottom:2.5rem;display:grid}.paper-tile{display:grid;overflow:hidden}.paper-figure{background:var(--figure-bg);border-bottom:1px solid var(--line);cursor:zoom-in;width:100%;height:150px;padding:10px;display:block}.paper-figure img{object-fit:contain;width:100%;height:100%}.paper-body{align-content:start;gap:.5rem;padding:1rem 1.1rem 1.1rem;display:grid}.paper-meta{flex-wrap:wrap;align-items:center;gap:.4rem .7rem;display:flex}.paper-title{font-size:1.1rem;font-weight:500;line-height:1.35}.paper-title a{color:var(--ink)}.paper-title a:hover{color:var(--blue)}.tldr{font-size:.98rem}.tldr strong{font-family:var(--font-display);color:var(--ink);margin-right:.25rem;font-weight:500}.contribution{color:var(--ink-3);font-size:.9rem;display:none}@media(min-width:640px){.contribution{display:block}}.paper-tile .authors{font-size:.92rem}@media(max-width:639px){.paper-tile .pill{height:30px;padding:0 .7rem;font-size:.8rem}.paper-tile .pill-row{gap:.35rem}}.paper-tile .pill-row{margin-top:.25rem}@media(min-width:768px){.paper-tile{grid-template-columns:300px 1fr}.paper-tile.no-image{grid-template-columns:1fr}.paper-figure{aspect-ratio:3/2;border-bottom:0;border-right:1px solid var(--line);align-self:stretch;height:auto}.paper-body{padding:1.4rem 1.6rem}.paper-title{font-size:1.28rem}}.manuscripts{gap:1rem;display:grid}.manuscript{gap:.5rem;padding:1.1rem 1.25rem;display:grid}.manuscript-target{font-family:var(--font-display);color:var(--ink-3);font-size:.9rem}.selected-grid{gap:2.5rem;display:grid}@media(min-width:900px){.selected-grid{grid-template-columns:1.6fr 1fr;gap:3rem}}.selected-papers{gap:1.25rem;display:grid}.paper-row{grid-template-columns:120px 1fr;align-items:start;gap:1rem;display:grid}.paper-row-thumb{border:1px solid var(--line);background:var(--figure-bg);border-radius:10px;width:120px;height:80px;padding:4px;display:block}.paper-row-thumb img{object-fit:contain;width:100%;height:100%}.paper-row h3{margin-bottom:.25rem;font-size:1.02rem;line-height:1.4}.paper-row h3 a{color:var(--ink)}.paper-row h3 a:hover{color:var(--blue)}.paper-row .authors{font-size:.88rem}.paper-row-meta{align-items:center;gap:.6rem;margin-top:.25rem;display:flex}.updates{align-content:start;gap:1rem;display:grid}.updates ul{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.updates li{border-bottom:1px solid var(--line);gap:.1rem;padding-bottom:.9rem;font-size:.95rem;line-height:1.5;display:grid}.updates time{font-family:var(--font-display);color:var(--blue);font-size:.82rem;font-weight:500}.updates li a{color:var(--ink-2)}.updates li a:hover{color:var(--blue)}.bib-dialog{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--bg);width:min(100% - 32px,680px);color:var(--ink-2);padding:0}.bib-dialog::backdrop{background:#0f121573}.bib-head{border-bottom:1px solid var(--line);font-family:var(--font-display);color:var(--ink);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.bib-head div{align-items:center;gap:.4rem;display:flex}.bib-dialog pre{max-height:60vh;font-family:var(--font-mono);background:var(--surface);margin:0;padding:1rem;font-size:.8rem;line-height:1.6;overflow:auto}.figure-card{background:var(--figure-bg);border:1px solid var(--line);border-radius:var(--radius-card);gap:.8rem;margin:0;padding:18px;display:grid}.figure-card img{object-fit:contain;width:100%;height:auto;margin:0 auto}.figure-button{cursor:zoom-in;width:100%;display:block}.figure-card figcaption{text-align:center;color:#5f6368;max-width:60ch;margin:0 auto;font-size:.92rem;line-height:1.55}.figure-card figcaption strong{color:#1f1f1f;font-weight:700}.area-layout{gap:1.75rem;display:grid}@media(min-width:900px){.area-layout{grid-template-columns:1.1fr 1fr;align-items:start;gap:2.5rem}}.area-lists{gap:.8rem;display:grid}.area-lists .kicker{margin-top:.6rem}.link-list{gap:.5rem;margin:0;padding-left:1.1rem;list-style:outside;display:grid}.link-list li::marker{color:var(--ink-3)}.link-list li{line-height:1.5}.timeline{gap:1.75rem;max-width:880px;margin:0;padding:0;list-style:none;display:grid}.timeline li{gap:.35rem;display:grid}.timeline-period{font-family:var(--font-display);color:var(--blue);font-size:.85rem;font-weight:500}.timeline-place{color:var(--ink-2)}.timeline-meta{color:var(--ink-3);font-size:.92rem}.timeline h3{font-size:1.1rem}@media(min-width:768px){.timeline li{grid-template-columns:170px 1fr;gap:1.5rem}}.detail-layout{gap:2rem;display:grid}@media(min-width:900px){.detail-layout{grid-template-columns:1fr 280px;align-items:start;gap:3rem}}.detail-main{gap:1.5rem;display:grid}.detail-text{max-width:var(--measure)}.detail-meta{border:1px solid var(--line);border-radius:var(--radius-card);padding:1.1rem 1.25rem}@media(min-width:900px){.detail-meta{top:calc(var(--header-h) + 24px);position:sticky}}.detail-meta dl{gap:.3rem;margin:0;display:grid}.detail-meta dt{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-top:.6rem;font-size:.74rem}.detail-meta dt:first-child{margin-top:0}.detail-meta dd{margin:0;font-size:.95rem}.figure-gallery{gap:1.25rem;display:grid}@media(min-width:640px){.figure-gallery{grid-template-columns:repeat(2,1fr)}}.figure-gallery .figure-card img{max-height:320px}.video-poster{border:1px solid var(--line);border-radius:var(--radius-card);background:#000;width:100%;display:block;position:relative;overflow:hidden}.video-poster img{object-fit:contain;width:100%;max-height:520px}.play-badge{background:var(--blue);height:44px;color:var(--on-blue);font-family:var(--font-display);border-radius:999px;align-items:center;gap:.5rem;padding:0 1.1rem;font-weight:500;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-poster:hover .play-badge{background:var(--blue-hover)}.project-video{border-radius:var(--radius-card);background:#000;width:100%;max-height:640px}.article-list{gap:1.25rem;display:grid}.article-card{gap:1rem;padding:1.2rem 1.3rem;display:grid}.article-card>div{gap:.45rem;display:grid}.article-card h3 a{color:var(--ink)}.article-card h3 a:hover{color:var(--blue)}@media(min-width:768px){.article-card:not(.no-image){grid-template-columns:220px 1fr}}.study-list{margin:0;padding:0;list-style:none;display:grid}.study-list li{border-bottom:1px solid var(--line);gap:.15rem;padding:.95rem 0;display:grid}.study-list li:first-child{border-top:1px solid var(--line)}.study-list a{font-family:var(--font-display);align-items:center;gap:.4rem;font-weight:500;display:inline-flex}.study-list span{color:var(--ink-3);font-size:.95rem}.book-row{border:1px solid var(--line);border-radius:var(--radius-card);color:inherit;grid-template-columns:110px 1fr;align-items:center;gap:1.25rem;padding:1rem;display:grid}.book-row:hover{border-color:var(--blue-soft);box-shadow:var(--shadow-hover);text-decoration:none}.book-row img{border-radius:6px}.book-row h2{margin-bottom:.3rem;font-size:1.3rem}.book-row p{color:var(--ink-3)}.edu-card{grid-template-columns:64px 1fr;gap:1.25rem;max-width:820px;padding:1.25rem 1.3rem;display:grid}.edu-logo{object-fit:contain;width:64px;height:64px}.edu-card h3{margin:.15rem 0 .2rem}.edu-metrics{flex-wrap:wrap;gap:.75rem 2rem;margin:1rem 0 0;display:flex}.edu-metrics dt{font-family:var(--font-display);color:var(--ink-3);font-size:.8rem}.edu-metrics dd{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.1rem;font-weight:600}.edu-card+.edu-card{margin-top:1rem}.exam-list{gap:.85rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.exam-list li{gap:.15rem;display:grid}@media(min-width:640px){.exam-list li{grid-template-columns:76px 1fr;gap:1rem}}.exam-date{font-family:var(--font-display);color:var(--ink-3);padding-top:.1rem;font-size:.85rem}.exam-list li>div{gap:.1rem;font-size:.95rem;display:grid}.exam-list strong{font-family:var(--font-display);color:var(--ink);font-weight:500}.exam-subtitle{color:var(--ink-3);font-size:.9rem}.exam-note{color:var(--ink-3);font-size:.85rem}.award-list{max-width:880px;margin:0;padding:0;list-style:none;display:grid}.award-list li{border-bottom:1px solid var(--line);grid-template-columns:76px 1fr;gap:1rem;padding:.85rem 0;display:grid}.award-year{font-family:var(--font-mono);color:var(--ink-3);padding-top:.2rem;font-size:.82rem}.award-list strong{font-family:var(--font-display);color:var(--ink);font-weight:500;display:block}.award-list span{font-size:.95rem}.more-awards{max-width:880px;margin-top:1.25rem}.more-awards summary{cursor:pointer;font-family:var(--font-display);color:var(--blue);padding:.4rem 0;font-weight:500}.skill-rows{gap:1rem;max-width:880px;margin:0;display:grid}.skill-rows div{gap:.15rem;display:grid}@media(min-width:768px){.skill-rows div{grid-template-columns:190px 1fr;gap:1.5rem}}.skill-rows dt{font-family:var(--font-display);color:var(--ink);font-weight:500}.skill-rows dd{margin:0}.evidence-group+.evidence-group{margin-top:2.25rem}.evidence-group .kicker{margin-bottom:1rem}.evidence-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}@media(min-width:640px){.evidence-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.evidence-grid{grid-template-columns:repeat(4,1fr)}}.evidence-card{align-content:start;gap:.25rem;min-width:0;display:grid}.evidence-thumb{border:1px solid var(--line);border-radius:var(--radius-card);cursor:zoom-in;background:#fff;width:100%;margin-bottom:.45rem;padding:8px;transition:border-color .2s,box-shadow .2s;display:block}.evidence-thumb.portrait{aspect-ratio:3/4}.evidence-thumb.landscape{aspect-ratio:4/3}.evidence-thumb:hover{border-color:var(--blue-soft);box-shadow:var(--shadow-hover)}.evidence-thumb img{object-fit:contain;width:100%;height:100%}.evidence-card h4{font-family:var(--font-display);color:var(--ink);font-size:.98rem;font-weight:500;line-height:1.35}.evidence-detail{color:var(--ink-3);font-size:.85rem;line-height:1.4}.evidence-type{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem}.contact{justify-items:start;gap:1rem;display:grid}.contact a:not(.button){font-family:var(--font-display);font-size:1.1rem;font-weight:500}.album-stack{gap:1.5rem;margin-top:2.5rem;display:grid}@media(min-width:768px){.album-stack{gap:2rem}}.page>.album-stack{margin-top:0}.mosaic{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);scroll-margin-top:calc(var(--header-h) + 16px);display:block;overflow:hidden}.mosaic-row{width:100%;display:flex;overflow:hidden}.mosaic-row>*{flex:none;height:100%}.mosaic-photo{cursor:zoom-in;background:var(--grey-token);display:block;position:relative;overflow:hidden}.mosaic-photo img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.mosaic-photo.contain{background:var(--surface)}.mosaic-photo.contain img{object-fit:contain}.mosaic-photo:after{content:"";background:var(--ink);opacity:0;transition:opacity .4s;position:absolute;inset:0}.mosaic-photo:hover img{transform:scale(1.03)}.mosaic-photo:hover:after{opacity:.1}.mosaic-photo:focus-visible{outline-offset:-3px}.mosaic-text{background:var(--surface);flex-direction:column;justify-content:center;gap:.35rem;min-width:0;padding:1rem 1.1rem;display:flex;overflow:hidden}.mosaic-text.align-right{text-align:right;align-items:flex-end}.mosaic-text.align-center{text-align:center;align-items:center}.mosaic-title{color:var(--blue);font-size:clamp(1.2rem,2vw,1.5rem);font-weight:500;line-height:1.2}.mosaic-where{color:var(--ink-3);font-size:.88rem;font-style:italic;line-height:1.4}.mosaic-desc{color:var(--ink-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.45;display:-webkit-box;overflow:hidden}.mosaic-count{font-family:var(--font-display);color:var(--ink-3);font-size:.8rem}.mosaic-related{font-family:var(--font-display);font-size:.88rem;font-weight:500}.mosaic-links{flex-wrap:wrap;gap:.2rem 1rem;display:flex}.mosaic-text.align-right .mosaic-links{justify-content:flex-end}.mosaic-text.align-center .mosaic-links{justify-content:center}.lightbox{z-index:90;background:#0f1215eb;justify-content:center;align-items:center;padding:56px 12px 16px;display:flex;position:fixed;inset:0}.lightbox-figure{justify-items:center;gap:.75rem;max-width:min(1400px,100%);margin:0;display:grid}.lightbox-figure img{object-fit:contain;background:#fff;border-radius:6px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 150px)}.lightbox-figure figcaption{text-align:center;color:#e8eaed;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;max-width:70ch;font-size:.92rem;display:flex}.lightbox-figure figcaption a{color:#b0cff0;align-items:center;gap:.3rem;display:inline-flex}.lightbox-count{font-family:var(--font-mono);color:#9aa0a6;font-size:.8rem}.lightbox-close,.lightbox-nav{color:#fff;background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background-color .15s;display:inline-flex;position:absolute}.lightbox-close:hover,.lightbox-nav:hover{background:#ffffff38}.lightbox-close{top:10px;right:10px}.lightbox-nav.prev{top:50%;left:8px;transform:translateY(-50%)}.lightbox-nav.next{top:50%;right:8px;transform:translateY(-50%)}.footer{border-top:1px solid var(--line);margin-top:2rem}.footer-inner{color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.5rem;padding:1.75rem 0 2.25rem;font-size:.92rem;display:flex}.footer nav{font-family:var(--font-display);flex-wrap:wrap;gap:.4rem 1.25rem;font-weight:500;display:flex}.not-found-links{font-family:var(--font-display);font-weight:500}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}.mosaic-photo:hover img{transform:none}.mosaic-photo:hover:after{opacity:0}}.mosaic-text.text-block,.mosaic-text.text-bar{height:auto;padding:1.1rem 1.2rem}.mosaic-text.text-bar{border-top:1px solid var(--line)}.mosaic-text.text-bar .mosaic-desc{-webkit-line-clamp:2}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
