:root{--ink:#151515;--muted:#777;--line:#e8e8e8;--sidebar:200px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible{outline:2px solid #111;outline-offset:4px}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:2;width:var(--sidebar);padding:33px 24px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#fff}
.identity{display:block;text-decoration:none}.identity strong{display:block;font-size:15px;letter-spacing:-.04em;white-space:nowrap}.identity strong small{font-size:11px}.identity>span{display:inline-block;margin-top:8px;padding:1px 4px;background:#f3f3f3;color:#7e7e7e;font:10px/1.4 "Courier New",monospace}
.side-nav{display:flex;flex-direction:column;align-items:flex-start;margin-top:33px}.side-nav a{font-size:25px;font-weight:750;line-height:1.37;letter-spacing:-.05em;text-decoration:none}.side-nav a:hover,.site-footer a:hover{text-decoration:underline;text-underline-offset:3px}.sidebar-bottom{display:grid;gap:5px;margin-top:auto;color:#777;font:10px/1.4 "Courier New",monospace}
.main-content{max-width:1540px;margin-left:var(--sidebar);padding:30px 32px 20px}.intro{padding-bottom:24px}.intro h1{margin:0 0 8px;font-size:clamp(44px,4.7vw,59px);line-height:1.05;letter-spacing:-.075em;font-weight:750}.intro h1 span{font-size:.58em;letter-spacing:0;vertical-align:6%}.intro-lead{min-height:72px;margin:0;color:#686868;font-size:clamp(20px,2vw,24px);line-height:1.4;letter-spacing:-.025em}.intro-details{margin-top:16px}.intro-details p{margin:4px 0;color:#888;font:11px/1.4 "Courier New",monospace}.intro-details span{display:inline-block;min-width:95px}.intro-details b{margin-right:16px;font-weight:400}
.section{border-top:1px solid var(--line);padding:27px 0 44px;scroll-margin-top:28px}.section-label{margin:0 0 22px;color:#777;font:11px/1.2 "Courier New",monospace;font-weight:400}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.project-card{min-width:0;text-decoration:none}.project-cover{position:relative;display:grid;place-items:center;overflow:hidden;aspect-ratio:1.495;border-radius:3px;color:#a7a7a7;transition:filter .18s ease}.project-card:hover .project-cover{filter:brightness(.96)}.project-cover>span{font-size:clamp(100px,17vw,250px);font-weight:700;line-height:1;letter-spacing:-.1em;opacity:.18;transform:translateX(-.05em)}.project-cover small{position:absolute;bottom:16px;left:18px;color:#777;font:11px/1 "Courier New",monospace}.cover-one{background:#d4d8d8}.cover-two{background:#e1ddd7}.cover-three{background:#dddde1}.cover-four{background:#d9ded8}.project-card h3{margin:11px 0 8px;font-size:16px;line-height:1.25;letter-spacing:-.04em}.project-card p{min-height:28px;margin:0 0 6px;color:#777;font-size:15px;line-height:1.55}.card-details{display:flex;gap:7px;margin-top:10px}.card-details span{padding:3px 6px;border:1px solid var(--line);color:#777;font:10px/1 "Courier New",monospace}
.text-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}.text-layout h3{margin:0 0 14px;font-size:18px;letter-spacing:-.035em}.text-layout p,.contact-section p{margin:0;color:#555;font-size:17px;line-height:1.65}.about-section{padding-bottom:68px}.cv-row{display:grid;grid-template-columns:23% 1fr;gap:20px;margin:0 0 24px}.cv-row span{color:#777;font:11px/1.5 "Courier New",monospace}.cv-row p{margin:0;font-size:16px;line-height:1.5}.contact-section{min-height:170px}.site-footer{display:flex;justify-content:space-between;gap:24px;padding:0 0 15px;color:#888;font:11px/1.4 "Courier New",monospace}.site-footer a{text-decoration:none}
.back-link{display:inline-block;margin:4px 0 24px;color:#777;font:12px/1.3 "Courier New",monospace;text-decoration:none}.back-link:hover{color:#111}.project-article{max-width:980px;margin:0 auto;padding:0 10px 40px}.project-article h1{margin:0 0 8px;font-size:clamp(38px,4vw,52px);line-height:1.07;letter-spacing:-.065em}.project-subtitle{margin:0 0 26px;color:#777;font-size:17px;line-height:1.5}.project-meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-bottom:35px}.project-meta dt{color:#777;font:11px/1.3 "Courier New",monospace}.project-meta dd{margin:8px 0 0;font-size:14px;line-height:1.35}.project-page-cover{display:grid;place-items:center;aspect-ratio:1.9;border-radius:20px}.project-page-cover span{color:#777;font:12px/1 "Courier New",monospace}.article-section{display:grid;grid-template-columns:22% 1fr;gap:25px;padding:35px 0 65px;border-bottom:1px solid var(--line)}.article-section h2{margin:0;font:12px/1.3 "Courier New",monospace;font-weight:400;color:#777}.article-section p{margin:0;color:#555;font-size:18px;line-height:1.6}.next-project{display:flex;justify-content:space-between;gap:24px;padding:25px 0;font-size:15px;text-decoration:none}.next-project span:last-child{font-family:"Courier New",monospace}
@media(max-width:760px){.sidebar{position:relative;inset:auto;width:auto;padding:20px 20px 18px;border-right:0;border-bottom:1px solid var(--line)}.side-nav{flex-direction:row;flex-wrap:wrap;gap:8px 18px;margin-top:16px}.side-nav a{font-size:17px;line-height:1.2}.sidebar-bottom{display:none}.main-content{margin-left:0;padding:26px 20px 15px}.intro h1{font-size:clamp(42px,10vw,55px)}.intro-lead{min-height:50px}.intro-details span{min-width:0;margin-right:9px}.intro-details b{margin-right:8px}.project-grid,.text-layout{grid-template-columns:1fr;gap:32px}.project-cover>span{font-size:34vw}.project-card p{min-height:0}.project-article{padding:0}.project-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-page-cover{border-radius:10px;aspect-ratio:1.3}.article-section{grid-template-columns:1fr;gap:14px;padding:27px 0 44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-cover{transition:none}}

/* Name, navigation, and introduction share a type scale. */
.identity strong,.side-nav a,.intro-lead{font-family:Arial,Helvetica,"Segoe UI",sans-serif;font-size:25px;font-weight:750;line-height:1.37;letter-spacing:-.05em}
.intro-lead{color:#686868}
.side-nav{gap:7px}
@media(max-width:760px){.identity strong,.side-nav a,.intro-lead{font-size:17px}.side-nav{gap:9px 18px}}
