:root{--bg:#ffffff;--ink:#0a0a0b;--ink-soft:#3f4247;--muted:#6b7078;--faint:#a4a9b1;--line:#e6e7ea;--band:#0b0c0e;--band-text:#f4f4f5;--band-muted:#8a8f98;--band-line:rgba(255, 255, 255, 0.22);--accent:#4f6d99;--radius:0;--font-serif:'Newsreader', Georgia, serif;--font-sans:'Inter', -apple-system, 'Helvetica Neue', Arial, sans-serif;--font-display:'Inter Tight', 'Inter', -apple-system, sans-serif}[data-theme=dark]{--bg:#0b0c0e;--ink:#f4f4f5;--ink-soft:#c8ccd2;--muted:#8a8f98;--faint:#5c6169;--line:#23262c;--band:#000000;--band-text:#f4f4f5;--band-muted:#7d828b;--accent:#8ba3c7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:1rem;line-height:1.7;background-color:var(--bg);color:var(--ink);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s ease,color .25s ease}::selection{background:var(--ink);color:var(--bg)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;letter-spacing:-.02em;text-wrap:balance}a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink) 30%,transparent);text-underline-offset:.22em;transition:text-decoration-color .15s ease,color .15s ease}a:hover{text-decoration-color:var(--ink)}a:focus-visible,button:focus-visible{outline:2px solid color-mix(in srgb,var(--ink) 50%,transparent);outline-offset:3px}img{max-width:100%;display:block}.container{width:min(1240px,calc(100% - 3rem));margin:0 auto}.narrow{width:min(700px,calc(100% - 3rem));margin:0 auto}@view-transition{navigation: auto;
}::view-transition-old(root),::view-transition-new(root){animation-duration:.4s;animation-timing-function:ease}.hero::before,.statement-band::before,.page-band::before{animation:bandFade .9s ease-out both}@keyframes bandFade{from{opacity:0;transform:scale(1.015)}to{opacity:1;transform:none}}.reveal{opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}.reveal.in{opacity:1;transform:none}.current-list li.reveal:nth-child(2){transition-delay:.1s}.current-list li.reveal:nth-child(3){transition-delay:.2s}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.hero-text>*{animation:rise 1s cubic-bezier(.16,1,.3,1)both}.hero-text>*:nth-child(2){animation-delay:.12s}.hero-text>*:nth-child(3){animation-delay:.24s}.site-header{border-bottom:1px solid var(--line);transition:background-color .25s ease,border-color .25s ease}.header-inner{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding:1.3rem 0}.site-logo{font-family:var(--font-display);font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.site-logo:hover{color:var(--ink)}.site-nav ul{list-style:none;display:flex;align-items:center;gap:1.9rem;margin:0;padding:0}.site-nav a{font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding-bottom:.25rem}.site-nav a:hover{color:var(--ink)}.site-nav a.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}.theme-toggle{background:0 0;border:none;cursor:pointer;padding:0;display:flex;align-items:center;color:var(--muted);transition:color .15s ease}.theme-toggle:hover{color:var(--ink)}.theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}.band{background:var(--band);color:var(--band-text);transition:background-color .25s ease}.band a{text-decoration-color:var(--band-line)}.band a:hover{text-decoration-color:var(--band-text)}.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;background:url(/images/chicago.jpg)50% 30%/cover no-repeat;filter:brightness(.92)}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,13,.88) 0%,rgba(7,9,13,.6) 55%,rgba(7,9,13,.42) 100%)}.hero-body{position:relative;z-index:1;width:100%;padding:7rem 0 5rem}.hero-body .container{width:100%;margin:0;padding-left:clamp(1.5rem,5vw,5rem);padding-right:1.5rem}.hero-kicker{font-size:.95rem;line-height:1.55;color:var(--band-muted);max-width:44ch;margin:0 0 2rem}.hero-kicker::before{content:"";display:block;width:3rem;height:3px;background:var(--band-text);margin-bottom:1.75rem}.hero-text h1{font-size:clamp(3rem,7.5vw,6rem);font-weight:600;line-height:1;letter-spacing:-.04em;margin:0 0 2.25rem;color:var(--band-text)}.hero-foot{display:flex;align-items:center;gap:2.25rem;flex-wrap:wrap}.hero-meta{font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted);margin:0}.hero-foot .social-icons a{color:var(--band-muted)}.hero-foot .social-icons a:hover{color:var(--band-text)}.intro{padding:6.5rem 0 5rem}.intro-grid{display:grid;grid-template-columns:minmax(0,1.4fr)minmax(0,.6fr);gap:5rem;align-items:start}.intro-prose{max-width:70ch}.intro-prose>p:first-of-type{font-family:var(--font-display);font-size:clamp(1.35rem,2.4vw,1.7rem);font-weight:500;line-height:1.4;letter-spacing:-.02em;max-width:32ch;color:var(--ink)}.prose p{margin:0 0 1.1rem;font-size:1rem;line-height:1.75;color:var(--ink-soft)}.intro-photo{margin:0}.intro-photo img{width:100%;border:1px solid var(--line);filter:saturate(.85)contrast(1.02)}.highlights{margin-top:4.5rem;padding:0;border-top:1px solid var(--line)}.highlights>div{display:grid;grid-template-columns:9rem 1fr;gap:2rem;align-items:baseline;padding:1.15rem 0;border-bottom:1px solid var(--line)}.highlights dt{font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:0}.highlights dd{margin:0;font-size:.95rem;line-height:1.55;color:var(--ink)}.band-kicker,.section-kicker{font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;margin:0 0 2.5rem}.band-kicker{color:rgba(255,255,255,.6)}.section-kicker{color:var(--accent)}.statement-band{position:relative;overflow:hidden;color:#f4f4f5;min-height:74vh;display:flex;align-items:center;padding:8rem 0;background:var(--band)}.statement-band::before{content:"";position:absolute;inset:0;background:url(/images/interlude.jpg)50% 62%/cover no-repeat;filter:saturate(.9)brightness(.95)}.statement-band::after{content:"";position:absolute;inset:0;background:rgba(7,9,13,.62)}.statement-band .container{position:relative;z-index:1}.fit-statement{font-family:var(--font-serif);font-style:italic;font-size:clamp(2rem,3.8vw,3.1rem);font-weight:450;color:#fff;margin:0;line-height:1.3;max-width:26ch;text-wrap:balance}.fit-statement strong{font-weight:550}.current-work{padding:6rem 0 7rem}.section-title{margin:0 0 2.75rem;padding-bottom:1.75rem;border-bottom:1px solid var(--line);font-size:clamp(1.5rem,2.6vw,2rem);font-weight:600;letter-spacing:-.025em;max-width:30ch}.current-list{list-style:none;padding:0;margin:0}.current-list li{display:grid;grid-template-columns:5.5rem 1fr;gap:2.5rem;padding:2.25rem 0;border-bottom:1px solid var(--line);align-items:baseline}.current-num{font-size:2.4rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1;color:var(--faint)}@supports((-webkit-text-stroke:1px black)){.current-num{color:transparent;-webkit-text-stroke:1px var(--faint)}}.current-body h3{font-family:var(--font-serif);margin:0 0 .45rem;font-size:1.4rem;font-weight:500;letter-spacing:-.01em}.current-body p{margin:0;color:var(--muted);font-size:.95rem;max-width:62ch;line-height:1.65}.page-band{position:relative;overflow:hidden;min-height:46vh;display:flex;align-items:flex-end;padding:6rem 0 4rem}.page-band::before{content:"";position:absolute;inset:0;background-size:cover;background-position:50% 40%;filter:brightness(.9)}.page-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,13,.85) 0%,rgba(7,9,13,.55) 60%,rgba(7,9,13,.38) 100%)}.page-band .container{position:relative;z-index:1}.page-band.band-research::before{background-image:url(/images/marina-city.jpg);background-position:50% 45%}.page-band.band-publications::before{background-image:url(/images/campus-path.jpg);background-position:50% 42%}.page-band.band-cv::before{background-image:url(/images/building.jpg);background-position:50% 35%}.page-band h1{margin:0 0 1.25rem;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:600;letter-spacing:-.03em;line-height:1.05;color:var(--band-text)}.page-band h1::before{content:"";display:block;width:3rem;height:3px;background:var(--band-text);margin-bottom:1.75rem}.page-band .lead{font-family:var(--font-serif);font-style:italic;color:var(--band-muted);margin:0;max-width:48ch;font-size:1.15rem;line-height:1.55}.page-body{padding:4.5rem 0 6rem}.cv-meta{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--band-muted);margin:1rem 0 0}.cv-viewer{border:1px solid var(--line);overflow:hidden;background:var(--bg)}.cv-viewer iframe{display:block;width:100%;height:min(88vh,1100px);border:0;background:var(--bg)}.cv-viewer:fullscreen{border:0}.cv-viewer:fullscreen iframe{height:100vh}.cv-fallback{padding:2rem;color:var(--muted);font-style:italic}@media(max-width:640px){.cv-viewer iframe{height:75vh}}.prose h2{margin:3.5rem 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--line);font-size:clamp(1.4rem,2.2vw,1.7rem);font-weight:600;letter-spacing:-.02em}.prose h2:first-child{margin-top:0}.prose h3{font-family:var(--font-serif);margin:2.5rem 0 .25rem;font-size:1.3rem;font-weight:500;letter-spacing:-.01em}.prose h3+p{margin-top:.15rem}.prose p>em:only-child{display:inline-block;margin-bottom:.3rem;font-size:.92rem}.prose hr{border:none;height:1px;width:4rem;margin:2.5rem 0;background-color:var(--line)}.prose strong{font-weight:600;color:var(--ink)}.prose em{color:var(--muted)}.social-icons{list-style:none;display:flex;gap:1.25rem;margin:0;padding:0}.social-icons li{margin:0}.social-icons a{display:inline-flex;align-items:center;color:var(--faint);text-decoration:none;transition:color .15s ease}.social-icons a:hover{color:var(--ink)}.social-icons svg{width:18px;height:18px;fill:currentColor}.site-footer{background:var(--band);color:var(--band-text);transition:background-color .25s ease}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:2.75rem 0}.footer-name{margin:0 0 .35rem;font-weight:600;font-size:.95rem;letter-spacing:-.01em}.footer-contact{margin:0;font-size:.85rem;color:var(--band-muted)}.footer-contact a{text-decoration-color:var(--band-line)}.footer-contact a:hover{text-decoration-color:var(--band-text)}.footer-note{font-size:.8rem;margin:.5rem 0 0;color:var(--band-muted)}.footer-credit{font-size:.68rem;letter-spacing:.04em;margin:1.25rem 0 0;color:var(--band-muted);opacity:.7}.footer-links .social-icons a{color:var(--band-muted)}.footer-links .social-icons a:hover{color:var(--band-text)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}@media(max-width:860px){.intro-grid{grid-template-columns:minmax(0,1fr);gap:3.5rem}.intro-photo{max-width:360px}}@media(max-width:720px){.header-inner{flex-direction:column;align-items:flex-start;gap:1rem}.site-nav ul{flex-wrap:wrap;gap:1.25rem}.hero{min-height:0}.hero-body{padding:5rem 0 4rem}.hero-text h1{font-size:clamp(2.75rem,13vw,4rem)}.hero-coords{display:none}.intro{padding:4rem 0 3.5rem}.highlights>div{grid-template-columns:1fr;gap:.3rem;padding:1rem 0}.statement-band{min-height:0;padding:5rem 0}.current-work{padding:4rem 0 5rem}.current-list li{grid-template-columns:3rem 1fr;gap:1.5rem;padding:1.75rem 0}.current-num{font-size:1.5rem}.page-band{min-height:38vh;padding:4rem 0 3.5rem}.page-body{padding:3.5rem 0 4.5rem}.footer-inner{flex-direction:column;align-items:flex-start}}