:root{--paper:#f7f7f3;--hero-paper:#fcf7eb;--white:#fff;--ink:#171b18;--muted:#5e6660;--line:#d9ddd8;--green:#315b49;--green-light:#dce8de;--red:#d94b2b;--red-light:#f5dfd8;--blue:#427d9c;--blue-light:#dce9ee;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:Inter, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;flex-direction:column;margin:0;display:flex}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}p,h1,h2,h3,dl,dd{margin:0}.shell{width:min(1120px,100% - 64px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:84px;display:flex}.site-name{font-family:var(--serif);white-space:nowrap;font-size:1.5rem;font-weight:600}.nav-links{align-items:center;gap:34px;font-size:1.25rem;font-weight:550;display:flex}.nav-links a,.site-footer a{transition:color .16s}.nav-links a:hover,.site-footer a:hover{color:var(--red)}.not-found{min-height:480px;padding:82px 0 120px}.not-found h1{font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.1}.not-found p{color:var(--muted);margin:20px 0;font-size:1.125rem}.not-found a{text-underline-offset:4px;font-size:1.125rem;text-decoration:underline;text-decoration-thickness:1px}.not-found a:hover{color:var(--green)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.home-main{flex-direction:column;flex:1;display:flex}.hero{--hero-map-opacity:.7;background:var(--hero-paper);border-bottom:1px solid var(--line);flex:1;min-height:min(710px,100svh - 84px);position:relative;overflow:hidden}.hero-image{opacity:var(--hero-map-opacity);background-image:url(/urban-mobility-map-light.webp);background-position:50%;background-repeat:no-repeat;background-size:auto 100%;position:absolute;inset:0}.hero-inner{padding-block:72px;position:relative}.hero-copy{max-width:760px;margin-inline:auto}.profile{align-items:center;gap:24px;display:flex}.profile-intro{color:#343b36;font-size:1.125rem;line-height:1.75}.profile-intro a,.hero-about a{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.profile-intro a:hover,.hero-about a:hover{color:var(--green)}.profile-photo{border:4px solid var(--white);object-fit:cover;border-radius:50%;flex:none;width:160px;height:160px;display:block;box-shadow:0 6px 20px #171b181f}.hero h1{font-family:var(--serif);letter-spacing:0;margin-top:18px;font-size:clamp(3.6rem,6.8vw,6rem);font-weight:500;line-height:.87}.site-footer{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:1fr 1.5fr auto;align-items:start;gap:40px;padding:38px 0 46px;font-size:1rem;line-height:1.6;display:grid}.site-footer>p:first-child{color:var(--ink);font-family:var(--serif);font-size:1.25rem;font-weight:700}.site-footer div{flex-wrap:wrap;gap:24px;display:flex}.publications-page{padding:82px 0 120px}.publications-page h1{font-family:var(--serif);margin-bottom:48px;font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1}.publication-entries{max-width:900px}.publication-entries+.publication-entries{margin-top:72px}.publication-entries>h2{border-bottom:1px solid var(--ink);font-family:var(--serif);padding-bottom:14px;font-size:clamp(1.4rem,2.5vw,1.75rem);font-weight:400;line-height:1.2}.publication-entry{border-bottom:1px solid var(--line);grid-template-columns:74px minmax(0,1fr);gap:24px;padding:28px 0;display:grid}.publication-entry>span{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:3px;font-size:1rem}.publication-entry h3{font-size:1.2rem;font-weight:600;line-height:1.4}.publication-entry h3 a{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;text-decoration-thickness:1px}.publication-entry h3 a:hover{color:var(--green);text-decoration-color:currentColor}.publication-entry p{color:var(--muted);margin-top:8px;font-size:1rem;line-height:1.6}.publication-entry strong,.project-entry strong{color:var(--ink)}.project-group{margin-top:36px}.project-group h3{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 24px;font-size:1.3rem;font-weight:650;line-height:1.35;display:flex}.project-group h3 span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:400}.project-list{border-left:3px solid var(--line);margin-top:16px;padding-left:24px}.project-entry{border-bottom:1px solid var(--line);padding:20px 0}.project-entry:first-child{padding-top:4px}.project-entry:last-child{border-bottom:0;padding-bottom:4px}.project-entry h4{margin:0;font-size:1.1rem;font-weight:600;line-height:1.4}.project-entry p{color:var(--muted);margin-top:8px;font-size:1rem;line-height:1.6}.project-entry details{margin-top:10px}.project-entry summary{color:var(--green);cursor:pointer;font-size:.95rem;font-weight:550}.contact-simple{width:min(760px,100%);min-height:700px;padding:120px 0}.contact-simple h1{font-family:var(--serif);margin-top:20px;font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1}.contact-simple-email{gap:48px;margin-top:86px;display:grid}.contact-simple-email>div>h2{color:var(--ink);margin-bottom:14px;font-size:clamp(1.25rem,2.2vw,1.5rem);font-weight:600;line-height:1.3}.contact-simple-email>div>a{color:var(--ink);font-family:var(--sans);overflow-wrap:anywhere;text-underline-offset:4px;font-size:1.2rem;line-height:1.6;text-decoration:underline;text-decoration-thickness:1px}.contact-simple-email>div>a:hover{color:var(--green)}@media (max-width:980px){.site-header{grid-template-columns:auto 1fr}.nav-links{justify-self:end}.hero-image{background-position:58% 0;background-size:auto 56%}}@media (max-width:700px){.shell{width:min(100% - 36px,1120px)}.site-header{flex-wrap:wrap;min-height:72px;padding-block:12px}.nav-links{flex-wrap:wrap;gap:4px 24px;font-size:1.125rem}.site-name{font-size:1.25rem}.profile{gap:18px}.profile-photo{width:120px;height:120px}.hero-inner{padding-block:48px}.hero h1{font-size:clamp(3.1rem,14.5vw,4.6rem)}.site-footer{grid-template-columns:1fr;gap:18px}.site-footer div{flex-wrap:wrap}.publication-entry{grid-template-columns:1fr;gap:6px}.project-list{padding-left:16px}.publications-page{padding:60px 0 82px}.contact-simple{min-height:auto;padding:82px 0 100px}.contact-simple-email{gap:36px;margin-top:64px}}@media (max-width:420px){.site-header{gap:4px 16px}.nav-links{gap:4px 16px;font-size:1rem}.site-name{font-size:1.125rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}.cv-pdf-viewer{border:0;width:100%;height:calc(100dvh - 120px);min-height:480px;margin-bottom:24px;display:block}.pdf-reader{min-height:100dvh;padding-block:20px 32px}.pdf-open-link{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.pdf-reader p{color:var(--muted);margin-top:16px}.pdf-page{border:1px solid var(--line);background:var(--white);margin-top:16px;position:relative}.pdf-page canvas{width:100%;height:auto;display:block}.pdf-page a{position:absolute}.site-footer-shell{margin-top:auto}.hero-about{margin-top:40px;font-size:1rem}.hero-about h2{font-family:var(--serif);font-size:clamp(2.25rem,4vw,3rem);font-weight:400;line-height:1.15}.hero-about p{color:#343b36;margin-top:18px;font-size:1.125rem;line-height:1.75}
