@charset "UTF-8";
:root{--paper:#f7f5ee;--ink:#1d342f;--muted:#64706b;--line:#d7ddd4;--orange:#ad502f;--green:#193b37;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--orange)}a:focus-visible,button:focus-visible{outline:3px solid var(--orange);outline-offset:5px}h1,h2,h3,p,figure{margin:0}img{max-width:100%;height:auto;display:block}button{font:inherit}.container{width:min(1440px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;top:-90px;left:12px;z-index:50;background:var(--green);color:white;padding:12px}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:20;background:rgba(247,245,238,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{width:min(1536px,calc(100% - 80px));margin:auto;height:90px;display:flex;align-items:center;justify-content:space-between;gap:25px}.wordmark{display:flex;align-items:center;gap:11px;font-size:21px;letter-spacing:-.65px;white-space:nowrap;font-weight:700}.wordmark b{font-weight:700}.brand-symbol{width:46px;height:46px;flex:none;background:white;border-radius:8px;object-fit:contain}#main-nav{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:500}#main-nav a{padding:9px 0}#main-nav a[aria-current]{border-bottom:2px solid var(--orange)}.nav-github{border-left:1px solid var(--line);padding-left:27px!important}.menu-toggle{display:none}.lab-intro{padding-top:38px;padding-bottom:34px;display:grid;grid-template-columns:1fr 2fr;gap:8px 40px;border-bottom:1px solid var(--line)}.lab-intro h1{font-size:18px;font-weight:600;line-height:1.5;letter-spacing:-.3px}.lab-intro p{max-width:760px;font-size:15px;line-height:1.7;color:var(--muted);grid-column:2;grid-row:1/3}.lab-intro span{font-size:11px;color:var(--muted)}.featured-work{display:grid;grid-template-columns:minmax(0,.83fr) minmax(0,1.4fr);align-items:center;gap:58px;padding-top:66px;padding-bottom:76px}.work-type{font-size:11px;font-weight:500;color:var(--muted);margin-bottom:19px}.featured-copy h2,.featured-copy h1{font:500 clamp(36px,3.5vw,58px)/1.08 var(--sans);letter-spacing:-2.5px;max-width:600px}.featured-copy>p:not(.work-type){font-size:16px;color:var(--muted);line-height:1.75;max-width:410px;margin-top:27px}.work-links{display:flex;align-items:center;gap:25px;font-size:13px;font-weight:500;margin-top:28px}.work-links a{border-bottom:1px solid #899d91;padding-bottom:3px}.work-links .primary-link{background:var(--green);color:var(--paper);padding:10px 24px;border:0}.work-links .primary-link:hover{background:#2b5349}.featured-figure{background:#fff;padding:30px 24px 19px;border:1px solid #e5e7dd}.featured-figure>a>img{width:100%}.figure-legend{width:82%;margin:21px auto 0}.featured-figure figcaption{font-size:10px;line-height:1.65;color:var(--muted);margin-top:19px;max-width:650px}.featured-figure figcaption a{text-decoration:underline;text-underline-offset:2px}.work-section{padding-top:34px;padding-bottom:72px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:25px;margin-bottom:32px}.section-heading h1{font:500 48px/1.15 var(--sans);letter-spacing:-1.7px}.section-heading h2{font-size:25px;line-height:1.2;font-weight:500;letter-spacing:-.7px}.section-heading>a{font-size:12px;border-bottom:1px solid var(--line)}.supporting-work{display:grid;grid-template-columns:1.2fr 1fr;gap:48px}.research-work{min-width:0;scroll-margin-top:110px}.research-image{height:250px;background:#fff;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden}.research-image img{width:100%;max-height:100%;object-fit:contain}.fdcate-image{background:#ede8df}.research-copy{padding-top:23px}.research-copy .work-type{font-size:10px;margin-bottom:8px}.research-copy h3{font:500 29px/1.2 var(--sans);letter-spacing:-.7px}.research-copy>p:not(.work-type){max-width:560px;font-size:14px;color:var(--muted);margin-top:11px;line-height:1.7}.research-copy .work-links{margin-top:17px;font-size:12px}.news-section{border-top:1px solid var(--line);padding:35px 0 50px}.news-layout{display:grid;grid-template-columns:1fr 2.2fr;gap:50px}.news-layout>h2{font-size:25px;font-weight:500;letter-spacing:-.7px}.news-list article{display:grid;grid-template-columns:110px 1fr;gap:24px;border-bottom:1px solid var(--line);padding:15px 0}.news-list article:first-child{padding-top:3px}.news-list time{font-size:10px;color:var(--muted);padding-top:4px}.news-list h3{font-size:14px;font-weight:450;line-height:1.6}.news-list p{grid-column:2;font-size:12px;color:var(--muted)}.site-footer{background:var(--green);color:#f1f2e8;padding:32px 0 23px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px;border-bottom:1px solid #43605a;padding-bottom:25px}.footer-name{display:flex;align-items:center;gap:13px}.footer-symbol{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:8px}.footer-wordmark{font-size:20px;letter-spacing:-.7px}.footer-top>a:last-child{font-size:12px}.footer-bottom{display:flex;justify-content:space-between;gap:25px;font-size:10px;color:#bdcbbf;margin-top:19px}.footer-bottom>div{display:flex;gap:25px}.section{padding-top:54px;padding-bottom:65px}.archive-page .section-heading,.people-page .section-heading{display:block}.section-heading>p{color:var(--muted);font-size:13px;margin-top:13px}.publication-index{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:18px 0;border-block:1px solid var(--line);margin-top:25px}.publication-index>p{font-size:12px}.year-jumps{display:flex;gap:22px;font-size:12px;flex-wrap:wrap}.publication-year-group{margin-top:35px;scroll-margin-top:115px;display:grid;grid-template-columns:110px 1fr;gap:20px}.publication-year-heading{font:28px var(--serif);line-height:1.5}.paper-row{padding:21px 0;border-bottom:1px solid var(--line);scroll-margin-top:115px}.paper-row:first-child{padding-top:7px}.paper-row h3{font-size:20px;font-weight:500;line-height:1.4;letter-spacing:-.35px}.paper-authors{font-size:12px;color:var(--muted);margin-top:8px}.paper-venue{font-size:12px;color:var(--muted);margin-top:4px}.paper-links{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;margin-top:11px}.paper-links a{border-bottom:1px solid #b4c1b5}.section-tail{display:inline-block;font-size:12px;border-bottom:1px solid var(--line);margin-top:35px}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:48px}.person{border-top:1px solid var(--line);padding-top:23px;scroll-margin-top:115px}.person h3{font-size:25px;font-weight:500;letter-spacing:-.6px}.person-description{font-size:13px;color:var(--muted);margin-top:18px}.person-role{font-size:10px;letter-spacing:.05em;margin-bottom:9px}.text-link{display:inline-block;font-size:12px;border-bottom:1px solid var(--line);margin-top:21px}.people-page main{min-height:65vh}
@media(min-width:1800px){.featured-work{padding-top:85px;padding-bottom:95px;gap:78px}.featured-copy h2,.featured-copy h1{font-size:63px}.featured-figure{padding:40px 30px 23px}.research-image{height:275px}}
@media(max-width:1050px){.container{width:calc(100% - 64px)}.header-inner{width:calc(100% - 48px)}#main-nav{gap:18px}.wordmark{font-size:19px}.featured-work{gap:30px;grid-template-columns:.9fr 1.2fr}.featured-copy h2,.featured-copy h1{font-size:40px;letter-spacing:-1.6px}.featured-copy>p:not(.work-type){font-size:14px}.featured-figure{padding:21px 14px 15px}.supporting-work{gap:30px}.research-image{height:210px}.people-grid{gap:25px}}
@media(max-width:760px){html{scroll-padding-top:90px}.container{width:calc(100% - 40px)}.header-inner{height:73px;width:calc(100% - 32px);gap:14px}.wordmark{font-size:19px;gap:9px}.brand-symbol{width:41px;height:41px}.menu-toggle{display:flex;align-items:center;gap:9px;border:0;background:none;padding:8px 0;font-size:12px;color:var(--ink)}.menu-toggle span{font-size:23px}#main-nav{display:none;position:absolute;top:73px;left:0;right:0;padding:17px 20px 23px;background:var(--paper);border-bottom:1px solid var(--line)}#main-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:4px}#main-nav a{font-size:16px;padding:9px 0}.nav-github{border-left:0;border-top:1px solid var(--line);padding-left:0!important;margin-top:6px}.lab-intro{display:block;padding-top:24px;padding-bottom:25px}.lab-intro h1{font-size:16px}.lab-intro p{font-size:13px;line-height:1.75;margin-top:10px}.lab-intro span{font-size:10px;display:block;margin-top:12px}.featured-work{display:flex;flex-direction:column;align-items:stretch;gap:28px;padding-top:34px;padding-bottom:38px}.work-type{font-size:10px;margin-bottom:14px}.featured-copy h2,.featured-copy h1{font-size:40px;line-height:1.07;letter-spacing:-1.7px}.featured-copy>p:not(.work-type){font-size:14px;line-height:1.75;max-width:none;margin-top:19px}.work-links{margin-top:22px;gap:25px;font-size:12px}.work-links .primary-link{padding:9px 22px}.featured-figure{padding:17px 12px 15px}.figure-legend{width:96%;margin-top:16px}.featured-figure figcaption{font-size:9px;line-height:1.65;margin-top:14px}.work-section{padding-top:28px;padding-bottom:39px}.section-heading{margin-bottom:23px;gap:15px}.section-heading h2{font-size:22px}.section-heading>a{font-size:11px;white-space:nowrap}.supporting-work{grid-template-columns:1fr;gap:36px}.research-image{height:190px;padding:16px}.research-copy{padding-top:18px}.research-copy h3{font-size:26px}.research-copy>p:not(.work-type){font-size:13px}.research-copy .work-links{font-size:11px;margin-top:14px}.news-section{padding:28px 0 34px}.news-layout{display:block}.news-layout>h2{font-size:22px;margin-bottom:20px}.news-list article{display:block;padding-block:16px}.news-list time{font-size:10px;display:block;padding:0;margin-bottom:5px}.news-list h3{font-size:13px}.site-footer{padding-top:26px}.footer-top{align-items:flex-start;gap:24px}.footer-wordmark{font-size:18px;letter-spacing:-.5px}.footer-symbol{width:39px;height:39px}.footer-name{gap:10px}.footer-bottom{display:block;font-size:9px;line-height:1.7}.footer-bottom>div{margin-top:12px;gap:22px}.section{padding:35px 0 42px}.section-heading h1{font-size:36px;letter-spacing:-1.2px}.section-heading>p{font-size:12px;margin-top:14px}.publication-index{display:block;padding:15px 0}.year-jumps{gap:10px 21px;margin-top:12px;font-size:11px}.publication-year-group{display:block;margin-top:29px;scroll-margin-top:95px}.publication-year-heading{font-size:25px;margin-bottom:13px}.paper-row{padding:18px 0;scroll-margin-top:95px}.paper-row h3{font-size:17px;letter-spacing:-.2px}.paper-authors,.paper-venue{font-size:11px;line-height:1.7}.paper-links{font-size:11px;gap:18px}.people-grid{grid-template-columns:1fr;gap:30px;margin-top:30px}.person{padding-top:20px}.person h3{font-size:24px}.person-description{font-size:12px;margin-top:14px}.text-link{font-size:11px;margin-top:17px}.footer-top{flex-direction:column}.people-page main{min-height:0}}
@media(max-width:370px){.wordmark{font-size:17px}.brand-symbol{width:37px;height:37px}.featured-copy h2,.featured-copy h1{font-size:36px}.section-heading h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.figure-note{font-size:10px;color:var(--muted);line-height:1.6;margin-top:10px}.research-copy{padding-top:18px}

.secondary-product .research-work{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center}.secondary-product .research-copy{padding:0}.secondary-product .research-image{height:260px}.product-back{padding-top:30px;font-size:12px}.product-back a{border-bottom:1px solid var(--line)}.product-detail{padding-top:42px;padding-bottom:80px;min-height:58vh}.news-page main{min-height:65vh}.news-archive{margin-top:38px;max-width:1000px}.news-page-section .section-heading h1{font:500 48px/1.15 var(--sans);letter-spacing:-1.7px}.home-page .work-links{gap:22px;flex-wrap:wrap}.home-page .research-copy .work-links{font-size:12px}
@media(max-width:760px){.secondary-product .research-work{grid-template-columns:1fr;gap:22px}.secondary-product .research-image{height:190px}.secondary-product .research-copy{padding:0}.product-back{padding-top:24px}.product-detail{padding-top:29px;padding-bottom:40px;min-height:0}.news-page-section .section-heading h1{font-size:36px;letter-spacing:-1.2px}.news-archive{margin-top:28px}.home-page .work-links{gap:20px}.news-page main{min-height:65vh}}

.workflow-figure{display:block;min-width:0}.workflow-figure img{width:100%;object-fit:contain}.resource-links{display:flex;gap:20px;margin-top:20px;font-size:11px;color:var(--muted)}.resource-links a{border-bottom:1px solid var(--line)}.app-name-note{font-size:11px!important;margin-top:16px!important}.product-explanation{display:grid;grid-template-columns:1.1fr 1fr;gap:30px 80px;padding-bottom:65px;border-top:1px solid var(--line);padding-top:30px}.product-explanation h2{font-size:16px;font-weight:600;margin-bottom:9px}.product-explanation p{font-size:14px;line-height:1.8;color:var(--muted);max-width:550px}.product-explanation h2:not(:first-child){margin-top:22px}.product-note{font-size:12px!important;color:var(--muted);line-height:1.8;margin-top:23px}.product-explanation>.product-note{grid-column:1/-1;margin-top:0}.usage-page{max-width:900px;padding-top:35px;padding-bottom:65px}.back-product{display:inline-block;font-size:12px;border-bottom:1px solid var(--line);margin-bottom:25px}.usage-page h1{font-size:42px;letter-spacing:-1.5px;line-height:1.2;margin-bottom:23px;font-weight:500}.usage-page p,.usage-page li{font-size:14px;line-height:1.85}.usage-page ol{padding-left:21px;margin-block:22px}.usage-page li{padding-left:5px;margin-bottom:14px}.usage-page p a,.usage-page li a{text-decoration:underline;text-underline-offset:3px}.usage-page pre{background:#e9ede4;border:1px solid var(--line);padding:20px;font:12px/1.9 ui-monospace,SFMono-Regular,monospace;overflow-x:auto;margin-block:22px;white-space:pre;max-width:100%}.usage-page code{font-family:ui-monospace,SFMono-Regular,monospace}.usage-open{display:inline-block;background:var(--green);color:var(--paper);padding:11px 26px;font-size:13px}.usage-open:hover{background:#2b5349;color:var(--paper)}
@media(max-width:760px){.product-explanation{grid-template-columns:1fr;gap:25px;padding-top:25px;padding-bottom:35px}.product-explanation p{font-size:13px}.product-explanation>.product-note{grid-column:1}.usage-page{padding-top:25px;padding-bottom:40px}.usage-page h1{font-size:32px;letter-spacing:-1px}.usage-page p,.usage-page li{font-size:13px}.usage-page pre{padding:14px;font-size:11px}.home-page .work-links{flex-wrap:wrap}}

.product-entry-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap;font-size:13px;margin-top:28px}.product-entry-links>a:not(.primary-link){border-bottom:1px solid var(--line)}.product-entry-links .primary-link{padding:10px 23px;background:var(--green);color:var(--paper)}.tutorial-heading{padding-top:35px;padding-bottom:38px;max-width:1200px}.tutorial-heading h1,.examples-page h1{font-size:44px;font-weight:500;letter-spacing:-1.6px;line-height:1.15;margin-bottom:20px}.tutorial-heading>p{font-size:15px;line-height:1.8;max-width:850px;color:var(--muted)}.tutorial-layout{display:grid;grid-template-columns:210px minmax(0,850px);gap:70px;max-width:1200px;padding-bottom:65px}.tutorial-toc{position:sticky;top:118px;align-self:start;border-top:1px solid var(--line);padding-top:18px}.tutorial-toc>p{font-size:11px;color:var(--muted);margin-bottom:12px}.tutorial-toc nav{display:flex;flex-direction:column;gap:11px;font-size:12px}.tutorial-content{min-width:0}.tutorial-content>section{border-top:1px solid var(--line);padding:25px 0 34px;scroll-margin-top:110px}.tutorial-content h2{font-size:25px;font-weight:500;letter-spacing:-.6px;line-height:1.35;margin-bottom:18px}.tutorial-content h3{font-size:16px;font-weight:600;margin:26px 0 9px}.tutorial-content p,.tutorial-content li{font-size:14px;line-height:1.9;margin-top:14px}.tutorial-content ol{padding-left:22px;margin-block:18px}.tutorial-content li{padding-left:5px}.tutorial-check{background:#e9ede4;border-left:3px solid #7f9d84;padding:15px 18px;color:#365648}.tutorial-table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.7;margin:23px 0}.tutorial-table th,.tutorial-table td{text-align:left;border-bottom:1px solid var(--line);padding:12px 15px 12px 0;vertical-align:top}.tutorial-table th{font-weight:600}.tutorial-content code{font:12px ui-monospace,SFMono-Regular,monospace;overflow-wrap:anywhere}.tutorial-figure{background:#fff;border:1px solid var(--line);padding:12px;margin-top:24px}.tutorial-figure.narrow{max-width:390px}.tutorial-figure img{width:100%;height:auto}.tutorial-figure figcaption{font-size:10px;color:var(--muted);line-height:1.7;margin:12px 3px 3px}.result-definitions{font-size:14px;line-height:1.9}.result-definitions dt{font-weight:600;margin-top:20px}.result-definitions dd{margin:5px 0 0;color:var(--muted)}.examples-page{max-width:1000px;padding-top:35px;padding-bottom:65px}.examples-page>p{color:var(--muted);font-size:14px}.examples-page article{border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.examples-page h2{font-size:25px;font-weight:500;letter-spacing:-.5px}.examples-page article p{font-size:14px;color:var(--muted);line-height:1.8;margin-top:12px}.examples-page article a{display:inline-block;font-size:13px;border-bottom:1px solid var(--line);margin-top:16px}
@media(max-width:760px){.product-entry-links{gap:18px;font-size:12px}.tutorial-heading{padding-top:25px;padding-bottom:27px}.tutorial-heading h1,.examples-page h1{font-size:33px;letter-spacing:-1.1px}.tutorial-heading>p{font-size:14px}.tutorial-layout{display:block;padding-bottom:38px}.tutorial-toc{position:static;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--line)}.tutorial-toc nav{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;font-size:11px}.tutorial-content>section{padding-top:24px;scroll-margin-top:90px}.tutorial-content h2{font-size:22px}.tutorial-content p,.tutorial-content li,.result-definitions{font-size:13px}.tutorial-table{font-size:11px}.tutorial-table th,.tutorial-table td{padding:11px 8px 11px 0}.tutorial-content code{font-size:11px}.tutorial-check{padding:13px}.tutorial-figure{padding:8px}.examples-page{padding-top:25px;padding-bottom:40px}.examples-page h2{font-size:23px}}

.code-page>section{border-top:1px solid var(--line);margin-top:34px;padding-top:25px}.code-page h2{font-size:25px;font-weight:500;letter-spacing:-.6px;margin-bottom:16px}.code-page h3{font-size:16px;font-weight:600;margin-top:23px}.download-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.download-list>a{border:1px solid var(--line);padding:18px;background:#e9ede4}.download-list strong{font-size:14px;font-weight:600;display:block}.download-list span{font-size:11px;color:var(--muted);display:block;margin-top:6px}.code-page code{overflow-wrap:anywhere}.code-page .resource-links{flex-wrap:wrap}.code-page .work-links{flex-wrap:wrap}.code-page p{margin-top:15px}@media(max-width:760px){.download-list{grid-template-columns:1fr;gap:10px}.code-page h2{font-size:22px}.code-page>section{margin-top:28px;padding-top:22px}}


/* Shared layout and route adjustments for the content-driven site. */
body{min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
.lab-intro-copy{grid-column:2;grid-row:1/3}
.lab-intro-copy p{font-size:16px;line-height:1.8}
.lab-intro-copy p+p{margin-top:14px}
.following-product{border-top:1px solid var(--line)}
.research-copy h2{font:500 29px/1.2 var(--sans);letter-spacing:-.7px}
.person h2{font-size:25px;font-weight:500;letter-spacing:-.6px}
.person-role{font-size:13px;letter-spacing:0;margin-bottom:0}
.news-list h2{font-size:16px;font-weight:500;line-height:1.6}
.news-page main{min-height:65vh}
@media(max-width:760px){.lab-intro-copy{margin-top:12px}.lab-intro-copy p{font-size:14px}.lab-intro-copy p+p{margin-top:12px}.research-copy h2{font-size:26px}.person h2{font-size:24px}.person-role{font-size:13px}.product-entry-links{flex-wrap:wrap}}

/* Member portraits use their original profile photos. */
.person-photo{display:block;width:160px;height:160px;max-width:100%;object-fit:cover;border-radius:4px;margin-bottom:20px}
#person-heejoon .person-photo{object-fit:contain}
