@charset "UTF-8";.grid-2{display:grid;grid-template-columns:1fr;gap:var(--space-card-gap)}@media(min-width:640px){.grid-2{grid-template-columns:1fr 1fr;gap:48px var(--space-card-gap)}}.project-card{display:flex;flex-direction:column;gap:var(--space-card-inner);padding:0}@media(hover:hover){.project-card:hover .project-thumb{border-color:var(--primary)}.project-card:hover .project-title{color:var(--primary)}}.project-card:focus-within .project-thumb{border-color:var(--primary)}.project-card:focus-within .project-title{color:var(--primary)}.project-card .project-thumb{aspect-ratio:40/21;border-radius:var(--radius-lg);background:transparent;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);transition:border-color .22s}.project-card .project-thumb img{width:100%;height:100%;object-fit:cover;display:block}.project-card .project-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);letter-spacing:.02em;margin-top:4px}.project-card .project-tag:before{content:"// ";color:var(--primary)}.project-card .project-title{font-size:var(--text-3xl);font-weight:600;font-family:var(--font-display);letter-spacing:-.02em;margin:-4px 0 0;transition:color .18s}.project-card .project-desc{font-size:var(--text-md);color:var(--muted);margin:0}.portfolio-page>h1{margin-top:8px}.portfolio-page .lead{font-size:var(--text-xl);color:var(--muted);margin:var(--space-lead-top) 0 0;font-weight:400}.portfolio-page .lead a{color:var(--primary)}.portfolio-page .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:var(--space-section-head)}.portfolio-page .section-head h2{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:600;letter-spacing:-.025em;margin:0}.portfolio-page .section-sub{margin:-16px 0 24px;color:var(--muted);font-size:var(--text-base)}.portfolio-page .plainlist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.portfolio-page .plainlist li{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--border);gap:16px}.portfolio-page .plainlist li:last-child{border-bottom:none}@media(max-width:639px){.portfolio-page .plainlist li{flex-direction:column;align-items:flex-start;gap:8px}}.portfolio-page .plainlist .name{font-family:var(--font-display);font-size:var(--text-base);font-weight:500}.portfolio-page .plainlist .link-external{flex-shrink:0}.portfolio-page .earlier-work{display:grid;grid-template-columns:1fr;gap:var(--space-card-gap);list-style:none;padding:0;margin:0}@media(min-width:640px){.portfolio-page .earlier-work{grid-template-columns:1fr 1fr;gap:var(--space-card-gap) var(--space-grid-col)}}.portfolio-page .earlier-work>li{margin:0;padding:0}.portfolio-page .earlier-work-card{display:flex;flex-direction:column;gap:var(--space-card-inner);padding:12px 16px;border:1px solid var(--border);height:100%;border-radius:var(--radius-lg);background:var(--bg);transition:border-color .22s}@media(min-width:640px){.portfolio-page .earlier-work-card{padding:24px 26px}}@media(hover:hover){.portfolio-page .earlier-work-card:hover{border-color:var(--primary)}}.portfolio-page .earlier-work-card:focus-within{border-color:var(--primary)}.portfolio-page .earlier-work-year{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--primary);letter-spacing:.02em;align-self:flex-start}.portfolio-page .earlier-work-year:before{content:"// ";color:var(--muted)}.portfolio-page .earlier-work-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em;margin:0;color:var(--text)}.portfolio-page .earlier-work-desc{font-size:var(--text-md);color:var(--muted);margin:0}.portfolio-page .earlier-work-media{margin:4px 0 0}.portfolio-page .earlier-work-media .earlier-work-lightbox-extra{display:none}.portfolio-page .casestudies{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:var(--space-card-gap)}@media(min-width:640px){.portfolio-page .casestudies{grid-template-columns:repeat(3,1fr)}}.portfolio-page .casestudies li a{display:block;text-decoration:none;color:inherit}.portfolio-page .casestudies li a img{width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--border);display:block}.portfolio-page .casestudies li a .tag{display:inline-block;margin-top:10px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted)}.portfolio-page .casestudies li a .tag:before{content:"// ";color:var(--primary)}.portfolio-page .portfolio-prose{font-size:var(--text-base);color:var(--text)}.portfolio-page .portfolio-prose p{margin:0 0 24px}.portfolio-page .portfolio-prose h3{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;margin:44px 0 14px;letter-spacing:-.015em}.portfolio-page .portfolio-prose em{font-family:var(--font-display);font-style:italic;font-weight:500}.portfolio-page .portfolio-prose a{color:var(--primary)}.portfolio-page .portfolio-prose code{font-family:var(--font-mono);font-size:var(--text-md);background:var(--surface);color:var(--primary);padding:2px 7px;border-radius:var(--radius-sm)}.portfolio-page .portfolio-case{margin:8px 0 30px}.portfolio-page .portfolio-case img{width:100%;height:auto;border-radius:var(--radius-lg);border:1px solid var(--border);display:block}.portfolio-page .portfolio-section-title{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:600;letter-spacing:-.025em;margin:var(--space-section-head)}
