@font-face{font-family:DM Sans;src:url(/_astro/DMSans-Variable.D_B5dL4R.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:DM Sans;src:url(/_astro/DMSans-Italic-Variable.CT59GZwy.ttf)format("truetype");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Inter;src:url(/_astro/Inter-Variable.c8O0ljhh.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/_astro/Inter-Italic-Variable.B-9PvMw6.ttf)format("truetype");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Noto Serif;src:url(/_astro/NotoSerif-VariableFont_wdth_wght.Dh5ICAPK.ttf)format("truetype");font-weight:100 900;font-stretch:62.5% 100%;font-style:normal;font-display:swap}@font-face{font-family:Noto Serif;src:url(/_astro/NotoSerif-Italic-VariableFont_wdth_wght.Br-7JlId.ttf)format("truetype");font-weight:100 900;font-stretch:62.5% 100%;font-style:italic;font-display:swap}:root{--font-sans:"DM Sans", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-display:"Noto Serif", Georgia, serif;--page-bg:#f6f6f0}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;font-optical-sizing:auto}body{color:#111;background:var(--page-bg);font-family:var(--primary-text-family);font-size:var(--primary-text-size);font-weight:var(--primary-text-weight);line-height:var(--primary-text-line-height);letter-spacing:var(--primary-text-letter-spacing);margin:0}img{max-width:100%;display:block}a{color:#111;font-weight:500;text-decoration:none;position:relative}a:not(.section-timeline__link):not(.landing__scroll):after{content:"";transform-origin:0;background:currentColor;height:1.5px;transition:transform .25s;position:absolute;bottom:-.1rem;left:0;right:0;transform:scaleX(0)}a:not(.section-timeline__link):not(.landing__scroll):hover:after,a:not(.section-timeline__link):not(.landing__scroll):focus-visible:after{transform:scaleX(1)}h1{font-family:var(--title-text-family);font-size:var(--title-text-size);font-weight:var(--title-text-weight);line-height:var(--title-text-line-height);letter-spacing:var(--title-text-letter-spacing);margin:0}h2{font-family:var(--section-text-family);font-size:var(--section-text-size);font-weight:var(--section-text-weight);line-height:var(--section-text-line-height);letter-spacing:var(--section-text-letter-spacing);font-stretch:var(--section-text-stretch);color:var(--section-text-color);margin:0}h3{font-family:var(--subtitle-text-family);font-size:var(--subtitle-text-size);font-weight:var(--subtitle-text-weight);line-height:var(--subtitle-text-line-height);letter-spacing:var(--subtitle-text-letter-spacing);margin:0}p{margin:0}.landing-card{text-align:left;background:#fff;border:1px solid #e5e5e5;align-items:center;gap:2rem;width:min(100% - 3rem,64rem);padding:2.5rem;display:flex}.landing-card__photo{object-fit:cover;background:#f0f0f0;border-radius:50%;flex-shrink:0;width:10rem;height:10rem;margin:0}.landing-card__body{flex:1;min-width:0}.landing-card__title{margin-bottom:.75rem}.landing-card__intro{color:#444;line-height:1.5}.landing-card__intro p{margin:0}.landing-card__intro p+p{margin-top:.75em}@media (width<=600px){.landing-card{flex-direction:column;align-items:flex-start}}.contact__email{white-space:nowrap;align-items:center;min-height:1em;display:inline-flex}.contact__email-user:after,.contact__email-at:after,.contact__email-host:after{content:none}.contact__email.is-ready .contact__email-user:after{content:var(--email-user)}.contact__email.is-ready .contact__email-at:after{content:"@"}.contact__email.is-ready .contact__email-host:after{content:var(--email-host)}.contact__list{gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.contact__link{flex-direction:row;align-items:center;gap:.5rem;display:inline-flex}.contact__icon{flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;display:inline-flex}.contact__icon svg{display:block}.contact__handle{white-space:nowrap}.contact--sidebar .contact__list{flex-direction:column;align-items:flex-start;gap:.85rem;padding-left:0}.section-timeline{display:none}@media (width>=900px){.section-timeline{--timeline-progress:0;z-index:10;width:14rem;transform:translate3d(0, calc((1 - var(--timeline-progress)) * 100%), 0);pointer-events:none;will-change:transform;flex-direction:column;padding:2rem 0;display:flex;position:fixed;top:0;bottom:0;left:1.5rem}.section-timeline.is-interactive{pointer-events:auto}.section-timeline>nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.section-timeline .contact{margin-top:auto}.section-timeline__list{border-left:1px solid #e5e5e5;margin:0;padding:0 0 0 .85rem;list-style:none}.section-timeline__item{margin:0}.section-timeline__link{color:#999;align-items:center;padding:.65rem 0;text-decoration:none;transition:color .2s;display:flex;position:relative}.section-timeline__marker{background:#ddd;border:1px solid #fff;border-radius:50%;width:7px;height:7px;transition:background .2s,box-shadow .2s;position:absolute;top:50%;left:calc(-.85rem - .5px);transform:translate(-50%,-50%);box-shadow:0 0 0 1px #e5e5e5}.section-timeline__link:hover,.section-timeline__link.is-active{color:#111}.section-timeline__link.is-active .section-timeline__marker{background:#111;box-shadow:0 0 0 1px #111}}@media (width>=900px) and (prefers-reduced-motion:reduce){.section-timeline{opacity:var(--timeline-progress);will-change:opacity;transform:none}}.section{border-bottom:1px solid #e5e5e5;padding:1.25rem 0 1.75rem}.section h2{margin-bottom:2.5rem}.section h3{margin-bottom:.5rem}.listing-body{--listing-when-col:minmax(0, 1fr);--listing-content-col:minmax(0, 3fr)}.listing-slides{grid-template-columns:var(--listing-when-col) var(--listing-content-col);gap:3rem 2.75rem;margin:0;padding:0;display:grid}.listing-slides--row{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#ccc transparent;flex-direction:row;align-items:stretch;gap:.85rem;padding-bottom:.75rem;display:flex;overflow-x:auto}.listing-slides--row::-webkit-scrollbar{height:6px}.listing-slides--row::-webkit-scrollbar-thumb{background:#ccc;border-radius:999px}.listing-slide{grid-template-columns:subgrid;grid-column:1/-1;align-items:center;display:grid}.listing-slide__when{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;margin:0;padding-right:2.5rem}.listing-slide__body{min-width:0}.listing-slide h3{margin-bottom:.35rem}.listing-slide h3 a{font-weight:inherit;color:inherit}.listing-slide__body p{color:#444;margin:0}.listing-slide__body p+p{margin-top:.35rem}.listing-slide__meta{color:#666}.project-card{appearance:none;aspect-ratio:1;width:100%;min-width:0;height:auto;color:inherit;cursor:pointer;background:#fff;border:2px solid #e5e5e5;padding:0;position:relative;overflow:hidden}.project-card__image{object-fit:cover;width:100%;height:100%;filter:brightness(var(--project-brightness,.85)) saturate(var(--project-saturation,.75));background:#ececec;transition:filter .2s}.project-card.is-selected{border-color:#e07a3a}.project-card.is-selected .project-card__image{filter:brightness(calc(var(--project-brightness,.85) * 1.15)) saturate(var(--project-saturation,.75))}.project-card__image--empty{display:block}.project-card__chips{flex-wrap:wrap;gap:.25rem;display:flex;position:absolute;top:.45rem;left:.45rem;right:.45rem}.project-card__chip{color:#333;letter-spacing:.01em;background:#ffffffeb;border-radius:999px;align-items:center;padding:.12rem .4rem;font-size:.6rem;line-height:1.3;display:inline-flex}.project-card__name{color:#fff;text-align:left;-webkit-line-clamp:2;background:linear-gradient(#1110,#111111c7);-webkit-box-orient:vertical;margin:0;padding:1.75rem .7rem .9rem;font-size:.8rem;line-height:1.25;display:-webkit-box;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.project-card:focus-visible{outline-offset:2px;outline:2px solid #111}#projects{flex-direction:column;display:flex}#projects .listing-body{flex-direction:column;flex:auto;min-height:0;display:flex}#projects .listing-slides{flex:none}#projects .listing-slides--row{scroll-snap-type:none;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;padding-bottom:0;display:grid;overflow:visible}.project-detail{border-top:1px solid #e5e5e5;flex-direction:column;flex:auto;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.project-detail h3{margin:0}.project-detail__summary{max-width:48rem;height:calc(var(--primary-text-size,1rem) * var(--primary-text-line-height,1.6) * 3.5);color:#444;overflow:auto}.project-detail__summary p{margin:0}.project-detail__summary p+p{margin-top:.75em}.project-detail__focus,.project-detail__links{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.project-detail__chip{background:var(--page-bg);color:#555;letter-spacing:.01em;border:1px solid #e5e5e5;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.75rem;line-height:1.3;display:inline-flex}.project-detail__links{gap:.9rem;margin-top:.85rem}.project-detail__link{align-items:center;gap:.35rem;display:inline-flex}.site-footer{color:#666;justify-content:center;align-items:center;padding-top:1.5rem;display:flex}.landing[data-astro-cid-lcdefpme]{background:var(--page-bg);justify-content:center;align-items:center;min-height:100svh;display:flex;position:relative}.landing__scroll[data-astro-cid-lcdefpme]{color:#888;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.landing__scroll[data-astro-cid-lcdefpme]:hover,.landing__scroll[data-astro-cid-lcdefpme]:focus-visible{color:#111}.below-fold[data-astro-cid-lcdefpme]{width:min(100% - 3rem,64rem);margin-inline:auto;padding:4rem 2.5rem 2rem}
