:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#242424;--secondary:#656565;--line:#e6e6e6;--paper:#fff}*{box-sizing:border-box}html{scroll-padding-top:32px}body{background:var(--paper);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}a{color:inherit;text-underline-offset:4px;text-decoration:none;text-decoration-thickness:1px}a:hover{text-decoration:underline}a:focus-visible,audio:focus-visible{outline-offset:5px;outline:2px solid #555}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-size:1rem;font-weight:500;line-height:1.5}.wrap{width:min(1040px,100% - 80px);margin:0 auto}.sr-only,.skip:not(:focus){clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip:focus{z-index:10;background:#fff;padding:8px 12px;position:fixed;top:12px;left:12px}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:32px;padding:56px 0 42px;display:flex}.name{font-size:1.125rem;font-weight:500;line-height:1.4}.nav{color:var(--secondary);flex-wrap:wrap;gap:22px;margin-top:17px;font-size:.875rem;display:flex}.nav a[aria-current=page]{color:var(--text);text-decoration:underline}.contact{align-items:center;gap:14px;font-size:.875rem;font-style:normal;line-height:1.8;display:flex}.contact img{object-fit:contain;object-position:center;background:#b0b1b3;border-radius:50%;flex:none;width:60px;height:60px}.contact-links{flex-direction:column;display:flex}.contact-links a{overflow-wrap:anywhere}.contact-links a:last-child{color:var(--secondary)}main{padding-top:38px}.work-section{grid-template-columns:152px minmax(0,1fr);gap:40px;padding:0 0 55px;scroll-margin-top:28px;display:grid}.work-section>h1,.work-section>h2{color:var(--secondary);padding-top:16px;font-size:.875rem;font-weight:400}.work-list{min-width:0}.project-entry{border-bottom:1px solid var(--line);padding:16px 0 19px}.project-entry:first-child{padding-top:14px}.project-entry>a{grid-template-columns:minmax(0,1fr) 110px;align-items:center;gap:28px;display:grid}.project-entry>a:hover{text-decoration:none}.project-entry>a:hover h3{text-underline-offset:4px;text-decoration:underline}.project-entry h3{margin-bottom:3px;font-size:1rem}.project-entry p{color:var(--secondary);font-size:1rem;line-height:1.5}.project-entry .meta{color:var(--secondary);margin-top:6px;font-size:.8125rem}.project-entry img{object-fit:contain;object-position:right center;width:110px;max-height:78px}.article-entry{border-bottom:1px solid var(--line);padding:14px 0 15px}.article-entry a{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.article-entry a:hover{text-decoration:none}.article-entry a:hover h3{text-underline-offset:4px;text-decoration:underline}.article-entry h3{font-size:1rem;font-weight:400}.article-entry .publication{text-align:right;color:var(--secondary);flex:0 0 235px;font-size:.8125rem}.book-entry{border-bottom:1px solid var(--line);justify-content:space-between;gap:30px;padding:14px 0 20px;display:flex}.book-entry p{color:var(--secondary);margin-top:3px}.book-entry img{width:56px;height:auto}.education-list,.education-details{margin:0;padding:0;list-style:none}.education-entry{border-bottom:1px solid var(--line);padding:16px 0 19px}.education-entry-heading{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.education-entry h2{margin:0;font-size:1rem;font-weight:500;line-height:1.5}.education-period{color:var(--secondary);font-variant-numeric:tabular-nums;flex:none;font-size:.8125rem}.education-degree{margin-top:3px;font-size:1rem}.education-details{color:var(--secondary);margin-top:6px;font-size:.875rem;line-height:1.6}.education-details a{text-decoration:underline}@media (max-width:560px){.education-entry-heading{display:block}.education-period{margin-top:3px}.education-entry{padding:14px 0 16px}}.secondary-link{color:var(--secondary);margin-top:7px;font-size:.875rem;text-decoration:underline;display:inline-block}.footer{border-top:1px solid var(--line);color:var(--secondary);justify-content:space-between;gap:20px;padding:20px 0 40px;font-size:.75rem;display:flex}.footer-links{gap:20px;display:flex}.section-page{max-width:848px;margin-left:auto;padding:0 0 55px}.page-heading{margin:0 0 20px;font-size:1.125rem;font-weight:500}.detail{max-width:848px;margin-left:auto}.breadcrumb{color:var(--secondary);margin-bottom:25px;font-size:.875rem;display:inline-block}.detail h1{letter-spacing:-.02em;margin-bottom:12px;font-size:1.5rem;font-weight:500;line-height:1.35}.detail .description{max-width:720px;color:var(--secondary);margin-top:6px}.tags{color:var(--secondary);margin-top:12px;font-size:.8125rem}.detail .demo{margin-top:16px;font-size:.875rem;text-decoration:underline;display:inline-block}.gallery{gap:34px;margin:30px 0 60px;display:grid}.gallery figure{margin:0}.gallery img{object-fit:contain;object-position:left center;border:1px solid var(--line);width:auto;max-width:100%;max-height:640px}.gallery figcaption{color:var(--secondary);margin-top:8px;font-size:.8125rem}.prose{max-width:760px;margin-left:auto;padding-bottom:55px}.prose h1{margin-bottom:22px;font-size:1.25rem}.prose h2{margin:26px 0 10px;font-size:1rem}.prose p{margin:0 0 16px}.prose a{text-decoration:underline}.note{color:var(--secondary)}audio{width:100%;margin:26px 0 18px;display:block}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:28px;padding:18px 0;display:grid}.timeline time{color:var(--secondary);font-size:.875rem}.timeline p{color:var(--secondary);margin:6px 0 0}@media (max-width:820px){.wrap{width:calc(100% - 48px)}.work-section{grid-template-columns:105px minmax(0,1fr);gap:24px}.article-entry a{display:block}.article-entry .publication{text-align:left;margin-top:3px;display:block}.section-page,.detail,.prose{max-width:none;margin-left:0}.contact{font-size:.8125rem}.project-entry>a{grid-template-columns:minmax(0,1fr) 88px;gap:20px}.project-entry img{width:88px;max-height:65px}}@media (max-width:560px){.wrap{width:calc(100% - 40px)}.site-header{padding:30px 0 25px;display:block}.nav{gap:20px;margin-top:12px}.contact{gap:12px;margin-top:25px;font-size:.875rem}.contact img{width:52px;height:52px}.contact-links{line-height:1.65}main{padding-top:24px}.work-section{padding-bottom:38px;display:block}.work-section>h1,.work-section>h2{color:var(--text);padding:0 0 11px;font-weight:500}.project-entry{padding:14px 0 16px}.project-entry>a{grid-template-columns:minmax(0,1fr) 64px;gap:16px}.project-entry img{align-self:start;width:64px;max-height:48px;margin-top:4px}.project-entry h3,.project-entry p{font-size:1rem}.project-entry .meta{font-size:.75rem;line-height:1.65}.article-entry{padding:12px 0}.article-entry a{display:block}.article-entry .publication{font-size:.8125rem}.book-entry{padding-top:8px}.footer{padding-bottom:28px;font-size:.75rem}.footer-links{gap:15px}.section-page{padding-bottom:35px}.detail h1{font-size:1.25rem}.gallery{gap:24px}.timeline li{display:block}.timeline h2{margin-top:6px}}@media print{.contact img,.nav,.skip,.footer{display:none}.wrap{width:100%}.site-header{padding-top:0}.work-section,.project-entry,.article-entry{break-inside:avoid}body{font-size:11pt}a{text-decoration:none}}html{scrollbar-gutter:stable}html.preview-open,html.preview-open body{overflow:hidden}button{font:inherit;color:inherit}button:focus-visible{outline-offset:4px;outline:2px solid #555}[hidden]{display:none!important}.viewer{width:min(1100px,100% - 64px);max-width:none;max-height:calc(100dvh - 64px);color:var(--text);overscroll-behavior:contain;background:#fff;border:1px solid #d9d9d9;margin:auto;padding:0}.viewer::backdrop{background:#00000057}.viewer[data-kind=article]{width:min(820px,100% - 64px)}.viewer-header{border-bottom:1px solid var(--line);z-index:1;background:#fff;justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 26px 20px;display:flex;position:sticky;top:0}.viewer-header h2{font-size:1.125rem;font-weight:500;line-height:1.4}.viewer-header p{color:var(--secondary);margin-top:5px;font-size:.8125rem}.viewer-close{cursor:pointer;background:0 0;border:0;flex:none;min-height:44px;padding:10px 0 10px 12px;font-size:.875rem}.viewer-close:hover{text-underline-offset:4px;text-decoration:underline}.viewer-body{padding:24px 26px 22px}.viewer-stage{touch-action:pan-y pinch-zoom;background:#fafafa;justify-content:center;align-items:center;height:min(56dvh,560px);min-height:150px;display:flex;position:relative}.viewer-stage img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%}.viewer[data-kind=article] .viewer-stage{height:min(49dvh,450px)}.viewer figcaption{color:var(--secondary);margin-top:12px;font-size:.875rem;line-height:1.5}.viewer-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:20px;display:flex}.viewer-navigation{align-items:center;gap:14px;display:flex}.viewer-navigation button{border:1px solid var(--line);cursor:pointer;background:#fff;width:44px;height:44px;font-size:1.125rem}.viewer-navigation button:hover:not(:disabled){background:#f5f5f5}.viewer-navigation button:disabled{color:#a0a0a0;cursor:default}#viewer-counter{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-size:.8125rem}.viewer-source{text-underline-offset:4px;margin-left:auto;font-size:.875rem;text-decoration:underline}.viewer-loading,.viewer-error{color:var(--secondary);text-align:center;padding:24px;font-size:.875rem}.viewer-error a{text-decoration:underline}.viewer audio{margin-bottom:0}@media (max-width:560px){.viewer,.viewer[data-kind=article]{width:calc(100% - 20px);max-height:calc(100dvh - 24px)}.viewer-header{gap:14px;padding:15px 16px 12px}.viewer-header h2{font-size:1rem}.viewer-header p{font-size:.75rem}.viewer-close{padding-left:0;font-size:.8125rem}.viewer-body{padding:16px}.viewer-stage{height:44dvh;min-height:120px}.viewer[data-kind=article] .viewer-stage{height:38dvh}.viewer figcaption{font-size:.8125rem}.viewer-footer{gap:14px;margin-top:16px}.viewer-source{font-size:.875rem}}@media print{dialog{display:none!important}}
