.wide{max-width:74rem}.lead{font-size:1.3rem;max-width:40rem}.typed{white-space:pre-line}.cards{list-style:none;padding:0;margin:2.5rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));border-top:1px solid var(--rule)}.cards li{position:relative;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);padding:0 0 1.4rem}.cards h2 a:after{content:"";position:absolute;inset:0;z-index:3}.cards.name-link h2 a:after{content:none}.cards li:hover h2 a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}.cards h2 a:focus-visible{outline:none}.cards h2 a:focus-visible:after{outline:3px solid var(--focus);outline-offset:2px}.cards .frame{aspect-ratio:5 / 4;background:var(--surface);display:block;overflow:hidden}.cards .frame img{width:100%;height:100%;object-fit:cover;display:block}.cards h2{margin:1rem 1.25rem .3rem;font-size:1.3rem}.cards h2 a{text-decoration:none}.cards p{margin:0 1.25rem}.tags{color:var(--muted);font-size:.95rem}.badge{display:inline-block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:.1rem .6rem}.filters summary{cursor:pointer;display:inline-block;border-bottom:1px solid var(--ink);list-style:none}.filters summary::-webkit-details-marker{display:none}.filters summary:after{content:" +" / ""}.filters[open] summary:after{content:" \2013" / ""}.filters fieldset{--fieldset-gap: .5rem;border:0;border-radius:0;background:none;padding:0;margin:1rem 0 0}.filters legend{font-size:.8rem;font-weight:400;letter-spacing:.14em;color:var(--muted)}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr));border:1px solid var(--rule);margin:2rem 0}.facts div{padding:1rem 1.25rem;border-right:1px solid var(--rule)}.facts dt{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}.facts dd{margin:.4rem 0 0;overflow-wrap:anywhere}.project-cards{list-style:none;padding:0;margin:1rem 0 2.5rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 1.5rem}@media(max-width:64rem){.project-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:56rem){.project-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:40rem){.project-cards{grid-template-columns:minmax(0,1fr)}}.project-cards li{position:relative}.project-cards .frame{display:block;aspect-ratio:5 / 4;overflow:hidden;background:var(--surface)}.project-cards .frame img{width:100%;height:100%;object-fit:cover;display:block;object-position:var(--focus, 50% 50%);transform:scale(var(--zoom, 1));transform-origin:var(--focus, 50% 50%)}.project-cards h3{margin:.9rem 0 .25rem;font-size:1.3rem;font-weight:500}.project-cards h3 a{color:var(--ink);text-decoration:none}.project-cards h3 a:after{content:"";position:absolute;inset:0}.project-cards h3 a:focus-visible{outline:none}.project-cards h3 a:focus-visible:after{outline:3px solid var(--focus);outline-offset:3px}.project-cards li:hover h3 a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}.project-cards p{margin:0}.project-cards .go{margin-top:.5rem;color:var(--link)}.profile-bio.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.profile-bio.is-clamped:target{display:block;-webkit-line-clamp:none;line-clamp:none}.profile-bio:target+.text-more{display:none}.text-more{display:inline-block;margin:-.5rem 0 1rem;padding:0;font:inherit;color:var(--link);background:none;border:0;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.cards .frame{position:relative}.card-portrait{position:absolute;left:.8rem;bottom:.8rem;width:4.2rem;aspect-ratio:4 / 5;border-radius:.55rem;border:3px solid var(--ground);overflow:hidden;background:var(--surface)}.cards .card-portrait img{width:100%;height:100%;object-fit:cover;display:block}.profile-hero{--portrait-w: clamp(10rem, 22vw, 15.5rem);margin:1rem 0 2rem}.profile-hero .hero-media{position:relative}.profile-banner{display:block;width:100%;aspect-ratio:3 / 1;height:auto;object-fit:cover;background:var(--surface);border:1px solid var(--rule)}.profile-portrait{position:absolute;left:2rem;bottom:0;transform:translateY(50%);width:var(--portrait-w);aspect-ratio:4 / 5;margin:0;border-radius:1.1rem;border:5px solid var(--ground);overflow:hidden;background:var(--surface)}.profile-portrait img{width:100%;height:100%;object-fit:cover;display:block}.profile-hero .hero-text{margin-left:calc(2rem + var(--portrait-w) + 1.5rem);min-height:calc(var(--portrait-w) * .625 + .5rem);padding-top:.9rem}.profile-hero .hero-text h1{margin:.2rem 0 .3rem}.profile-hero.no-banner .profile-portrait{position:static;transform:none}.profile-hero.no-banner .hero-text,.profile-hero.no-portrait .hero-text{margin-left:0;min-height:0}.photo-credit{margin:0;color:var(--muted);font-size:.85rem}.profile-hero .banner-credit,.profile-hero .portrait-credit{position:absolute;top:100%;margin-top:.3rem;font-size:.8rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-hero .banner-credit{right:0;max-width:calc(100% - 2rem - var(--portrait-w) - 1.5rem);text-align:right}.profile-hero .portrait-credit{left:2rem;width:var(--portrait-w);margin-top:calc(var(--portrait-w) * .625 + .4rem)}.profile-hero.has-banner-credit .hero-text{padding-top:1.9rem}.profile-hero.has-portrait-credit .hero-text{min-height:calc(var(--portrait-w) * .625 + 2rem)}.profile-hero.no-banner .portrait-credit{position:static;margin-top:.3rem}.profile-hero.no-portrait .banner-credit{max-width:100%}.profile-hero.no-banner.has-portrait-credit .hero-text{min-height:0}.profile-hero .hero-text{display:grid;grid-template-columns:minmax(0,1fr) fit-content(50%);grid-template-rows:auto auto auto repeat(var(--lines, 1),auto);column-gap:2rem;align-content:start}.profile-hero .hero-text>*{grid-column:1 / -1}.profile-hero .hero-name{display:contents}.profile-hero .hero-name>*{grid-column:1;grid-row:1}.profile-hero .hero-name>.eyebrow{grid-row:2}.profile-hero .hero-name>h1{grid-row:3}.profile-hero .hero-text>.contact-open{grid-column:2;grid-row:3;justify-self:end;align-self:center;margin:0 0 .1rem}.profile-hero .hero-text>.profile-contact,.profile-hero .hero-text>.profile-web{grid-row:4 / span var(--lines, 1);grid-template-rows:subgrid}.profile-hero .hero-text>.profile-contact{grid-column:1}.profile-hero .hero-text>.profile-web{grid-column:2;justify-items:end;text-align:right}.profile-hero .hero-text>.contact-page{grid-row:-1}.contact-open{display:inline-block;font:inherit;text-align:center;text-decoration:none;white-space:nowrap;padding:.75rem 1.6rem;color:var(--ground);background:var(--ink);border:1px solid var(--ink);border-radius:999px;cursor:pointer}.contact-open:hover,.contact-open:focus-visible{color:var(--ground);background:var(--link);border-color:var(--link);text-decoration:none}.contact-open[aria-disabled=true]{cursor:default}.profile-links{list-style:none;padding:0;margin:.2rem 0 .6rem;display:grid;gap:.15rem}.profile-links li{overflow-wrap:anywhere}.profile-links .link-kind{color:var(--muted);margin-right:.15rem}.profile-links .link-glyph{display:inline-block;width:1.05em;height:1.05em;margin-right:.4em;vertical-align:-.17em}.profile-bio{max-width:none;font-size:1.3rem;margin:0 0 1rem}.contact-page{display:none;margin-top:1.5rem}.contact-page:target,.contact-page.shown{display:block}.contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.contact-head h2{margin-top:0}.contact-receipt:focus{outline:none}html:has(.contact-dialog[open]){overflow:hidden}.contact-dialog{width:min(40rem,calc(100vw - 2rem));max-width:none;max-height:calc(100dvh - 2rem);padding:0 1.75rem 1.75rem;border:0;border-radius:1rem;background:var(--ground);color:var(--ink);overflow:auto;overscroll-behavior:contain}.contact-dialog::backdrop{background:#22201dd6}.contact-dialog .contact{margin:0;max-width:none;border-top:0;padding-top:0}.contact-dialog .contact-head{position:sticky;top:0;z-index:1;padding-top:1.5rem;background:var(--ground)}.contact-close{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border-radius:50%;color:var(--ink);background:transparent;border:1px solid var(--ink);font-size:1.6rem;line-height:1}@media(max-width:48rem){.profile-hero .hero-text{grid-template-columns:minmax(0,1fr);grid-template-rows:none}.profile-hero .hero-name{display:block}.profile-hero .hero-text>*,.profile-hero .hero-text>.profile-contact,.profile-hero .hero-text>.profile-web,.profile-hero .hero-text>.contact-open,.profile-hero .hero-text>.contact-page{grid-column:1;grid-row:auto}.profile-hero .hero-text>.profile-contact,.profile-hero .hero-text>.profile-web{grid-template-rows:none;margin-top:0}.profile-hero .hero-text>.profile-web{justify-items:start;text-align:left}.profile-hero .hero-text>.contact-open{justify-self:start;align-self:auto;margin:.4rem 0 .6rem}}@media(max-width:40rem){.profile-hero .hero-text>.contact-open{justify-self:stretch;width:100%}.profile-bio{font-size:1.1rem;line-height:1.6}.contact-dialog{width:100%;height:100%;max-height:none;margin:0;border-radius:0;padding:0 16px 2rem}.contact-dialog .contact-head{padding-top:1rem}}@media(max-width:40rem){.profile-banner{aspect-ratio:16 / 9}.profile-portrait{position:relative;left:auto;transform:none;width:10rem;margin:-5rem 0 0 .75rem}.profile-hero.no-banner .profile-portrait{margin:0}.profile-hero .hero-text{margin-left:0;min-height:0}.profile-hero .banner-credit{position:static;margin:.3rem 0 0 auto;max-width:calc(100% - 11.5rem)}.profile-hero.has-banner-credit .profile-portrait{margin-top:-6.35rem}.profile-hero.no-portrait .banner-credit{max-width:100%}.profile-hero .portrait-credit{position:static;width:10rem;margin:.3rem 0 0 .75rem}.profile-hero.has-banner-credit .hero-text{padding-top:.9rem}.profile-hero.has-portrait-credit .hero-text{min-height:0}}
