/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--spacing:.25rem}}@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.mt-10{margin-top:calc(var(--spacing) * 10)}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-line{border-color:var(--pf-line)}.pt-4{padding-top:calc(var(--spacing) * 4)}.font-\[Arial\,sans-serif\]{font-family:Arial,sans-serif}.text-\[11px\]{font-size:11px}.tracking-\[0\.3px\]{--tw-tracking:.3px;letter-spacing:.3px}.text-muted{color:var(--pf-muted)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}body{color:#595959;background-color:#fff;margin:0;padding:0;font:400 16px/1.5 Crimson Pro,serif}.pub-row{align-items:center;display:flex}a.no-color{color:unset!important}.social-icons a{text-align:center;background-color:#0000;border-radius:100%;width:2.4rem;height:2.4rem;margin-right:1rem;font-size:1.15rem;line-height:0;display:inline-block;color:#57068c!important}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) .social-icons a{color:#b8b8b8!important}}:where(html[data-theme=dark]) .social-icons a{color:#b8b8b8!important}.social-icons a:last-child{margin-right:0}.social-icons a:hover{color:#0000;background-color:#0000;transform:scale(1.3)}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) .social-icons a:last-child{margin-right:0}:where(html:not([data-theme=light])) .social-icons a:hover{color:#000;background-color:#0000;transform:scale(1.2)}}:where(html[data-theme=dark]) .social-icons a:last-child{margin-right:0}:where(html[data-theme=dark]) .social-icons a:hover{color:#000;background-color:#0000;transform:scale(1.2)}.icon-button{cursor:pointer;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;border-radius:3.6rem;width:3.6rem;height:3.6rem;margin:0 5px;font-size:2rem;line-height:3.6rem;display:inline-block;position:relative}.icon-button span{-o-transition:all .3s;border-radius:0;width:0;height:0;margin:0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;display:block;position:absolute;top:50%;left:50%}.icon-button:hover span{border-radius:3.6rem;width:3.6rem;height:3.6rem;margin:-1.8rem}.twitter span{background-color:#4099ff}.facebook span{background-color:#4286f4}.linkedin span{background-color:#0077b5}.github span{background-color:#000}email{font-family:Ubuntu Mono;font-size:14px}.icon-button i{color:#fff;-o-transition:all .3s;z-index:10;background:0 0;width:3.6rem;height:3.6rem;line-height:3.6rem;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;position:absolute;top:0;left:0}.icon-button .icon-twitter{color:#4099ff}.icon-button .icon-facebook{color:#4286f4}.icon-button .icon-github{color:#000}.icon-button .icon-linkedin{color:#0077b5}.icon-button:hover .icon-twitter,.icon-button:hover .icon-facebook,.icon-button:hover .icon-github,.icon-button:hover .icon-linkedin{color:#fff}autocolor{color:#57068c}lightonly{visibility:visible}darkonly{visibility:hidden}education{font-size:115%;font-weight:500}papertitle{font-size:100%;font-weight:600}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) body{color:#eee6f3;background-color:#404040}:where(html:not([data-theme=light])) autocolor{color:#ab82c5}:where(html:not([data-theme=light])) lightonly{visibility:hidden}:where(html:not([data-theme=light])) darkonly{visibility:visible}:where(html:not([data-theme=light])) papertitle{color:#eeeff0}}:where(html[data-theme=dark]) body{color:#eee6f3;background-color:#404040}:where(html[data-theme=dark]) autocolor{color:#ab82c5}:where(html[data-theme=dark]) lightonly{visibility:hidden}:where(html[data-theme=dark]) darkonly{visibility:visible}:where(html[data-theme=dark]) papertitle{color:#eeeff0}.image{border:0;border-radius:.35em;display:inline-block;position:relative}.image:before{content:"";opacity:.5;border-radius:.35em;width:100%;height:100%;-webkit-transition:opacity .2s ease-in-out;-moz-transition:opacity .2s ease-in-out;-ms-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;display:block;position:absolute;top:0;left:0}.image.avatar:before{display:none}.image.avatar img{border:2px solid #ddd;border-radius:20%;width:90%;height:auto;padding:8px;box-shadow:0 -1px 5px 1px #c8c8c84d}.image.logo img{opacity:.5;border-radius:0%;width:100%;margin-top:-58px;margin-bottom:-10px;margin-left:-8px;padding:10px;box-shadow:0 0 #c8c8c84d}#header .image.avatar{margin:0 0 em 0;width:8em}h3{color:#000;margin:0;font-weight:400}h4{color:#545353;margin:0 0 5px;font-weight:400}h5,h6{color:#404040;margin:0 0 20px;font-weight:600}h1{color:#000;margin:0 0 8px;font-weight:500}h2{color:#000;margin:2px 0 15px;font-size:157%;font-weight:500}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) h1,:where(html:not([data-theme=light])) h3{color:#fff;margin:0 0 20px;font-weight:300}:where(html:not([data-theme=light])) h4{color:#d6d6d6;margin:0 0 5px;font-weight:400}:where(html:not([data-theme=light])) h5,:where(html:not([data-theme=light])) h6,:where(html:not([data-theme=light])) h2{color:#d6d6d6}:where(html:not([data-theme=light])) email{color:#d6d6d6;font-family:Ubuntu Mono;font-size:14px}}:where(html[data-theme=dark]) h1,:where(html[data-theme=dark]) h3{color:#fff;margin:0 0 20px;font-weight:300}:where(html[data-theme=dark]) h4{color:#d6d6d6;margin:0 0 5px;font-weight:400}:where(html[data-theme=dark]) h5,:where(html[data-theme=dark]) h6,:where(html[data-theme=dark]) h2{color:#d6d6d6}:where(html[data-theme=dark]) email{color:#d6d6d6;font-family:Ubuntu Mono;font-size:14px}p,ul,ol,table,pre,dl{margin:0 0 20px}h1,h2,h3{line-height:1.1}h1{font-size:28px}a{color:#702b9d;text-decoration:none}a:hover{color:#330662}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) a{color:#ab82c5}}:where(html[data-theme=dark]) a{color:#ab82c5}a small{color:#777;margin-top:-.3em;font-size:11px;display:block}a:hover small{color:#777}.wrapper{width:960px;margin:0 auto}blockquote{border-left:1px solid #e5e5e5;margin:0;padding:0 0 0 20px;font-style:italic}code,pre{color:#333;font-family:Monaco,Bitstream Vera Sans Mono,Lucida Console,Terminal,Consolas,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}pre{background:#f8f8f8;border:1px solid #e5e5e5;border-radius:5px;max-width:500px;padding:8px 15px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #e5e5e5;padding:5px 10px}dt{color:#444;font-weight:500}th{color:#444}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) th,:where(html:not([data-theme=light])) dt{color:#3eb7f0}}:where(html[data-theme=dark]) th,:where(html[data-theme=dark]) dt{color:#3eb7f0}img{max-width:100%}header{float:left;-webkit-font-smoothing:subpixel-antialiased;text-align:center;width:232px;padding-top:4em;position:fixed}header ul{background:#f4f4f4;border:1px solid #e0e0e0;border-radius:5px;width:270px;height:40px;padding:0;list-style:none}header li{float:left;border-right:1px solid #e0e0e0;width:89px;height:40px}header li:first-child a{border-radius:5px 0 0 5px}header li:last-child a{border-radius:0 5px 5px 0}header ul a{color:#999;text-align:center;height:34px;padding-top:6px;font-size:11px;line-height:1;display:block}header ul a:hover{color:#999}header ul a:active{background-color:#f0f0f0}strong{color:#222;font-weight:500}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) strong{color:#eeeff0}}:where(html[data-theme=dark]) strong{color:#eeeff0}header ul li+li+li{border-right:none;width:89px}header ul a strong{color:#222;font-size:14px;display:block}section{float:right;width:650px;padding-top:4em;padding-bottom:50px}small{font-size:11px}hr{background:#e5e5e5;border:0;height:1px;margin:0 0 20px}footer{float:left;-webkit-font-smoothing:subpixel-antialiased;text-align:center;width:232px;position:fixed;bottom:30px}@media print,screen and (width<=960px){div.wrapper{width:auto;margin:0}header,section,footer{float:none;width:auto;position:static}header{padding-right:320px}section{border:1px solid #e5e5e5;border-width:1px 0;margin:0 0 20px;padding:20px 0}header a small{display:inline}header ul{position:absolute;top:52px;right:50px}.image.avatar img{border-radius:20%;width:180px;padding:5px}.image.logo img{border-radius:0%;width:117px;margin-top:-20px;padding:3px}#head1o2,#head2o2{visibility:hidden}body{word-wrap:break-word;padding:15px}.pub-row{align-items:center;display:flex}header{padding:0}pre,code{word-wrap:normal}}@media print,screen and (width<=480px){.pub-row{align-items:center;display:block}body{padding:15px}header ul{width:99%}header li,header ul li+li+li{width:33%}.image.avatar img{border-radius:20%;width:180px;padding:3px}#head1o2,#head2o2{visibility:hidden}}@media print{body{color:#444;padding:.4in;font-size:12pt}}.biblink{margin-right:0;text-decoration:none;display:inline}.fakelink{cursor:pointer;text-decoration:none}.bibref{margin-top:10px;margin-left:0;font-family:monospace;font-size:70%;display:none}.wrapper{position:relative}.alt-name{color:#6d6d6d;margin:-6px 0 6px;font-size:.95rem}.top-controls{z-index:10;align-items:center;gap:10px;display:flex;position:absolute;top:4.6em;right:0}.theme-toggle{color:#702b9d;cursor:pointer;background:0 0;border:1px solid #e5e5e5;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:.85rem;line-height:1;transition:border-color .15s,color .15s;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:currentColor}.theme-toggle[hidden],.theme-toggle .icon-sun{display:none}.lang-switch{white-space:nowrap;font-size:.95rem;line-height:1}.lang-switch a,.lang-switch .current{padding:6px 4px;display:inline-block}.lang-switch a{color:#702b9d;border-bottom:1px solid #0000;text-decoration:none}.lang-switch a:hover,.lang-switch a:focus-visible{border-bottom-color:currentColor}.lang-switch .current{color:#222;font-weight:600}.lang-switch .sep{color:#bbb;padding:0 2px}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) .theme-toggle{color:#ab82c5;border-color:#5a5a5a}:where(html:not([data-theme=light])) .theme-toggle .icon-moon{display:none}:where(html:not([data-theme=light])) .theme-toggle .icon-sun{display:inline}:where(html:not([data-theme=light])) .lang-switch .current{color:#eee}:where(html:not([data-theme=light])) .lang-switch a{color:#ab82c5}:where(html:not([data-theme=light])) .alt-name{color:#9a9a9a}}:where(html[data-theme=dark]) .theme-toggle{color:#ab82c5;border-color:#5a5a5a}:where(html[data-theme=dark]) .theme-toggle .icon-moon{display:none}:where(html[data-theme=dark]) .theme-toggle .icon-sun{display:inline}:where(html[data-theme=dark]) .lang-switch .current{color:#eee}:where(html[data-theme=dark]) .lang-switch a{color:#ab82c5}:where(html[data-theme=dark]) .alt-name{color:#9a9a9a}@media print,screen and (width<=960px){.top-controls{justify-content:flex-end;margin:0 0 6px;position:static}}@media print{.top-controls{display:none}}:where(html){color-scheme:light}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])){color-scheme:dark}}:where(html[data-theme=dark]){color-scheme:dark}html[lang=zh-Hans] body{font-family:Crimson Pro,Songti SC,Noto Serif CJK SC,Source Han Serif SC,Noto Serif SC,PingFang SC,Microsoft YaHei,serif;line-height:1.8}html[lang=zh-Hans] section p{text-align:justify}.badge{text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.125rem;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:inline-block;-webkit-box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;color:#fff!important}:root{--global-bg-color:#fff;--global-code-bg-color:#b509ac0d;--global-text-color:#000;--global-text-color-light:#828282;--global-theme-color:#330662;--global-hover-color:#ffb81c;--global-footer-bg-color:#1c1c1c;--global-footer-text-color:#e8e8e8;--global-footer-link-color:#fff;--global-distill-app-color:#828282}@media (prefers-color-scheme:dark){html:not([data-theme=light]){--global-theme-color:#7b5aa6}}html[data-theme=dark]{--global-theme-color:#7b5aa6}blockquote{background:var(--global-bg-color);border-left:2px solid var(--global-theme-color);margin:1.5em 10px;padding:.5em 10px;font-size:1.2rem}@media print,screen and (width>=480px){.col-sm-9{width:100%}}.publications{margin-top:2rem}.publications h1{color:var(--global-theme-color);text-align:center;margin-top:1em;margin-bottom:1em;font-size:2rem}.publications h2{margin-bottom:1rem}.publications h2 span{font-size:1.5rem}.publications h2.year{color:#e8e8e8;text-align:right;border-top:1px solid #e8e8e8;margin-top:2rem;margin-bottom:0}.publications ol.bibliography{margin-top:0;padding:0;list-style:none}.publications ol.bibliography li{min-height:110px;margin-bottom:.5rem}.publications ol.bibliography li .abbr{height:8rem;margin-bottom:.5rem}.publications ol.bibliography li .abbr abbr{background-color:var(--global-theme-color);padding-left:1rem;padding-right:1rem;display:inline-block;position:absolute;top:8px;left:16px}.publications ol.bibliography li .abbr abbr a{color:#fff}.publications ol.bibliography li .abbr abbr a:hover{text-decoration:none}.publications ol.bibliography li .abbr .award{border:1px solid var(--global-theme-color);color:var(--global-theme-color)!important}.publications ol.bibliography li .title{font-weight:bolder}.publications ol.bibliography li .author a{border-bottom:1px var(--global-theme-color)}.publications ol.bibliography li .author a:hover{border-bottom-style:solid;text-decoration:none}.publications ol.bibliography li .author>em{border-bottom:1px solid;font-style:normal}.publications ol.bibliography li .links a.btn{color:#000;border:1px solid #000;padding:.1rem .5rem}@media (prefers-color-scheme:dark){:where(html:not([data-theme=light])) .publications ol.bibliography li .links a.btn{color:#fff;border:1px solid #fff;padding:.1rem .5rem}}:where(html[data-theme=dark]) .publications ol.bibliography li .links a.btn{color:#fff;border:1px solid #fff}.publications ol.bibliography li .links a.btn:hover{color:var(--global-theme-color);border-color:var(--global-theme-color)}.publications ol.bibliography li .hidden{text-align:justify;-o-transition:.15s ease;max-height:0;font-size:.875rem;-webkit-transition:all .15s;-moz-transition:all .15s;-ms-transition:all .15s;transition:all .15s;overflow:hidden}.publications ol.bibliography li .hidden p{margin:10px;line-height:1.4em}.publications ol.bibliography li .hidden pre{padding:10px;font-size:1em;line-height:1.4em}.publications ol.bibliography li .hidden.open{-o-transition:.15s ease;max-height:100em;-webkit-transition:all .15s;-moz-transition:all .15s;-ms-transition:all .15s;transition:all .15s}.publications ol.bibliography li div.abstract.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography li div.abstract.hidden.open{border-color:var(--global-text-color)}.publications ol.bibliography li .teaser{object-fit:cover;border-radius:8px;width:270px;height:123px;margin-top:5px;margin-bottom:5px;margin-left:5px;box-shadow:3px 3px 6px #888}.portfolio{--pf-ink:#29222f;--pf-muted:#645b6b;--pf-accent:#57068c;--pf-line:#ded7e3;--pf-panel:#f4f0f6;font-size:18px;line-height:1.6}.portfolio .wrapper{grid-template-columns:260px minmax(0,1fr);column-gap:50px;width:min(1280px,100% - 80px);margin:0 auto;padding:42px 0;display:grid}.portfolio .wrapper>header{float:none;text-align:left;grid-area:2/1;align-self:start;width:auto;padding:28px 0;position:sticky;top:40px}.portfolio .wrapper>section{float:none;grid-area:2/2;width:auto;min-width:0;padding:0}.portfolio .wrapper>footer{display:none}.portfolio .top-controls{grid-area:1/1;justify-content:flex-start;align-self:center;margin:0;padding:0;position:static}.portfolio .pf-nav{border-bottom:1px solid var(--pf-line);flex-wrap:wrap;grid-area:1/2;gap:28px;margin-bottom:25px;padding:0 0 20px;font:14px/1.5 Arial,sans-serif;display:flex}.portfolio .pf-nav a{color:var(--pf-muted);padding:8px 0}.portfolio .pf-nav a[aria-current]{color:var(--pf-accent);box-shadow:0 2px var(--pf-accent)}.portfolio .avatar img{box-sizing:border-box;object-fit:cover;border-radius:50%;width:240px;height:240px;padding:6px}.portfolio header h1{margin-bottom:2px;font-size:32px}.portfolio header .alt-name{margin-bottom:18px}.portfolio header h4{margin-top:16px;font-size:14px;line-height:1.5}.portfolio header autocolor{font-size:15px}.portfolio header .social-icons{gap:8px;display:flex}.portfolio .social-icons a{flex:none;place-items:center;display:grid}.portfolio a{color:var(--pf-accent)}.portfolio h2,.portfolio h3{color:var(--pf-ink);font-weight:500;line-height:1.18}.portfolio h2{font-size:29px}.portfolio h3{font-size:24px}.portfolio p{color:var(--pf-muted);margin:0 0 18px}.portfolio .pf-intro{max-width:780px;padding:28px 0 42px}.portfolio .pf-intro h2{letter-spacing:-1.5px;max-width:740px;margin:16px 0 23px;font-size:clamp(36px,4vw,57px)}.portfolio .pf-lead{max-width:700px;font-size:21px}.portfolio .pf-eyebrow{text-transform:uppercase;letter-spacing:1.4px;color:var(--pf-accent);margin-bottom:14px;font:11px/1.6 Arial,sans-serif}.portfolio .pf-section{margin:30px 0 55px}.portfolio .pf-section-heading{justify-content:space-between;align-items:baseline;gap:15px;margin:0 0 20px;display:flex}.portfolio .pf-section-heading h2{margin:0}.portfolio .pf-section-heading>a,.portfolio .pf-links{font:13px/1.6 Arial,sans-serif}.portfolio .pf-links{flex-wrap:wrap;gap:24px;display:flex}.portfolio .pf-paper{border-top:2px solid var(--pf-accent);border-bottom:1px solid var(--pf-line);grid-template-columns:120px 1fr;gap:28px;padding:30px 0;display:grid}.portfolio .pf-paper h3{margin-top:0}.portfolio .pf-paper h3 a{color:var(--pf-ink)}.portfolio .pf-paper-index>span{color:var(--pf-accent);font-size:68px;line-height:1}.portfolio .pf-paper-index p{margin-top:16px;font:11px/1.7 Arial,sans-serif}.portfolio .pf-authors{font-size:15px}.portfolio .pf-theme-preview{border-bottom:1px solid var(--pf-line);padding:20px 0}.portfolio .pf-theme-preview p{margin:5px 0 0;font-size:16px}.portfolio figure{margin:0}.portfolio figure img{border-radius:3px;width:100%;height:auto;display:block}.portfolio figcaption{color:var(--pf-muted);padding-top:12px;font:12px/1.5 Arial,sans-serif}.portfolio .pf-photo-strip{grid-template-columns:1fr 1fr 1fr;gap:18px;display:grid}.portfolio .pf-photo-strip img{aspect-ratio:4/3;object-fit:contain;background:var(--pf-panel);height:auto}.portfolio .pf-photo-strip strong{color:var(--pf-ink);margin-bottom:5px;font-size:15px;display:block}.portfolio .pf-photo-strip span{display:block}.portfolio .pf-project-briefs{grid-template-columns:repeat(3,1fr);gap:25px;display:grid}.portfolio .pf-project-briefs article{border-top:1px solid var(--pf-line);padding-top:18px}.portfolio .pf-project-briefs h3{font-size:22px}.portfolio .pf-project-briefs p{font-size:16px}.portfolio .pf-project-briefs .pf-eyebrow{font-size:10px}.portfolio .pf-bio{border-top:1px solid var(--pf-line);padding-top:35px;font-size:17px}.portfolio .pf-bio p{max-width:720px}.portfolio .pf-theme,.portfolio .pf-project{border-top:1px solid var(--pf-line);grid-template-columns:65px 1fr;gap:20px;padding:28px 0;display:grid}.portfolio .pf-number{color:var(--pf-accent);font:14px/1.6 Arial,sans-serif}.portfolio .pf-theme h3{margin:0 0 12px}.portfolio .pf-project h2{margin-top:0}.portfolio .pf-project>div{max-width:640px}.portfolio .pf-process{grid-template-columns:1.7fr 1fr;align-items:center;gap:30px;margin:10px 0 55px;scroll-margin-top:25px;display:grid}.portfolio .pf-process h2{font-size:30px}.portfolio .pf-print-gallery{grid-template-columns:1fr 1fr;gap:28px;display:grid}.portfolio .pf-pagoda{grid-row:span 2}.portfolio .pf-print-gallery img{object-fit:contain;background:var(--pf-panel);max-height:420px}.portfolio .pf-metrology{border-left:3px solid var(--pf-accent);margin:40px 0;padding:8px 25px}.portfolio .pf-metrology h2{margin-top:0}.portfolio .pf-skip{background:var(--pf-panel);z-index:10;padding:10px;position:absolute;top:-80px;left:12px}.portfolio .pf-skip:focus{top:12px}.portfolio a:focus-visible,.portfolio button:focus-visible{outline:3px solid var(--pf-accent);outline-offset:5px}html[data-theme=dark] .portfolio{--pf-ink:#eee7f4;--pf-muted:#c2b8cb;--pf-accent:#cba0ee;--pf-line:#493e51;--pf-panel:#28232f;color:var(--pf-muted);background:#17141d}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .portfolio{--pf-ink:#eee7f4;--pf-muted:#c2b8cb;--pf-accent:#cba0ee;--pf-line:#493e51;--pf-panel:#28232f;color:var(--pf-muted);background:#17141d}}@media (width<=1000px){.portfolio .wrapper{grid-template-columns:210px minmax(0,1fr);column-gap:30px;width:calc(100% - 48px)}.portfolio .avatar img{width:200px;height:200px}.portfolio .pf-nav{gap:20px}.portfolio .pf-project-briefs,.portfolio .pf-process{grid-template-columns:1fr}.portfolio .pf-paper{grid-template-columns:85px 1fr;gap:20px}}@media (width<=700px){.portfolio .wrapper{flex-direction:column;width:calc(100% - 36px);padding:20px 0;display:flex}.portfolio .top-controls{order:0;align-self:flex-end}.portfolio .pf-nav{order:2;gap:22px;margin-top:15px;margin-bottom:0;font-size:13px}.portfolio .wrapper>header{order:1;width:100%;padding:12px 0 0;position:static}.portfolio .wrapper>header .avatar{float:left;margin-right:22px}.portfolio .avatar img{width:120px;height:120px;padding:5px}.portfolio header>br{display:none}.portfolio header h1{margin-top:8px}.portfolio header .alt-name{margin-bottom:20px}.portfolio header position,.portfolio header autocolor{font-size:14px!important}.portfolio header .social-icons{margin:16px 0 5px}.portfolio header h4{margin:8px 0}.portfolio .wrapper>section{order:3}.portfolio .pf-intro{padding:32px 0 22px}.portfolio .pf-intro h2{letter-spacing:-.7px}.portfolio .pf-lead{font-size:19px}.portfolio .pf-section-heading{flex-direction:column;align-items:flex-start;gap:8px}.portfolio .pf-paper{grid-template-columns:1fr;gap:10px}.portfolio .pf-paper-index{align-items:center;gap:18px;display:flex}.portfolio .pf-paper-index>span{font-size:42px}.portfolio .pf-paper-index p{margin:0}.portfolio .pf-photo-strip{grid-template-columns:1fr;gap:12px}.portfolio .pf-photo-strip figure{margin-bottom:12px}.portfolio .pf-photo-strip img{aspect-ratio:auto}.portfolio .pf-theme,.portfolio .pf-project{grid-template-columns:30px 1fr;gap:12px}.portfolio .pf-print-gallery{grid-template-columns:1fr}.portfolio .pf-pagoda{grid-row:auto}.portfolio .pf-print-gallery img{max-height:none}.portfolio .pf-section{margin-bottom:38px}}.portfolio{padding:0}.portfolio .wrapper>section{border:0}@media (width<=700px){.portfolio header position,.portfolio header>a:not(.avatar):not(.logo){display:block}.portfolio header .avatar{margin-bottom:12px}}.portfolio header autocolor,.portfolio header .alt-name,.portfolio header h4{color:var(--pf-muted)}.portfolio header a.js-email{color:var(--pf-muted)!important}.portfolio .pf-intro h2{text-wrap:balance}@media (width<=700px){.portfolio .wrapper>header{grid-template-columns:120px minmax(0,1fr);column-gap:20px;display:grid}.portfolio .wrapper>header>*{grid-column:1/-1}.portfolio .wrapper>header .avatar{float:none;grid-area:1/1/4;margin:0}.portfolio .wrapper>header h1{grid-area:1/2;margin:6px 0 0;font-size:30px}.portfolio .wrapper>header .alt-name{grid-area:2/2;margin:0}.portfolio .wrapper>header position{grid-area:3/2;margin-bottom:16px}}.portfolio .pf-bio-first{border:0;margin-bottom:20px;padding-top:28px;font-size:18px}.portfolio .pf-bio-first h2{margin-bottom:22px;font-size:38px}.portfolio .pf-bio-first p{max-width:790px}.portfolio .pf-bio-first strong{color:var(--pf-ink);font-weight:600}.portfolio .pf-capabilities{letter-spacing:.7px;color:var(--pf-accent);border-top:1px solid var(--pf-line);margin-bottom:38px;padding-top:18px;font:12px/1.8 Arial,sans-serif}.portfolio .pf-metrology-feature{border-top:2px solid var(--pf-accent);margin:45px 0;padding-top:28px}.portfolio .pf-metrology-feature>div{max-width:680px;margin-bottom:22px}.portfolio .pf-credit{color:var(--pf-muted);font-size:11px}.portfolio .pf-project{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:35px;padding:32px 0}.portfolio .pf-project-image{min-width:0;margin-bottom:20px}.portfolio .pf-project-image img{aspect-ratio:900/520;object-fit:contain;background:#f3eff8;width:100%;height:auto}.portfolio .pf-project-image figcaption{padding-top:7px;font-size:10px}@media (width<=700px){.portfolio .pf-project{grid-template-columns:1fr;gap:8px}}.portfolio .pf-modeling-tools{color:var(--pf-accent);margin:18px 0;font:13px/1.7 Arial,sans-serif}.portfolio .pf-modeling-workflow{counter-reset:step;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0 32px;padding:0;list-style:none;display:grid}.portfolio .pf-modeling-workflow li{counter-increment:step;border-top:1px solid var(--pf-line);color:var(--pf-ink);padding-top:12px;font:13px/1.6 Arial,sans-serif}.portfolio .pf-modeling-workflow li:before{content:"0" counter(step);color:var(--pf-accent);margin-bottom:7px;font-size:11px;display:block}.portfolio .pf-print-gallery .pf-pagoda{grid-row:auto}@media (width<=700px){.portfolio .pf-modeling-workflow{grid-template-columns:1fr 1fr}}.portfolio .pf-equipment{border-top:1px solid var(--pf-line);margin:40px 0;padding:28px 0 0}.portfolio .pf-equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:26px 0 20px;display:grid}.portfolio .pf-equipment-grid figure{margin:0 0 18px}.portfolio .pf-equipment-grid img{object-fit:contain;background:var(--pf-panel);width:100%;height:200px;display:block}.portfolio .pf-equipment-grid h3{margin:5px 0 12px;font-size:23px}.portfolio .pf-equipment-grid p{font-size:16px}.portfolio .pf-equipment-grid .pf-eyebrow{margin-bottom:5px;font-size:10px}.portfolio .pf-equipment-extra{border-top:1px solid var(--pf-line);padding-top:14px;font-size:15px}@media (width<=700px){.portfolio .pf-equipment-grid{grid-template-columns:1fr;gap:26px}.portfolio .pf-equipment-grid img{height:220px}}.portfolio .pf-am-heading{margin-bottom:22px}.portfolio .pf-am-processes{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.portfolio .pf-am-processes .pf-process{margin:0;display:block}.portfolio .pf-am-processes figure img{object-fit:contain;background:var(--pf-panel);height:200px}.portfolio .pf-am-processes figcaption{display:none}.portfolio .pf-am-processes .pf-eyebrow{margin:18px 0 7px}.portfolio .pf-am-processes h2{margin-bottom:12px;font-size:24px}.portfolio .pf-am-processes p{font-size:16px}@media (width<=700px){.portfolio .pf-am-processes{grid-template-columns:1fr}.portfolio .pf-am-processes figure img{height:220px}}.portfolio .pf-print-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.portfolio .pf-project{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:22px}.portfolio .pf-main figure img{aspect-ratio:auto;object-fit:contain;background:var(--pf-panel);height:200px;max-height:200px}.portfolio .pf-print-gallery .pf-pagoda img{max-height:200px}.portfolio .pf-project-image{margin-bottom:0}.portfolio .pf-more-projects{margin:0 0 20px;font:14px/1.6 Arial,sans-serif}@media (width<=700px){.portfolio .pf-print-gallery,.portfolio .pf-project{grid-template-columns:1fr}.portfolio .pf-main figure img{height:220px;max-height:220px}.portfolio .pf-print-gallery .pf-pagoda img{max-height:220px}}.portfolio .pf-project-tags{border-bottom:1px solid var(--pf-line);flex-wrap:nowrap;gap:4px;max-width:100%;margin:0 0 18px;padding:0;display:inline-flex}.portfolio .pf-project-tags span{white-space:nowrap;border:1px solid var(--pf-line);color:var(--pf-accent);background:var(--pf-panel);border-bottom:0;border-radius:4px 4px 0 0;flex:none;padding:5px 9px;font:11px/1.5 Arial,sans-serif}.portfolio .pf-engineering-section{margin:0 0 44px}.portfolio .pf-engineering-section>h2{margin:0 0 10px}.portfolio .pf-engineering-intro{margin-bottom:26px;font-size:17px}.portfolio .pf-simulation-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.portfolio .pf-simulation-grid article{min-width:0;scroll-margin-top:24px}.portfolio .pf-simulation-grid figure{min-height:200px;margin-bottom:22px}.portfolio .pf-simulation-grid .pf-eyebrow{margin:0 0 8px}.portfolio .pf-simulation-grid h3{margin:0 0 12px;font-size:24px}.portfolio .pf-engineering-skills{margin:0 0 4px;font:13px/1.8 Arial,sans-serif}.portfolio .pf-engineering-tools{letter-spacing:.4px;color:var(--pf-accent);margin:0;font:12px/1.8 Arial,sans-serif}.portfolio .pf-fabrication{border-top:1px solid var(--pf-line);padding-top:32px}.portfolio .pf-engineering-group{text-transform:uppercase;letter-spacing:1.4px;color:var(--pf-accent);margin:30px 0 18px;font:11px/1.6 Arial,sans-serif}.portfolio .pf-am-processes .pf-process h3{margin:18px 0 8px;font-size:24px}.portfolio .pf-am-processes .pf-process-title,.portfolio .pf-equipment-subtitle{color:var(--pf-ink);margin-bottom:8px}.portfolio .pf-fabrication .pf-equipment{border:0;margin-top:32px;padding:0}.portfolio .pf-fabrication .pf-equipment-grid{margin-top:18px}@media (width<=700px){.portfolio .pf-simulation-grid{grid-template-columns:1fr;gap:28px}.portfolio .pf-simulation-grid figure{min-height:0;margin-bottom:18px}.portfolio .pf-engineering-section{margin-bottom:32px}}.portfolio .pf-creative-work{grid-template-columns:minmax(160px,.75fr) minmax(0,1.25fr);gap:35px;padding:34px 0 38px;scroll-margin-top:24px}.portfolio .pf-creative-cover{background:var(--pf-panel);border-radius:4px;margin:0;padding:20px}.portfolio .pf-creative-cover img{border-radius:0}.portfolio .pf-creative-work h2{letter-spacing:-.8px;margin:0 0 9px;font-size:clamp(29px,3.2vw,42px)}.portfolio .pf-creative-work h2 a{color:var(--pf-ink)}.portfolio .pf-creative-work h2 a:hover{color:var(--pf-accent)}.portfolio .pf-creative-original{letter-spacing:.6px;margin-bottom:24px;font-size:16px}.portfolio .pf-creative-work p:not(.pf-eyebrow):not(.pf-creative-original){max-width:580px}@media (width<=1000px) and (width>=701px){.portfolio .pf-creative-work{grid-template-columns:130px minmax(0,1fr);gap:25px}.portfolio .pf-creative-cover{padding:8px}}@media (width<=700px){.portfolio .pf-creative-work{grid-template-columns:1fr;gap:26px;padding-top:27px}.portfolio .pf-creative-cover{box-sizing:border-box;width:100%;max-width:340px}.portfolio .pf-creative-work>div{min-width:0}.portfolio .pf-creative-work .pf-project-tags{flex-wrap:wrap}.portfolio .pf-creative-work h2{font-size:31px}.portfolio .pf-creative-original{font-size:14px}}.portfolio .pf-project-summary span{display:block}.portfolio .pf-project .pf-project-tags{flex-wrap:wrap}
