/* Portfolio: a readable index of the work. No build step or external assets. */
:root{--paper:#f6f5ef;--ink:#242e2a;--muted:#606760;--line:#d6d8cd;--green:#285d49;--wash:#e9eee4;--rust:#a2432d;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}a:focus-visible{outline:3px solid var(--rust);outline-offset:6px}::selection{background:#dae6b8;color:#1d3024}p,h1,h2,h3{margin:0}a:hover{color:var(--rust)}.page-shell{max-width:1280px;padding:0 60px;margin:auto}.skip-link{position:absolute;left:20px;top:-100px;background:var(--ink);color:white;padding:12px 20px;z-index:20}.skip-link:focus{top:12px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:27px 0;border-bottom:1px solid var(--ink)}.name{font-size:22px;font-weight:650;letter-spacing:-.7px;text-decoration:none}.name-dot{color:var(--rust)}.masthead nav{display:flex;gap:32px;font-size:14px}.masthead nav a{text-decoration:none}.masthead nav a:hover{text-decoration:underline}.intro{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:90px;align-items:center;padding:68px 0 64px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.35px;text-transform:uppercase;line-height:1.5}.intro-copy>.eyebrow{color:var(--muted);margin-bottom:24px}h1{font:normal clamp(42px,4.9vw,66px)/1.1 var(--serif);letter-spacing:-2.5px}h1 em{font-weight:normal;color:var(--green)}.intro-text{font-size:17px;line-height:1.7;max-width:480px;margin:24px 0 20px;color:#4f5751}.text-link{font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}.text-link span{margin-left:10px}.contents{padding-top:12px}.contents>.eyebrow{color:var(--muted);margin-bottom:15px}.contents>a{display:grid;grid-template-columns:25px 1fr 16px;align-items:center;gap:15px;border-top:1px solid var(--line);padding:15px 0;text-decoration:none;font-size:16px}.contents>a:last-child{border-bottom:1px solid var(--line)}.index-number{font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--rust)}.contents>a>span:last-child{color:var(--muted)}.contents>a:hover>span:last-child{color:var(--rust)}.section-kicker{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.section-kicker h2{font:600 13px/1.5 var(--sans)}.section-kicker>span{font-size:12px;color:var(--muted)}.selected-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:22px}.feature{position:relative;min-width:0}.feature a{text-decoration:none}.feature h3{font-family:var(--serif);font-weight:400;line-height:1.25}.feature-paper{background:var(--wash);padding:30px 32px;display:flex;flex-direction:column}.feature-paper .eyebrow{color:var(--green);margin-bottom:28px}.feature-paper h3{font-size:29px;letter-spacing:-.6px;padding-right:10px}.feature-paper h3 a::after{content:'';position:absolute;inset:0}.feature h3 a:focus-visible{outline-offset:4px}.feature-arrow{display:inline-block;font:20px var(--sans);margin-left:8px;vertical-align:middle}.feature-paper>p:not(.eyebrow){font-size:14px;color:#4c5a4e;margin-top:18px;max-width:350px;line-height:1.7}.feature-bottom{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:auto;padding-top:28px}.feature-bottom>span:first-child{font-size:11px;color:#4d5b4e}.feature-bottom .text-link{font-size:12px;white-space:nowrap}.feature-paper:hover{background:#e3eadc}.feature-lab{background:#fff;border:1px solid var(--line)}.lab-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#273d35;color:#f3f5e9;padding:36px 26px;min-height:190px}.code-label{display:block;font:10px/1.5 var(--sans);letter-spacing:1px;color:#c9d8cc;margin-bottom:15px}.lab-preview pre{font:12px/1.85 ui-monospace,SFMono-Regular,Consolas,monospace;margin:0;white-space:pre-wrap}.translation-arrow{font-size:24px;color:#c8d39d}.lab-caption{padding:23px 26px}.lab-caption .eyebrow{font-size:10px;color:var(--muted);margin-bottom:8px}.lab-caption h3{font-size:27px}.lab-caption h3 a::after{content:'';position:absolute;inset:0}.lab-caption h3 span{font:18px var(--sans);margin-left:9px}.lab-caption p:last-child{font-size:13px;color:var(--muted);margin-top:8px}.feature-lab:hover{border-color:var(--green)}.work-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin:78px 0 0;padding-bottom:28px;border-bottom:1px solid var(--ink)}.work-heading h2{font:normal 36px/1.2 var(--serif);letter-spacing:-1px}.work-heading p{color:var(--muted);font-size:14px}.collection{display:grid;grid-template-columns:260px minmax(0,1fr);gap:80px;padding:42px 0 34px;border-bottom:1px solid var(--line)}.collection-intro .index-number{display:block;margin-bottom:13px}.collection-intro h2{font:normal 29px/1.15 var(--serif);letter-spacing:-.6px;margin-bottom:16px}.collection-intro p{color:var(--muted);font-size:14px;max-width:230px}.collection-intro .text-link{display:inline-block;margin-top:24px;font-size:12px}.project{padding:0 0 24px}.project+.project{padding-top:24px;border-top:1px solid var(--line)}.project:last-child{padding-bottom:8px}.project-title{display:flex;align-items:baseline;justify-content:space-between;gap:20px;text-decoration:none}.project-title h3{font:600 18px/1.4 var(--sans);letter-spacing:-.25px}.project-title>span{font-size:19px;color:var(--green);flex-shrink:0}.project-title:hover h3{text-decoration:underline;text-decoration-thickness:1px}.project p{margin:9px 28px 10px 0;font-size:14px;color:var(--muted);max-width:610px;line-height:1.7}.project-meta{font:11px/1.6 var(--sans);color:#666c60}.fun-collection{border-bottom:1px solid var(--ink)}.about{display:grid;grid-template-columns:260px minmax(0,1fr);gap:80px;padding:65px 0}.about h2{font:normal 36px/1.2 var(--serif);letter-spacing:-.7px}.about p{font-size:16px;line-height:1.8;max-width:660px}.about p+p{margin-top:14px;color:var(--muted)}.about-links{display:flex;flex-wrap:wrap;gap:20px 30px;margin-top:26px}.about-links .text-link{font-size:13px}footer{border-top:1px solid var(--line);padding:23px 0 35px;display:flex;gap:32px;font-size:12px;color:var(--muted)}footer a{text-decoration:none}footer a:hover{text-decoration:underline}footer span:first-child{margin-right:auto}
@media(min-width:1440px){.page-shell{max-width:1360px}.intro{gap:125px}.lab-preview pre{font-size:13px}.collection,.about{grid-template-columns:300px minmax(0,1fr);gap:100px}}
@media(max-width:1050px){.page-shell{padding:0 36px}.intro{gap:40px;grid-template-columns:minmax(0,1.4fr) minmax(245px,1fr)}h1{letter-spacing:-1.8px}.selected-grid{grid-template-columns:1fr 1fr;gap:18px}.feature-paper{padding:26px}.feature-paper h3{font-size:26px}.feature-bottom{align-items:flex-start;flex-direction:column;gap:12px}.lab-preview{flex-wrap:wrap;padding:26px 22px;gap:18px}.lab-preview pre{font-size:11px}.lab-caption{padding:22px}.collection,.about{grid-template-columns:220px minmax(0,1fr);gap:40px}}
@media(max-width:760px){.page-shell{padding:0 24px}.masthead{padding:22px 0;gap:15px}.name{font-size:20px}.masthead nav{gap:19px;font-size:12px}.intro{grid-template-columns:1fr;gap:34px;padding:44px 0}.intro-copy>.eyebrow{margin-bottom:20px}h1{font-size:clamp(42px,8vw,58px);letter-spacing:-1.8px}.intro-text{max-width:520px;font-size:16px;margin-top:22px}.contents{padding:0}.contents>a{padding:12px 0;font-size:15px}.contents>.eyebrow{margin-bottom:12px}.section-kicker{align-items:baseline}.section-kicker>span{max-width:135px;text-align:right}.selected-grid{grid-template-columns:1fr;gap:20px}.feature-paper{padding:28px}.feature-paper .eyebrow{margin-bottom:24px}.feature-paper h3{font-size:30px}.feature-paper>p:not(.eyebrow){max-width:none}.feature-bottom{flex-direction:row;align-items:center;gap:15px;padding-top:24px}.lab-preview{flex-wrap:nowrap;padding:32px 26px;min-height:180px}.lab-preview pre{font-size:12px}.lab-caption{padding:24px 26px}.work-heading{margin-top:50px;display:block;padding-bottom:24px}.work-heading h2{font-size:32px}.work-heading p{margin-top:10px}.collection{grid-template-columns:1fr;gap:26px;padding:30px 0}.collection-intro{display:grid;grid-template-columns:25px 1fr;gap:0 13px}.collection-intro .index-number{padding-top:7px;margin:0}.collection-intro h2{font-size:28px;margin-bottom:10px}.collection-intro p{grid-column:2;max-width:100%}.collection-intro .text-link{grid-column:2;justify-self:start;margin-top:15px}.project-title h3{font-size:17px}.project p{margin-right:15px}.about{grid-template-columns:1fr;gap:25px;padding:42px 0}.about h2{font-size:32px}.about h2 br{display:none}.about p{font-size:15px}.about-links{gap:18px 26px}footer{gap:18px;flex-wrap:wrap;padding-bottom:28px}footer span:first-child{flex-basis:100%;margin:0}}
@media(max-width:390px){.page-shell{padding:0 18px}.masthead nav{gap:13px}.name{font-size:18px}.masthead nav{font-size:11px}.lab-preview{padding:26px 20px;gap:10px}.lab-preview pre{font-size:10px}.feature-paper{padding:24px}.feature-paper h3{font-size:27px}.feature-bottom{flex-direction:column;align-items:flex-start}.section-kicker>span{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:white}.page-shell{padding:0}.skip-link,.contents,.lab-preview{display:none}.intro,.collection,.about{display:block}.intro{padding:25px 0}.collection-intro{margin-bottom:20px}.selected-grid{display:block}.feature{margin-bottom:20px}.project{break-inside:avoid}footer{padding-bottom:0}a{color:inherit}}

@media(min-width:761px) and (max-width:1050px){.lab-preview{display:grid;grid-template-columns:1fr;gap:12px}.translation-arrow{transform:rotate(90deg);justify-self:start;margin-left:4px;line-height:1}}
